Files
IL-GSC/WW2/PC/ALL/maps/mp/mp_zombie_windmill_code.gsc
2023-10-27 03:49:01 -04:00

1430 lines
42 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\mp\mp_zombie_windmill_code.gsc
* Game: Call of Duty: WWII
* Platform: PC
* Function Count: 74
* Decompile Time: 1296 ms
* Timestamp: 10/27/2023 3:20:13 AM
*******************************************************************/
//Function Number: 1
ee_init()
{
ee_init_flags();
lib_0557::func_786C();
lib_0557::func_7846("quest_frank",::lib_0557::func_30D8,[],lib_0557::removed_quest_hint());
lib_0557::func_781E("quest_frank","step_find_frank",::ee_quest_step_find_frank,::lib_0557::func_30D8,lib_0557::removed_quest_hint());
lib_0557::func_781E("quest_frank","step_find_rope",::ee_quest_step_find_rope,::lib_0557::func_30D8,lib_0557::removed_quest_hint());
lib_0557::func_781E("quest_frank","step_find_rods",::ee_quest_step_find_rods,::lib_0557::func_30D8,lib_0557::removed_quest_hint());
lib_0557::func_781E("quest_frank","step_hang_frank",::ee_quest_step_hang_frank,::maps/mp/zombies/shotgun/_zombies_shotgun_exp_events::award_exp_small,lib_0557::removed_quest_hint());
lib_0557::func_781E("quest_frank","step_call_lightning",::ee_quest_step_call_lightning,::maps/mp/zombies/shotgun/_zombies_shotgun_exp_events::award_exp_small,lib_0557::removed_quest_hint());
lib_0557::func_781E("quest_frank","step_defend_frank",::ee_quest_step_defend_frank,::maps/mp/zombies/shotgun/_zombies_shotgun_exp_events::award_exp_smallish,lib_0557::removed_quest_hint());
lib_0557::func_781E("quest_frank","step_escort_frank",::ee_quest_step_escort_frank,::windmill_completion_rewards,lib_0557::removed_quest_hint());
lib_0557::func_7848("quest_frank");
thread ee_quest_step_find_frank_init();
thread ee_quest_step_find_rope_init();
thread ee_quest_step_find_rods_init();
thread ee_quest_step_hang_frank_init();
thread ee_quest_step_escort_frank_init();
}
//Function Number: 2
windmill_completion_rewards()
{
maps/mp/zombies/shotgun/_zombies_shotgun_exp_events::award_exp_med();
common_scripts\utility::func_3C8F("zmb_objectives_quest_end");
foreach(var_01 in level.var_744A)
{
var_01 lib_056A::func_4772(1);
var_01 thread maps\mp\gametypes\_hud_message::func_9102("zm_dlc3_ee_1_complete");
if(function_02A3())
{
var_01 ae_reportcomplexgameevent(43,[5,5]);
var_01 thread maps\mp\gametypes\_hud_message::func_9102("zm_camo_unlocked",1);
}
}
}
//Function Number: 3
ee_init_flags()
{
common_scripts\utility::func_3C87("ee_find_frank_part_head_found");
common_scripts\utility::func_3C87("ee_find_frank_part_torso_found");
common_scripts\utility::func_3C87("ee_find_frank_part_left_leg_found");
common_scripts\utility::func_3C87("ee_find_frank_part_right_leg_found");
common_scripts\utility::func_3C87("ee_find_frank_part_left_arm_found");
common_scripts\utility::func_3C87("ee_find_frank_part_right_arm_found");
common_scripts\utility::func_3C87("ee_find_rope_part_shot");
common_scripts\utility::func_3C87("ee_find_rope_branch_pull_complete");
common_scripts\utility::func_3C87("ee_find_rope_part_collected");
common_scripts\utility::func_3C87("ee_find_rods_rods_found");
common_scripts\utility::func_3C87("ee_hang_frank_arm_dropped");
common_scripts\utility::func_3C87("ee_hang_frank_arm_acquired");
common_scripts\utility::func_3C87("ee_hang_frank_windmill_jammed");
common_scripts\utility::func_3C87("ee_hang_frank_complete");
common_scripts\utility::func_3C87("ee_call_lightning_complete");
common_scripts\utility::func_3C87("ee_call_lightning_frank_fell");
common_scripts\utility::func_3C87("ee_hang_frank_defend_complete");
common_scripts\utility::func_3C87("ee_escort_frank_reached_battery");
common_scripts\utility::func_3C87("ee_escort_frank_soul_collection_complete");
common_scripts\utility::func_3C87("ee_escort_frank_reached_basement");
common_scripts\utility::func_3C87("ee_escort_frank_battery_collected");
common_scripts\utility::func_3C87("ee_escort_hilt_collected");
}
//Function Number: 4
audio_log_init()
{
var_00 = getent("lore_primary","script_noteworthy");
var_00.var_9D5E = getent(var_00.var_1A2,"targetname");
var_00 method_805C();
var_00.var_9D5E common_scripts\utility::func_9D9F();
audio_log_listen(var_00);
}
//Function Number: 5
audio_log_listen(param_00)
{
var_01 = getent("audio_log_hanging_model","targetname");
var_01 setcandamage(1);
var_01 waittill("damage");
var_02 = param_00.var_116 - var_01.var_116;
var_03 = sqrt(abs(var_02[2] * 2 / 800));
var_04 = 1 / var_03;
var_05 = var_02 * (var_04,var_04,0);
var_01 gravitymove(var_05,var_03);
var_01 rotateto(param_00.var_1D,var_03);
wait(var_03);
var_01.var_116 = param_00.var_116;
var_01 delete();
param_00 method_805B();
param_00.var_9D5E common_scripts\utility::func_9DA3();
}
//Function Number: 6
__________________step_find_frank____________________()
{
}
//Function Number: 7
ee_quest_step_find_frank_init()
{
level.zombie_parts_found = 0;
}
//Function Number: 8
ee_quest_step_find_frank()
{
ee_quest_step_find_frank_parts_think();
lib_0557::func_782D("quest_frank","step_find_frank");
}
//Function Number: 9
ee_quest_step_find_frank_parts_think()
{
ee_quest_step_find_frank_part_setup("head");
ee_quest_step_find_frank_part_setup("torso");
ee_quest_step_find_frank_part_setup("left_leg");
ee_quest_step_find_frank_part_setup("right_leg");
ee_quest_step_find_frank_part_setup("left_arm");
ee_quest_step_find_frank_part_setup("right_arm");
var_00 = ["ee_find_frank_part_head_found","ee_find_frank_part_torso_found","ee_find_frank_part_left_leg_found","ee_find_frank_part_right_leg_found","ee_find_frank_part_left_arm_found","ee_find_frank_part_right_arm_found"];
common_scripts\utility::func_3CA1(var_00);
}
//Function Number: 10
ee_quest_step_find_frank_part_setup(param_00)
{
var_01 = common_scripts\utility::func_46B7("frank_" + param_00,"targetname");
var_02 = common_scripts\utility::func_7A33(var_01);
var_02 thread ee_quest_step_find_frank_part_think(param_00);
}
//Function Number: 11
ee_quest_step_find_frank_part_think(param_00)
{
var_01 = self;
if(!isdefined(var_01.showing_part) || !var_01.showing_part)
{
var_01.showing_part = 1;
var_02 = spawn("script_model",var_01.var_116);
var_02.var_1D = var_01.var_1D;
var_02 setmodel(ee_quest_step_find_frank_get_modelname_by_partname(param_00));
var_03 = 0;
var_04 = 72;
var_05 = 70;
while(!var_03)
{
wait 0.05;
var_06 = level.var_744A;
foreach(var_08 in var_06)
{
if(distance2d(var_08.var_116,var_02.var_116) > var_04)
{
var_06 = common_scripts\utility::func_F93(var_06,var_08);
}
}
if(var_06.size <= 0)
{
continue;
}
foreach(var_08 in var_06)
{
if(!var_08 usebuttonpressed())
{
var_06 = common_scripts\utility::func_F93(var_06,var_08);
}
}
if(var_06.size <= 0)
{
continue;
}
foreach(var_08 in var_06)
{
if(!common_scripts\utility::func_AA4A(var_08 geteye(),var_08.var_1D,var_02.var_116,cos(var_05)))
{
var_06 = common_scripts\utility::func_F93(var_06,var_08);
}
}
if(var_06.size <= 0)
{
continue;
}
wait(0.2);
foreach(var_08 in var_06)
{
if(!common_scripts\utility::func_AA4A(var_08 geteye(),var_08.var_1D,var_02.var_116,cos(var_05)))
{
var_06 = common_scripts\utility::func_F93(var_06,var_08);
}
if(!var_08 usebuttonpressed())
{
var_06 = common_scripts\utility::func_F93(var_06,var_08);
}
}
if(var_06.size > 0)
{
var_03 = 1;
}
}
var_02 delete();
level.zombie_parts_found++;
common_scripts\utility::func_3C8F("ee_find_frank_part_" + param_00 + "_found");
}
}
//Function Number: 12
ee_quest_step_find_frank_get_modelname_by_partname(param_00)
{
switch(param_00)
{
case "head":
return "zom_ger_head_fdr_02_gib";
case "torso":
return "jfull_zom_infantrya_torso_slice";
case "left_arm":
return "jfull_zom_infantrya_l_arm_slice";
case "right_arm":
return "jfull_zom_infantrya_r_arm_slice";
case "left_leg":
return "jfull_zom_infantrya_l_leg_slice";
case "right_leg":
return "jfull_zom_infantrya_r_leg_slice";
default:
break;
}
}
//Function Number: 13
warp_find_frank_complete()
{
common_scripts\utility::func_3C8F("ee_find_frank_part_head_found");
common_scripts\utility::func_3C8F("ee_find_frank_part_torso_found");
common_scripts\utility::func_3C8F("ee_find_frank_part_left_leg_found");
common_scripts\utility::func_3C8F("ee_find_frank_part_right_leg_found");
common_scripts\utility::func_3C8F("ee_find_frank_part_left_arm_found");
common_scripts\utility::func_3C8F("ee_find_frank_part_right_arm_found");
level.zombie_parts_found = 6;
}
//Function Number: 14
cheat_show_all_bodyparts()
{
var_00 = ["head","torso","left_leg","right_leg","left_arm","right_arm"];
foreach(var_02 in var_00)
{
var_03 = common_scripts\utility::func_46B7("frank_" + var_02,"targetname");
foreach(var_05 in var_03)
{
var_05 thread ee_quest_step_find_frank_part_think(var_02);
}
}
}
//Function Number: 15
________________step_find_rope______________________()
{
}
//Function Number: 16
ee_quest_step_find_rope_init()
{
var_00 = getent("rope_pull_animorg","targetname");
var_01 = getent("rope_fall","targetname");
var_01 method_8278("zmb_windmill_rope_hanging");
var_00 method_8278("zmb_windmill_branch_start");
thread ee_quest_step_find_rope_waitfor_rope_shot();
common_scripts\utility::func_3C9F("ee_find_rope_part_shot");
if(!common_scripts\utility::func_3C77("ee_find_rope_part_collected"))
{
level waittill("round complete");
level waittill("zombie_wave_started");
thread ee_quest_step_find_rope_waitfor_rope_recovered();
common_scripts\utility::func_3C9F("ee_find_rope_part_collected");
}
ee_quest_step_find_rope_cleanup();
}
//Function Number: 17
ee_quest_step_find_rope()
{
common_scripts\utility::func_3C9F("ee_find_rope_part_collected");
lib_0557::func_782D("quest_frank","step_find_rope");
}
//Function Number: 18
ee_quest_step_find_rope_waitfor_rope_shot()
{
level endon("ee_find_rope_part_shot");
var_00 = getent("rope_bundle_damage_trig","targetname");
var_00 method_80B0(var_00 method_85A0() | 256);
var_00 waittill("damage");
var_01 = getent("rope_fall","targetname");
var_01 method_8278("zmb_windmill_rope_fall");
var_00 lib_0378::func_8D74("frank_rope_shot");
wait(getanimlength(%zmb_windmill_rope_fall));
var_01 scriptmodelclearanim();
var_01 delete();
common_scripts\utility::func_3C8F("ee_find_rope_part_shot");
}
//Function Number: 19
ee_quest_step_find_rope_waitfor_rope_recovered()
{
level endon("ee_find_rope_part_collected");
var_00 = getent("rope_pull_animorg","targetname");
var_01 = getent("branch_pull_trigger","targetname");
var_02 = getent("rope_collect_trigger","targetname");
var_03 = 0;
var_04 = 0;
var_00 scriptmodelclearanim();
var_00 method_8278("zmb_windmill_rope_trav");
wait(getanimlength(%zmb_windmill_rope_trav));
var_00 scriptmodelclearanim();
var_00 method_8278("zmb_windmill_rope_water_loop");
while(!common_scripts\utility::func_3C77("ee_find_rope_branch_pull_complete"))
{
while(!ee_quest_step_find_rope_return_branch_pulled(var_01) && !common_scripts\utility::func_3C77("ee_find_rope_branch_pull_complete"))
{
wait 0.05;
}
if(!var_03)
{
var_00 method_8278("zmb_windmill_rope_recover");
var_03 = 1;
var_00 lib_0378::func_8D74("frank_pull_branch","pulling");
}
else
{
var_00 scriptmodelpauseanim(0);
var_00 lib_0378::func_8D74("frank_pull_branch","pulling");
}
var_05 = gettime();
while(ee_quest_step_find_rope_return_branch_pulled(var_01) && !common_scripts\utility::func_3C77("ee_find_rope_branch_pull_complete"))
{
wait 0.05;
var_04 = var_04 + gettime() - var_05;
var_05 = gettime();
if(var_04 >= getanimlength(%zmb_windmill_rope_recover) * 1000 - 100)
{
common_scripts\utility::func_3C8F("ee_find_rope_branch_pull_complete");
var_00 lib_0378::func_8D74("frank_pull_branch","end");
break;
}
}
var_00 scriptmodelpauseanim(1);
var_00 lib_0378::func_8D74("frank_pull_branch","stopped");
}
var_02 waittill("trigger");
var_00 method_8495("zmb_windmill_branch_end",var_00.var_116,var_00.var_1D);
var_00 hidepart("rope");
var_00 hidepart("bit_T");
var_00 hidepart("bit_B");
var_06 = 21;
for(var_07 = 1;var_07 <= var_06;var_07++)
{
var_00 hidepart("dangle_0" + var_07);
}
common_scripts\utility::func_3C8F("ee_find_rope_part_collected");
}
//Function Number: 20
ee_quest_step_find_rope_return_branch_pulled(param_00)
{
var_01 = level.var_744A;
var_02 = param_00;
var_03 = 0;
foreach(var_05 in var_01)
{
if(var_05 istouching(var_02))
{
if(var_05 usebuttonpressed())
{
var_03 = 1;
}
}
}
return var_03;
}
//Function Number: 21
ee_quest_step_find_rope_cleanup()
{
}
//Function Number: 22
warp_rope_shot()
{
common_scripts\utility::func_3C8F("ee_find_rope_part_shot");
}
//Function Number: 23
warp_rope_recovered()
{
warp_find_frank_complete();
common_scripts\utility::func_3C8F("ee_find_rope_part_shot");
common_scripts\utility::func_3C8F("ee_find_rope_branch_pull_complete");
common_scripts\utility::func_3C8F("ee_find_rope_part_collected");
}
//Function Number: 24
________________step_find_rods_______________________()
{
}
//Function Number: 25
ee_quest_step_find_rods_init()
{
maps/mp/zombies/shotgun/_zombies_shotgun_drop_pod::func_D5();
level.drop_pod_rods = getentarray("drop_pod_rod","targetname");
foreach(var_01 in level.drop_pod_rods)
{
var_01 method_805C();
}
level.num_rods_to_find = level.drop_pod_rods.size;
level.num_rods_found = 0;
}
//Function Number: 26
ee_quest_step_find_rods()
{
level waittill("round complete");
level waittill("zombie_wave_started");
wait(5);
ee_quest_step_find_rods_spawn_pod_and_rods();
common_scripts\utility::func_3C9F("ee_find_rods_rods_found");
lib_0557::func_782D("quest_frank","step_find_rods");
}
//Function Number: 27
ee_quest_step_find_rods_spawn_pod_and_rods()
{
level endon("ee_find_rods_rods_found");
var_00 = common_scripts\utility::func_46B5("drop_pod_position","targetname");
thread maps/mp/zombies/shotgun/_zombies_shotgun_drop_pod::drop_pod_spawn_drop();
if(!common_scripts\utility::func_3C77("ee_find_rods_rods_found"))
{
while(!isdefined(var_00.spawned_model))
{
wait 0.05;
}
foreach(var_02 in level.drop_pod_rods)
{
var_03 = var_00.spawned_model.var_116 - var_00.pod_model.var_116;
var_02.var_116 = var_02.var_116 + var_03;
var_02 method_8449(var_00.spawned_model);
var_02 common_scripts\utility::func_2CBE(0.05,::method_805B);
}
while(isdefined(var_00.clip_fall))
{
wait 0.05;
}
var_05 = common_scripts\utility::func_46B7("drop_pod_rod_target_loc","targetname");
for(var_06 = 0;var_06 < level.drop_pod_rods.size;var_06++)
{
thread ee_quest_step_find_rods_throw_rod(level.drop_pod_rods[var_06],var_05[var_06]);
thread ee_quest_step_find_rods_use_rod(level.drop_pod_rods[var_06]);
}
}
}
//Function Number: 28
ee_quest_step_find_rods_throw_rod(param_00,param_01)
{
level endon("ee_find_rods_rods_found");
param_00 unlink();
var_02 = 0.25;
param_00 moveto(param_01.var_116,var_02);
param_00 rotateto(param_01.var_1D,var_02);
wait(var_02);
param_00.var_116 = param_01.var_116;
}
//Function Number: 29
ee_quest_step_find_rods_use_rod(param_00)
{
level endon("ee_find_rods_rods_found");
wait(2);
param_00 lib_0547::func_AC41(" ");
param_00 waittill("player_used",var_01);
param_00 delete();
level.num_rods_found++;
if(level.num_rods_found >= level.num_rods_to_find)
{
common_scripts\utility::func_3C8F("ee_find_rods_rods_found");
}
}
//Function Number: 30
warp_rods_found()
{
warp_rope_recovered();
common_scripts\utility::func_3C8F("ee_find_rods_rods_found");
level.num_rods_found = level.num_rods_to_find;
}
//Function Number: 31
________________step_hang_frank______________________()
{
}
//Function Number: 32
ee_quest_step_hang_frank_init()
{
level.total_parts_placed = 0;
level.required_fan_org_angle = 90;
thread ee_quest_step_hang_frank_place_parts_think();
thread ee_quest_step_hang_frank_acquire_wustling_arm();
thread ee_quest_step_hang_frank_jam_windmill();
}
//Function Number: 33
ee_quest_step_hang_frank()
{
common_scripts\utility::func_3C9F("ee_hang_frank_complete");
ee_quest_step_hang_frank_cleanup();
lib_0557::func_782D("quest_frank","step_hang_frank");
}
//Function Number: 34
ee_quest_step_hang_frank_acquire_wustling_arm()
{
level endon("ee_hang_frank_complete");
wait(10);
level.var_A41["zombie_heavy"]["post_model"] = ::ee_quest_step_hang_frank_acquire_wustling_arm_spawn_func;
var_00 = lib_0547::func_4090("zombie_heavy");
foreach(var_02 in var_00)
{
var_02 thread ee_quest_step_hang_frank_acquire_wustling_arm_spawn_func();
}
common_scripts\utility::func_3C9F("ee_hang_frank_arm_dropped");
level.var_A41["zombie_heavy"]["post_model"] = ::lib_054D::func_AC1E;
common_scripts\utility::func_3C9F("ee_hang_frank_arm_acquired");
}
//Function Number: 35
ee_quest_step_hang_frank_acquire_wustling_arm_spawn_func()
{
self notify("running_arm_sever_spawn_func");
self endon("running_arm_sever_spawn_func");
self endon("death");
level endon("ee_hang_frank_arm_dropped");
while(isdefined(self))
{
var_00 = lib_0547::func_4090("zombie_heavy");
if(var_00.size > 1)
{
var_00 = common_scripts\utility::func_F93(var_00,self);
foreach(var_02 in var_00)
{
if(distance(var_02.var_116,self.var_116) <= 64 && isdefined(var_02.var_5542) && var_02.var_5542 == 1)
{
var_03 = 36;
if(isdefined(var_02.var_28D2))
{
var_04 = distance(self.var_116,var_02.var_28D2.var_116);
var_05 = distance(var_02.var_116,var_02.var_28D2.var_116) - var_03;
if(var_04 <= var_05)
{
thread ee_quest_step_hang_frank_acquire_wustling_arm_drop_arm(self.var_116 - var_02.var_116);
return;
}
}
}
}
wait 0.05;
continue;
}
wait 0.05;
}
}
//Function Number: 36
ee_quest_step_hang_frank_acquire_wustling_arm_drop_arm(param_00)
{
var_01 = self;
wait(1.25);
var_02 = var_01.var_116;
lib_0547::func_5A85(self.var_116,param_00);
var_02 = common_scripts\utility::func_348B(var_02,32);
var_03 = spawn("script_model",var_02 + (0,0,4));
var_03 setmodel("zmw_wustling_arm_01");
var_03 hudoutlineenableforclients(level.var_744A,2,1);
common_scripts\utility::func_3C8F("ee_hang_frank_arm_dropped");
var_03 lib_0547::func_AC41(" ");
var_03 waittill("player_used");
var_03 hudoutlinedisableforclients(level.var_744A);
var_03 delete();
common_scripts\utility::func_3C8F("ee_hang_frank_arm_acquired");
}
//Function Number: 37
ee_quest_step_hang_frank_jam_windmill()
{
var_00 = getent("windmill_jam_trigger","targetname");
var_01 = getent("wustling_arm_jam_model","targetname");
var_02 = getent("wustling_arm_jam_model_start","targetname");
var_03 = getent("wustling_arm_jam_model_end","targetname");
var_01.var_116 = var_02.var_116;
var_01.var_1D = var_02.var_1D;
var_01 method_805C();
common_scripts\utility::func_3C9F("ee_hang_frank_arm_acquired");
for(;;)
{
var_00 waittill("trigger");
level thread common_scripts\_exploder::func_88E(204);
var_01 lib_0378::func_8D74("wustling_arm_jam");
maps/mp/mp_zombie_windmill_util::windmill_stop_idle();
var_01 method_805B();
var_01 moveto(var_03.var_116,0.5,0,0.05);
var_01 rotateto(var_03.var_1D,0.5,0,0.05);
level waittill("done_accelerating");
iprintlnbold("JAMMED");
common_scripts\utility::func_3C8F("ee_hang_frank_windmill_jammed");
var_00 waittill("trigger");
maps/mp/mp_zombie_windmill_util::windmill_idle_with_speed(1);
var_01 method_805C();
var_01.var_116 = var_02.var_116;
var_01.var_1D = var_02.var_1D;
level waittill("done_accelerating");
iprintlnbold("UN-JAMMED");
common_scripts\utility::func_3C7B("ee_hang_frank_windmill_jammed");
wait(1);
}
}
//Function Number: 38
ee_quest_step_hang_frank_place_parts_think()
{
level endon("ee_hang_frank_complete");
var_00 = 0;
var_01 = 0;
var_02 = getent("windmill_place_part_trig","targetname");
var_03 = getent("windmill_fan","targetname");
var_04 = getent("frank_fanblade_models_org","targetname");
var_05 = getentarray("frank_fanblade_models","script_noteworthy");
foreach(var_07 in var_05)
{
var_07 method_8449(var_04);
var_07 method_805C();
}
var_04 method_8449(var_03);
common_scripts\utility::func_3C9F("ee_hang_frank_arm_acquired");
while(var_00 < 6 || var_01 < level.drop_pod_rods.size)
{
common_scripts\utility::func_3C9F("ee_hang_frank_windmill_jammed");
var_09 = abs(var_03.var_1D[0] % 90);
var_0A = 5;
if(ee_quest_step_hang_frank_check_if_fan_rot_correct(var_03))
{
while(var_00 < 6 || var_01 < level.drop_pod_rods.size)
{
var_02 waittill("trigger");
if(!common_scripts\utility::func_3C77("ee_hang_frank_windmill_jammed"))
{
break;
}
else
{
var_0B = ee_quest_step_hang_frank_check_if_fan_rot_correct(var_03);
if(!var_0B)
{
break;
}
}
if(!common_scripts\utility::func_3C77("ee_find_rope_part_collected"))
{
continue;
}
ee_quest_step_hang_frank_place_acquired_parts();
var_00 = level.zombie_parts_found;
var_01 = level.num_rods_found;
level.total_parts_placed = var_00 + var_01;
}
continue;
}
while(common_scripts\utility::func_3C77("ee_hang_frank_windmill_jammed"))
{
wait 0.05;
}
wait 0.05;
}
common_scripts\utility::func_3C8F("ee_hang_frank_complete");
}
//Function Number: 39
ee_quest_step_hang_frank_place_acquired_parts()
{
var_00 = level.zombie_parts_found + level.num_rods_found;
if(var_00 <= level.total_parts_placed)
{
return;
}
if(level.num_rods_found >= 2)
{
ee_quest_step_hang_frank_show_part_with_targetname("frank_hang_rod01");
ee_quest_step_hang_frank_show_part_with_targetname("frank_hang_rod02");
}
else if(level.num_rods_found == 1)
{
ee_quest_step_hang_frank_show_part_with_targetname("frank_hang_rod01");
}
if(common_scripts\utility::func_3C77("ee_find_frank_part_head_found"))
{
ee_quest_step_hang_frank_show_part_with_targetname("frank_hang_head");
}
if(common_scripts\utility::func_3C77("ee_find_frank_part_torso_found"))
{
ee_quest_step_hang_frank_show_part_with_targetname("frank_hang_torso");
}
if(common_scripts\utility::func_3C77("ee_find_frank_part_left_leg_found"))
{
ee_quest_step_hang_frank_show_part_with_targetname("frank_hang_ll");
}
if(common_scripts\utility::func_3C77("ee_find_frank_part_right_leg_found"))
{
ee_quest_step_hang_frank_show_part_with_targetname("frank_hang_rl");
}
if(common_scripts\utility::func_3C77("ee_find_frank_part_left_arm_found"))
{
ee_quest_step_hang_frank_show_part_with_targetname("frank_hang_la");
}
if(common_scripts\utility::func_3C77("ee_find_frank_part_right_arm_found"))
{
ee_quest_step_hang_frank_show_part_with_targetname("frank_hang_ra");
}
}
//Function Number: 40
ee_quest_step_hang_frank_show_part_with_targetname(param_00)
{
var_01 = getent(param_00,"targetname");
var_02 = getentarray(var_01.var_1A2,"targetname");
var_01 method_805B();
foreach(var_04 in var_02)
{
var_04 method_805B();
}
}
//Function Number: 41
ee_quest_step_hang_frank_delete_part_with_targetname(param_00)
{
var_01 = getent(param_00,"targetname");
if(!isdefined(var_01))
{
return;
}
var_02 = getentarray(var_01.var_1A2,"targetname");
if(var_02.size > 0)
{
foreach(var_04 in var_02)
{
var_04 unlink();
var_04 delete();
}
}
if(isdefined(var_01))
{
var_01 unlink();
var_01 delete();
}
}
//Function Number: 42
ee_quest_step_hang_frank_check_if_fan_rot_correct(param_00)
{
var_01 = abs(param_00.var_1D[0] % 90);
var_02 = 5;
if(var_01 < var_02 || var_01 > 90 - var_02)
{
if(isdefined(level.required_fan_org_angle))
{
if(abs(level.required_fan_org_angle - param_00.var_1D[0]) < var_02)
{
return 1;
}
return 0;
}
return 1;
}
return 0;
}
//Function Number: 43
ee_quest_step_hang_frank_cleanup()
{
}
//Function Number: 44
warp_hang_frank()
{
warp_rods_found();
common_scripts\utility::func_3C8F("ee_hang_frank_arm_dropped");
common_scripts\utility::func_3C8F("ee_hang_frank_arm_acquired");
common_scripts\utility::func_3C8F("ee_hang_frank_complete");
ee_quest_step_hang_frank_place_acquired_parts();
var_00 = getent("windmill_fan","targetname");
var_00.current_speed = 0;
wait(1);
var_00.var_1D = (270,var_00.var_1D[1],var_00.var_1D[2]);
wait(2);
}
//Function Number: 45
cheat_give_wustling_arm()
{
common_scripts\utility::func_3C8F("ee_hang_frank_arm_dropped");
common_scripts\utility::func_3C8F("ee_hang_frank_arm_acquired");
}
//Function Number: 46
___________step_call_lightning__________()
{
}
//Function Number: 47
ee_quest_step_call_lightning_init()
{
}
//Function Number: 48
ee_quest_step_call_lightning()
{
thread ee_quest_step_call_lightning_think();
common_scripts\utility::func_3C9F("ee_call_lightning_complete");
thread ee_quest_step_call_lightning_do_strike();
lib_0557::func_782D("quest_frank","step_call_lightning");
}
//Function Number: 49
ee_quest_step_call_lightning_think()
{
level endon("ee_call_lightning_complete");
if(!common_scripts\utility::func_3C77("ee_call_lightning_complete"))
{
var_00 = getent("windmill_fan","targetname");
level.windmill_charged = 0;
while(!level.windmill_charged)
{
ee_quest_step_call_lightning_monitor_progress_for_round(var_00);
if(var_00.var_1D[0] != 270 || var_00.current_speed != 0)
{
level.windmill_charged = 0;
wait(10);
}
wait 0.05;
}
wait(5);
common_scripts\utility::func_3C8F("ee_call_lightning_complete");
}
}
//Function Number: 50
ee_quest_step_call_lightning_monitor_progress_for_round(param_00)
{
level endon("round complete");
for(;;)
{
if(param_00.var_1D[0] == 270 && param_00.current_speed == 0)
{
level.windmill_charged = 1;
}
else
{
level.windmill_charged = 0;
}
wait 0.05;
}
}
//Function Number: 51
ee_quest_step_call_lightning_do_strike()
{
common_scripts\utility::func_3C9F("ee_call_lightning_complete");
var_00 = getent("frank_fanblade_models_org","targetname");
maps/mp/zombies/sg_events_v1/extermination::func_5D67(var_00.var_116 - (0,0,40));
level thread common_scripts\_exploder::func_88E(202);
wait(randomfloatrange(0.05,0.07));
maps/mp/zombies/sg_events_v1/extermination::func_5D67(var_00.var_116 - (0,0,40));
wait(randomfloatrange(0.05,0.07));
thread maps/mp/zombies/sg_events_v1/extermination::func_5D67(var_00.var_116 - (0,0,40));
lib_0378::func_8D74("call_lightning_do_strike",var_00.var_116 - (0,0,40));
ee_quest_step_hang_frank_delete_part_with_targetname("frank_hang_head");
ee_quest_step_hang_frank_delete_part_with_targetname("frank_hang_torso");
ee_quest_step_hang_frank_delete_part_with_targetname("frank_hang_ll");
ee_quest_step_hang_frank_delete_part_with_targetname("frank_hang_rl");
ee_quest_step_hang_frank_delete_part_with_targetname("frank_hang_la");
ee_quest_step_hang_frank_delete_part_with_targetname("frank_hang_ra");
ee_quest_step_call_lightning_frank_fall();
}
//Function Number: 52
ee_quest_step_call_lightning_frank_fall()
{
level.frank_escort_health = 100;
maps/mp/mp_zombie_windmill_util::spawn_frank();
level.frank_dudebroman method_805C();
var_00 = getent("frank_fall_animorg","targetname");
level.frank_dudebroman setorigin(var_00.var_116 - (0,0,20),0);
level.frank_dudebroman.var_1D = var_00.var_1D - (0,90,0);
wait 0.05;
var_01 = "s2_zom_frank_lightning_fall";
level.frank_dudebroman scragentsetscripted(1);
level.frank_dudebroman maps/mp/agents/_scripted_agent_anim_util::func_8732(1,"ScriptedAnimation");
level.frank_dudebroman method_839C("anim deltas");
level.frank_dudebroman scragentsetorientmode("face angle abs",var_00.var_1D - (0,90,0));
level.frank_dudebroman method_839D("noclip");
level.frank_dudebroman common_scripts\utility::func_2CBE(0.05,::method_805B);
lib_0378::func_8D74("call_lightning_frank_fall",level.frank_dudebroman);
level.frank_dudebroman maps/mp/agents/_scripted_agent_anim_util::func_71FA(var_01,0,1,"scripted_anim");
level.frank_dudebroman maps/mp/agents/_scripted_agent_anim_util::func_8732(0,"ScriptedAnimation");
level.frank_dudebroman scragentsetscripted(0);
level.frank_dudebroman method_839D("gravity");
wait 0.05;
var_00 = getent("frank_fall_animorg","targetname");
level.frank_dudebroman scragentsetscripted(1);
level.frank_dudebroman maps/mp/agents/_scripted_agent_anim_util::func_8732(1,"ScriptedAnimation");
level.frank_dudebroman method_839C("anim deltas");
level.frank_dudebroman scragentsetorientmode("face angle abs",var_00.var_1D);
level.frank_dudebroman method_839D("noclip");
var_01 = "s2_zom_frank_lightning_lay_loop";
level.frank_dudebroman thread maps/mp/agents/_scripted_agent_anim_util::func_71FA(var_01,0,1,"frank_getup");
common_scripts\utility::func_3C8F("ee_call_lightning_frank_fell");
}
//Function Number: 53
warp_call_lightning()
{
warp_hang_frank();
common_scripts\utility::func_3C8F("ee_call_lightning_complete");
}
//Function Number: 54
_____________step_defend_frank____________()
{
}
//Function Number: 55
ee_quest_step_defend_frank_init()
{
}
//Function Number: 56
ee_quest_step_defend_frank()
{
level waittill("zombie_wave_started");
ee_quest_step_defend_frank_think();
if(isdefined(level.defend_tag_org))
{
level.var_8E3 = common_scripts\utility::func_F93(level.var_8E3,level.defend_tag_org);
level.defend_tag_org delete();
}
common_scripts\utility::func_3C8F("ee_hang_frank_defend_complete");
lib_0557::func_782D("quest_frank","step_defend_frank");
}
//Function Number: 57
ee_quest_step_defend_frank_think()
{
level endon("round complete");
level endon("ee_hang_frank_defend_complete");
while(!isdefined(level.frank_dudebroman))
{
wait 0.05;
}
common_scripts\utility::func_3C9F("ee_call_lightning_frank_fell");
if(!common_scripts\utility::func_3C77("ee_hang_frank_defend_complete"))
{
level.frank_escort_health = 100;
level.defend_tag_org = spawn("script_model",level.frank_dudebroman gettagorigin("J_SpineLower"));
level.defend_tag_org setmodel("tag_origin");
level.defend_tag_org thread maps/mp/mp_zombies_soul_collection::func_170B(999,256,512,"soul_collected_for_frank",undefined,"tag_origin",undefined,"tag_origin");
var_00 = 250;
var_01 = 1;
for(;;)
{
level waittill("soul_collected_for_frank",var_02,var_03);
if(isdefined(var_03))
{
switch(var_03)
{
case "zombie_generic":
level.frank_escort_health = level.frank_escort_health + 6 * var_01;
break;
case "zombie_berserker":
level.frank_escort_health = level.frank_escort_health + 6 * var_01;
break;
case "zombie_exploder":
level.frank_escort_health = level.frank_escort_health + 12 * var_01;
break;
case "zombie_heavy":
level.frank_escort_health = level.frank_escort_health + 30 * var_01;
break;
case "zombie_sizzler":
level.frank_escort_health = level.frank_escort_health + 12 * var_01;
break;
case "zombie_assassin":
level.frank_escort_health = level.frank_escort_health + 100 * var_01;
break;
case "zombie_fireman":
level.frank_escort_health = level.frank_escort_health + 200 * var_01;
break;
default:
level.frank_escort_health = level.frank_escort_health + 10;
break;
}
continue;
}
level.frank_escort_health = level.frank_escort_health + 10;
}
}
}
//Function Number: 58
warp_defend_frank()
{
warp_call_lightning();
level.frank_escort_health = 1000;
}
//Function Number: 59
_____________step_escort_frank____________()
{
}
//Function Number: 60
ee_quest_step_escort_frank_init()
{
var_00 = getent("escort_battery","targetname");
var_00 method_805C();
var_01 = getent("wine_cellar_batt","targetname");
var_01 method_805C();
}
//Function Number: 61
ee_quest_step_escort_frank()
{
level waittill("zombie_wave_started");
wait(3);
ee_quest_step_escort_frank_wake_up_anim();
if(!common_scripts\utility::func_3C77("ee_escort_frank_reached_battery"))
{
var_00 = 0;
var_00 = ee_quest_step_escort_frank_move_to_battery_destination();
if((!isdefined(var_00) || !var_00) && !common_scripts\utility::func_3C77("ee_escort_frank_reached_battery"))
{
return;
}
else
{
common_scripts\utility::func_3C8F("ee_escort_frank_reached_battery");
}
level waittill("round complete");
var_01 = 0;
if(level.var_A980 % 3 == 0)
{
var_01 = var_01 + 24;
}
else
{
var_01 = 14;
}
wait(var_01);
level.frank_dudebroman.var_480F = 0;
level.frank_dudebroman.var_CE = 0;
}
if(!common_scripts\utility::func_3C77("ee_escort_frank_reached_basement"))
{
var_00 = 0;
var_00 = ee_quest_step_escort_frank_move_to_door_destination();
}
if(common_scripts\utility::func_3C77("ee_escort_frank_soul_collection_complete"))
{
var_00 = 1;
}
else
{
var_00 = 0;
}
if(isdefined(var_00) && var_00)
{
common_scripts\utility::func_3C8F("ee_escort_frank_reached_basement");
ee_quest_step_escort_frank_drop_charged_battery();
ee_quest_step_escort_frank_collect_prize_think();
lib_0557::func_782D("quest_frank","step_escort_frank");
return;
}
if(common_scripts\utility::func_3C77("ee_escort_frank_soul_collection_complete"))
{
killfxontag(level.var_611["battery_glow_finished"],level.frank_battery.fx_tag,"tag_origin");
}
else
{
killfxontag(level.var_611["battery_glow"],level.frank_battery.fx_tag,"tag_origin");
playfx(level.var_611["dlc_zmb_dig_02_uber_explode"],level.frank_battery.fx_tag.var_116);
}
level.frank_battery.fx_tag delete();
level.frank_battery delete();
}
//Function Number: 62
ee_quest_step_escort_frank_wake_up_anim()
{
level notify("frank_getup");
common_scripts\utility::func_3C9F("ee_call_lightning_frank_fell");
if(isdefined(level.frank_dudebroman) && isalive(level.frank_dudebroman))
{
level.frank_dudebroman endon("death");
level.frank_dudebroman maps/mp/agents/_scripted_agent_anim_util::func_8732(0,"ScriptedAnimation");
level.frank_dudebroman scragentsetscripted(0);
level.frank_dudebroman method_839D("gravity");
wait 0.05;
var_00 = getent("frank_fall_animorg","targetname");
level.frank_dudebroman scragentsetscripted(1);
level.frank_dudebroman maps/mp/agents/_scripted_agent_anim_util::func_8732(1,"ScriptedAnimation");
level.frank_dudebroman method_839C("anim deltas");
level.frank_dudebroman scragentsetorientmode("face angle abs",var_00.var_1D - (0,90,0));
level.frank_dudebroman method_839D("noclip");
var_01 = "s2_zom_frank_lightning_getup";
level.frank_dudebroman maps/mp/agents/_scripted_agent_anim_util::func_71FA(var_01,0,1,"scripted_anim");
level.frank_dudebroman.var_480F = 0;
level.frank_dudebroman.var_CE = 0;
level.frank_dudebroman maps/mp/agents/_agent_common::func_83FD(level.frank_escort_health);
level.frank_dudebroman maps/mp/agents/_scripted_agent_anim_util::func_8732(0,"ScriptedAnimation");
level.frank_dudebroman scragentsetscripted(0);
level.frank_dudebroman method_839D("gravity");
}
}
//Function Number: 63
ee_quest_step_escort_frank_move_to_battery_destination()
{
level endon("ee_escort_frank_reached_battery");
level.frank_dudebroman endon("death");
for(var_00 = 0;var_00 < level.frank_dudebroman.waypoints.size;var_00++)
{
level.frank_dudebroman.var_1928 = level.frank_dudebroman.waypoints[var_00];
while(distance(level.frank_dudebroman.var_116,level.frank_dudebroman.waypoints[var_00].var_116) > 48)
{
wait 0.05;
}
if(isdefined(level.frank_dudebroman.waypoints[var_00].var_165))
{
var_01 = level.frank_dudebroman.waypoints[var_00].var_165;
if(var_01 == "frank_start_godon_node")
{
level.frank_dudebroman.var_480F = 1;
level.frank_dudebroman.var_CE = 1;
}
}
}
return 1;
}
//Function Number: 64
ee_quest_step_escort_frank_unset_goal()
{
level.frank_dudebroman.var_1928 = undefined;
}
//Function Number: 65
ee_quest_step_escort_frank_move_to_door_destination()
{
level.frank_dudebroman endon("death");
level endon("ee_escort_frank_reached_basement");
level.battery_drop_org = level.frank_dudebroman.var_116;
ee_quest_step_escort_frank_battery_setup();
thread ee_quest_step_escort_frank_soul_collection();
var_00 = common_scripts\utility::func_46B5("frank_second_path_start","targetname");
level.frank_dudebroman.waypoints = var_00 maps/mp/zombies/sg_events_v1/very_important_zombie::basic_vip_get_waypoints(level.frank_dudebroman);
for(var_01 = 0;var_01 < level.frank_dudebroman.waypoints.size;var_01++)
{
level.frank_dudebroman.var_1928 = level.frank_dudebroman.waypoints[var_01];
while(distance(level.frank_dudebroman.var_116,level.frank_dudebroman.waypoints[var_01].var_116) > 48)
{
level.battery_drop_org = level.frank_dudebroman.var_116;
wait 0.05;
}
}
if(isdefined(level.frank_dudebroman))
{
level.frank_dudebroman common_scripts\utility::func_2CBE(0.05,::dodamage,level.frank_dudebroman.var_BC * 2,level.frank_dudebroman.var_116);
}
return 1;
}
//Function Number: 66
ee_quest_step_escort_frank_battery_setup()
{
if(!isdefined(level.frank_battery) || !isdefined(level.frank_battery.fx_tag))
{
level.frank_battery = getent("escort_battery","targetname");
level.frank_battery method_805B();
level.frank_battery.fx_tag = spawn("script_model",level.frank_battery.var_116);
level.frank_battery.fx_tag setmodel("tag_origin");
level.frank_battery.fx_tag method_8449(level.frank_battery,"tag_origin");
playfxontag(level.var_611["battery_glow"],level.frank_battery.fx_tag,"tag_origin");
level.frank_battery.var_116 = level.frank_dudebroman gettagorigin("J_Wrist_LE");
level.frank_battery.var_1D = level.frank_dudebroman gettagangles("J_Wrist_LE");
level.frank_battery.var_116 = level.frank_battery.var_116 - anglestoup(level.frank_battery.var_1D) * 2;
level.frank_battery.var_116 = level.frank_battery.var_116 + anglestoforward(level.frank_battery.var_1D) * 3;
level.frank_battery.var_116 = level.frank_battery.var_116 - anglestoright(level.frank_battery.var_1D) * 3;
level.frank_battery method_8449(level.frank_dudebroman,"J_Wrist_LE");
}
}
//Function Number: 67
ee_quest_step_escort_frank_soul_collection()
{
level.frank_dudebroman endon("death");
level.frank_battery.fx_tag endon("death");
var_00 = 30;
level.frank_battery.fx_tag maps/mp/mp_zombies_soul_collection::func_170B(var_00,256,64,"battery_soul_collected",undefined,"tag_origin",undefined,"tag_origin",undefined,undefined,(0,0,64),undefined,undefined,undefined,0);
killfxontag(level.var_611["battery_glow"],level.frank_battery.fx_tag,"tag_origin");
playfxontag(level.var_611["battery_glow_finished"],level.frank_battery.fx_tag,"tag_origin");
common_scripts\utility::func_3C8F("ee_escort_frank_soul_collection_complete");
}
//Function Number: 68
ee_quest_step_escort_frank_drop_charged_battery()
{
var_00 = level.battery_drop_org;
if(isdefined(level.frank_dudebroman) && isalive(level.frank_dudebroman))
{
level.frank_dudebroman.var_480F = 0;
level.frank_dudebroman dodamage(level.frank_dudebroman.var_BC * 2,level.frank_dudebroman.var_116);
}
level.frank_battery unlink();
var_00 = common_scripts\utility::func_348B(var_00,32) + (0,0,2);
var_01 = var_00 - level.frank_battery.var_116;
var_02 = sqrt(abs(var_01[2] * 2 / 800));
var_03 = 1 / var_02;
var_04 = var_01 * (var_03,var_03,0);
level.frank_battery gravitymove(var_04,var_02);
level.frank_battery rotateto((0,0,0),var_02);
wait(var_02);
level.frank_battery.var_116 = var_00;
level.var_8E3 = common_scripts\utility::func_F93(level.var_8E3,level.frank_battery.fx_tag);
level.frank_battery.fx_tag delete();
level.frank_battery hudoutlineenableforclients(level.var_744A,2,1);
level.frank_battery lib_0547::func_AC41(" ");
level.frank_battery waittill("player_used");
level.frank_battery hudoutlinedisableforclients(level.var_744A);
level.frank_battery delete();
common_scripts\utility::func_3C8F("ee_escort_frank_battery_collected");
}
//Function Number: 69
ee_quest_step_escort_frank_collect_prize_think()
{
var_00 = getent("wine_cellar_batt_trig","targetname");
var_01 = getent("wine_cellar_batt","targetname");
var_02 = getent("wine_cellar_door_clip","targetname");
var_03 = getent("wine_cellar_door","targetname");
var_02 method_8449(var_03);
var_00 waittill("trigger",var_04);
level thread maps/mp/zombies/weapons/_zombie_dlc3_melee::sword_post_ee_complete_handler();
var_01 method_805B();
level thread common_scripts\_exploder::func_88E(205);
var_00 delete();
var_03 rotateby((0,-120,0),1,0.25,0.25);
var_02 method_8060();
lib_0378::func_8D74("wine_cellar_door_open",var_03.var_116);
var_05 = getent("sword_hilt","targetname");
var_05 lib_0547::func_AC41(&"ZOMBIE_DLC3_PICKUP_PART_1");
var_05 waittill("player_used",var_04);
var_05 lib_0547::func_AC40();
var_05 delete();
common_scripts\utility::func_3C8F("ee_escort_hilt_collected");
level.shattered_ee_complete = 1;
}
//Function Number: 70
warp_skip_escort_part01()
{
warp_defend_frank();
common_scripts\utility::func_3C8F("ee_escort_frank_reached_battery");
common_scripts\utility::func_3C9F("ee_call_lightning_frank_fell");
var_00 = common_scripts\utility::func_46B5("frank_first_half_escort_end","script_noteworthy");
level.frank_dudebroman setorigin(var_00.var_116);
}
//Function Number: 71
warp_skip_escort_part02()
{
warp_skip_escort_part01();
common_scripts\utility::func_3C8F("ee_escort_frank_reached_basement");
common_scripts\utility::func_3C8F("ee_escort_frank_soul_collection_complete");
var_00 = common_scripts\utility::func_46B5("frank_second_half_escort_end","script_noteworthy");
level.battery_drop_org = var_00.var_116;
level.frank_dudebroman setorigin(var_00.var_116);
ee_quest_step_escort_frank_battery_setup();
level.frank_dudebroman.var_480F = 0;
level.frank_dudebroman dodamage(level.frank_dudebroman.var_BC * 2,level.frank_dudebroman.var_116);
}
//Function Number: 72
cheat_frank_godon_toggle()
{
if(isdefined(level.frank_dudebroman))
{
if(level.frank_dudebroman.var_480F)
{
level.frank_dudebroman.var_480F = 0;
return;
}
level.frank_dudebroman.var_480F = 1;
}
}
//Function Number: 73
cheat_frank_notarget_toggle()
{
if(isdefined(level.frank_dudebroman))
{
if(level.frank_dudebroman.var_CE)
{
level.frank_dudebroman.var_CE = 0;
return;
}
level.frank_dudebroman.var_CE = 1;
}
}
//Function Number: 74
cheat_frank_run_toggle()
{
if(isdefined(level.frank_dudebroman))
{
if(!isdefined(level.frank_dudebroman.var_297D))
{
return;
}
if(level.frank_dudebroman.var_297D == ::maps/mp/zombies/sg_events_v1/very_important_zombie::basic_vip_custom_movemode_walk)
{
level.frank_dudebroman.var_297D = ::maps/mp/zombies/sg_events_v1/very_important_zombie::basic_vip_custom_movemode_sprint;
return;
}
level.frank_dudebroman.var_297D = ::maps/mp/zombies/sg_events_v1/very_important_zombie::basic_vip_custom_movemode_walk;
}
}