View Single Post
  #4  
Old 12-30-2010, 08:16 AM
Derision
Developer
 
Join Date: Feb 2004
Location: UK
Posts: 1,540
Default

The crash appears to be due to the fact that when Mob::SetGrouped is called for a bot, it casts the Mob to a Client before calling Parser::Event, which is obviously not valid.

The quick fix would appear to be only call EVENT_GROUP_CHANGE for clients:
Code:
Index: mob.cpp
===================================================================
--- mob.cpp     (revision 1786)
+++ mob.cpp     (working copy)
@@ -4125,7 +4125,9 @@
                israidgrouped = false;
        }
        isgrouped = v;
-       parse->Event(EVENT_GROUP_CHANGE, 0, "", (NPC*)NULL, this->CastToClient());
+
+       if(IsClient())
+               parse->Event(EVENT_GROUP_CHANGE, 0, "", (NPC*)NULL, this);
 }

 void Mob::SetRaidGrouped(bool v)
@@ -4135,7 +4137,9 @@
                isgrouped = false;
        }
        israidgrouped = v;
-       parse->Event(EVENT_GROUP_CHANGE, 0, "", (NPC*)NULL, this->CastToClient());
+
+       if(IsClient())
+               parse->Event(EVENT_GROUP_CHANGE, 0, "", (NPC*)NULL, this);
 }

 sint16 Mob::GetCriticalChanceBonus(int16 skill, bool aa_bonus)
Reply With Quote