2207 Commits

Author SHA1 Message Date
bash
1f7aa7394b feat(Core/Travel): Cap bots at NAV_GROUND_STEEP via AddExcludeFlag 2026-05-10 16:08:16 +02:00
bash
bafc338e90 fix(Core/Travel): Validate PathGenerator output before NODE_PREPATH/MoveToSpline dispatch 2026-05-09 14:17:34 +02:00
bash
f58bcf3fd4 Revert "fix(Core/Travel): Drop short-distance short-circuit in GetFullPath"
This reverts commit 71dcd6ff09c4cb1975500e3ce5877dbb6018ca91.
2026-05-09 14:15:21 +02:00
bash
71dcd6ff09 fix(Core/Travel): Drop short-distance short-circuit in GetFullPath 2026-05-09 13:34:09 +02:00
bash
49be0f279a fix(Core/Travel): Port cmangos path-cheating guards to BuildPath and runtime refine 2026-05-09 13:19:01 +02:00
bash
c1a59c13e9 fix(Core/Travel): Per-segment mmap refinement of travel-plan walk batches 2026-05-09 13:11:55 +02:00
bash
b1fab01c48 fix(Core/Travel): Port cmangos ResolveMovePath regression guard for cached lastPath 2026-05-08 23:29:54 +02:00
bash
9464d5cc98 fix(Core/Travel): Port cmangos makeShortCut walkability filter and bot context 2026-05-08 23:25:43 +02:00
bash
de64d9780c fix(Core/Travel): Drop stale TravelPlan when destination shifts 2026-05-08 23:16:51 +02:00
bash
7b60310c4e Revert "fix(Core/Movement): Force replan when dest shifts >40y from cached spline endpoint"
This reverts commit 82bf33f3d40fcf95deb7469f36401d1534718db9.
2026-05-08 23:06:25 +02:00
bash
82bf33f3d4 fix(Core/Movement): Force replan when dest shifts >40y from cached spline endpoint 2026-05-08 22:58:15 +02:00
bash
21b68caffc fix(Core/RPG): Clear stale spline + lastPath on quest-complete transition 2026-05-08 22:40:34 +02:00
bash
9d2416a40a chore(Core/Debug): Rename MoveFar:spline-active to MoveFar:spline-plan 2026-05-08 22:34:37 +02:00
bash
e892d10eaa feat(Core/Debug): Emit MoveFar:spline-active, reuse-trim-failed, MoveRandomNear:all-fail 2026-05-08 22:27:36 +02:00
bash
cfd5012b13 fix(Core/Loot): Prevent re-loot of same corpse via completed-guid set 2026-05-08 22:17:52 +02:00
bash
edd27ee8e1 feat(Core/RPG): Wire makeShortCut into lastPath reuse for interrupt recovery 2026-05-08 21:32:38 +02:00
bash
eb416ca7e5 refactor(Core/Movement): Remove 70y dispatch cap and isMoving lastPath guard 2026-05-08 21:14:19 +02:00
bash
bbd814347c refactor(Core/RPG): Remove MoveFarTo loop-breaker (cmangos has no equivalent) 2026-05-08 21:07:28 +02:00
bash
04af497cd1 feat(Core/Debug): Restore mmap-empty/mmap-noprogress/spline-blocked visibility whispers 2026-05-08 15:01:17 +02:00
bash
bbef216838 chore: Remove dead SearchForBestPath function and MaxMovementSearchTime config 2026-05-08 12:33:54 +02:00
bash
9715c5d214 fix(Core/Movement): Drop SearchForBestPath multi-Z probe (causes spurious z-shifts) 2026-05-08 12:26:15 +02:00
bash
e60e5add9c fix(Core/Travel): Reject NOT_USING_PATH shortcuts in chained probe (cmangos parity) 2026-05-08 12:04:34 +02:00
bash
cbba63acd1 fix(Core/Movement): Default GeneratePath forceDestination to false (matches cmangos) 2026-05-08 11:50:52 +02:00
bash
2e20210fad fix(Core/RPG): Drop forceDestination on MoveRandomNear reachability test 2026-05-08 11:21:00 +02:00
bash
91b217c962 Revert "feat(Core/Travel): Enable PathGenerator slope check on chained probe"
This reverts commit c8ca028ebef33c43fdae16f3ee3830396f3fbfd6.
2026-05-08 10:34:59 +02:00
bash
c8ca028ebe feat(Core/Travel): Enable PathGenerator slope check on chained probe 2026-05-08 10:34:40 +02:00
bash
4c63c183f2 fix(Core/Travel): Apply 70y cap at batch loop so stepIdx stays in sync 2026-05-08 10:29:34 +02:00
bash
a1a2972618 chore(Core/Movement): Tune dispatch cap to 70y 2026-05-08 10:10:51 +02:00
bash
fc2e42cddc feat(Core/Movement): Cap each MoveSplinePath dispatch at 100y for periodic replanning 2026-05-08 10:10:06 +02:00
bash
83e9ad3a97 fix(Core/Travel): Path-type bitmask, loop-breaker convergence, LaunchWalkSpline LOS-cull 2026-05-07 01:31:36 +02:00
bash
5077e01096 fix(Core/RPG): Drop counterproductive LOS cull in MoveFar mmap chain 2026-05-06 23:40:07 +02:00
bash
a1ce5ff595 fix(Core/Debug): Split Follow whisper into via=mmap and via=follow 2026-05-06 23:33:09 +02:00
bash
906e73f8ae fix(Core/RPG): Skip MoveFar:spline fallback when target is not in LOS 2026-05-05 00:02:46 +02:00
bash
e380bcaf53 feat(Core/RPG): Travel-node priority with bulk mmap dispatch and lastPath reuse 2026-05-04 23:58:33 +02:00
bash
61ec70e470 feat(Core/Debug): Restructure debug-move whispers with via= field 2026-05-04 23:53:37 +02:00
bash
ee8d02d1ed fix(Core/RPG): Drop off-mmap Z-snap recovery hack 2026-05-04 23:48:31 +02:00
bash
6dbf1bc982 chore: Tighten inline comments 2026-05-02 18:39:56 +02:00
bash
f2a5dee5f6 feat(Core/RPG): Dispatch full waypoint chain + lastPath reuse + off-mmap recovery
MoveFar:mmap dispatches the full chained-probe waypoint vector via
MotionMaster::MoveSplinePath instead of handing a single endpoint
to MoveTo. Removes the motion master's discretion to take a
straight-line shortcut between intermediate points (the diagonal-
through-air bug). Per-waypoint UpdateAllowedPositionZ and vmap
LoS pruning between consecutive waypoints catch geometry-crossing
pairs.

Off-mmap recovery: when the bot's start position has no mmap
polygon (PATHFIND_FARFROMPOLY_START), snap Z via vmap raycast and
NearTeleport so the next tick runs from a valid position.

LastMovement.lastPath populated after every dispatch
(LaunchWalkSpline + new mmap dispatch) so the 10% reuse and
no-worse reuse checks at the top of MoveFarTo can fire — both
gated on a 10y guard so a finished path isn't reused.

MoveFar:spline fallback uses exact_waypoint=false so MoveTo's
SearchForBestPath produces a terrain-following spline.
2026-05-02 18:39:56 +02:00
bash
26eefe4713 chore(Core/RPG): Add LOG_INFO traces in MoveFarTo for diagnostics 2026-05-02 18:39:56 +02:00
bash
4010034af0 feat(Core/RPG): MoveFarTo loop detection with strategy flip + grinding throttle
Per-bot ring buffer of last 3 path attempts on RpgInfo. When 3 mmap or 3 nodetravel attempts to the same dest fail, force the alternative routing strategy on the next tick. When both strategies have failed 3 times each (bothExhausted), fall through to MoveFar:spline rather than flip-flopping forever. Also drops the 10%-per-tick opportunistic combat engage during do-quest travel — the multiplier (0.20x) is the right knob; the random yield was overriding it and producing the 'still grinding too much while traveling' symptom.
2026-05-02 18:39:56 +02:00
bash
8a5df83f4f feat(Core/RPG): Refactor MoveFarTo decision tree (single 75y gate + chained probe)
Single 75y long-path gate, 40-step chained mmap probe via
WorldPosition::getPathFromPath, spellDistance shortcut to skip the
node graph when mmap can reach the destination, single-waypoint
spline fallback when both fail. MoveWorldObjectTo delegates to
MoveFarTo so quest approaches use the same routing hierarchy.
Removes the stuck-counter teleport recovery from MoveFarTo; the
UnstuckAction layer (planned) is the eventual safety net. Chain
probe fix included: getPathStepFrom uses the explicit-start
CalculatePath overload so each chain step actually advances from
the previous endpoint instead of restarting from the bot's real
position.
2026-05-02 18:39:45 +02:00
bash
f3817805dc feat(Core/Debug): Trace movement entry points via 'debug move' strategy 2026-05-02 18:01:29 +02:00
bash
7277ef8337 feat(Core/Debug): Visualize travel nodes and walk paths via .playerbots debug zone showpath 2026-05-02 18:01:29 +02:00
bash
5581ef7a9f feat(Core/RPG): Reorder do-quest above attack-anything 2026-05-02 18:01:29 +02:00
bash
2ff1d08f67 feat(Core/RPG): Pursue and act on quest GOs and items at POI 2026-05-02 18:01:29 +02:00
bash
078a480291 feat(Core/Loot): Make bag space for incoming quest items 2026-05-02 18:01:29 +02:00
bash
d9bfea502d feat(Core/Loot): Loot wild quest game objects 2026-05-02 18:01:29 +02:00
bash
d8910b0ed0 fix(Core/Inventory): Don't destroy active quest items 2026-05-02 18:01:29 +02:00
bash
b19ab481b3 feat(Core/Travel): Enable travel node system for RPG pathfinding (#2312) 2026-05-02 00:50:18 +02:00
Keleborn
4bd5a9b89c
Crash Fix. Queue arena packet instead of handle directly. (#2331)
<!--
Thank you for contributing to mod-playerbots, please make sure that
you...
1. Submit your PR to the test-staging branch, not master.
2. Read the guidelines below before submitting.
3. Don't delete parts of this template.

DESIGN PHILOSOPHY: We prioritize STABILITY, PERFORMANCE, AND
PREDICTABILITY over behavioral realism.

Every action and decision executes PER BOT AND PER TRIGGER. Small
increases in logic complexity scale
poorly across thousands of bots and negatively affect all. We prioritize
a stable system over a smarter
one. Bots don't need to behave perfectly; believable behavior is the
goal, not human simulation.
Default behavior must be cheap in processing; expensive behavior must be
opt-in.

Before submitting, make sure your changes aligns with these principles.
-->

## Pull Request Description
<!-- Describe what this change does and why it is needed -->
Have arenas follow the same path as battlegrounds when queueing .
Intended to to resolve discord user crash. 


## Feature Evaluation
<!--
If your PR is very minimal (comment typo, wrong ID reference, etc), and
it is very obvious it will not have
any impact on performance, you may skip these question. If necessary, a
maintainer may ask you for them later.
-->

<!-- Please answer the following: -->
- Describe the **minimum logic** required to achieve the intended
behavior.
- Describe the **processing cost** when this logic executes across many
bots.



## How to Test the Changes
<!--
- Step-by-step instructions to test the change.
- Any required setup (e.g. multiple players, number of bots, specific
configuration).
- Expected behavior and how to verify it.
-->



## Impact Assessment
<!-- As a generic test, before and after measure of pmon (playerbot pmon
tick) can help you here. -->
- Does this change increase per-bot/per-tick processing or risk scaling
poorly with thousands of bots?
    - - [x] No, not at all
    - - [ ] Minimal impact (**explain below**)
    - - [ ] Moderate impact (**explain below**)



- Does this change modify default bot behavior?
    - - [x] No
    - - [ ] Yes (**explain why**)



- Does this change add new decision branches or increase maintenance
complexity?
    - - [x] No
    - - [ ] Yes (**explain below**)



## AI Assistance
<!--
AI assistance is allowed, but all submitted code must be fully
understood, reviewed, and owned by the contributor.
We expect contributors to be honest about what they do and do not
understand.
-->
Was AI assistance used while working on this change?
- - [x] No
- - [ ] Yes (**explain below**)
<!--
If yes, please specify:
- Purpose of usage (e.g. brainstorming, refactoring, documentation, code
generation).
- Which parts of the change were influenced or generated, and whether it
was thoroughly reviewed.
-->



<!--
TRANSLATIONS:
Anything new that the bots say in chat must be in a translatable format.
This is done using GetBotTextOrDefault,
which you can search for in the codebase to find examples. Your code
needs to have English as the default fallback,
while the full translations need to be in an SQL update file. The
languages in the file are the nine language
options supported by AzerothCore: English, Korean, French, German,
Chinese, Taiwanese, Spanish, Spanish Mexico, and
Russian. See
data/sql/playerbots/updates/2025_12_27_ai_playerbot_fishing_text.sql as
an example of a translation SQL
update, whose content are called within the codebase at
src/strategy/actions/FishingAction.cpp
-->

## Final Checklist

- - [x] Stability is not compromised.
- - [x] Performance impact is understood, tested, and acceptable.
- - [x] Added logic complexity is justified and explained.
- - [x] Any new bot dialogue lines are translated.
- - [x] Documentation updated if needed (Conf comments, WiKi commands).

## Notes for Reviewers
<!-- Anything else that's helpful to review or test your pull request.
-->
2026-04-26 19:14:17 +02:00