Commit Graph

2041 Commits

Author SHA1 Message Date
blinkysc
17672bd5b5 Properly cleanup database with playerbot delete (#1027)
Properly cleanup appropriate databases when AiPlayerbot.DeleteRandomBotAccounts is set to 1
2025-02-26 19:19:11 +01:00
SaW
20a69db45a Githubactions - Cancel workflow fix (#1029)
Fix: Cancels the obsolete tasks as desired.
2025-02-26 18:57:31 +01:00
SaW
c697b81404 Githubactions - Cancel workflow on new commits in the same PR (#1028) 2025-02-26 16:44:44 +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
kadeshar
4968245471 - Fixed Hodir strategy bugs (#1015) 2025-02-24 20:11:29 +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
SaW
114eeb3b37 Fix chat and beautify server promo box (#1008)
* Fix chat and beautify server promo box
* Remove all unnecessary hooks

---------

Co-authored-by: sudlud <sudlud@users.noreply.github.com>
2025-02-23 13:29:19 +01:00
sudlud
326637c93b add enabled hook lists for performance improvement (#1004) 2025-02-22 23:38:26 +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
62e0235e73 Scripts and sessions update to align with acore (#987) 2025-02-22 12:08:53 +08:00
SaW
a44650c7f6 Include pvp as default non-combat strat for alt/class bots (#1001) 2025-02-22 10:59:18 +08: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
0a76fc1d5f Better tank target selection (#996) 2025-02-21 16:20:33 +01:00
SaW
419e96e5aa Revert expireActionTime (#991)
* Revert expireActionTime

* Revert expireActionTime

* Revert RemoveExpired

* Revert RemoveExpired

* Revert RemoveExpired

* Revert Action expiration
2025-02-21 11:32:00 +08:00
SaW
61333a02bf Avoid creating accounts if both maxRandom & ClassBots are set to zero (#984)
Fix for https://github.com/liyunfan1223/mod-playerbots/issues/978
2025-02-19 09:46:28 +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
6353c86b53 Change "Initializing guilds..." from INFO to DEBUG (#982)
To avoid it being needlessly spammed in the console.
2025-02-18 11:59:13 +01:00
kadeshar
050cc24e9c Hodir tactics (#977)
* - Added tactic for Hodir Biting Cold ability

* - Added tactic for Hodir Flash Freeze
- Modified tactic for Hodir Biting Cold
2025-02-17 22:22:46 +08:00
SaW
58a596a40e Only invoke InitGuild when randomBotGuildCount > 0 (#975)
* Only invoke InitGuild when randomBotGuildCount > 0

* Moved Random bot guild count/delete to more appropriate section of config.
2025-02-16 13:42:15 +01:00
kadeshar
6749a4257b - Added protection for unparsable data in worldposition contructor (#974) 2025-02-15 17:18:34 +01:00
SaW
624e48068e Autocalc Accounts - take rotation into account (#971)
* Takes bot rotation into account and adjust accordingly when enabled as it requires to be higher than MaxRandomBots to function properly.
* Correct default config to reflect that bots pool size for rotation should be higher than MaxRandomBots
* Revert space at start of all lines.
2025-02-14 23:31:26 +01:00
Revision
dfcfe46865 Replace tabs with spaces (#973) 2025-02-14 20:12:02 +01:00
Yunfan Li
49b046f36c Allow addclass bots that are not in a real guild (#970) 2025-02-14 18:45:17 +01:00
SaW
4793644a15 Auto calculate RandomBotAccountCount by default (#964)
* Remove RandomBotAccountCount requirement

* Remove RandomBotAccountCount

* Remove randomBotAccountCount

* Remove randomBotAccountCount

* Update playerbots.conf.dist

* Style

* Set RotationPoolSize to 20 to work with the bot amount defaults

* Update PlayerbotAIConfig.cpp: Sync with default config

* Set +1 where appropriate

* Acc patch (#73)

* Account for TBC
* Still made it possible to change manually if desired

* uint32 randomBotAccountCount;

* Update Playerbots.cpp
2025-02-14 22:03:53 +08:00
SaW
c2caf3c564 Re-instate random bots guilds (#969)
I believe this should have been enabled again at some point.
2025-02-14 21:48:10 +08:00
kadeshar
bf195efaea - Fixed loading WorldPosition from string to fix RTSC points loading (#965)
- Restored loading from playerbots_db_store
- Added deletion before saving to playerbots_db_store
2025-02-13 11:39:20 +01:00
Sascha
ab7acfbdfc edit to announcement (#967)
* German full translation

With the power of ChatGPT i translated all chatter texts into German locale.
Insterted the German texts into text_loc3.
Everything else should stay unchenged.

* forgot headline

* Edit to announcement

fits better into the AC MotD and looks much better
2025-02-13 11:37:36 +01:00
Yunfan Li
f10e3c0fb1 Add announcement on server initialization and character login (#963)
Add announcement on server initialization and character login.

For repack distribution and public server host, avoid unintentional violations of AGPLv3.0 license.
2025-02-12 17:06:18 +01: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
Sascha
d7b3843024 German full translation (#961)
* German full translation

With the power of ChatGPT i translated all chatter texts into German locale.
Insterted the German texts into text_loc3.
Everything else should stay unchenged.
2025-02-10 22:57:24 +01:00
Yunfan Li
2c224d3121 Add LimitTalentsExpansion config (#954) 2025-02-09 21:50:04 +08:00
kadeshar
08008a3155 Worldbuff startup fix (#951)
* - [Performance] Fixed world buff loading from config file

* - [Refactoring] Changed mathod name
2025-02-08 12:31:06 +01:00
Noscopezz
db33cecf36 ICC minor update (#950)
GS

Bots will mark mage with skull rti

Rotface

Fixed bots glitching thru walls and floors (added check if position is valid before moving)

PP

Bots will mark volatile ooze with skull rti now which will help them focus it and kill asap (usefull for heroic when both volatile ooze and gas cloud are present at the same time)

VDW

Added default group position in the middle of the room so that bots don't spread out too much, which will force them to focus supressers more

Fixed Boss healers not keeping themself alive when low on HP
2025-02-07 18:45:26 +01:00
Yunfan Li
14bdc0ec5a Always allow addclass bots login and init (#946)
* Change the way to check addclass bots and allow adding them by characters name

* Always addclass bots login and init

* Comments and message
2025-02-05 12:56:37 +08: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
Noscopezz
fb683b3846 ICC Sindragosa minor improve (#943)
* ICC PP WIP

WIP

* added mutated plague for PP

* BPC added (kinetic and boss targeting need to be done by player)

OT collects dark nucles, bots spread on vortex and other stuff they do ok on their own.
Tested only on 10NM, should work on 25NM

* Tank pos. correction

* BQL, ranged spread, link, flame, bite, tanking tested 10NM

to do (better fire spread, hc tacti, melee spread when in air)

* LDW improved

improved shadow logic, ranged spread for easier shadow handling

* dbs update, fixed teleporting

Bots should only go and teleport to the mage that is actually below zero now

* DBS ranged fix

Ranged should spread more quickly and freak out less

* Festergut && DBS

fixed ranged spread (both)
fixed spore logic (fester)

* Rotface fix

Improved big ooze tanking (static pos, todo kiting)
ooze explosion spread mechanic fix
ooze pool fix
Player needs to mark rotface with skull icon, oterwise bots try to attack oozes

* BQL fixed for 25nm

todo: better melee logic in air phase, better melee flame spread

* VDW, Sister Svalna, Sindy update

Sister Svalna, bots can pickup spears and throw at svalna when she has shield up

VDW added healer strats to use portal and heal boss (atm druids are for raid healing only, so use druide + any other healer, ideally player should be healer)
todo (focus on supressers, add healer rotations, atm they use quickest spell they can)

Sindragosa
Added tank boss manipulation (boss orientation and position)
bots detect (buffet, unchained magic and chilled to the bone and act accordingly)
bots detect frost beacon move to safe spot and los frost bombs around them, while dpsing tombs (todo stop dps if only one tomb is left, if we have frost bombs around, not a big deal atm since in nm they dont one shot)
Last phase bots los behind tomb to loose buffet, tanks swap when they have hi buffet count.
Player should tell bots with skull rti if they should kill tomb or focus boss.
todo (dynamic tomb los in last phase so that healers can see tank but also hide behind tomb to break los from boss)

Removed some debug messages, improved LM spike action (nearest bots also try to help kill it)

Improved Lady Deathwshiper shade action (only targeted bots will run away instead of every bot that is near it)

dbs improved tank switch

I recommend to use 3 healers (just to be safe) and 2 paladin tanks (warr seems to struggle with agro) in 10 man
25 man 6-7 healers (just to be safe) Since most of the bosses are about survival and not dps

* LK Update (doable)

LK added

Improved tank switching for all bosses

Fixed PP gas cloud kiting
Malleable goo todo (dont know how to detect it since its not object or npc) just summon ranged bots to safe position to bypass

BPC  fixed OT sometimes not tanking kele
kinectic bombs todo (for now player should take care of them)

Sindragosa fixed rare case when she is in air phase but tombs went to last phase position

LK
Bots can handle necrotic
Bots can handle adds
Bots should focus valkyre that actually grabbed someone (if unlucky and player just use attack command and summon bots to you if they are far away from you) if they grab bots you can either summon to make them useless or let bots cc them and do it legit way.

Defile should be watched by player and once it was cast just summon bots to you
Vile spirits for some reason go to the ground and get nuked by bots aoe spells so there is not much to be done

**Player needs to be alive the whole LK fight since you will have to watch out for frost spehers (sometimes bots ignore them), summon bots when defile is up and summon ranged bots if they get stuck near shambling or raging spirits since their aoe will wipe you)

all in all LK  is doable both 10 and 25nm, player needs to have knowledge of lk fight and needs to know how to use multibot addon and make macros for eg summoning or commanding groups of bots or individual bots)

Dont forget frost/shadow/nature resist auras in whole ICC since it will help alot

I have done whole icc 10 and 25 with 2 pala tanks, 2/5 heals and rest dps,  if you use +1 or +2 heals it should be easier (since I was testing I did close to 0 dmg in fights same with heals)

* fixed changes made by mistake

fix

* Malleable fix (simple spread mechanic)

Malleable mechanic added (simple spread for now)
Gas cloud fixed (Bots sometimes got stuck between puddle and kite location)

* Defile Update

Bots detect and avoid defile (they struggle to find a way back to the boss around it tho, use summon to help them)

Melee bots should be able to stand behind/to the flank of shambling/spirits

* GS fixed bots not returning to their ship for A and H

Bots will return back to ship after killing mage

* PP gas cloud kiting improved

PP gas cloud kiting improved

* BPC targeting fixed

Bots will mark valid prince with skull RTI now

* BQL added melee spread in air pahse

BQL added melee spread

* VDW healing rotation improved

Healers will now use strong heals and hots

* Fixed Necrotic Plague

Fixed issue with Necrotic where it would get dispelled too soon, or would not get dispelled at all

* LK Update

Refined defile logic
Added 3 points for ranged and melee in winter phase (east, west, south when facing throne)
fixed frost spheres targeting (hunter will focus them)
Atm bots will reset z axis if they fall underground or if they get teleported by lk
Better positioning in 1st phase

* 10HC update until PP

LK defile improved for 10nm (bots sometimes stood 2 close to defile until it grew few times)

Improved rotface for HC

PP remade for 10HC.
Gas cloud is now properly kited
Fixed a rare case of server crash when there were ooze and gas cloud alive at same time.
Bots will move around puddles according to its size now.
Bots that get unboud plague will simply move away from raid and die thus loosing it from raid.
Volatile ooze improved stacking.
Fixed ranged sometimes glitching thru walls when spreading out from other members.

10HC PP is now doable but its hard without summoning (summoning break gascloud and ooze targets so its easier to do). You need to watch boss so you dont phase 2 soon otherwise you will get 2x ooze and cloud which is almoust always a wipe. If abo is not played near perfection bots will struggle with oozes and gas clouds if they are not slowed on time. Always save energy to slow gas cloud since it will wipe the group if it reach its target.
Bots will sometimes stand in puddle, just command them to move and they will figure out what to do.

todo (proper malleable handling)

* Up until Sindy 10HC

BPC added shadow prison handling, bots stop moving if more than 12 stack, tanks more than 18
Improved spreading logic

VDW
fixed issue where bots in portal wold move at half speed compared to real player

* fixed accidental change

* LK 10HC update

Added Shadow trap logic
(if they stand in it, not a big deal since bots wont get yeeted only players will)
When harvest soul, only player will be in another dimension (you must survive)

**Sindy and LK can be done, but I must dissapoint purist, at my skill level I could not achieve to do HC without using summon or other "cheat" bot functions.

Other bosses are all doable now in 10hc

* ICC fixes GS, PP; BQL, SINDY

Minor fixes, bite action improved

* ICC improve Sindy

Bots will now choose non beacon position based on difficulty, 10/25

* ICC fixed missing A/H buff

Fixed missing ICC buff for A and H

Buff will only be present when logged on and in ICC, once any bot or player leave ICC the buff is gone to prevent abuse.

This will make ICC easier now and with recent DPS update and movement improvement bots will now actully do decent dps and even greater healing.

Ally buff
https://www.wowhead.com/wotlk/spell=73828/strength-of-wrynn

Horde buff
https://www.wowhead.com/wotlk/spell=73822/hellscreams-warsong

* revert last change

revert buff

* ICC improve Rotface

Bots will now mark Rotface with skull icon, which will make them focus boss instead of oozes automatically

* ICC Festergut 10 Man fix

There was a rare case in 10 Man when 2 tanks would get spores which made them both stack at melee spot. Now the code will check if any of the spored player is main tank, if it is, it will stay at melee and other spores will go at ranged spot since off tank doesn't really need to stand near main tank all the time.

* ICC BPC major update, fix and improve

Fixed main tank sometimes not tanking both bosses (vala and talda)

Improved marking of current prince

Empowered vortex: bots will now spread out when it is being cast, instead of always spreading(ranged). This will make melee also spread better now since bots will calculate and move to optimal positions.

Added Kinetic bomb handling.
Hunters will take care of bombs, if no hunter is present then any ranged dps will take care of kinetic bombs.

* ICC BQL/VDW major update + minor fixes/improvements

LDW improved spreading for ranged, tanks will move boss in the middle of the room now when shield is depleted which will make bots bug less around pillars

GS Assist tank will not teleport to enemy ship and will keep tanking adds on our ship now

DBS ranged spread improved (they will calcualte spot for each bot and stick with it reducing movment to minimum), fixed bug where in 25 man ranged bots would go behind walls, making them unable to dps boss, improved rune of blood tanking

Festergut ranged spread improved (they will calcualte spot for each bot and stick with it reducing movment to minimum)

BQL Melee spread improved, bite logic improved, added swarming shadows logic (not perfect but at least it wont be all over the room anymore), Tanks will properly handle blood mirror now

VDW boss and raid healers will be automatically assinged depening by number of healers(if more than 3 healers in group, 2 will focus on raid and others will heal boss, otherwise one healer will heal raid). Druid will be assigned to raid healing if no druid present then some other random heal class. Added rotations for druid healers if they end up healing the boss. Raid healers will not use portals anymore. Healers will come to the ground now after using portals (they were stuck in air)

* ICC LK minor update

PP

Removed pre stacking for ranged when volatile ooze spawn (they will kill it much faster now and only stack if someone actually gets targeted by ooze)

LK

Hunters will use trnaq shot to remove enrage from shamblings

Improved valkyr cc

Minimized ping-ponging during winter phase

* ICC minor Sindy improve

Reduced position tolerances and forced movement for beacon and non beacon positions which will make bots move to spot that they actually need to be at instead of randomly running to sindragosa or beaconed players.
2025-02-04 19:42:09 +08:00
Yunfan Li
9bbe183763 Improve random accounts creation (#942)
* Duplicate name check and improve name cache

* Sync wait for the first time creation of random bots
2025-02-03 16:39:45 +01:00
achyles222
1c2ec60e6b Added Frostfire spec for fire mage (#936) 2025-02-03 19:48:41 +08:00
Yunfan Li
fef67081ec Improve login and init permission for rndbots and addclass bots (#930)
* Improve login and init permission for rndbots and addclass-bots

* Add AllowAcountBots config

* Update config description
2025-02-03 19:46:49 +08: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
Noscopezz
6719d61ae0 ICC LK minor update (#931)
PP

Removed pre stacking for ranged when volatile ooze spawn (they will kill it much faster now and only stack if someone actually gets targeted by ooze)

LK

Hunters will use trnaq shot to remove enrage from shamblings

Improved valkyr cc

Minimized ping-ponging during winter phase
2025-01-31 17:48:33 +01:00
Atidote
a8a31a2e2f French full translation (#918) 2025-01-30 17:09:03 +01:00
Noscopezz
bdf8c6cc14 ICC BQL/VDW major update + minor fixes/improvements (#929)
LDW
Improved spreading for ranged, tanks will move boss in the middle of the room now when shield is depleted which will make bots bug less around pillars

GS
Assist tank will not teleport to enemy ship and will keep tanking adds on our ship now

DBS
Ranged spread improved (they will calcualte spot for each bot and stick with it reducing movment to minimum), fixed bug where in 25 man ranged bots would go behind walls, making them unable to dps boss, improved rune of blood tanking

Festergut
Ranged spread improved (they will calcualte spot for each bot and stick with it reducing movment to minimum)

BQL
Melee spread improved, bite logic improved, added swarming shadows logic (not perfect but at least it wont be all over the room anymore), Tanks will properly handle blood mirror now

VDW
Boss and raid healers will be automatically assinged depening by number of healers(if more than 3 healers in group, 2 will focus on raid and others will heal boss, otherwise one healer will heal raid).
Druids will be assigned to raid healing if no druid present then some other random heal class.
Added rotations for druid healers if they end up healing the boss.
Raid healers will not use portals anymore.
Healers will come to the ground now after using portals (they were stuck in air)
2025-01-30 17:07:01 +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
avirar
27b86f8b1f Eye of the Storm changes (#924)
* EoTS: Changed FC logic to use MoveNear while not in combat

Similar to WSG commit from a few days ago

* Changed action priorities in EotS to ACTION_MOVE + x

* Adjusted EotS flag carrier objective selection

Random chance reduced from 1/2 to 1/3
Distance threshold before objective switch is considered reduced to 15.0yds
2025-01-30 14:16:34 +01: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