From 1c80d55a0e39c89f2bedb68415863f26da9fb652 Mon Sep 17 00:00:00 2001 From: Jbleezy Date: Thu, 30 Nov 2023 22:22:45 -0800 Subject: [PATCH] Race: gain 10 score when enemy players down Race: gain 10 score when Nuke powerup is grabbed Nuke: no longer counts as kills for player who grabbed it --- README.md | 9 +++-- scripts/zm/replaced/_zm_powerups.gsc | 11 ++++-- scripts/zm/zgrief/zgrief_reimagined.gsc | 48 ++++++++++++++++--------- 3 files changed, 47 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index eae72da9..0ad90a77 100644 --- a/README.md +++ b/README.md @@ -405,7 +405,6 @@ ### Nuke * Kills all zombies instantly -* Counts as kills for player who grabbed it ### Carpenter * Removed @@ -838,8 +837,12 @@ * Players respawn at initial spawn points #### Race -* Gain score by getting zombie kills -* Kill 500 zombies to win the game +* Gain score by getting zombie kills or getting enemy players down +* Gain 500 score to win the game +* Killing a zombie awards 1 score +* Killing a boss zombie awards 10 score +* Getting an enemy player down awards 10 score +* Grabbing a Nuke powerup awards 10 score * Players respawn after being down for 10 seconds * Players retain perks diff --git a/scripts/zm/replaced/_zm_powerups.gsc b/scripts/zm/replaced/_zm_powerups.gsc index 025be1db..a80da306 100644 --- a/scripts/zm/replaced/_zm_powerups.gsc +++ b/scripts/zm/replaced/_zm_powerups.gsc @@ -525,8 +525,7 @@ nuke_powerup( drop_item, player_team ) zombies_nuked[i] playsound( "evt_nuked" ); } - zombies_nuked[i].deathpoints_already_given = 1; - zombies_nuked[i] dodamage( zombies_nuked[i].health + 666, zombies_nuked[i].origin, player, player, "none", "MOD_UNKNOWN", 0, "none" ); + zombies_nuked[i] dodamage( zombies_nuked[i].health + 666, zombies_nuked[i].origin ); } players = get_players( player_team ); @@ -563,6 +562,14 @@ nuke_powerup( drop_item, player_team ) } } } + + if(level.scr_zm_ui_gametype_obj == "zrace") + { + if (isDefined(level.increment_score_func)) + { + [[level.increment_score_func]](player_team, 10, 1, "nuke_powerup"); + } + } } } diff --git a/scripts/zm/zgrief/zgrief_reimagined.gsc b/scripts/zm/zgrief/zgrief_reimagined.gsc index 14157b9b..baa21ed1 100644 --- a/scripts/zm/zgrief/zgrief_reimagined.gsc +++ b/scripts/zm/zgrief/zgrief_reimagined.gsc @@ -701,6 +701,11 @@ on_player_downed() self kill_feed(); self add_grief_downed_score(); level thread update_players_on_downed( self ); + + if(level.scr_zm_ui_gametype_obj == "zrace") + { + increment_score(getOtherTeam(self.team), 10, 1, "enemy_player"); + } } } @@ -1226,7 +1231,7 @@ grief_intro_msg() { foreach (player in players) { - player thread show_grief_hud_msg( "Kill zombies to gain score!" ); + player thread show_grief_hud_msg( "Kill zombies or enemy players to gain score!" ); } } else if(level.scr_zm_ui_gametype_obj == "zcontainment") @@ -2369,12 +2374,14 @@ race_check_for_kills() self waittill("zom_kill", zombie); amount = 1; + special_score = undefined; if (is_true(zombie.is_brutus)) { amount = 10; + special_score = "boss_zombie"; } - increment_score(self.team, amount); + increment_score(self.team, amount, 1, special_score); } } @@ -3149,7 +3156,7 @@ powerup_can_player_grab(player) return true; } -increment_score(team, amount = 1, show_lead_msg = true) +increment_score(team, amount = 1, show_lead_msg = true, special_score) { level endon("end_game"); @@ -3197,14 +3204,29 @@ increment_score(team, amount = 1, show_lead_msg = true) } } - if(level.scr_zm_ui_gametype_obj == "zrace") + if (level.scr_zm_ui_gametype_obj == "zrace") { - if (score_left % 50 == 0) + if (isDefined(special_score)) { - players = get_players(team); - foreach(player in players) + msg = ""; + + if (special_score == "enemy_player") { - player thread show_grief_hud_msg(&"ZOMBIE_RACE_ZOMBIES_LEFT", score_left); + msg = "Enemy Down! [" + amount + " Score]"; + } + else if (special_score == "boss_zombie") + { + msg = "Boss Killed! [" + amount + " Score]"; + } + else if (special_score == "nuke_powerup") + { + msg = "Nuke Grabbed! [" + amount + " Score]"; + } + + players = get_players(team); + foreach (player in players) + { + player thread show_grief_hud_msg(msg); } } } @@ -3215,22 +3237,16 @@ increment_score(team, amount = 1, show_lead_msg = true) { level.prev_leader = encounters_team; - delay = 0; - if (level.scr_zm_ui_gametype_obj == "zsnr" || level.scr_zm_ui_gametype_obj == "zgrief") - { - delay = 1; - } - players = get_players(); foreach (player in players) { if (player.team == team) { - player thread show_grief_hud_msg("Gained the lead!", undefined, 30, delay); + player thread show_grief_hud_msg("Gained the lead!", undefined, 30); } else { - player thread show_grief_hud_msg("Lost the lead!", undefined, 30, delay); + player thread show_grief_hud_msg("Lost the lead!", undefined, 30); } } }