View Single Post
  #7  
Old 10-03-2008, 05:37 AM
Derision
Developer
 
Join Date: Feb 2004
Location: UK
Posts: 1,540
Default

A band aid to fix this problem seems to be:

Code:
Index: zone/mob.cpp
===================================================================
--- zone/mob.cpp        (revision 34)
+++ zone/mob.cpp        (working copy)
@@ -1927,8 +1927,9 @@
                        //                      cout << "Mobs currently Aggro: " << zone->MobsAggroCount() << endl;
                }
        }
-       if (GetTarget() == mob)
+       if (GetTarget() == mob && !this->IsClient())
                SetTarget(hate_list.GetTop(this));
+
        return bFound;
 }
 void Mob::WhipeHateList() {
@@ -2323,4 +2324,4 @@
                        val++;
        }
        return val;
-}
\ No newline at end of file
+}
The whole issue seems to be that a hate_list is maintained for the client. (attack something, FD, stand up, target self, #hatelist), and when a player kills a mob, Mob::RemoveFromHateList is called and a new target for the client is chosen from the top of it's hate list, which the patch above stops.

I'm not going to commit my 'band aid', as there may be a better solution regarding hate list management for a client (maybe just clear a client's hate list when he FDs).

Last edited by Derision; 10-03-2008 at 01:39 PM..
Reply With Quote