diff --git a/scripts/zm/_zm_reimagined.gsc b/scripts/zm/_zm_reimagined.gsc index a150a061..f626ed98 100644 --- a/scripts/zm/_zm_reimagined.gsc +++ b/scripts/zm/_zm_reimagined.gsc @@ -134,11 +134,6 @@ onplayerconnect() { level waittill("connecting", player); - if(isDefined(level.map_on_player_connect)) - { - player thread [[level.map_on_player_connect]](); - } - player thread onplayerspawned(); player thread onplayerdowned(); diff --git a/scripts/zm/replaced/zm_tomb_dig.gsc b/scripts/zm/replaced/zm_tomb_dig.gsc index fef08286..d53e167d 100644 --- a/scripts/zm/replaced/zm_tomb_dig.gsc +++ b/scripts/zm/replaced/zm_tomb_dig.gsc @@ -1,15 +1,64 @@ -#include maps\mp\_utility; #include common_scripts\utility; +#include maps\mp\_utility; #include maps\mp\zombies\_zm_utility; +#include maps\mp\zombies\_zm_unitrigger; +#include maps\mp\zm_tomb_utility; +#include maps\mp\zombies\_zm_audio; +#include maps\mp\zombies\_zm_audio_announcer; +#include maps\mp\zombies\_zm_zonemgr; +#include maps\mp\zombies\_zm_stats; +#include maps\mp\zm_tomb_main_quest; +#include maps\mp\zombies\_zm_powerups; +#include maps\mp\zombies\_zm_weap_claymore; +#include maps\mp\zombies\_zm_powerup_zombie_blood; +#include maps\mp\zm_tomb_dig; -increment_player_perk_purchase_limit() +init_shovel() { - self maps\mp\zombies\_zm_perks::give_random_perk(); + precachemodel( "p6_zm_tm_dig_mound" ); + precachemodel( "p6_zm_tm_dig_mound_blood" ); + precachemodel( "p6_zm_tm_shovel" ); + precachemodel( "zombie_pickup_perk_bottle" ); + precachemodel( "t6_wpn_claymore_world" ); + maps\mp\zombies\_zm_audio_announcer::createvox( "blood_money", "powerup_blood_money" ); + onplayerconnect_callback( ::init_shovel_player ); + + level.get_player_perk_purchase_limit = ::get_player_perk_purchase_limit; + level.bonus_points_powerup_override = ::bonus_points_powerup_override; + level thread dig_powerups_tracking(); + level thread dig_spots_init(); + registerclientfield( "world", "shovel_player1", 14000, 2, "int", undefined, 0 ); + registerclientfield( "world", "shovel_player2", 14000, 2, "int", undefined, 0 ); + registerclientfield( "world", "shovel_player3", 14000, 2, "int", undefined, 0 ); + registerclientfield( "world", "shovel_player4", 14000, 2, "int", undefined, 0 ); + registerclientfield( "world", "helmet_player1", 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_player4", 14000, 1, "int", undefined, 0 ); } -dig_disconnect_watch( n_player, v_origin, v_angles ) +init_shovel_player() +{ + self.dig_vars["has_shovel"] = 1; + self.dig_vars["has_upgraded_shovel"] = 0; + self.dig_vars["has_helmet"] = 0; + self.dig_vars["n_spots_dug"] = 0; + self.dig_vars["n_losing_streak"] = 0; + + n_player = self getentitynumber() + 1; + level setclientfield( "shovel_player" + n_player, 1 ); + + self thread dig_disconnect_watch( n_player ); +} + +dig_disconnect_watch( n_player ) { self waittill( "disconnect" ); level setclientfield( "shovel_player" + n_player, 0 ); level setclientfield( "helmet_player" + n_player, 0 ); +} + +increment_player_perk_purchase_limit() +{ + self maps\mp\zombies\_zm_perks::give_random_perk(); } \ No newline at end of file diff --git a/scripts/zm/zm_tomb/zm_tomb_reimagined.gsc b/scripts/zm/zm_tomb/zm_tomb_reimagined.gsc index f7b0bf13..223d2f5b 100644 --- a/scripts/zm/zm_tomb/zm_tomb_reimagined.gsc +++ b/scripts/zm/zm_tomb/zm_tomb_reimagined.gsc @@ -37,8 +37,8 @@ main() replaceFunc(maps\mp\zm_tomb_craftables::quadrotor_control_thread, scripts\zm\replaced\zm_tomb_craftables::quadrotor_control_thread); replaceFunc(maps\mp\zm_tomb_craftables::quadrotor_set_unavailable, scripts\zm\replaced\zm_tomb_craftables::quadrotor_set_unavailable); replaceFunc(maps\mp\zm_tomb_craftables::vinyl_add_pickup, scripts\zm\replaced\zm_tomb_craftables::vinyl_add_pickup); + replaceFunc(maps\mp\zm_tomb_dig::init_shovel, scripts\zm\replaced\zm_tomb_dig::init_shovel); replaceFunc(maps\mp\zm_tomb_dig::increment_player_perk_purchase_limit, scripts\zm\replaced\zm_tomb_dig::increment_player_perk_purchase_limit); - replaceFunc(maps\mp\zm_tomb_dig::dig_disconnect_watch, scripts\zm\replaced\zm_tomb_dig::dig_disconnect_watch); replaceFunc(maps\mp\zm_tomb_tank::players_on_tank_update, scripts\zm\replaced\zm_tomb_tank::players_on_tank_update); replaceFunc(maps\mp\zombies\_zm_ai_mechz::mechz_set_starting_health, scripts\zm\replaced\_zm_ai_mechz::mechz_set_starting_health); replaceFunc(maps\mp\zombies\_zm_craftables::choose_open_craftable, scripts\zm\replaced\_zm_craftables::choose_open_craftable); @@ -53,7 +53,6 @@ main() init() { - level.map_on_player_connect = ::on_player_connect; level.zombie_init_done = ::zombie_init_done; level.special_weapon_magicbox_check = ::tomb_special_weapon_magicbox_check; level.custom_magic_box_timer_til_despawn = ::custom_magic_box_timer_til_despawn; @@ -61,16 +60,10 @@ init() level.custom_craftable_validation = scripts\zm\replaced\zm_tomb_craftables::tomb_custom_craftable_validation; level thread increase_solo_door_prices(); - level thread remove_shovels_from_map(); level thread zombie_blood_dig_changes(); level thread updatecraftables(); } -on_player_connect() -{ - self thread give_shovel(); -} - zombie_init_done() { self.allowpain = 0; @@ -133,41 +126,6 @@ door_price_increase_for_solo() } } -remove_shovels_from_map() -{ - if(!(is_classic() && level.scr_zm_map_start_location == "tomb")) - { - return; - } - - flag_wait( "initial_blackscreen_passed" ); - - stubs = level._unitriggers.trigger_stubs; - for(i = 0; i < stubs.size; i++) - { - stub = stubs[i]; - if(IsDefined(stub.e_shovel)) - { - stub.e_shovel delete(); - maps\mp\zombies\_zm_unitrigger::unregister_unitrigger( stub ); - } - } -} - -give_shovel() -{ - if(!(is_classic() && level.scr_zm_map_start_location == "tomb")) - { - return; - } - - self waittill("spawned_player"); - - self.dig_vars[ "has_shovel" ] = 1; - n_player = self getentitynumber() + 1; - level setclientfield( "shovel_player" + n_player, 1 ); -} - zombie_blood_dig_changes() { if(!(is_classic() && level.scr_zm_map_start_location == "tomb"))