mirror of
https://github.com/JezuzLizard/Recompilable-gscs-for-BO2-zombies-and-multiplayer.git
synced 2025-06-10 18:57:58 -05:00
241 lines
8.6 KiB
Plaintext
241 lines
8.6 KiB
Plaintext
#include codescripts/struct;
|
|
#include maps/mp/zombies/_zm_zonemgr;
|
|
#include maps/mp/zombies/_zm_utility;
|
|
#include common_scripts/utility;
|
|
#include maps/mp/_utility;
|
|
|
|
main_start()
|
|
{
|
|
level thread spawned_collision_ffotd();
|
|
level thread spawn_kill_brushes();
|
|
level thread respawn_struct_fix();
|
|
onplayerconnect_callback( ::one_inch_punch_take_think );
|
|
}
|
|
|
|
main_end()
|
|
{
|
|
level thread player_spawn_fix();
|
|
level thread update_charger_position();
|
|
level thread traversal_blocker_disabler();
|
|
}
|
|
|
|
update_charger_position()
|
|
{
|
|
_a26 = level.a_elemental_staffs;
|
|
_k26 = getFirstArrayKey( _a26 );
|
|
while ( isDefined( _k26 ) )
|
|
{
|
|
e_staff = _a26[ _k26 ];
|
|
e_staff moveto( e_staff.charger.origin, 0,05 );
|
|
_k26 = getNextArrayKey( _a26, _k26 );
|
|
}
|
|
_a31 = level.a_elemental_staffs_upgraded;
|
|
_k31 = getFirstArrayKey( _a31 );
|
|
while ( isDefined( _k31 ) )
|
|
{
|
|
e_staff = _a31[ _k31 ];
|
|
e_staff moveto( e_staff.charger.origin, 0,05 );
|
|
_k31 = getNextArrayKey( _a31, _k31 );
|
|
}
|
|
}
|
|
|
|
spawned_collision_ffotd()
|
|
{
|
|
precachemodel( "collision_ai_64x64x10" );
|
|
precachemodel( "collision_wall_256x256x10_standard" );
|
|
precachemodel( "collision_wall_512x512x10_standard" );
|
|
precachemodel( "collision_geo_256x256x10_standard" );
|
|
precachemodel( "collision_geo_512x512x10_standard" );
|
|
precachemodel( "collision_geo_ramp_standard" );
|
|
precachemodel( "collision_player_512x512x512" );
|
|
precachemodel( "collision_geo_32x32x128_standard" );
|
|
precachemodel( "collision_geo_64x64x128_standard" );
|
|
precachemodel( "collision_geo_64x64x256_standard" );
|
|
precachemodel( "collision_player_wall_256x256x10" );
|
|
precachemodel( "collision_player_wall_512x512x10" );
|
|
precachemodel( "collision_player_wall_32x32x10" );
|
|
precachemodel( "collision_geo_64x64x10_standard" );
|
|
precachemodel( "p6_zm_tm_barbedwire_tube" );
|
|
precachemodel( "p6_zm_tm_rubble_rebar_group" );
|
|
flag_wait( "start_zombie_round_logic" );
|
|
m_disconnector = spawn( "script_model", ( -568, -956, 160 ), 1 );
|
|
m_disconnector setmodel( "collision_ai_64x64x10" );
|
|
m_disconnector.angles = vectorScale( ( 0, 0, -1 ), 35 );
|
|
m_disconnector disconnectpaths();
|
|
m_disconnector ghost();
|
|
if ( isDefined( level.optimise_for_splitscreen ) && !level.optimise_for_splitscreen )
|
|
{
|
|
collision1a = spawn( "script_model", ( 1128, -2664,25, 122 ) );
|
|
collision1a setmodel( "collision_player_wall_256x256x10" );
|
|
collision1a.angles = vectorScale( ( 0, 0, -1 ), 285 );
|
|
collision1a ghost();
|
|
collision1b = spawn( "script_model", ( 909,5, -2856,5, -6 ) );
|
|
collision1b setmodel( "collision_player_wall_512x512x10" );
|
|
collision1b.angles = vectorScale( ( 0, 0, -1 ), 195 );
|
|
collision1b ghost();
|
|
collision1c = spawn( "script_model", ( 415, -2989, -6 ) );
|
|
collision1c setmodel( "collision_player_wall_512x512x10" );
|
|
collision1c.angles = vectorScale( ( 0, 0, -1 ), 195 );
|
|
collision1c ghost();
|
|
collision2a = spawn( "script_model", ( -6760, -6536, 280 ) );
|
|
collision2a setmodel( "collision_geo_512x512x10_standard" );
|
|
collision2a.angles = ( 0, 0, -1 );
|
|
collision2a ghost();
|
|
collision2b = spawn( "script_model", ( -6224, -6536, 280 ) );
|
|
collision2b setmodel( "collision_geo_512x512x10_standard" );
|
|
collision2b.angles = ( 0, 0, -1 );
|
|
collision2b ghost();
|
|
collision2c = spawn( "script_model", ( -5704, -6536, 280 ) );
|
|
collision2c setmodel( "collision_geo_512x512x10_standard" );
|
|
collision2c.angles = ( 0, 0, -1 );
|
|
collision2c ghost();
|
|
collision3a = spawn( "script_model", ( 1088, 4216, -192 ) );
|
|
collision3a setmodel( "collision_geo_256x256x10_standard" );
|
|
collision3a.angles = ( 0, 0, -1 );
|
|
collision3a ghost();
|
|
collision4a = spawn( "script_model", ( 545,36, -2382,3, 404 ) );
|
|
collision4a setmodel( "collision_wall_256x256x10_standard" );
|
|
collision4a.angles = ( 0, 293,8, 180 );
|
|
collision4a ghost();
|
|
collision4b = spawn( "script_model", ( 579,36, -2367,3, 264 ) );
|
|
collision4b setmodel( "collision_geo_ramp_standard" );
|
|
collision4b.angles = ( 0, 293,8, 180 );
|
|
collision4b ghost();
|
|
collision5a = spawn( "script_model", ( 67,87, -3193,25, 504 ) );
|
|
collision5a setmodel( "collision_player_512x512x512" );
|
|
collision5a.angles = vectorScale( ( 0, 0, -1 ), 14,1 );
|
|
collision5a ghost();
|
|
collision5b = spawn( "script_model", ( 292,5, -2865,5, 286 ) );
|
|
collision5b setmodel( "collision_geo_32x32x128_standard" );
|
|
collision5b.angles = ( 270, 22,4, 0 );
|
|
collision5b ghost();
|
|
collision5c = spawn( "script_model", ( 292,5, -2865,5, 266 ) );
|
|
collision5c setmodel( "collision_geo_32x32x128_standard" );
|
|
collision5c.angles = ( 270, 22,4, 0 );
|
|
collision5c ghost();
|
|
collision5d = spawn( "script_model", ( 339, -3024,5, 280 ) );
|
|
collision5d setmodel( "collision_geo_64x64x128_standard" );
|
|
collision5d.angles = ( 270, 18,2, 0 );
|
|
collision5d ghost();
|
|
model5a = spawn( "script_model", ( 248,15, -2917,26, 351,01 ) );
|
|
model5a setmodel( "p6_zm_tm_barbedwire_tube" );
|
|
model5a.angles = ( 6,00001, 188, 90 );
|
|
collision6a = spawn( "script_model", ( -227,25, 4010,25, -96 ) );
|
|
collision6a setmodel( "collision_player_wall_256x256x10" );
|
|
collision6a.angles = vectorScale( ( 0, 0, -1 ), 265,299 );
|
|
collision6a ghost();
|
|
model6a = spawn( "script_model", ( -231,124, 4093,08, -230,685 ) );
|
|
model6a setmodel( "p6_zm_tm_rubble_rebar_group" );
|
|
model6a.angles = ( 25,883, 2,13901, 0,55601 );
|
|
collision7a = spawn( "script_model", ( 599, -2478, 184 ) );
|
|
collision7a setmodel( "collision_geo_64x64x128_standard" );
|
|
collision7a.angles = ( 270, 14,7, 0 );
|
|
collision7a ghost();
|
|
collision8a = spawn( "script_model", ( -3190, -555, -111 ) );
|
|
collision8a setmodel( "collision_player_wall_512x512x10" );
|
|
collision8a.angles = vectorScale( ( 0, 0, -1 ), 1,8 );
|
|
collision8a ghost();
|
|
collision11a = spawn( "script_model", ( 812,812, -64,1434, 384 ) );
|
|
collision11a setmodel( "collision_player_wall_256x256x10" );
|
|
collision11a.angles = vectorScale( ( 0, 0, -1 ), 9,99998 );
|
|
collision11a ghost();
|
|
collision12a = spawn( "script_model", ( 180, 4128, 40 ) );
|
|
collision12a setmodel( "collision_player_wall_512x512x10" );
|
|
collision12a.angles = vectorScale( ( 0, 0, -1 ), 270 );
|
|
collision12a ghost();
|
|
collision13a = spawn( "script_model", ( 2088, 588, 240 ) );
|
|
collision13a setmodel( "collision_player_wall_512x512x10" );
|
|
collision13a.angles = ( 0, 0, -1 );
|
|
collision13a ghost();
|
|
collision14a = spawn( "script_model", ( -787, 375, 380 ) );
|
|
collision14a setmodel( "collision_player_wall_256x256x10" );
|
|
collision14a.angles = ( 0, 0, -1 );
|
|
collision14a ghost();
|
|
collision14b = spawn( "script_model", ( -899, 375, 236 ) );
|
|
collision14b setmodel( "collision_player_wall_32x32x10" );
|
|
collision14b.angles = ( 0, 0, -1 );
|
|
collision14b ghost();
|
|
collision15a = spawn( "script_model", ( 1704, 2969,34, -187,83 ) );
|
|
collision15a setmodel( "collision_geo_64x64x10_standard" );
|
|
collision15a.angles = vectorScale( ( 0, 0, -1 ), 47,4 );
|
|
collision15a ghost();
|
|
}
|
|
}
|
|
|
|
spawn_kill_brushes()
|
|
{
|
|
t_killbrush_1 = spawn( "trigger_box", ( 1643, 2168, 96 ), 0, 256, 1200, 512 );
|
|
t_killbrush_1.script_noteworthy = "kill_brush";
|
|
t_killbrush_2 = spawn( "trigger_box", ( -1277, 892, 184 ), 0, 148, 88, 128 );
|
|
t_killbrush_2.script_noteworthy = "kill_brush";
|
|
}
|
|
|
|
one_inch_punch_take_think()
|
|
{
|
|
self endon( "disconnect" );
|
|
while ( 1 )
|
|
{
|
|
self waittill( "bled_out" );
|
|
self.one_inch_punch_flag_has_been_init = 0;
|
|
if ( self ent_flag_exist( "melee_punch_cooldown" ) )
|
|
{
|
|
}
|
|
}
|
|
}
|
|
|
|
player_spawn_fix()
|
|
{
|
|
s_zone_nml_18 = level.zones[ "zone_nml_18" ];
|
|
s_zone_nml_19 = level.zones[ "zone_nml_19" ];
|
|
add_adjacent_zone( "zone_nml_18", "zone_nml_19", "activate_zone_ruins" );
|
|
}
|
|
|
|
respawn_struct_fix()
|
|
{
|
|
spawn1 = createstruct();
|
|
spawn1.model = undefined;
|
|
spawn1.origin = ( 2400, 120, 160 );
|
|
spawn1.targetname = "nml_11_spawn_points";
|
|
spawn1.radius = 32;
|
|
spawn1.script_int = 1;
|
|
spawn2 = createstruct();
|
|
spawn2.model = undefined;
|
|
spawn2.origin = ( 2392, 360, 160 );
|
|
spawn2.targetname = "nml_11_spawn_points";
|
|
spawn2.radius = 32;
|
|
spawn2.script_int = 1;
|
|
spawn3 = createstruct();
|
|
spawn3.model = undefined;
|
|
spawn3.origin = ( 2616, 152, 160 );
|
|
spawn3.targetname = "nml_11_spawn_points";
|
|
spawn3.radius = 32;
|
|
spawn3.script_int = 1;
|
|
}
|
|
|
|
traversal_blocker_disabler()
|
|
{
|
|
level endon( "activate_zone_nml" );
|
|
pos1 = ( -1509, 3912, -168 );
|
|
pos2 = ( 672, 3720, -179 );
|
|
b_too_close = 0;
|
|
while ( level.round_number < 10 && !b_too_close )
|
|
{
|
|
a_players = getplayers();
|
|
_a310 = a_players;
|
|
_k310 = getFirstArrayKey( _a310 );
|
|
while ( isDefined( _k310 ) )
|
|
{
|
|
player = _a310[ _k310 ];
|
|
if ( distancesquared( player.origin, pos1 ) < 4096 || distancesquared( player.origin, pos2 ) < 4096 )
|
|
{
|
|
b_too_close = 1;
|
|
}
|
|
_k310 = getNextArrayKey( _a310, _k310 );
|
|
}
|
|
wait 1;
|
|
}
|
|
m_traversal_blocker = getent( "traversal_blocker", "targetname" );
|
|
m_traversal_blocker.origin += vectorScale( ( 0, 0, -1 ), 10000 );
|
|
m_traversal_blocker connectpaths();
|
|
}
|