mirror of
https://github.com/JezuzLizard/Recompilable-gscs-for-BO2-zombies-and-multiplayer.git
synced 2025-06-08 01:47:50 -05:00
actually committed zm_tomb_classic and zm_tomb_dig
This commit is contained in:
parent
ddd06a7066
commit
59f7c8034d
@ -1,3 +1,4 @@
|
|||||||
|
//checked includes match cerberus output
|
||||||
#include maps/mp/zombies/_zm_magicbox;
|
#include maps/mp/zombies/_zm_magicbox;
|
||||||
#include maps/mp/zombies/_zm_game_module;
|
#include maps/mp/zombies/_zm_game_module;
|
||||||
#include maps/mp/gametypes_zm/_zm_gametype;
|
#include maps/mp/gametypes_zm/_zm_gametype;
|
||||||
@ -7,7 +8,7 @@
|
|||||||
#include common_scripts/utility;
|
#include common_scripts/utility;
|
||||||
#include maps/mp/_utility;
|
#include maps/mp/_utility;
|
||||||
|
|
||||||
precache()
|
precache() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( isDefined( level.createfx_enabled ) && level.createfx_enabled )
|
if ( isDefined( level.createfx_enabled ) && level.createfx_enabled )
|
||||||
{
|
{
|
||||||
@ -19,7 +20,7 @@ precache()
|
|||||||
maps/mp/zm_tomb_craftables::init_craftables();
|
maps/mp/zm_tomb_craftables::init_craftables();
|
||||||
}
|
}
|
||||||
|
|
||||||
main()
|
main() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
maps/mp/gametypes_zm/_zm_gametype::setup_standard_objects( "tomb" );
|
maps/mp/gametypes_zm/_zm_gametype::setup_standard_objects( "tomb" );
|
||||||
maps/mp/zombies/_zm_game_module::set_current_game_module( level.game_module_standard_index );
|
maps/mp/zombies/_zm_game_module::set_current_game_module( level.game_module_standard_index );
|
||||||
@ -27,10 +28,11 @@ main()
|
|||||||
flag_wait( "initial_blackscreen_passed" );
|
flag_wait( "initial_blackscreen_passed" );
|
||||||
}
|
}
|
||||||
|
|
||||||
zm_treasure_chest_init()
|
zm_treasure_chest_init() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
chest1 = getstruct( "start_chest", "script_noteworthy" );
|
chest1 = getstruct( "start_chest", "script_noteworthy" );
|
||||||
level.chests = [];
|
level.chests = [];
|
||||||
level.chests[ level.chests.size ] = chest1;
|
level.chests[ level.chests.size ] = chest1;
|
||||||
maps/mp/zombies/_zm_magicbox::treasure_chest_init( "start_chest" );
|
maps/mp/zombies/_zm_magicbox::treasure_chest_init( "start_chest" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
//checked includes match cerberus output
|
||||||
#include maps/mp/zombies/_zm_powerup_zombie_blood;
|
#include maps/mp/zombies/_zm_powerup_zombie_blood;
|
||||||
#include maps/mp/zombies/_zm_weap_claymore;
|
#include maps/mp/zombies/_zm_weap_claymore;
|
||||||
#include maps/mp/zombies/_zm_powerups;
|
#include maps/mp/zombies/_zm_powerups;
|
||||||
@ -12,7 +13,7 @@
|
|||||||
#include maps/mp/_utility;
|
#include maps/mp/_utility;
|
||||||
#include common_scripts/utility;
|
#include common_scripts/utility;
|
||||||
|
|
||||||
init_shovel()
|
init_shovel() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
precachemodel( "p6_zm_tm_dig_mound" );
|
precachemodel( "p6_zm_tm_dig_mound" );
|
||||||
precachemodel( "p6_zm_tm_dig_mound_blood" );
|
precachemodel( "p6_zm_tm_dig_mound_blood" );
|
||||||
@ -23,29 +24,21 @@ init_shovel()
|
|||||||
onplayerconnect_callback( ::init_shovel_player );
|
onplayerconnect_callback( ::init_shovel_player );
|
||||||
a_shovel_pos = getstructarray( "shovel_location", "targetname" );
|
a_shovel_pos = getstructarray( "shovel_location", "targetname" );
|
||||||
a_shovel_zone = [];
|
a_shovel_zone = [];
|
||||||
_a45 = a_shovel_pos;
|
foreach ( s_shovel_pos in a_shovel_pos )
|
||||||
_k45 = getFirstArrayKey( _a45 );
|
|
||||||
while ( isDefined( _k45 ) )
|
|
||||||
{
|
{
|
||||||
s_shovel_pos = _a45[ _k45 ];
|
|
||||||
if ( !isDefined( a_shovel_zone[ s_shovel_pos.script_noteworthy ] ) )
|
if ( !isDefined( a_shovel_zone[ s_shovel_pos.script_noteworthy ] ) )
|
||||||
{
|
{
|
||||||
a_shovel_zone[ s_shovel_pos.script_noteworthy ] = [];
|
a_shovel_zone[ s_shovel_pos.script_noteworthy ] = [];
|
||||||
}
|
}
|
||||||
a_shovel_zone[ s_shovel_pos.script_noteworthy ][ a_shovel_zone[ s_shovel_pos.script_noteworthy ].size ] = s_shovel_pos;
|
a_shovel_zone[ s_shovel_pos.script_noteworthy ][ a_shovel_zone[ s_shovel_pos.script_noteworthy ].size ] = s_shovel_pos;
|
||||||
_k45 = getNextArrayKey( _a45, _k45 );
|
|
||||||
}
|
}
|
||||||
_a55 = a_shovel_zone;
|
foreach ( a_zone in a_shovel_zone )
|
||||||
_k55 = getFirstArrayKey( _a55 );
|
|
||||||
while ( isDefined( _k55 ) )
|
|
||||||
{
|
{
|
||||||
a_zone = _a55[ _k55 ];
|
|
||||||
s_pos = a_zone[ randomint( a_zone.size ) ];
|
s_pos = a_zone[ randomint( a_zone.size ) ];
|
||||||
m_shovel = spawn( "script_model", s_pos.origin );
|
m_shovel = spawn( "script_model", s_pos.origin );
|
||||||
m_shovel.angles = s_pos.angles;
|
m_shovel.angles = s_pos.angles;
|
||||||
m_shovel setmodel( "p6_zm_tm_shovel" );
|
m_shovel setmodel( "p6_zm_tm_shovel" );
|
||||||
generate_shovel_unitrigger( m_shovel );
|
generate_shovel_unitrigger( m_shovel );
|
||||||
_k55 = getNextArrayKey( _a55, _k55 );
|
|
||||||
}
|
}
|
||||||
level.get_player_perk_purchase_limit = ::get_player_perk_purchase_limit;
|
level.get_player_perk_purchase_limit = ::get_player_perk_purchase_limit;
|
||||||
level.bonus_points_powerup_override = ::bonus_points_powerup_override;
|
level.bonus_points_powerup_override = ::bonus_points_powerup_override;
|
||||||
@ -59,12 +52,14 @@ init_shovel()
|
|||||||
registerclientfield( "world", "helmet_player2", 14000, 1, "int", undefined, 0 );
|
registerclientfield( "world", "helmet_player2", 14000, 1, "int", undefined, 0 );
|
||||||
registerclientfield( "world", "helmet_player3", 14000, 1, "int", undefined, 0 );
|
registerclientfield( "world", "helmet_player3", 14000, 1, "int", undefined, 0 );
|
||||||
registerclientfield( "world", "helmet_player4", 14000, 1, "int", undefined, 0 );
|
registerclientfield( "world", "helmet_player4", 14000, 1, "int", undefined, 0 );
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
level thread setup_dig_devgui();
|
level thread setup_dig_devgui();
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
init_shovel_player()
|
init_shovel_player() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self.dig_vars[ "has_shovel" ] = 0;
|
self.dig_vars[ "has_shovel" ] = 0;
|
||||||
self.dig_vars[ "has_upgraded_shovel" ] = 0;
|
self.dig_vars[ "has_upgraded_shovel" ] = 0;
|
||||||
@ -73,10 +68,10 @@ init_shovel_player()
|
|||||||
self.dig_vars[ "n_losing_streak" ] = 0;
|
self.dig_vars[ "n_losing_streak" ] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
generate_shovel_unitrigger( e_shovel )
|
generate_shovel_unitrigger( e_shovel ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
s_unitrigger_stub = spawnstruct();
|
s_unitrigger_stub = spawnstruct();
|
||||||
s_unitrigger_stub.origin = e_shovel.origin + vectorScale( ( 0, 0, -1 ), 32 );
|
s_unitrigger_stub.origin = e_shovel.origin + vectorScale( ( 0, 0, 1 ), 32 );
|
||||||
s_unitrigger_stub.angles = e_shovel.angles;
|
s_unitrigger_stub.angles = e_shovel.angles;
|
||||||
s_unitrigger_stub.radius = 32;
|
s_unitrigger_stub.radius = 32;
|
||||||
s_unitrigger_stub.script_length = 64;
|
s_unitrigger_stub.script_length = 64;
|
||||||
@ -92,7 +87,7 @@ generate_shovel_unitrigger( e_shovel )
|
|||||||
maps/mp/zombies/_zm_unitrigger::register_static_unitrigger( s_unitrigger_stub, ::shovel_unitrigger_think );
|
maps/mp/zombies/_zm_unitrigger::register_static_unitrigger( s_unitrigger_stub, ::shovel_unitrigger_think );
|
||||||
}
|
}
|
||||||
|
|
||||||
shovel_trigger_prompt_and_visiblity( e_player )
|
shovel_trigger_prompt_and_visiblity( e_player ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
can_use = self.stub shovel_prompt_update( e_player );
|
can_use = self.stub shovel_prompt_update( e_player );
|
||||||
self setinvisibletoplayer( e_player, !can_use );
|
self setinvisibletoplayer( e_player, !can_use );
|
||||||
@ -100,7 +95,7 @@ shovel_trigger_prompt_and_visiblity( e_player )
|
|||||||
return can_use;
|
return can_use;
|
||||||
}
|
}
|
||||||
|
|
||||||
shovel_prompt_update( e_player )
|
shovel_prompt_update( e_player ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( !self unitrigger_stub_show_hint_prompt_valid( e_player ) )
|
if ( !self unitrigger_stub_show_hint_prompt_valid( e_player ) )
|
||||||
{
|
{
|
||||||
@ -114,13 +109,13 @@ shovel_prompt_update( e_player )
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
shovel_unitrigger_think()
|
shovel_unitrigger_think() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
self endon( "kill_trigger" );
|
self endon( "kill_trigger" );
|
||||||
while ( 1 )
|
while ( 1 )
|
||||||
{
|
{
|
||||||
self waittill( "trigger", e_player );
|
self waittill( "trigger", e_player );
|
||||||
while ( e_player != self.parent_player )
|
if ( e_player != self.parent_player )
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -138,7 +133,7 @@ shovel_unitrigger_think()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dig_reward_dialog( str_category )
|
dig_reward_dialog( str_category ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( isDefined( self.dig_vo_cooldown ) && !self.dig_vo_cooldown )
|
if ( isDefined( self.dig_vo_cooldown ) && !self.dig_vo_cooldown )
|
||||||
{
|
{
|
||||||
@ -150,7 +145,7 @@ dig_reward_dialog( str_category )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dig_reward_vo_cooldown()
|
dig_reward_vo_cooldown() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self endon( "disconnect" );
|
self endon( "disconnect" );
|
||||||
self.dig_vo_cooldown = 1;
|
self.dig_vo_cooldown = 1;
|
||||||
@ -158,7 +153,7 @@ dig_reward_vo_cooldown()
|
|||||||
self.dig_vo_cooldown = undefined;
|
self.dig_vo_cooldown = undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
unitrigger_stub_show_hint_prompt_valid( e_player )
|
unitrigger_stub_show_hint_prompt_valid( e_player ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( !is_player_valid( e_player ) )
|
if ( !is_player_valid( e_player ) )
|
||||||
{
|
{
|
||||||
@ -168,7 +163,7 @@ unitrigger_stub_show_hint_prompt_valid( e_player )
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
dig_disconnect_watch( n_player, v_origin, v_angles )
|
dig_disconnect_watch( n_player, v_origin, v_angles ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self waittill( "disconnect" );
|
self waittill( "disconnect" );
|
||||||
level setclientfield( "shovel_player" + n_player, 0 );
|
level setclientfield( "shovel_player" + n_player, 0 );
|
||||||
@ -179,20 +174,17 @@ dig_disconnect_watch( n_player, v_origin, v_angles )
|
|||||||
generate_shovel_unitrigger( m_shovel );
|
generate_shovel_unitrigger( m_shovel );
|
||||||
}
|
}
|
||||||
|
|
||||||
dig_spots_init()
|
dig_spots_init() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
flag_wait( "start_zombie_round_logic" );
|
flag_wait( "start_zombie_round_logic" );
|
||||||
level.n_dig_spots_cur = 0;
|
level.n_dig_spots_cur = 0;
|
||||||
level.n_dig_spots_max = 15;
|
level.n_dig_spots_max = 15;
|
||||||
level.a_dig_spots = getstructarray( "dig_spot", "targetname" );
|
level.a_dig_spots = getstructarray( "dig_spot", "targetname" );
|
||||||
_a242 = level.a_dig_spots;
|
foreach ( s_dig_spot in level.a_dig_spots )
|
||||||
_k242 = getFirstArrayKey( _a242 );
|
|
||||||
while ( isDefined( _k242 ) )
|
|
||||||
{
|
{
|
||||||
s_dig_spot = _a242[ _k242 ];
|
|
||||||
if ( !isDefined( s_dig_spot.angles ) )
|
if ( !isDefined( s_dig_spot.angles ) )
|
||||||
{
|
{
|
||||||
s_dig_spot.angles = ( 0, 0, -1 );
|
s_dig_spot.angles = ( 0, 0, 0 );
|
||||||
}
|
}
|
||||||
if ( isDefined( s_dig_spot.script_noteworthy ) && s_dig_spot.script_noteworthy == "initial_spot" )
|
if ( isDefined( s_dig_spot.script_noteworthy ) && s_dig_spot.script_noteworthy == "initial_spot" )
|
||||||
{
|
{
|
||||||
@ -202,21 +194,22 @@ dig_spots_init()
|
|||||||
{
|
{
|
||||||
s_dig_spot.dug = 1;
|
s_dig_spot.dug = 1;
|
||||||
}
|
}
|
||||||
s_dig_spot.str_zone = maps/mp/zombies/_zm_zonemgr::get_zone_from_position( s_dig_spot.origin + vectorScale( ( 0, 0, -1 ), 32 ), 1 );
|
s_dig_spot.str_zone = maps/mp/zombies/_zm_zonemgr::get_zone_from_position( s_dig_spot.origin + vectorScale( ( 0, 0, 1 ), 32 ), 1 );
|
||||||
if ( !isDefined( s_dig_spot.str_zone ) )
|
if ( !isDefined( s_dig_spot.str_zone ) )
|
||||||
{
|
{
|
||||||
s_dig_spot.str_zone = "";
|
s_dig_spot.str_zone = "";
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
assertmsg( "Dig spot at ( " + s_dig_spot.origin[ 0 ] + ", " + s_dig_spot.origin[ 1 ] + ", " + s_dig_spot.origin[ 2 ] + ") is not in a zone." );
|
assertmsg( "Dig spot at ( " + s_dig_spot.origin[ 0 ] + ", " + s_dig_spot.origin[ 1 ] + ", " + s_dig_spot.origin[ 2 ] + ") is not in a zone." );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
wait_network_frame();
|
wait_network_frame();
|
||||||
_k242 = getNextArrayKey( _a242, _k242 );
|
|
||||||
}
|
}
|
||||||
level thread dig_spots_respawn();
|
level thread dig_spots_respawn();
|
||||||
}
|
}
|
||||||
|
|
||||||
dig_spots_respawn( a_dig_spots )
|
dig_spots_respawn( a_dig_spots ) //checked partially changed to match cerberus output see info.md
|
||||||
{
|
{
|
||||||
while ( 1 )
|
while ( 1 )
|
||||||
{
|
{
|
||||||
@ -229,19 +222,15 @@ dig_spots_respawn( a_dig_spots )
|
|||||||
{
|
{
|
||||||
n_respawned_max = 0;
|
n_respawned_max = 0;
|
||||||
}
|
}
|
||||||
else
|
else if ( level.weather_rain > 0 )
|
||||||
{
|
{
|
||||||
if ( level.weather_rain > 0 )
|
n_respawned_max = 5;
|
||||||
{
|
|
||||||
n_respawned_max = 5;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if ( level.weather_snow == 0 )
|
if ( level.weather_snow == 0 )
|
||||||
{
|
{
|
||||||
n_respawned_max += randomint( get_players().size );
|
n_respawned_max += randomint( get_players().size );
|
||||||
}
|
}
|
||||||
i = 0;
|
for ( i = 0; i < a_dig_spots.size; i++ )
|
||||||
while ( i < a_dig_spots.size )
|
|
||||||
{
|
{
|
||||||
if ( isDefined( a_dig_spots[ i ].dug ) && a_dig_spots[ i ].dug && n_respawned < n_respawned_max && level.n_dig_spots_cur <= level.n_dig_spots_max )
|
if ( isDefined( a_dig_spots[ i ].dug ) && a_dig_spots[ i ].dug && n_respawned < n_respawned_max && level.n_dig_spots_cur <= level.n_dig_spots_max )
|
||||||
{
|
{
|
||||||
@ -250,35 +239,26 @@ dig_spots_respawn( a_dig_spots )
|
|||||||
wait_network_frame();
|
wait_network_frame();
|
||||||
n_respawned++;
|
n_respawned++;
|
||||||
}
|
}
|
||||||
i++;
|
|
||||||
}
|
}
|
||||||
while ( level.weather_snow > 0 && level.ice_staff_pieces.size > 0 )
|
if ( level.weather_snow > 0 && level.ice_staff_pieces.size > 0 )
|
||||||
{
|
{
|
||||||
_a316 = level.ice_staff_pieces;
|
foreach ( s_staff in level.ice_staff_pieces )
|
||||||
_k316 = getFirstArrayKey( _a316 );
|
|
||||||
while ( isDefined( _k316 ) )
|
|
||||||
{
|
{
|
||||||
s_staff = _a316[ _k316 ];
|
|
||||||
a_staff_spots = [];
|
a_staff_spots = [];
|
||||||
n_active_mounds = 0;
|
n_active_mounds = 0;
|
||||||
_a321 = level.a_dig_spots;
|
for ( i = 0; i < level.a_dig_spots.size; i++ )
|
||||||
_k321 = getFirstArrayKey( _a321 );
|
|
||||||
while ( isDefined( _k321 ) )
|
|
||||||
{
|
{
|
||||||
s_dig_spot = _a321[ _k321 ];
|
|
||||||
if ( isDefined( s_dig_spot.str_zone ) && issubstr( s_dig_spot.str_zone, s_staff.zone_substr ) )
|
if ( isDefined( s_dig_spot.str_zone ) && issubstr( s_dig_spot.str_zone, s_staff.zone_substr ) )
|
||||||
{
|
{
|
||||||
if ( isDefined( s_dig_spot.dug ) && !s_dig_spot.dug )
|
if ( isDefined( s_dig_spot.dug ) && !s_dig_spot.dug )
|
||||||
{
|
{
|
||||||
n_active_mounds++;
|
n_active_mounds++;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
a_staff_spots[ a_staff_spots.size ] = s_dig_spot;
|
a_staff_spots[ a_staff_spots.size ] = s_dig_spot;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_k321 = getNextArrayKey( _a321, _k321 );
|
|
||||||
}
|
}
|
||||||
if ( n_active_mounds < 2 && a_staff_spots.size > 0 && level.n_dig_spots_cur <= level.n_dig_spots_max )
|
if ( n_active_mounds < 2 && a_staff_spots.size > 0 && level.n_dig_spots_cur <= level.n_dig_spots_max )
|
||||||
{
|
{
|
||||||
@ -289,13 +269,12 @@ dig_spots_respawn( a_dig_spots )
|
|||||||
n_active_mounds++;
|
n_active_mounds++;
|
||||||
wait_network_frame();
|
wait_network_frame();
|
||||||
}
|
}
|
||||||
_k316 = getNextArrayKey( _a316, _k316 );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dig_spot_spawn()
|
dig_spot_spawn() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
level.n_dig_spots_cur++;
|
level.n_dig_spots_cur++;
|
||||||
self.m_dig = spawn( "script_model", self.origin + vectorScale( ( 0, 0, -1 ), 40 ) );
|
self.m_dig = spawn( "script_model", self.origin + vectorScale( ( 0, 0, -1 ), 40 ) );
|
||||||
@ -303,7 +282,7 @@ dig_spot_spawn()
|
|||||||
self.m_dig.angles = self.angles;
|
self.m_dig.angles = self.angles;
|
||||||
self.m_dig moveto( self.origin, 3, 0, 1 );
|
self.m_dig moveto( self.origin, 3, 0, 1 );
|
||||||
self.m_dig waittill( "movedone" );
|
self.m_dig waittill( "movedone" );
|
||||||
t_dig = tomb_spawn_trigger_radius( self.origin + vectorScale( ( 0, 0, -1 ), 20 ), 100, 1 );
|
t_dig = tomb_spawn_trigger_radius( self.origin + vectorScale( ( 0, 0, 1 ), 20 ), 100, 1 );
|
||||||
t_dig.prompt_and_visibility_func = ::dig_spot_trigger_visibility;
|
t_dig.prompt_and_visibility_func = ::dig_spot_trigger_visibility;
|
||||||
t_dig.require_look_at = 1;
|
t_dig.require_look_at = 1;
|
||||||
t_dig waittill_dug( self );
|
t_dig waittill_dug( self );
|
||||||
@ -313,7 +292,7 @@ dig_spot_spawn()
|
|||||||
self.m_dig = undefined;
|
self.m_dig = undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
dig_spot_trigger_visibility( player )
|
dig_spot_trigger_visibility( player ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( isDefined( player.dig_vars[ "has_shovel" ] ) && player.dig_vars[ "has_shovel" ] )
|
if ( isDefined( player.dig_vars[ "has_shovel" ] ) && player.dig_vars[ "has_shovel" ] )
|
||||||
{
|
{
|
||||||
@ -326,7 +305,7 @@ dig_spot_trigger_visibility( player )
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
waittill_dug( s_dig_spot )
|
waittill_dug( s_dig_spot ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
while ( 1 )
|
while ( 1 )
|
||||||
{
|
{
|
||||||
@ -347,53 +326,56 @@ waittill_dug( s_dig_spot )
|
|||||||
s_staff_piece maps/mp/zm_tomb_main_quest::show_ice_staff_piece( self.origin );
|
s_staff_piece maps/mp/zm_tomb_main_quest::show_ice_staff_piece( self.origin );
|
||||||
player dig_reward_dialog( "dig_staff_part" );
|
player dig_reward_dialog( "dig_staff_part" );
|
||||||
}
|
}
|
||||||
else n_good_chance = 50;
|
else
|
||||||
if ( player.dig_vars[ "n_spots_dug" ] == 0 || player.dig_vars[ "n_losing_streak" ] == 3 )
|
|
||||||
{
|
{
|
||||||
player.dig_vars[ "n_losing_streak" ] = 0;
|
n_good_chance = 50;
|
||||||
n_good_chance = 100;
|
if ( player.dig_vars[ "n_spots_dug" ] == 0 || player.dig_vars[ "n_losing_streak" ] == 3 )
|
||||||
}
|
|
||||||
if ( player.dig_vars[ "has_upgraded_shovel" ] )
|
|
||||||
{
|
|
||||||
if ( !player.dig_vars[ "has_helmet" ] )
|
|
||||||
{
|
{
|
||||||
n_helmet_roll = randomint( 100 );
|
player.dig_vars[ "n_losing_streak" ] = 0;
|
||||||
if ( n_helmet_roll >= 95 )
|
n_good_chance = 100;
|
||||||
{
|
|
||||||
player.dig_vars[ "has_helmet" ] = 1;
|
|
||||||
n_player = player getentitynumber() + 1;
|
|
||||||
level setclientfield( "helmet_player" + n_player, 1 );
|
|
||||||
player playsoundtoplayer( "zmb_squest_golden_anything", player );
|
|
||||||
player maps/mp/zombies/_zm_stats::increment_client_stat( "tomb_golden_hard_hat", 0 );
|
|
||||||
player maps/mp/zombies/_zm_stats::increment_player_stat( "tomb_golden_hard_hat" );
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
n_good_chance = 70;
|
if ( player.dig_vars[ "has_upgraded_shovel" ] )
|
||||||
}
|
|
||||||
n_prize_roll = randomint( 100 );
|
|
||||||
if ( n_prize_roll > n_good_chance )
|
|
||||||
{
|
|
||||||
if ( cointoss() )
|
|
||||||
{
|
{
|
||||||
player dig_reward_dialog( "dig_grenade" );
|
if ( !player.dig_vars[ "has_helmet" ] )
|
||||||
self thread dig_up_grenade( player );
|
{
|
||||||
|
n_helmet_roll = randomint( 100 );
|
||||||
|
if ( n_helmet_roll >= 95 )
|
||||||
|
{
|
||||||
|
player.dig_vars[ "has_helmet" ] = 1;
|
||||||
|
n_player = player getentitynumber() + 1;
|
||||||
|
level setclientfield( "helmet_player" + n_player, 1 );
|
||||||
|
player playsoundtoplayer( "zmb_squest_golden_anything", player );
|
||||||
|
player maps/mp/zombies/_zm_stats::increment_client_stat( "tomb_golden_hard_hat", 0 );
|
||||||
|
player maps/mp/zombies/_zm_stats::increment_player_stat( "tomb_golden_hard_hat" );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
n_good_chance = 70;
|
||||||
|
}
|
||||||
|
n_prize_roll = randomint( 100 );
|
||||||
|
if ( n_prize_roll > n_good_chance )
|
||||||
|
{
|
||||||
|
if ( cointoss() )
|
||||||
|
{
|
||||||
|
player dig_reward_dialog( "dig_grenade" );
|
||||||
|
self thread dig_up_grenade( player );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
player dig_reward_dialog( "dig_zombie" );
|
||||||
|
self thread dig_up_zombie( player, s_dig_spot );
|
||||||
|
}
|
||||||
|
player.dig_vars[ "n_losing_streak" ]++;
|
||||||
|
}
|
||||||
|
else if ( cointoss() )
|
||||||
|
{
|
||||||
|
self thread dig_up_powerup( player );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
player dig_reward_dialog( "dig_zombie" );
|
player dig_reward_dialog( "dig_gun" );
|
||||||
self thread dig_up_zombie( player, s_dig_spot );
|
self thread dig_up_weapon( player );
|
||||||
}
|
}
|
||||||
player.dig_vars[ "n_losing_streak" ]++;
|
|
||||||
}
|
|
||||||
else if ( cointoss() )
|
|
||||||
{
|
|
||||||
self thread dig_up_powerup( player );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
player dig_reward_dialog( "dig_gun" );
|
|
||||||
self thread dig_up_weapon( player );
|
|
||||||
}
|
}
|
||||||
if ( !player.dig_vars[ "has_upgraded_shovel" ] )
|
if ( !player.dig_vars[ "has_upgraded_shovel" ] )
|
||||||
{
|
{
|
||||||
@ -414,16 +396,16 @@ waittill_dug( s_dig_spot )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dig_up_zombie( player, s_dig_spot )
|
dig_up_zombie( player, s_dig_spot ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
ai_zombie = spawn_zombie( level.dig_spawners[ 0 ] );
|
ai_zombie = spawn_zombie( level.dig_spawners[ 0 ] );
|
||||||
ai_zombie endon( "death" );
|
ai_zombie endon( "death" );
|
||||||
ai_zombie ghost();
|
ai_zombie ghost();
|
||||||
e_linker = spawn( "script_origin", ( 0, 0, -1 ) );
|
e_linker = spawn( "script_origin", ( 0, 0, 0 ) );
|
||||||
e_linker.origin = ai_zombie.origin;
|
e_linker.origin = ai_zombie.origin;
|
||||||
e_linker.angles = ai_zombie.angles;
|
e_linker.angles = ai_zombie.angles;
|
||||||
ai_zombie linkto( e_linker );
|
ai_zombie linkto( e_linker );
|
||||||
e_linker moveto( player.origin + vectorScale( ( 0, 0, -1 ), 100 ), 0,1 );
|
e_linker moveto( player.origin + vectorScale( ( 1, 1, 0 ), 100 ), 0,1 );
|
||||||
e_linker waittill( "movedone" );
|
e_linker waittill( "movedone" );
|
||||||
ai_zombie unlink();
|
ai_zombie unlink();
|
||||||
e_linker delete();
|
e_linker delete();
|
||||||
@ -431,17 +413,17 @@ dig_up_zombie( player, s_dig_spot )
|
|||||||
ai_zombie playsound( "evt_zombie_dig_dirt" );
|
ai_zombie playsound( "evt_zombie_dig_dirt" );
|
||||||
ai_zombie dug_zombie_rise( s_dig_spot );
|
ai_zombie dug_zombie_rise( s_dig_spot );
|
||||||
find_flesh_struct_string = "find_flesh";
|
find_flesh_struct_string = "find_flesh";
|
||||||
ai_zombie notify( "zombie_custom_think_done" );
|
ai_zombie notify( "zombie_custom_think_done", find_flesh_struct_string );
|
||||||
}
|
}
|
||||||
|
|
||||||
dig_up_powerup( player )
|
dig_up_powerup( player ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
powerup = spawn( "script_model", self.origin );
|
powerup = spawn( "script_model", self.origin );
|
||||||
powerup endon( "powerup_grabbed" );
|
powerup endon( "powerup_grabbed" );
|
||||||
powerup endon( "powerup_timedout" );
|
powerup endon( "powerup_timedout" );
|
||||||
a_rare_powerups = dig_get_rare_powerups( player );
|
a_rare_powerups = dig_get_rare_powerups( player );
|
||||||
powerup_item = undefined;
|
powerup_item = undefined;
|
||||||
if ( ( level.dig_n_powerups_spawned + level.powerup_drop_count ) > 4 && !level.dig_last_prize_rare || a_rare_powerups.size == 0 && randomint( 100 ) < 80 )
|
if ( ( level.dig_n_powerups_spawned + level.powerup_drop_count ) > 4 || level.dig_last_prize_rare || a_rare_powerups.size == 0 || randomint( 100 ) < 80 )
|
||||||
{
|
{
|
||||||
if ( level.dig_n_zombie_bloods_spawned < 1 && randomint( 100 ) > 70 )
|
if ( level.dig_n_zombie_bloods_spawned < 1 && randomint( 100 ) > 70 )
|
||||||
{
|
{
|
||||||
@ -466,14 +448,14 @@ dig_up_powerup( player )
|
|||||||
dig_set_powerup_spawned( powerup_item );
|
dig_set_powerup_spawned( powerup_item );
|
||||||
}
|
}
|
||||||
powerup maps/mp/zombies/_zm_powerups::powerup_setup( powerup_item );
|
powerup maps/mp/zombies/_zm_powerups::powerup_setup( powerup_item );
|
||||||
powerup movez( 40, 0,6 );
|
powerup movez( 40, 0.6 );
|
||||||
powerup waittill( "movedone" );
|
powerup waittill( "movedone" );
|
||||||
powerup thread maps/mp/zombies/_zm_powerups::powerup_timeout();
|
powerup thread maps/mp/zombies/_zm_powerups::powerup_timeout();
|
||||||
powerup thread maps/mp/zombies/_zm_powerups::powerup_wobble();
|
powerup thread maps/mp/zombies/_zm_powerups::powerup_wobble();
|
||||||
powerup thread maps/mp/zombies/_zm_powerups::powerup_grab();
|
powerup thread maps/mp/zombies/_zm_powerups::powerup_grab();
|
||||||
}
|
}
|
||||||
|
|
||||||
dig_get_rare_powerups( player )
|
dig_get_rare_powerups( player ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
a_rare_powerups = [];
|
a_rare_powerups = [];
|
||||||
a_possible_powerups = array( "nuke", "double_points" );
|
a_possible_powerups = array( "nuke", "double_points" );
|
||||||
@ -485,31 +467,27 @@ dig_get_rare_powerups( player )
|
|||||||
{
|
{
|
||||||
a_possible_powerups = combinearrays( a_possible_powerups, array( "insta_kill", "full_ammo" ) );
|
a_possible_powerups = combinearrays( a_possible_powerups, array( "insta_kill", "full_ammo" ) );
|
||||||
}
|
}
|
||||||
_a639 = a_possible_powerups;
|
foreach ( powerup in a_possible_powerups )
|
||||||
_k639 = getFirstArrayKey( _a639 );
|
|
||||||
while ( isDefined( _k639 ) )
|
|
||||||
{
|
{
|
||||||
powerup = _a639[ _k639 ];
|
|
||||||
if ( !dig_has_powerup_spawned( powerup ) )
|
if ( !dig_has_powerup_spawned( powerup ) )
|
||||||
{
|
{
|
||||||
a_rare_powerups[ a_rare_powerups.size ] = powerup;
|
a_rare_powerups[ a_rare_powerups.size ] = powerup;
|
||||||
}
|
}
|
||||||
_k639 = getNextArrayKey( _a639, _k639 );
|
|
||||||
}
|
}
|
||||||
return a_rare_powerups;
|
return a_rare_powerups;
|
||||||
}
|
}
|
||||||
|
|
||||||
dig_up_grenade( player )
|
dig_up_grenade( player ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
player endon( "disconnect" );
|
player endon( "disconnect" );
|
||||||
v_spawnpt = self.origin;
|
v_spawnpt = self.origin;
|
||||||
grenade = "frag_grenade_zm";
|
grenade = "frag_grenade_zm";
|
||||||
n_rand = randomintrange( 0, 4 );
|
n_rand = randomintrange( 0, 4 );
|
||||||
player magicgrenadetype( grenade, v_spawnpt, vectorScale( ( 0, 0, -1 ), 300 ), 3 );
|
player magicgrenadetype( grenade, v_spawnpt, vectorScale( ( 0, 0, 1 ), 300 ), 3 );
|
||||||
player playsound( "evt_grenade_digup" );
|
player playsound( "evt_grenade_digup" );
|
||||||
if ( n_rand )
|
if ( n_rand )
|
||||||
{
|
{
|
||||||
wait 0,3;
|
wait 0.3;
|
||||||
if ( cointoss() )
|
if ( cointoss() )
|
||||||
{
|
{
|
||||||
player magicgrenadetype( grenade, v_spawnpt, ( 50, 50, 300 ), 3 );
|
player magicgrenadetype( grenade, v_spawnpt, ( 50, 50, 300 ), 3 );
|
||||||
@ -517,7 +495,7 @@ dig_up_grenade( player )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dig_up_weapon( digger )
|
dig_up_weapon( digger ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
a_common_weapons = array( "ballista_zm", "c96_zm", "870mcs_zm" );
|
a_common_weapons = array( "ballista_zm", "c96_zm", "870mcs_zm" );
|
||||||
a_rare_weapons = array( "dsr50_zm", "srm1216_zm" );
|
a_rare_weapons = array( "dsr50_zm", "srm1216_zm" );
|
||||||
@ -535,20 +513,20 @@ dig_up_weapon( digger )
|
|||||||
str_weapon = a_rare_weapons[ getarraykeys( a_rare_weapons )[ randomint( getarraykeys( a_rare_weapons ).size ) ] ];
|
str_weapon = a_rare_weapons[ getarraykeys( a_rare_weapons )[ randomint( getarraykeys( a_rare_weapons ).size ) ] ];
|
||||||
}
|
}
|
||||||
v_spawnpt = self.origin + ( 0, 0, 40 );
|
v_spawnpt = self.origin + ( 0, 0, 40 );
|
||||||
v_spawnang = ( 0, 0, -1 );
|
v_spawnang = ( 0, 0, 0 );
|
||||||
str_spec_model = undefined;
|
str_spec_model = undefined;
|
||||||
if ( str_weapon == "claymore_zm" )
|
if ( str_weapon == "claymore_zm" )
|
||||||
{
|
{
|
||||||
str_spec_model = "t6_wpn_claymore_world";
|
str_spec_model = "t6_wpn_claymore_world";
|
||||||
v_spawnang += vectorScale( ( 0, 0, -1 ), 90 );
|
v_spawnang += vectorScale( ( 0, 1, 0 ), 90 );
|
||||||
}
|
}
|
||||||
v_angles = digger getplayerangles();
|
v_angles = digger getplayerangles();
|
||||||
v_angles = ( 0, v_angles[ 1 ], 0 ) + vectorScale( ( 0, 0, -1 ), 90 ) + v_spawnang;
|
v_angles = ( 0, v_angles[ 1 ], 0 ) + vectorScale( ( 0, 1, 0 ), 90 ) + v_spawnang;
|
||||||
m_weapon = spawn_weapon_model( str_weapon, str_spec_model, v_spawnpt, v_angles );
|
m_weapon = spawn_weapon_model( str_weapon, str_spec_model, v_spawnpt, v_angles );
|
||||||
if ( str_weapon == "claymore_zm" )
|
if ( str_weapon == "claymore_zm" )
|
||||||
{
|
{
|
||||||
m_weapon setmodel( "t6_wpn_claymore_world" );
|
m_weapon setmodel( "t6_wpn_claymore_world" );
|
||||||
v_spawnang += vectorScale( ( 0, 0, -1 ), 90 );
|
v_spawnang += vectorScale( ( 0, 0, 1 ), 90 );
|
||||||
}
|
}
|
||||||
m_weapon.angles = v_angles;
|
m_weapon.angles = v_angles;
|
||||||
m_weapon playloopsound( "evt_weapon_digup" );
|
m_weapon playloopsound( "evt_weapon_digup" );
|
||||||
@ -576,7 +554,7 @@ dig_up_weapon( digger )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
swap_weapon( str_weapon, e_player )
|
swap_weapon( str_weapon, e_player ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
str_current_weapon = e_player getcurrentweapon();
|
str_current_weapon = e_player getcurrentweapon();
|
||||||
if ( str_weapon == "claymore_zm" )
|
if ( str_weapon == "claymore_zm" )
|
||||||
@ -607,7 +585,7 @@ swap_weapon( str_weapon, e_player )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
take_old_weapon_and_give_new( current_weapon, weapon )
|
take_old_weapon_and_give_new( current_weapon, weapon ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
a_weapons = self getweaponslistprimaries();
|
a_weapons = self getweaponslistprimaries();
|
||||||
if ( isDefined( a_weapons ) && a_weapons.size >= get_player_weapon_limit( self ) )
|
if ( isDefined( a_weapons ) && a_weapons.size >= get_player_weapon_limit( self ) )
|
||||||
@ -618,11 +596,11 @@ take_old_weapon_and_give_new( current_weapon, weapon )
|
|||||||
self switchtoweapon( weapon );
|
self switchtoweapon( weapon );
|
||||||
}
|
}
|
||||||
|
|
||||||
timer_til_despawn( v_float, n_dist )
|
timer_til_despawn( v_float, n_dist ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self endon( "weapon_grabbed" );
|
self endon( "weapon_grabbed" );
|
||||||
putbacktime = 12;
|
putbacktime = 12;
|
||||||
self movez( n_dist, putbacktime, putbacktime * 0,5 );
|
self movez( n_dist, putbacktime, putbacktime * 0.5 );
|
||||||
self waittill( "movedone" );
|
self waittill( "movedone" );
|
||||||
self notify( "dig_up_weapon_timed_out" );
|
self notify( "dig_up_weapon_timed_out" );
|
||||||
if ( isDefined( self.trigger ) )
|
if ( isDefined( self.trigger ) )
|
||||||
@ -636,7 +614,7 @@ timer_til_despawn( v_float, n_dist )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
get_player_perk_purchase_limit()
|
get_player_perk_purchase_limit() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( isDefined( self.player_perk_purchase_limit ) )
|
if ( isDefined( self.player_perk_purchase_limit ) )
|
||||||
{
|
{
|
||||||
@ -645,7 +623,7 @@ get_player_perk_purchase_limit()
|
|||||||
return level.perk_purchase_limit;
|
return level.perk_purchase_limit;
|
||||||
}
|
}
|
||||||
|
|
||||||
increment_player_perk_purchase_limit()
|
increment_player_perk_purchase_limit() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( !isDefined( self.player_perk_purchase_limit ) )
|
if ( !isDefined( self.player_perk_purchase_limit ) )
|
||||||
{
|
{
|
||||||
@ -657,12 +635,12 @@ increment_player_perk_purchase_limit()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ee_zombie_blood_dig()
|
ee_zombie_blood_dig() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
self endon( "disconnect" );
|
self endon( "disconnect" );
|
||||||
n_z_spots_found = 0;
|
n_z_spots_found = 0;
|
||||||
a_z_spots = getstructarray( "zombie_blood_dig_spot", "targetname" );
|
a_z_spots = getstructarray( "zombie_blood_dig_spot", "targetname" );
|
||||||
self.t_zombie_blood_dig = spawn( "trigger_radius_use", ( 0, 0, -1 ), 0, 100, 50 );
|
self.t_zombie_blood_dig = spawn( "trigger_radius_use", ( 0, 0, 0 ), 0, 100, 50 );
|
||||||
self.t_zombie_blood_dig.e_unique_player = self;
|
self.t_zombie_blood_dig.e_unique_player = self;
|
||||||
self.t_zombie_blood_dig triggerignoreteam();
|
self.t_zombie_blood_dig triggerignoreteam();
|
||||||
self.t_zombie_blood_dig setcursorhint( "HINT_NOICON" );
|
self.t_zombie_blood_dig setcursorhint( "HINT_NOICON" );
|
||||||
@ -672,22 +650,19 @@ ee_zombie_blood_dig()
|
|||||||
{
|
{
|
||||||
a_randomized = array_randomize( a_z_spots );
|
a_randomized = array_randomize( a_z_spots );
|
||||||
n_index = undefined;
|
n_index = undefined;
|
||||||
i = 0;
|
for ( i = 0; i < a_randomized.size; i++ )
|
||||||
while ( i < a_randomized.size )
|
|
||||||
{
|
{
|
||||||
if ( !isDefined( a_randomized[ i ].n_player ) )
|
if ( !isDefined( a_randomized[ i ].n_player ) )
|
||||||
{
|
{
|
||||||
n_index = i;
|
n_index = i;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
assert( isDefined( n_index ), "No more zombie blood dig spots. Add more to the map." );
|
assert( isDefined( n_index ), "No more zombie blood dig spots. Add more to the map." );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
s_z_spot = a_randomized[ n_index ];
|
s_z_spot = a_randomized[ n_index ];
|
||||||
s_z_spot.n_player = self getentitynumber();
|
s_z_spot.n_player = self getentitynumber();
|
||||||
s_z_spot create_zombie_blood_dig_spot( self );
|
s_z_spot create_zombie_blood_dig_spot( self );
|
||||||
@ -697,7 +672,7 @@ ee_zombie_blood_dig()
|
|||||||
self.t_zombie_blood_dig delete();
|
self.t_zombie_blood_dig delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
ee_zombie_blood_dig_disconnect_watch()
|
ee_zombie_blood_dig_disconnect_watch() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
self waittill( "disconnect" );
|
self waittill( "disconnect" );
|
||||||
if ( isDefined( self.t_zombie_blood_dig ) )
|
if ( isDefined( self.t_zombie_blood_dig ) )
|
||||||
@ -705,11 +680,8 @@ ee_zombie_blood_dig_disconnect_watch()
|
|||||||
self.t_zombie_blood_dig delete();
|
self.t_zombie_blood_dig delete();
|
||||||
}
|
}
|
||||||
a_z_spots = getstructarray( "zombie_blood_dig_spot", "targetname" );
|
a_z_spots = getstructarray( "zombie_blood_dig_spot", "targetname" );
|
||||||
_a917 = a_z_spots;
|
foreach ( s_pos in a_z_spots )
|
||||||
_k917 = getFirstArrayKey( _a917 );
|
|
||||||
while ( isDefined( _k917 ) )
|
|
||||||
{
|
{
|
||||||
s_pos = _a917[ _k917 ];
|
|
||||||
if ( isDefined( s_pos.n_player ) && s_pos.n_player == self getentitynumber() )
|
if ( isDefined( s_pos.n_player ) && s_pos.n_player == self getentitynumber() )
|
||||||
{
|
{
|
||||||
s_pos.n_player = undefined;
|
s_pos.n_player = undefined;
|
||||||
@ -718,11 +690,10 @@ ee_zombie_blood_dig_disconnect_watch()
|
|||||||
{
|
{
|
||||||
s_pos delete();
|
s_pos delete();
|
||||||
}
|
}
|
||||||
_k917 = getNextArrayKey( _a917, _k917 );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
create_zombie_blood_dig_spot( e_player )
|
create_zombie_blood_dig_spot( e_player ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
self.m_dig = spawn( "script_model", self.origin + vectorScale( ( 0, 0, -1 ), 40 ) );
|
self.m_dig = spawn( "script_model", self.origin + vectorScale( ( 0, 0, -1 ), 40 ) );
|
||||||
self.m_dig.angles = self.angles;
|
self.m_dig.angles = self.angles;
|
||||||
@ -731,17 +702,21 @@ create_zombie_blood_dig_spot( e_player )
|
|||||||
self.m_dig moveto( self.origin, 3, 0, 1 );
|
self.m_dig moveto( self.origin, 3, 0, 1 );
|
||||||
self.m_dig waittill( "movedone" );
|
self.m_dig waittill( "movedone" );
|
||||||
self.m_dig.e_unique_player = e_player;
|
self.m_dig.e_unique_player = e_player;
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
self thread puzzle_debug_position( "+", vectorScale( ( 0, 0, -1 ), 255 ), self.origin );
|
self thread puzzle_debug_position( "+", vectorScale( ( 0, 0, 1 ), 255 ), self.origin );
|
||||||
#/
|
#/
|
||||||
e_player.t_zombie_blood_dig.origin = self.origin + vectorScale( ( 0, 0, -1 ), 20 );
|
*/
|
||||||
|
e_player.t_zombie_blood_dig.origin = self.origin + vectorScale( ( 0, 0, 1 ), 20 );
|
||||||
e_player.t_zombie_blood_dig waittill_zombie_blood_dug( self );
|
e_player.t_zombie_blood_dig waittill_zombie_blood_dug( self );
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
self notify( "stop_debug_position" );
|
self notify( "stop_debug_position" );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
waittill_zombie_blood_dug( s_dig_spot )
|
waittill_zombie_blood_dug( s_dig_spot ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
self endon( "death" );
|
self endon( "death" );
|
||||||
while ( 1 )
|
while ( 1 )
|
||||||
@ -749,7 +724,7 @@ waittill_zombie_blood_dug( s_dig_spot )
|
|||||||
self waittill( "trigger", player );
|
self waittill( "trigger", player );
|
||||||
if ( isDefined( player.dig_vars[ "has_shovel" ] ) && player.dig_vars[ "has_shovel" ] )
|
if ( isDefined( player.dig_vars[ "has_shovel" ] ) && player.dig_vars[ "has_shovel" ] )
|
||||||
{
|
{
|
||||||
player.t_zombie_blood_dig.origin = ( 0, 0, -1 );
|
player.t_zombie_blood_dig.origin = ( 0, 0, 0 );
|
||||||
player playsound( "evt_dig" );
|
player playsound( "evt_dig" );
|
||||||
playfx( level._effect[ "digging" ], self.origin );
|
playfx( level._effect[ "digging" ], self.origin );
|
||||||
s_dig_spot.m_dig delete();
|
s_dig_spot.m_dig delete();
|
||||||
@ -759,11 +734,11 @@ waittill_zombie_blood_dug( s_dig_spot )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
spawn_perk_upgrade_bottle( v_origin, e_player )
|
spawn_perk_upgrade_bottle( v_origin, e_player ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
m_bottle = spawn( "script_model", v_origin + vectorScale( ( 0, 0, -1 ), 40 ) );
|
m_bottle = spawn( "script_model", v_origin + vectorScale( ( 0, 0, 1 ), 40 ) );
|
||||||
m_bottle setmodel( "zombie_pickup_perk_bottle" );
|
m_bottle setmodel( "zombie_pickup_perk_bottle" );
|
||||||
m_bottle.angles = vectorScale( ( 0, 0, -1 ), 10 );
|
m_bottle.angles = vectorScale( ( 1, 0, 0 ), 10 );
|
||||||
m_bottle setinvisibletoall();
|
m_bottle setinvisibletoall();
|
||||||
m_bottle setvisibletoplayer( e_player );
|
m_bottle setvisibletoplayer( e_player );
|
||||||
m_fx = spawn( "script_model", m_bottle.origin );
|
m_fx = spawn( "script_model", m_bottle.origin );
|
||||||
@ -775,7 +750,7 @@ spawn_perk_upgrade_bottle( v_origin, e_player )
|
|||||||
m_fx thread rotate_perk_upgrade_bottle();
|
m_fx thread rotate_perk_upgrade_bottle();
|
||||||
while ( isDefined( e_player ) && !e_player istouching( m_bottle ) )
|
while ( isDefined( e_player ) && !e_player istouching( m_bottle ) )
|
||||||
{
|
{
|
||||||
wait 0,05;
|
wait 0.05;
|
||||||
}
|
}
|
||||||
m_bottle delete();
|
m_bottle delete();
|
||||||
m_fx delete();
|
m_fx delete();
|
||||||
@ -787,7 +762,7 @@ spawn_perk_upgrade_bottle( v_origin, e_player )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rotate_perk_upgrade_bottle()
|
rotate_perk_upgrade_bottle() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self endon( "death" );
|
self endon( "death" );
|
||||||
while ( 1 )
|
while ( 1 )
|
||||||
@ -797,14 +772,14 @@ rotate_perk_upgrade_bottle()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bonus_points_powerup_override()
|
bonus_points_powerup_override() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
level thread maps/mp/zombies/_zm_audio_announcer::leaderdialog( "blood_money" );
|
level thread maps/mp/zombies/_zm_audio_announcer::leaderdialog( "blood_money" );
|
||||||
points = randomintrange( 1, 6 ) * 50;
|
points = randomintrange( 1, 6 ) * 50;
|
||||||
return points;
|
return points;
|
||||||
}
|
}
|
||||||
|
|
||||||
dig_powerups_tracking()
|
dig_powerups_tracking() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
level endon( "end_game" );
|
level endon( "end_game" );
|
||||||
level.dig_powerups_tracking = [];
|
level.dig_powerups_tracking = [];
|
||||||
@ -815,20 +790,16 @@ dig_powerups_tracking()
|
|||||||
while ( 1 )
|
while ( 1 )
|
||||||
{
|
{
|
||||||
level waittill( "end_of_round" );
|
level waittill( "end_of_round" );
|
||||||
_a1065 = level.dig_powerups_tracking;
|
foreach ( value in level.dig_powerups_tracking )
|
||||||
str_powerup = getFirstArrayKey( _a1065 );
|
|
||||||
while ( isDefined( str_powerup ) )
|
|
||||||
{
|
{
|
||||||
value = _a1065[ str_powerup ];
|
level.dig_powerups_tracking[ value ] = 0;
|
||||||
level.dig_powerups_tracking[ str_powerup ] = 0;
|
|
||||||
str_powerup = getNextArrayKey( _a1065, str_powerup );
|
|
||||||
}
|
}
|
||||||
level.dig_n_zombie_bloods_spawned = 0;
|
level.dig_n_zombie_bloods_spawned = 0;
|
||||||
level.dig_n_powerups_spawned = 0;
|
level.dig_n_powerups_spawned = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dig_has_powerup_spawned( str_powerup )
|
dig_has_powerup_spawned( str_powerup ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( !isDefined( level.dig_powerups_tracking[ str_powerup ] ) )
|
if ( !isDefined( level.dig_powerups_tracking[ str_powerup ] ) )
|
||||||
{
|
{
|
||||||
@ -837,13 +808,14 @@ dig_has_powerup_spawned( str_powerup )
|
|||||||
return level.dig_powerups_tracking[ str_powerup ];
|
return level.dig_powerups_tracking[ str_powerup ];
|
||||||
}
|
}
|
||||||
|
|
||||||
dig_set_powerup_spawned( str_powerup )
|
dig_set_powerup_spawned( str_powerup ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
level.dig_powerups_tracking[ str_powerup ] = 1;
|
level.dig_powerups_tracking[ str_powerup ] = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
setup_dig_devgui()
|
setup_dig_devgui() //dev call skipped
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
setdvar( "give_shovel", "off" );
|
setdvar( "give_shovel", "off" );
|
||||||
setdvar( "give_golden_shovel", "off" );
|
setdvar( "give_golden_shovel", "off" );
|
||||||
@ -865,10 +837,12 @@ setup_dig_devgui()
|
|||||||
adddebugcommand( "devgui_cmd "Zombies/Tomb:1/Weather:1/Clear:3" "force_weather_none on"\n" );
|
adddebugcommand( "devgui_cmd "Zombies/Tomb:1/Weather:1/Clear:3" "force_weather_none on"\n" );
|
||||||
level thread watch_devgui_dig();
|
level thread watch_devgui_dig();
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
watch_devgui_dig()
|
watch_devgui_dig() //dev call skipped
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
while ( 1 )
|
while ( 1 )
|
||||||
{
|
{
|
||||||
@ -1031,4 +1005,6 @@ watch_devgui_dig()
|
|||||||
wait 0,05;
|
wait 0,05;
|
||||||
#/
|
#/
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user