diff --git a/src/server/NSGameRules.h b/src/server/NSGameRules.h index ac4d7bd6..df66e918 100644 --- a/src/server/NSGameRules.h +++ b/src/server/NSGameRules.h @@ -66,6 +66,8 @@ public: virtual void PlayerPain(NSClientPlayer, NSActor, NSDict); /** Overridable: Called to check if a NSClientPlayer can attack. */ virtual bool PlayerCanAttack(NSClientPlayer); + /** Overridable:: Called when an NPC gets killed. */ + virtual void NPCDeath(NSActor, NSActor, NSActor); /** Overridable: called when a NSClientPlayer requests a respawn. In a multiplayer game, it'll put you back into the game as a player. diff --git a/src/server/NSGameRules.qc b/src/server/NSGameRules.qc index 182db65e..2c92e675 100644 --- a/src/server/NSGameRules.qc +++ b/src/server/NSGameRules.qc @@ -128,6 +128,14 @@ NSGameRules::PlayerKill(NSClientPlayer pl) pl.Damage(pl, pl, damageDecl, 1.0, g_vec_null, pl.GetOrigin()); remove(damageDecl); } +void +NSGameRules::NPCDeath(NSActor npc, NSActor attacker, NSActor inflictor) +{ + if (RuleC_CallDamage(m_ruleProgs, npc, attacker, inflictor, "", "CodeCallback_NPCKilled")) { + return; + } +} + void NSGameRules::PlayerDeath(NSClientPlayer pl, NSActor attacker, NSDict damageDecl) {