diff --git a/scripts/zm/replaced/_zm_game_module.gsc b/scripts/zm/replaced/_zm_game_module.gsc index 9faa686a..1c61b508 100644 --- a/scripts/zm/replaced/_zm_game_module.gsc +++ b/scripts/zm/replaced/_zm_game_module.gsc @@ -113,7 +113,10 @@ round_end(winner) team = "allies"; } - scripts\zm\zgrief\zgrief_reimagined::increment_score(team); + if (isDefined(level.increment_score_func)) + { + [[level.increment_score_func]](team); + } } players = get_players(); @@ -140,25 +143,29 @@ round_end(winner) level.round_number++; level thread maps\mp\zombies\_zm_audio_announcer::leaderdialog( "grief_restarted" ); - if(isDefined(winner)) + + if (isDefined(level.show_grief_hud_msg_func)) { - foreach(player in players) + if (isDefined(winner)) { - if(player.team == team) + foreach (player in players) { - player thread scripts\zm\zgrief\zgrief_reimagined::show_grief_hud_msg( "You won the round!" ); - } - else - { - player thread scripts\zm\zgrief\zgrief_reimagined::show_grief_hud_msg( "You lost the round!" ); + if (player.team == team) + { + player thread [[level.show_grief_hud_msg_func]]( "You won the round!" ); + } + else + { + player thread [[level.show_grief_hud_msg_func]]( "You lost the round!" ); + } } } - } - else - { - foreach(player in players) + else { - player thread scripts\zm\zgrief\zgrief_reimagined::show_grief_hud_msg( &"ZOMBIE_GRIEF_RESET" ); + foreach (player in players) + { + player thread [[level.show_grief_hud_msg_func]]( &"ZOMBIE_GRIEF_RESET" ); + } } } @@ -220,7 +227,10 @@ zombie_goto_round(target_round) level thread player_respawn_award(); - level thread scripts\zm\zgrief\zgrief_reimagined::round_start_wait(5); + if (isDefined(level.round_start_wait_func)) + { + level thread [[level.round_start_wait_func]](5); + } } player_respawn_award() diff --git a/scripts/zm/replaced/_zm_gametype.gsc b/scripts/zm/replaced/_zm_gametype.gsc index 493b5c39..e94b8c85 100644 --- a/scripts/zm/replaced/_zm_gametype.gsc +++ b/scripts/zm/replaced/_zm_gametype.gsc @@ -173,7 +173,7 @@ onplayerspawned() hide_gump_loading_for_hotjoiners() { - if(scripts\zm\zgrief\zgrief_reimagined::is_respawn_gamemode()) + if(isDefined(level.is_respawn_gamemode_func) && [[level.is_respawn_gamemode_func]]()) { return; } diff --git a/scripts/zm/replaced/_zm_powerups.gsc b/scripts/zm/replaced/_zm_powerups.gsc index c3a03bd6..628db9b3 100644 --- a/scripts/zm/replaced/_zm_powerups.gsc +++ b/scripts/zm/replaced/_zm_powerups.gsc @@ -240,7 +240,10 @@ nuke_powerup( drop_item, player_team ) } else if(players[i] maps\mp\zombies\_zm_laststand::player_is_in_laststand()) { - players[i] thread scripts\zm\zgrief\zgrief_reimagined::player_suicide(); + if (isDefined(level.player_suicide_func)) + { + players[i] thread [[level.player_suicide_func]](); + } } } } diff --git a/scripts/zm/replaced/zgrief.gsc b/scripts/zm/replaced/zgrief.gsc index 90b7606d..90aa0d5d 100644 --- a/scripts/zm/replaced/zgrief.gsc +++ b/scripts/zm/replaced/zgrief.gsc @@ -4,7 +4,7 @@ game_mode_spawn_player_logic() { - if(scripts\zm\zgrief\zgrief_reimagined::is_respawn_gamemode()) + if(isDefined(level.is_respawn_gamemode_func) && [[level.is_respawn_gamemode_func]]()) { return 0; } @@ -62,7 +62,7 @@ meat_stink_player( who ) if(level.scr_zm_ui_gametype_obj == "zmeat") { - level thread [[level.zgrief_meat_stink]](who); + level thread maps\mp\gametypes_zm\zgrief::meat_stink(who); return; } @@ -70,7 +70,7 @@ meat_stink_player( who ) players = get_players(); foreach ( player in players ) { - player thread [[level.zgrief_meat_stink_player_cleanup]](); + player thread maps\mp\gametypes_zm\zgrief::meat_stink_player_cleanup(); if ( player != who ) { player.ignoreme = 1; @@ -78,12 +78,12 @@ meat_stink_player( who ) print_meat_msg(player, who); } - who thread [[level.zgrief_meat_stink_player_create]](); + who thread maps\mp\gametypes_zm\zgrief::meat_stink_player_create(); who waittill_any_or_timeout( 30, "disconnect", "player_downed", "bled_out" ); players = get_players(); foreach ( player in players ) { - player thread [[level.zgrief_meat_stink_player_cleanup]](); + player thread maps\mp\gametypes_zm\zgrief::meat_stink_player_cleanup(); player.ignoreme = 0; } } diff --git a/scripts/zm/zgrief/zgrief_reimagined.gsc b/scripts/zm/zgrief/zgrief_reimagined.gsc index 85e17eb6..fa38c88a 100644 --- a/scripts/zm/zgrief/zgrief_reimagined.gsc +++ b/scripts/zm/zgrief/zgrief_reimagined.gsc @@ -9,6 +9,8 @@ #include scripts\zm\replaced\_zm_game_module; #include scripts\zm\replaced\_zm_gametype; #include scripts\zm\replaced\_zm_blockers; +#include scripts\zm\replaced\zgrief; +#include scripts\zm\replaced\zmeat; main() { @@ -18,12 +20,17 @@ main() } replaceFunc(maps\mp\zombies\_zm::getfreespawnpoint, scripts\zm\replaced\_zm::getfreespawnpoint); - replaceFunc(maps\mp\gametypes_zm\_zm_gametype::onspawnplayer, scripts\zm\replaced\_zm_gametype::onspawnplayer); - replaceFunc(maps\mp\gametypes_zm\_zm_gametype::onplayerspawned, scripts\zm\replaced\_zm_gametype::onplayerspawned); - replaceFunc(maps\mp\gametypes_zm\_zm_gametype::hide_gump_loading_for_hotjoiners, scripts\zm\replaced\_zm_gametype::hide_gump_loading_for_hotjoiners); replaceFunc(maps\mp\zombies\_zm_audio_announcer::playleaderdialogonplayer, scripts\zm\replaced\_zm_audio_announcer::playleaderdialogonplayer); replaceFunc(maps\mp\zombies\_zm_game_module::wait_for_team_death_and_round_end, scripts\zm\replaced\_zm_game_module::wait_for_team_death_and_round_end); replaceFunc(maps\mp\zombies\_zm_blockers::handle_post_board_repair_rewards, scripts\zm\replaced\_zm_blockers::handle_post_board_repair_rewards); + replaceFunc(maps\mp\gametypes_zm\_zm_gametype::onspawnplayer, scripts\zm\replaced\_zm_gametype::onspawnplayer); + replaceFunc(maps\mp\gametypes_zm\_zm_gametype::onplayerspawned, scripts\zm\replaced\_zm_gametype::onplayerspawned); + replaceFunc(maps\mp\gametypes_zm\_zm_gametype::hide_gump_loading_for_hotjoiners, scripts\zm\replaced\_zm_gametype::hide_gump_loading_for_hotjoiners); + replaceFunc(maps\mp\gametypes_zm\zgrief::meat_stink_on_ground, scripts\zm\replaced\zgrief::meat_stink_on_ground); + replaceFunc(maps\mp\gametypes_zm\zgrief::meat_stink_player, scripts\zm\replaced\zgrief::meat_stink_player); + replaceFunc(maps\mp\gametypes_zm\zmeat::item_meat_watch_trigger, scripts\zm\replaced\zmeat::item_meat_watch_trigger); + replaceFunc(maps\mp\gametypes_zm\zmeat::kick_meat_monitor, scripts\zm\replaced\zmeat::kick_meat_monitor); + replaceFunc(maps\mp\gametypes_zm\zmeat::last_stand_meat_nudge, scripts\zm\replaced\zmeat::last_stand_meat_nudge); } init() @@ -64,6 +71,12 @@ init() level.can_revive_game_module = ::can_revive; level._powerup_grab_check = ::powerup_can_player_grab; + level.is_respawn_gamemode_func = ::is_respawn_gamemode; + level.round_start_wait_func = ::round_start_wait; + level.increment_score_func = ::increment_score; + level.show_grief_hud_msg_func = ::show_grief_hud_msg; + level.player_suicide_func = ::player_suicide; + level thread round_start_wait(5, true); level thread remove_round_number(); level thread unlimited_zombies(); @@ -692,7 +705,7 @@ grief_onplayerconnect() self thread team_player_waypoint(); self thread headstomp_watcher(); self thread smoke_grenade_cluster_watcher(); - self thread [[level.zmeat_create_item_meat_watcher]](); + self thread maps\mp\gametypes_zm\zmeat::create_item_meat_watcher(); self.killsconfirmed = 0; if(level.scr_zm_ui_gametype_obj == "zgrief" || level.scr_zm_ui_gametype_obj == "zcontainment" || level.scr_zm_ui_gametype_obj == "zmeat") diff --git a/scripts/zm/zm_buried/zm_buried_reimagined.gsc b/scripts/zm/zm_buried/zm_buried_reimagined.gsc index 884e11b1..2d0929eb 100644 --- a/scripts/zm/zm_buried/zm_buried_reimagined.gsc +++ b/scripts/zm/zm_buried/zm_buried_reimagined.gsc @@ -10,8 +10,6 @@ #include scripts\zm\replaced\_zm_banking; #include scripts\zm\replaced\_zm_weapon_locker; #include scripts\zm\replaced\_zm_weap_slowgun; -#include scripts\zm\replaced\zgrief; -#include scripts\zm\replaced\zmeat; main() { @@ -32,11 +30,6 @@ main() replaceFunc(maps\mp\zombies\_zm_banking::bank_deposit_unitrigger, scripts\zm\replaced\_zm_banking::bank_deposit_unitrigger); replaceFunc(maps\mp\zombies\_zm_banking::bank_withdraw_unitrigger, scripts\zm\replaced\_zm_banking::bank_withdraw_unitrigger); replaceFunc(maps\mp\zombies\_zm_weapon_locker::triggerweaponslockerisvalidweaponpromptupdate, scripts\zm\replaced\_zm_weapon_locker::triggerweaponslockerisvalidweaponpromptupdate); - replaceFunc(maps\mp\gametypes_zm\zgrief::meat_stink_on_ground, scripts\zm\replaced\zgrief::meat_stink_on_ground); - replaceFunc(maps\mp\gametypes_zm\zgrief::meat_stink_player, scripts\zm\replaced\zgrief::meat_stink_player); - replaceFunc(maps\mp\gametypes_zm\zmeat::item_meat_watch_trigger, scripts\zm\replaced\zmeat::item_meat_watch_trigger); - replaceFunc(maps\mp\gametypes_zm\zmeat::kick_meat_monitor, scripts\zm\replaced\zmeat::kick_meat_monitor); - replaceFunc(maps\mp\gametypes_zm\zmeat::last_stand_meat_nudge, scripts\zm\replaced\zmeat::last_stand_meat_nudge); } init() @@ -44,10 +37,6 @@ init() level.zombie_init_done = ::zombie_init_done; level.special_weapon_magicbox_check = ::buried_special_weapon_magicbox_check; level._is_player_in_zombie_stink = maps\mp\zombies\_zm_perk_vulture::_is_player_in_zombie_stink; - level.zgrief_meat_stink = maps\mp\gametypes_zm\zgrief::meat_stink; - level.zgrief_meat_stink_player_create = maps\mp\gametypes_zm\zgrief::meat_stink_player_create; - level.zgrief_meat_stink_player_cleanup = maps\mp\gametypes_zm\zgrief::meat_stink_player_cleanup; - level.zmeat_create_item_meat_watcher = maps\mp\gametypes_zm\zmeat::create_item_meat_watcher; if(is_gametype_active("zgrief")) { diff --git a/scripts/zm/zm_prison/zm_prison_reimagined.gsc b/scripts/zm/zm_prison/zm_prison_reimagined.gsc index 871f80ff..b3974c0c 100644 --- a/scripts/zm/zm_prison/zm_prison_reimagined.gsc +++ b/scripts/zm/zm_prison/zm_prison_reimagined.gsc @@ -10,8 +10,6 @@ #include scripts\zm\replaced\_zm_craftables; #include scripts\zm\replaced\_zm_riotshield_prison; #include scripts\zm\replaced\_zm_weap_riotshield_prison; -#include scripts\zm\replaced\zgrief; -#include scripts\zm\replaced\zmeat; main() { @@ -27,11 +25,6 @@ main() replaceFunc(maps\mp\zombies\_zm_riotshield_prison::trackriotshield, scripts\zm\replaced\_zm_riotshield_prison::trackriotshield); replaceFunc(maps\mp\zombies\_zm_weap_riotshield_prison::init, scripts\zm\replaced\_zm_weap_riotshield_prison::init); replaceFunc(maps\mp\zombies\_zm_weap_riotshield_prison::player_damage_shield, scripts\zm\replaced\_zm_weap_riotshield_prison::player_damage_shield); - replaceFunc(maps\mp\gametypes_zm\zgrief::meat_stink_on_ground, scripts\zm\replaced\zgrief::meat_stink_on_ground); - replaceFunc(maps\mp\gametypes_zm\zgrief::meat_stink_player, scripts\zm\replaced\zgrief::meat_stink_player); - replaceFunc(maps\mp\gametypes_zm\zmeat::item_meat_watch_trigger, scripts\zm\replaced\zmeat::item_meat_watch_trigger); - replaceFunc(maps\mp\gametypes_zm\zmeat::kick_meat_monitor, scripts\zm\replaced\zmeat::kick_meat_monitor); - replaceFunc(maps\mp\gametypes_zm\zmeat::last_stand_meat_nudge, scripts\zm\replaced\zmeat::last_stand_meat_nudge); } init() @@ -41,10 +34,6 @@ init() level.zombie_init_done = ::zombie_init_done; level.special_weapon_magicbox_check = ::check_for_special_weapon_limit_exist; level.round_prestart_func = scripts\zm\replaced\_zm_afterlife::afterlife_start_zombie_logic; - level.zgrief_meat_stink = maps\mp\gametypes_zm\zgrief::meat_stink; - level.zgrief_meat_stink_player_create = maps\mp\gametypes_zm\zgrief::meat_stink_player_create; - level.zgrief_meat_stink_player_cleanup = maps\mp\gametypes_zm\zgrief::meat_stink_player_cleanup; - level.zmeat_create_item_meat_watcher = maps\mp\gametypes_zm\zmeat::create_item_meat_watcher; level.zombie_powerups["meat_stink"].model_name = "t6_wpn_zmb_severedhead_world"; diff --git a/scripts/zm/zm_transit/zm_transit_reimagined.gsc b/scripts/zm/zm_transit/zm_transit_reimagined.gsc index 421543db..ac0dd1f0 100644 --- a/scripts/zm/zm_transit/zm_transit_reimagined.gsc +++ b/scripts/zm/zm_transit/zm_transit_reimagined.gsc @@ -14,8 +14,6 @@ #include scripts\zm\replaced\_zm_equip_turret; #include scripts\zm\replaced\_zm_banking; #include scripts\zm\replaced\_zm_weapon_locker; -#include scripts\zm\replaced\zgrief; -#include scripts\zm\replaced\zmeat; main() { @@ -42,11 +40,6 @@ main() replaceFunc(maps\mp\zombies\_zm_banking::bank_deposit_unitrigger, scripts\zm\replaced\_zm_banking::bank_deposit_unitrigger); replaceFunc(maps\mp\zombies\_zm_banking::bank_withdraw_unitrigger, scripts\zm\replaced\_zm_banking::bank_withdraw_unitrigger); replaceFunc(maps\mp\zombies\_zm_weapon_locker::triggerweaponslockerisvalidweaponpromptupdate, scripts\zm\replaced\_zm_weapon_locker::triggerweaponslockerisvalidweaponpromptupdate); - replaceFunc(maps\mp\gametypes_zm\zgrief::meat_stink_on_ground, scripts\zm\replaced\zgrief::meat_stink_on_ground); - replaceFunc(maps\mp\gametypes_zm\zgrief::meat_stink_player, scripts\zm\replaced\zgrief::meat_stink_player); - replaceFunc(maps\mp\gametypes_zm\zmeat::item_meat_watch_trigger, scripts\zm\replaced\zmeat::item_meat_watch_trigger); - replaceFunc(maps\mp\gametypes_zm\zmeat::kick_meat_monitor, scripts\zm\replaced\zmeat::kick_meat_monitor); - replaceFunc(maps\mp\gametypes_zm\zmeat::last_stand_meat_nudge, scripts\zm\replaced\zmeat::last_stand_meat_nudge); include_weapons_grief(); } @@ -56,10 +49,6 @@ init() level.zombie_init_done = ::zombie_init_done; level.special_weapon_magicbox_check = ::transit_special_weapon_magicbox_check; level.grenade_safe_to_bounce = ::grenade_safe_to_bounce; - level.zgrief_meat_stink = maps\mp\gametypes_zm\zgrief::meat_stink; - level.zgrief_meat_stink_player_create = maps\mp\gametypes_zm\zgrief::meat_stink_player_create; - level.zgrief_meat_stink_player_cleanup = maps\mp\gametypes_zm\zgrief::meat_stink_player_cleanup; - level.zmeat_create_item_meat_watcher = maps\mp\gametypes_zm\zmeat::create_item_meat_watcher; screecher_spawner_changes(); zombie_spawn_location_changes();