From: Mario Date: Mon, 15 Apr 2013 10:33:57 +0000 (+1000) Subject: Fix monsters taking damage when dead X-Git-Tag: xonotic-v0.8.0~241^2^2~388 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=7b59353817a98b1843acd3229d26066c2ffde511;p=xonotic%2Fxonotic-data.pk3dir.git Fix monsters taking damage when dead --- 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); }