145 Commits

Author SHA1 Message Date
kadeshar
77c2354c3f
Yogg-Saron strategy (#1565)
* - wip

* - Added Yogg-Saron strategy

* - Added Yogg-Saron sanity strategy

* - WIP

* - WIP

* - WIP

* - WIP

* - Added Yogg-Saron strategy

* - code refactoring

* - Code fix after pr
2025-08-18 12:02:19 +02:00
ThePenguinMan96
ab345b8847 Changes requested
I fixed what was requested of me. Built it, tested it - all functions are working.
2025-08-04 17:55:29 -07:00
ThePenguinMan96
8545225923
Merge branch 'master' into Tame-Chat-Action-/-Pet-Chat-Action-(stances/commands) 2025-08-01 23:30:23 -07:00
Keleborn
a1dd6f6fc5
New roll for item action (#1482)
* New roll for item action

* Add general roll command as well.

* Update ChatCommandHandlerStrategy.cpp

Add accidental removal of glyph equip

---------

Co-authored-by: bash <31279994+hermensbas@users.noreply.github.com>
2025-08-01 21:44:52 +02:00
kadeshar
65a3bf481c
- Added generic boss shadow aura trigger and action (#1480)
- Added automatic aura for General Vezax and Yogg-Saron
- Added support for all rank for boss aura triggers
2025-08-01 21:31:44 +08:00
ThePenguinMan96
aa6f8153a1 Tame Chat Action / Pet Chat Action (stances/commands)
Hello everyone,

I am on a quest to make bot's pets completely functional, focuses on solving issues #1351 , #1230 , and #1137 . This PR achieves the following:

1. Changes the current "pet" chat command to "tame", which is more intuitive that only hunters can use it. The modes are "tame name (name)", "tame id (id)", "tame family (family)", "tame rename (new name)", and "tame abandon". Tame abandon is new - it simply abandons the current pet. Also, now, if you type in "tame family" by itself, it will list the available families. See pictures below for examples.
2. Added new "pet" chat command, with the following modes: "pet passive", "pet aggressive", "pet defensive", "pet stance" (shows current pet stance), "pet attack", "pet follow", and "pet stay". Previously, the pet's stance was not changeable, and there were some less than desired effects from summonable pets - see the issues above.
3. New config option: AiPlayerbot.DefaultPetStance, which changes the stance that all bot's pets are summoned as. This makes sure when feral spirits or treants are summoned by shamans and druids, they are immediately set to this configured stance. Set as 1 as default, which is defensive. (0 = Passive, 1 = Defensive, 2 = Aggressive)
4. New config option: AiPlayerbot.PetChatCommandDebug, which enables debug messages for the "pet" chat command. By default it is set to 0, which is disabled, but if you would like to see when pet's stances are changed, or when you tell the pet to attack/follow/stay, and when pet spells are auto-toggled, this is an option. I made this for myself mainly to test the command - if anyone notices any wierd pet behavior, this will be an option to help them report it as well.
5. Modified FollowActions to not constantly execute the petfollow action, overriding any stay or attack commands issued.
6. Modified GenericActions to have TogglePetSpellAutoCastAction optionally log when spells are toggled based on AiPlayerbot.PetChatCommandDebug.
7. Modified PetAttackAction to not attack if the pet is set to passive, and not override the pet's stance to passive every time it was executed.
8. Modified CombatStrategy.cpp to not constantly issue the petattack command, respecting the "pet stay" and "pet follow" commands. Pets will still automatically attack the enemy if set to aggressive or defensive.
9. Warlocks, Priests, Hunters, Shamans, Mages, Druids, and DKs (all classes that have summons): Added a "new pet" trigger that executes the "set pet stance" action. The "new pet" trigger happens only once, upon summoning a pet. It sets the pet's stance from AiPlayerbot.DefaultPetStance's value.
2025-08-01 01:18:16 -07:00
Alex Dcnh
2aca50c1c7
Update ChatTriggerContext.h 2025-07-26 19:28:58 +02:00
Alex Dcnh
00b03bd29d
Update ChatTriggerContext.h 2025-07-26 19:28:11 +02:00
Alex Dcnh
5108f709c7
Update ChatTriggerContext.h 2025-07-26 19:27:25 +02:00
Alex Dcnh
1e128ea24f
Update ChatTriggerContext.h 2025-07-26 19:26:38 +02:00
Alex Dcnh
e0ef04e1b9
Update ChatTriggerContext.h 2025-07-26 19:25:31 +02:00
Alex Dcnh
4c9e4e7b0f
Update ChatTriggerContext.h 2025-07-26 19:18:09 +02:00
Wishmaster117
55a37c48eb Add /w botname "glyphs" and "glyph equip" commands 2025-07-26 00:15:46 +02:00
Yunfan Li
4a00c954ed
RPG update travel flight status (#1445) 2025-07-23 23:37:41 +08:00
ThePenguinMan96
551c698e37
Hunter Pet Chat Command (#1448)
Hello everyone,

I was working with hunter bots and I feel like I didn't have enough control over their pets. So I started working on a chat command for the hunter pets, and it's been a blast. Below is a description of what the commands do:

pet name <name>
Summons a tameable pet by its creature name (case-insensitive).
The bot checks if the pet is exotic and requires the Beast Mastery talent if so.
If successful, the bot announces the pet's new name and creature ID.
If not found or not tameable, an error message is given.

pet id <id>
Summons a tameable pet by its database creature ID.
The same exotic pet checks apply.
Success is announced with the pet's name and ID.
Errors are given for invalid IDs or untameable pets.

pet family <family>
Randomly selects and summons a tameable pet from the specified family (e.g., "cat", "wolf").
Only families with tameable pets are considered.
Exotic pet checks and talent requirements apply.
Success is announced with the pet's name and ID.
Errors are given if no suitable pet is found.

pet rename <new name>
Renames the hunter's current summoned pet to a new name.
The name must be 1-12 alphabetic characters (A-Z, a-z) and is automatically formatted (first letter capitalized, rest lowercased).
Forbidden or reserved names are disallowed.
After renaming, the bot sets the new name, saves the pet, and updates the client.
The bot dismisses and attempts to recall the pet using "Call Pet" (if the hunter knows it) to update the UI.
If the new name isn't visible immediately, the bot instructs the player to dismiss and recall the pet manually.
Confirmation and guidance messages are provided.

Additional Details:
All commands display errors if requirements are not met (wrong name/id/family, forbidden name, lack of Beast Mastery, or hunter below level 10).
After changing or summoning a pet (except renaming), the bot initializes the pet and its talents, then announces the result.

TLDR:
pet name <name>	Summon a tameable pet by name
pet id <id>	Summon a tameable pet by database creature ID
pet family <family>	Randomly summon a tameable pet of the given family
pet rename <new name>	Rename the current pet and refresh its name in the client UI

Description of files changed:

src\strategy\actions\ChatActionContext.h: Added the "pet" action for the whisper command.

src\strategy\actions\PetAction.cpp: New chat actions for all things related to hunter pets.

src\strategy\actions\PetAction.h: New header for the PetAction.cpp.

src\strategy\generic\ChatCommandHandlerStrategy.cpp: Linked the trigger and action in the chatcommandhandlerstrategy, for the bot to take action when whispered "pet" (trigger).

src\strategy\triggers\ChatTriggerContext.h: Added the "pet" trigger.
2025-07-17 13:51:06 +02:00
kadeshar
761ef634da
- Fixed loot trigger to respect stay strategy (#1437) 2025-07-14 19:27:16 +02:00
kadeshar
8b9bcce3bc
Merge pull request #1418 from Boxhead78/bg-tactics-rewrite
Bots Bg Tactics rewrite (WSG, AB, AV, EYE)
2025-07-07 21:45:35 +02:00
kadeshar
305f769a84
- Added chat command to wipe group (#1408) 2025-07-04 23:14:07 +08:00
Boxhead78
605fa223ce Move GetBotStrategyForTeam from core 2025-07-03 09:39:54 +02:00
Boxhead78
309d177dd8 Battleground Rewrite
- Refactored BattleGroundTactics.cpp
- Bots choose strategies to determine if they are more aggressive or defensive in objectives
- Largely improved bots tactics in WSG, AB, AV and EY
- Improved how bots chase flag carriers
- Fixed some bots stuck in action loops - especially in WSG and AV
- Fixed several other Bugs
2025-07-03 08:25:55 +02:00
ThePenguinMan96
00cc2468f1
Warlock overhaul (#1397)
This is a complete overhaul of the warlock class, making 3 new strategies (affliction, demonology, and destruction), as well as finishing the warlock tank strategy (shadow ward and searing pain). It also includes a soulstone fix, where the bots can change who they soulstone based on the non-combat strategies you set for them. It also includes a self-resurrect action and trigger that allows the bots to resurrect using a soulstone or reincarnation. Many other skills were added to finish out the warlock skillset.
2025-06-27 20:00:38 +02:00
Brian
3c05e47cb2
CMaNGOS Playerbots "lfg" command implemented (#1291)
* CMaNGOS Playerbots "lfg" command implemented

* Remove logging, fix warning, add suggestion

- Remove LOG_INFO's console clutter, since 'lfg' command is working correctly now.
- Warning C26813 fixed for: placeholders["%role"] = (role == BOT_ROLE_TANK ? "tank" : (role == BOT_ROLE_HEALER ? "healer" : "dps"));
- Added suggestion to let bots do autogear & maintenance, so players can instantly start their dungeon or raid activities without manually having to configure the playerbots gear. It could save a lot of time. This is up to discussion for playerbots maintainers.
2025-06-01 15:31:29 +08:00
Yunfan Li
b726f3dfcb
Active loot roll (#1338) 2025-05-25 21:24:25 +08:00
kadeshar
d8436b8270
- Added generic boss aura triggers and actions (#1242)
- Added Freya strategy
- Added or updated aura resistance strategies for ulduar
2025-04-27 12:48:16 +02:00
kadeshar
3d6d454337
Stay strategy improvement (#1072)
* - Stay Strategy work in combat and with RTSC

* - Fixed summon with stay strategy

* - Added new stay strategy support for chat commands
2025-03-20 10:53:16 +01:00
avirar
c4a4d3a9e6
Rogue bots can unlock items in their bags and in the trade window (#1055) 2025-03-17 15:10:33 +01:00
Yunfan Li
38912d4a8a
Auto do quest feature (new rpg strategy) (#1034)
* New rpg startup speed up and refactor

* New rpg do quest

* Fix invalid height in quest poi

* Add quest accept and reward limitation

* New rpg quest improvement

* Organize quest log, reward quests and fix grind target

* Quest dropped statistic and remove redundant code

* Decrease grind relevance lower than loot

* Fix new rpg drop quest

* Go to reward quest instead of innkeeper when quest completed

* Fix incorrect logic in do quest reward

* Fix reset quests in factory

* Fix crash on grind target value

Co-authored-by: SaW <swerkhoven@outlook.com>

* Fix a minor error in DoCompletedQuest

* Let bots get rid of impossible quests faster

* Increase loot fluency (especially for caster)

* Remove seasonal quests from auto accept

* Enhance quest accept condition check

* Add questgiver check (limit acceptation of quest 7946)

* Questgiver check and localization

* Near npc fix

* Fix quest item report

* Add lowPriorityQuest set for quests can not be done

* Improve gameobjects loot

* Do complete quest

* FIx move far to teleport check

* Accept or reward quest from game objects

* Fix possible crash in rpg game objects

* Fix ChooseNpcOrGameObjectToInteract crash

---------

Co-authored-by: SaW <swerkhoven@outlook.com>
2025-03-14 21:31:33 +08:00
Yunfan Li
24efa7efa2
General improvement on init and strats (#1064)
* Potions strats and potions init

* Druid and shaman spell in low level

* Ammo init improvement

* Rogue low level

* Fix melee attack action (for caster with no mana)

* Disable pet spells that reduce dps

* Talents improvement

* Remove CanFreeMove check

* Reduce penalty for non-dagger weapon for rogue
2025-03-08 12:36:06 +01:00
avirar
9edddc5b26
Hunter equip bug (#1050) 2025-03-03 15:09:47 +01:00
SaW
a28e2bbb4b
Disable Hire command (#1003)
Not correctly implemented at this time, will cause crash and other issues, as it would change the bot to the requester's account.
2025-02-22 23:37:53 +01:00
Yunfan Li
4b1febc62a
Minor improvments on logs, stats weights and aoe distance calculation (#995)
* StatsCollector for paladin spell

* Remove error log on MoveFromGroup

* Log and timer for CreateRandomBots

* Improve aoe trigger distance calculation

* Reduce spirit weights for heal priest and paladin
2025-02-22 10:57:33 +08:00
avirar
a0278f1efb
Hunter ammo equip bug and other issues with BuyAction.cpp (#986)
Resolves #947

Equip logic was failing as projectiles were never returning ITEM_USAGE_EQUIP in ItemUsageValue.cpp, added two cases where equip is returned:

If no ammo is currently set
If new ammo has higher DPS than old/currently equipped ammo
While testing this using "b [itemlink]" and "b vendor" to purchase arrows I noticed some issues with BuyAction.cpp and have resolved them:

Bots will now perform the "equip upgrades" action for any bought item that has an equip usage
When using "b vendor" to buy all useful items from vendors within interaction distance, it now sorts the list of available items by calculated item score and buys the highest scoring item (if it is higher than the currently equipped item) for each slot. It should not buy multiple items for the same slot anymore, saving gold/emblems/etc.
"b vendor" will now only attempt to buy 1 of each item. Consumable and projectile item types can be bought up to 10 times per execution as long as it is still useful to buy the item in each iteration of the for loop. All items were following this behaviour previously and since the equip command was only given after the for loop it would buy 10 of an item before triggering it wasn't useful to buy more.
And finally, resolved issues where a bot runs out of ammo mid-fight:

Re-enabled combat and non-combat "no ammo" strategies to perform "equip upgrades" action.
Modified GenericTriggers.cpp; AmmoCountTrigger::IsActive to return true when the bot has ammo but it is not equipped yet.
2025-02-21 18:32:10 +01:00
Yunfan Li
bb729e35b9
Fix stuck on knockback, enhance movement & flee and trap weave strats (#980)
* Hunter trap weave strats

* Do not allow actions to stack

* Remove trap weave by default

* Refactor on Engine

Co-authored-by: SaW <swerkhoven@outlook.com>

* Remove unused funcs in Queue

* Remove ExpireActionTime config

---------

Co-authored-by: SaW <swerkhoven@outlook.com>
2025-02-18 22:55:44 +08:00
avirar
0c8785d8d1
Resolved issues with herb gathering (#926)
* Check game objects loot tables and determine if loot is valid

* Removed LOS checks since they already occur and removed enemy near node check

* Dismount if mounted, decresed interaction distance, added looting delay

* Decreased interaction distance

* oops, wrong file

* Check game objects loot tables and determine if loot is valid
2025-01-30 00:29:17 +01:00
Yunfan Li
bc33851189 Mage improvement (fire mage aoe) 2025-01-19 20:06:10 +08:00
kadeshar
e5f1b862dd
[Bugfix] (#809)
- reverted changes in need world buff trigger
2024-12-22 12:46:11 +01:00
Yunfan Li
e7416db7dc Modify file structure 2024-12-13 20:14:25 +08:00
Yunfan Li
6d82b134d1 Merge branch 'master' into new_rpg_strats 2024-12-06 20:39:51 +08:00
kadeshar
8c84026116
- added spec configuration for world buffs (#761)
- added world buffs to configuration file
- fixed NeedWorldBuffTrigger
2024-12-05 19:29:52 +01:00
Yunfan Li
dba84da6f3 [New Rpg] Implement GO_INNKEEPER and NEAR_NPC status 2024-12-02 00:35:23 +08:00
Yunfan Li
0fd894176b [New Rpg] New rpg start up (add GO_GRIND and NEAR_RANDOM status) 2024-11-30 23:48:29 +08:00
Yunfan Li
2583d3c58a [Core Sync] Add header file MMapFactory.h 2024-11-16 13:29:53 +08:00
Yunfan Li
21e17e163b [Spell] Healer spell enhancement 2024-10-04 20:48:29 +08:00
Yunfan Li
37c5c1dcdf [Spell] Fix alternative healing spell 2024-10-04 14:38:09 +08:00
Yunfan Li
a0dd00bba1 [Spell] Handle tree of life and assist dps 2024-10-04 14:14:16 +08:00
Yunfan Li
008d098eda [Assist Dps] Healer assist dps strats 2024-10-04 14:14:16 +08:00
avirar
c4d0f830a4
Update ChatTriggerContext.h
Added OpenItem chat command handling
2024-10-03 12:40:15 +10:00
Yunfan Li
b87ca9da4c Icecrown gunship strategy 2024-09-23 14:00:24 +08:00
Yunfan Li
f20d3aea6c Unholy dk 2024-09-06 20:29:56 +08:00
Yunfan Li
406949f6dd Misdirection and tricks of the trade 2024-09-04 20:08:44 +08:00