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()
|
void PlayerbotFactory::InitPotions()
|
||||||
{
|
{
|
||||||
uint32 effects[] = { SPELL_EFFECT_HEAL, SPELL_EFFECT_ENERGIZE };
|
uint32 effects[] = { SPELL_EFFECT_HEAL, SPELL_EFFECT_ENERGIZE };
|
||||||
|
|||||||
@@ -136,6 +136,7 @@ class PlayerbotFactory
|
|||||||
void InitBags(bool destroyOld = true);
|
void InitBags(bool destroyOld = true);
|
||||||
void ApplyEnchantAndGemsNew(bool destoryOld = true);
|
void ApplyEnchantAndGemsNew(bool destoryOld = true);
|
||||||
void InitInstanceQuests();
|
void InitInstanceQuests();
|
||||||
|
void UnbindInstance();
|
||||||
private:
|
private:
|
||||||
void Prepare();
|
void Prepare();
|
||||||
// void InitSecondEquipmentSet();
|
// 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)";
|
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")
|
if (cmd == "levelup" || cmd == "level")
|
||||||
|
|||||||
Reference in New Issue
Block a user