Loot when moving

This commit is contained in:
Yunfan Li
2024-02-08 01:37:53 +08:00
parent 9e78a0b36a
commit 01b04742b7
3 changed files with 67 additions and 62 deletions

View File

@@ -485,7 +485,7 @@ AiPlayerbot.PremadeSpecName.3.2 = surv pve
AiPlayerbot.PremadeSpecLink.3.2.60 =
AiPlayerbot.PremadeSpecLink.3.2.80 = -0053041-5000032500033330523134321331
# Rogue
AiPlayerbot.PremadeSpecName.4.0 = ass pve
AiPlayerbot.PremadeSpecName.4.0 = as pve
AiPlayerbot.PremadeSpecLink.4.0.60 =
AiPlayerbot.PremadeSpecLink.4.0.80 = 005323005350100520103331051-005005003-502
AiPlayerbot.PremadeSpecName.4.1 = combat pve

View File

@@ -84,6 +84,11 @@ bool OpenLootAction::DoLoot(LootObject& lootObject)
return true;
}
if (bot->isMoving())
{
bot->StopMoving();
}
if (creature)
{
SkillType skill = creature->GetCreatureTemplate()->GetRequiredLootSkill();

View File

@@ -48,58 +48,58 @@ class GenericPaladinStrategyActionNodeFactory : public NamedObjectFactory<Action
static ActionNode* blessing_of_sanctuary(PlayerbotAI* ai)
{
return new ActionNode ("blessing of sanctuary",
/*P*/ NULL,
/*A*/ NULL,
/*C*/ NULL);
/*P*/ nullptr,
/*A*/ nullptr,
/*C*/ nullptr);
}
static ActionNode* blessing_of_kings(PlayerbotAI* ai)
{
return new ActionNode ("blessing of kings",
/*P*/ NULL,
/*A*/ NULL,
/*C*/ NULL);
/*P*/ nullptr,
/*A*/ nullptr,
/*C*/ nullptr);
}
static ActionNode* blessing_of_wisdom(PlayerbotAI* ai)
{
return new ActionNode ("blessing of wisdom",
/*P*/ NULL,
/*A*/ NULL,
/*C*/ NULL);
/*P*/ nullptr,
/*A*/ nullptr,
/*C*/ nullptr);
}
static ActionNode* blessing_of_kings_on_party(PlayerbotAI* ai)
{
return new ActionNode ("blessing of kings on party",
/*P*/ NULL,
/*A*/ NULL,
/*C*/ NULL);
/*P*/ nullptr,
/*A*/ nullptr,
/*C*/ nullptr);
}
static ActionNode* blessing_of_wisdom_on_party(PlayerbotAI* ai)
{
return new ActionNode ("blessing of wisdom on party",
/*P*/ NULL,
/*A*/ NULL,
/*C*/ NULL);
/*P*/ nullptr,
/*A*/ nullptr,
/*C*/ nullptr);
}
static ActionNode* retribution_aura(PlayerbotAI* ai)
{
return new ActionNode ("retribution aura",
/*P*/ NULL,
/*P*/ nullptr,
/*A*/ NextAction::array(0, new NextAction("devotion aura"), NULL),
/*C*/ NULL);
/*C*/ nullptr);
}
static ActionNode* lay_on_hands(PlayerbotAI* ai)
{
return new ActionNode ("lay on hands",
/*P*/ NULL,
/*A*/ NULL, // NextAction::array(0, new NextAction("divine shield"), new NextAction("flash of light"), NULL),
/*C*/ NULL);
/*P*/ nullptr,
/*A*/ nullptr, // NextAction::array(0, new NextAction("divine shield"), new NextAction("flash of light"), NULL),
/*C*/ nullptr);
}
static ActionNode* lay_on_hands_on_party(PlayerbotAI* ai)
{
return new ActionNode ("lay on hands on party",
/*P*/ NULL,
/*A*/ NULL, // NextAction::array(0, new NextAction("flash of light"), NULL),
/*C*/ NULL);
/*P*/ nullptr,
/*A*/ nullptr, // NextAction::array(0, new NextAction("flash of light"), NULL),
/*C*/ nullptr);
}
// static ActionNode* seal_of_light(PlayerbotAI* ai)
// {
@@ -111,37 +111,37 @@ class GenericPaladinStrategyActionNodeFactory : public NamedObjectFactory<Action
static ActionNode* cleanse_poison(PlayerbotAI* ai)
{
return new ActionNode ("cleanse poison",
/*P*/ NULL,
/*P*/ nullptr,
/*A*/ NextAction::array(0, new NextAction("purify poison"), NULL),
/*C*/ NULL);
/*C*/ nullptr);
}
static ActionNode* cleanse_magic(PlayerbotAI* ai)
{
return new ActionNode ("cleanse magic",
/*P*/ NULL,
/*A*/ NULL,
/*C*/ NULL);
/*P*/ nullptr,
/*A*/ nullptr,
/*C*/ nullptr);
}
static ActionNode* cleanse_disease(PlayerbotAI* ai)
{
return new ActionNode ("cleanse disease",
/*P*/ NULL,
/*P*/ nullptr,
/*A*/ NextAction::array(0, new NextAction("purify disease"), NULL),
/*C*/ NULL);
/*C*/ nullptr);
}
static ActionNode* cleanse_poison_on_party(PlayerbotAI* ai)
{
return new ActionNode ("cleanse poison on party",
/*P*/ NULL,
/*P*/ nullptr,
/*A*/ NextAction::array(0, new NextAction("purify poison on party"), NULL),
/*C*/ NULL);
/*C*/ nullptr);
}
static ActionNode* cleanse_disease_on_party(PlayerbotAI* ai)
{
return new ActionNode ("cleanse disease on party",
/*P*/ NULL,
/*P*/ nullptr,
/*A*/ NextAction::array(0, new NextAction("purify disease on party"), NULL),
/*C*/ NULL);
/*C*/ nullptr);
}
// static ActionNode* seal_of_wisdom(PlayerbotAI* ai)
// {
@@ -153,86 +153,86 @@ class GenericPaladinStrategyActionNodeFactory : public NamedObjectFactory<Action
static ActionNode* seal_of_justice(PlayerbotAI* ai)
{
return new ActionNode ("seal of justice",
/*P*/ NULL,
/*P*/ nullptr,
/*A*/ NextAction::array(0, new NextAction("seal of righteousness"), NULL),
/*C*/ NULL);
/*C*/ nullptr);
}
static ActionNode* hand_of_reckoning(PlayerbotAI* ai)
{
return new ActionNode ("hand of reckoning",
/*P*/ NULL,
/*P*/ nullptr,
/*A*/ NextAction::array(0, new NextAction("righteous defense"), NULL),
/*C*/ NULL);
/*C*/ nullptr);
}
static ActionNode* righteous_defense(PlayerbotAI* ai)
{
return new ActionNode ("righteous defense",
/*P*/ NULL,
/*P*/ nullptr,
/*A*/ NextAction::array(0, new NextAction("avenger's shield"), NULL),
/*C*/ NULL);
/*C*/ nullptr);
}
static ActionNode* avengers_shield(PlayerbotAI* ai)
{
return new ActionNode ("avenger's shield",
/*P*/ NULL,
/*P*/ nullptr,
/*A*/ NextAction::array(0, new NextAction("judgement of wisdom"), NULL),
/*C*/ NULL);
/*C*/ nullptr);
}
static ActionNode* judgement_of_wisdom(PlayerbotAI* ai)
{
return new ActionNode ("judgement of wisdom",
/*P*/ NULL,
/*P*/ nullptr,
/*A*/ NextAction::array(0, new NextAction("judgement of light"), NULL),
/*C*/ NULL);
/*C*/ nullptr);
}
static ActionNode* judgement(PlayerbotAI* ai)
{
return new ActionNode ("judgement",
/*P*/ NULL,
/*A*/ NULL,
/*C*/ NULL);
/*P*/ nullptr,
/*A*/ nullptr,
/*C*/ nullptr);
}
static ActionNode* divine_shield(PlayerbotAI* ai)
{
return new ActionNode ("divine shield",
/*P*/ NULL,
/*P*/ nullptr,
/*A*/ NextAction::array(0, new NextAction("divine protection"), NULL),
/*C*/ NULL);
/*C*/ nullptr);
}
static ActionNode* flash_of_light(PlayerbotAI* ai)
{
return new ActionNode ("flash of light",
/*P*/ NULL,
/*P*/ nullptr,
/*A*/ NextAction::array(0, new NextAction("holy light"), NULL),
/*C*/ NULL);
/*C*/ nullptr);
}
static ActionNode* flash_of_light_on_party(PlayerbotAI* ai)
{
return new ActionNode ("flash of light on party",
/*P*/ NULL,
/*P*/ nullptr,
/*A*/ NextAction::array(0, new NextAction("holy light on party"), NULL),
/*C*/ NULL);
/*C*/ nullptr);
}
static ActionNode* holy_wrath(PlayerbotAI* ai)
{
return new ActionNode ("holy wrath",
/*P*/ NULL,
/*P*/ nullptr,
/*A*/ NextAction::array(0, new NextAction("consecration"), NULL),
/*C*/ NULL);
/*C*/ nullptr);
}
static ActionNode* hammer_of_wrath(PlayerbotAI* ai)
{
return new ActionNode ("hammer of wrath",
/*P*/ NULL,
/*A*/ NextAction::array(0, new NextAction("melee"), NULL),
/*C*/ NULL);
/*P*/ nullptr,
/*A*/ nullptr,
/*C*/ nullptr);
}
static ActionNode* seal_of_command(PlayerbotAI* ai)
{
return new ActionNode ("seal of command",
/*P*/ NULL,
/*P*/ nullptr,
/*A*/ NextAction::array(0, new NextAction("seal of righteousness"), NULL),
/*C*/ NULL);
/*C*/ nullptr);
}
};