691 Commits

Author SHA1 Message Date
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
NotCronky
a5e0e6f5cf
Update LfgActions.cpp (#1225) 2025-04-27 12:43:56 +02:00
kadeshar
96d9b346c1
Crash fix for teleport action (#1245)
* - Crash fix for teleport action

* - Revert logic
2025-04-27 12:39:14 +02:00
blinkysc
3d6f925cca
Revert "Add possible crash fix when summoning an invalid bot (#1125)"
This reverts commit 495269bfa06a42c2a65cd7562fd396668ddd627f.
2025-04-24 11:04:18 -05:00
Cryo81
07e4dec70d
Warning fix + ilvl function fix (#1210)
* 1 variable order warning fixed
70 unused variable warning fixed

* Fixed GetEquipGearScore function

---------

Co-authored-by: Julien MAS <julien.mas81@gmail.com>
2025-04-20 14:26:42 +08:00
EricksOliveira
27e3b802b7
Fix: Prevents bots from learning spells twice (#1211)
* Fix: Prevents bots from learning spells twice

Added bot->HasSpell() check before calling bot->learnSpell() to ensure the bot does not learn spells it already has.

This avoids redundant behavior, possible unnecessary logging, and inconsistencies in learning spells trained with SPELL_EFFECT_LEARN_SPELL.

* Possible fix
2025-04-18 23:04:35 +02:00
Paolo
7737f9ab72
Add additional trading options (#1186)
* Add addclass bots to trading list, differentiate between buying and selling.

* typos

* Try calling playerguid

* point IsAddclassBot to IsRandomBot

* typo

* Fix through IsAddClassbot

* Working Version

* Minor typos.
2025-04-17 11:52:14 +08:00
EricksOliveira
6ae96f19b9
Big update InviteToGroupAction.cpp (#1154)
* Group improvement: Bots will no longer auto-invite players who have DND enabled.

* Group fix: Bots will no longer invite self-bots to groups with dnd enabled.

* Invite fix: Bots will no longer invite DnD players from their guild.

* Guild group invite improvement: Lower level guildmembers may now invite higher level players to help them out.

* Crash fix: Bots inviting players into a group that are being teleported.

* Invite fix: Bots will no longer automatically convert to raid when inviting real players.

* Group fix: Bots now properly group up automatically again.

* Group fix: Bots no longer invite themselves to groups from the guild.

* Fix

* Fix build

* New Fix

* .

* ..
2025-04-11 23:42:29 +02:00
Yunfan Li
19447c3914
Enable new rpg strategy by default (#1192)
* Add RandomBotMinLevelChance

* Save mana only for healer

* Disable addclass dk for low level player

* Target selection and debuff cast with less players in group

* Change default rpg strategy and bots count in config

* Logs clean up

* Improve init=auto

* Remove login logs after initialization

* Rndbots stats for quest

* Prediction chase in reach combat

* Poor & Normal items ensurence for init=auto
2025-04-11 20:31:38 +08:00
Yunfan Li
0d19f298da
Loot packet fix (#1190) 2025-04-10 21:00:05 +08:00
kadeshar
fe519854a4
- Added skipping disperse tactic while bot is in stay stance (#1180) 2025-04-08 20:55:07 +08:00
Yunfan Li
3f52563ca7
Move LoadFromDB from player session to world session (#1173) 2025-04-08 20:54:51 +08:00
Yunfan Li
cd5b15ddc1
Fix keyring for low level bots (#1177) 2025-04-08 10:11:07 +08:00
Yunfan Li
2f3f8d565c
Make battleground join / arena join / loot money session packet (#1178)
* Make battleground / arena join session packet

* Loot money

* Avoid aoe crash
2025-04-08 10:11:03 +08:00
EricksOliveira
3d743ccab3
Crash fix: Bots now properly turn their corpse into bones when resurrected so they don't have a second corpse after dying and releasing again. (#1165) 2025-04-04 21:56:56 +08:00
EricksOliveira
7446d0b1d4
Summon improvement: Selfbot no longer complains about being unable to… (#1166)
* Summon improvement: Selfbot no longer complains about being unable to summon to itself.

* Fix build

* .
2025-04-04 21:56:22 +08:00
Yunfan Li
7676fd6427
Fix multithread issue on LFG and group leave (#1143) 2025-03-31 22:46:27 +08:00
EricksOliveira
3faa3c639a
This update adds null pointer checks and extra validations to the AttackAnythingAction::isUseful() method, preventing invalid accesses that could cause crashes. (#1135)
Checking bots and botAI before method calls.

Validating targets and confirming if they are still in the world (IsInWorld()).

Adding debug logs (LOG_DEBUG) to make it easier to identify issues.
2025-03-29 10:58:57 +01:00
EricksOliveira
ad8c42d81b
Crash fix: Bots inviting teleported players. (#1142) 2025-03-29 10:57:24 +01:00
Paolo
917c96a281
Add config option for RND bot trading. (#1132)
* Add config option for RNDbot trading.
2025-03-28 16:10:49 +01:00
EricksOliveira
495269bfa0
Add possible crash fix when summoning an invalid bot (#1125) 2025-03-28 16:08:40 +01:00
EricksOliveira
d2204d41e2
Fix crash in trade status action (#1123)
* Fix crash in trade status action
2025-03-28 16:08:05 +01:00
mostlynick3
50200584d1
Correct UseMeetingStoneAction to only apply on meeting stone portals 2025-03-28 16:01:09 +01:00
EricksOliveira
08b77acd8d
Chat: Fix index out of bounds crash in case verb_pos equals zero (#1115)
Prevents invalid accesses to the word[] array, preventing possible crashes.

Improves the message selection logic in bot chat.

Fixes an error in the switch-case structure, ensuring that all possible messages are used correctly.
2025-03-24 21:57:39 +08:00
avirar
c83cf0706a
ItemUsageValue: Handle items that create required items (#1091)
* Updated IsItemUsefulForQuest to handle items that create required quest items

* Debug output

* Removed unneeded botAI->

* Debug output in Calculate

* -> not .

* Comprehensive debug output for quest usage

* Corrected logic for lootable items when sync quest is enabled

* #include "LootObjectStack.h"

* Corrected call to IsItem

* Removed debug statements

* Reimplement ItemCount >= RequiredItemCount

* Modified CanLoot to loot all items when loot source is an item in their bags

* Set loot target when sending Open packet
2025-03-24 21:47:25 +08:00
SaW
28be2b13c3
Optimize Mountaction: Movement Logic with Early Return for Matching F… (#1099)
* Optimize Mountaction: Movement Logic with Early Return for Matching Forms or Speed

Added a missing check, so if both master and bot are in matching forms or master is mounted with corresponding speed, early return as there is nothing to do.

This improves logic, actions, and prevents some strange movement behavior when both master and bot already are in travel form.
2025-03-20 19:53:56 +01: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
SaW
4f43600e7a
Silence error if preferred mounts SQL table playerbots_preferred_mounts does not exist (#1062)
* Fix error spam if DB does not exist
2025-03-06 15:03:23 +01:00
avirar
f7f949eda4
Item Usage and Loot Roll (#1059)
* Better Disenchant and final AH usage

* CalculateRollVote instead of just needing on items allowed by StoreLootAction::IsLootAllowed
2025-03-06 13:39:33 +01:00
xSparky911x
92d63c7cbc
fix classbots autogear not working when altbots autogear turned off (#1060)
* fix classbots autogear not working when altbots autogear turned off
2025-03-06 13:31:46 +01:00
SaW
b9747fdd69
Reinstate cached preferred mounts (#1058) 2025-03-05 17:24:54 +01:00
SaW
bf22f20997
Fix: Bots not mounting in BG's anymore (#1056)
Bots didn't stop as they were supposed to, leading to some issues.
2025-03-04 13:42:41 +01:00
SaW
fe21dfe48e
Fix/Feature: Bots can use travel/flight Shapeshift where appropriate (#1042) 2025-03-03 15:10:35 +01:00
avirar
9edddc5b26
Hunter equip bug (#1050) 2025-03-03 15:09:47 +01:00
Yunfan Li
a3e305fbed
Improve XP rate config (#1035) 2025-02-28 01:05:08 +01:00
avirar
3a4e8e729b
Allow bots to enter all TBC dungeons (rep/keys/quest attunements) (#1014)
Update will allow any adequately leveled bot to queue for all random and specific TBC dungeons. Normal and Heroic modes that require attunement or keys will be accessible by bots.

InitReputation: Level 70+ Bots will receive Honored rank for all the required factions needed for Heroic keys to function. I've placed the calls to InitRep before InitMounts, I feel we can do something with that in the future. Randomised rep values might allow bots to obtain other mounts?
InitKeyring: All bots receive all non-rep required keys (Shattered Halls Key, Shadow Labyrinth Key, Key to the Arcatraz), and bots with the required rep (Honored) get the other keys.
InitAttunementQuests: Level 60+ bots complete the Caverns of Time and Magister's Terrace attunement quests.
Updated acore_playerbots SQL; playerbots_dungeon_suggestion_definition; max_level increased to 73 (from 70) for all TBC Heroics and Magister's Terrace nomal. Allows more level appropriate bots to join.
2025-02-26 15:55:16 +01:00
SaW
2766d553c7
Maintenance command to retain defined special spells (#1024)
fixes a bug that caused the maintenance command to have bots lose the special spells
2025-02-26 13:32:26 +01:00
Yunfan Li
95c2ba9105
Permission check and readability improvements (#997)
* AiFactory check by spell instead of level

* Ignore group security for guild invitation
2025-02-23 20:09:59 +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
e33c61e90a
Fixes on naxxramas heigan and thaddius (#994)
* Fix naxx thaddius

* Fix naxx heigan strats
2025-02-21 17:53:07 +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
SaW
6cb1599b52
CheckMountStateAction refactor Final (#960)
- Fix for the issue that bots occasionally moved awkward when mounted inside BG's
- Removed redundant mount data retrieval
- Removed redundant extra check on if carrying a flag (already covered in isUseful)
- Removed no longer necessary code
- Combined some conditions as having them separate made little sense anymore
- Moved checking carrying flag into the BG logic
2025-02-11 11:39:29 +01:00
SaW
308c0b437e
BattleGrounds: Refactor and Fix bots re-spawning when graveyard meanwhile gets lost (#937)
* Update ReleaseSpiritAction.cpp

* Update ReleaseSpiritAction.cpp

* Update ReleaseSpiritAction.cpp

* Update ReleaseSpiritAction.cpp

* Update ReleaseSpiritAction.h

* Update ReleaseSpiritAction.h

* Update ReleaseSpiritAction.cpp

* Update ReleaseSpiritAction.cpp

* Update ReleaseSpiritAction.cpp

* Refactor (#68)

* Refactored ReleaseSpiritAction.cpp

* Ref ReleaseSpiritAction.h

* Restore comment
2025-02-04 13:30:35 +01:00
SaW
f5a8b3017e
BattleGround: Fix bot's already cast (ranged) spells to be redirected to bot's ghost on death (#934)
* Update ReleaseSpiritAction.h - add bg_release_time

* Update ReleaseSpiritAction.cpp

* Update ReleaseSpiritAction.cpp - Move LOG_DEBUG

Correct LOG_DEBUG position.

* Reliable fix (#67)

Reliable fix

* Reduced wait time from 8 to 6 min

* Update comment
2025-02-02 01:39:57 +01:00
SaW
e07a9e194a
MSA Improvement Part 2 (#66) (#933)
Reduce iterations.
2025-02-01 20:23:25 +01:00
blinkysc
d770e0a9a0
fix(BotAI/BattleGrounds) Bots AI improved based around capture points (#927)
* Less Flag Derp

* Comments
2025-01-30 14:16:59 +01:00