diff --git a/README.md b/README.md index 6b04b690..db431f63 100644 --- a/README.md +++ b/README.md @@ -246,7 +246,7 @@ * Stunning enemy players steals 10 points from them * Downing enemy players awards 5% of their current points * Landing on top of an enemy player downs them -* Added player kill feed +* Added kill feed (includes downs, revives, and bleedouts) * Added player kills on scoreboard * Announcer audio always plays * Last player alive audio only plays for the player who is alive instead of every player on the team diff --git a/scripts/zm/main/_zm_reimagined_zgrief.gsc b/scripts/zm/main/_zm_reimagined_zgrief.gsc index 100e31fb..0605793c 100644 --- a/scripts/zm/main/_zm_reimagined_zgrief.gsc +++ b/scripts/zm/main/_zm_reimagined_zgrief.gsc @@ -167,6 +167,7 @@ grief_onplayerconnect() self [[ level.givecustomcharacters ]](); self thread on_player_downed(); self thread on_player_bleedout(); + self thread on_player_revived(); self.killsconfirmed = 0; } @@ -197,15 +198,35 @@ on_player_bleedout() { self waittill( "bled_out" ); + self bleedout_feed(); level thread update_players_on_bleedout( self ); } } +on_player_revived() +{ + self endon( "disconnect" ); + + while(1) + { + self waittill( "player_revived", reviver ); + + self revive_feed( reviver ); + } +} + kill_feed() { if(isDefined(self.last_griefed_by)) { self.last_griefed_by.attacker.killsconfirmed++; + + // show weapon icon for impact damage + if(self.last_griefed_by.meansofdeath == "MOD_IMPACT") + { + self.last_griefed_by.meansofdeath = "MOD_UNKNOWN"; + } + obituary(self, self.last_griefed_by.attacker, self.last_griefed_by.weapon, self.last_griefed_by.meansofdeath); } else @@ -214,6 +235,19 @@ kill_feed() } } +bleedout_feed() +{ + obituary(self, self, "none", "MOD_CRUSH"); +} + +revive_feed(reviver) +{ + if(isDefined(reviver) && reviver != self) + { + obituary(self, reviver, level.revive_tool, "MOD_IMPACT"); + } +} + add_grief_downed_score() { if(isDefined(self.score_lost_when_downed) && isDefined(self.last_griefed_by) && is_player_valid(self.last_griefed_by.attacker)) @@ -957,12 +991,6 @@ stun_score_steal(attacker, score) store_player_damage_info(attacker, weapon, meansofdeath) { - // show weapon icon for impact damage - if(meansofdeath == "MOD_IMPACT") - { - meansofdeath = "MOD_UNKNOWN"; - } - self.last_griefed_by = spawnStruct(); self.last_griefed_by.attacker = attacker; self.last_griefed_by.weapon = weapon;