From: Mario Date: Wed, 5 Jun 2013 18:27:07 +0000 (+1000) Subject: Fix monsters not stopping when they reach their target X-Git-Tag: xonotic-v0.8.0~241^2^2~198 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=369a1bf51eb269eb5f1a05a74657d4b088586b06;p=xonotic%2Fxonotic-data.pk3dir.git Fix monsters not stopping when they reach their target --- diff --git a/qcsrc/server/monsters/lib/monsters.qc b/qcsrc/server/monsters/lib/monsters.qc index a0c335052..1a8cbb199 100644 --- a/qcsrc/server/monsters/lib/monsters.qc +++ b/qcsrc/server/monsters/lib/monsters.qc @@ -626,11 +626,11 @@ void monster_move(float runspeed, float walkspeed, float stopspeed, float manim_ if(self.state == MONSTER_STATE_ATTACK_MELEE) self.moveto = self.origin; - else + else if(self.enemy) self.moveto = self.moveto * 0.9 + ((self.origin + v_forward * 500) + randomvec() * 400) * 0.1; if(!(self.flags & FL_FLY || self.flags & FL_SWIM)) - self.moveto_z = self.origin_z + 64; + self.moveto_z = self.origin_z; float l = vlen(self.moveto - self.origin); float t1 = trace_path(self.origin+'0 0 10', self.moveto+'0 0 10'); @@ -652,22 +652,17 @@ void monster_move(float runspeed, float walkspeed, float stopspeed, float manim_ } else { - if(targ.target) - self.target2 = targ.target; - else if(targ.target2) - self.target2 = targ.target2; - else - { - movelib_beak_simple(stopspeed); - if(time > self.attack_finished_single) - if(time > self.pain_finished) - if (vlen(self.velocity) <= 30) - { - monsters_setframe(manim_idle); - if(self.state != MONSTER_STATE_ATTACK_MELEE && self.state != MONSTER_STATE_ATTACK_LEAP) - self.steerto = steerlib_attract2(self.moveto, 0.5, 500, 0.95); - } - } + entity e = find(world, targetname, self.target2); + if(e.target2) + self.target2 = e.target2; + else if(e.target) + self.target2 = e.target; + + movelib_beak_simple(stopspeed); + if(time > self.attack_finished_single) + if(time > self.pain_finished) + if (vlen(self.velocity) <= 30) + monsters_setframe(manim_idle); } if(self.enemy)