Fix progression stalls and add normal class trainer visits
Core tests / core (push) Successful in 29s
Core tests / core (push) Successful in 29s
This commit is contained in:
@@ -232,3 +232,33 @@ By default:
|
||||
The project checkout keeps AzerothAI's local D1 state in `.wrangler/state`.
|
||||
|
||||
Do not delete these directories if you want the realm and character history to survive restarts.
|
||||
|
||||
## Class training and leveling
|
||||
|
||||
`ale/azerothai_training.lua` checks each managed resident after a level change and
|
||||
rechecks every minute. It visits a nearby class trainer when the core reports
|
||||
eligible spells, then uses the normal trainer purchase transaction. Purchases
|
||||
require interaction distance and sufficient character gold; spells and money are
|
||||
never granted. Combat, recovery, player control, and mixed parties suspend visits.
|
||||
Stalled visits release paused work and retry later. The monitor reports pending
|
||||
spells, trainer, blocked reason, and verified purchases separately.
|
||||
|
||||
This requires the native ALE methods installed by:
|
||||
|
||||
```bash
|
||||
python3 deploy/playable/patch-native-training.py /path/to/azerothcore
|
||||
```
|
||||
|
||||
Rebuild and deploy worldserver before enabling the training Lua module. The patch
|
||||
also restores the native RPG training trigger and prevents sightseeing flights
|
||||
for residents below level 60. Normal travel flight routes remain available.
|
||||
`install-lifecycle.py` copies the Lua module with the other resident services.
|
||||
Without the native API, the monitor reports that training is unavailable.
|
||||
|
||||
Training state and recoverable strategy leases live in
|
||||
`acore_auth.azerothai_training`, one row per resident. Existing trainer purchases
|
||||
made outside this workflow are not retroactively included in its purchase count.
|
||||
|
||||
Flight guards and telemetry use `HasUnitState(0x00000100)` (`UNIT_STATE_IN_FLIGHT`).
|
||||
ALE's `IsTaxi()` tests the flight-master NPC flag and must not be used to detect
|
||||
a player riding a taxi. Model decisions also yield to an active native flight.
|
||||
|
||||
Reference in New Issue
Block a user