mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-10 10:27:55 -05:00
298 lines
8.6 KiB
Plaintext
298 lines
8.6 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: maps\mp\mp_magma.gsc
|
|
* Game: Call of Duty: Black Ops 2
|
|
* Platform: PC
|
|
* Function Count: 12
|
|
* Decompile Time: 2 ms
|
|
* Timestamp: 10/28/2023 12:11:10 AM
|
|
*******************************************************************/
|
|
|
|
#include common_scripts/utility;
|
|
#include maps/mp/_compass;
|
|
#include maps/mp/_load;
|
|
#include maps/mp/_utility;
|
|
#include maps/mp/gametypes/_spawning;
|
|
#include maps/mp/gametypes/_weaponobjects;
|
|
#include maps/mp/mp_magma_amb;
|
|
#include maps/mp/mp_magma_fx;
|
|
|
|
//Function Number: 1
|
|
main()
|
|
{
|
|
level.levelspawndvars = ::levelspawndvars;
|
|
level.overrideplayerdeathwatchtimer = ::leveloverridetime;
|
|
level thread spawnkilltrigger();
|
|
maps/mp/mp_magma_fx::main();
|
|
precachemodel("collision_clip_64x64x10");
|
|
precachemodel("collision_physics_64x64x10");
|
|
precachemodel("collision_physics_256x256x10");
|
|
precachemodel("collision_physics_128x128x10");
|
|
precachemodel("collision_physics_64x64x10");
|
|
precachemodel("p6_mag_k_rail_barrier");
|
|
precachemodel("p6_mag_rocks_medium_02");
|
|
maps/mp/_load::main();
|
|
maps/mp/mp_magma_amb::main();
|
|
maps/mp/_compass::setupminimap("compass_map_mp_magma");
|
|
setdvar("compassmaxrange","2100");
|
|
game["strings"]["war_callsign_a"] = &"MPUI_CALLSIGN_MAPNAME_A";
|
|
game["strings"]["war_callsign_b"] = &"MPUI_CALLSIGN_MAPNAME_B";
|
|
game["strings"]["war_callsign_c"] = &"MPUI_CALLSIGN_MAPNAME_C";
|
|
game["strings"]["war_callsign_d"] = &"MPUI_CALLSIGN_MAPNAME_D";
|
|
game["strings"]["war_callsign_e"] = &"MPUI_CALLSIGN_MAPNAME_E";
|
|
game["strings_menu"]["war_callsign_a"] = "@MPUI_CALLSIGN_MAPNAME_A";
|
|
game["strings_menu"]["war_callsign_b"] = "@MPUI_CALLSIGN_MAPNAME_B";
|
|
game["strings_menu"]["war_callsign_c"] = "@MPUI_CALLSIGN_MAPNAME_C";
|
|
game["strings_menu"]["war_callsign_d"] = "@MPUI_CALLSIGN_MAPNAME_D";
|
|
game["strings_menu"]["war_callsign_e"] = "@MPUI_CALLSIGN_MAPNAME_E";
|
|
barrier1 = spawn("script_model",(235.49,907.91,-395.97));
|
|
barrier1.angles = (2.96968,263.594,-1.33952);
|
|
barrier2 = spawn("script_model",(245.37,837.028,-401.885));
|
|
barrier2.angles = (6.5989,268.994,-0.115603);
|
|
barrier1 setmodel("p6_mag_k_rail_barrier");
|
|
barrier2 setmodel("p6_mag_k_rail_barrier");
|
|
rock1 = spawn("script_model",(271.92,893.99,-494));
|
|
rock1.angles = VectorScale((0,1,0));
|
|
rock2 = spawn("script_model",(393.42,895.49,-494));
|
|
rock2.angles = VectorScale((0,1,0));
|
|
rock3 = spawn("script_model",(477.92,882.49,-509));
|
|
rock3.angles = VectorScale((0,1,0));
|
|
rock1 setmodel("p6_mag_rocks_medium_02");
|
|
rock2 setmodel("p6_mag_rocks_medium_02");
|
|
rock3 setmodel("p6_mag_rocks_medium_02");
|
|
spawncollision("collision_clip_64x64x10","collider",(234,907,-391.5),(356.785,83.5728,-83.5116));
|
|
spawncollision("collision_clip_64x64x10","collider",(243.5,835.5,-399),(353.903,88.8464,-83.1852));
|
|
spawncollision("collision_clip_64x64x10","collider",(254,902.5,-395),(0.42985,353.514,3.77564));
|
|
spawncollision("collision_clip_64x64x10","collider",(264,835.5,-401.5),(0.0466956,359.602,6.69984));
|
|
spawncollision("collision_clip_64x64x10","collider",(247.5,831.5,-363),(353.903,88.8464,-83.1852));
|
|
spawncollision("collision_clip_64x64x10","collider",(237.5,904.5,-357.5),(356.785,83.5728,-83.5116));
|
|
spawncollision("collision_physics_64x64x10","collider",(234,907,-391.5),(356.785,83.5728,-83.5116));
|
|
spawncollision("collision_physics_64x64x10","collider",(243.5,835.5,-399),(353.903,88.8464,-83.1852));
|
|
spawncollision("collision_physics_256x256x10","collider",(-459,357.5,-578.5),(270,183.902,86.0983));
|
|
spawncollision("collision_physics_128x128x10","collider",(-267,233.5,-514),VectorScale((1,0,0)));
|
|
spawncollision("collision_physics_128x128x10","collider",(-669.5,216,-514),VectorScale((1,0,0)));
|
|
spawncollision("collision_physics_64x64x10","collider",(-748,95,-483.5),(270,270.2,1.43));
|
|
level.levelkillbrushes = [];
|
|
maps/mp/gametypes/_spawning::level_use_unified_spawning(1);
|
|
level.remotemotarviewup = 20;
|
|
registerclientfield("scriptmover","police_car_lights",1,1,"int");
|
|
precacheitem("lava_mp");
|
|
level thread destructible_lights();
|
|
level.overrideweaponfunc = ::overrideweaponfunc;
|
|
level.deleteonkillbrushoverride = ::deleteonkillbrushoverride;
|
|
level thread lava_trigger_init();
|
|
level.onplayerkilledextraunthreadedcbs[level.onplayerkilledextraunthreadedcbs.size] = ::checkcorpseinlava;
|
|
}
|
|
|
|
//Function Number: 2
|
|
lava_trigger_init()
|
|
{
|
|
wait(3);
|
|
killbrushes = getentarray("trigger_hurt","classname");
|
|
for(i = 0;i < killbrushes.size;i++)
|
|
{
|
|
if(IsDefined(killbrushes[i].script_noteworthy) && killbrushes[i].script_noteworthy == "lava")
|
|
{
|
|
level.levelkillbrushes[level.levelkillbrushes.size] = killbrushes[i];
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 3
|
|
levelspawndvars(reset_dvars)
|
|
{
|
|
ss = level.spawnsystem;
|
|
ss.enemy_influencer_radius = set_dvar_float_if_unset("scr_spawn_enemy_influencer_radius","2600",reset_dvars);
|
|
}
|
|
|
|
//Function Number: 4
|
|
overrideweaponfunc(sweapon,script_noteworthy)
|
|
{
|
|
if(IsDefined(script_noteworthy) && script_noteworthy == "lava")
|
|
{
|
|
sweapon = "lava_mp";
|
|
}
|
|
|
|
return sweapon;
|
|
}
|
|
|
|
//Function Number: 5
|
|
destructible_lights()
|
|
{
|
|
wait(0.05);
|
|
destructibles = getentarray("destructible","targetname");
|
|
foreach(destructible in destructibles)
|
|
{
|
|
if(destructible.destructibledef == "veh_t6_dlc_police_car_jp_destructible")
|
|
{
|
|
destructible thread destructible_think("police_car_lights");
|
|
destructible setclientfield("police_car_lights",1);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 6
|
|
destructible_think(clientfield)
|
|
{
|
|
self waittill_any("death","destructible_base_piece_death");
|
|
self setclientfield(clientfield,0);
|
|
}
|
|
|
|
//Function Number: 7
|
|
checkcorpseinlava(einflictor,attacker,idamage,smeansofdeath,sweapon,vdir,shitloc,psoffsettime,deathanimduration)
|
|
{
|
|
if(!IsDefined(einflictor) || !IsDefined(einflictor.script_noteworthy))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(einflictor.script_noteworthy != "lava")
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!(IsDefined(self.body)))
|
|
{
|
|
return;
|
|
}
|
|
|
|
playfxontag(level._effect["fx_fire_torso"],self.body,"J_Spine4");
|
|
playfxontag(level._effect["fx_fire_arm_left"],self.body,"J_Elbow_LE");
|
|
playfxontag(level._effect["fx_fire_arm_right"],self.body,"J_Elbow_RI");
|
|
playfxontag(level._effect["fx_fire_leg_left"],self.body,"J_Hip_LE");
|
|
playfxontag(level._effect["fx_fire_leg_right"],self.body,"J_Hip_RI");
|
|
}
|
|
|
|
//Function Number: 8
|
|
leveloverridetime(defaulttime)
|
|
{
|
|
if(self isinlava())
|
|
{
|
|
return getdvarfloatdefault("scr_lavaPlayerDeathWatchTime",0.5);
|
|
}
|
|
}
|
|
|
|
//Function Number: 9
|
|
isinlava()
|
|
{
|
|
if(!IsDefined(self.lastattacker) || !IsDefined(self.lastattacker.script_noteworthy))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(self.lastattacker.script_noteworthy != "lava")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 10
|
|
testkillbrushonstationary(lavaarray,killbrusharray,player,watcher)
|
|
{
|
|
player endon("disconnect");
|
|
self endon("death");
|
|
self waittill("stationary");
|
|
wait(0.1);
|
|
for(i = 0;i < lavaarray.size;i++)
|
|
{
|
|
if(self istouching(lavaarray[i]))
|
|
{
|
|
playfx(level._effect["fx_fire_torso"],self.origin);
|
|
watcher maps/mp/gametypes/_weaponobjects::waitanddetonate(self,0,undefined,"lava_mp");
|
|
return;
|
|
}
|
|
}
|
|
|
|
for(i = 0;i < killbrusharray.size;i++)
|
|
{
|
|
if(self istouching(killbrusharray[i]))
|
|
{
|
|
if(self.origin[2] > player.origin[2])
|
|
{
|
|
break;
|
|
}
|
|
|
|
if(IsDefined(self))
|
|
{
|
|
self delete();
|
|
}
|
|
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 11
|
|
deleteonkillbrushoverride(player,watcher)
|
|
{
|
|
player endon("disconnect");
|
|
self endon("death");
|
|
self endon("stationary");
|
|
trigger_hurtarray = getentarray("trigger_hurt","classname");
|
|
lavaarray = [];
|
|
killbrusharray = [];
|
|
for(i = 0;i < trigger_hurtarray.size;i++)
|
|
{
|
|
if(IsDefined(trigger_hurtarray[i].script_noteworthy) && trigger_hurtarray[i].script_noteworthy == "lava")
|
|
{
|
|
lavaarray[lavaarray.size] = trigger_hurtarray[i];
|
|
}
|
|
else
|
|
{
|
|
killbrusharray[killbrusharray.size] = trigger_hurtarray[i];
|
|
}
|
|
}
|
|
|
|
if(lavaarray.size < 1)
|
|
{
|
|
return;
|
|
}
|
|
|
|
self thread testkillbrushonstationary(lavaarray,killbrusharray,player,watcher);
|
|
while(1)
|
|
{
|
|
for(i = 0;i < lavaarray.size;i++)
|
|
{
|
|
if(self istouching(lavaarray[i]))
|
|
{
|
|
wait(0.05);
|
|
playfx(level._effect["fx_fire_torso"],self.origin);
|
|
watcher maps/mp/gametypes/_weaponobjects::waitanddetonate(self,0,undefined,"lava_mp");
|
|
return;
|
|
}
|
|
}
|
|
|
|
for(i = 0;i < killbrusharray.size;i++)
|
|
{
|
|
if(self istouching(killbrusharray[i]))
|
|
{
|
|
if(self.origin[2] > player.origin[2])
|
|
{
|
|
break;
|
|
}
|
|
|
|
if(IsDefined(self))
|
|
{
|
|
self delete();
|
|
}
|
|
|
|
return;
|
|
}
|
|
}
|
|
|
|
wait(0.1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 12
|
|
spawnkilltrigger()
|
|
{
|
|
trigger = spawn("trigger_radius",(2132,-1692,-708),0,250,100);
|
|
while(1)
|
|
{
|
|
trigger waittill("trigger",player);
|
|
player dodamage(player.health * 2,trigger.origin,trigger,trigger,"none","MOD_SUICIDE",0,"lava_mp");
|
|
}
|
|
} |