]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Fix monsters attacking their owners in non-teamplay modes
authorMario <mario.mario@y7mail.com>
Thu, 29 Aug 2013 10:46:12 +0000 (20:46 +1000)
committerMario <mario.mario@y7mail.com>
Thu, 29 Aug 2013 10:46:12 +0000 (20:46 +1000)
qcsrc/common/monsters/lib/monsters.qc
qcsrc/common/monsters/monster/cerberus.qc

index af71727184a62198e1876c34fa93e41599242d33..4abf318dca1e89457a20563807f7578eb3b0792d 100644 (file)
@@ -86,9 +86,12 @@ float monster_isvalidtarget (entity targ, entity ent)
        if not(targ.vehicle_flags & VHF_ISVEHICLE) // vehicles dont count as alive?
        if(targ.deadflag != DEAD_NO || ent.deadflag != DEAD_NO || targ.health <= 0 || ent.health <= 0)
                return FALSE; // enemy/self is dead
-       
-       if(targ.monster_owner == ent || ent.monster_owner == targ)
-               return FALSE; // enemy owns us, or we own them
+               
+       if(ent.monster_owner == targ)
+               return FALSE; // don't attack our master
+               
+       if(targ.monster_owner == ent)
+               return FALSE; // don't attack our pet
        
        if not(targ.vehicle_flags & VHF_ISVEHICLE)
        if(targ.flags & FL_NOTARGET)
@@ -515,7 +518,9 @@ void monster_move(float runspeed, float walkspeed, float stopspeed, float manim_
        targ = monster_target;
        runspeed = monster_speed_run;
        walkspeed = monster_speed_walk;
-               
+       
+       if(teamplay)
+       if(autocvar_g_monsters_teams)
        if(IsDifferentTeam(self.monster_owner, self))
                self.monster_owner = world;
                
index afbf3aceda9d52d11b3a9826e3abb23e1cca40a0..689f04254cff4760d9abf9dcb7649aab6463b255 100644 (file)
@@ -57,6 +57,8 @@ void cerberus_checkowner()
 {
        if(time < self.cerberus_last_trace)
                return;
+       if(IS_PLAYER(self.monster_owner))
+               return; // don't check player masters
 
        if(vlen(self.origin - self.monster_owner.origin) > self.target_range)
                self.monster_owner = world;