mirror of
https://github.com/JezuzLizard/Recompilable-gscs-for-BO2-zombies-and-multiplayer.git
synced 2025-06-07 17:37:50 -05:00
190 lines
5.8 KiB
Plaintext
190 lines
5.8 KiB
Plaintext
//checked includes match cerberus output
|
|
#include maps/mp/zombies/_zm_weapons;
|
|
#include maps/mp/zombies/_zm_zonemgr;
|
|
#include maps/mp/zombies/_zm_utility;
|
|
#include common_scripts/utility;
|
|
#include maps/mp/_utility;
|
|
|
|
main_start() //checked matches cerberus output
|
|
{
|
|
level thread spawned_collision_ffotd();
|
|
level thread eject_player_trigger_init();
|
|
level thread change_bad_spawner();
|
|
}
|
|
|
|
main_end() //checked matches cerberus output
|
|
{
|
|
level thread eject_player_trigger();
|
|
}
|
|
|
|
spawned_collision_ffotd() //checked changed to match cerberus output
|
|
{
|
|
precachemodel( "collision_wall_32x32x10_standard" );
|
|
flag_wait( "start_zombie_round_logic" );
|
|
if ( !is_true( level.optimise_for_splitscreen ) )
|
|
{
|
|
collision1 = spawn( "script_model", ( 2044, 499, 2893 ) );
|
|
collision1 setmodel( "collision_wall_32x32x10_standard" );
|
|
collision1.angles = vectorScale( ( 0, 1, 0 ), 330 );
|
|
collision1 ghost();
|
|
collision2 = spawn( "script_model", ( 2044, 499, 2925 ) );
|
|
collision2 setmodel( "collision_wall_32x32x10_standard" );
|
|
collision2.angles = vectorScale( ( 0, 1, 0 ), 330 );
|
|
collision2 ghost();
|
|
collision3 = spawn( "script_model", ( 1768, 1507, 3075 ) );
|
|
collision3 setmodel( "collision_wall_256x256x10_standard" );
|
|
collision3.angles = ( 0, 0, 0 );
|
|
collision3 ghost();
|
|
collision3b = spawn( "script_model", ( 1740, 1497, 3075 ) );
|
|
collision3b setmodel( "collision_wall_256x256x10_standard" );
|
|
collision3b.angles = ( 0, 0, 0 );
|
|
collision3b ghost();
|
|
collision3 = spawn( "script_model", ( 2054, 1455, 3440 ) );
|
|
collision3 setmodel( "collision_wall_128x128x10_standard" );
|
|
collision3.angles = ( 0, 0, 0 );
|
|
collision3 ghost();
|
|
collision4 = spawn( "script_model", ( 2257, 2374, 3101 ) );
|
|
collision4 setmodel( "collision_wall_256x256x10_standard" );
|
|
collision4.angles = vectorScale( ( 0, 1, 0 ), 270 );
|
|
collision4 ghost();
|
|
collision5 = spawn( "script_model", ( 3076, 1598, 2791 ) );
|
|
collision5 setmodel( "collision_wall_256x256x10_standard" );
|
|
collision5.angles = vectorScale( ( 1, 0, 0 ), 347.6 );
|
|
collision5 ghost();
|
|
collision6b = spawn( "script_model", ( 3693, 1840, 1897 ) );
|
|
collision6b setmodel( "collision_wall_256x256x10_standard" );
|
|
collision6b.angles = ( 0, 270, 12 );
|
|
collision6b ghost();
|
|
collision6c = spawn( "script_model", ( 3666, 1840, 2023 ) );
|
|
collision6c setmodel( "collision_wall_256x256x10_standard" );
|
|
collision6c.angles = ( 0, 270, 12 );
|
|
collision6c ghost();
|
|
collision7 = spawn( "script_model", ( 2157, 839, 3129 ) );
|
|
collision7 setmodel( "collision_wall_128x128x10_standard" );
|
|
collision7.angles = ( 0, 9.79996, -90 );
|
|
collision7 ghost();
|
|
collision7 = spawn( "script_model", ( 3594, 1708, 2247 ) );
|
|
collision7 setmodel( "collision_wall_128x128x10_standard" );
|
|
collision7.angles = ( 0, 270, 12 );
|
|
collision7 ghost();
|
|
}
|
|
}
|
|
|
|
eject_player_trigger_init() //checked matches cerberus output
|
|
{
|
|
trig1 = spawn( "trigger_box", ( 3172, 1679, 1296.09 ), 0, 64, 10, 64 );
|
|
trig1.angles = ( 0, 0, 0 );
|
|
trig1.targetname = "eject_player_pos";
|
|
trig1.point = spawn( "script_origin", ( 3266, 1703.5, 1325 ) );
|
|
trig2 = spawn( "trigger_box", ( 3225.5, 1153, 1346.48 ), 0, 64, 10, 64 );
|
|
trig2.angles = ( 0, 0, 0 );
|
|
trig2.targetname = "eject_player_pos";
|
|
trig2.point = spawn( "script_origin", ( 3074, 1137.5, 1282.26 ) );
|
|
trig3 = spawn( "trigger_radius", ( 3583, 1964, 2751.95 ), 0, 30, 64 );
|
|
trig3.angles = ( 0, 0, 0 );
|
|
trig3.targetname = "eject_player_pos";
|
|
trig3.point = spawn( "script_origin", ( 3590.2, 2068, 2720.34 ) );
|
|
}
|
|
|
|
eject_player_trigger() //checked matches cerberus output
|
|
{
|
|
trigs = getentarray( "eject_player_pos", "targetname" );
|
|
array_thread( trigs, ::player_eject_watcher );
|
|
}
|
|
|
|
player_eject_watcher() //checked matches cerberus output
|
|
{
|
|
time = 0;
|
|
while ( 1 )
|
|
{
|
|
self waittill( "trigger", who );
|
|
if ( is_player_valid( who ) )
|
|
{
|
|
while ( who istouching( self ) )
|
|
{
|
|
time++;
|
|
if ( time >= 6 )
|
|
{
|
|
if ( isDefined( self.point ) )
|
|
{
|
|
if ( !positionwouldtelefrag( self.point.origin ) )
|
|
{
|
|
who setorigin( self.point.origin );
|
|
who playlocalsound( level.zmb_laugh_alias );
|
|
who playrumbleonentity( "damage_light" );
|
|
earthquake( 0.5, 0.5, who.origin, 100 );
|
|
who thread ejected_overrun( self );
|
|
}
|
|
}
|
|
}
|
|
wait 1;
|
|
}
|
|
time = 0;
|
|
}
|
|
wait 0.1;
|
|
}
|
|
}
|
|
|
|
ejected_overrun( trig ) //checked changed to match cerberus output
|
|
{
|
|
if ( !isDefined( trig.ejected ) )
|
|
{
|
|
trig.ejected = 1;
|
|
}
|
|
else
|
|
{
|
|
trig.ejected++;
|
|
if ( trig.ejected >= 3 )
|
|
{
|
|
primaries = self getweaponslistprimaries();
|
|
foreach ( weapon in primaries )
|
|
{
|
|
self takeweapon( weapon );
|
|
}
|
|
lethal = self get_player_lethal_grenade();
|
|
if ( isDefined( lethal ) && lethal != "" )
|
|
{
|
|
self takeweapon( lethal );
|
|
maps/mp/zombies/_zm_weapons::unacquire_weapon_toggle( lethal );
|
|
}
|
|
tactical = self get_player_tactical_grenade();
|
|
if ( isDefined( tactical ) && tactical != "" )
|
|
{
|
|
self takeweapon( tactical );
|
|
maps/mp/zombies/_zm_weapons::unacquire_weapon_toggle( tactical );
|
|
}
|
|
mine = self get_player_placeable_mine();
|
|
if ( isDefined( mine ) )
|
|
{
|
|
self takeweapon( mine );
|
|
maps/mp/zombies/_zm_weapons::unacquire_weapon_toggle( mine );
|
|
}
|
|
melee_weapon = self get_player_melee_weapon();
|
|
if ( isDefined( melee_weapon ) )
|
|
{
|
|
self takeweapon( melee_weapon );
|
|
maps/mp/zombies/_zm_weapons::unacquire_weapon_toggle( melee_weapon );
|
|
}
|
|
self giveweapon( "knife_zm" );
|
|
self.current_melee_weapon = "knife_zm";
|
|
self give_start_weapon( 1 );
|
|
self.currentweapon = "m1911_zm";
|
|
}
|
|
}
|
|
}
|
|
|
|
change_bad_spawner() //checked changed to match cerberus output
|
|
{
|
|
flag_wait( "always_on" );
|
|
spawner_array = getstructarray( "zone_blue_level4a_spawners", "targetname" );
|
|
foreach ( struct in spawner_array )
|
|
{
|
|
if ( isDefined( struct.origin ) && struct.origin == ( 2154, 748.5, 1312 ) )
|
|
{
|
|
struct.script_noteworthy = "riser_location";
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|