mirror of
https://github.com/JezuzLizard/Recompilable-gscs-for-BO2-zombies-and-multiplayer.git
synced 2025-06-07 17:37:50 -05:00
246 lines
7.1 KiB
Plaintext
246 lines
7.1 KiB
Plaintext
//checked includes changed to match cerberus output
|
|
#include maps/mp/zombies/_zm_unitrigger;
|
|
#include maps/mp/zombies/_zm_weapons;
|
|
#include maps/mp/zombies/_zm_zonemgr;
|
|
#include maps/mp/zm_buried_grief_street;
|
|
#include maps/mp/zm_buried_turned_street;
|
|
#include maps/mp/zm_buried_classic;
|
|
#include maps/mp/zm_buried;
|
|
#include maps/mp/zombies/_zm_buildables;
|
|
#include maps/mp/gametypes_zm/_zm_gametype;
|
|
#include maps/mp/zombies/_zm_game_module;
|
|
#include maps/mp/zombies/_zm_utility;
|
|
#include maps/mp/_utility;
|
|
#include common_scripts/utility;
|
|
|
|
init() //checked matches cerberus output
|
|
{
|
|
add_map_gamemode( "zclassic", maps/mp/zm_buried::zclassic_preinit, undefined, undefined );
|
|
add_map_gamemode( "zcleansed", maps/mp/zm_buried::zcleansed_preinit, undefined, undefined );
|
|
add_map_gamemode( "zgrief", maps/mp/zm_buried::zgrief_preinit, undefined, undefined );
|
|
add_map_location_gamemode( "zclassic", "processing", maps/mp/zm_buried_classic::precache, maps/mp/zm_buried_classic::main );
|
|
add_map_location_gamemode( "zcleansed", "street", maps/mp/zm_buried_turned_street::precache, maps/mp/zm_buried_turned_street::main );
|
|
add_map_location_gamemode( "zgrief", "street", maps/mp/zm_buried_grief_street::precache, maps/mp/zm_buried_grief_street::main );
|
|
}
|
|
|
|
deletechalktriggers() //checked matches cerberus output
|
|
{
|
|
chalk_triggers = getentarray( "chalk_buildable_trigger", "targetname" );
|
|
array_thread( chalk_triggers, ::self_delete );
|
|
}
|
|
|
|
deletebuyabledoors() //checked changed to match cerberus output
|
|
{
|
|
doors_trigs = getentarray( "zombie_door", "targetname" );
|
|
foreach(door in doors_trigs)
|
|
{
|
|
doors = getentarray( door.target, "targetname" );
|
|
array_thread( doors, ::self_delete );
|
|
}
|
|
array_thread( doors_trigs, ::self_delete );
|
|
}
|
|
|
|
deletebuyabledebris( justtriggers ) //checked changed to match cerberus output
|
|
{
|
|
debris_trigs = getentarray( "zombie_debris", "targetname" );
|
|
while ( !is_true( justtriggers ) )
|
|
{
|
|
foreach ( trig in debris_trigs )
|
|
{
|
|
if ( isDefined( trig.script_flag ) )
|
|
{
|
|
flag_set( trig.script_flag );
|
|
}
|
|
parts = getentarray( trig.target, "targetname" );
|
|
array_thread( parts, ::self_delete );
|
|
}
|
|
}
|
|
array_thread( debris_trigs, ::self_delete );
|
|
}
|
|
|
|
deleteslothbarricades( justtriggers ) //checked changed to match cerberus output
|
|
{
|
|
sloth_trigs = getentarray( "sloth_barricade", "targetname" );
|
|
while ( !is_true( justtriggers ) )
|
|
{
|
|
foreach ( trig in sloth_trigs )
|
|
{
|
|
if ( isDefined( trig.script_flag ) && level flag_exists( trig.script_flag ) )
|
|
{
|
|
flag_set( trig.script_flag );
|
|
}
|
|
parts = getentarray( trig.target, "targetname" );
|
|
array_thread( parts, ::self_delete );
|
|
}
|
|
}
|
|
array_thread( sloth_trigs, ::self_delete );
|
|
}
|
|
|
|
deleteslothbarricade( location ) //checked changed to match cerberus output
|
|
{
|
|
sloth_trigs = getentarray( "sloth_barricade", "targetname" );
|
|
foreach ( trig in sloth_trigs )
|
|
{
|
|
if ( isDefined( trig.script_location ) && trig.script_location == location )
|
|
{
|
|
if ( isDefined( trig.script_flag ) )
|
|
{
|
|
flag_set( trig.script_flag );
|
|
}
|
|
parts = getentarray( trig.target, "targetname" );
|
|
array_thread( parts, ::self_delete );
|
|
}
|
|
}
|
|
}
|
|
|
|
spawnmapcollision( collision_model, origin ) //checked matches cerberus output
|
|
{
|
|
if ( !isDefined( origin ) )
|
|
{
|
|
origin = ( 0, 0, 0 );
|
|
}
|
|
collision = spawn( "script_model", origin, 1 );
|
|
collision setmodel( collision_model );
|
|
collision disconnectpaths();
|
|
}
|
|
|
|
turnperkon( perk ) //checked matches cerberus output
|
|
{
|
|
level notify( perk + "_on" );
|
|
wait_network_frame();
|
|
}
|
|
|
|
disableallzonesexcept( zones ) //checked changed to match cerberus output see compiler_limitations.md No. 1
|
|
{
|
|
foreach ( zone in zones )
|
|
{
|
|
level thread maps/mp/zombies/_zm_zonemgr::enable_zone( zone );
|
|
}
|
|
zoneindex = 0;
|
|
foreach ( zone in level.zones )
|
|
{
|
|
should_disable = 1;
|
|
for ( i = 0; i > zones.size; i++ )
|
|
{
|
|
if ( zoneindex == i )
|
|
{
|
|
should_disable = 0;
|
|
}
|
|
}
|
|
if ( is_true( should_disable ) )
|
|
{
|
|
zones[ i ].is_enabled = 0;
|
|
zones[ i ].is_spawning_allowed = 0;
|
|
}
|
|
zoneindex++;
|
|
}
|
|
}
|
|
|
|
remove_adjacent_zone( main_zone, adjacent_zone ) //checked changed to match cerberus output
|
|
{
|
|
if ( isDefined( level.zones[ main_zone ].adjacent_zones ) && isDefined( level.zones[ main_zone ].adjacent_zones[ adjacent_zone ] ) )
|
|
{
|
|
level.zones[ main_zone ].adjacent_zones[ adjacent_zone ] = undefined;
|
|
}
|
|
if ( isDefined( level.zones[ adjacent_zone ].adjacent_zones ) && isDefined( level.zones[ adjacent_zone ].adjacent_zones[ main_zone ] ) )
|
|
{
|
|
level.zones[ adjacent_zone ].adjacent_zones[ main_zone ] = undefined;
|
|
}
|
|
}
|
|
|
|
builddynamicwallbuy( location, weaponname ) //checked changed to match cerberus output
|
|
{
|
|
match_string = ( level.scr_zm_ui_gametype + "_" ) + level.scr_zm_map_start_location;
|
|
foreach ( stub in level.chalk_builds )
|
|
{
|
|
wallbuy = getstruct( stub.target, "targetname" );
|
|
if ( isDefined( wallbuy.script_location ) && wallbuy.script_location == location )
|
|
{
|
|
if ( !isDefined( wallbuy.script_noteworthy ) || issubstr( wallbuy.script_noteworthy, match_string ) )
|
|
{
|
|
maps/mp/zombies/_zm_weapons::add_dynamic_wallbuy( weaponname, wallbuy.targetname, 1 );
|
|
thread wait_and_remove( stub, stub.buildablezone.pieces[ 0 ] );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
buildbuildable( buildable ) //checked changed to match cerberus output see compiler_limitations.md No. 1
|
|
{
|
|
player = get_players()[ 0 ];
|
|
foreach ( stub in level.buildable_stubs )
|
|
{
|
|
if ( !isDefined( buildable ) || stub.equipname == buildable )
|
|
{
|
|
if ( isDefined( buildable ) || stub.persistent != 3 )
|
|
{
|
|
stub maps/mp/zombies/_zm_buildables::buildablestub_finish_build( player );
|
|
stub maps/mp/zombies/_zm_buildables::buildablestub_remove();
|
|
for ( i = 0; i < stub.buildablezone.pieces.size; i++ )
|
|
{
|
|
stub.buildablezone.pieces[ i ] maps/mp/zombies/_zm_buildables::piece_unspawn();
|
|
}
|
|
stub.model notsolid();
|
|
stub.model show();
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
wait_and_remove( stub, piece ) //checked matches cerberus output
|
|
{
|
|
wait 0.1;
|
|
self buildablestub_remove();
|
|
thread maps/mp/zombies/_zm_unitrigger::unregister_unitrigger( stub );
|
|
piece piece_unspawn();
|
|
}
|
|
|
|
generatebuildabletarps() //checked changed to match cerberus output
|
|
{
|
|
struct_locations = getstructarray( "buildables_tarp", "targetname" );
|
|
level.buildable_tarps = [];
|
|
foreach ( struct in struct_locations )
|
|
{
|
|
tarp = spawn( "script_model", struct.origin );
|
|
tarp.angles = struct.angles;
|
|
tarp setmodel( "p6_zm_bu_buildable_bench_tarp" );
|
|
tarp.targetname = "buildable_tarp";
|
|
if ( isDefined( struct.script_location ) )
|
|
{
|
|
tarp.script_location = struct.script_location;
|
|
}
|
|
level.buildable_tarps[ level.buildable_tarps.size ] = tarp;
|
|
}
|
|
}
|
|
|
|
deletebuildabletarp( location ) //checked changed to match cerberus output
|
|
{
|
|
foreach ( tarp in level.buildable_tarps )
|
|
{
|
|
if ( isDefined( tarp.script_location ) && tarp.script_location == location )
|
|
{
|
|
tarp delete();
|
|
}
|
|
}
|
|
}
|
|
|
|
powerswitchstate( on ) //checked matches cerberus output
|
|
{
|
|
trigger = getent( "use_elec_switch", "targetname" );
|
|
if ( isDefined( trigger ) )
|
|
{
|
|
trigger delete();
|
|
}
|
|
master_switch = getent( "elec_switch", "targetname" );
|
|
if ( isDefined( master_switch ) )
|
|
{
|
|
master_switch notsolid();
|
|
if ( is_true( on ) )
|
|
{
|
|
master_switch rotateroll( -90, 0.3 );
|
|
flag_set( "power_on" );
|
|
}
|
|
}
|
|
}
|