Files
IL-GSC/IW/PC/ALL/scripts/cp/zombies/interaction_magicwheel.gsc
2023-10-27 03:49:01 -04:00

1454 lines
34 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\zombies\interaction_magicwheel.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 40
* Decompile Time: 1888 ms
* Timestamp: 10/27/2023 12:26:52 AM
*******************************************************************/
//Function Number: 1
set_magic_wheel_starting_location(param_00)
{
level.var_B161 = param_00;
level.var_A8E2 = param_00;
}
//Function Number: 2
func_94EF()
{
wait(2);
level.currentweaponlist = [];
level.activewheels = 0;
level.current_active_wheel = undefined;
level.var_13D01 = 0;
level.var_B162 = 0;
level.var_B160 = [];
level.var_6D28 = ::func_10C4D;
level.var_B163 = getentarray("magic_wheel","script_noteworthy");
foreach(var_01 in level.var_B163)
{
var_01.origin = var_01.origin + (0,0,0.15);
var_01.var_2135 = func_7828(var_01);
if(isdefined(var_01.var_2135))
{
level.var_B160[level.var_B160.size] = var_01.var_2135;
}
var_01.var_E74A = func_7C20();
var_01.var_13C25 = func_7ABF();
var_02 = scripts\common\utility::getclosest(var_01.origin,scripts\common\utility::getstructarray("spinner","script_noteworthy"));
var_03 = spawn("script_model",var_02.origin + (0,0,0.15));
if(!isdefined(var_02.angles))
{
var_02.angles = (0,0,0);
}
var_03.angles = var_02.angles;
var_03 setmodel("zmb_magic_wheel_spinner");
var_01.var_10A03 = var_03;
var_01 method_8318(1);
level thread init_magic_wheel(var_01);
var_01 thread func_13643();
scripts\common\utility::func_136F7();
}
}
//Function Number: 3
magic_wheel_tutorial()
{
self endon("death");
self endon("disconnect");
self endon("saw_wheel_tutorial");
wait(5);
var_00 = cos(65);
for(;;)
{
var_01 = level.var_B163;
var_02 = sortbydistance(var_01,self.origin);
if(!self.var_8EB0 && var_02.size > 0)
{
if(distancesquared(var_02[0].origin,self.origin) < 9216 && scripts\common\utility::func_13D90(self.origin,self.angles,var_02[0].origin,var_00))
{
thread scripts\cp\_hud_message::func_12AAE("magic_wheel");
wait(1);
self notify("saw_wheel_tutorial");
}
}
wait(0.25);
}
}
//Function Number: 4
func_7ABF()
{
return scripts\common\utility::func_22A8(level.var_B15E);
}
//Function Number: 5
func_13643()
{
self endon("delete_wheel");
for(;;)
{
self waittill("trigger",var_00);
if(!var_00 scripts\cp\_utility::is_valid_player())
{
continue;
}
var_01 = scripts\common\utility::istrue(self.var_8B7D);
if(var_01)
{
level thread func_51EB(self,var_00,1);
continue;
}
if(isdefined(level.wheel_purchase_check))
{
var_01 = [[ level.wheel_purchase_check ]](self,var_00);
if(var_01)
{
level thread [[ level.wheel_hint_func ]](self,var_00,1);
continue;
}
}
if(scripts\common\utility::func_6E34("fire_sale") && scripts\common\utility::flag("fire_sale"))
{
var_02 = 10;
}
else
{
var_02 = 950;
}
if(isdefined(level.meph_fight_started))
{
var_02 = 0;
}
if(var_00 scripts\cp\_persistence::func_D0BB(var_02))
{
var_00 scripts\cp\_persistence::func_11445(var_02,1,"magic_wheel");
func_12FFA(var_00,self,var_02);
var_00 notify("magic_wheel_used");
continue;
}
level thread func_51EB(self,var_00);
}
}
//Function Number: 6
func_51EB(param_00,param_01,param_02)
{
param_01 endon("disconnect");
param_01 playlocalsound("purchase_deny");
if(isdefined(param_02))
{
param_01 method_80F4(&"COOP_INTERACTIONS_CANNOT_BUY");
}
else
{
param_01 thread scripts\cp\_vo::try_to_play_vo("no_cash","zmb_comment_vo","high",30,0,0,1,50);
param_01 method_80F4(&"COOP_INTERACTIONS_NEED_MONEY");
}
wait(1);
param_01 method_80F3();
}
//Function Number: 7
func_BC3F()
{
for(;;)
{
var_00 = scripts\common\utility::random(level.var_B160);
if(var_00 != level.var_A8E2)
{
func_BC3E(var_00);
return;
}
}
}
//Function Number: 8
func_BC3E(param_00)
{
level.var_A8E2 = param_00;
if(isdefined(level.show_wheel_location_func))
{
level thread [[ level.show_wheel_location_func ]](param_00);
}
foreach(var_02 in level.var_B163)
{
if(!isdefined(var_02.var_2135))
{
continue;
}
if(var_02.var_2135 == param_00)
{
func_100ED(var_02);
level.current_active_wheel = var_02;
continue;
}
func_8E95(var_02);
}
}
//Function Number: 9
init_magic_wheel(param_00)
{
if(!isdefined(param_00.var_2135))
{
return;
}
if(param_00.var_2135 != level.var_B161)
{
level thread func_8E95(param_00);
return;
}
param_00 setscriptablepartstate("base","on");
param_00 setscriptablepartstate("fx",get_default_fx_state());
param_00.var_10A03 setscriptablepartstate("spinner","idle");
var_01 = getentarray("out_of_order","script_noteworthy");
var_02 = scripts\common\utility::getclosest(param_00.origin,var_01);
var_02 hide();
param_00 makeusable();
param_00 method_84A7("tag_use");
param_00 method_84A5(60);
param_00 method_84A2(72);
level.current_active_wheel = param_00;
if(isdefined(level.magic_wheel_spin_hint))
{
param_00 sethintstring(level.magic_wheel_spin_hint);
return;
}
param_00 sethintstring(&"CP_ZMB_INTERACTIONS_SPIN_WHEEL");
}
//Function Number: 10
func_8E95(param_00)
{
while(scripts\common\utility::istrue(param_00.var_9B04))
{
wait(0.05);
}
param_00 makeunusable();
param_00 setscriptablepartstate("base","off");
param_00 setscriptablepartstate("fx","off");
param_00.var_10A03 setscriptablepartstate("spinner","off");
var_01 = getentarray("out_of_order","script_noteworthy");
var_02 = scripts\common\utility::getclosest(param_00.origin,var_01);
playfx(level._effect["vfx_magicwheel_fire"],var_02.origin);
wait(0.5);
var_02 show();
}
//Function Number: 11
func_100ED(param_00)
{
param_00 setscriptablepartstate("fx","hideshow");
param_00 setscriptablepartstate("base","on");
param_00.var_10A03 setscriptablepartstate("spinner","activate");
var_01 = getentarray("out_of_order","script_noteworthy");
var_02 = scripts\common\utility::getclosest(param_00.origin,var_01);
playfx(level._effect["vfx_magicwheel_fire"],var_02.origin);
wait(0.5);
var_02 hide();
var_03 = get_default_fx_state();
if(scripts\common\utility::flag("fire_sale"))
{
var_03 = "firesale";
}
param_00 setscriptablepartstate("fx",var_03);
wait(1);
param_00.var_10A03 setscriptablepartstate("spinner","idle");
param_00 makeusable();
param_00 method_84A7("tag_use");
param_00 method_84A5(60);
param_00 method_84A2(72);
if(scripts\common\utility::func_6E34("fire_sale") && scripts\common\utility::flag("fire_sale"))
{
param_00 sethintstring(&"COOP_INTERACTIONS_SPIN_WHEEL_FIRE_SALE");
return;
}
if(isdefined(level.magic_wheel_spin_hint))
{
param_00 sethintstring(level.magic_wheel_spin_hint);
return;
}
param_00 sethintstring(&"CP_ZMB_INTERACTIONS_SPIN_WHEEL");
}
//Function Number: 12
get_default_fx_state()
{
if(scripts\common\utility::istrue(level.magic_wheel_upgraded_pap1) && should_play_upgraded_magic_wheel_vfx())
{
return "upgrade";
}
if(scripts\common\utility::istrue(level.magic_wheel_upgraded_pap2) && should_play_upgraded_magic_wheel_vfx())
{
return "upgrade";
}
return "normal";
}
//Function Number: 13
should_play_upgraded_magic_wheel_vfx()
{
switch(level.script)
{
case "cp_disco":
if(scripts\common\utility::istrue(level.complete_skull_buster))
{
return 1;
}
else
{
return 0;
}
break;
default:
return 0;
}
}
//Function Number: 14
func_7828(param_00)
{
var_01 = getentarray("spawn_volume","targetname");
foreach(var_03 in var_01)
{
if(function_010F(param_00.origin + (0,0,50),var_03))
{
if(isdefined(var_03.var_28AB))
{
return var_03.var_28AB;
}
}
}
return undefined;
}
//Function Number: 15
func_12FFA(param_00,param_01,param_02)
{
level notify("magicWheelUsed");
param_01 makeunusable();
param_00.var_13103 = 1;
param_01.var_10A05 = 1;
param_01.var_9B04 = 1;
param_00 playlocalsound("zmb_wheel_spin_buy");
var_03 = scripts\common\utility::getclosest(param_01.origin,scripts\common\utility::getstructarray("wheel_fx_spot","targetname"));
param_01 setscriptablepartstate("spin_light","on");
scripts\common\utility::func_136F7();
var_04 = param_00 getweaponslistall();
var_05 = [];
foreach(var_07 in param_01.var_13C25)
{
var_08 = scripts\cp\_utility::func_7DF7(var_07);
var_09 = 0;
foreach(var_0B in var_04)
{
var_0C = scripts\cp\_utility::func_7DF7(var_0B);
if(var_0C == var_08 || issubstr(var_0C,var_08))
{
var_09 = 1;
break;
}
}
if(!var_09)
{
var_0E = var_07;
var_0F = scripts\cp\_utility::func_80D8(var_07);
if(isdefined(param_00.var_13C00[var_0F]))
{
var_0E = param_00.var_13C00[var_0F];
}
var_05[var_05.size] = var_0E;
}
}
scripts\cp\zombies\zombie_analytics::func_AF79(level.wave_num);
param_01.var_13C25 = var_05;
level thread func_1010C(param_01,param_00);
level thread func_13D00(param_01);
param_01.var_10A03 setscriptablepartstate("spinner","spinning");
param_01.var_10A03 rotatepitch(param_01.var_E74A,5,1,4);
param_01.var_10A03 waittill("rotatedone");
param_01.var_10A05 = 0;
param_01 waittill("ready");
if(!level.var_B162)
{
param_01.var_10A03 setscriptablepartstate("spinner","idle");
}
param_01.var_9B04 = 0;
param_01 setscriptablepartstate("spin_light","off");
if(!scripts\common\utility::func_6E34("fire_sale") || !scripts\common\utility::flag("fire_sale"))
{
if(level.var_B162)
{
if(isdefined(param_00))
{
param_00 scripts\cp\_persistence::func_82F9(param_02,undefined,undefined,1,"magicWheelRefund");
}
level.var_B162 = 0;
wait(0.5);
if(isdefined(param_01.var_394))
{
param_01.var_394 delete();
}
func_BC3F();
return;
}
wait(0.5);
if(param_01 != level.current_active_wheel)
{
level thread func_8E95(param_01);
return;
}
param_01 makeusable();
param_01 method_84A7("tag_use");
param_01 method_84A5(60);
param_01 method_84A2(72);
return;
}
wait(0.5);
param_01 makeusable();
param_01 method_84A7("tag_use");
param_01 method_84A5(60);
param_01 method_84A2(72);
}
//Function Number: 16
func_13D00(param_00)
{
while(!isdefined(param_00.var_394))
{
wait(0.05);
}
while(param_00.var_10A05)
{
var_01 = param_00.var_394.var_8293;
wait(0.05);
}
}
//Function Number: 17
func_7B18(param_00)
{
var_01 = 21 / param_00.var_E74A / 5 * 0.05;
if(var_01 - int(var_01) > 0)
{
var_01 = int(var_01) + 1;
}
else
{
var_01 = int(var_01);
}
param_00.var_E74D = var_01 * 0.05;
var_02 = randomint(param_00.var_13C25.size);
return param_00.var_13C25[var_02];
}
//Function Number: 18
can_have_nunchucks(param_00)
{
if(param_00.var_134FD != "p5_")
{
return 0;
}
var_01 = param_00 getplayerdata("cp","alienSession","escapedRank0");
var_02 = param_00 getplayerdata("cp","alienSession","escapedRank1");
var_03 = param_00 getplayerdata("cp","alienSession","escapedRank2");
var_04 = param_00 getplayerdata("cp","alienSession","escapedRank3");
if(isdefined(var_01) && var_01 == 1)
{
return 1;
}
if(isdefined(var_02) && var_02 == 1)
{
return 1;
}
if(isdefined(var_03) && var_03 == 1)
{
return 1;
}
if(isdefined(var_04) && var_04 == 1)
{
return 1;
}
return 0;
}
//Function Number: 19
get_weapon_with_new_camo(param_00,param_01,param_02)
{
var_03 = getweaponbasename(param_01);
var_04 = function_00E3(param_01);
if(issubstr(var_03,"nunchucks") || issubstr(var_03,"venomx"))
{
}
return param_00 scripts\cp\_weapon::func_E469(var_03,undefined,var_04,undefined,param_02);
}
//Function Number: 20
func_1010C(param_00,param_01)
{
if(scripts\common\utility::flag("fire_sale"))
{
param_00.fire_sale_spin = 1;
}
var_02 = undefined;
param_00.var_BF6D = func_7B18(param_00);
if(isdefined(level.nextwheelweaponfunc))
{
param_00.var_BF6D = [[ level.nextwheelweaponfunc ]](param_00,param_00.var_BF6D,param_01);
}
if(level.script == "cp_disco")
{
if(scripts\common\utility::istrue(param_01.finished_backstory) && !scripts\common\utility::istrue(param_01.given_nunchucks))
{
var_03 = "";
if(scripts\common\utility::istrue(level.magic_wheel_upgraded_pap2))
{
param_00.var_13C25 = scripts\common\utility::array_add(param_00.var_13C25,"iw7_nunchucks_zm_pap2");
var_03 = "iw7_nunchucks_zm_pap2";
}
else if(scripts\common\utility::istrue(level.magic_wheel_upgraded_pap1) && !param_01 scripts\cp\_utility::func_9BA0("magic_wheel_upgrade"))
{
var_03 = "iw7_nunchucks_zm_pap1";
param_00.var_13C25 = scripts\common\utility::array_add(param_00.var_13C25,"iw7_nunchucks_zm_pap1");
}
else if(!scripts\common\utility::istrue(level.magic_wheel_upgraded_pap1) && param_01 scripts\cp\_utility::func_9BA0("magic_wheel_upgrade"))
{
var_03 = "iw7_nunchucks_zm_pap1";
}
else if(scripts\common\utility::istrue(level.magic_wheel_upgraded_pap1) && param_01 scripts\cp\_utility::func_9BA0("magic_wheel_upgrade"))
{
param_00.var_13C25 = scripts\common\utility::array_add(param_00.var_13C25,"iw7_nunchucks_zm_pap2");
var_03 = "iw7_nunchucks_zm_pap2";
}
if(var_03 != "")
{
param_00.var_BF6D = var_03;
}
else
{
param_00.var_13C25 = scripts\common\utility::array_add(param_00.var_13C25,"iw7_nunchucks_zm");
param_00.var_BF6D = "iw7_nunchucks_zm";
}
param_01.given_nunchucks = 1;
}
else if(randomint(100) > 95 || getdvar("debug_gns_reward") != "")
{
if(!has_nunchucks_in_loadout(param_01) && scripts\cp\zombies\directors_cut::directors_cut_is_activated() || can_have_nunchucks(param_01))
{
var_03 = "";
if(scripts\common\utility::istrue(level.magic_wheel_upgraded_pap2))
{
param_00.var_13C25 = scripts\common\utility::array_add(param_00.var_13C25,"iw7_nunchucks_zm_pap2");
var_03 = "iw7_nunchucks_zm_pap2";
}
else if(scripts\cp\zombies\directors_cut::directors_cut_is_activated())
{
if(param_01 scripts\cp\_utility::func_9BA0("magic_wheel_upgrade") && scripts\common\utility::istrue(level.magic_wheel_upgraded_pap1))
{
var_03 = "iw7_nunchucks_zm_pap2";
param_00.var_13C25 = scripts\common\utility::array_add(param_00.var_13C25,var_03);
}
else
{
var_03 = "iw7_nunchucks_zm_pap1";
}
}
else if(scripts\common\utility::istrue(level.magic_wheel_upgraded_pap1) && !param_01 scripts\cp\_utility::func_9BA0("magic_wheel_upgrade"))
{
var_03 = "iw7_nunchucks_zm_pap1";
param_00.var_13C25 = scripts\common\utility::array_add(param_00.var_13C25,"iw7_nunchucks_zm_pap1");
}
else if(!scripts\common\utility::istrue(level.magic_wheel_upgraded_pap1) && param_01 scripts\cp\_utility::func_9BA0("magic_wheel_upgrade"))
{
var_03 = "iw7_nunchucks_zm_pap1";
}
else if(scripts\common\utility::istrue(level.magic_wheel_upgraded_pap1) && param_01 scripts\cp\_utility::func_9BA0("magic_wheel_upgrade"))
{
param_00.var_13C25 = scripts\common\utility::array_add(param_00.var_13C25,"iw7_nunchucks_zm_pap2");
var_03 = "iw7_nunchucks_zm_pap2";
}
if(var_03 != "")
{
param_00.var_BF6D = var_03;
}
else
{
param_00.var_13C25 = scripts\common\utility::array_add(param_00.var_13C25,"iw7_nunchucks_zm");
param_00.var_BF6D = "iw7_nunchucks_zm";
}
}
}
}
if(level.script == "cp_final")
{
if(randomint(100) > 95)
{
if(!has_venomx_in_loadout(param_01) && scripts\cp\zombies\directors_cut::directors_cut_is_activated() || can_have_venomx(param_01))
{
var_03 = "";
if(scripts\common\utility::istrue(level.magic_wheel_upgraded_pap2))
{
param_00.var_13C25 = scripts\common\utility::array_add(param_00.var_13C25,"iw7_venomx_zm_pap2+camo34");
var_03 = "iw7_venomx_zm_pap2+camo34";
}
else if(scripts\cp\zombies\directors_cut::directors_cut_is_activated())
{
if(param_01 scripts\cp\_utility::func_9BA0("magic_wheel_upgrade"))
{
var_03 = "iw7_venomx_zm_pap2+camo34";
}
else
{
var_03 = "iw7_venomx_zm_pap1+camo32";
}
}
else if(scripts\common\utility::istrue(level.magic_wheel_upgraded_pap1) && !param_01 scripts\cp\_utility::func_9BA0("magic_wheel_upgrade"))
{
var_03 = "iw7_venomx_zm_pap1+camo32";
param_00.var_13C25 = scripts\common\utility::array_add(param_00.var_13C25,"iw7_venomx_zm_pap1+camo32");
}
else if(!scripts\common\utility::istrue(level.magic_wheel_upgraded_pap1) && param_01 scripts\cp\_utility::func_9BA0("magic_wheel_upgrade"))
{
var_03 = "iw7_venomx_zm_pap1+camo32";
}
else if(scripts\common\utility::istrue(level.magic_wheel_upgraded_pap1) && param_01 scripts\cp\_utility::func_9BA0("magic_wheel_upgrade"))
{
param_00.var_13C25 = scripts\common\utility::func_22A9(param_00.var_13C25,"iw7_venomx_zm_pap1+camo32");
param_00.var_13C25 = scripts\common\utility::array_add(param_00.var_13C25,"iw7_venomx_zm_pap2+camo34");
var_03 = "iw7_venomx_zm_pap2+camo34";
}
if(var_03 != "")
{
param_00.var_BF6D = var_03;
param_00.var_13C25 = scripts\common\utility::array_add(param_00.var_13C25,var_03);
}
else
{
param_00.var_13C25 = scripts\common\utility::array_add(param_00.var_13C25,"iw7_venomx_zm");
param_00.var_BF6D = "iw7_venomx_zm";
}
}
}
}
var_04 = getweaponindexfromlist(param_00.var_BF6D,param_00.var_13C25);
if(scripts\common\utility::func_2286(param_00.var_13C25,"iw7_forgefreeze_zm+forgefreezealtfire"))
{
param_00.var_13C25 = scripts\common\utility::func_22A9(param_00.var_13C25,"iw7_forgefreeze_zm+forgefreezealtfire");
}
param_01 loadweaponsforplayer([param_00.var_BF6D],1);
if(level.currentweaponlist.size > 0)
{
var_05 = level.currentweaponlist;
}
else
{
var_05 = getrotationlist(param_01.var_13C25);
}
if(scripts\common\utility::istrue(level.magic_wheel_upgraded_pap1) || scripts\common\utility::istrue(level.magic_wheel_upgraded_pap2))
{
foreach(var_08, var_07 in var_05)
{
var_05[var_08] = get_weapon_with_new_camo(param_01,var_07,get_camo_for_upgraded_weapon(getweaponbasename(var_07),param_01));
}
}
level.activewheels++;
level.currentweaponlist = var_05;
loadworldweapons(var_05);
var_09 = -1;
var_0A = 0;
var_0B = scripts\common\utility::getclosest(param_00.origin,scripts\common\utility::getstructarray("wheel_fx_spot","targetname"));
param_00.var_394 = undefined;
while(param_00.var_10A05)
{
wait(param_00.var_E74D);
param_00 playsound("zmb_wheel_spin_tick");
var_09++;
if(isdefined(param_00.var_394))
{
param_00.var_394 method_8536(var_05[var_09]);
}
else
{
param_00.var_394 = spawn("script_weapon",var_0B.origin,0,0,var_05[var_09]);
if(isdefined(var_0B.angles))
{
param_00.var_394.angles = var_0B.angles;
}
else
{
param_00.var_394.angles = (0,0,0);
}
}
param_00.var_394.var_8293 = var_05[var_09];
if(var_09 >= var_05.size - 1)
{
var_09 = -1;
}
var_0A++;
}
param_00.var_394.var_8293 = param_00.var_13C25[var_04];
if((isdefined(param_01) && isplayer(param_01) && scripts\common\utility::istrue(level.magic_wheel_upgraded_pap1)) || scripts\common\utility::istrue(level.magic_wheel_upgraded_pap2))
{
param_00.var_394 method_8536(get_weapon_with_new_camo(param_01,param_00.var_394.var_8293,get_camo_for_upgraded_weapon(getweaponbasename(param_00.var_394.var_8293),param_01)));
}
else
{
param_00.var_394 method_8536(param_00.var_394.var_8293);
}
level.activewheels--;
if(level.activewheels < 0)
{
level.activewheels = 0;
}
if(!level.activewheels)
{
function_02EB();
level.currentweaponlist = [];
}
var_0E = lib_0D41::func_801F(param_00.var_13C25[var_04]);
param_00.var_394.origin = var_0B.origin + var_0E;
playsoundatpos(param_00.origin,"zmb_wheel_spin_end");
if(!isdefined(param_00.fire_sale_spin) && !scripts\common\utility::func_6E34("fire_sale") || !scripts\common\utility::flag("fire_sale"))
{
level.var_13D01++;
var_0F = randomint(100);
if(scripts\common\utility::istrue(level.meph_fight_started))
{
level.var_13D01 = 0;
}
if(level.var_13D01 == 7)
{
var_0F = 100;
}
if(var_0F > 50 && level.var_13D01 > 4)
{
level.var_B162 = 1;
var_10 = param_00.var_394.origin;
if(isdefined(param_00.var_394))
{
param_00.var_394 delete();
}
var_11 = spawn("script_model",var_10);
var_11 setmodel("zmb_arcade_toy_astronaut_blue");
var_11.angles = param_00.angles;
var_11 thread func_BC9C();
param_00.var_10A03 setscriptablepartstate("spinner","timetomove");
level thread func_B16B(param_01);
wait(3);
param_00.var_10A03 setscriptablepartstate("spinner","deactivate");
param_00 setscriptablepartstate("base","off");
wait(2);
level.var_13D01 = 0;
param_00 setscriptablepartstate("fx","hideshow");
param_00 setscriptablepartstate("spin_light","off");
param_01.var_13103 = undefined;
param_00 notify("ready");
return;
}
}
var_02.fire_sale_spin = undefined;
var_02.var_394 makeusable();
foreach(var_13 in level.players)
{
if(var_13 == var_04)
{
var_02.var_394 enableplayeruse(var_13);
continue;
}
var_02.var_394 disableplayeruse(var_13);
}
var_02.var_394 thread func_1360B(var_02);
var_02.var_394 scripts\common\utility::waittill_any_timeout_1(12,"weapon_taken");
var_02.var_394 delete();
if(scripts\common\utility::func_2286(var_02.var_13C25,"iw7_nunchucks_zm"))
{
var_02.var_13C25 = scripts\common\utility::func_22A9(var_02.var_13C25,"iw7_nunchucks_zm");
}
else if(scripts\common\utility::func_2286(var_02.var_13C25,"iw7_nunchucks_zm_pap2"))
{
var_02.var_13C25 = scripts\common\utility::func_22A9(var_02.var_13C25,"iw7_nunchucks_zm_pap2");
}
if(scripts\common\utility::func_2286(var_02.var_13C25,"iw7_venomx_zm_pap1+camo32"))
{
var_02.var_13C25 = scripts\common\utility::func_22A9(var_02.var_13C25,"iw7_venomx_zm_pap1+camo32");
}
else if(scripts\common\utility::func_2286(var_02.var_13C25,"iw7_venomx_zm_pap2+camo34"))
{
var_02.var_13C25 = scripts\common\utility::func_22A9(var_02.var_13C25,"iw7_venomx_zm_pap2+camo34");
}
var_02 setscriptablepartstate("spin_light","off");
var_02.var_13C25 = func_7ABF();
var_02.var_E74A = func_7C20();
var_04.var_13103 = undefined;
var_02 notify("ready");
}
//Function Number: 21
can_have_venomx(param_00)
{
if(scripts\common\utility::func_6E34("completepuzzles_step4") && scripts\common\utility::flag("completepuzzles_step4"))
{
if(!has_venomx_in_loadout(param_00))
{
return 1;
}
return 0;
}
return 0;
}
//Function Number: 22
has_venomx_in_loadout(param_00)
{
var_01 = param_00 getweaponslistall();
foreach(var_03 in var_01)
{
if(issubstr(var_03,"venomx"))
{
return 1;
}
}
return 0;
}
//Function Number: 23
has_nunchucks_in_loadout(param_00)
{
var_01 = param_00 getweaponslistall();
foreach(var_03 in var_01)
{
if(issubstr(var_03,"nunchucks"))
{
return 1;
}
}
return 0;
}
//Function Number: 24
getrotationlist(param_00)
{
var_01 = [];
for(var_02 = 0;var_02 < 8;var_02++)
{
var_01[var_02] = param_00[var_02];
}
return var_01;
}
//Function Number: 25
getweaponindexfromlist(param_00,param_01)
{
for(var_02 = 0;var_02 < param_01.size;var_02++)
{
if(param_00 == param_01[var_02])
{
return var_02;
}
}
return 0;
}
//Function Number: 26
func_B16B(param_00)
{
param_00 endon("disconnect");
level endon("game_ended");
level thread scripts\cp\_vo::try_to_play_vo("ww_magicbox_laughter","zmb_announcer_vo","highest",5,0,0,1);
wait(4);
param_00 thread scripts\cp\_vo::try_to_play_vo("magicwheel_badspin","zmb_comment_vo","low",30,0,0,1);
}
//Function Number: 27
func_7C20()
{
var_00 = 1440;
if(randomint(100) > 50)
{
var_00 = 1080;
}
return var_00;
}
//Function Number: 28
func_BC9C()
{
self movez(50,3,2,1);
self rotateroll(-10,1);
wait(1);
self rotateroll(10,1);
wait(1);
self rotateroll(-10,0.5);
wait(0.5);
self rotateroll(10,0.5);
wait(0.5);
playfx(level._effect["vfx_magicwheel_toy_pop"],self.origin);
self delete();
}
//Function Number: 29
func_45FC(param_00)
{
}
//Function Number: 30
func_7A37(param_00,param_01)
{
var_02 = getarraykeys(param_00);
for(var_03 = 0;var_03 < var_02.size;var_03++)
{
if(var_02[var_03] == param_01)
{
return var_03;
}
}
}
//Function Number: 31
func_782E(param_00,param_01)
{
var_02 = getarraykeys(param_00);
return param_00[var_02[param_01]];
}
//Function Number: 32
func_7D60(param_00)
{
if(isdefined(level.coop_weapontable))
{
var_01 = level.coop_weapontable;
}
else
{
var_01 = "cp/cp_weapontable.csv";
}
return tablelookup(var_01,2,param_00,1);
}
//Function Number: 33
func_1360B(param_00)
{
self endon("death");
for(;;)
{
self waittill("trigger",var_01);
if(var_01 ismeleeing() || var_01 meleebuttonpressed() || scripts\common\utility::istrue(var_01.var_9FCB))
{
continue;
}
if(isdefined(level.magicwheel_weapon_take_check))
{
if([[ level.magicwheel_weapon_take_check ]](param_00,var_01,self))
{
break;
}
else
{
continue;
}
}
break;
}
if(isdefined(self.var_8293) && getsubstr(self.var_8293,0,5) == "power")
{
if(level.var_D782[self.var_8293].var_504B == "secondary")
{
var_01 scripts\cp\powers\coop_powers::func_8397(self.var_8293,level.var_D782[self.var_8293].var_504B,undefined,undefined,undefined,0,0);
}
else
{
var_01 scripts\cp\powers\coop_powers::func_8397(self.var_8293,level.var_D782[self.var_8293].var_504B,undefined,undefined,undefined,0,1);
}
}
else
{
var_02 = self.var_8293;
func_B16A(var_01,var_02);
var_03 = scripts\cp\_utility::func_80D8(var_02);
switch(var_03)
{
case "lmg03":
case "sdflmg":
case "mauler":
var_01 thread scripts\cp\_vo::try_to_play_vo("magicwheel_weapon","zmb_comment_vo","low",10,0,1,0,25);
break;
case "katana":
var_01 thread scripts\cp\_vo::try_to_play_vo("magicwheel_katana","zmb_comment_vo","low",10,0,1,0);
break;
case "venomx":
var_01 thread scripts\cp\_vo::try_to_play_vo("magicwheel_venx","zmb_comment_vo","low",10,0,1,1,50);
break;
case "nunchucks":
var_01 thread scripts\cp\_vo::try_to_play_vo("magicwheel_nunchucks","zmb_comment_vo","low",10,0,1,0);
break;
case "forgefreeze":
var_01 thread scripts\cp\_vo::try_to_play_vo("magicwheel_weapon","zmb_comment_vo","low",10,0,1,0);
break;
case "glprox":
case "chargeshot":
var_01 thread scripts\cp\_vo::try_to_play_vo("magicwheel_weapon","zmb_comment_vo","low",10,0,1,0,40);
break;
case "cheytac":
case "kbs":
var_01 thread scripts\cp\_vo::try_to_play_vo("magicwheel_weapon","zmb_comment_vo","low",10,0,1,0,40);
break;
default:
var_01 thread scripts\cp\_vo::try_to_play_vo("magicwheel_weapon","zmb_comment_vo","low",10,0,1,0,25);
break;
}
}
self notify("weapon_taken");
param_00 notify("weapon_taken");
param_00.var_BF6D = undefined;
playsoundatpos(self.origin,"zmb_wheel_wpn_acquired");
}
//Function Number: 34
func_B16A(param_00,param_01)
{
param_00 notify("weapon_purchased");
if(scripts\common\utility::istrue(param_00.var_9FCB))
{
wait(0.5);
}
var_02 = undefined;
if(scripts\cp\zombies\zmb_zombies_weapons::func_FFA6(param_00))
{
var_03 = param_00 scripts\cp\_utility::getvalidtakeweapon();
var_04 = scripts\cp\_utility::func_80D8(var_03);
param_00 takeweapon(var_03);
if(isdefined(param_00.var_C8A2[var_04]))
{
param_00.var_C8A2[var_04] = undefined;
param_00 notify("weapon_level_changed");
}
}
var_05 = scripts\cp\_utility::func_80D8(param_01);
param_00 scripts\cp\_utility::take_fists_weapon(param_00);
if(isdefined(param_00.var_13C00[var_05]))
{
param_01 = param_00.var_13C00[var_05];
}
if(param_00 scripts\cp\_weapon::func_385F(param_01) && is_magic_wheel_upgrades(param_00))
{
var_02 = get_camo_for_upgraded_weapon(var_05,param_00);
var_06 = scripts\common\utility::array_combine(function_00E3(param_01),[get_attachment_for_upgraded_weapon(param_01,param_00)]);
param_01 = param_00 scripts\cp\_weapon::func_E469(param_01,undefined,var_06,undefined,var_02);
param_01 = param_00 scripts\cp\_utility::func_12C6(param_01,undefined,undefined,1);
var_07 = scripts\cp\_utility::func_80D8(param_01);
var_08 = spawnstruct();
var_08.var_B111 = 2;
if(scripts\common\utility::istrue(level.magic_wheel_upgraded_pap2))
{
var_08.var_B111 = 3;
}
param_00.var_C8A2[var_07] = var_08;
param_00 notify("weapon_level_changed");
param_00 scripts\cp\_merits::func_D9AD("mt_purchased_weapon");
if(param_00 scripts\cp\_utility::func_9BA0("magic_wheel_upgrade"))
{
param_00 scripts\cp\_utility::func_C151("magic_wheel_upgrade");
}
}
else
{
var_06 = function_00E3(var_05);
var_02 = param_01 scripts\cp\_weapon::func_E469(var_02,undefined,var_08,undefined,undefined);
var_02 = param_01 scripts\cp\_utility::func_12C6(var_02,undefined,undefined,0);
var_08 = spawnstruct();
var_08.var_B111 = 1;
param_00.var_C8A2[var_05] = var_08;
param_00 scripts\cp\_merits::func_D9AD("mt_purchased_weapon");
param_00 notify("weapon_level_changed");
}
if(issubstr(param_01,"g18_") || level.script == "cp_final" && issubstr(param_01,"iw7_arclassic"))
{
param_00.var_8BA0 = 1;
}
if(issubstr(param_01,"udm45_"))
{
param_00 scripts\cp\_merits::func_D9AD("mt_udm_unlock");
}
if(issubstr(param_01,"rvn_"))
{
param_00 scripts\cp\_merits::func_D9AD("mt_rvn_unlock");
}
if(issubstr(param_01,"crdb_"))
{
param_00 scripts\cp\_merits::func_D9AD("mt_crdb_unlock");
}
if(issubstr(param_01,"vr_"))
{
param_00 scripts\cp\_merits::func_D9AD("mt_vr_unlock");
}
if(issubstr(param_01,"mp28_"))
{
param_00 scripts\cp\_merits::func_D9AD("mt_mp28_unlock");
}
if(issubstr(param_01,"minilmg_"))
{
param_00 scripts\cp\_merits::func_D9AD("mt_minilmg_unlock");
}
if(issubstr(param_01,"ba50cal_"))
{
param_00 scripts\cp\_merits::func_D9AD("mt_ba50cal_unlock");
}
if(issubstr(param_01,"mod2187_"))
{
param_00 scripts\cp\_merits::func_D9AD("mt_mod2187_unlock");
}
if(issubstr(param_01,"longshot_"))
{
param_00 scripts\cp\_merits::func_D9AD("mt_longshot_unlock");
}
if(issubstr(param_01,"gauss_"))
{
param_00 scripts\cp\_merits::func_D9AD("mt_gauss_unlock");
}
if(issubstr(param_01,"mag_"))
{
param_00 scripts\cp\_merits::func_D9AD("mt_mag_unlock");
}
if(issubstr(param_01,"unsalmg_"))
{
param_00 scripts\cp\_merits::func_D9AD("mt_unsalmg_unlock");
}
if(issubstr(param_01,"tacburst_"))
{
param_00 scripts\cp\_merits::func_D9AD("mt_tacburst_unlock");
}
param_00 notify("wor_item_pickup",param_01);
param_00 givemaxammo(param_01);
param_00 switchtoweapon(param_01);
}
//Function Number: 35
get_camo_for_upgraded_weapon(param_00,param_01)
{
var_02 = undefined;
if(isdefined(level.no_pap_camos) && scripts\common\utility::func_2286(level.no_pap_camos,param_00))
{
var_02 = undefined;
}
else if(scripts\common\utility::istrue(level.magic_wheel_upgraded_pap2) && isdefined(level.pap_2_camo))
{
var_02 = level.pap_2_camo;
}
else if(scripts\common\utility::istrue(level.magic_wheel_upgraded_pap1) && param_01 scripts\cp\_utility::func_9BA0("magic_wheel_upgrade") && isdefined(level.pap_2_camo))
{
var_02 = level.pap_2_camo;
}
else if(isdefined(level.pap_1_camo))
{
var_02 = level.pap_1_camo;
}
switch(param_00)
{
case "dischord":
case "iw7_dischord_zm_pap1":
var_02 = "camo20";
break;
case "facemelter":
case "iw7_facemelter_zm_pap1":
var_02 = "camo22";
break;
case "headcutter":
case "iw7_headcutter_zm_pap1":
var_02 = "camo21";
break;
case "shredder":
case "iw7_shredder_zm_pap1":
var_02 = "camo23";
break;
case "nunchucks":
var_02 = "camo222";
break;
case "iw7_cutie_zm":
var_02 = undefined;
break;
}
return var_02;
}
//Function Number: 36
get_attachment_for_upgraded_weapon(param_00,param_01)
{
if(issubstr(param_00,"venomx"))
{
return undefined;
}
if(issubstr(param_00,"nunchucks"))
{
return undefined;
}
if(issubstr(param_00,"dischord") || issubstr(param_00,"facemelter") || issubstr(param_00,"headcutter") || issubstr(param_00,"shredder"))
{
return "pap1";
}
if(scripts\common\utility::istrue(level.magic_wheel_upgraded_pap2))
{
return "pap2";
}
if(scripts\common\utility::istrue(level.magic_wheel_upgraded_pap1) && param_01 scripts\cp\_utility::func_9BA0("magic_wheel_upgrade"))
{
return "pap2";
}
return "pap1";
}
//Function Number: 37
is_magic_wheel_upgrades(param_00)
{
if(param_00 scripts\cp\_utility::func_9BA0("magic_wheel_upgrade"))
{
return 1;
}
if(scripts\common\utility::istrue(level.magic_wheel_upgraded_pap2))
{
return 1;
}
if(scripts\common\utility::istrue(level.magic_wheel_upgraded_pap1))
{
return 1;
}
return 0;
}
//Function Number: 38
func_10C4D(param_00,param_01,param_02)
{
level notify("activated" + param_00);
level endon("activated" + param_00);
level endon("deactivated" + param_00);
level endon("game_ended");
var_03 = undefined;
level.var_163F["fire_sale"] = 1;
scripts\common\utility::flag_set("fire_sale");
foreach(var_05 in level.var_B163)
{
if(!isdefined(var_05.var_2135))
{
continue;
}
if(var_05.var_2135 == level.var_A8E2)
{
var_05 sethintstring(&"COOP_INTERACTIONS_SPIN_WHEEL_FIRE_SALE");
var_03 = var_05;
continue;
}
thread func_100ED(var_05);
}
level thread func_4DB4(param_00,param_01,var_03);
foreach(var_08 in level.players)
{
if(isdefined(level.temporal_increase))
{
var_08 thread scripts\cp\zombies\_powerups::func_D73B(30 * level.temporal_increase,"fire_30");
continue;
}
var_08 thread scripts\cp\zombies\_powerups::func_D73B(30,"fire_30");
}
}
//Function Number: 39
func_4DB4(param_00,param_01,param_02)
{
level endon("game_ended");
var_03 = scripts\common\utility::waittill_any_timeout_1(param_01,"deactivated" + param_00,"activated" + param_00);
if(var_03 != "activated" + param_00)
{
level.var_163F["fire_sale"] = 0;
scripts\common\utility::func_6E2A("fire_sale");
foreach(var_05 in level.var_B163)
{
if(!isdefined(var_05.var_2135))
{
continue;
}
if(!isdefined(param_02))
{
func_BC3F();
}
else if(var_05 == param_02)
{
if(isdefined(level.magic_wheel_spin_hint))
{
var_05 sethintstring(level.magic_wheel_spin_hint);
}
else
{
var_05 sethintstring(&"CP_ZMB_INTERACTIONS_SPIN_WHEEL");
}
continue;
}
var_05 makeunusable();
thread func_8E95(var_05);
}
foreach(var_08 in level.players)
{
var_08.var_8B7B = undefined;
}
level notify("deactivated" + param_00);
var_0A = 1;
while(var_0A)
{
var_0B = 0;
foreach(var_08 in level.players)
{
if(scripts\common\utility::istrue(var_08.var_13103))
{
wait(0.25);
var_0B = 1;
continue;
}
}
if(!var_0B)
{
var_0A = 0;
}
}
wait(0.25);
}
}
//Function Number: 40
func_50DA(param_00)
{
level endon("game_ended");
param_00 scripts\common\utility::waittill_any_3("ready","weapon_taken");
func_8E95(param_00);
}