What's new
  • Happy Cataclysm gaming! The long-awaited 4.3.4 Cataclysm Repack V19.0 is now live - and downloadable from our brand-new Emucoach App.
    Download it now
  • Mists of Pandaria is calling! Heya - did you know that the newest 5.4.8 MoP Repack - version 7.0 - is now live?
    Download now

Copilotbuddy, a bot for WotLK 3.3.5a RELEASED

UPDATE 3
==========================

Bug fixes:
--------------
* WoWObjects
- WoWContainer: null-safe Bag delegates — Slots, UsedSlots, FreeSlots, ItemGuids, Items all guard against null Bag (HB 4.3.4 has same bug)
- WoWGameObject: fixed WoWGameObjectState enum — Active=0, Ready=1 (was inverted); CanGather now checks State==Ready for herbs/minerals to skip already-harvested nodes; CanMine/CanHarvest no longer double-check State (moved into CanGather); RequiredSkill==0 treated as no requirement
- LocalPlayer: removed hardcoded SkillsBasePtr (0xBE55C8) — GetSkill/GetAllSkills now use GetSkillByIndex() which reads from player descriptors (correct per-character data instead of static address)

* Questing
- QuestLog.GetQuestInfo: fixed offset formula — was (158 + index * 5 * 4), now ((158 + index * 5) * 4) to match ReadDescriptor pattern (HB 4.3.4 has same bug)
- ActionSelectReward: ported HB 4.3.4 WeightSetEx.EvaluateItem(itemInfo, itemStats) scoring with ItemStats parsed from item link; vendor sell-price fallback for non-equippable items (replaces custom AutoEquipper.EvaluateRewards)

* Character Management
- AutoEquipper.EvaluateItem: dual-slot comparison for Finger1/Finger2 and Trinket1/Trinket2 via GetSecondaryItemSlot(); null guard on StyxWoW.Me.Inventory (HB 4.3.4 and 6.2.3 both check both slots)

* Profile Parsing
- HotspotManager: use InvariantCulture for float.TryParse on X/Y/Z hotspot coordinates — fixes comma-vs-dot locale issues on non-English systems

* WoWDb
- Added diagnostic logging on DBC table load (table count, first 5 keys, Lock DBC accessibility check)

* GatherBuddy
- GatherbuddyBot: added SleepForLag after Interact before WaitContinue(!IsCasting) — server needs time to start cast channel
- GatherbuddyBot: HB 4.3.4 mounted combat — _combatSuppressed flag, keep moving when mounted+combat, only fight when dismounted
- GatherbuddyBot: fixed node oscillation — _lockedNodeLocation cached on approach, gather gate accepts locked node, approach uses fallback location
- GatherbuddyBot: fixed NRE on LootTargeting.Instance.FirstObject null check in branch[0]
- GatherbuddyBot: path distance ratio filter — nodes >30y with pathDist >3.5× straight-line distance skipped in IncludeLootFilter (avoids cave nodes)
- GatherbuddyBot: CycleToNearestWaypoint called in OnGatherComplete and combat lock release (prevents backtracking to start of route)
- GatherbuddyBot: auto-vendor Data.bin fallback — syncs FindVendorsAutomatically to CharacterSettings at Start(); NeedsToSell/NeedsToRepair now check profile vendor → ObjectManager → NpcQueries (Data.bin); CreateNearbyVendorBehavior navigates to Data.bin vendor when none in render range
- GatherbuddyBot: auto-find mailbox — NeedsToMail checks profile mailbox → ObjectManager scan for WoWGameObjectType.Mailbox; CreateMailBehavior uses same fallback chain
- New helpers: FindVendorFromDatabase(UnitNPCFlags) wraps NpcQueries.GetNearestNpc; FindNearbyMailbox() scans ObjectManager for nearby mailbox GameObjects

* Singular (Combat Routine)
- Rogue: new setting "Use Stealth on Pull" (default: on) — toggle stealth before pulling for all specs (Lowbie, Combat, Assassination, Subtlety) and rest behavior; disabling makes low-level rogues pull without going invisible

* Profile
- Small fixe.
 
thanks
 

Attachments

  • 1777039932852.png
    1777039932852.png
    25.2 KB · Views: 14
I've been working on Copilotbuddy for five months. I'm reverse-engineering HonorBuddy 4.3.4 and adapting it for WoW Wrath of the Lich King 3.3.5a. For several years now, people have been asking me for a working version of HonorBuddy for Wrath of the Lich King. So I got to work. Here's a video :

So, let's talk about what's been done. The navigation was based on HB from WoD and Legion. For the tiles, we'll use Mangos generated with our parameters, which are the closest to HB.
The bot's API is 98% similar to HB 4.3.4. I had to adopt several things because they simply don't exist in WotLK.
For the UI, I chose the HB WoD version.
Singular was ported from HB 4.3.4.

For anyone who knows XML and a little C#, and who wants to become a beta tester, work on profiles and report bugs or black spots for navigation.
DM me.

PS: Don't expect to play with it on Warmen or a custom server. Original WotLK build 3.3.5a 12340.



On Discord, there's a dedicated section for discussion and bug reports.

[Hidden content]
 
UPDATE 4
==========================

Bug fixes:
--------------
* Extractor (mmaps)
- minRegionArea: rcSqr(12) → rcSqr(20) — removes small isolated navmesh regions on rough hilltops, reducing unreachable areas the bot tries to path into

* Bot (Navigator.cs)
- PathPrecision: 2.0f → 1.6f — matches HB 3.3.5a/6.2.3 exact value, bot is now more precise when determining if it has reached a waypoint or destination

* Singular (Shaman)
- Added a new Shaman totem parameter to Singular config to fix fire totem selection(or not fixe)

* Combat (Targeting.cs)
- Use `IsBeingAttacked` alongside `Combat` and minion combat checks when including targets, preventing transient combat state drops from losing valid enemies.

* ProfessionBuddy
- Fixed CombatBot compatibility crash caused by a null reference during forced quest turn-in handling.

* Plugin
- Removed `Thread.Sleep(500)` from AutoEquip2 item equip handling to avoid freezing the WoW client when equipping items.

* Profile
- Restored legacy `SetHearthstone` behavior in QuestBot: all `SetHearthstone` profile entries were removed.

* Misc
- Minor cleanup in `Bots/Quest/QuestOrder/ForcedQuestTurnIn.cs` and formatting consistency in `Styx/WoWInternals/WoWObjects/WoWItem.cs`.

* DungeonBuddy
- Fixed LFG random queue failures by updating `LfgManager.cs` to dynamically select the correct `LFG_Dungeons.dbc` ID based on the player's level (258, 259, 260, 261, 262) instead of hardcoding the level 80 queue.
- Added missing methods to `ScriptHelpers.cs` (`PartyIncludingMe`, `IsBossAlive`, `CreateInteractWithObject`, `CreateRunAwayFromBad`) to fix script compilation errors for WotLK 3.3.5a dungeons.

* DungeonBuddy
- Fixed `ShouldRequeue()` and `CanAcceptLfgProposal()`: `needsMaintenance` now includes
`ShouldMailItemsInSoloFarm(this)` — bot no longer re-queues while mail items are pending.
- Fixed Leader party mode: added invite block in `CreateLfgBehavior()` that iterates
`PartyMembers`, calls `InviteUnit()` for each absent member, throttled by
`_inviteRetryTimer` (10s). HB waitTimer_5 parity.

* DungeonBuddy — Secret tab bug fixes (FormConfig.xaml / FormConfig.xaml.cs)
- Fixed `button1_Click` (Target Info): was logging `boss.IsDead` from `BossManager.Bosses`.
Now logs `boss.IsAlive` from `ProfileManager.CurrentProfile.BossEncounters` — exact HB parity.
- Fixed `dbgButton2_Click` (Navigation): was a copy-paste of button1. Replaced with correct
implementation: `boss.Optional || Navigator.CanNavigateFully(Me.Location, breadcrumb.Peek())`
per HB 4.3.4. Optional bosses are now correctly skipped.
- Fixed `btnToggleMovement_Click`: now calls `WoWMovement.MoveStop()` when disabling movement
and the character is moving — HB parity.
- Fixed `GenerateTreeView` debug mode: Dungeon List tab now appends `[Map Id: X]` after each
dungeon name, matching HB 4.3.4. Required for profile authoring (breadcrumb MapId lookup).
- Fixed `ToggleControlForSelection`: previously only toggled the warning label. Now correctly
hides/shows the dungeon tree and Select All / Unselect All buttons when `QueueType` is not
Specific or SoloFarm — HB parity.
- Fixed `ShowAllDungeons` not persisted: `FormConfig_Load` was hardcoding `cbShowAll = false`.
Now reads `DungeonBuddySettings.Instance.ShowAllDungeons`. `cbShowAll_CheckedChanged` now
writes back to the setting before rebuilding the tree.
- Fixed Secret tab button row: changed `StackPanel` to `WrapPanel` so the 6 buttons wrap to a
second row on narrow windows (360px) instead of overflowing.

* DungeonBuddy — PathView (new file: Bots/DungeonBuddy/Forms/PathView.cs)
- Ported HB 4.3.4 `PathView.cs` in full. Opens as a standalone WinForms window (784×761)
from the "Show Path" button on the Secret tab (toggle: click again to close).
- Renders live (100ms refresh, GDI+ double-buffered):
· Purple semi-transparent circles = active avoidance zones (AvoidanceManager)
· Red dots + black lines = current navigation path (CurrentMovePath / CurrentAvoidPath)
· Green dot + green line = player position + heading direction (10 yard ray)
- Mouse wheel = zoom 1× to 6×. Left drag = pan the view.
- Singleton pattern (`PathView.Instance`) — only one window can be open at a time.
- In HB 4.3.4 the "Show Path" button handler (`debugBtn3_Click`) was empty; PathView existed
but was never wired. CopilotBuddy now wires it correctly.
- vendre fixe for solofarm.
 
Back
Top