mirror of
https://github.com/JezuzLizard/Recompilable-gscs-for-BO2-zombies-and-multiplayer.git
synced 2025-06-08 01:47:50 -05:00
uploading zm_transit_classic as a baseline
This commit is contained in:
parent
a2b6fb9683
commit
1d6c27d33e
546
zm_transit_patch/maps/mp/zm_transit_classic.gsc
Normal file
546
zm_transit_patch/maps/mp/zm_transit_classic.gsc
Normal file
@ -0,0 +1,546 @@
|
|||||||
|
#include maps/mp/zombies/_zm_audio;
|
||||||
|
#include maps/mp/zombies/_zm_stats;
|
||||||
|
#include maps/mp/zombies/_zm_blockers;
|
||||||
|
#include maps/mp/zombies/_zm;
|
||||||
|
#include maps/mp/zm_transit_distance_tracking;
|
||||||
|
#include maps/mp/zm_transit;
|
||||||
|
#include maps/mp/zm_transit_power;
|
||||||
|
#include maps/mp/zm_transit_ai_screecher;
|
||||||
|
#include maps/mp/zm_transit_bus;
|
||||||
|
#include maps/mp/zm_transit_buildables;
|
||||||
|
#include maps/mp/zm_transit_utility;
|
||||||
|
#include maps/mp/zombies/_zm_buildables;
|
||||||
|
#include maps/mp/zombies/_zm_weapons;
|
||||||
|
#include maps/mp/zombies/_zm_utility;
|
||||||
|
#include maps/mp/_utility;
|
||||||
|
#include common_scripts/utility;
|
||||||
|
|
||||||
|
precache()
|
||||||
|
{
|
||||||
|
maps/mp/zombies/_zm_ai_screecher::precache();
|
||||||
|
maps/mp/zombies/_zm_ai_avogadro::precache();
|
||||||
|
maps/mp/zm_transit_buildables::include_buildables();
|
||||||
|
maps/mp/zm_transit_buildables::init_buildables();
|
||||||
|
maps/mp/zm_transit_sq::init();
|
||||||
|
maps/mp/zombies/_zm_equip_turbine::init();
|
||||||
|
maps/mp/zombies/_zm_equip_turret::init();
|
||||||
|
maps/mp/zombies/_zm_equip_electrictrap::init();
|
||||||
|
precachemodel( "zm_collision_transit_town_classic" );
|
||||||
|
precachemodel( "p_glo_tools_chest_tall" );
|
||||||
|
precachemodel( "fxanim_zom_bus_interior_mod" );
|
||||||
|
precachemodel( "p6_anim_zm_barricade_board_collision" );
|
||||||
|
precachemodel( "p6_anim_zm_barricade_board_bus_collision" );
|
||||||
|
registerclientfield( "vehicle", "the_bus_spawned", 1, 1, "int" );
|
||||||
|
registerclientfield( "vehicle", "bus_flashing_lights", 1, 1, "int" );
|
||||||
|
registerclientfield( "vehicle", "bus_head_lights", 1, 1, "int" );
|
||||||
|
registerclientfield( "vehicle", "bus_brake_lights", 1, 1, "int" );
|
||||||
|
registerclientfield( "vehicle", "bus_turn_signal_left", 1, 1, "int" );
|
||||||
|
registerclientfield( "vehicle", "bus_turn_signal_right", 1, 1, "int" );
|
||||||
|
registerclientfield( "allplayers", "screecher_sq_lights", 1, 1, "int" );
|
||||||
|
registerclientfield( "allplayers", "screecher_maxis_lights", 1, 1, "int" );
|
||||||
|
registerclientfield( "allplayers", "sq_tower_sparks", 1, 1, "int" );
|
||||||
|
onplayerconnect_callback( ::maps/mp/zm_transit_bus::onplayerconnect );
|
||||||
|
onplayerconnect_callback( ::maps/mp/zm_transit_ai_screecher::portal_player_watcher );
|
||||||
|
level thread maps/mp/zombies/_zm_banking::init();
|
||||||
|
}
|
||||||
|
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
level.ta_vaultfee = 100;
|
||||||
|
level.ta_tellerfee = 100;
|
||||||
|
if ( !isDefined( level.custom_ai_type ) )
|
||||||
|
{
|
||||||
|
level.custom_ai_type = [];
|
||||||
|
}
|
||||||
|
level.custom_ai_type[ level.custom_ai_type.size ] = ::maps/mp/zombies/_zm_ai_screecher::init;
|
||||||
|
level.custom_ai_type[ level.custom_ai_type.size ] = ::maps/mp/zombies/_zm_ai_avogadro::init;
|
||||||
|
level.enemy_location_override_func = ::maps/mp/zm_transit_bus::enemy_location_override;
|
||||||
|
level.adjust_enemyoverride_func = ::maps/mp/zm_transit_bus::adjust_enemyoverride;
|
||||||
|
level.closest_player_override = ::closest_player_transit;
|
||||||
|
door_triggers = getentarray( "electric_door", "script_noteworthy" );
|
||||||
|
_a80 = door_triggers;
|
||||||
|
_k80 = getFirstArrayKey( _a80 );
|
||||||
|
while ( isDefined( _k80 ) )
|
||||||
|
{
|
||||||
|
trigger = _a80[ _k80 ];
|
||||||
|
if ( isDefined( trigger.script_flag ) && trigger.script_flag == "OnPowDoorWH" )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
trigger.power_door_ignore_flag_wait = 1;
|
||||||
|
}
|
||||||
|
_k80 = getNextArrayKey( _a80, _k80 );
|
||||||
|
}
|
||||||
|
door_triggers = getentarray( "local_electric_door", "script_noteworthy" );
|
||||||
|
_a91 = door_triggers;
|
||||||
|
_k91 = getFirstArrayKey( _a91 );
|
||||||
|
while ( isDefined( _k91 ) )
|
||||||
|
{
|
||||||
|
trigger = _a91[ _k91 ];
|
||||||
|
if ( isDefined( trigger.script_flag ) && trigger.script_flag == "OnPowDoorWH" )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
trigger.power_door_ignore_flag_wait = 1;
|
||||||
|
}
|
||||||
|
_k91 = getNextArrayKey( _a91, _k91 );
|
||||||
|
}
|
||||||
|
level.zm_traversal_override = ::zm_traversal_override;
|
||||||
|
level.the_bus = getent( "the_bus", "targetname" );
|
||||||
|
level thread init_bus();
|
||||||
|
level thread maps/mp/zm_transit_sq::start_transit_sidequest();
|
||||||
|
level thread inert_zombies_init();
|
||||||
|
level thread maps/mp/zm_transit_power::initializepower();
|
||||||
|
level thread maps/mp/zm_transit_ambush::main();
|
||||||
|
level thread maps/mp/zm_transit::falling_death_init();
|
||||||
|
level.check_valid_spawn_override = ::maps/mp/zm_transit::transit_respawn_override;
|
||||||
|
level.zombie_check_suppress_gibs = ::maps/mp/zm_transit_bus::shouldsuppressgibs;
|
||||||
|
level thread transit_vault_breach_init();
|
||||||
|
level thread maps/mp/zm_transit_distance_tracking::zombie_tracking_init();
|
||||||
|
level thread solo_tombstone_removal();
|
||||||
|
level thread collapsing_bridge_init();
|
||||||
|
level thread banking_and_weapon_locker_main();
|
||||||
|
level thread bus_roof_damage_init();
|
||||||
|
level thread diner_hatch_access();
|
||||||
|
level thread maps/mp/zombies/_zm_buildables::think_buildables();
|
||||||
|
setdvar( "r_rimIntensity_debug", 1 );
|
||||||
|
setdvar( "r_rimIntensity", 3,5 );
|
||||||
|
level thread zm_traversal_override_ignores();
|
||||||
|
level thread maps/mp/zombies/_zm::post_main();
|
||||||
|
level.spectator_respawn_custom_score = ::callback_spectator_respawn_custom_score;
|
||||||
|
level.custom_pap_deny_vo_func = ::transit_custom_deny_vox;
|
||||||
|
level.custom_generic_deny_vo_func = ::transit_custom_deny_vox;
|
||||||
|
level.custom_player_death_vo_func = ::transit_custom_death_vox;
|
||||||
|
level.custom_powerup_vo_response = ::transit_custom_powerup_vo_response;
|
||||||
|
level.zombie_vars[ "zombie_intermission_time" ] = 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
zm_traversal_override_ignores()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
zm_traversal_override( traversealias )
|
||||||
|
{
|
||||||
|
suffix = "";
|
||||||
|
sndalias = undefined;
|
||||||
|
chance = 0;
|
||||||
|
sndchance = 0;
|
||||||
|
if ( isDefined( self.isscreecher ) && !self.isscreecher && isDefined( self.is_avogadro ) && !self.is_avogadro )
|
||||||
|
{
|
||||||
|
if ( isDefined( self.traversestartnode ) && isDefined( self.traversestartnode.script_string ) && self.traversestartnode.script_string == "ignore_traverse_override" )
|
||||||
|
{
|
||||||
|
return traversealias;
|
||||||
|
}
|
||||||
|
switch( traversealias )
|
||||||
|
{
|
||||||
|
case "jump_down_48":
|
||||||
|
if ( isDefined( self.has_legs ) && self.has_legs )
|
||||||
|
{
|
||||||
|
suffix = "_stumble";
|
||||||
|
chance = 0;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "jump_down_127":
|
||||||
|
case "jump_down_190":
|
||||||
|
case "jump_down_222":
|
||||||
|
case "jump_down_90":
|
||||||
|
if ( isDefined( self.has_legs ) && self.has_legs )
|
||||||
|
{
|
||||||
|
suffix = "_stumble";
|
||||||
|
chance = 30;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "jump_up_127":
|
||||||
|
case "jump_up_190":
|
||||||
|
case "jump_up_222":
|
||||||
|
case "jump_up_48":
|
||||||
|
sndalias = "vox_zmba_zombie_pickup_" + randomint( 2 );
|
||||||
|
suffix = "_grabbed";
|
||||||
|
chance = 6;
|
||||||
|
sndchance = 3;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if ( chance != 0 && randomint( 100 ) <= chance )
|
||||||
|
{
|
||||||
|
if ( isDefined( sndalias ) && randomint( 100 ) <= sndchance )
|
||||||
|
{
|
||||||
|
playsoundatposition( sndalias, self.origin );
|
||||||
|
}
|
||||||
|
traversealias += suffix;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return traversealias;
|
||||||
|
}
|
||||||
|
|
||||||
|
init_bus()
|
||||||
|
{
|
||||||
|
flag_wait( "start_zombie_round_logic" );
|
||||||
|
level.the_bus thread maps/mp/zm_transit_bus::bussetup();
|
||||||
|
}
|
||||||
|
|
||||||
|
closest_player_transit( origin, players )
|
||||||
|
{
|
||||||
|
if ( isDefined( level.the_bus ) || level.the_bus.numaliveplayersridingbus > 0 && isDefined( level.calc_closest_player_using_paths ) && !level.calc_closest_player_using_paths )
|
||||||
|
{
|
||||||
|
player = getclosest( origin, players );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
player = get_closest_player_using_paths( origin, players );
|
||||||
|
}
|
||||||
|
return player;
|
||||||
|
}
|
||||||
|
|
||||||
|
transit_vault_breach_init()
|
||||||
|
{
|
||||||
|
vault_doors = getentarray( "town_bunker_door", "targetname" );
|
||||||
|
array_thread( vault_doors, ::transit_vault_breach );
|
||||||
|
}
|
||||||
|
|
||||||
|
transit_vault_breach()
|
||||||
|
{
|
||||||
|
if ( isDefined( self ) )
|
||||||
|
{
|
||||||
|
self.damage_state = 0;
|
||||||
|
if ( isDefined( self.target ) )
|
||||||
|
{
|
||||||
|
clip = getent( self.target, "targetname" );
|
||||||
|
clip linkto( self );
|
||||||
|
self.clip = clip;
|
||||||
|
}
|
||||||
|
self thread vault_breach_think();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
vault_breach_think()
|
||||||
|
{
|
||||||
|
level endon( "intermission" );
|
||||||
|
self.health = 99999;
|
||||||
|
self setcandamage( 1 );
|
||||||
|
self.damage_state = 0;
|
||||||
|
self.clip.health = 99999;
|
||||||
|
self.clip setcandamage( 1 );
|
||||||
|
while ( 1 )
|
||||||
|
{
|
||||||
|
self thread track_clip_damage();
|
||||||
|
self waittill( "damage", amount, attacker, direction, point, dmg_type, modelname, tagname, partname, weaponname );
|
||||||
|
if ( isDefined( weaponname ) && weaponname != "emp_grenade_zm" || weaponname == "ray_gun_zm" && weaponname == "ray_gun_upgraded_zm" )
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if ( isDefined( amount ) && amount <= 1 )
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if ( isplayer( attacker ) && dmg_type != "MOD_PROJECTILE" && dmg_type != "MOD_PROJECTILE_SPLASH" && dmg_type != "MOD_EXPLOSIVE" && dmg_type != "MOD_EXPLOSIVE_SPLASH" || dmg_type == "MOD_GRENADE" && dmg_type == "MOD_GRENADE_SPLASH" )
|
||||||
|
{
|
||||||
|
if ( self.damage_state == 0 )
|
||||||
|
{
|
||||||
|
self.damage_state = 1;
|
||||||
|
}
|
||||||
|
playfxontag( level._effect[ "def_explosion" ], self, "tag_origin" );
|
||||||
|
self playsound( "exp_vault_explode" );
|
||||||
|
self bunkerdoorrotate( 1 );
|
||||||
|
if ( isDefined( self.script_flag ) )
|
||||||
|
{
|
||||||
|
flag_set( self.script_flag );
|
||||||
|
}
|
||||||
|
if ( isDefined( self.clip ) )
|
||||||
|
{
|
||||||
|
self.clip connectpaths();
|
||||||
|
}
|
||||||
|
wait 1;
|
||||||
|
playsoundatposition( "zmb_cha_ching_loud", self.origin );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
track_clip_damage()
|
||||||
|
{
|
||||||
|
self endon( "damage" );
|
||||||
|
self.clip waittill( "damage", amount, attacker, direction, point, dmg_type );
|
||||||
|
self notify( "damage" );
|
||||||
|
}
|
||||||
|
|
||||||
|
bunkerdoorrotate( open, time )
|
||||||
|
{
|
||||||
|
if ( !isDefined( time ) )
|
||||||
|
{
|
||||||
|
time = 0,2;
|
||||||
|
}
|
||||||
|
rotate = self.script_float;
|
||||||
|
if ( !open )
|
||||||
|
{
|
||||||
|
rotate *= -1;
|
||||||
|
}
|
||||||
|
if ( isDefined( self.script_angles ) )
|
||||||
|
{
|
||||||
|
self notsolid();
|
||||||
|
self rotateto( self.script_angles, time, 0, 0 );
|
||||||
|
self thread maps/mp/zombies/_zm_blockers::door_solid_thread();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
collapsing_bridge_init()
|
||||||
|
{
|
||||||
|
time = 1,5;
|
||||||
|
trig = getent( "bridge_trig", "targetname" );
|
||||||
|
if ( !isDefined( trig ) )
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
bridge = getentarray( trig.target, "targetname" );
|
||||||
|
if ( !isDefined( bridge ) )
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
trig waittill( "trigger", who );
|
||||||
|
trig playsound( "evt_bridge_collapse_start" );
|
||||||
|
trig thread play_delayed_sound( time );
|
||||||
|
i = 0;
|
||||||
|
while ( i < bridge.size )
|
||||||
|
{
|
||||||
|
if ( isDefined( bridge[ i ].script_angles ) )
|
||||||
|
{
|
||||||
|
rot_angle = bridge[ i ].script_angles;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
rot_angle = ( 0, 0, 0 );
|
||||||
|
}
|
||||||
|
earthquake( randomfloatrange( 0,5, 1 ), 1,5, bridge[ i ].origin, 1000 );
|
||||||
|
exploder( 150 );
|
||||||
|
bridge[ i ] rotateto( rot_angle, time, 0, 0 );
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
wait 1;
|
||||||
|
if ( !isDefined( level.collapse_vox_said ) )
|
||||||
|
{
|
||||||
|
level thread automatonspeak( "inform", "bridge_collapse" );
|
||||||
|
level.collapse_vox_said = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
play_delayed_sound( time )
|
||||||
|
{
|
||||||
|
wait time;
|
||||||
|
self playsound( "evt_bridge_collapse_end" );
|
||||||
|
}
|
||||||
|
|
||||||
|
banking_and_weapon_locker_main()
|
||||||
|
{
|
||||||
|
flag_wait( "start_zombie_round_logic" );
|
||||||
|
weapon_locker = spawnstruct();
|
||||||
|
weapon_locker.origin = ( 8236, -6844, 144 );
|
||||||
|
weapon_locker.angles = vectorScale( ( 0, 0, 0 ), 30 );
|
||||||
|
weapon_locker.script_length = 16;
|
||||||
|
weapon_locker.script_width = 32;
|
||||||
|
weapon_locker.script_height = 64;
|
||||||
|
deposit_spot = spawnstruct();
|
||||||
|
deposit_spot.origin = ( 588, 402, 6 );
|
||||||
|
deposit_spot.angles = ( 0, 0, 0 );
|
||||||
|
deposit_spot.targetname = "bank_deposit";
|
||||||
|
deposit_spot.script_unitrigger_type = "unitrigger_radius_use";
|
||||||
|
deposit_spot.radius = 32;
|
||||||
|
withdraw_spot = spawnstruct();
|
||||||
|
withdraw_spot.origin = ( 588, 496, 6 );
|
||||||
|
withdraw_spot.angles = ( 0, 0, 0 );
|
||||||
|
withdraw_spot.targetname = "bank_withdraw";
|
||||||
|
withdraw_spot.script_unitrigger_type = "unitrigger_radius_use";
|
||||||
|
withdraw_spot.radius = 32;
|
||||||
|
level thread maps/mp/zombies/_zm_weapon_locker::main();
|
||||||
|
weapon_locker thread maps/mp/zombies/_zm_weapon_locker::triggerweaponslockerwatch();
|
||||||
|
level thread maps/mp/zombies/_zm_banking::main();
|
||||||
|
deposit_spot thread maps/mp/zombies/_zm_banking::bank_deposit_unitrigger();
|
||||||
|
withdraw_spot thread maps/mp/zombies/_zm_banking::bank_withdraw_unitrigger();
|
||||||
|
}
|
||||||
|
|
||||||
|
bus_roof_damage_init()
|
||||||
|
{
|
||||||
|
trigs = getentarray( "bus_knock_off", "targetname" );
|
||||||
|
array_thread( trigs, ::bus_roof_damage );
|
||||||
|
}
|
||||||
|
|
||||||
|
bus_roof_damage()
|
||||||
|
{
|
||||||
|
while ( 1 )
|
||||||
|
{
|
||||||
|
self waittill( "trigger", who );
|
||||||
|
if ( isplayer( who ) )
|
||||||
|
{
|
||||||
|
if ( who getstance() == "stand" )
|
||||||
|
{
|
||||||
|
who dodamage( 1, who.origin );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ( isDefined( who.marked_for_death ) && !who.marked_for_death && isDefined( who.has_legs ) && who.has_legs )
|
||||||
|
{
|
||||||
|
who dodamage( who.health + 100, who.origin );
|
||||||
|
who.marked_for_death = 1;
|
||||||
|
level.zombie_total++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
wait 0,1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
diner_hatch_access()
|
||||||
|
{
|
||||||
|
diner_hatch = getent( "diner_hatch", "targetname" );
|
||||||
|
diner_hatch_col = getent( "diner_hatch_collision", "targetname" );
|
||||||
|
diner_hatch_mantle = getent( "diner_hatch_mantle", "targetname" );
|
||||||
|
if ( !isDefined( diner_hatch ) || !isDefined( diner_hatch_col ) )
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
diner_hatch hide();
|
||||||
|
diner_hatch_mantle.start_origin = diner_hatch_mantle.origin;
|
||||||
|
diner_hatch_mantle.origin += vectorScale( ( 0, 0, 0 ), 500 );
|
||||||
|
player = wait_for_buildable( "dinerhatch" );
|
||||||
|
diner_hatch show();
|
||||||
|
diner_hatch_col delete();
|
||||||
|
diner_hatch_mantle.origin = diner_hatch_mantle.start_origin;
|
||||||
|
player maps/mp/zombies/_zm_buildables::track_placed_buildables( "dinerhatch" );
|
||||||
|
}
|
||||||
|
|
||||||
|
inert_zombies_init()
|
||||||
|
{
|
||||||
|
inert_spawn_location = getstructarray( "inert_location", "script_noteworthy" );
|
||||||
|
if ( isDefined( inert_spawn_location ) )
|
||||||
|
{
|
||||||
|
array_thread( inert_spawn_location, ::spawn_inert_zombies );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
spawn_inert_zombies()
|
||||||
|
{
|
||||||
|
if ( !isDefined( self.angles ) )
|
||||||
|
{
|
||||||
|
self.angles = ( 0, 0, 0 );
|
||||||
|
}
|
||||||
|
wait 0,1;
|
||||||
|
if ( isDefined( level.zombie_spawners ) )
|
||||||
|
{
|
||||||
|
spawner = random( level.zombie_spawners );
|
||||||
|
ai = spawn_zombie( spawner );
|
||||||
|
}
|
||||||
|
if ( isDefined( ai ) )
|
||||||
|
{
|
||||||
|
ai forceteleport( self.origin, self.angles );
|
||||||
|
ai.start_inert = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sparking_power_lines()
|
||||||
|
{
|
||||||
|
lines = getentarray( "power_line_sparking", "targetname" );
|
||||||
|
}
|
||||||
|
|
||||||
|
callback_spectator_respawn_custom_score()
|
||||||
|
{
|
||||||
|
difference = 1500 - self.score;
|
||||||
|
money_required = 1;
|
||||||
|
if ( difference >= 1000 )
|
||||||
|
{
|
||||||
|
money_required = 2;
|
||||||
|
}
|
||||||
|
if ( !sessionmodeisonlinegame() )
|
||||||
|
{
|
||||||
|
if ( !isDefined( self.account_val ) )
|
||||||
|
{
|
||||||
|
self.account_val = 0;
|
||||||
|
}
|
||||||
|
if ( self.account_val >= money_required )
|
||||||
|
{
|
||||||
|
self.account_val -= money_required;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
self.account_val = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else account_val = self maps/mp/zombies/_zm_stats::get_map_stat( "depositBox" );
|
||||||
|
if ( account_val >= money_required )
|
||||||
|
{
|
||||||
|
self set_map_stat( "depositBox", account_val - money_required );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
self set_map_stat( "depositBox", 0 );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
transit_custom_deny_vox( door_buy )
|
||||||
|
{
|
||||||
|
switch( self.characterindex )
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
alias = randomintrange( 2, 5 );
|
||||||
|
if ( isDefined( door_buy ) && door_buy )
|
||||||
|
{
|
||||||
|
alias = undefined;
|
||||||
|
}
|
||||||
|
self maps/mp/zombies/_zm_audio::create_and_play_dialog( "general", "door_deny", undefined, alias );
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
self maps/mp/zombies/_zm_audio::create_and_play_dialog( "general", "perk_deny", undefined, 0 );
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
self maps/mp/zombies/_zm_audio::create_and_play_dialog( "general", "perk_deny", undefined, 0 );
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
x = randomint( 100 );
|
||||||
|
if ( x > 66 )
|
||||||
|
{
|
||||||
|
self maps/mp/zombies/_zm_audio::create_and_play_dialog( "general", "perk_deny", undefined, 0 );
|
||||||
|
}
|
||||||
|
else if ( x > 33 )
|
||||||
|
{
|
||||||
|
self maps/mp/zombies/_zm_audio::create_and_play_dialog( "general", "no_money_box", undefined, 0 );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
self maps/mp/zombies/_zm_audio::create_and_play_dialog( "general", "no_money_weapon", undefined, 0 );
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
transit_custom_death_vox()
|
||||||
|
{
|
||||||
|
if ( self.characterindex != 2 )
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
self maps/mp/zombies/_zm_audio::create_and_play_dialog( "general", "pain_high" );
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
transit_custom_powerup_vo_response( powerup_player, powerup )
|
||||||
|
{
|
||||||
|
dist = 250000;
|
||||||
|
players = get_players();
|
||||||
|
_a660 = players;
|
||||||
|
_k660 = getFirstArrayKey( _a660 );
|
||||||
|
while ( isDefined( _k660 ) )
|
||||||
|
{
|
||||||
|
player = _a660[ _k660 ];
|
||||||
|
if ( player == powerup_player )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
else if ( distancesquared( player.origin, powerup_player.origin ) < dist )
|
||||||
|
{
|
||||||
|
player do_player_general_vox( "general", "exert_laugh", 10, 5 );
|
||||||
|
}
|
||||||
|
_k660 = getNextArrayKey( _a660, _k660 );
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user