From 7b59353817a98b1843acd3229d26066c2ffde511 Mon Sep 17 00:00:00 2001 From: Mario Date: Mon, 15 Apr 2013 20:33:57 +1000 Subject: [PATCH] Fix monsters taking damage when dead --- qcsrc/client/monsters.qc | 2 ++ qcsrc/server/command/cmd.qc | 2 +- qcsrc/server/monsters/lib/monsters.qc | 5 +++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/qcsrc/client/monsters.qc b/qcsrc/client/monsters.qc index 53292d28e..bc77b9c30 100644 --- a/qcsrc/client/monsters.qc +++ b/qcsrc/client/monsters.qc @@ -374,6 +374,8 @@ void ent_monster() monster_changeteam(); } + self.alpha = ReadByte(); + _tmp = ReadByte(); if(_tmp == 0 && self.health != 0) diff --git a/qcsrc/server/command/cmd.qc b/qcsrc/server/command/cmd.qc index 35bb12cbb..ada0dd800 100644 --- a/qcsrc/server/command/cmd.qc +++ b/qcsrc/server/command/cmd.qc @@ -292,7 +292,7 @@ void ClientCommand_mobspawn(float request, float argc) makevectors(self.v_angle); WarpZone_TraceLine(self.origin + self.view_ofs, self.origin + self.view_ofs + v_forward * 150, MOVE_NORMAL, self); - e = spawnmonster(tospawn, self, self, trace_endpos, FALSE, moveflag); + e = spawnmonster(tospawn, self, self, trace_endpos, TRUE, moveflag); if(mname) e.netname = strzone(mname); sprint(self, strcat("Spawned 1 ", tospawn, "\n")); diff --git a/qcsrc/server/monsters/lib/monsters.qc b/qcsrc/server/monsters/lib/monsters.qc index 6abddbb1f..b9a0df702 100644 --- a/qcsrc/server/monsters/lib/monsters.qc +++ b/qcsrc/server/monsters/lib/monsters.qc @@ -302,13 +302,14 @@ void Monster_Fade () self.pos1 = self.origin; self.pos2 = self.angles; } + self.event_damage = func_null; + self.takedamage = DAMAGE_NO; setorigin(self, self.pos1); self.angles = self.pos2; self.health = self.max_health; // TODO: check if resetting to max_health is wise here + self.SendFlags |= MSF_MOVE; return; } - self.think = SUB_Remove; - self.nextthink = time + 4; SUB_SetFade(self, time + 3, 1); } -- 2.39.2