mirror of
https://github.com/JezuzLizard/Public-BO2-Mods.git
synced 2025-06-07 18:47:59 -05:00
188 lines
7.2 KiB
Plaintext
188 lines
7.2 KiB
Plaintext
#include maps\mp\zombies\_zm_utility;
|
|
#include maps\mp\_utility;
|
|
#include common_scripts\utility;
|
|
|
|
main()
|
|
{
|
|
gametype = getDvar( "g_gametype" );
|
|
location = getDvar( "ui_zm_mapstartlocation" );
|
|
if ( gametype == "zstandard" || gametype == "zgrief" )
|
|
{
|
|
if ( location == "farm" || location == "transit" )
|
|
{
|
|
replaceFunc( common_scripts\utility::struct_class_init, ::struct_class_init_o );
|
|
replaceFunc( maps\mp\zm_transit_utility::solo_tombstone_removal, ::solo_tombstone_removal );
|
|
replaceFunc( maps\mp\zombies\_zm_perks::perk_machine_removal, ::perk_machine_removal );
|
|
level thread turn_perks_on();
|
|
}
|
|
}
|
|
}
|
|
|
|
turn_perks_on()
|
|
{
|
|
flag_wait( "start_zombie_round_logic" );
|
|
wait 1;
|
|
level notify( "revive_on" );
|
|
wait_network_frame();
|
|
level notify( "doubletap_on" );
|
|
wait_network_frame();
|
|
level notify( "marathon_on" );
|
|
wait_network_frame();
|
|
level notify( "juggernog_on" );
|
|
wait_network_frame();
|
|
level notify( "sleight_on" );
|
|
wait_network_frame();
|
|
level notify( "tombstone_on" );
|
|
wait_network_frame();
|
|
level notify( "Pack_A_Punch_on" );
|
|
}
|
|
|
|
struct_class_init_o()
|
|
{
|
|
level.struct_class_names = [];
|
|
level.struct_class_names[ "target" ] = [];
|
|
level.struct_class_names[ "targetname" ] = [];
|
|
level.struct_class_names[ "script_noteworthy" ] = [];
|
|
level.struct_class_names[ "script_linkname" ] = [];
|
|
level.struct_class_names[ "script_unitrigger_type" ] = [];
|
|
foreach ( s_struct in level.struct )
|
|
{
|
|
if ( isDefined( s_struct.targetname ) )
|
|
{
|
|
if ( !isDefined( level.struct_class_names[ "targetname" ][ s_struct.targetname ] ) )
|
|
{
|
|
level.struct_class_names[ "targetname" ][ s_struct.targetname ] = [];
|
|
}
|
|
size = level.struct_class_names[ "targetname" ][ s_struct.targetname ].size;
|
|
level.struct_class_names[ "targetname" ][ s_struct.targetname ][ size ] = s_struct;
|
|
}
|
|
if ( isDefined( s_struct.target ) )
|
|
{
|
|
if ( !isDefined( level.struct_class_names[ "target" ][ s_struct.target ] ) )
|
|
{
|
|
level.struct_class_names[ "target" ][ s_struct.target ] = [];
|
|
}
|
|
size = level.struct_class_names[ "target" ][ s_struct.target ].size;
|
|
level.struct_class_names[ "target" ][ s_struct.target ][ size ] = s_struct;
|
|
}
|
|
if ( isDefined( s_struct.script_noteworthy ) )
|
|
{
|
|
if ( !isDefined( level.struct_class_names[ "script_noteworthy" ][ s_struct.script_noteworthy ] ) )
|
|
{
|
|
level.struct_class_names[ "script_noteworthy" ][ s_struct.script_noteworthy ] = [];
|
|
}
|
|
size = level.struct_class_names[ "script_noteworthy" ][ s_struct.script_noteworthy ].size;
|
|
level.struct_class_names[ "script_noteworthy" ][ s_struct.script_noteworthy ][ size ] = s_struct;
|
|
}
|
|
if ( isDefined( s_struct.script_linkname ) )
|
|
{
|
|
level.struct_class_names[ "script_linkname" ][ s_struct.script_linkname ][ 0 ] = s_struct;
|
|
}
|
|
if ( isDefined( s_struct.script_unitrigger_type ) )
|
|
{
|
|
if ( !isDefined( level.struct_class_names[ "script_unitrigger_type" ][ s_struct.script_unitrigger_type ] ) )
|
|
{
|
|
level.struct_class_names[ "script_unitrigger_type" ][ s_struct.script_unitrigger_type ] = [];
|
|
}
|
|
size = level.struct_class_names[ "script_unitrigger_type" ][ s_struct.script_unitrigger_type ].size;
|
|
level.struct_class_names[ "script_unitrigger_type" ][ s_struct.script_unitrigger_type ][ size ] = s_struct;
|
|
}
|
|
}
|
|
location = getDvar( "ui_zm_mapstartlocation" );
|
|
if ( location == "farm" )
|
|
{
|
|
register_perk_struct( "specialty_weapupgrade", "p6_anim_zm_buildable_pap_on", ( 0, 120, 0 ), ( 7764, -6322, 117 ) );
|
|
register_perk_struct( "specialty_scavenger", "zombie_vending_tombstone", ( 0, 3, 0 ), ( 8517, -5599, 50 ) );
|
|
register_perk_struct( "specialty_longersprint", "zombie_vending_marathon", ( 0, 38, 0 ), ( 7057, -5631, -48 ) );
|
|
}
|
|
else if ( location == "transit" )
|
|
{
|
|
register_perk_struct( "specialty_armorvest", "zombie_vending_jugg", ( 0, 180, 0 ), ( -6663, 4592, -55 ) );
|
|
register_perk_struct( "specialty_rof", "zombie_vending_doubletap2", ( 0, 227, 0 ), ( -6026, 4188, -41 ) );
|
|
register_perk_struct( "specialty_longersprint", "zombie_vending_marathon", ( 0, 175, 0 ), ( -7426, 4147, -63 ) );
|
|
register_perk_struct( "specialty_scavenger", "zombie_vending_tombstone", ( 0, 136, 0 ), ( -8098, 4467, -48 ) );
|
|
register_perk_struct( "specialty_weapupgrade", "p6_anim_zm_buildable_pap_on", ( 0, 102, 0), ( -7631, 4347, -52 ) );
|
|
register_perk_struct( "specialty_quickrevive", "zombie_vending_quickrevive", ( 0, 175, 0 ), ( -6719, 4996, -55 ) );
|
|
register_perk_struct( "specialty_fastreload", "zombie_vending_sleight", ( 0, 85, 0 ), ( -6304, 5470, -55 ) );
|
|
}
|
|
}
|
|
|
|
register_perk_struct( perk_name, perk_model, perk_angles, perk_coordinates )
|
|
{
|
|
if ( getDvar( "g_gametype" ) == "zgrief" && perk_name == "specialty_scavenger" )
|
|
{
|
|
return;
|
|
}
|
|
perk_struct = spawnStruct();
|
|
perk_struct.script_noteworthy = perk_name;
|
|
perk_struct.model = perk_model;
|
|
perk_struct.angles = perk_angles;
|
|
perk_struct.origin = perk_coordinates;
|
|
perk_struct.targetname = "zm_perk_machine";
|
|
if ( perk_name == "specialty_weapupgrade" )
|
|
{
|
|
flag_struct = spawnStruct();
|
|
flag_struct.targetname = "weapupgrade_flag_targ";
|
|
flag_struct.model = "zombie_sign_please_wait";
|
|
flag_struct.angles = perk_angles + ( 0, 180, 180 );
|
|
flag_struct.origin = perk_coordinates + ( anglesToForward( perk_angles ) * 29 ) + ( anglesToRight( perk_angles ) * -13.5 ) + ( anglesToUp( perk_angles ) * 49.5 );
|
|
perk_struct.target = flag_struct.targetname;
|
|
add_struct( flag_struct );
|
|
}
|
|
add_struct( perk_struct );
|
|
}
|
|
|
|
add_struct( s_struct )
|
|
{
|
|
if ( isDefined( s_struct.targetname ) )
|
|
{
|
|
if ( !isDefined( level.struct_class_names[ "targetname" ][ s_struct.targetname ] ) )
|
|
{
|
|
level.struct_class_names[ "targetname" ][ s_struct.targetname ] = [];
|
|
}
|
|
size = level.struct_class_names[ "targetname" ][ s_struct.targetname ].size;
|
|
level.struct_class_names[ "targetname" ][ s_struct.targetname ][ size ] = s_struct;
|
|
}
|
|
if ( isDefined( s_struct.script_noteworthy ) )
|
|
{
|
|
if ( !isDefined( level.struct_class_names[ "script_noteworthy" ][ s_struct.script_noteworthy ] ) )
|
|
{
|
|
level.struct_class_names[ "script_noteworthy" ][ s_struct.script_noteworthy ] = [];
|
|
}
|
|
size = level.struct_class_names[ "script_noteworthy" ][ s_struct.script_noteworthy ].size;
|
|
level.struct_class_names[ "script_noteworthy" ][ s_struct.script_noteworthy ][ size ] = s_struct;
|
|
}
|
|
if ( isDefined( s_struct.target ) )
|
|
{
|
|
if ( !isDefined( level.struct_class_names[ "target" ][ s_struct.target ] ) )
|
|
{
|
|
level.struct_class_names[ "target" ][ s_struct.target ] = [];
|
|
}
|
|
size = level.struct_class_names[ "target" ][ s_struct.target ].size;
|
|
level.struct_class_names[ "target" ][ s_struct.target ][ size ] = s_struct;
|
|
}
|
|
if ( isDefined( s_struct.script_linkname ) )
|
|
{
|
|
level.struct_class_names[ "script_linkname" ][ s_struct.script_linkname ][ 0 ] = s_struct;
|
|
}
|
|
if ( isDefined( s_struct.script_unitrigger_type ) )
|
|
{
|
|
if ( !isDefined( level.struct_class_names[ "script_unitrigger_type" ][ s_struct.script_unitrigger_type ] ) )
|
|
{
|
|
level.struct_class_names[ "script_unitrigger_type" ][ s_struct.script_unitrigger_type ] = [];
|
|
}
|
|
size = level.struct_class_names[ "script_unitrigger_type" ][ s_struct.script_unitrigger_type ].size;
|
|
level.struct_class_names[ "script_unitrigger_type" ][ s_struct.script_unitrigger_type ][ size ] = s_struct;
|
|
}
|
|
}
|
|
|
|
solo_tombstone_removal()
|
|
{
|
|
return;
|
|
}
|
|
|
|
perk_machine_removal( perk )
|
|
{
|
|
return;
|
|
}
|