Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
a928860
Summon Logic Tweaks (#2049)
dillyns Jan 29, 2026
b874882
DrinkAction refactor (#2)
SmashingQuasar Jan 27, 2026
50230aa
fix: Improper singletons migration to clean Meyer's singletons. (#4)
SmashingQuasar Jan 28, 2026
6c2a724
fix: Resolved a crash due to a missing return after evaluating the bo…
SmashingQuasar Jan 31, 2026
8b3176e
Fix Destro Warlock Glyphs (#2084) (#7)
SmashingQuasar Feb 1, 2026
c925de9
fix: Resolved all warnings. (#5)
SmashingQuasar Feb 5, 2026
b634cf1
feat: Added a new whisper option to get a bot's PvP statistics. (#8)
SmashingQuasar Feb 6, 2026
f48186c
Correct Zone ID 10 in config (Deadwind Pass -> Duskwood) (#2109) (#9)
SmashingQuasar Feb 7, 2026
5e9b7df
feat: Migrated NextAction to a struct and removed stringly typing.
SmashingQuasar Jan 22, 2026
e9f8d2c
feat: Made progress on syntax migration.
SmashingQuasar Jan 23, 2026
9a00e5b
feat: Migrated DeadStrategy and CombatStrategy to the new syntax.
SmashingQuasar Jan 23, 2026
62db2d7
feat: Migrated many strategies to the new syntax.
SmashingQuasar Jan 23, 2026
48621c5
feat: Migrated new strategies to the new syntax.
SmashingQuasar Jan 23, 2026
0b1d1d0
chore: migrated new strategies to the new syntax
Zamralik Jan 27, 2026
b2914f7
feat: Migrated more actions.
SmashingQuasar Jan 27, 2026
5e77ecf
feat: Migrated two new druid strategies.
SmashingQuasar Jan 27, 2026
e4b458b
fix: Migrated many raid strategies to the new syntax.
SmashingQuasar Jan 31, 2026
671edac
fix: Migrated all DK strategies.
SmashingQuasar Jan 31, 2026
cf17126
fix: Migrated all remainig strategies.
SmashingQuasar Feb 3, 2026
1d82ffb
wip
SmashingQuasar Feb 4, 2026
056a0aa
fix: Made the code compile and work without crash.
SmashingQuasar Feb 4, 2026
bcafced
fix: Repaired the broken Molten Core strategies.
SmashingQuasar Feb 4, 2026
492edbd
fix: Repaired RpgAction.cpp.
SmashingQuasar Feb 4, 2026
1aa25a8
fix: Repaired RpgSubActions.cpp.
SmashingQuasar Feb 4, 2026
40cbe20
fix: Repaired MC strategies and RPG sub actions.
SmashingQuasar Feb 4, 2026
7d0ccc3
fix: Repaired all chat strategies.
SmashingQuasar Feb 5, 2026
fef711e
chore: Removed a comment.
SmashingQuasar Feb 6, 2026
e8975cf
chore: Removed commented code.
SmashingQuasar Feb 6, 2026
d9050ee
fix: Repaired a commented code in RpgStrategy.h.
SmashingQuasar Feb 6, 2026
d3a1602
chore: Removed commented code.
SmashingQuasar Feb 6, 2026
a852bb2
chore: Removed InitializeAction since it is no longer needed.
SmashingQuasar Feb 6, 2026
62d528a
chore: Removed CreateActionNode since it is no longer needed.
SmashingQuasar Feb 6, 2026
3ba8f9d
chore: Removed SayStrategy that was never used anywhere.
SmashingQuasar Feb 6, 2026
bdc149b
fix: Resolved Engine::PushAgain.
SmashingQuasar Feb 6, 2026
54ab24b
fix: Disabled now useless object contexts.
SmashingQuasar Feb 7, 2026
d7ce124
fix: Removed all action context except chat contexts.
SmashingQuasar Feb 7, 2026
33dc16f
chore: Removed a comment.
SmashingQuasar Feb 7, 2026
e525a12
chore: Removed now useless logs.
SmashingQuasar Feb 7, 2026
412d2cf
chore: Cleaning up commented code.
SmashingQuasar Feb 7, 2026
6d542ca
fix: Resolved a wrongly migrated tirgger node in GenericDruidStrategy…
SmashingQuasar Feb 7, 2026
e919a13
chore: Removed commented code.
SmashingQuasar Feb 7, 2026
83ce560
chore: Removed commented code.
SmashingQuasar Feb 7, 2026
2c5679f
chore: Removed commented code.
SmashingQuasar Feb 7, 2026
b6da134
chore: Removed commented code.
SmashingQuasar Feb 7, 2026
38c4a57
chore: Removed commented code.
SmashingQuasar Feb 7, 2026
bebdd84
chore: Removed commented code.
SmashingQuasar Feb 7, 2026
5282dac
chore: Removed commented code.
SmashingQuasar Feb 7, 2026
c1d997f
chore: Removed commented code.
SmashingQuasar Feb 7, 2026
139e338
chore: Removed commented code.
SmashingQuasar Feb 7, 2026
43a00df
chore: Added missing float precision in OculusStrategy.cpp.
SmashingQuasar Feb 7, 2026
58f87f1
chore: Added missing blank line at the end of a file.
SmashingQuasar Feb 7, 2026
2626fce
chore: Added missing blank line at the end of a file.
SmashingQuasar Feb 7, 2026
8b2a637
chore: Removed commented code.
SmashingQuasar Feb 7, 2026
1c9eebe
chore: Removed commented code.
SmashingQuasar Feb 7, 2026
2c400bf
fix: Reenabled message output within DoSpecificAction.
SmashingQuasar Feb 7, 2026
8afa573
chore: Removed unnecessary logs.
SmashingQuasar Feb 7, 2026
ada9e5f
fix: Added compatibility bridge to support raw chat commands.
SmashingQuasar Feb 7, 2026
b276361
fix: Repaired a commented trigger on heal druid action.
SmashingQuasar Feb 7, 2026
6699f0d
fix: Resolved a few mistakes in Hunter and Paladin strategies.
SmashingQuasar Feb 8, 2026
f8bee10
fix: Added missing new line and the end of file.
SmashingQuasar Feb 8, 2026
7ae462e
chore: Removed debug logs.
SmashingQuasar Feb 8, 2026
7a41ef6
fix: Resolved several minor details.
SmashingQuasar Feb 8, 2026
0922043
fix: Resolved commented out warlock firestone action.
SmashingQuasar Feb 8, 2026
4797e2e
chore: Removed comments.
SmashingQuasar Feb 8, 2026
a2493b6
fix: Repaired custom strategies.
SmashingQuasar Feb 8, 2026
1b362ad
chore: Addressed warnings.
SmashingQuasar Feb 8, 2026
f72706d
fix: Corrected a wrong call to use item without parameter for critica…
SmashingQuasar Feb 8, 2026
e747342
fix: Addressed review comments.
SmashingQuasar Feb 8, 2026
10dc649
chore: Added a Clang guard for a Clang pragma.
SmashingQuasar Feb 9, 2026
964cc40
fix: Fixed an issue that caused multipliers consequences to be ignore…
SmashingQuasar Feb 9, 2026
2338667
feat: Made it possible for random bots to be persistent.
SmashingQuasar Nov 14, 2025
665c6ab
wip
SmashingQuasar Jan 4, 2026
1e625f0
fix: Resolved the undefined behaviour crash within the inventory mana…
SmashingQuasar Jan 14, 2026
e0db960
chore: Logs clean up after debugging.
SmashingQuasar Jan 16, 2026
81ac64f
fix: Resolved an issue with the inventory management system where an …
SmashingQuasar Jan 27, 2026
bf9644e
fix: Resolved all errors.
SmashingQuasar Feb 8, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
!.gitignore

.cache/
build/

#
#Generic
#
Expand Down
21 changes: 16 additions & 5 deletions conf/playerbots.conf.dist
Original file line number Diff line number Diff line change
Expand Up @@ -544,8 +544,8 @@ AiPlayerbot.AutoGearQualityLimit = 3
# Max iLVL Phase 1(MC, Ony, ZG) = 78 | Phase 2(BWL) = 83 | Phase 2.5(AQ40) = 88 | Phase 3(Naxx40) = 92
# TBC
# Max iLVL Tier 4 = 120 | Tier 5 = 133 | Tier 6 = 164
# Max iLVL Phase 1(Kara, Gruul, Mag) = 125 | Phase 1.5(ZA) = 138 | Phase 2(SC, TK) = 141 | Phase 3(Hyjal, BT) = 156 | Phase 4(Sunwell) = 164
# Wotlk
# Max iLVL Phase 1(Kara, Gruul, Mag) = 125 | Phase 2(SSC, TK, ZA) = 141 | Phase 3(Hyjal, BT) = 156 | Phase 4(Sunwell) = 164
# WotLK
# Max iLVL Tier 7(10/25) = 200/213 | Tier 8(10/25) = 225/232 | Tier 9(10/25) = 232/245 | Tier 10(10/25/HC) = 251/264/290
# Max iLVL Phase 1(Naxx) = 224 | Phase 2(Ulduar) = 245 | Phase 3(ToC) = 258 | Phase 4(ICC) = 290
# Default: 0 (no limit)
Expand Down Expand Up @@ -677,6 +677,17 @@ AiPlayerbot.EnableRandomBotTrading = 1
# Configure message prefixes which will be excluded in analysis in trade action to open trade window
AiPlayerbot.TradeActionExcludedPrefixes = "RPLL_H_,DBMv4,{звезда} Questie,{rt1} Questie"

# This option will prevent ALL random bots from being randomized.
# It does not prevent periodic teleport.
# Without it, random bots will be periodically randomized unless they are in a guild
# with at least one character who is not a random bot.
AiPlayerbot.DisableRandomBotPeriodicRandomization = 1

# This option will prevent ALL random bots from being periodically teleported.
# THIS SHOULD NOT BE ENABLED AT ALL TIMES. It exists mostly for debugging purposes.
# Disabling periodic teleport will make the bots almost unable to reach new areas.
AiPlayerbot.DisableRandomBotPeriodicTeleportation = 0

#
#
#
Expand Down Expand Up @@ -736,7 +747,7 @@ AiPlayerbot.RandomGearQualityLimit = 3
# TBC
# Max iLVL Tier 4 = 120 | Tier 5 = 133 | Tier 6 = 164
# Max iLVL Phase 1(Kara, Gruul, Mag) = 125 | Phase 2(SSC, TK, ZA) = 141 | Phase 3(Hyjal, BT) = 156 | Phase 4(Sunwell) = 164
# Wotlk
# WotLK
# Max iLVL Tier 7(10/25) = 200/213 | Tier 8(10/25) = 225/232 | Tier 9(10/25) = 232/245 | Tier 10(10/25/HC) = 251/264/290
# Max iLVL Phase 1(Naxx) = 224 | Phase 2(Ulduar) = 245 | Phase 3(ToC) = 258 | Phase 4(ICC) = 290
# Default: 0 (no limit)
Expand Down Expand Up @@ -990,7 +1001,7 @@ AiPlayerbot.ZoneBracket.3433 = 10,22
AiPlayerbot.ZoneBracket.3525 = 10,21

# Classic WoW - High-level zones:
# Deadwind Pass (Zone ID: 10 Default Min,Max: 19,33)
# Duskwood (Zone ID: 10 Default Min,Max: 19,33)
# Wetlands (Zone ID: 11 Default Min,Max: 21,30)
# Redridge Mountains (Zone ID: 44 Default Min,Max: 16,28)
# Hillsbrad Foothills (Zone ID: 267 Default Min,Max: 20,34)
Expand Down Expand Up @@ -1624,7 +1635,7 @@ AiPlayerbot.PremadeSpecLink.9.1.60 = -003203301135112530135201051
AiPlayerbot.PremadeSpecLink.9.1.70 = -003203301135112530135201051-55
AiPlayerbot.PremadeSpecLink.9.1.80 = -003203301135112530135221351-55000005
AiPlayerbot.PremadeSpecName.9.2 = destro pve
AiPlayerbot.PremadeSpecGlyph.9.2 = 45785,43390,50077,43394,43393,42454
AiPlayerbot.PremadeSpecGlyph.9.2 = 45785,43390,42454,43394,43393,45785
AiPlayerbot.PremadeSpecLink.9.2.60 = --05203215200231051305031151
AiPlayerbot.PremadeSpecLink.9.2.80 = 23-0302-05203215220331051335231351
AiPlayerbot.PremadeSpecName.9.3 = affli pvp
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
-- #########################################################
-- Playerbots - Add PVP / Arena texts for TellPvpAction
-- Localized for all WotLK locales (koKR, frFR, deDE, zhCN,
-- zhTW, esES, esMX, ruRU)
-- #########################################################

-- ---------------------------------------------------------
-- pvp_currency
-- [PVP] Arena points: %arena_points | Honor Points: %honor_points
-- ---------------------------------------------------------
INSERT INTO `ai_playerbot_texts`
(`name`, `text`, `say_type`, `reply_type`,
`text_loc1`, `text_loc2`, `text_loc3`, `text_loc4`,
`text_loc5`, `text_loc6`, `text_loc7`, `text_loc8`)
SELECT
'pvp_currency',
'[PVP] Arena points: %arena_points | Honor Points: %honor_points',
0, 0,
-- koKR
'[PVP] 투기장 점수: %arena_points | 명예 점수: %honor_points',
-- frFR
'[PVP] Points d''arène : %arena_points | Points d''honneur : %honor_points',
-- deDE
'[PVP] Arenapunkte: %arena_points | Ehrenpunkte: %honor_points',
-- zhCN
'[PVP] 竞技场点数:%arena_points | 荣誉点数:%honor_points',
-- zhTW
'[PVP] 競技場點數:%arena_points | 榮譽點數:%honor_points',
-- esES
'[PVP] Puntos de arena: %arena_points | Puntos de honor: %honor_points',
-- esMX
'[PVP] Puntos de arena: %arena_points | Puntos de honor: %honor_points',
-- ruRU
'[PVP] Очки арены: %arena_points | Очки чести: %honor_points'
WHERE NOT EXISTS (
SELECT 1 FROM `ai_playerbot_texts` WHERE `name` = 'pvp_currency'
);

-- ---------------------------------------------------------
-- pvp_arena_team
-- [PVP] %bracket: <%team_name> (rating %team_rating)
-- ---------------------------------------------------------
INSERT INTO `ai_playerbot_texts`
(`name`, `text`, `say_type`, `reply_type`,
`text_loc1`, `text_loc2`, `text_loc3`, `text_loc4`,
`text_loc5`, `text_loc6`, `text_loc7`, `text_loc8`)
SELECT
'pvp_arena_team',
'[PVP] %bracket: <%team_name> (rating %team_rating)',
0, 0,
-- koKR
'[PVP] %bracket: <%team_name> (평점 %team_rating)',
-- frFR
'[PVP] %bracket : <%team_name> (cote %team_rating)',
-- deDE
'[PVP] %bracket: <%team_name> (Wertung %team_rating)',
-- zhCN
'[PVP] %bracket: <%team_name> (评分 %team_rating)',
-- zhTW
'[PVP] %bracket: <%team_name> (評分 %team_rating)',
-- esES
'[PVP] %bracket: <%team_name> (índice %team_rating)',
-- esMX
'[PVP] %bracket: <%team_name> (índice %team_rating)',
-- ruRU
'[PVP] %bracket: <%team_name> (рейтинг %team_rating)'
WHERE NOT EXISTS (
SELECT 1 FROM `ai_playerbot_texts` WHERE `name` = 'pvp_arena_team'
);

-- ---------------------------------------------------------
-- pvp_no_arena_team
-- [PVP] I have no Arena Team.
-- ---------------------------------------------------------
INSERT INTO `ai_playerbot_texts`
(`name`, `text`, `say_type`, `reply_type`,
`text_loc1`, `text_loc2`, `text_loc3`, `text_loc4`,
`text_loc5`, `text_loc6`, `text_loc7`, `text_loc8`)
SELECT
'pvp_no_arena_team',
'[PVP] I have no Arena Team.',
0, 0,
-- koKR
'[PVP] 투기장 팀이 없습니다.',
-- frFR
'[PVP] Je n''ai aucune équipe d''arène.',
-- deDE
'[PVP] Ich habe kein Arenateam.',
-- zhCN
'[PVP] 我没有竞技场战队。',
-- zhTW
'[PVP] 我沒有競技場隊伍。',
-- esES
'[PVP] No tengo equipo de arena.',
-- esMX
'[PVP] No tengo equipo de arena.',
-- ruRU
'[PVP] У меня нет команды арены.'
WHERE NOT EXISTS (
SELECT 1 FROM `ai_playerbot_texts` WHERE `name` = 'pvp_no_arena_team'
);
Loading