1653 lines
62 KiB
Plaintext
1653 lines
62 KiB
Plaintext
// IW6 GSC SOURCE
|
|
// Generated by https://github.com/xensik/gsc-tool
|
|
|
|
init()
|
|
{
|
|
level._effect["sentry_overheat_mp"] = loadfx( "vfx/gameplay/mp/killstreaks/vfx_sg_overheat_smoke" );
|
|
level._effect["sentry_explode_mp"] = loadfx( "vfx/gameplay/mp/killstreaks/vfx_ims_explosion" );
|
|
level._effect["sentry_smoke_mp"] = loadfx( "vfx/gameplay/mp/killstreaks/vfx_sg_damage_blacksmoke" );
|
|
level.sentrysettings = [];
|
|
level.sentrysettings["alien_sentry"] = spawnstruct();
|
|
level.sentrysettings["alien_sentry"].health = 999999;
|
|
level.sentrysettings["alien_sentry"].maxhealth = 300;
|
|
level.sentrysettings["alien_sentry"].burstmin = 5;
|
|
level.sentrysettings["alien_sentry"].burstmax = 40;
|
|
level.sentrysettings["alien_sentry"].pausemin = 0.15;
|
|
level.sentrysettings["alien_sentry"].pausemax = 0.35;
|
|
level.sentrysettings["alien_sentry"].sentrymodeon = "sentry";
|
|
level.sentrysettings["alien_sentry"].sentrymodeoff = "sentry_offline";
|
|
level.sentrysettings["alien_sentry"].timeout = 600.0;
|
|
level.sentrysettings["alien_sentry"].spinuptime = 1.0;
|
|
level.sentrysettings["alien_sentry"].overheattime = 5.0;
|
|
level.sentrysettings["alien_sentry"].cooldowntime = 0.1;
|
|
level.sentrysettings["alien_sentry"].fxtime = 0.3;
|
|
level.sentrysettings["alien_sentry"].streakname = "sentry";
|
|
level.sentrysettings["alien_sentry"].weaponinfo = "alien_sentry_minigun_1_mp";
|
|
level.sentrysettings["alien_sentry"].modelbase = "weapon_sentry_chaingun";
|
|
level.sentrysettings["alien_sentry"].modelplacement = "weapon_sentry_chaingun_obj";
|
|
level.sentrysettings["alien_sentry"].modelplacementfailed = "weapon_sentry_chaingun_obj_red";
|
|
level.sentrysettings["alien_sentry"].modeldestroyed = "weapon_sentry_chaingun_destroyed";
|
|
level.sentrysettings["alien_sentry"].hintstring = &"SENTRY_PICKUP";
|
|
level.sentrysettings["alien_sentry"].headicon = 1;
|
|
level.sentrysettings["alien_sentry"].teamsplash = "used_sentry";
|
|
level.sentrysettings["alien_sentry"].shouldsplash = 0;
|
|
level.sentrysettings["alien_sentry"].vodestroyed = "sentry_destroyed";
|
|
level.sentrysettings["alien_sentry"].issentient = 1;
|
|
level.sentrysettings["alien_sentry_1"] = spawnstruct();
|
|
level.sentrysettings["alien_sentry_1"].health = 999999;
|
|
level.sentrysettings["alien_sentry_1"].maxhealth = 300;
|
|
level.sentrysettings["alien_sentry_1"].burstmin = 5;
|
|
level.sentrysettings["alien_sentry_1"].burstmax = 40;
|
|
level.sentrysettings["alien_sentry_1"].pausemin = 0.15;
|
|
level.sentrysettings["alien_sentry_1"].pausemax = 0.35;
|
|
level.sentrysettings["alien_sentry_1"].sentrymodeon = "sentry";
|
|
level.sentrysettings["alien_sentry_1"].sentrymodeoff = "sentry_offline";
|
|
level.sentrysettings["alien_sentry_1"].timeout = 600.0;
|
|
level.sentrysettings["alien_sentry_1"].spinuptime = 1.0;
|
|
level.sentrysettings["alien_sentry_1"].overheattime = 5.0;
|
|
level.sentrysettings["alien_sentry_1"].cooldowntime = 0.1;
|
|
level.sentrysettings["alien_sentry_1"].fxtime = 0.3;
|
|
level.sentrysettings["alien_sentry_1"].streakname = "sentry";
|
|
level.sentrysettings["alien_sentry_1"].weaponinfo = "alien_sentry_minigun_2_mp";
|
|
level.sentrysettings["alien_sentry_1"].modelbase = "weapon_sentry_chaingun";
|
|
level.sentrysettings["alien_sentry_1"].modelplacement = "weapon_sentry_chaingun_obj";
|
|
level.sentrysettings["alien_sentry_1"].modelplacementfailed = "weapon_sentry_chaingun_obj_red";
|
|
level.sentrysettings["alien_sentry_1"].modeldestroyed = "weapon_sentry_chaingun_destroyed";
|
|
level.sentrysettings["alien_sentry_1"].hintstring = &"SENTRY_PICKUP";
|
|
level.sentrysettings["alien_sentry_1"].headicon = 1;
|
|
level.sentrysettings["alien_sentry_1"].teamsplash = "used_sentry";
|
|
level.sentrysettings["alien_sentry_1"].shouldsplash = 0;
|
|
level.sentrysettings["alien_sentry_1"].vodestroyed = "sentry_destroyed";
|
|
level.sentrysettings["alien_sentry_1"].issentient = 1;
|
|
level.sentrysettings["alien_sentry_2"] = spawnstruct();
|
|
level.sentrysettings["alien_sentry_2"].health = 999999;
|
|
level.sentrysettings["alien_sentry_2"].maxhealth = 300;
|
|
level.sentrysettings["alien_sentry_2"].burstmin = 10;
|
|
level.sentrysettings["alien_sentry_2"].burstmax = 80;
|
|
level.sentrysettings["alien_sentry_2"].pausemin = 0.15;
|
|
level.sentrysettings["alien_sentry_2"].pausemax = 0.25;
|
|
level.sentrysettings["alien_sentry_2"].sentrymodeon = "sentry";
|
|
level.sentrysettings["alien_sentry_2"].sentrymodeoff = "sentry_offline";
|
|
level.sentrysettings["alien_sentry_2"].timeout = 600.0;
|
|
level.sentrysettings["alien_sentry_2"].spinuptime = 1.0;
|
|
level.sentrysettings["alien_sentry_2"].overheattime = 5.0;
|
|
level.sentrysettings["alien_sentry_2"].cooldowntime = 0.2;
|
|
level.sentrysettings["alien_sentry_2"].fxtime = 0.3;
|
|
level.sentrysettings["alien_sentry_2"].streakname = "sentry";
|
|
level.sentrysettings["alien_sentry_2"].weaponinfo = "alien_sentry_minigun_3_mp";
|
|
level.sentrysettings["alien_sentry_2"].modelbase = "weapon_sentry_chaingun";
|
|
level.sentrysettings["alien_sentry_2"].modelplacement = "weapon_sentry_chaingun_obj";
|
|
level.sentrysettings["alien_sentry_2"].modelplacementfailed = "weapon_sentry_chaingun_obj_red";
|
|
level.sentrysettings["alien_sentry_2"].modeldestroyed = "weapon_sentry_chaingun_destroyed";
|
|
level.sentrysettings["alien_sentry_2"].hintstring = &"SENTRY_PICKUP";
|
|
level.sentrysettings["alien_sentry_2"].headicon = 1;
|
|
level.sentrysettings["alien_sentry_2"].teamsplash = "used_sentry";
|
|
level.sentrysettings["alien_sentry_2"].shouldsplash = 0;
|
|
level.sentrysettings["alien_sentry_2"].vodestroyed = "sentry_destroyed";
|
|
level.sentrysettings["alien_sentry_2"].issentient = 1;
|
|
level.sentrysettings["alien_sentry_3"] = spawnstruct();
|
|
level.sentrysettings["alien_sentry_3"].health = 999999;
|
|
level.sentrysettings["alien_sentry_3"].maxhealth = 300;
|
|
level.sentrysettings["alien_sentry_3"].burstmin = 10;
|
|
level.sentrysettings["alien_sentry_3"].burstmax = 80;
|
|
level.sentrysettings["alien_sentry_3"].pausemin = 0.15;
|
|
level.sentrysettings["alien_sentry_3"].pausemax = 0.25;
|
|
level.sentrysettings["alien_sentry_3"].sentrymodeon = "sentry";
|
|
level.sentrysettings["alien_sentry_3"].sentrymodeoff = "sentry_offline";
|
|
level.sentrysettings["alien_sentry_3"].timeout = 600.0;
|
|
level.sentrysettings["alien_sentry_3"].spinuptime = 1.0;
|
|
level.sentrysettings["alien_sentry_3"].overheattime = 5.0;
|
|
level.sentrysettings["alien_sentry_3"].cooldowntime = 0.2;
|
|
level.sentrysettings["alien_sentry_3"].fxtime = 0.3;
|
|
level.sentrysettings["alien_sentry_3"].streakname = "sentry";
|
|
level.sentrysettings["alien_sentry_3"].weaponinfo = "alien_sentry_minigun_4_mp";
|
|
level.sentrysettings["alien_sentry_3"].modelbase = "weapon_sentry_chaingun";
|
|
level.sentrysettings["alien_sentry_3"].modelplacement = "weapon_sentry_chaingun_obj";
|
|
level.sentrysettings["alien_sentry_3"].modelplacementfailed = "weapon_sentry_chaingun_obj_red";
|
|
level.sentrysettings["alien_sentry_3"].modeldestroyed = "weapon_sentry_chaingun_destroyed";
|
|
level.sentrysettings["alien_sentry_3"].hintstring = &"SENTRY_PICKUP";
|
|
level.sentrysettings["alien_sentry_3"].headicon = 1;
|
|
level.sentrysettings["alien_sentry_3"].teamsplash = "used_sentry";
|
|
level.sentrysettings["alien_sentry_3"].shouldsplash = 0;
|
|
level.sentrysettings["alien_sentry_3"].vodestroyed = "sentry_destroyed";
|
|
level.sentrysettings["alien_sentry_3"].issentient = 1;
|
|
level.sentrysettings["alien_sentry_4"] = spawnstruct();
|
|
level.sentrysettings["alien_sentry_4"].health = 999999;
|
|
level.sentrysettings["alien_sentry_4"].maxhealth = 300;
|
|
level.sentrysettings["alien_sentry_4"].burstmin = 10;
|
|
level.sentrysettings["alien_sentry_4"].burstmax = 80;
|
|
level.sentrysettings["alien_sentry_4"].pausemin = 0.15;
|
|
level.sentrysettings["alien_sentry_4"].pausemax = 0.25;
|
|
level.sentrysettings["alien_sentry_4"].sentrymodeon = "sentry";
|
|
level.sentrysettings["alien_sentry_4"].sentrymodeoff = "sentry_offline";
|
|
level.sentrysettings["alien_sentry_4"].timeout = 600.0;
|
|
level.sentrysettings["alien_sentry_4"].spinuptime = 1.0;
|
|
level.sentrysettings["alien_sentry_4"].overheattime = 6.0;
|
|
level.sentrysettings["alien_sentry_4"].cooldowntime = 0.2;
|
|
level.sentrysettings["alien_sentry_4"].fxtime = 0.3;
|
|
level.sentrysettings["alien_sentry_4"].streakname = "sentry";
|
|
level.sentrysettings["alien_sentry_4"].weaponinfo = "alien_sentry_minigun_4_mp";
|
|
level.sentrysettings["alien_sentry_4"].modelbase = "weapon_sentry_chaingun";
|
|
level.sentrysettings["alien_sentry_4"].modelplacement = "weapon_sentry_chaingun_obj";
|
|
level.sentrysettings["alien_sentry_4"].modelplacementfailed = "weapon_sentry_chaingun_obj_red";
|
|
level.sentrysettings["alien_sentry_4"].modeldestroyed = "weapon_sentry_chaingun_destroyed";
|
|
level.sentrysettings["alien_sentry_4"].hintstring = &"SENTRY_PICKUP";
|
|
level.sentrysettings["alien_sentry_4"].headicon = 1;
|
|
level.sentrysettings["alien_sentry_4"].teamsplash = "used_sentry";
|
|
level.sentrysettings["alien_sentry_4"].shouldsplash = 0;
|
|
level.sentrysettings["alien_sentry_4"].vodestroyed = "sentry_destroyed";
|
|
level.sentrysettings["alien_sentry_4"].issentient = 1;
|
|
level.sentrysettings["gl_turret"] = spawnstruct();
|
|
level.sentrysettings["gl_turret"].health = 999999;
|
|
level.sentrysettings["gl_turret"].maxhealth = 650;
|
|
level.sentrysettings["gl_turret"].burstmin = 20;
|
|
level.sentrysettings["gl_turret"].burstmax = 130;
|
|
level.sentrysettings["gl_turret"].pausemin = 0.15;
|
|
level.sentrysettings["gl_turret"].pausemax = 0.35;
|
|
level.sentrysettings["gl_turret"].sentrymodeon = "manual";
|
|
level.sentrysettings["gl_turret"].sentrymodeoff = "sentry_offline";
|
|
level.sentrysettings["gl_turret"].timeout = 600.0;
|
|
level.sentrysettings["gl_turret"].spinuptime = 0.05;
|
|
level.sentrysettings["gl_turret"].overheattime = 2.5;
|
|
level.sentrysettings["gl_turret"].cooldowntime = 0.5;
|
|
level.sentrysettings["gl_turret"].fxtime = 0.3;
|
|
level.sentrysettings["gl_turret"].streakname = "grenade";
|
|
level.sentrysettings["gl_turret"].weaponinfo = "alien_manned_gl_turret_mp";
|
|
level.sentrysettings["gl_turret"].modelbase = "weapon_standing_turret_grenade_launcher";
|
|
level.sentrysettings["gl_turret"].modelplacement = "weapon_standing_turret_grenade_launcher_obj";
|
|
level.sentrysettings["gl_turret"].modelplacementfailed = "weapon_standing_turret_grenade_launcher_obj_red";
|
|
level.sentrysettings["gl_turret"].modeldestroyed = "weapon_sentry_chaingun_destroyed";
|
|
level.sentrysettings["gl_turret"].hintstring = &"ALIEN_COLLECTIBLES_USE_TURRET";
|
|
level.sentrysettings["gl_turret"].ownerhintstring = &"ALIEN_COLLECTIBLES_DOUBLE_TAP_TO_CARRY";
|
|
level.sentrysettings["gl_turret"].headicon = 0;
|
|
level.sentrysettings["gl_turret"].teamsplash = "used_gl_turret";
|
|
level.sentrysettings["gl_turret"].shouldsplash = 1;
|
|
level.sentrysettings["gl_turret"].vodestroyed = "sentry_destroyed";
|
|
level.sentrysettings["gl_turret"].issentient = 0;
|
|
level.sentrysettings["gl_turret_1"] = spawnstruct();
|
|
level.sentrysettings["gl_turret_1"].health = 999999;
|
|
level.sentrysettings["gl_turret_1"].maxhealth = 650;
|
|
level.sentrysettings["gl_turret_1"].burstmin = 20;
|
|
level.sentrysettings["gl_turret_1"].burstmax = 130;
|
|
level.sentrysettings["gl_turret_1"].pausemin = 0.15;
|
|
level.sentrysettings["gl_turret_1"].pausemax = 0.35;
|
|
level.sentrysettings["gl_turret_1"].sentrymodeon = "manual";
|
|
level.sentrysettings["gl_turret_1"].sentrymodeoff = "sentry_offline";
|
|
level.sentrysettings["gl_turret_1"].timeout = 600.0;
|
|
level.sentrysettings["gl_turret_1"].spinuptime = 0.05;
|
|
level.sentrysettings["gl_turret_1"].overheattime = 2.5;
|
|
level.sentrysettings["gl_turret_1"].cooldowntime = 0.5;
|
|
level.sentrysettings["gl_turret_1"].fxtime = 0.3;
|
|
level.sentrysettings["gl_turret_1"].streakname = "grenade";
|
|
level.sentrysettings["gl_turret_1"].weaponinfo = "alien_manned_gl_turret1_mp";
|
|
level.sentrysettings["gl_turret_1"].modelbase = "weapon_standing_turret_grenade_launcher";
|
|
level.sentrysettings["gl_turret_1"].modelplacement = "weapon_standing_turret_grenade_launcher_obj";
|
|
level.sentrysettings["gl_turret_1"].modelplacementfailed = "weapon_standing_turret_grenade_launcher_obj_red";
|
|
level.sentrysettings["gl_turret_1"].modeldestroyed = "weapon_sentry_chaingun_destroyed";
|
|
level.sentrysettings["gl_turret_1"].hintstring = &"ALIEN_COLLECTIBLES_USE_TURRET";
|
|
level.sentrysettings["gl_turret_1"].ownerhintstring = &"ALIEN_COLLECTIBLES_DOUBLE_TAP_TO_CARRY";
|
|
level.sentrysettings["gl_turret_1"].headicon = 0;
|
|
level.sentrysettings["gl_turret_1"].teamsplash = "used_gl_turret";
|
|
level.sentrysettings["gl_turret_1"].shouldsplash = 1;
|
|
level.sentrysettings["gl_turret_1"].vodestroyed = "sentry_destroyed";
|
|
level.sentrysettings["gl_turret_1"].issentient = 0;
|
|
level.sentrysettings["gl_turret_2"] = spawnstruct();
|
|
level.sentrysettings["gl_turret_2"].health = 999999;
|
|
level.sentrysettings["gl_turret_2"].maxhealth = 650;
|
|
level.sentrysettings["gl_turret_2"].burstmin = 20;
|
|
level.sentrysettings["gl_turret_2"].burstmax = 130;
|
|
level.sentrysettings["gl_turret_2"].pausemin = 0.15;
|
|
level.sentrysettings["gl_turret_2"].pausemax = 0.35;
|
|
level.sentrysettings["gl_turret_2"].sentrymodeon = "manual";
|
|
level.sentrysettings["gl_turret_2"].sentrymodeoff = "sentry_offline";
|
|
level.sentrysettings["gl_turret_2"].timeout = 600.0;
|
|
level.sentrysettings["gl_turret_2"].spinuptime = 0.05;
|
|
level.sentrysettings["gl_turret_2"].overheattime = 2.5;
|
|
level.sentrysettings["gl_turret_2"].cooldowntime = 0.5;
|
|
level.sentrysettings["gl_turret_2"].fxtime = 0.3;
|
|
level.sentrysettings["gl_turret_2"].streakname = "grenade";
|
|
level.sentrysettings["gl_turret_2"].weaponinfo = "alien_manned_gl_turret2_mp";
|
|
level.sentrysettings["gl_turret_2"].modelbase = "weapon_standing_turret_grenade_launcher";
|
|
level.sentrysettings["gl_turret_2"].modelplacement = "weapon_standing_turret_grenade_launcher_obj";
|
|
level.sentrysettings["gl_turret_2"].modelplacementfailed = "weapon_standing_turret_grenade_launcher_obj_red";
|
|
level.sentrysettings["gl_turret_2"].modeldestroyed = "weapon_sentry_chaingun_destroyed";
|
|
level.sentrysettings["gl_turret_2"].hintstring = &"ALIEN_COLLECTIBLES_USE_TURRET";
|
|
level.sentrysettings["gl_turret_2"].ownerhintstring = &"ALIEN_COLLECTIBLES_DOUBLE_TAP_TO_CARRY";
|
|
level.sentrysettings["gl_turret_2"].headicon = 0;
|
|
level.sentrysettings["gl_turret_2"].teamsplash = "used_gl_turret";
|
|
level.sentrysettings["gl_turret_2"].shouldsplash = 1;
|
|
level.sentrysettings["gl_turret_2"].vodestroyed = "sentry_destroyed";
|
|
level.sentrysettings["gl_turret_2"].issentient = 0;
|
|
level.sentrysettings["gl_turret_3"] = spawnstruct();
|
|
level.sentrysettings["gl_turret_3"].health = 999999;
|
|
level.sentrysettings["gl_turret_3"].maxhealth = 650;
|
|
level.sentrysettings["gl_turret_3"].burstmin = 20;
|
|
level.sentrysettings["gl_turret_3"].burstmax = 130;
|
|
level.sentrysettings["gl_turret_3"].pausemin = 0.15;
|
|
level.sentrysettings["gl_turret_3"].pausemax = 0.35;
|
|
level.sentrysettings["gl_turret_3"].sentrymodeon = "manual";
|
|
level.sentrysettings["gl_turret_3"].sentrymodeoff = "sentry_offline";
|
|
level.sentrysettings["gl_turret_3"].timeout = 600.0;
|
|
level.sentrysettings["gl_turret_3"].spinuptime = 0.05;
|
|
level.sentrysettings["gl_turret_3"].overheattime = 2.5;
|
|
level.sentrysettings["gl_turret_3"].cooldowntime = 0.5;
|
|
level.sentrysettings["gl_turret_3"].fxtime = 0.3;
|
|
level.sentrysettings["gl_turret_3"].streakname = "grenade";
|
|
level.sentrysettings["gl_turret_3"].weaponinfo = "alien_manned_gl_turret3_mp";
|
|
level.sentrysettings["gl_turret_3"].modelbase = "weapon_standing_turret_grenade_launcher";
|
|
level.sentrysettings["gl_turret_3"].modelplacement = "weapon_standing_turret_grenade_launcher_obj";
|
|
level.sentrysettings["gl_turret_3"].modelplacementfailed = "weapon_standing_turret_grenade_launcher_obj_red";
|
|
level.sentrysettings["gl_turret_3"].modeldestroyed = "weapon_sentry_chaingun_destroyed";
|
|
level.sentrysettings["gl_turret_3"].hintstring = &"ALIEN_COLLECTIBLES_USE_TURRET";
|
|
level.sentrysettings["gl_turret_3"].ownerhintstring = &"ALIEN_COLLECTIBLES_DOUBLE_TAP_TO_CARRY";
|
|
level.sentrysettings["gl_turret_3"].headicon = 0;
|
|
level.sentrysettings["gl_turret_3"].teamsplash = "used_gl_turret";
|
|
level.sentrysettings["gl_turret_3"].shouldsplash = 1;
|
|
level.sentrysettings["gl_turret_3"].vodestroyed = "sentry_destroyed";
|
|
level.sentrysettings["gl_turret_3"].issentient = 0;
|
|
level.sentrysettings["gl_turret_4"] = spawnstruct();
|
|
level.sentrysettings["gl_turret_4"].health = 999999;
|
|
level.sentrysettings["gl_turret_4"].maxhealth = 650;
|
|
level.sentrysettings["gl_turret_4"].burstmin = 20;
|
|
level.sentrysettings["gl_turret_4"].burstmax = 130;
|
|
level.sentrysettings["gl_turret_4"].pausemin = 0.15;
|
|
level.sentrysettings["gl_turret_4"].pausemax = 0.35;
|
|
level.sentrysettings["gl_turret_4"].sentrymodeon = "manual";
|
|
level.sentrysettings["gl_turret_4"].sentrymodeoff = "sentry_offline";
|
|
level.sentrysettings["gl_turret_4"].timeout = 600.0;
|
|
level.sentrysettings["gl_turret_4"].spinuptime = 0.05;
|
|
level.sentrysettings["gl_turret_4"].overheattime = 2.5;
|
|
level.sentrysettings["gl_turret_4"].cooldowntime = 0.5;
|
|
level.sentrysettings["gl_turret_4"].fxtime = 0.3;
|
|
level.sentrysettings["gl_turret_4"].streakname = "grenade";
|
|
level.sentrysettings["gl_turret_4"].weaponinfo = "alien_manned_gl_turret4_mp";
|
|
level.sentrysettings["gl_turret_4"].modelbase = "weapon_standing_turret_grenade_launcher";
|
|
level.sentrysettings["gl_turret_4"].modelplacement = "weapon_standing_turret_grenade_launcher_obj";
|
|
level.sentrysettings["gl_turret_4"].modelplacementfailed = "weapon_standing_turret_grenade_launcher_obj_red";
|
|
level.sentrysettings["gl_turret_4"].modeldestroyed = "weapon_sentry_chaingun_destroyed";
|
|
level.sentrysettings["gl_turret_4"].hintstring = &"ALIEN_COLLECTIBLES_USE_TURRET";
|
|
level.sentrysettings["gl_turret_4"].ownerhintstring = &"ALIEN_COLLECTIBLES_DOUBLE_TAP_TO_CARRY";
|
|
level.sentrysettings["gl_turret_4"].headicon = 0;
|
|
level.sentrysettings["gl_turret_4"].teamsplash = "used_gl_turret";
|
|
level.sentrysettings["gl_turret_4"].shouldsplash = 1;
|
|
level.sentrysettings["gl_turret_4"].vodestroyed = "sentry_destroyed";
|
|
level.sentrysettings["gl_turret_4"].issentient = 0;
|
|
level.sentrysettings["minigun_turret"] = spawnstruct();
|
|
level.sentrysettings["minigun_turret"].health = 999999;
|
|
level.sentrysettings["minigun_turret"].maxhealth = 650;
|
|
level.sentrysettings["minigun_turret"].burstmin = 20;
|
|
level.sentrysettings["minigun_turret"].burstmax = 130;
|
|
level.sentrysettings["minigun_turret"].pausemin = 0.15;
|
|
level.sentrysettings["minigun_turret"].pausemax = 0.35;
|
|
level.sentrysettings["minigun_turret"].sentrymodeon = "manual";
|
|
level.sentrysettings["minigun_turret"].sentrymodeoff = "sentry_offline";
|
|
level.sentrysettings["minigun_turret"].timeout = 600.0;
|
|
level.sentrysettings["minigun_turret"].spinuptime = 0.5;
|
|
level.sentrysettings["minigun_turret"].overheattime = 4.0;
|
|
level.sentrysettings["minigun_turret"].cooldowntime = 0.5;
|
|
level.sentrysettings["minigun_turret"].fxtime = 0.3;
|
|
level.sentrysettings["minigun_turret"].streakname = "minigun";
|
|
level.sentrysettings["minigun_turret"].weaponinfo = "alien_manned_minigun_turret_mp";
|
|
level.sentrysettings["minigun_turret"].modelbase = "weapon_standing_turret_grenade_launcher";
|
|
level.sentrysettings["minigun_turret"].modelplacement = "weapon_standing_turret_grenade_launcher_obj";
|
|
level.sentrysettings["minigun_turret"].modelplacementfailed = "weapon_standing_turret_grenade_launcher_obj_red";
|
|
level.sentrysettings["minigun_turret"].modeldestroyed = "weapon_sentry_chaingun_destroyed";
|
|
level.sentrysettings["minigun_turret"].hintstring = &"ALIEN_COLLECTIBLES_USE_TURRET";
|
|
level.sentrysettings["minigun_turret"].ownerhintstring = &"ALIEN_COLLECTIBLES_DOUBLE_TAP_TO_CARRY";
|
|
level.sentrysettings["minigun_turret"].headicon = 0;
|
|
level.sentrysettings["minigun_turret"].teamsplash = "used_minigun_turret";
|
|
level.sentrysettings["minigun_turret"].shouldsplash = 1;
|
|
level.sentrysettings["minigun_turret"].vodestroyed = "sentry_destroyed";
|
|
level.sentrysettings["minigun_turret"].issentient = 0;
|
|
level.sentrysettings["minigun_turret_1"] = spawnstruct();
|
|
level.sentrysettings["minigun_turret_1"].health = 999999;
|
|
level.sentrysettings["minigun_turret_1"].maxhealth = 650;
|
|
level.sentrysettings["minigun_turret_1"].burstmin = 20;
|
|
level.sentrysettings["minigun_turret_1"].burstmax = 130;
|
|
level.sentrysettings["minigun_turret_1"].pausemin = 0.15;
|
|
level.sentrysettings["minigun_turret_1"].pausemax = 0.35;
|
|
level.sentrysettings["minigun_turret_1"].sentrymodeon = "manual";
|
|
level.sentrysettings["minigun_turret_1"].sentrymodeoff = "sentry_offline";
|
|
level.sentrysettings["minigun_turret_1"].timeout = 600.0;
|
|
level.sentrysettings["minigun_turret_1"].spinuptime = 0.05;
|
|
level.sentrysettings["minigun_turret_1"].overheattime = 4.0;
|
|
level.sentrysettings["minigun_turret_1"].cooldowntime = 0.5;
|
|
level.sentrysettings["minigun_turret_1"].fxtime = 0.3;
|
|
level.sentrysettings["minigun_turret_1"].streakname = "minigun";
|
|
level.sentrysettings["minigun_turret_1"].weaponinfo = "alien_manned_minigun_turret1_mp";
|
|
level.sentrysettings["minigun_turret_1"].modelbase = "weapon_standing_turret_grenade_launcher";
|
|
level.sentrysettings["minigun_turret_1"].modelplacement = "weapon_standing_turret_grenade_launcher_obj";
|
|
level.sentrysettings["minigun_turret_1"].modelplacementfailed = "weapon_standing_turret_grenade_launcher_obj_red";
|
|
level.sentrysettings["minigun_turret_1"].modeldestroyed = "weapon_sentry_chaingun_destroyed";
|
|
level.sentrysettings["minigun_turret_1"].hintstring = &"ALIEN_COLLECTIBLES_USE_TURRET";
|
|
level.sentrysettings["minigun_turret_1"].ownerhintstring = &"ALIEN_COLLECTIBLES_DOUBLE_TAP_TO_CARRY";
|
|
level.sentrysettings["minigun_turret_1"].headicon = 0;
|
|
level.sentrysettings["minigun_turret_1"].teamsplash = "used_minigun_turret";
|
|
level.sentrysettings["minigun_turret_1"].shouldsplash = 1;
|
|
level.sentrysettings["minigun_turret_1"].vodestroyed = "sentry_destroyed";
|
|
level.sentrysettings["minigun_turret_1"].issentient = 0;
|
|
level.sentrysettings["minigun_turret_2"] = spawnstruct();
|
|
level.sentrysettings["minigun_turret_2"].health = 999999;
|
|
level.sentrysettings["minigun_turret_2"].maxhealth = 650;
|
|
level.sentrysettings["minigun_turret_2"].burstmin = 20;
|
|
level.sentrysettings["minigun_turret_2"].burstmax = 130;
|
|
level.sentrysettings["minigun_turret_2"].pausemin = 0.15;
|
|
level.sentrysettings["minigun_turret_2"].pausemax = 0.35;
|
|
level.sentrysettings["minigun_turret_2"].sentrymodeon = "manual";
|
|
level.sentrysettings["minigun_turret_2"].sentrymodeoff = "sentry_offline";
|
|
level.sentrysettings["minigun_turret_2"].timeout = 600.0;
|
|
level.sentrysettings["minigun_turret_2"].spinuptime = 0.05;
|
|
level.sentrysettings["minigun_turret_2"].overheattime = 4.0;
|
|
level.sentrysettings["minigun_turret_2"].cooldowntime = 0.5;
|
|
level.sentrysettings["minigun_turret_2"].fxtime = 0.3;
|
|
level.sentrysettings["minigun_turret_2"].streakname = "minigun";
|
|
level.sentrysettings["minigun_turret_2"].weaponinfo = "alien_manned_minigun_turret2_mp";
|
|
level.sentrysettings["minigun_turret_2"].modelbase = "weapon_standing_turret_grenade_launcher";
|
|
level.sentrysettings["minigun_turret_2"].modelplacement = "weapon_standing_turret_grenade_launcher_obj";
|
|
level.sentrysettings["minigun_turret_2"].modelplacementfailed = "weapon_standing_turret_grenade_launcher_obj_red";
|
|
level.sentrysettings["minigun_turret_2"].modeldestroyed = "weapon_sentry_chaingun_destroyed";
|
|
level.sentrysettings["minigun_turret_2"].hintstring = &"ALIEN_COLLECTIBLES_USE_TURRET";
|
|
level.sentrysettings["minigun_turret_2"].ownerhintstring = &"ALIEN_COLLECTIBLES_DOUBLE_TAP_TO_CARRY";
|
|
level.sentrysettings["minigun_turret_2"].headicon = 0;
|
|
level.sentrysettings["minigun_turret_2"].teamsplash = "used_minigun_turret";
|
|
level.sentrysettings["minigun_turret_2"].shouldsplash = 1;
|
|
level.sentrysettings["minigun_turret_2"].vodestroyed = "sentry_destroyed";
|
|
level.sentrysettings["minigun_turret_2"].issentient = 0;
|
|
level.sentrysettings["minigun_turret_3"] = spawnstruct();
|
|
level.sentrysettings["minigun_turret_3"].health = 999999;
|
|
level.sentrysettings["minigun_turret_3"].maxhealth = 650;
|
|
level.sentrysettings["minigun_turret_3"].burstmin = 20;
|
|
level.sentrysettings["minigun_turret_3"].burstmax = 130;
|
|
level.sentrysettings["minigun_turret_3"].pausemin = 0.15;
|
|
level.sentrysettings["minigun_turret_3"].pausemax = 0.35;
|
|
level.sentrysettings["minigun_turret_3"].sentrymodeon = "manual";
|
|
level.sentrysettings["minigun_turret_3"].sentrymodeoff = "sentry_offline";
|
|
level.sentrysettings["minigun_turret_3"].timeout = 600.0;
|
|
level.sentrysettings["minigun_turret_3"].spinuptime = 0.05;
|
|
level.sentrysettings["minigun_turret_3"].overheattime = 4.0;
|
|
level.sentrysettings["minigun_turret_3"].cooldowntime = 0.5;
|
|
level.sentrysettings["minigun_turret_3"].fxtime = 0.3;
|
|
level.sentrysettings["minigun_turret_3"].streakname = "minigun";
|
|
level.sentrysettings["minigun_turret_3"].weaponinfo = "alien_manned_minigun_turret3_mp";
|
|
level.sentrysettings["minigun_turret_3"].modelbase = "weapon_standing_turret_grenade_launcher";
|
|
level.sentrysettings["minigun_turret_3"].modelplacement = "weapon_standing_turret_grenade_launcher_obj";
|
|
level.sentrysettings["minigun_turret_3"].modelplacementfailed = "weapon_standing_turret_grenade_launcher_obj_red";
|
|
level.sentrysettings["minigun_turret_3"].modeldestroyed = "weapon_sentry_chaingun_destroyed";
|
|
level.sentrysettings["minigun_turret_3"].hintstring = &"ALIEN_COLLECTIBLES_USE_TURRET";
|
|
level.sentrysettings["minigun_turret_3"].ownerhintstring = &"ALIEN_COLLECTIBLES_DOUBLE_TAP_TO_CARRY";
|
|
level.sentrysettings["minigun_turret_3"].headicon = 0;
|
|
level.sentrysettings["minigun_turret_3"].teamsplash = "used_minigun_turret";
|
|
level.sentrysettings["minigun_turret_3"].shouldsplash = 1;
|
|
level.sentrysettings["minigun_turret_3"].vodestroyed = "sentry_destroyed";
|
|
level.sentrysettings["minigun_turret_3"].issentient = 0;
|
|
level.sentrysettings["minigun_turret_4"] = spawnstruct();
|
|
level.sentrysettings["minigun_turret_4"].health = 999999;
|
|
level.sentrysettings["minigun_turret_4"].maxhealth = 650;
|
|
level.sentrysettings["minigun_turret_4"].burstmin = 20;
|
|
level.sentrysettings["minigun_turret_4"].burstmax = 130;
|
|
level.sentrysettings["minigun_turret_4"].pausemin = 0.15;
|
|
level.sentrysettings["minigun_turret_4"].pausemax = 0.35;
|
|
level.sentrysettings["minigun_turret_4"].sentrymodeon = "manual";
|
|
level.sentrysettings["minigun_turret_4"].sentrymodeoff = "sentry_offline";
|
|
level.sentrysettings["minigun_turret_4"].timeout = 600.0;
|
|
level.sentrysettings["minigun_turret_4"].spinuptime = 0.05;
|
|
level.sentrysettings["minigun_turret_4"].overheattime = 6.0;
|
|
level.sentrysettings["minigun_turret_4"].cooldowntime = 0.5;
|
|
level.sentrysettings["minigun_turret_4"].fxtime = 0.3;
|
|
level.sentrysettings["minigun_turret_4"].streakname = "minigun";
|
|
level.sentrysettings["minigun_turret_4"].weaponinfo = "alien_manned_minigun_turret4_mp";
|
|
level.sentrysettings["minigun_turret_4"].modelbase = "weapon_standing_turret_grenade_launcher";
|
|
level.sentrysettings["minigun_turret_4"].modelplacement = "weapon_standing_turret_grenade_launcher_obj";
|
|
level.sentrysettings["minigun_turret_4"].modelplacementfailed = "weapon_standing_turret_grenade_launcher_obj_red";
|
|
level.sentrysettings["minigun_turret_4"].modeldestroyed = "weapon_sentry_chaingun_destroyed";
|
|
level.sentrysettings["minigun_turret_4"].hintstring = &"ALIEN_COLLECTIBLES_USE_TURRET";
|
|
level.sentrysettings["minigun_turret_4"].ownerhintstring = &"ALIEN_COLLECTIBLES_DOUBLE_TAP_TO_CARRY";
|
|
level.sentrysettings["minigun_turret_4"].headicon = 0;
|
|
level.sentrysettings["minigun_turret_4"].teamsplash = "used_minigun_turret";
|
|
level.sentrysettings["minigun_turret_4"].shouldsplash = 1;
|
|
level.sentrysettings["minigun_turret_4"].vodestroyed = "sentry_destroyed";
|
|
level.sentrysettings["minigun_turret_4"].issentient = 0;
|
|
}
|
|
|
|
givesentry( var_0 )
|
|
{
|
|
self.last_sentry = var_0;
|
|
var_1 = createsentryforplayer( var_0, self );
|
|
removeperks();
|
|
self.carriedsentry = var_1;
|
|
var_2 = setcarryingsentry( var_1, 1 );
|
|
self.carriedsentry = undefined;
|
|
thread waitrestoreperks();
|
|
self.iscarrying = 0;
|
|
|
|
if ( isdefined( var_1 ) )
|
|
return 1;
|
|
else
|
|
return 0;
|
|
}
|
|
|
|
setcarryingsentry( var_0, var_1 )
|
|
{
|
|
self endon( "death" );
|
|
self endon( "disconnect" );
|
|
var_0 sentry_setcarried( self );
|
|
common_scripts\utility::_disableweapon();
|
|
self notifyonplayercommand( "place_sentry", "+attack" );
|
|
self notifyonplayercommand( "place_sentry", "+attack_akimbo_accessible" );
|
|
self notifyonplayercommand( "cancel_sentry", "+actionslot 4" );
|
|
|
|
if ( !level.console )
|
|
{
|
|
self notifyonplayercommand( "cancel_sentry", "+actionslot 5" );
|
|
self notifyonplayercommand( "cancel_sentry", "+actionslot 6" );
|
|
self notifyonplayercommand( "cancel_sentry", "+actionslot 7" );
|
|
}
|
|
|
|
for (;;)
|
|
{
|
|
var_2 = common_scripts\utility::waittill_any_return( "place_sentry", "cancel_sentry", "force_cancel_placement" );
|
|
|
|
if ( !isdefined( var_0 ) )
|
|
{
|
|
common_scripts\utility::_enableweapon();
|
|
return 1;
|
|
}
|
|
|
|
if ( var_2 == "cancel_sentry" || var_2 == "force_cancel_placement" )
|
|
{
|
|
if ( !var_1 && var_2 == "cancel_sentry" )
|
|
continue;
|
|
|
|
if ( level.console )
|
|
{
|
|
var_3 = maps\mp\_utility::getkillstreakweapon( level.sentrysettings[var_0.sentrytype].streakname );
|
|
|
|
if ( isdefined( self.killstreakindexweapon ) && var_3 == maps\mp\_utility::getkillstreakweapon( self.pers["killstreaks"][self.killstreakindexweapon].streakname ) && !self getweaponslistitems().size )
|
|
{
|
|
maps\mp\_utility::_giveweapon( var_3, 0 );
|
|
maps\mp\_utility::_setactionslot( 4, "weapon", var_3 );
|
|
}
|
|
}
|
|
|
|
var_0 sentry_setcancelled();
|
|
common_scripts\utility::_enableweapon();
|
|
return 0;
|
|
}
|
|
|
|
if ( !var_0.canbeplaced )
|
|
continue;
|
|
|
|
var_0 sentry_setplaced();
|
|
common_scripts\utility::_enableweapon();
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
removeweapons()
|
|
{
|
|
if ( self.hasriotshield )
|
|
{
|
|
var_0 = maps\mp\alien\_utility::riotshieldname();
|
|
self.restoreweapon = var_0;
|
|
self.riotshieldammo = self getammocount( var_0 );
|
|
self takeweapon( var_0 );
|
|
}
|
|
}
|
|
|
|
removeperks()
|
|
{
|
|
if ( maps\mp\_utility::_hasperk( "specialty_explosivebullets" ) )
|
|
{
|
|
self.restoreperk = "specialty_explosivebullets";
|
|
maps\mp\_utility::_unsetperk( "specialty_explosivebullets" );
|
|
}
|
|
}
|
|
|
|
restoreweapons()
|
|
{
|
|
if ( isdefined( self.restoreweapon ) )
|
|
{
|
|
maps\mp\_utility::_giveweapon( self.restoreweapon );
|
|
|
|
if ( self.hasriotshield )
|
|
{
|
|
var_0 = maps\mp\alien\_utility::riotshieldname();
|
|
self setweaponammoclip( var_0, self.riotshieldammo );
|
|
}
|
|
}
|
|
|
|
self.restoreweapon = undefined;
|
|
}
|
|
|
|
restoreperks()
|
|
{
|
|
if ( isdefined( self.restoreperk ) )
|
|
{
|
|
maps\mp\_utility::giveperk( self.restoreperk, 0 );
|
|
self.restoreperk = undefined;
|
|
}
|
|
}
|
|
|
|
waitrestoreperks()
|
|
{
|
|
self endon( "death" );
|
|
self endon( "disconnect" );
|
|
level endon( "game_ended" );
|
|
wait 0.05;
|
|
restoreperks();
|
|
}
|
|
|
|
createsentryforplayer( var_0, var_1 )
|
|
{
|
|
var_2 = spawnturret( "misc_turret", var_1.origin, level.sentrysettings[var_0].weaponinfo );
|
|
var_2.angles = var_1.angles;
|
|
var_2 sentry_initsentry( var_0, var_1 );
|
|
return var_2;
|
|
}
|
|
|
|
sentry_initsentry( var_0, var_1 )
|
|
{
|
|
self.sentrytype = var_0;
|
|
self.canbeplaced = 1;
|
|
self setmodel( level.sentrysettings[self.sentrytype].modelbase );
|
|
self.shouldsplash = 1;
|
|
self setcandamage( 1 );
|
|
|
|
switch ( var_0 )
|
|
{
|
|
case "gl_turret_4":
|
|
case "gl_turret_3":
|
|
case "gl_turret_2":
|
|
case "gl_turret_1":
|
|
case "minigun_turret_4":
|
|
case "minigun_turret_3":
|
|
case "minigun_turret_2":
|
|
case "minigun_turret_1":
|
|
case "gl_turret":
|
|
case "minigun_turret":
|
|
self setleftarc( 65 );
|
|
self setrightarc( 65 );
|
|
self settoparc( 50 );
|
|
self setbottomarc( 30 );
|
|
self setdefaultdroppitch( 0.0 );
|
|
self.originalowner = var_1;
|
|
break;
|
|
default:
|
|
self maketurretinoperable();
|
|
self setdefaultdroppitch( -89.0 );
|
|
break;
|
|
}
|
|
|
|
self setturretmodechangewait( 1 );
|
|
sentry_setinactive();
|
|
sentry_setowner( var_1 );
|
|
thread sentry_handledamage();
|
|
thread sentry_handledeath();
|
|
thread sentry_timeout();
|
|
|
|
switch ( var_0 )
|
|
{
|
|
case "minigun_turret_4":
|
|
case "minigun_turret_3":
|
|
case "minigun_turret_2":
|
|
case "minigun_turret_1":
|
|
case "minigun_turret":
|
|
self.momentum = 0;
|
|
self.heatlevel = 0;
|
|
self.overheated = 0;
|
|
thread sentry_heatmonitor();
|
|
break;
|
|
case "gl_turret_4":
|
|
case "gl_turret_3":
|
|
case "gl_turret_2":
|
|
case "gl_turret_1":
|
|
case "gl_turret":
|
|
self.momentum = 0;
|
|
self.heatlevel = 0;
|
|
self.cooldownwaittime = 0;
|
|
self.overheated = 0;
|
|
thread turret_heatmonitor();
|
|
thread turret_coolmonitor();
|
|
break;
|
|
default:
|
|
set_sentry_attack_setup();
|
|
thread sentry_handleuse();
|
|
thread sentry_attacktargets();
|
|
thread sentry_beepsounds();
|
|
break;
|
|
}
|
|
}
|
|
|
|
sentry_handledamage()
|
|
{
|
|
self endon( "death" );
|
|
level endon( "game_ended" );
|
|
self.health = level.sentrysettings[self.sentrytype].health;
|
|
self.maxhealth = level.sentrysettings[self.sentrytype].maxhealth;
|
|
self.damagetaken = 0;
|
|
|
|
for (;;)
|
|
{
|
|
self waittill( "damage", var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7, var_8, var_9 );
|
|
|
|
if ( !maps\mp\gametypes\_weapons::friendlyfirecheck( self.owner, var_1, 0 ) )
|
|
continue;
|
|
|
|
if ( isdefined( var_8 ) && var_8 & level.idflags_penetration )
|
|
self.wasdamagedfrombulletpenetration = 1;
|
|
|
|
if ( var_4 == "MOD_MELEE" )
|
|
self.damagetaken = self.damagetaken + self.maxhealth;
|
|
|
|
var_10 = var_0;
|
|
|
|
if ( isplayer( var_1 ) )
|
|
{
|
|
var_1 maps\mp\gametypes\_damagefeedback::updatedamagefeedback( "sentry" );
|
|
|
|
if ( var_1 maps\mp\_utility::_hasperk( "specialty_armorpiercing" ) )
|
|
var_10 = var_0 * level.armorpiercingmod;
|
|
}
|
|
|
|
if ( isdefined( var_1.owner ) && isplayer( var_1.owner ) )
|
|
var_1.owner maps\mp\gametypes\_damagefeedback::updatedamagefeedback( "sentry" );
|
|
|
|
self.damagetaken = self.damagetaken + var_10;
|
|
|
|
if ( self.damagetaken >= self.maxhealth )
|
|
{
|
|
thread maps\mp\gametypes\_missions::vehiclekilled( self.owner, self, undefined, var_1, var_0, var_4, var_9 );
|
|
|
|
if ( isplayer( var_1 ) && ( !isdefined( self.owner ) || var_1 != self.owner ) )
|
|
{
|
|
var_1 thread maps\mp\gametypes\_rank::giverankxp( "kill", 100, var_9, var_4 );
|
|
var_1 notify( "destroyed_killstreak" );
|
|
|
|
if ( isdefined( self.uavremotemarkedby ) && self.uavremotemarkedby != var_1 )
|
|
self.uavremotemarkedby thread maps\mp\killstreaks\_remoteuav::remoteuav_processtaggedassist();
|
|
}
|
|
|
|
if ( isdefined( self.owner ) )
|
|
self.owner thread maps\mp\_utility::leaderdialogonplayer( level.sentrysettings[self.sentrytype].vodestroyed, undefined, undefined, self.origin );
|
|
|
|
self notify( "death" );
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
sentry_watchdisabled()
|
|
{
|
|
self endon( "carried" );
|
|
self endon( "death" );
|
|
level endon( "game_ended" );
|
|
|
|
for (;;)
|
|
{
|
|
self waittill( "emp_damage", var_0, var_1 );
|
|
playfxontag( common_scripts\utility::getfx( "sentry_explode_mp" ), self, "tag_aim" );
|
|
self setdefaultdroppitch( 40 );
|
|
self setmode( level.sentrysettings[self.sentrytype].sentrymodeoff );
|
|
wait( var_1 );
|
|
self setdefaultdroppitch( -89.0 );
|
|
self setmode( level.sentrysettings[self.sentrytype].sentrymodeon );
|
|
}
|
|
}
|
|
|
|
sentry_handledeath()
|
|
{
|
|
self waittill( "death" );
|
|
|
|
if ( !isdefined( self ) )
|
|
return;
|
|
|
|
self freeentitysentient();
|
|
self setmodel( level.sentrysettings[self.sentrytype].modeldestroyed );
|
|
sentry_setinactive();
|
|
self setdefaultdroppitch( 40 );
|
|
|
|
if ( isdefined( self.carriedby ) )
|
|
self setsentrycarrier( undefined );
|
|
|
|
self setsentryowner( undefined );
|
|
self setturretminimapvisible( 0 );
|
|
|
|
if ( isdefined( self.ownertrigger ) )
|
|
self.ownertrigger delete();
|
|
|
|
self playsound( "sentry_explode" );
|
|
|
|
switch ( self.sentrytype )
|
|
{
|
|
case "gl_turret":
|
|
case "minigun_turret":
|
|
self.forcedisable = 1;
|
|
self turretfiredisable();
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
if ( isdefined( self ) )
|
|
thread sentry_deleteturret();
|
|
}
|
|
|
|
sentry_deleteturret()
|
|
{
|
|
self notify( "sentry_delete_turret" );
|
|
self endon( "sentry_delete_turret" );
|
|
|
|
if ( isdefined( self.inuseby ) )
|
|
{
|
|
playfxontag( common_scripts\utility::getfx( "sentry_explode_mp" ), self, "tag_origin" );
|
|
playfxontag( common_scripts\utility::getfx( "sentry_smoke_mp" ), self, "tag_aim" );
|
|
self.inuseby setclientomnvar( "ui_alien_turret_overheat", -1 );
|
|
self.inuseby restoreperks();
|
|
self.inuseby restoreweapons();
|
|
self notify( "deleting" );
|
|
self useby( self.inuseby );
|
|
wait 1.0;
|
|
}
|
|
else
|
|
{
|
|
wait 1.5;
|
|
playfxontag( common_scripts\utility::getfx( "sentry_explode_mp" ), self, "tag_aim" );
|
|
playfxontag( common_scripts\utility::getfx( "sentry_smoke_mp" ), self, "tag_aim" );
|
|
self playsound( "sentry_explode_smoke" );
|
|
wait 0.1;
|
|
self notify( "deleting" );
|
|
}
|
|
|
|
if ( isdefined( self.killcament ) )
|
|
self.killcament delete();
|
|
|
|
if ( isdefined( self ) )
|
|
self delete();
|
|
}
|
|
|
|
sentry_handleuse()
|
|
{
|
|
self endon( "death" );
|
|
level endon( "game_ended" );
|
|
|
|
for (;;)
|
|
{
|
|
self waittill( "trigger", var_0 );
|
|
|
|
if ( !maps\mp\_utility::isreallyalive( var_0 ) )
|
|
continue;
|
|
|
|
var_0 setcarryingsentry( self, 0 );
|
|
}
|
|
}
|
|
|
|
turret_handlepickup( var_0 )
|
|
{
|
|
self endon( "disconnect" );
|
|
level endon( "game_ended" );
|
|
var_0 endon( "death" );
|
|
var_0 endon( "sentry_delete_turret" );
|
|
|
|
if ( !isdefined( var_0.ownertrigger ) )
|
|
return;
|
|
|
|
var_1 = 0;
|
|
|
|
for (;;)
|
|
{
|
|
if ( isalive( self ) && self istouching( var_0.ownertrigger ) && !isdefined( var_0.inuseby ) && !isdefined( var_0.carriedby ) && self isonground() && !isdefined( var_0.deleting ) )
|
|
{
|
|
if ( self usebuttonpressed() )
|
|
{
|
|
var_1 = 0;
|
|
|
|
while ( self usebuttonpressed() )
|
|
{
|
|
var_1 = var_1 + 0.05;
|
|
wait 0.05;
|
|
}
|
|
|
|
if ( var_1 >= 0.25 )
|
|
continue;
|
|
|
|
var_1 = 0;
|
|
|
|
while ( !self usebuttonpressed() && var_1 < 0.25 )
|
|
{
|
|
var_1 = var_1 + 0.05;
|
|
wait 0.05;
|
|
}
|
|
|
|
if ( var_1 >= 0.25 )
|
|
continue;
|
|
|
|
if ( !can_pickup_sentry( var_0 ) )
|
|
continue;
|
|
|
|
var_0 setmode( level.sentrysettings[var_0.sentrytype].sentrymodeoff );
|
|
thread setcarryingsentry( var_0, 0 );
|
|
var_0.ownertrigger delete();
|
|
return;
|
|
}
|
|
}
|
|
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
turret_handlepickup_pc( var_0 )
|
|
{
|
|
self endon( "disconnect" );
|
|
level endon( "game_ended" );
|
|
var_0 endon( "death" );
|
|
var_0 endon( "sentry_delete_turret" );
|
|
|
|
if ( !isdefined( var_0.ownertrigger ) )
|
|
return;
|
|
|
|
var_1 = 0;
|
|
|
|
for (;;)
|
|
{
|
|
if ( isalive( self ) && self istouching( var_0.ownertrigger ) && !isdefined( var_0.inuseby ) && !isdefined( var_0.carriedby ) && self isonground() && !isdefined( var_0.deleting ) )
|
|
{
|
|
if ( self meleebuttonpressed() )
|
|
{
|
|
var_1 = 0;
|
|
|
|
while ( self meleebuttonpressed() )
|
|
{
|
|
var_1 = var_1 + 0.05;
|
|
wait 0.05;
|
|
}
|
|
|
|
if ( var_1 >= 0.5 )
|
|
continue;
|
|
|
|
var_1 = 0;
|
|
|
|
while ( !self meleebuttonpressed() && var_1 < 0.5 )
|
|
{
|
|
var_1 = var_1 + 0.05;
|
|
wait 0.05;
|
|
}
|
|
|
|
if ( var_1 >= 0.5 )
|
|
continue;
|
|
|
|
if ( !can_pickup_sentry( var_0 ) )
|
|
continue;
|
|
|
|
var_0 setmode( level.sentrysettings[var_0.sentrytype].sentrymodeoff );
|
|
thread setcarryingsentry( var_0, 0 );
|
|
var_0.ownertrigger delete();
|
|
return;
|
|
}
|
|
}
|
|
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
can_pickup_sentry( var_0 )
|
|
{
|
|
if ( !maps\mp\_utility::isreallyalive( self ) )
|
|
return 0;
|
|
|
|
if ( isdefined( self.using_remote_turret ) && self.using_remote_turret )
|
|
return 0;
|
|
|
|
if ( self isusingturret() || isdefined( var_0.deleting ) )
|
|
return 0;
|
|
|
|
if ( maps\mp\alien\_utility::is_holding_deployable() )
|
|
return 0;
|
|
|
|
if ( maps\mp\alien\_utility::is_true( self.iscarrying ) )
|
|
return 0;
|
|
|
|
if ( isdefined( var_0.inuseby ) )
|
|
return 0;
|
|
|
|
if ( isdefined( level.drill_carrier ) && level.drill_carrier == self )
|
|
return 0;
|
|
|
|
if ( isdefined( self.remoteuav ) )
|
|
return 0;
|
|
|
|
return 1;
|
|
}
|
|
|
|
turret_handleuse()
|
|
{
|
|
self notify( "turret_handluse" );
|
|
self endon( "turret_handleuse" );
|
|
self endon( "deleting" );
|
|
level endon( "game_ended" );
|
|
self.forcedisable = 0;
|
|
var_0 = ( 1, 0.9, 0.7 );
|
|
var_1 = ( 1, 0.65, 0 );
|
|
var_2 = ( 1, 0.25, 0 );
|
|
|
|
for (;;)
|
|
{
|
|
self waittill( "trigger", var_3 );
|
|
|
|
if ( isdefined( self.carriedby ) )
|
|
continue;
|
|
|
|
if ( isdefined( self.inuseby ) )
|
|
continue;
|
|
|
|
if ( !maps\mp\_utility::isreallyalive( var_3 ) )
|
|
continue;
|
|
|
|
if ( var_3 maps\mp\alien\_utility::is_holding_deployable() )
|
|
continue;
|
|
|
|
if ( isdefined( level.drill_carrier ) && var_3 == level.drill_carrier )
|
|
continue;
|
|
|
|
var_3 removeperks();
|
|
var_3 notify( "weapon_change", "none" );
|
|
self.inuseby = var_3;
|
|
self setmode( level.sentrysettings[self.sentrytype].sentrymodeoff );
|
|
sentry_setowner( var_3 );
|
|
self setmode( level.sentrysettings[self.sentrytype].sentrymodeon );
|
|
var_3 thread turret_shotmonitor( self );
|
|
var_3 setclientomnvar( "ui_alien_turret_overheat", 0 );
|
|
var_4 = 0;
|
|
var_5 = 0;
|
|
var_3 maps\mp\_utility::setlowermessage( "disengage_turret", &"ALIEN_COLLECTIBLES_DISENGAGE_TURRET", 4 );
|
|
|
|
for (;;)
|
|
{
|
|
if ( !maps\mp\_utility::isreallyalive( var_3 ) )
|
|
{
|
|
self.inuseby = undefined;
|
|
var_3 setclientomnvar( "ui_alien_turret_overheat", -1 );
|
|
var_3 maps\mp\_utility::clearlowermessage( "disengage_turret" );
|
|
break;
|
|
}
|
|
|
|
if ( !var_3 isusingturret() )
|
|
{
|
|
self notify( "player_dismount" );
|
|
self.inuseby = undefined;
|
|
var_3 restoreperks();
|
|
var_3 restoreweapons();
|
|
self sethintstring( level.sentrysettings[self.sentrytype].hintstring );
|
|
self setmode( level.sentrysettings[self.sentrytype].sentrymodeoff );
|
|
sentry_setowner( self.originalowner );
|
|
self setmode( level.sentrysettings[self.sentrytype].sentrymodeon );
|
|
var_3 setclientomnvar( "ui_alien_turret_overheat", -1 );
|
|
var_3 maps\mp\_utility::clearlowermessage( "disengage_turret" );
|
|
break;
|
|
}
|
|
|
|
if ( self.heatlevel >= level.sentrysettings[self.sentrytype].overheattime )
|
|
var_6 = 1;
|
|
else
|
|
var_6 = self.heatlevel / level.sentrysettings[self.sentrytype].overheattime;
|
|
|
|
var_7 = 5;
|
|
var_8 = int( var_6 * 100 );
|
|
|
|
if ( var_5 != var_8 )
|
|
{
|
|
if ( var_8 <= var_7 || abs( abs( var_5 ) - abs( var_8 ) ) > var_7 )
|
|
{
|
|
var_3 setclientomnvar( "ui_alien_turret_overheat", var_8 );
|
|
var_5 = var_8;
|
|
}
|
|
}
|
|
|
|
if ( common_scripts\utility::string_starts_with( self.sentrytype, "minigun_turret" ) )
|
|
var_9 = "minigun_turret";
|
|
|
|
if ( self.forcedisable || self.overheated )
|
|
{
|
|
self turretfiredisable();
|
|
var_4 = 0;
|
|
}
|
|
else
|
|
{
|
|
self turretfireenable();
|
|
var_4 = 0;
|
|
self notify( "not_overheated" );
|
|
}
|
|
|
|
wait 0.05;
|
|
}
|
|
|
|
var_3 maps\mp\_utility::clearlowermessage( "disengage_turret" );
|
|
self setdefaultdroppitch( 0.0 );
|
|
var_3 setclientomnvar( "ui_alien_turret_overheat", -1 );
|
|
}
|
|
}
|
|
|
|
sentry_handleownerdisconnect()
|
|
{
|
|
self endon( "death" );
|
|
level endon( "game_ended" );
|
|
self notify( "sentry_handleOwner" );
|
|
self endon( "sentry_handleOwner" );
|
|
self.owner waittill( "killstreak_disowned" );
|
|
self notify( "death" );
|
|
}
|
|
|
|
sentry_setowner( var_0 )
|
|
{
|
|
var_0.current_sentry = self;
|
|
self.owner = var_0;
|
|
self setsentryowner( self.owner );
|
|
self setturretminimapvisible( 1, self.sentrytype );
|
|
|
|
if ( level.teambased )
|
|
{
|
|
self.team = self.owner.team;
|
|
self setturretteam( self.team );
|
|
}
|
|
|
|
thread sentry_handleownerdisconnect();
|
|
}
|
|
|
|
sentry_setplaced()
|
|
{
|
|
self setmodel( level.sentrysettings[self.sentrytype].modelbase );
|
|
|
|
if ( self getmode() == "manual" )
|
|
self setmode( level.sentrysettings[self.sentrytype].sentrymodeoff );
|
|
|
|
self setsentrycarrier( undefined );
|
|
self setcandamage( 1 );
|
|
|
|
switch ( self.sentrytype )
|
|
{
|
|
case "gl_turret_4":
|
|
case "gl_turret_3":
|
|
case "gl_turret_2":
|
|
case "gl_turret_1":
|
|
case "minigun_turret_4":
|
|
case "minigun_turret_3":
|
|
case "minigun_turret_2":
|
|
case "minigun_turret_1":
|
|
case "gl_turret":
|
|
case "minigun_turret":
|
|
self.angles = self.carriedby.angles;
|
|
|
|
if ( isalive( self.originalowner ) )
|
|
{
|
|
if ( level.console || self.originalowner usinggamepad() )
|
|
self.originalowner maps\mp\_utility::setlowermessage( "pickup_hint", level.sentrysettings[self.sentrytype].ownerhintstring, 3.0, undefined, undefined, undefined, undefined, undefined, 1 );
|
|
else
|
|
self.originalowner maps\mp\_utility::setlowermessage( "pickup_hint", &"ALIENS_PATCH_PRESS_TO_CARRY", 3.0, undefined, undefined, undefined, undefined, undefined, 1 );
|
|
}
|
|
|
|
self.ownertrigger = spawn( "trigger_radius", self.origin + ( 0, 0, 1 ), 0, 105, 64 );
|
|
|
|
if ( level.console || self.originalowner usinggamepad() )
|
|
self.originalowner thread turret_handlepickup( self );
|
|
else
|
|
self.originalowner thread turret_handlepickup_pc( self );
|
|
|
|
thread turret_handleuse();
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
sentry_makesolid();
|
|
self.carriedby forceusehintoff();
|
|
self.carriedby = undefined;
|
|
self.in_world_area = maps\mp\alien\_utility::get_in_world_area();
|
|
|
|
if ( isdefined( self.owner ) )
|
|
{
|
|
self.owner.iscarrying = 0;
|
|
|
|
if ( level.sentrysettings[self.sentrytype].issentient )
|
|
common_scripts\utility::make_entity_sentient_mp( self.owner.team );
|
|
|
|
self.owner notify( "new_sentry", self );
|
|
}
|
|
|
|
sentry_setactive();
|
|
self playsound( "sentry_gun_plant" );
|
|
self notify( "placed" );
|
|
}
|
|
|
|
sentry_setcancelled()
|
|
{
|
|
self.carriedby forceusehintoff();
|
|
|
|
if ( isdefined( self.owner ) )
|
|
self.owner.iscarrying = 0;
|
|
|
|
self delete();
|
|
}
|
|
|
|
sentry_setcarried( var_0 )
|
|
{
|
|
if ( isdefined( self.originalowner ) )
|
|
{
|
|
|
|
}
|
|
else
|
|
{
|
|
|
|
}
|
|
|
|
self setmodel( level.sentrysettings[self.sentrytype].modelplacement );
|
|
self setsentrycarrier( var_0 );
|
|
self setcandamage( 0 );
|
|
sentry_makenotsolid();
|
|
self.carriedby = var_0;
|
|
var_0.iscarrying = 1;
|
|
var_0 thread updatesentryplacement( self );
|
|
thread sentry_oncarrierdeath( var_0 );
|
|
thread sentry_oncarrierdisconnect( var_0 );
|
|
thread sentry_oncarrierchangedteam( var_0 );
|
|
thread sentry_ongameended();
|
|
self freeentitysentient();
|
|
self setdefaultdroppitch( -89.0 );
|
|
sentry_setinactive();
|
|
self notify( "carried" );
|
|
}
|
|
|
|
updatesentryplacement( var_0 )
|
|
{
|
|
self endon( "death" );
|
|
self endon( "disconnect" );
|
|
level endon( "game_ended" );
|
|
var_0 endon( "placed" );
|
|
var_0 endon( "death" );
|
|
var_0.canbeplaced = 1;
|
|
var_1 = -1;
|
|
|
|
for (;;)
|
|
{
|
|
var_0.canbeplaced = can_place_sentry( var_0 );
|
|
|
|
if ( var_0.canbeplaced != var_1 )
|
|
{
|
|
if ( var_0.canbeplaced )
|
|
{
|
|
var_0 setmodel( level.sentrysettings[var_0.sentrytype].modelplacement );
|
|
self forceusehinton( &"SENTRY_PLACE" );
|
|
}
|
|
else
|
|
{
|
|
var_0 setmodel( level.sentrysettings[var_0.sentrytype].modelplacementfailed );
|
|
self forceusehinton( &"SENTRY_CANNOT_PLACE" );
|
|
}
|
|
}
|
|
|
|
var_1 = var_0.canbeplaced;
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
can_place_sentry( var_0 )
|
|
{
|
|
var_1 = self canplayerplacesentry();
|
|
var_0.origin = var_1["origin"];
|
|
var_0.angles = var_1["angles"];
|
|
return self isonground() && var_1["result"] && abs( var_0.origin[2] - self.origin[2] ) < 10;
|
|
}
|
|
|
|
sentry_oncarrierdeath( var_0 )
|
|
{
|
|
self endon( "placed" );
|
|
self endon( "death" );
|
|
var_0 waittill( "death" );
|
|
|
|
if ( self.canbeplaced )
|
|
sentry_setplaced();
|
|
else
|
|
self delete();
|
|
}
|
|
|
|
sentry_oncarrierdisconnect( var_0 )
|
|
{
|
|
self endon( "placed" );
|
|
self endon( "death" );
|
|
var_0 waittill( "disconnect" );
|
|
self delete();
|
|
}
|
|
|
|
sentry_oncarrierchangedteam( var_0 )
|
|
{
|
|
self endon( "placed" );
|
|
self endon( "death" );
|
|
var_0 common_scripts\utility::waittill_any( "joined_team", "joined_spectators" );
|
|
self delete();
|
|
}
|
|
|
|
sentry_ongameended( var_0 )
|
|
{
|
|
self endon( "placed" );
|
|
self endon( "death" );
|
|
level waittill( "game_ended" );
|
|
self delete();
|
|
}
|
|
|
|
sentry_setactive()
|
|
{
|
|
self setmode( level.sentrysettings[self.sentrytype].sentrymodeon );
|
|
self setcursorhint( "HINT_NOICON" );
|
|
self sethintstring( level.sentrysettings[self.sentrytype].hintstring );
|
|
self makeusable();
|
|
|
|
foreach ( var_1 in level.players )
|
|
{
|
|
switch ( self.sentrytype )
|
|
{
|
|
case "gl_turret_4":
|
|
case "gl_turret_3":
|
|
case "gl_turret_2":
|
|
case "gl_turret_1":
|
|
case "minigun_turret_4":
|
|
case "minigun_turret_3":
|
|
case "minigun_turret_2":
|
|
case "minigun_turret_1":
|
|
case "gl_turret":
|
|
case "minigun_turret":
|
|
self enableplayeruse( var_1 );
|
|
|
|
if ( maps\mp\_utility::is_aliens() )
|
|
{
|
|
var_2 = self getentitynumber();
|
|
addtoturretlist( var_2 );
|
|
}
|
|
|
|
break;
|
|
default:
|
|
var_2 = self getentitynumber();
|
|
addtoturretlist( var_2 );
|
|
|
|
if ( var_1 == self.owner )
|
|
self enableplayeruse( var_1 );
|
|
else
|
|
self disableplayeruse( var_1 );
|
|
|
|
break;
|
|
}
|
|
}
|
|
|
|
if ( self.shouldsplash && !maps\mp\alien\_utility::isplayingsolo() )
|
|
{
|
|
level thread maps\mp\_utility::teamplayercardsplash( level.sentrysettings[self.sentrytype].teamsplash, self.owner, self.owner.team );
|
|
self.shouldsplash = 0;
|
|
}
|
|
|
|
thread sentry_watchdisabled();
|
|
}
|
|
|
|
sentry_setinactive()
|
|
{
|
|
self setmode( level.sentrysettings[self.sentrytype].sentrymodeoff );
|
|
self makeunusable();
|
|
var_0 = self getentitynumber();
|
|
|
|
switch ( self.sentrytype )
|
|
{
|
|
case "gl_turret":
|
|
break;
|
|
default:
|
|
removefromturretlist( var_0 );
|
|
break;
|
|
}
|
|
|
|
if ( level.teambased )
|
|
maps\mp\_entityheadicons::setteamheadicon( "none", ( 0, 0, 0 ) );
|
|
else if ( isdefined( self.owner ) )
|
|
maps\mp\_entityheadicons::setplayerheadicon( undefined, ( 0, 0, 0 ) );
|
|
}
|
|
|
|
sentry_makesolid()
|
|
{
|
|
self maketurretsolid();
|
|
}
|
|
|
|
sentry_makenotsolid()
|
|
{
|
|
self setcontents( 0 );
|
|
}
|
|
|
|
isfriendlytosentry( var_0 )
|
|
{
|
|
if ( level.teambased && self.team == var_0.team )
|
|
return 1;
|
|
|
|
return 0;
|
|
}
|
|
|
|
addtoturretlist( var_0 )
|
|
{
|
|
level.turrets[var_0] = self;
|
|
}
|
|
|
|
removefromturretlist( var_0 )
|
|
{
|
|
level.turrets[var_0] = undefined;
|
|
}
|
|
|
|
sentry_attacktargets()
|
|
{
|
|
self endon( "death" );
|
|
level endon( "game_ended" );
|
|
self.momentum = 0;
|
|
self.heatlevel = 0;
|
|
self.overheated = 0;
|
|
thread sentry_heatmonitor();
|
|
|
|
for (;;)
|
|
{
|
|
common_scripts\utility::waittill_either( "turretstatechange", "cooled" );
|
|
|
|
if ( self isfiringturret() )
|
|
{
|
|
thread sentry_burstfirestart();
|
|
continue;
|
|
}
|
|
|
|
sentry_spindown();
|
|
thread sentry_burstfirestop();
|
|
}
|
|
}
|
|
|
|
sentry_timeout()
|
|
{
|
|
self endon( "death" );
|
|
level endon( "game_ended" );
|
|
var_0 = level.sentrysettings[self.sentrytype].timeout;
|
|
|
|
while ( var_0 )
|
|
{
|
|
wait 1.0;
|
|
maps\mp\gametypes\_hostmigration::waittillhostmigrationdone();
|
|
|
|
if ( !isdefined( self.carriedby ) )
|
|
var_0 = max( 0, var_0 - 1.0 );
|
|
}
|
|
|
|
while ( isdefined( self ) && isdefined( self.inuseby ) )
|
|
wait 0.05;
|
|
|
|
self notify( "death" );
|
|
}
|
|
|
|
sentry_targetlocksound()
|
|
{
|
|
self endon( "death" );
|
|
self playsound( "sentry_gun_beep" );
|
|
wait 0.1;
|
|
self playsound( "sentry_gun_beep" );
|
|
wait 0.1;
|
|
self playsound( "sentry_gun_beep" );
|
|
}
|
|
|
|
sentry_spinup()
|
|
{
|
|
thread sentry_targetlocksound();
|
|
|
|
while ( self.momentum < level.sentrysettings[self.sentrytype].spinuptime )
|
|
{
|
|
self.momentum = self.momentum + 0.1;
|
|
wait 0.1;
|
|
}
|
|
}
|
|
|
|
sentry_spindown()
|
|
{
|
|
self.momentum = 0;
|
|
}
|
|
|
|
sentry_burstfirestart()
|
|
{
|
|
self endon( "death" );
|
|
self endon( "stop_shooting" );
|
|
level endon( "game_ended" );
|
|
sentry_spinup();
|
|
var_0 = weaponfiretime( level.sentrysettings[self.sentrytype].weaponinfo );
|
|
var_1 = level.sentrysettings[self.sentrytype].burstmin;
|
|
var_2 = level.sentrysettings[self.sentrytype].burstmax;
|
|
var_3 = level.sentrysettings[self.sentrytype].pausemin;
|
|
var_4 = level.sentrysettings[self.sentrytype].pausemax;
|
|
|
|
for (;;)
|
|
{
|
|
var_5 = randomintrange( var_1, var_2 + 1 );
|
|
|
|
for ( var_6 = 0; var_6 < var_5 && !self.overheated; var_6++ )
|
|
{
|
|
self shootturret();
|
|
self notify( "bullet_fired" );
|
|
self.heatlevel = self.heatlevel + var_0;
|
|
wait( var_0 );
|
|
}
|
|
|
|
wait( randomfloatrange( var_3, var_4 ) );
|
|
}
|
|
}
|
|
|
|
sentry_burstfirestop()
|
|
{
|
|
self notify( "stop_shooting" );
|
|
}
|
|
|
|
turret_shotmonitor( var_0 )
|
|
{
|
|
self endon( "death" );
|
|
self endon( "disconnect" );
|
|
level endon( "game_ended" );
|
|
var_0 endon( "death" );
|
|
var_0 endon( "player_dismount" );
|
|
var_1 = weaponfiretime( level.sentrysettings[var_0.sentrytype].weaponinfo );
|
|
|
|
for (;;)
|
|
{
|
|
var_0 waittill( "turret_fire" );
|
|
var_0 getturretowner() notify( "turret_fire" );
|
|
var_0.heatlevel = var_0.heatlevel + var_1;
|
|
var_0.cooldownwaittime = var_1;
|
|
}
|
|
}
|
|
|
|
sentry_heatmonitor()
|
|
{
|
|
self endon( "death" );
|
|
var_0 = weaponfiretime( level.sentrysettings[self.sentrytype].weaponinfo );
|
|
var_1 = 0;
|
|
var_2 = 0;
|
|
var_3 = level.sentrysettings[self.sentrytype].overheattime;
|
|
var_4 = level.sentrysettings[self.sentrytype].cooldowntime;
|
|
|
|
for (;;)
|
|
{
|
|
if ( self.heatlevel != var_1 )
|
|
wait( var_0 );
|
|
else
|
|
self.heatlevel = max( 0, self.heatlevel - 0.05 );
|
|
|
|
if ( self.heatlevel > var_3 )
|
|
{
|
|
self.overheated = 1;
|
|
thread playheatfx();
|
|
|
|
switch ( self.sentrytype )
|
|
{
|
|
case "minigun_turret_4":
|
|
case "minigun_turret_3":
|
|
case "minigun_turret_2":
|
|
case "minigun_turret_1":
|
|
case "minigun_turret":
|
|
playfxontag( common_scripts\utility::getfx( "sentry_smoke_mp" ), self, "tag_aim" );
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
while ( self.heatlevel )
|
|
{
|
|
self.heatlevel = max( 0, self.heatlevel - 0.1 );
|
|
wait 0.1;
|
|
}
|
|
|
|
self.overheated = 0;
|
|
self notify( "not_overheated" );
|
|
}
|
|
|
|
var_1 = self.heatlevel;
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
turret_heatmonitor()
|
|
{
|
|
self endon( "death" );
|
|
var_0 = level.sentrysettings[self.sentrytype].overheattime;
|
|
|
|
for (;;)
|
|
{
|
|
if ( self.heatlevel > var_0 )
|
|
{
|
|
self.overheated = 1;
|
|
thread playheatfx();
|
|
|
|
switch ( self.sentrytype )
|
|
{
|
|
case "gl_turret":
|
|
playfxontag( common_scripts\utility::getfx( "sentry_smoke_mp" ), self, "tag_aim" );
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
while ( self.heatlevel )
|
|
wait 0.1;
|
|
|
|
self.overheated = 0;
|
|
self notify( "not_overheated" );
|
|
}
|
|
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
turret_coolmonitor()
|
|
{
|
|
self endon( "death" );
|
|
|
|
for (;;)
|
|
{
|
|
if ( self.heatlevel > 0 )
|
|
{
|
|
if ( self.cooldownwaittime <= 0 )
|
|
self.heatlevel = max( 0, self.heatlevel - 0.05 );
|
|
else
|
|
self.cooldownwaittime = max( 0, self.cooldownwaittime - 0.05 );
|
|
}
|
|
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
playheatfx()
|
|
{
|
|
self endon( "death" );
|
|
self endon( "not_overheated" );
|
|
level endon( "game_ended" );
|
|
self notify( "playing_heat_fx" );
|
|
self endon( "playing_heat_fx" );
|
|
|
|
for (;;)
|
|
{
|
|
playfxontag( common_scripts\utility::getfx( "sentry_overheat_mp" ), self, "tag_flash" );
|
|
wait( level.sentrysettings[self.sentrytype].fxtime );
|
|
}
|
|
}
|
|
|
|
playsmokefx()
|
|
{
|
|
self endon( "death" );
|
|
self endon( "not_overheated" );
|
|
level endon( "game_ended" );
|
|
|
|
for (;;)
|
|
{
|
|
playfxontag( common_scripts\utility::getfx( "sentry_smoke_mp" ), self, "tag_aim" );
|
|
wait 0.4;
|
|
}
|
|
}
|
|
|
|
sentry_beepsounds()
|
|
{
|
|
self endon( "death" );
|
|
level endon( "game_ended" );
|
|
|
|
for (;;)
|
|
{
|
|
wait 3.0;
|
|
|
|
if ( !isdefined( self.carriedby ) )
|
|
self playsound( "sentry_gun_beep" );
|
|
}
|
|
}
|
|
|
|
set_sentry_attack_setup()
|
|
{
|
|
var_0 = [];
|
|
var_0["brute"][0] = maps\mp\alien\_utility::set_attack_sync_direction( ( 1, 0, 0 ), "alien_sentry_attack_sentry_front_enter", "alien_sentry_attack_sentry_front_loop", "alien_sentry_attack_sentry_front_exit", "attack_sentry_front", "attack_sentry" );
|
|
var_0["brute"][1] = maps\mp\alien\_utility::set_attack_sync_direction( ( 0, 1, 0 ), "alien_sentry_attack_sentry_side_l_enter", "alien_sentry_attack_sentry_side_l_loop", "alien_sentry_attack_sentry_side_l_exit", "attack_sentry_left", "attack_sentry" );
|
|
var_0["brute"][2] = maps\mp\alien\_utility::set_attack_sync_direction( ( 0, -1, 0 ), "alien_sentry_attack_sentry_side_r_enter", "alien_sentry_attack_sentry_side_r_loop", "alien_sentry_attack_sentry_side_r_exit", "attack_sentry_right", "attack_sentry" );
|
|
var_0["goon"][0] = maps\mp\alien\_utility::set_attack_sync_direction( ( 1, 0, 0 ), "alien_goon_sentry_attack_sentry_F_enter", "alien_goon_sentry_attack_sentry_F_loop", "alien_goon_sentry_attack_sentry_F_exit", "attack_sentry_front", "attack_sentry" );
|
|
var_0["goon"][1] = maps\mp\alien\_utility::set_attack_sync_direction( ( 0, 1, 0 ), "alien_goon_sentry_attack_sentry_L_enter", "alien_goon_sentry_attack_sentry_L_loop", "alien_goon_sentry_attack_sentry_L_exit", "attack_sentry_left", "attack_sentry" );
|
|
var_0["goon"][2] = maps\mp\alien\_utility::set_attack_sync_direction( ( 0, -1, 0 ), "alien_goon_sentry_attack_sentry_R_enter", "alien_goon_sentry_attack_sentry_R_loop", "alien_goon_sentry_attack_sentry_R_exit", "attack_sentry_right", "attack_sentry" );
|
|
var_1[0] = "death";
|
|
var_1[1] = "destroyed";
|
|
var_1[2] = "carried";
|
|
maps\mp\alien\_utility::set_synch_attack_setup( var_0, 1, var_1, ::sentry_can_synch_attack, ::sentry_synch_attack_begin, ::sentry_synch_attack_loop, ::sentry_synch_attack_end, "sentry gun" );
|
|
}
|
|
|
|
sentry_can_synch_attack()
|
|
{
|
|
return !isdefined( self.synched_turret );
|
|
}
|
|
|
|
sentry_synch_attack_begin( var_0 )
|
|
{
|
|
self hide();
|
|
self.synched_turret = spawn( "script_model", self.origin );
|
|
self.synched_turret setmodel( level.sentrysettings[self.sentrytype].modelbase );
|
|
self.synched_turret.angles = self.angles;
|
|
self turretfiredisable();
|
|
self.synched_turret scriptmodelplayanim( var_0 );
|
|
}
|
|
|
|
sentry_synch_attack_loop( var_0 )
|
|
{
|
|
self.synched_turret scriptmodelclearanim();
|
|
self.synched_turret scriptmodelplayanim( var_0 );
|
|
}
|
|
|
|
sentry_synch_attack_end( var_0, var_1 )
|
|
{
|
|
if ( isdefined( var_0 ) )
|
|
{
|
|
self.synched_turret scriptmodelclearanim();
|
|
self.synched_turret scriptmodelplayanim( var_0 );
|
|
wait( var_1 );
|
|
}
|
|
|
|
if ( !isdefined( self ) )
|
|
return;
|
|
|
|
self.synched_turret delete();
|
|
self show();
|
|
|
|
if ( isalive( self ) )
|
|
self turretfireenable();
|
|
}
|