mirror of
https://github.com/mod-playerbots/mod-playerbots.git
synced 2026-01-17 18:55:41 +00:00
Merge pull request #486 from liyunfan1223/misc_0819
Improvement gear intialization & Disable ExtractAllItemIds for heavy regex
This commit is contained in:
@@ -88,7 +88,7 @@ bool AcceptQuestAction::Execute(Event event)
|
||||
std::stringstream ss;
|
||||
ss << "AcceptQuestAction {" << qInfo->GetTitle() << "} - {" << std::to_string(qInfo->GetQuestId()) << "}";
|
||||
LOG_INFO("playerbots", "{}", ss.str().c_str());
|
||||
botAI->TellMaster(ss.str());
|
||||
// botAI->TellMaster(ss.str());
|
||||
}
|
||||
|
||||
return hasAccept;
|
||||
|
||||
@@ -195,9 +195,9 @@ bool ChooseRpgTargetAction::Execute(Event event)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (possiblePlayers.size() > 200 || HasSameTarget(guidP, urand(5, 15), possiblePlayers))
|
||||
continue;
|
||||
|
||||
// if (possiblePlayers.size() > 200 || HasSameTarget(guidP, urand(5, 15), possiblePlayers))
|
||||
// continue;
|
||||
|
||||
float relevance = getMaxRelevance(guidP);
|
||||
|
||||
|
||||
@@ -205,20 +205,21 @@ void ChatReplyAction::ChatReplyDo(Player* bot, uint32& type, uint32& guid1, uint
|
||||
return;
|
||||
}
|
||||
|
||||
//toxic links
|
||||
if (msg.starts_with(sPlayerbotAIConfig->toxicLinksPrefix)
|
||||
&& (GET_PLAYERBOT_AI(bot)->GetChatHelper()->ExtractAllItemIds(msg).size() > 0 || GET_PLAYERBOT_AI(bot)->GetChatHelper()->ExtractAllQuestIds(msg).size() > 0))
|
||||
{
|
||||
HandleToxicLinksReply(bot, chatChannelSource, msg, name);
|
||||
return;
|
||||
}
|
||||
// Disable since ExtractAllItemIds bad performance
|
||||
// //toxic links
|
||||
// if (msg.starts_with(sPlayerbotAIConfig->toxicLinksPrefix)
|
||||
// && (GET_PLAYERBOT_AI(bot)->GetChatHelper()->ExtractAllItemIds(msg).size() > 0 || GET_PLAYERBOT_AI(bot)->GetChatHelper()->ExtractAllQuestIds(msg).size() > 0))
|
||||
// {
|
||||
// HandleToxicLinksReply(bot, chatChannelSource, msg, name);
|
||||
// return;
|
||||
// }
|
||||
|
||||
//thunderfury
|
||||
if (GET_PLAYERBOT_AI(bot)->GetChatHelper()->ExtractAllItemIds(msg).count(19019))
|
||||
{
|
||||
HandleThunderfuryReply(bot, chatChannelSource, msg, name);
|
||||
return;
|
||||
}
|
||||
// //thunderfury
|
||||
// if (GET_PLAYERBOT_AI(bot)->GetChatHelper()->ExtractAllItemIds(msg).count(19019))
|
||||
// {
|
||||
// HandleThunderfuryReply(bot, chatChannelSource, msg, name);
|
||||
// return;
|
||||
// }
|
||||
|
||||
auto messageRepy = GenerateReplyMessage(bot, msg, guid1, name);
|
||||
SendGeneralResponse(bot, chatChannelSource, messageRepy, name);
|
||||
@@ -316,6 +317,8 @@ bool ChatReplyAction::HandleToxicLinksReply(Player* bot, ChatChannelSource chatC
|
||||
}
|
||||
bool ChatReplyAction::HandleWTBItemsReply(Player* bot, ChatChannelSource chatChannelSource, std::string& msg, std::string& name)
|
||||
{
|
||||
// Disable since ExtractAllItemIds bad performance
|
||||
return false;
|
||||
auto messageItemIds = GET_PLAYERBOT_AI(bot)->GetChatHelper()->ExtractAllItemIds(msg);
|
||||
|
||||
if (messageItemIds.empty())
|
||||
@@ -409,6 +412,8 @@ bool ChatReplyAction::HandleWTBItemsReply(Player* bot, ChatChannelSource chatCha
|
||||
}
|
||||
bool ChatReplyAction::HandleLFGQuestsReply(Player* bot, ChatChannelSource chatChannelSource, std::string& msg, std::string& name)
|
||||
{
|
||||
// Disable since ExtractAllQuestIds bad performance
|
||||
return false;
|
||||
auto messageQuestIds = GET_PLAYERBOT_AI(bot)->GetChatHelper()->ExtractAllQuestIds(msg);
|
||||
|
||||
if (messageQuestIds.empty())
|
||||
|
||||
@@ -39,7 +39,7 @@ private:
|
||||
{
|
||||
return new ActionNode("seal of vengeance",
|
||||
/*P*/ nullptr,
|
||||
/*A*/ NextAction::array(0, new NextAction("seal of righteousness"), nullptr),
|
||||
/*A*/ NextAction::array(0, new NextAction("seal of command"), nullptr),
|
||||
/*C*/ nullptr);
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ private:
|
||||
{
|
||||
return new ActionNode("seal of command",
|
||||
/*P*/ nullptr,
|
||||
/*A*/ NextAction::array(0, new NextAction("seal of corruption"), nullptr),
|
||||
/*A*/ NextAction::array(0, new NextAction("seal of righteousness"), nullptr),
|
||||
/*C*/ nullptr);
|
||||
}
|
||||
|
||||
@@ -94,7 +94,7 @@ void DpsPaladinStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
|
||||
GenericPaladinStrategy::InitTriggers(triggers);
|
||||
|
||||
triggers.push_back(
|
||||
new TriggerNode("seal", NextAction::array(0, new NextAction("seal of command", ACTION_HIGH), NULL)));
|
||||
new TriggerNode("seal", NextAction::array(0, new NextAction("seal of corruption", ACTION_HIGH), NULL)));
|
||||
// triggers.push_back(new TriggerNode("seal", NextAction::array(0, new NextAction("seal of command", 90.0f),
|
||||
// nullptr)));
|
||||
triggers.push_back(
|
||||
|
||||
@@ -99,10 +99,11 @@ void DpsRogueStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
|
||||
"slice and dice", NextAction::array(0, new NextAction("slice and dice", ACTION_HIGH + 2), nullptr)));
|
||||
|
||||
triggers.push_back(new TriggerNode("combo points available",
|
||||
NextAction::array(0, new NextAction("rupture", ACTION_HIGH + 1), nullptr)));
|
||||
NextAction::array(0, new NextAction("rupture", ACTION_HIGH + 1),
|
||||
new NextAction("eviscerate", ACTION_HIGH), nullptr)));
|
||||
|
||||
triggers.push_back(new TriggerNode("target with combo points almost dead",
|
||||
NextAction::array(0, new NextAction("eviscerate", ACTION_HIGH + 1), nullptr)));
|
||||
NextAction::array(0, new NextAction("eviscerate", ACTION_HIGH + 2), nullptr)));
|
||||
|
||||
triggers.push_back(
|
||||
new TriggerNode("medium threat", NextAction::array(0, new NextAction("vanish", ACTION_HIGH), nullptr)));
|
||||
@@ -111,8 +112,8 @@ void DpsRogueStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
|
||||
new TriggerNode("low health", NextAction::array(0, new NextAction("evasion", ACTION_HIGH + 9),
|
||||
new NextAction("feint", ACTION_HIGH + 8), nullptr)));
|
||||
|
||||
triggers.push_back(
|
||||
new TriggerNode("critical health", NextAction::array(0, new NextAction("cloak of shadows", ACTION_HIGH + 7), nullptr)));
|
||||
triggers.push_back(new TriggerNode(
|
||||
"critical health", NextAction::array(0, new NextAction("cloak of shadows", ACTION_HIGH + 7), nullptr)));
|
||||
|
||||
triggers.push_back(
|
||||
new TriggerNode("kick", NextAction::array(0, new NextAction("kick", ACTION_INTERRUPT + 2), nullptr)));
|
||||
@@ -128,8 +129,8 @@ void DpsRogueStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
|
||||
triggers.push_back(
|
||||
new TriggerNode("light aoe", NextAction::array(0, new NextAction("blade flurry", ACTION_HIGH + 3), nullptr)));
|
||||
|
||||
triggers.push_back(
|
||||
new TriggerNode("blade flurry", NextAction::array(0, new NextAction("blade flurry", ACTION_HIGH + 2), nullptr)));
|
||||
triggers.push_back(new TriggerNode("blade flurry",
|
||||
NextAction::array(0, new NextAction("blade flurry", ACTION_HIGH + 2), nullptr)));
|
||||
|
||||
triggers.push_back(new TriggerNode(
|
||||
"enemy out of melee",
|
||||
|
||||
@@ -47,10 +47,13 @@ NextAction** CasterShamanStrategy::getDefaultActions()
|
||||
void CasterShamanStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
|
||||
{
|
||||
GenericShamanStrategy::InitTriggers(triggers);
|
||||
|
||||
|
||||
// triggers.push_back(new TriggerNode("enemy out of spell", NextAction::array(0, new NextAction("reach spell",
|
||||
// ACTION_NORMAL + 9), nullptr))); triggers.push_back(new TriggerNode("shaman weapon", NextAction::array(0, new
|
||||
// NextAction("flametongue weapon", 23.0f), nullptr)));
|
||||
triggers.push_back(new TriggerNode(
|
||||
"enough mana", NextAction::array(0, new NextAction("chain lightning", ACTION_DEFAULT + 0.1f), nullptr)));
|
||||
|
||||
triggers.push_back(new TriggerNode("main hand weapon no imbue",
|
||||
NextAction::array(0, new NextAction("flametongue weapon", 22.0f), nullptr)));
|
||||
// triggers.push_back(new TriggerNode("searing totem", NextAction::array(0, new NextAction("searing totem", 19.0f),
|
||||
@@ -64,10 +67,12 @@ void CasterShamanStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
|
||||
triggers.push_back(
|
||||
new TriggerNode("no fire totem", NextAction::array(0, new NextAction("totem of wrath", 15.0f), NULL)));
|
||||
|
||||
triggers.push_back(new TriggerNode("enemy is close",
|
||||
NextAction::array(0, new NextAction("thunderstorm", ACTION_HIGH + 1), nullptr)));
|
||||
triggers.push_back(
|
||||
new TriggerNode("medium mana", NextAction::array(0, new NextAction("thunderstorm", ACTION_HIGH + 1), nullptr)));
|
||||
|
||||
|
||||
triggers.push_back(new TriggerNode("enemy is close",
|
||||
NextAction::array(0, new NextAction("thunderstorm", ACTION_HIGH + 1), nullptr)));
|
||||
|
||||
triggers.push_back(new TriggerNode("enemy too close for spell",
|
||||
NextAction::array(0, new NextAction("flee", ACTION_MOVE + 9), nullptr)));
|
||||
|
||||
@@ -95,6 +95,9 @@ void MeleeShamanStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
|
||||
|
||||
triggers.push_back(
|
||||
new TriggerNode("medium mana", NextAction::array(0, new NextAction("shamanistic rage", 23.0f), nullptr)));
|
||||
|
||||
triggers.push_back(
|
||||
new TriggerNode("low health", NextAction::array(0, new NextAction("shamanistic rage", 23.0f), nullptr)));
|
||||
}
|
||||
|
||||
void MeleeAoeShamanStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
|
||||
|
||||
@@ -192,6 +192,9 @@ ItemUsage ItemUsageValue::QueryItemUsageForEquip(ItemTemplate const* itemProto)
|
||||
bool shouldEquip = false;
|
||||
// uint32 statWeight = sRandomItemMgr->GetLiveStatWeight(bot, itemProto->ItemId);
|
||||
StatsWeightCalculator calculator(bot);
|
||||
calculator.SetItemSetBonus(false);
|
||||
calculator.SetOverflowPenalty(false);
|
||||
|
||||
float itemScore = calculator.CalculateItem(itemProto->ItemId);
|
||||
if (itemScore)
|
||||
shouldEquip = true;
|
||||
|
||||
Reference in New Issue
Block a user