Commit Graph

170 Commits

Author SHA1 Message Date
bashermens
f5c84ee7ff server_crash_fix: OnPlayerGiveXP (#1929)
[fef0ed4072c8_worldserver.exe_.18-12_23-30-44.txt](https://github.com/user-attachments/files/24258638/fef0ed4072c8_worldserver.exe_.18-12_23-30-44.txt)

- Just added common logic and defense coding
- Optimized isRandombot while at it

Just for clarification i am aware the trigger of bug lies with the
progression mod. Regardless it should not happen.
2025-12-19 23:08:18 +01:00
Keleborn
52c3e96641 Rename groupmaster to groupleader and related variables. (#1875)
Fix the naming conventions. 
Master should be reserved to identify a bots Master. 
groupleaders are not necessarily group masters and it should be clear
what the bot is looking for. (In most solo cases leader=master)
2025-12-03 13:25:01 +01:00
nick
a37dd2b9ae Clarify random bot timing configuration section and parameter descriptions (#1826)
This update reorganizes and rewrites the random bot timing configuration
section for clarity and accuracy. The previous section was mislabeled as
"INTERVALS" and lacked precise descriptions. The new version:

1. Renames the header to RANDOM BOT TIMING AND BEHAVIOR
2. Adds concise, standardized comments for each parameter
3. Corrects misleading terminology (not all values are intervals)
4. Documents defaults and actual behavior clearly for easier tuning and
maintenance
5. No functional code changes — documentation and readability only.

Note, this is derived information from reading the code.
Please double check if I have captured each param accurately!
2025-11-11 09:21:13 +01:00
kadeshar
85c7009fe1 Codestyle fix (#1797)
Warning:
Dont change this PR as draft to make it testable


DONT REVIEW UNTIL Codestyle C++ workflow dont pass
2025-11-05 21:10:17 +01:00
kadeshar
5a0c27637e Merge pull request #1708 from hermensbas/feature/removeFromGroup_replaced_with_worldpackets
[fix crash] Crash on removeFromGroup
2025-10-10 19:59:21 +02:00
bash
31ed5cbb65 fixes 2025-10-09 20:52:32 +02:00
bash
cf4f0f6dc7 renamed function name 2025-10-06 21:07:43 +02:00
bash
780f6d60e0 fix build errors 2025-10-05 23:49:13 +02:00
bash
1faf20f567 removeFromGroup replaced with worldpackets 2025-10-05 20:05:56 +02:00
avirar
21ea3a7226 Merge branch 'liyunfan1223:master' into fix/remove-auras-before-teleport 2025-10-04 09:42:21 +10:00
bash
377ac199a7 Revert "Feat: Filter bot logins by level range" (#1705) 2025-10-03 22:58:30 +02:00
root
387c491265 fix(Playerbots): Remove auras before teleporting to prevent crash
Add RemoveAurasWithInterruptFlags call before all TeleportTo operations
to prevent race condition crash in battlegrounds.

The crash occurs when area auras (like "Entering Battleground") are
queued for removal in Aura::UpdateTargetMap's targetsToRemove list,
but the unit is deleted before the 500ms update cycle completes,
causing SIGSEGV when accessing the dangling pointer.

This fix removes auras with AURA_INTERRUPT_FLAG_TELEPORTED and
AURA_INTERRUPT_FLAG_CHANGE_MAP before teleporting, matching the
behavior in Player::TeleportTo for real players.

Affected locations:
- BattleGround join/teleport
- Spirit healer/graveyard teleport
- Corpse resurrection teleport
- Meeting stone teleport
- Master follow teleport
- RPG unstuck teleport
- Random bot teleport
- Chat command teleport

Raid-specific teleports excluded as they require separate testing.
2025-10-03 15:58:36 +10:00
kadeshar
1ea17e593a Merge pull request #1499 from NoxMax/login-range
Feat: Filter bot logins by level range
2025-10-01 17:42:39 +02:00
NoxMax
25726f54b1 Update RandomPlayerbotMgr.cpp 2025-10-01 13:16:00 +08:00
bash
0cc15411c1 license update (#1674) 2025-09-30 15:19:44 +02:00
bash
c8f32569a8 Merge branch 'master' into login-range 2025-09-28 00:27:05 +02:00
Revision
fcb956ec1b Removed unnecessary spaces 2025-09-19 22:43:50 +02:00
Revision
ace813516d Replaced tabs with spaces 2025-09-19 21:00:09 +02:00
crow
8586796cec Fix typo in RandomPlayerbotMgr.cpp 2025-09-16 13:54:02 -05:00
zeb139
bf56154eee Add weighted bot to banker teleport logic and config (#1615)
* add weighted bot to banker teleport logic and config

* moved banker location lookup tables to top of file
2025-09-06 16:10:56 +02:00
NoxMax
5f8754123d Better error handling when no eligible bots for level login range 2025-08-21 07:30:52 -06:00
bash
8d51092d42 As requested revert for threadfixes last few days (#1552)
* Revert "[Large server fix] #1537 Serialize playerBots/botLoading with a mutex and use snapshot-based loops to fix concurrency crashes (#1540)"

This reverts commit 3fff58df1a.

* Revert "[Fix] teleport to invalid map or invalid coordinates (x , y , z  200000, o ) given when teleporting player (g UI d full type player low , name , map , x , y , z , o )  (#1538)"

This reverts commit ca2e2ef0db.

* Revert "Fix: prevent MoveSplineInitArgs::Validate velocity asserts (velocity > 0.01f) for bots, pets, and charmed units (#1534)"

This reverts commit 4e3ac609bd.

* Revert "[Fix issue #1527] : startup crash in tank target selection — add TOCTOU & null-safety guards (#1532)"

This reverts commit c6b0424c29.

* Revert "[Fix issue #1528] Close small window where the “in a BG/arena” state can change between the check (InBattleground() / InArena()) and grabbing the pointer (GetBattleground()), which leads to a null dereference. (#1530)"

This reverts commit 2e0a161623.

* Revert "Harden playerbot logout & packet dispatch; add null-safety in chat hooks and RPG checks (#1529)"

This reverts commit e4ea8e2694.

* Revert "Dont wait to travel when in combat. (#1524)"

This reverts commit ddfa919154.

* Revert "nullptr fix (#1523)"

This reverts commit 380312ffd2.

* Revert "Playerbots/LFG: fix false not eligible & dungeon 0/type 0, add clear diagnostics (#1521)"

This reverts commit 872e417613.

* Revert "nullptr exception (#1520)"

This reverts commit 3d28a81508.

* Revert "Removed bot freezing at startup and system message, not relevant anymore (#1519)"

This reverts commit bcd6f5bc06.
2025-08-12 22:10:47 +02:00
Alex Dcnh
ca2e2ef0db [Fix] teleport to invalid map or invalid coordinates (x , y , z 200000, o ) given when teleporting player (g UI d full type player low , name , map , x , y , z , o ) (#1538)
* MoveSplineInitArgs::Validate: expression 'velocity > 0.01f' failed for GUID Full

* Update BotMovementUtils.h

* Playerbots: guard against invalid-Z teleports
2025-08-12 01:54:17 +02:00
Alex Dcnh
2e0a161623 [Fix issue #1528] Close small window where the “in a BG/arena” state can change between the check (InBattleground() / InArena()) and grabbing the pointer (GetBattleground()), which leads to a null dereference. (#1530)
* Harden playerbot logout & packet dispatch; add null-safety in chat hooks and RPG checks

* Fix Issue 1528
2025-08-11 16:27:38 +02:00
Alex Dcnh
e4ea8e2694 Harden playerbot logout & packet dispatch; add null-safety in chat hooks and RPG checks (#1529) 2025-08-11 16:27:25 +02:00
NoxMax
c38303cba7 Merge branch 'liyunfan1223:master' into login-range 2025-08-09 10:29:45 -06:00
Yunfan Li
a307eb2f08 VisitAllObjects to VisitObjects (sync with acore) (#1513) 2025-08-09 19:17:33 +08:00
NoxMax
95410c5710 formatting 2025-08-03 18:58:30 -06:00
Your Name
3900237ffd Filter bot logins by level range 2025-08-03 17:36:02 -06:00
NoxMax
db7a17ffde Fix: Properly track RNDbot and AddClass accounts, and login faction balance issue (#1434)
* AssignAccountTypes & AddRandomBots

Fix: Properly track RNDbot and AddClass accounts, and login faction balance issue

* code style edits

* fix addclass init on first build of playerbots_account_type
2025-07-27 14:13:20 +08:00
Yunfan Li
4a00c954ed RPG update travel flight status (#1445) 2025-07-23 23:37:41 +08:00
kadeshar
3f39a57fe2 Merge pull request #1426 from NoxMax/delete-all-the-orphans
Fix: DeleteRandomBotAccounts sometimes leaves orphans. Also fix accumulating orphan pet data in DB
2025-07-06 09:51:31 +02:00
NoxMax
78f4bd6d29 Ensuring data orphans are deleted 2025-07-05 18:59:30 -06:00
Yunfan Li
f0c6aaff0b Random bots gear related enhancements 2025-07-05 20:29:34 +08:00
kadeshar
c24b7a7bb3 - Added disabled without real player feature (#1335) 2025-05-24 20:51:44 +08:00
NoxMax
b5426152fb Expose zone level brackets to user configuration (#1309)
* Make variable name more intuitive

* Make variable name more intuitive

* Make variable name more intuitive and clarify function

* Update playerbots.conf.dist

* Update PlayerbotAIConfig.cpp

* Update PlayerbotAIConfig.h

* Update RandomPlayerbotMgr.cpp

* Update playerbots.conf.dist

* Update playerbots.conf.dist

* Update playerbots.conf.dist

* Update playerbots.conf.dist

* Update playerbots.conf.dist

* Update playerbots.conf.dist
2025-05-18 19:31:32 +08:00
NoxMax
aaad67f7b9 Clarify EnableNewRpgStrategy relation to RandomBotTeleLowerLevel and RandomBotTeleHigherLevel, and making them more intuitive (#1294)
* Make variable name more intuitive

* Make variable name more intuitive

* Make variable name more intuitive and clarify function

* Update playerbots.conf.dist

* Update playerbots.conf.dist

* Update playerbots.conf.dist

* Update playerbots.conf.dist

* Update playerbots.conf.dist
2025-05-16 01:30:58 +02: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
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
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
f039e88393 Fix faction count calculation error (#1085)
* Fix faction count on add randombots

Co-authored-by: kadeshar <kadeshar@gmail.com>

* Fix class balance issue with periodic login and logout

---------

Co-authored-by: kadeshar <kadeshar@gmail.com>
2025-03-17 19:40:03 +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
fbfcbbcddc EnablePeriodicOnlineOffline config and modify CalculateTotalAccountCount (#1043)
* EnablePeriodicOnlineOffline config

* Add Comments on PeriodicOnlineOfflineRatio
2025-03-01 21:05:43 +08: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
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
Yunfan Li
e571694a88 Reset added rndbots on server restart to automatically apply configuration changes (#913)
* Refactor RandomPlayerbotMgr and delete add value on restart server

* Remove reset tips in conf file
2025-01-26 12:06:29 +01:00
SaW
4e7d00b1a3 BG: restore !bot->IsInWorld() check (#891)
* Update RandomPlayerbotMgr.cpp

* Restore !bot->IsInWorld()
2025-01-22 16:44:44 +01:00
SaW
d3e3372121 BG: Final fix against potential inconsistencies
* Check both bgInstanceCount / bgInstances.size

to help counter against possible inconsistencies

* Final fix against inconsistencies
2025-01-22 14:12:38 +01:00
SaW
c6a332a729 Fix over-queuing in BG's (#887)
* Fix overqueue

* Update RandomPlayerbotMgr.cpp

* Restore if self-bot

* Update RandomPlayerbotMgr.cpp
2025-01-22 10:33:51 +01:00
SaW
be21018f0c Feature: Have bots auto join/start all supported BG's (if enabled) (#877)
* Update RandomPlayerbotMgr.cpp

* Update playerbots.conf.dist

* Update PlayerbotAIConfig.h

* Update PlayerbotAIConfig.cpp

* Update playerbots.conf.dist

* Update playerbots.conf.dist

* Updated information

* Update RandomPlayerbotMgr.cpp

Avoid reverting https://github.com/liyunfan1223/mod-playerbots/pull/870/files

* Update playerbots.conf.dist

set capitals on Random

* Final update on settings documentation

* Update playerbots.conf.dist

* Fix bots loving to do BG's a bit too much

* Final fix bots over-queuing

* pt2 - Limit over-queuing to ~1 instance

Try and prevent over-queuing to a max of 1 instance.

* Add new queue instead of instance if necessary

* Update RandomPlayerbotMgr.cpp

* Final commit

* Update RandomPlayerbotMgr.cpp

* Fix timer

* Updated docu

* Update playerbots.conf.dist

* Update RandomPlayerbotMgr.cpp

Set BgCheckTimer to 45 as it is sufficient.
2025-01-20 14:21:35 +01:00