Draft
Conversation
Issues: - When you have selfbot enabled and use summon command, you will summon yourself. This causes odd movement if you summon while moving, and can sometimes lead to falling through the floor. - When using the summon command on bots with pets/guardians from a medium distance (like jumping down a ledge then commanding summon), the pets will pathfind run to catch up. This causes them to aggro everything on the way. Solution: Fix summon logic to prevent selfbot summon and ensure pets are teleported with bots. --------- Co-authored-by: bashermens <31279994+hermensbas@users.noreply.github.com>
* fix: Made bots drink responsibly by implementing a real check algorithm on drinking. * fix: Remove a unused variable. * fix: Improved the drinking detection logic following PR comments. * feat: Added inspector pattern to replace distinct functions. * feat: Improved drinking behaviour drastically. * chore: Removed debug action. * chore: Removed remnants of debug code. * fix: Improved DrinkAction::isPossible logic.
* fix: Changed PlayerbotsMgr to be a true Meyer's singleton passed by reference. * fix: Migrated PlayerbotAIConfig to a clean singleton pattern instead of a pointer. * fix: Migrated RandomItemMgr to a clean singleton pattern. * fix: Migrated SharedValueContext to a clean singleton pattern. * fix: Migrated PlayerbotCommandServer to a clean singleton instead of using a pointer. * fix: Migrated PerfMonitor to a clean singleton instead of using a pointer. * fix: Migrated FlightMasterCache to a clean singleton instead of using a pointer. * fix: Migrated PlayerbotDungeonRepository to a clean singleton instead of using a pointer. * fix: Migrated PlayerbotRepository to a clean singleton without using a pointer. * fix: Migrated PlayerbotSpellRepository to a clean singleton instead of using a pointer. * fix: Migrated GuildTaskMgr to a clean singleton instead of using a pointer. * fix: Migrated PlayerbotGuildMgr to a clean singleton instead of using a pointer. * fix: Migrated PlayerbotTextMgr to a clean singletong instead of using a pointer. * fix: Migrated TravelMgr to a clean singleton instead of using a pointer. * fix: Migrated TravelNodeMap to a clean singleton instead of a pointer and removed unused, misleading public constructor on the same class. * fix: Migrated PlayerbotWorldThreadProcessor to a clean singleton instead of using a pointer. * fix: Migrated ServerFacade to a clean singleton instead of a pointer. * chore: Removed unnecessary const from move constructor/operator.
…t login operation. (#6)
Updates are only to the config. This PR should be simple. Tl;dr is destro pve spec is using the wrong glyphs. Longer explanation--right now, PreMadeSpecGlyph in the config provides for destro pve spec to use the following Major Glyphs at levels 15, 30, and 80, respectively: Life Tap, Quick Decay, Conflagrate. Quick Decay is useless for destro because destro does not cast Corruption except as a filler instant cast when on the move. Meanwhile, the spec is almost unplayable without Glyph of Conflagrate, so that should not be withheld until level 80. After Conflagrate, there are several viable glyphs, including Life Tap, Incinerate, Immolate, and Imp. I understand Glyph of Life Tap gets worse over time to the point that you don't want to use that glyph in ICC, but that's quite late, and it is useful for the vast majority of the game as a glyph that would actually be available at level 15. I also understand that Glyph of Immolate does not excel until high gear levels. Therefore, I decided to use Incinerate as the default level 80 glyph. The new order for default glyphs for destro pve for levels 15, 30, and 80 is Life Tap, Conflagrate, and Incinerate, respectively. I also made a couple of other very minor fixes in the config. No impact on performance or AI, obviously. Sidenote: Glyph of Conflagrate is not available at level 30--it requires level 40, so from 30 to 40, InitGlyphs() will plug in a random glyph for the second Major slot. This issue applies to many specs, and it's not avoidable unless InitGlyphs() is broken up into level brackets, which I think is not worthwhile. I think the better approach for glyphs is to ensure the right ones are applied at high levels, but with an attempt to make them usable at lower levels too where possible. (cherry picked from commit 00d19db) Co-authored-by: Crow <pengchengw@me.com>
* fix: Resolved a warning in NextAction constructor. * fix: Resolved a wrong type comparison in MovementActions.h. * fix: Resolved a unused parameter warning in AddLootAction.cpp. * fix: Resolved a unused parameter warning in AreaTriggerAction.cpp. * fix: Resolved several wrong type comparisons in PlayerbotAIConfig.cpp. * fix: Resolved a unused parameter warning in AutoMaintenanceOnLevelupAction.cpp. * fix: Resolved a unused parameter warning in ItemCountValue.cpp. * fix: Resolved a unused parameter warning in BankAction.cpp. * fix: Resolved a unused parameter warning in BossAuraActions.cpp. * fix: Resolved all warnings in BattleGroundJoinAction.cpp. * fix: Resolved an implicit default copy constructor warning in PositionValue.h. * fix: Resolved a unused parameter warning in CancelChannelAction.cpp. * fix: Resolved a unused parameter warning in CastCustomSpellAction.h. * fix: Resolved a unused parameter warning in CastCustomSpellAction.cpp. * fix: Resolved all but one warning in BattleGroundTactics.cpp. * fix: Resolved all warnings within ChatShortcutActions.cpp. * fix: Resolved an unused parameter warning in ChangeTalentsAction.cpp. * fix: Resolved an unused parameter warning in CheckMailAction.cpp. * fix: Resolved an unused parameter warning in CheckValuesAction.cpp. * fix: Resolved an unused parameter warning in ChooseTargetActions.cpp. * fix: Resolved all warnings within ChooseRpgTargetAction.cpp. * fix: Refactored horrible code in AttackAnythingAction::Execute. * fix: Resolved an unused parameter warning with DelayAction.cpp. * fix: Resolved all warnings within ChooseTravelTargetAction.cpp. * fix: Resolved a warning in BattleGroundTactics.cpp. * fix: Resolved an unused parameter warning in DestroyItemAction.cpp. * fix: Resolved an unused variable warning in DebugAction.cpp. * fix: Resolved an unusued parameter warning in EmoteAction.cpp. * fix: Resolved several warnings in EquipAction.cpp. * fix: Resolved several warnings in FollowActions.cpp. * fix: Resolved several warnings in FishingAction.cpp. * fix: Resolved several warnings in GenericActions.cpp. * fix: Refactored CastAuraSpellAction::isUseful. * fix: Resolved a warning in GenericSpellActions.cpp. * fix: Resolved all warnings in GiveItemAction.cpp. * fix: Resolved an unused parameter warning in GreetAction.cpp. * fix: Resolved an unused parameter warning in GuildBankAction.cpp. * fix: Resolved all warnings within GuildCreateActions.cpp. * fix Resolved all warnings in GuildManagementActions.cpp. * fix: Resolved all warnings in HireAction.cpp. * fix: Resolved all warnings in HelpAction.cpp. * fix: Resolved a default copy operator generation warning in CraftValue.h. * fix: Resolved all warnings in ImbueAction.cpp. * fix: Resolved all warnings in InventoryAction.cpp. * fix: Resolved an unused parameter warning in LeaveGroupAction.cpp. * fix: Resolved all warnings in InviteToGroupAction.cpp. * fix: Resolved all warnings in LfgActions.cpp and did a small refactor. * fix: Resolved an unused variable warning in LootStrategyAction.cpp. * fix: Resolved all warnings in LootRollAction.cpp. * fix: Resolved all warnings in MailAction.cpp. * fix: Resolved all warnings in MoveToRpgTargetAction.cpp. * fix: Resolved all warnings in OpenItemAction.cpp and did a small refactor. * fix: Resolved an unused parameter warning in MoveToTravelTargetAction.cpp. * fix: Resolved all warnings in MovementActions.cpp. * fix: Resolved all warnings within PassLeadershipToMasterAction.cpp and did a small refactor. * fix: Resolved all warnings in PetAction.h and PetAction.cpp. * fix: Resolved all warnings in QueryQuestAction.cpp. * fix: Resolved all warnings in QuestAction.cpp. * fix: Resolved all warnings in RaidIccActions.cpp. * fix: Resolved all warnings in ReachTargetActions.cpp. * fix: Resolved all warnings in RememberTaxiAction.cpp. * fix: Resolved all warnings in ReadyCheckAction.cpp and did a small refactor. * fix: Resolved all warnings in ReleaseSpiritAction.cpp. * fix: Resolved all warnings in RepairAllAcction.cpp. * fix: Resolved all warnings in ResetInstancesAction.cpp. * fix: Resolved all warnings in RevealGatheringItemAction.cpp. * fix: Resolved all warnings in ReviveFromCorpseAction.cpp. * fix: Resolved all warnings in RpgSubActions.cpp. * fix: Resolved all warnings in RpgAction.cpp. * fix: Resolved an unused parameter warning in RtiAction.cpp. * fix: Refactored SecurityCheckAction.cpp. * fix: Resolved all warnings in SeeSpellAction.cpp. * fix: Resolved all warnings in SharedQuestAction.cpp. * fix: Resolved all warnings in SetHomeAction.cpp and did a small refactor. * fix: Resolved all warnings in SayAction.cpp. * fix: Resolved all warnings in SayAction.h. * fix: Resolved all warnings in StatsAction.cpp. * fix: Resolved all warnings in TameAction.cpp. * fix: Resolved all warnings in SuggestWhatToDoAction.cpp. * fix: Resolved all warnings in TalkToQuestGiverAction.cpp. * fix: Resolved all warnings in TeleportAction.cpp. * fix: Resolved all warnings in TellLosAction.cpp. * fix: Resolved all warnings in TellMasterAction.cpp. * fix: Resolved all warnings in TellReputationAction.cpp. * fix: Resolved all warnings in TellTargetAction.cpp. * fix: Resolved all warnings in TradeAction.cpp. * fix: Resolved all warnings in TradeStatusAction.cpp. * fix: Resolved all warnings in UnlockItemAction.cpp. * fix: Resolved all warnings in TrainerAction.cpp. * fix: Resolved all warnings in TravelAction.cpp. * fix: Resolved all warnings TravelAction.cpp. * fix: Resolved all warnings in UseItemAction.cpp. * fix: Resolved all warnings in VehicleActions.cpp. * fix: Rewrote WipeAction::Execute from scratch because it was guaranteed to crash. * fix: Resolved all warnings in UseMeetingStoneAction.cpp. * fix: Added explicit this in WipeAction.cpp. * fix: Resolved all warnings in WhoAction.cpp. * fix: Resolved an unused parameter warning in ChatCommandHandlerStrategy.cpp. * fix: Resolved all warnings in CombatStrategy.cpp. * fix: Resolved all warning in DuelStrategy.cpp. * fix: Resolved all warnings in FollowMasterStrategy.cpp. * fix: Resolved all warnings in GuardStrategy.cpp. * fix: Resolved all warnings in NonCombatStrategy.cpp. * fix: Resolved all warnings in RTSCStrategy.cpp. * fix: Resolved all warnings in RacialsStrategy.cpp. * fix: Resolved all warnings in UsePotionsStrategy.cpp. * fix: Resolved all warnings in GenericTriggers.cpp. * fix: Resolved all warnings within RaidKarazhanActions.cpp. * fix: Resolved all warnings in LastMovementValue.cpp. * fix: Resolved all warnings in RangeTriggers.cpp. * fix: Resolved all warnings in RaidMagtheridonActions.cpp. * fix: Resolved all warnings in RpgTriggers.cpp. * fix: Resolved all warnings in Arrow.h and Arrow.cpp. * fix: Resolved all warnings in CcTargetValue.cpp. * fix: Resolved all warnings in BudgetValues.cpp. * fix: Resolved all warnings in CurrentCcTargetValue.cpp. * fix: Resolved all warnings in DpsTargetValue.cpp. * fix: Resolved all warnings in GrindTargetValue.cpp. * fix: Refactored ItemCoutValue.cpp. * fix: Resolved all warnings in LootStrategyValue.cpp. * fix: Resolved all warnings in NearestCorpsesValue.cpp. * fix: Resolved all warnings in PartyMemberToDispel.cpp. * fix: Resolved all warnings in PartyMemverValue.cpp. * fix: Resolved all warnings in PartyMemberWithoutAuraValue.h and PartyMemberWithoutAuraValue.cpp. * fix: Resolved all warnings in PartyMemberWithoutItemValue.h and PartyMemberWithoutItemValue.cpp. * fix: Refactored PvpValues.cpp and PvpValues.h. It was too horrible to stay this way. * fix: Resolved all warnings in PossibleRpgTargetsValue.cpp. * fix: Resolved all warnings in SppelIdValue.cpp. * fix: Resolved all warnings in SnareTargetValue.cpp. * fix: Resolved all warnings in TankTargetValue.cpp. * fix: Resolved all warnings in StatsValue.cpp. * fix: Resolved all warnings in TargetValue.cpp. * fix: Resolved all warnings in GenericDKNonCombatStrategy.cpp. * fix: Resolved all warnings in DruidActions.cpp. * fix: Resolved all warnings in CatDpsDruidStrategy.cpp. * fix: Resolved all warnings in DruidShapeshiftActions.cpp. * fix: Resolved all warnings in HunterActions.h. * fix: Resolved all warnings in HunterActions.cpp. * fix: Resolved all warnings in GenericHunterStrategy.cpp. * fix: Resolved all warnings in GenericPaladinStrategy.cpp. * fix: Resolved all warnings in PriestActions.cpp. * fix: Resolved all warnings in PaladinActions.cpp. * fix: Resolved all warnings in RogueActions.cpp. * fix: Resolved all warnings in ShamanACtions.cpp. * fix: Resolved all warnings in ShamanTriggers.cpp. * fix: Resolved all warnings in WarlockActions.cpp. * fix: Resolved all warnings in TankWarlockStrategy.cpp. * fix: Resolved all warnings in GenericWarlockStrategy.cpp. * fix: Resolved all warnings in WarriorActions.cpp. * fix Resolved all warnings in ArmsWarriorStrategy.cpp. * fix: Resolved all warnings in FuryWarriorStrategy.cpp. * fix: Resolved all warnings in AzjolNerubActions.cpp. * fix: Resolved all warnings in TankWarriorStrategy.cpp. * fix: Resolved all warnings in CullingOfStratholmeActions.cpp. * fix: Resolved all warnings in DrakTharonKeepActions.cpp. * fix: Resolved all warnings in ForgeOfSoulsActions.cpp. * fix: Resolved all warnings in GundrakActions.cpp. * fix: Resolved all warnings in HallsOfLightningActions.cpp. * fix: Resolved all warnings in HallsOfStoneActions.cpp. * fix: Resolved all warnings in NexusActions.cpp. * fix: Resolved all warnings in OculusActions.cpp. * fix: Resolved all warnings in OculusMultipliers.cpp and OculusActions.h. * fix: Resolved all warnings in OldKingdomActions.cpp. * fix: Resolved all warnings in RaidGruulsLairActions.cpp. * fix: Resolved all warnings in TrialOfTheChampionStrategy.cpp. * fix: Resolved all warnings in PitOfSaronMultipliers.cpp. * fix: Resolved all the warnings in PitOfSarongActions.cpp. * fix: Resolved all warnings in TrialOfTheChampionActions.cpp. * fix: Resolved all warnings in UtgardeKeepActions.cpp. * fix: Resolved all warnings in UtgardePinnacleActions.cpp. * fix: Resolved all warnings in VioletGoldActions.cpp. * fix: Refactored the AQ20 actions. * fix: Resolved all warnings in RaidBwlActions.cpp. * fix: Resolved all warnings in RaidEoEActions.cpp. * fix: Resolved all warnings in RaidGruulsLairHelpers.cpp. * fix: Resolved all warnings in RaidIccMultipliers.cpp. * fix: RaidIccTriggers.cpp. * fix: Resolved all warnings in RaidKarazhanHelpers.cpp. * fix: Resolved all warnings in RaidMagtheriondMultipliers.cpp. * fix: Resolved all warnings in RaidMagtheridonHelpers.cpp. * fix: Resolved all warnings in RaidMcActions.cpp. * fix: Resolved all warnings in RaidOnyxiaStrategy.cpp. * fix: Resolved all warnings in RaidOsActions.cpp. * fix: Resolved a missing include in OculusActions.cpp. * fix: Resolved all warnings in UnlockTradedItemAction.cpp. * fix: Resolved all warnings in Arrow.h. * fix: Resolved all warnings in RaidOnyxiaActions.cpp. * fix: Resolved all warnings in RaidUlduarActions.cpp. * fix: Small refactor of ItemUsageValue.cpp. * fix: Resolved all warnings in ShamanTriggers.h and refactored the constructor. * fix: Resolved all warnings in NewRpgInfo.cpp. * fix: Resolved all warnings in RaidUlduarMultipliers.cpp. * fix: Resolved all warnings in RaidVoAActions.cpp. * fix: Resolved all warnings in RaidUlduarTriggers.cpp. * fix: Resolved all warnings in NewRpgAction.cpp. * fix: Resolved all warnings in PlayerbotFactory.cpp. * fix: Resolved all warnings in NewRpgStrategy.cpp. * fix: Resolved all warnings in NewRpgBaseAction.cpp. * fix: Resolved all warnings in PlayerbotMgr.cpp. * fix: Resolved all warnings in FlightMasterCache.cpp. * fix: Resolved all warnings in Engine.cpp. * fix: Resolved all warnings in PlayerbotCommandServer.cpp. * fix: Resolved all warnings in GlobalPlayerInspector.h. * fix: Resolved all warnings in PlayerbotAI.cpp and PlayerbotAI.h. * fix: Resolved all warnings in Trigger.cpp. * fix: Resolved all warnings in CustomStrategy.cpp. * fix: Resolved all warnings in PlayerbotRepository.cpp. * fix: Resolved all warnings in RandomPlayerbotMgr.cpp. * fix: Resolved all warnings in StatsCollector.cpp. * fix: Resolved all warnings in StatsWeightCalculator.cpp. * fix: Resolved all ServerFacade.cpp. * fix: Resolved all warnings in RandomPlayerbotFactory.cpp. * fix: Resolved all warnings in RandomItemMgr.cpp. * fix: Resolved all warnings in Playerbots.cpp. * fix: Resolved all warnings in TravelMgr.cpp. * fix: Resolved all warnings in TravelNode.cpp. * fix: Resolved all warnings in RaidMagtheridonActions.cpp and a circular reference. * fix: Resolved a logic issue within PvpValues.cpp that was introduced during the refactor. * fix: Resolved naked AddClass bots. (introduced by 6d60db5) * fix: Added an npos check on parseOutfitName. * fix: Made toNextActionArray based on a reference rather than hard copy. * fix: Resolved an inverted flag carrier fetching condition within PvpValues.cpp. * fix: Resolved review comments.
* New whisper command "pvp stats" that allows players to ask a bot to report its current Arena Points, Honor Points, and Arena Teams (mod-playerbots#2071) # Pull Request This PR adds a new whisper command "pvp stats" that allows players to ask a bot to report its current Arena Points, Honor Points, and Arena Teams (name and team rating). Reason: Due to a client limitation in WoW 3.3.5a, the inspection window does not display another player's Arena or Honor points , only team data. This command provides an easy in-game way to check a bot’s PvP currencies without modifying the client or core packets. --- ## Design Philosophy Uses existing core getters (GetArenaPoints, GetHonorPoints, GetArenaTeamId, etc.). Fully integrated into the chat command system (ChatTriggerContext, ChatActionContext). Safe, no gameplay changes, purely informational. No harcoded texts, use database local instead --- ## How to Test the Changes /w BotName pvp stats Bot reply: [PVP] Arena Points: 302 | Honor Points: 11855 [PVP] 2v2: <The Fighters> (rating 2000) [PVP] 3v3: <The Trio> (rating 573) ## Complexity & Impact - Does this change add new decision branches? - [x] No - [ ] Yes (**explain below**) - Does this change increase per-bot or per-tick processing? - [x] No - [ ] Yes (**describe and justify impact**) - Could this logic scale poorly under load? - [x] No - [ ] Yes (**explain why**) --- ## Defaults & Configuration - Does this change modify default bot behavior? - [x] No - [ ] Yes (**explain why**) If this introduces more advanced or AI-heavy logic: - [x] Lightweight mode remains the default - [ ] More complex behavior is optional and thereby configurable --- ## AI Assistance - Was AI assistance (e.g. ChatGPT or similar tools) used while working on this change? - [x] No - [ ] Yes (**explain below**) --- ## Final Checklist - [x] Stability is not compromised - [x] Performance impact is understood, tested, and acceptable - [x] Added logic complexity is justified and explained - [x] Documentation updated if needed --- Multibot already ready Here is a sample of multibot when merged: <img width="706" height="737" alt="image" src="https://github.com/user-attachments/assets/5bcdd9f8-e2fc-4c29-a497-9fffba5dfd4e" /> --- ## Notes for Reviewers Anything that significantly improves realism at the cost of stability or performance should be carefully discussed before merging. --------- Co-authored-by: bashermens <31279994+hermensbas@users.noreply.github.com> * fix: Patched the original code to meet higher standards. * chore: Improved code formatting. --------- Co-authored-by: Alex Dcnh <140754794+Wishmaster117@users.noreply.github.com> Co-authored-by: bashermens <31279994+hermensbas@users.noreply.github.com>
…ots#2109) (#9) Simple fix to config--zone ID 10 is Duskwood, not Deadwind Pass, as pointed out by @privatecore Co-authored-by: Crow <pengchengw@me.com>
cce01a0 to
c177d0c
Compare
…l health trigger.
c177d0c to
8c135cf
Compare
8c135cf to
b9238f5
Compare
…d under certain conditions.
…enum was wrongfully evaluated as a boolean.
b9238f5 to
bf9644e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.