mirror of
https://github.com/mod-playerbots/mod-playerbots
synced 2025-11-29 15:58:20 +08:00
[feat] Added the function to manually clear raids states of shared bot.
This commit is contained in:
@@ -2624,6 +2624,24 @@ void PlayerbotFactory::InitMounts()
|
||||
}
|
||||
}
|
||||
|
||||
void PlayerbotFactory::UnbindInstance(){
|
||||
Player* p = bot;
|
||||
ObjectGuid guid = p->GetGUID();
|
||||
|
||||
for (uint8 d = 0; d < MAX_DIFFICULTY; ++d)
|
||||
{
|
||||
std::vector<InstanceSave*> toUnbind;
|
||||
BoundInstancesMap const& m_boundInstances = sInstanceSaveMgr->PlayerGetBoundInstances(guid, Difficulty(d));
|
||||
for (BoundInstancesMap::const_iterator itr = m_boundInstances.begin(); itr != m_boundInstances.end(); ++itr)
|
||||
{
|
||||
InstanceSave* instanceSave = itr->second.save;
|
||||
toUnbind.push_back(instanceSave);
|
||||
}
|
||||
for (std::vector<InstanceSave*>::const_iterator itr = toUnbind.begin(); itr != toUnbind.end(); ++itr)
|
||||
sInstanceSaveMgr->PlayerUnbindInstance(guid, (*itr)->GetMapId(), (*itr)->GetDifficulty(), true, p);
|
||||
}
|
||||
}
|
||||
|
||||
void PlayerbotFactory::InitPotions()
|
||||
{
|
||||
uint32 effects[] = { SPELL_EFFECT_HEAL, SPELL_EFFECT_ENERGIZE };
|
||||
|
||||
@@ -136,6 +136,7 @@ class PlayerbotFactory
|
||||
void InitBags(bool destroyOld = true);
|
||||
void ApplyEnchantAndGemsNew(bool destoryOld = true);
|
||||
void InitInstanceQuests();
|
||||
void UnbindInstance();
|
||||
private:
|
||||
void Prepare();
|
||||
// void InitSecondEquipmentSet();
|
||||
|
||||
@@ -615,6 +615,14 @@ std::string const PlayerbotHolder::ProcessBotCommand(std::string const cmd, Obje
|
||||
return "ok, gear score limit: " + std::to_string(gs / (ITEM_QUALITY_EPIC + 1)) + "(for epic)";
|
||||
}
|
||||
}
|
||||
|
||||
if (cmd == "refresh=raid")
|
||||
{ // TODO: This function is not perfect yet. If you are already in a raid,
|
||||
// after the command is executed, the AI needs to go back online or exit the raid and re-enter.
|
||||
PlayerbotFactory factory(bot, bot->getLevel());
|
||||
factory.UnbindInstance();
|
||||
return "ok";
|
||||
}
|
||||
}
|
||||
|
||||
if (cmd == "levelup" || cmd == "level")
|
||||
|
||||
Reference in New Issue
Block a user