Something I also didn't really like when playing with my bots.
If I want them to change target while engaged I have to command them to guard then attack. Not efficient at all IMO.
If you add the line
botGroupMember->WipeHateList();
in the function:
void Bot::BotGroupOrderAttack(Group* group, Mob* target, Client* client)
like this:
Code:
if(botGroupMember->GetBotOwnerCharacterID() == client->CharacterID()) {
botGroupMember->WipeHateList();
botGroupMember->AddToHateList(target, 1);
It basically wipes the agro list and they will immediately attack what you tell them to