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)