2621 Commits

Author SHA1 Message Date
bash
1e55842c36 fix(Core/Travel): Match cmangos buildPath stitching, drop 75y guard 2026-05-18 23:52:19 +02:00
bash
1e07ef3d02 fix(Core/Travel): Preserve walk paths from taxi-path overwrite 2026-05-18 23:27:39 +02:00
bash
34600888a2 chore(Core/Travel): Warn admins to shutdown after generatenode 2026-05-18 23:18:24 +02:00
bash
c7eb1f7238 fix(Core/Travel): Skip 5y dedup when loading nodes from DB 2026-05-18 22:56:50 +02:00
bash
9ca851f837 chore(DB/Travel): Temporarily disable Aldrassil ramp anchors 2026-05-18 01:30:37 +02:00
bash
8662316212 fix(Core/Travel): Drop 2-point check, keep last-segment teleport guard 2026-05-18 01:26:30 +02:00
bash
39a8bf4396 fix(Core/Travel): Reject paths with >75y final-segment teleport jumps 2026-05-18 01:22:02 +02:00
bash
bb747404ba fix(Core/Travel): Reject 2-point BuildShortcut paths between non-adjacent nodes 2026-05-18 01:14:14 +02:00
bash
aa7baa99b2 chore(Core/Travel): Bump 2-point shortcut threshold to 75y 2026-05-18 01:11:12 +02:00
bash
6ebf7e8ec1 fix(Core/Travel): Reject 2-point BuildShortcut teleports in chained probe 2026-05-18 01:09:46 +02:00
bash
0e28bf26ee Revert non-progress chained-probe detection (broke valid paths) 2026-05-18 00:59:59 +02:00
bash
720d3f91e1 fix(Core/Travel): Loosen chained-probe non-progress threshold 2026-05-18 00:50:32 +02:00
bash
26d260d3a9 fix(Core/Travel): Bail chained probe on non-progress oscillation 2026-05-18 00:32:40 +02:00
bash
ac19374ed8 fix(Core/Travel): Chunk all saveNodeStore phases (deletes, nodes, links) 2026-05-17 13:05:33 +02:00
bash
793d3f8fdc fix(Core/Travel): Chunk saveNodeStore path inserts to avoid mega-tx 2026-05-17 12:56:39 +02:00
bash
7a8a2cd10c feat(DB/Travel): Add Aldrassil ramp travelnode anchors 2026-05-17 12:09:08 +02:00
bash
0e0b605e17 chore(Core/Debug): Compact debug-move whisper format 2026-05-17 11:39:58 +02:00
bash
6cf10c5057 feat(Core/Travel): Sparse-segment clip in LaunchWalkSpline 2026-05-17 01:29:28 +02:00
bash
13dba79982 feat(Core/RPG): Prefix-trim and sparse-segment clip on path dispatch 2026-05-17 01:23:01 +02:00
bash
4f193cb0cb feat(Core/RPG): Port cmangos 8-angle LOS+navmesh-snap to MoveWorldObjectTo 2026-05-17 01:15:29 +02:00
bash
0ba9908007 chore(Core/RPG): Loosen Z-mismatch threshold from 5y to 10y 2026-05-17 01:04:13 +02:00
bash
c5435f15c1 fix(Core/RPG): Reject mmap paths whose endpoint Z misses dest 2026-05-17 01:00:57 +02:00
bash
ba1b429bc5 fix(Core/RPG): Reject mmap paths that LOS-fail any segment 2026-05-15 00:12:46 +02:00
bash
ab0c593898 feat(Core/RPG): Switch POI when current cluster is empty 2026-05-14 23:49:55 +02:00
bash
20a8ec1ef0 fix(Core/RPG): Stop next to quest objects instead of on top of them 2026-05-14 23:09:41 +02:00
bash
e42b284d84 chore: Drop bot movement console logs 2026-05-14 22:51:36 +02:00
bash
d91aeebd38 chore: Tighten comments in travel and movement code 2026-05-14 22:38:12 +02:00
bash
1be1ee37d1 chore(Core/Travel): Drop cmangos reference in RefineWalkPoints comment 2026-05-14 22:17:42 +02:00
bash
f516104f97 fix(Core/RPG): LOS check on MoveRandomNear samples to avoid tree tunneling 2026-05-14 22:07:14 +02:00
bash
6ace916242 Revert "fix(Core/Travel): LOS check before trusting raw cmangos waypoints" 2026-05-14 22:01:00 +02:00
bash
a7a3a5fb78 fix(Core/Travel): LOS gate on empty-probe single-waypoint fallback 2026-05-14 21:59:35 +02:00
bash
6a0dc3f2f6 fix(Core/Travel): LOS check before trusting raw cmangos waypoints 2026-05-14 21:56:54 +02:00
bash
76d776e572 chore(Core/Travel): Revert travelnode threshold to 50y 2026-05-14 21:40:10 +02:00
bash
9cc0e5cbb0 chore(Core/Travel): Bump travelnode threshold to 75y 2026-05-14 21:38:41 +02:00
bash
a949aa9288 fix(Core/Travel): Trust travelnode waypoints when AC mmap rejects segments 2026-05-14 21:21:40 +02:00
bash
2825e130a7 feat(Core/Travel): Hardcode 50y travelnode threshold 2026-05-14 21:19:28 +02:00
bash
3fcd5d6924 core filter isnt working yet 2026-05-14 19:48:38 +02:00
bash
565b853f53 refactor(Core/Travel): Drop redundant NAV_GROUND_STEEP excludes (core handles via IsBot) 2026-05-10 20:20:07 +02:00
bash
c9c63faff8 fix(Core/Travel): Exclude NAV_GROUND_STEEP at all bot PathGenerator sites 2026-05-10 18:23:54 +02:00
bash
e8da8e0e43 feat(Core/Travel): Align MoveFarTo and probe pipeline with cmangos 2026-05-10 18:14:42 +02:00
bash
44cb9a5783 feat(Core/Travel): Cap bots at 50° via NAV_GROUND_STEEP exclude 2026-05-10 17:31:19 +02:00
bash
a1ad139716 feat(Core/Debug): Trace movement entry points and visualize travel nodes 2026-05-10 17:31:01 +02:00
bash
9a21ccabfb feat(Core/RPG): MoveFarTo flow, quest-pursuit at POI, MoveRandomNear retries 2026-05-10 17:30:56 +02:00
bash
29ec04e577 feat(Core/Travel): Travel-node graph routing for long-distance pathing 2026-05-10 17:30:50 +02:00
bash
80dc6a856e feat(Core/Loot): Quest GO loot, bag-make-room, item-pursuit 2026-05-10 17:30:44 +02:00
bash
01d91092ec chore(Tools): Add mmap/vmap client-data extraction script 2026-05-10 17:30:38 +02:00
bash
b49253821b feat(DB/Travel): Import cmangos travel-node graph 2026-05-10 17:30:33 +02:00
Keleborn
9118c9671a
Fix/travelValType (#2376)
<!--
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 -->
Incorrect var types when I refactored away from SQL lookup. 


## 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-05-09 19:14:05 +02:00
Keleborn
8cb847db5d
Fix location cache. (#2374)
<!--
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 -->
Bot locations were not correctly registered, so they werent picking it
as often as they should.
In part related to #2369


## 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?
    - - [ ] No, not at all
    - - [ ] Minimal impact (**explain below**)
    - - [ ] Moderate impact (**explain below**)



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



- Does this change add new decision branches or increase maintenance
complexity?
    - - [ ] 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?
- - [ ] 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

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

## Notes for Reviewers
<!-- Anything else that's helpful to review or test your pull request.
-->
2026-05-09 09:48:59 +02:00
NoxMax
66d41e1d79
Feat: Selective reset to default of combat or non-combat strategies (#2365)
<!--
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 -->
Adds the commands `co !` and `nc !`, which would reset either the combat
or non-combat strategies of a follower bot, without affecting the other
strategies or any other values.

Also ChangeStrategyAction.cpp was refactored for duplicate code by
introducing the helper function `HandleStrategyCommon`, that gets called
by `ChangeCombatStrategyAction` and `ChangeNonCombatStrategyAction`


## 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.

`reset botAI` already resets strategies back to default, but it resets
ALL strategies and wipes values such as formations, stances, and
everything else under the `value` key in playerbots_db_store>value. The
new commands don't run across many bots, only on the bot the command is
run on.


## 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.
-->
1. Run either `co ?` and `nc ?` to see current list of combat and
non-combat strategies the bot has.
2. Add and remove strategies to both `co` and `nc`.
3. Confirm your changes with `co ?` and `nc ?`.
4. Run `co !` only.
5. Run `co ?` to confirm combat strategies have been reset to default,
and `nc ?` to confirm it has not been affected. Then run `nc !` to reset
it as well.
6. Do another test [inside an
instance](https://github.com/mod-playerbots/mod-playerbots/wiki/Playerbot-Commands#raid-specific-strategies).
Remove a bunch of `nc` strategies, including the strategy for the raid
itself.
7. Run `nc !` and check that the defaults have been reset, but that the
instance strategy has been re-added as well.



## 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?
    - - [ ] No
    - - [x] Yes (**explain below**)
Technically it adds a new case to ChangeCombatStrategyAction, but it's
straightforward.


## 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?
- - [ ] No
- - [x] 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.
-->
Review only in case I was missing something, and then to easily refactor
duplicate code with HandleStrategyCommon.



<!--
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.
-->

[Commands
wiki](https://github.com/mod-playerbots/mod-playerbots/wiki/Playerbot-Commands#strategies)
need to be modified to read:

---
You can query the bot to report what strategies are currently being
used:

```
co ?
nc ?
```
You can reset either of the bot's strategies back to defaults:

```
co !
nc !
```
---

Tangentially I also recommend [this
section](https://github.com/mod-playerbots/mod-playerbots/wiki/Playerbot-Commands#non-combat-strategies)
to be edit to this for more accuracy:

---
General
strategy | description
:---|:---
``food`` | enable bot's ability to eat/drink
``pvp`` | enable bot's ability to engage in PVP combat. Note: PVP mode
wouldn't appear active until the bot starts combat
``loot`` | enable bot's ability to loot. Note: adding or removing that
strategy for randombots requires GM level
2026-05-08 22:42:18 -07:00