IL-GSC/AW/PC/vehicle_scripts/_mig29_controllable.gsc
InfinityLoader b2389dbcb9 Full AW Dump
2024-04-22 02:38:24 -04:00

254 lines
6.6 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: _mig29_controllable.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 15
* Decompile Time: 221 ms
* Timestamp: 4/22/2024 2:05:09 AM
*******************************************************************/
//Function Number: 1
main(param_00,param_01,param_02)
{
maps\_vehicle::build_template("mig29_controllable",param_00,param_01,param_02);
maps\_vehicle::build_localinit(::init_local);
maps\_vehicle::build_deathmodel("vehicle_mig29");
maps\_vehicle::build_deathmodel("vehicle_mig29_desert");
maps\_vehicle::build_deathmodel("vehicle_av8b_harrier_jet");
maps\_vehicle::build_deathmodel("vehicle_mig29_low");
maps\_vehicle::build_treadfx();
level._effect["engineeffect"] = loadfx("vfx/trail/jet_thruster_far");
level._effect["afterburner"] = loadfx("vfx/fire/jet_afterburner_ignite");
level._effect["contrail"] = loadfx("vfx/trail/jet_contrail");
maps\_vehicle::build_deathfx("vfx/explosion/vehicle_generic_ai_explo_lrg_runner",undefined,"explo_metal_rand");
maps\_vehicle::build_life(999,500,1500);
maps\_vehicle::build_team("allies");
if(param_00 != "vehicle_av8b_harrier_jet")
{
var_03 = randomfloatrange(0,1);
maps\_vehicle::build_light(param_02,"wingtip_green","tag_left_wingtip","vfx/lights/aircraft_light_wingtip_green","running",var_03);
maps\_vehicle::build_light(param_02,"wingtip_red","tag_right_wingtip","vfx/lights/aircraft_light_wingtip_red","running",var_03);
}
maps\_vehicle::build_is_airplane();
}
//Function Number: 2
init_local()
{
thread landing_gear_up();
}
//Function Number: 3
set_vehicle_anims(param_00)
{
var_01 = "rope_test";
precachemodel(var_01);
return param_00;
}
//Function Number: 4
landing_gear_up()
{
self useanimtree(#animtree);
self setanim(%mig_landing_gear_up);
}
//Function Number: 5
setanims()
{
var_00 = [];
for(var_01 = 0;var_01 < 1;var_01++)
{
var_00[var_01] = spawnstruct();
}
return var_00;
}
//Function Number: 6
playengineeffects()
{
self endon("death");
self endon("stop_engineeffects");
maps\_utility::ent_flag_init("engineeffects");
maps\_utility::ent_flag_set("engineeffects");
var_00 = common_scripts\utility::getfx("engineeffect");
for(;;)
{
maps\_utility::ent_flag_wait("engineeffects");
playfxontag(var_00,self,"tag_engine_right");
playfxontag(var_00,self,"tag_engine_left");
maps\_utility::ent_flag_waitopen("engineeffects");
stopfxontag(var_00,self,"tag_engine_left");
stopfxontag(var_00,self,"tag_engine_right");
}
}
//Function Number: 7
playafterburner()
{
playfxontag(level._effect["afterburner"],self,"tag_engine_right");
playfxontag(level._effect["afterburner"],self,"tag_engine_left");
}
//Function Number: 8
playcontrail()
{
playfxontag(level._effect["contrail"],self,"tag_right_wingtip");
playfxontag(level._effect["contrail"],self,"tag_left_wingtip");
}
//Function Number: 9
playerisclose(param_00)
{
var_01 = playerisinfront(param_00);
if(var_01)
{
var_02 = 1;
}
else
{
var_02 = -1;
}
var_03 = common_scripts\utility::flat_origin(param_00.origin);
var_04 = var_03 + anglestoforward(common_scripts\utility::flat_angle(param_00.angles)) * var_02 * 100000;
var_05 = pointonsegmentnearesttopoint(var_03,var_04,level.player.origin);
var_06 = distance(var_03,var_05);
if(var_06 < 3000)
{
return 1;
}
return 0;
}
//Function Number: 10
playerisinfront(param_00)
{
var_01 = anglestoforward(common_scripts\utility::flat_angle(param_00.angles));
var_02 = vectornormalize(common_scripts\utility::flat_origin(level.player.origin) - param_00.origin);
var_03 = vectordot(var_01,var_02);
if(var_03 > 0)
{
return 1;
}
return 0;
}
//Function Number: 11
plane_sound_node(param_00,param_01)
{
plane_sound_players("veh_mig29_dist_loop","veh_mig29_sonic_boom");
}
//Function Number: 12
plane_sound_players(param_00,param_01)
{
self waittill("trigger",var_02);
var_02 endon("death");
thread plane_sound_node();
var_02 thread common_scripts\utility::play_loop_sound_on_entity(param_00);
while(playerisinfront(var_02))
{
wait(0.05);
}
wait(0.5);
var_02 thread common_scripts\utility::play_sound_in_space(param_01);
var_02 waittill("reached_end_node");
var_02 stop_sound(param_00);
var_02 delete();
}
//Function Number: 13
plane_bomb_node()
{
level._effect["plane_bomb_explosion1"] = loadfx("vfx/ambient_explosion_midair_runner_single");
level._effect["plane_bomb_explosion2"] = loadfx("vfx/ambient_explosion_midair_runner_single");
self waittill("trigger",var_00);
var_00 endon("death");
thread plane_bomb_node();
var_01 = getentarray(self.script_linkto,"script_linkname");
var_01 = common_scripts\utility::get_array_of_closest(self.origin,var_01,undefined,var_01.size);
var_02 = 0;
wait(randomfloatrange(0.3,0.8));
for(var_03 = 0;var_03 < var_01.size;var_03++)
{
var_02++;
if(var_02 == 3)
{
var_02 = 1;
}
var_01[var_03] thread maps\_utility::play_sound_on_entity("airstrike_explosion");
playfx(level._effect["plane_bomb_explosion" + var_02],var_01[var_03].origin);
wait(randomfloatrange(0.3,1.2));
}
}
//Function Number: 14
plane_bomb_cluster()
{
self waittill("trigger",var_00);
var_00 endon("death");
var_01 = var_00;
var_01 thread plane_bomb_cluster();
var_02 = spawn("script_model",var_01.origin - (0,0,100));
var_02.angles = var_01.angles;
var_02 setmodel("projectile_cbu97_clusterbomb");
var_03 = anglestoforward(var_01.angles) * 2;
var_04 = anglestoup(var_01.angles) * -0.2;
var_05 = [];
for(var_06 = 0;var_06 < 3;var_06++)
{
var_05[var_06] = var_03[var_06] + var_04[var_06] / 2;
}
var_05 = (var_05[0],var_05[1],var_05[2]);
var_05 = var_05 * 7000;
var_02 movegravity(var_05,2);
wait(1.2);
var_07 = spawn("script_model",var_02.origin);
var_07 setmodel("tag_origin");
var_07.origin = var_02.origin;
var_07.angles = var_02.angles;
wait(0.05);
var_02 delete();
var_02 = var_07;
var_08 = var_02.origin;
var_09 = var_02.angles;
playfxontag(level.airstrikefx,var_02,"tag_origin");
wait(1.6);
var_0A = 12;
var_0B = 5;
var_0C = 55;
var_0D = var_0C - var_0B / var_0A;
for(var_06 = 0;var_06 < var_0A;var_06++)
{
var_0E = anglestoforward(var_09 + (var_0C - var_0D * var_06,randomint(10) - 5,0));
var_0F = var_08 + var_0E * 10000;
var_10 = bullettrace(var_08,var_0F,0,undefined);
var_11 = var_10["position"];
radiusdamage(var_11 + (0,0,16),512,400,30);
if(var_06 % 3 == 0)
{
thread common_scripts\utility::play_sound_in_space("airstrike_explosion",var_11);
earthquake(0.7,0.75,var_11,1000);
}
wait(0.75 / var_0A);
}
wait(1);
var_02 delete();
}
//Function Number: 15
stop_sound(param_00)
{
self notify("stop sound" + param_00);
}