mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-07 17:17:50 -05:00
254 lines
6.6 KiB
Plaintext
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);
|
|
} |