mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-07 17:17:50 -05:00
574 lines
11 KiB
Plaintext
574 lines
11 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: vehicle_scripts\_fighter_mp.gsc
|
|
* Game: Call of Duty: WWII
|
|
* Platform: PC
|
|
* Function Count: 24
|
|
* Decompile Time: 403 ms
|
|
* Timestamp: 10/27/2023 3:20:29 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
func_00F9(param_00,param_01,param_02)
|
|
{
|
|
func_764D();
|
|
}
|
|
|
|
//Function Number: 2
|
|
func_764D()
|
|
{
|
|
level.var_611["p47_dmg_impact"] = loadfx("vfx/map/mp_raid_bomber/mp_raid_fighter_impacts_lrg");
|
|
level.var_611["p47_dmg_impact_notrail"] = loadfx("vfx/vehicle/fighter_dmg_impact_notrail");
|
|
level.var_611["p47_dmg_light"] = loadfx("vfx/vehicle/p47_dmg_light");
|
|
level.var_611["p47_dmg_heavy"] = loadfx("vfx/vehicle/p47_dmg_heavy");
|
|
level.var_611["p47_contrail"] = loadfx("vfx/vehicle/p47_contrail");
|
|
level.var_611["p47_wing_evap"] = loadfx("vfx/map/mp_raid_bomber/mp_raid_p47_wing_evap");
|
|
level.var_611["p47_exhaust"] = loadfx("vfx/vehicle/p47_exhaust");
|
|
level.var_611["bf109_wing_evap"] = loadfx("vfx/map/mp_raid_bomber/mp_raid_fighter_wing_evap");
|
|
level.var_611["bf109_exhaust"] = loadfx("vfx/vehicle/p47_exhaust");
|
|
level.var_611["bf109_contrail_ext_vel"] = loadfx("vfx/vehicle/p47_contrail_ext_vel");
|
|
if(getdvarint("fighter_firing_mode") == 1)
|
|
{
|
|
level.var_611["p47_muzzle01"] = loadfx("vfx/vehicle/p47_muzzle01");
|
|
level.var_611["p47_muzzle02"] = loadfx("vfx/vehicle/p47_muzzle02");
|
|
}
|
|
|
|
level.var_611["p47_death"] = loadfx("vfx/scorestreaks/ss_fighter_plane_death");
|
|
level.var_611["20mm_metal_impact_1"] = loadfx("vfx/weaponimpact/20mm_metal_impact_1");
|
|
level.var_611["p47_dmg_impact_ext_vel"] = loadfx("vfx/map/mp_raid_bomber/mp_raid_fighter_spark_impact_rnr");
|
|
level.var_611["p47_contrail_ext_vel"] = loadfx("vfx/vehicle/p47_contrail_ext_vel");
|
|
if(getdvarint("fighter_firing_mode") == 1)
|
|
{
|
|
level.var_611["p47_muzzle01_ext_vel"] = loadfx("vfx/vehicle/p47_muzzle01_ext_vel");
|
|
level.var_611["p47_muzzle02_ext_vel"] = loadfx("vfx/vehicle/p47_muzzle02_ext_vel");
|
|
}
|
|
}
|
|
|
|
//Function Number: 3
|
|
fighterinitmg(param_00)
|
|
{
|
|
var_01 = 0;
|
|
if(isdefined(self.var_81FD))
|
|
{
|
|
var_01 = self.var_81FD;
|
|
}
|
|
|
|
self.var_615C = [];
|
|
foreach(var_03 in param_00)
|
|
{
|
|
var_04 = self gettagangles(var_03.var_95A6);
|
|
var_05 = self gettagorigin(var_03.var_95A6);
|
|
var_06 = combineangles(var_04,(0,-1 * var_01,0));
|
|
var_07 = undefined;
|
|
if(isdefined(var_03.var_6A1B))
|
|
{
|
|
var_07 = var_05 + rotatevector(var_03.var_6A1B,var_04);
|
|
}
|
|
else
|
|
{
|
|
var_07 = var_05;
|
|
}
|
|
|
|
var_08 = spawnturret(var_03.var_231A,var_07,var_03.var_5135);
|
|
var_08.maxhealth = var_03.var_5135;
|
|
var_08.var_1D = var_06;
|
|
var_08 method_808C();
|
|
if(isdefined(var_03.var_6A1B))
|
|
{
|
|
var_08 linkto(self,var_03.var_95A6,var_03.var_6A1B,(0,-1 * var_01,0));
|
|
}
|
|
else
|
|
{
|
|
var_08 linkto(self,var_03.var_95A6,(0,0,0),(0,-1 * var_01,0));
|
|
}
|
|
|
|
var_08 setmodel(var_03.var_106);
|
|
var_08.var_5847 = 1;
|
|
var_08.var_6DB3 = self;
|
|
var_08 makeusable();
|
|
if(isdefined(var_03.var_FC))
|
|
{
|
|
var_08.var_FC = var_03.var_FC;
|
|
}
|
|
|
|
self.var_615C[self.var_615C.size] = var_08;
|
|
}
|
|
}
|
|
|
|
//Function Number: 4
|
|
buildfighterturret(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
if(!isdefined(level.var_A372))
|
|
{
|
|
level.var_A372 = [];
|
|
}
|
|
|
|
var_05 = level.var_A635;
|
|
var_06 = spawnstruct();
|
|
var_06.var_231A = param_00;
|
|
var_06.var_5135 = param_01;
|
|
var_06.var_95A6 = param_02;
|
|
var_06.var_106 = param_03;
|
|
if(isdefined(param_04) && param_04 == 1)
|
|
{
|
|
var_06.var_9B81 = 1;
|
|
}
|
|
else
|
|
{
|
|
var_06.var_9B81 = 0;
|
|
}
|
|
|
|
return var_06;
|
|
}
|
|
|
|
//Function Number: 5
|
|
func_8A4D(param_00)
|
|
{
|
|
var_01 = [];
|
|
var_02 = buildfighterturret("misc_turret",param_00,"TAG_TURRET_ATTACH_LEFT","usa_fighter_thunderbolt_turret",1);
|
|
var_01[var_01.size] = var_02;
|
|
var_02 = buildfighterturret("misc_turret",param_00,"TAG_TURRET_ATTACH_RIGHT","usa_fighter_thunderbolt_turret",1);
|
|
var_01[var_01.size] = var_02;
|
|
fighterinitmg(var_01);
|
|
}
|
|
|
|
//Function Number: 6
|
|
destroyturrets()
|
|
{
|
|
foreach(var_01 in self.var_615C)
|
|
{
|
|
var_01 makeunusable();
|
|
var_01 delete();
|
|
}
|
|
|
|
self.var_615C = undefined;
|
|
}
|
|
|
|
//Function Number: 7
|
|
deathcleanup()
|
|
{
|
|
func_36B3();
|
|
func_941A();
|
|
if(0)
|
|
{
|
|
func_93FF();
|
|
}
|
|
}
|
|
|
|
//Function Number: 8
|
|
func_51FB(param_00)
|
|
{
|
|
func_8A4D(param_00);
|
|
self.var_2A89 = "tag_trail_fx";
|
|
self.var_9BDD = "tag_trail_fx";
|
|
if(self method_8445("tag_trail_fx") < 0)
|
|
{
|
|
self.var_2A89 = "tag_origin";
|
|
}
|
|
|
|
if(self method_8445("tag_trail_fx") < 0)
|
|
{
|
|
self.var_9BDD = "tag_origin";
|
|
}
|
|
|
|
if(0)
|
|
{
|
|
thread func_721B();
|
|
}
|
|
|
|
thread func_3F3B();
|
|
thread func_3F5D();
|
|
thread fx_speed_handler();
|
|
thread func_6DB8();
|
|
}
|
|
|
|
//Function Number: 9
|
|
spawn_tag_origin_internal()
|
|
{
|
|
if(isdefined(level.var_5FEB))
|
|
{
|
|
var_00 = spawn("script_model",level.var_5FEB);
|
|
}
|
|
else
|
|
{
|
|
var_00 = spawn("script_model",(0,0,0));
|
|
}
|
|
|
|
var_00 setmodel("tag_origin");
|
|
if(isdefined(self.var_116))
|
|
{
|
|
var_00.var_116 = self.var_116;
|
|
}
|
|
|
|
if(isdefined(self.var_1D))
|
|
{
|
|
var_00.var_1D = self.var_1D;
|
|
}
|
|
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 10
|
|
func_6DB8()
|
|
{
|
|
self endon("death");
|
|
var_00 = self method_8251();
|
|
if(!isdefined(var_00))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(self.var_29B1))
|
|
{
|
|
self.var_29B1 = [];
|
|
thread func_6DB7();
|
|
}
|
|
|
|
var_01 = 0;
|
|
var_02 = common_scripts\utility::func_44F5("20mm_metal_impact_1");
|
|
var_03 = -1;
|
|
var_04 = 3;
|
|
for(;;)
|
|
{
|
|
self waittill("damage",var_05,var_06,var_07,var_08,var_09);
|
|
if(!isdefined(var_08))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(var_06) && var_06 == self)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
maps\mp\_audio_submixes::func_7FFA("raid_hit_air_dmg_plr",var_08,undefined,undefined,undefined,undefined,[var_00]);
|
|
var_0A = level.var_744A;
|
|
var_0A = common_scripts\utility::func_F93(var_0A,var_00);
|
|
if(var_0A.size > 0)
|
|
{
|
|
maps\mp\_audio_submixes::func_7FFA("raid_hit_air_dmg_npc",var_08,undefined,undefined,undefined,undefined,var_0A);
|
|
}
|
|
|
|
var_01 = 1;
|
|
var_02 = common_scripts\utility::func_44F5("20mm_metal_impact_1");
|
|
var_03 = 1.5;
|
|
var_04 = 9;
|
|
if(self.var_29B1.size < var_04)
|
|
{
|
|
var_0B = spawn_tag_origin_internal();
|
|
var_0B.var_3F2F = var_02;
|
|
var_0B.var_116 = var_08;
|
|
var_0B.var_1D = self gettagangles(self.var_9BDD);
|
|
var_0B linkto(self,self.var_9BDD);
|
|
self.var_29B1[self.var_29B1.size] = var_0B;
|
|
playfxontag(var_0B.var_3F2F,var_0B,"tag_origin");
|
|
if(var_03 > 0)
|
|
{
|
|
thread func_6DB9(var_03,var_0B);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 11
|
|
func_6DB7()
|
|
{
|
|
self waittill("death");
|
|
if(isdefined(self.var_29B1))
|
|
{
|
|
foreach(var_01 in self.var_29B1)
|
|
{
|
|
if(isdefined(var_01))
|
|
{
|
|
stopfxontag(var_01.var_3F2F,var_01,"tag_origin");
|
|
var_01 delete();
|
|
}
|
|
}
|
|
|
|
self.var_29B1 = undefined;
|
|
}
|
|
}
|
|
|
|
//Function Number: 12
|
|
func_6DB9(param_00,param_01)
|
|
{
|
|
wait(param_00);
|
|
if(isdefined(param_01) && isdefined(self) && isdefined(self.var_29B1))
|
|
{
|
|
stopfxontag(param_01.var_3F2F,param_01,"tag_origin");
|
|
self.var_29B1 = common_scripts\utility::func_F93(self.var_29B1,param_01);
|
|
}
|
|
|
|
if(isdefined(param_01))
|
|
{
|
|
param_01 delete();
|
|
}
|
|
}
|
|
|
|
//Function Number: 13
|
|
func_721B()
|
|
{
|
|
self endon("death");
|
|
self endon("stop_engineeffects");
|
|
common_scripts\utility::func_3799("engineeffects");
|
|
common_scripts\utility::func_379A("engineeffects");
|
|
var_00 = undefined;
|
|
if(self.var_1C8 == "usa_fighter_thunderbolt_player_mp")
|
|
{
|
|
var_00 = common_scripts\utility::func_44F5("p47_exhaust");
|
|
}
|
|
else if(self.var_1C8 == "ger_fighter_bf109_player_mp")
|
|
{
|
|
var_00 = common_scripts\utility::func_44F5("bf109_exhaust");
|
|
}
|
|
|
|
if(isdefined(var_00))
|
|
{
|
|
for(;;)
|
|
{
|
|
common_scripts\utility::func_379C("engineeffects");
|
|
playfxontag(var_00,self,self.var_9BDD);
|
|
common_scripts\utility::func_37A1("engineeffects");
|
|
stopfxontag(var_00,self,self.var_9BDD);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 14
|
|
func_93FF()
|
|
{
|
|
common_scripts\utility::func_3796("engineeffects");
|
|
}
|
|
|
|
//Function Number: 15
|
|
func_720A()
|
|
{
|
|
var_00 = undefined;
|
|
if(self.var_1C8 == "usa_fighter_thunderbolt_player_mp")
|
|
{
|
|
var_00 = common_scripts\utility::func_44F5("p47_contrail_ext_vel");
|
|
}
|
|
else if(self.var_1C8 == "ger_fighter_bf109_player_mp")
|
|
{
|
|
var_00 = common_scripts\utility::func_44F5("bf109_contrail_ext_vel");
|
|
}
|
|
|
|
if(isdefined(var_00))
|
|
{
|
|
playfxontag(var_00,self,self.var_9BDD);
|
|
}
|
|
}
|
|
|
|
//Function Number: 16
|
|
func_93FB()
|
|
{
|
|
var_00 = undefined;
|
|
if(self.var_1C8 == "usa_fighter_thunderbolt_player_mp")
|
|
{
|
|
var_00 = common_scripts\utility::func_44F5("p47_contrail_ext_vel");
|
|
}
|
|
else if(self.var_1C8 == "ger_fighter_bf109_player_mp")
|
|
{
|
|
var_00 = common_scripts\utility::func_44F5("bf109_contrail_ext_vel");
|
|
}
|
|
|
|
if(isdefined(var_00))
|
|
{
|
|
stopfxontag(var_00,self,self.var_9BDD);
|
|
}
|
|
}
|
|
|
|
//Function Number: 17
|
|
func_36B3()
|
|
{
|
|
self notify("end_contrails");
|
|
self endon("death");
|
|
func_93FB();
|
|
}
|
|
|
|
//Function Number: 18
|
|
func_74EE()
|
|
{
|
|
var_00 = undefined;
|
|
if(self.var_1C8 == "usa_fighter_thunderbolt_player_mp")
|
|
{
|
|
var_00 = common_scripts\utility::func_44F5("p47_wing_evap");
|
|
}
|
|
else if(self.var_1C8 == "ger_fighter_bf109_player_mp")
|
|
{
|
|
var_00 = common_scripts\utility::func_44F5("bf109_wing_evap");
|
|
}
|
|
|
|
if(isdefined(var_00))
|
|
{
|
|
playfxontag(var_00,self,self.var_9BDD);
|
|
}
|
|
}
|
|
|
|
//Function Number: 19
|
|
func_941A()
|
|
{
|
|
var_00 = undefined;
|
|
if(self.var_1C8 == "usa_fighter_thunderbolt_player_mp")
|
|
{
|
|
var_00 = common_scripts\utility::func_44F5("p47_wing_evap");
|
|
}
|
|
else if(self.var_1C8 == "ger_fighter_bf109_player_mp")
|
|
{
|
|
var_00 = common_scripts\utility::func_44F5("bf109_wing_evap");
|
|
}
|
|
|
|
if(isdefined(var_00))
|
|
{
|
|
stopfxontag(var_00,self,self.var_9BDD);
|
|
}
|
|
}
|
|
|
|
//Function Number: 20
|
|
func_36EF()
|
|
{
|
|
self notify("end_wing_evap");
|
|
self endon("death");
|
|
wait 0.05;
|
|
func_941A();
|
|
}
|
|
|
|
//Function Number: 21
|
|
func_3F3B()
|
|
{
|
|
level endon("death");
|
|
self endon("end_contrails");
|
|
self endon("death");
|
|
var_00 = 0;
|
|
var_01 = 15;
|
|
var_02 = 25;
|
|
while(isdefined(self))
|
|
{
|
|
var_03 = self.var_1D;
|
|
var_04 = var_03[0];
|
|
var_05 = var_03[2];
|
|
var_06 = 0;
|
|
if((var_05 > var_01 && var_05 < 360 - var_01) || var_05 < -1 * var_01 && var_05 > -1 * 360 - var_01)
|
|
{
|
|
var_06 = 1;
|
|
}
|
|
|
|
if((var_04 > var_02 && var_04 < 360 - var_02) || var_04 < -1 * var_02 && var_04 > -1 * 360 - var_02)
|
|
{
|
|
var_06 = 1;
|
|
}
|
|
|
|
if(var_06 && !var_00)
|
|
{
|
|
func_720A();
|
|
var_00 = 1;
|
|
continue;
|
|
}
|
|
|
|
if(!var_06 && var_00)
|
|
{
|
|
func_93FB();
|
|
var_00 = 0;
|
|
}
|
|
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
//Function Number: 22
|
|
fx_speed_handler()
|
|
{
|
|
level endon("death");
|
|
self endon("death");
|
|
var_00 = self method_8251();
|
|
if(!isdefined(var_00))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(isbot(var_00) || function_01EF(var_00))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_01 = 0;
|
|
while(isdefined(self))
|
|
{
|
|
var_02 = var_00 getnormalizedmovement()[0];
|
|
if(var_02 >= 0.5)
|
|
{
|
|
if(!var_01)
|
|
{
|
|
playfxontagforclients(level.var_611["mp_raid_bomber_speedup"],self,self.var_9BDD,var_00);
|
|
var_01 = 1;
|
|
}
|
|
|
|
continue;
|
|
}
|
|
|
|
if(var_01)
|
|
{
|
|
function_0294(level.var_611["mp_raid_bomber_speedup"],self,self.var_9BDD,var_00);
|
|
var_01 = 0;
|
|
}
|
|
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
//Function Number: 23
|
|
func_3F5D()
|
|
{
|
|
level endon("death");
|
|
self endon("end_wing_evap");
|
|
self endon("death");
|
|
var_00 = 0;
|
|
var_01 = 30;
|
|
var_02 = 40;
|
|
while(isdefined(self))
|
|
{
|
|
var_03 = self.var_1D;
|
|
var_04 = var_03[2];
|
|
var_05 = 0;
|
|
if((var_04 > var_01 && var_04 < 360 - var_01) || var_04 < -1 * var_01 && var_04 > -1 * 360 - var_01)
|
|
{
|
|
var_05 = 1;
|
|
}
|
|
|
|
if(var_05 && !var_00)
|
|
{
|
|
func_74EE();
|
|
var_00 = 1;
|
|
continue;
|
|
}
|
|
|
|
if(!var_05 && var_00)
|
|
{
|
|
func_941A();
|
|
var_00 = 0;
|
|
}
|
|
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
//Function Number: 24
|
|
func_996C()
|
|
{
|
|
self endon("death");
|
|
for(;;)
|
|
{
|
|
self waittill("veh_collision",var_00,var_01,var_02);
|
|
if(!isdefined(var_02) || !isplayer(var_02))
|
|
{
|
|
if(isdefined(self.var_6703) && !self.var_6703)
|
|
{
|
|
self notify("veh_collision_except_player");
|
|
}
|
|
|
|
continue;
|
|
}
|
|
|
|
var_03 = 0;
|
|
}
|
|
} |