Improve AdventureBot planning and travel performance
This commit is contained in:
1 parent
69b5a1c4a1
commit
d1ef007cef
18 files changed
+906
-27
No files matched your search
@@ -1,3 +1,115 @@
|
||||
# Aktuell: Routenplaner-Last behoben und volle Population live geprüft
|
||||
|
||||
Nutzer meldete Serverlags und bat nach Prüfung bestehender Navigationsprobleme
|
||||
um den Fix. Vorher mit110Bots: ActionExecutor regelmäßig20–29s je30s, einzelne
|
||||
PlanAdaptiveRoute-Aufrufe bis10.9s/13693FlightEstimates. Ursache war eine implizit
|
||||
nahezu vollständige Flugverknüpfung, Flugausstiegprüfung jedes Straßenpunktes,
|
||||
virtuelle Straßeneinstiegssuche auch an normalen Graphknoten und insbesondere
|
||||
40-Yard-Gebietssampling ganzer nativer Taxipfade für neue Level/Fraktionskeys.
|
||||
|
||||
Fix in ClientlessTravelGraphMgr: maximal2 vorsortierte Flugausstiege pro Kante/
|
||||
8proPlan,16 echte FlightEstimates proPlan, Schätzcache über beide Suchtier,
|
||||
Flugconnectoren nur Ziel/mapwechselnde oder physische Transportquellen statt
|
||||
aller Taxis, direkter same-map Location-Flug vor Makrosuche, virtuelle Forward-
|
||||
Entry-Reparatur nur an echten Graph-Sackgassen. AdventureAreaMgr prüft native
|
||||
Taxipfadexistenz plus bereits fraktions-/gebietskataloggeprüfte Endknoten; das
|
||||
Überfliegen gesperrter Gebiete ist erlaubt und wird nicht mehr in40yd-Schritten
|
||||
abgetastet. Native Flug-/Gebiets-/Start-/Landesicherheit bleibt bestehen.
|
||||
|
||||
Mehrere inkrementelle Builds regelkonform: Loader/Testaufnahme0, safe logout,
|
||||
nullSitzungen oder dokumentierte5min-Ausnahme, saubererShutdown, ausschließlich
|
||||
-j10. Gezielter test_free_flight_planner bei jedem Build PASS, diff-check PASS.
|
||||
Final installiert; frischer ready-Prozess47340, Ports8085/8087. Vier Recoverybots
|
||||
54/64/89/109 in Fraktionshauptstädten geprüft; Details unter
|
||||
doc/clientless/checkpoints/2026-10-31-route-performance/. Loader/Testaufnahme
|
||||
wieder1, volle Pools50/5/50/5=110 online.
|
||||
|
||||
Live nach finalem Fix: Kaltplanung statt10–20s noch1.93s einmalig; folgende
|
||||
vergleichbare Routen51–153ms. Bei110Bots drei volle30s-Fenster Actions4.11/4.38/
|
||||
4.14s statt20–29s; Controllers6.63/7.06/6.79s, keine RECOVERY_FAILED oder
|
||||
TRAVEL_PLAN_FAILED. CPU-Prozess etwa130% über mehrere Threads; Server bleibt
|
||||
ready. Noch auffällig: Fizzira43 wiederholt alle2–3s denselben Intent-Fallback
|
||||
instance_visit_at_2217->446 (Intent none, keine Action), kein eigentlicher
|
||||
Travelplan-Fehler. Andere neue Fallbacks:154(13),95(12),50/114(8),146(7),105(6).
|
||||
Fizzira ist ein separater Tagesplan/Intent-Fallback-Bug und sollte als nächstes
|
||||
behoben werden. Kein Commit/Push für diese Arbeit angefordert.
|
||||
|
||||
---
|
||||
|
||||
# Aktuell: Brindras verwaister Gruppen-Pfadvalidator behoben und live geprüft
|
||||
|
||||
Brindra86 hing nach einer früheren Gruppe hinter der Tiefenbahn auf der
|
||||
Eisenschmiede-Seite fest. MMAP berechnete vollständige Wege, doch TravelMgr
|
||||
meldete `owner ground-safety validator rejected spline`; die Route startete
|
||||
wiederholt über `virtual_ground_entry`. Ursache: `AdventureGroupTravelMgr::Observe`
|
||||
kehrte bei `GetGroup()==nullptr` zurück, ohne den zuvor installierten
|
||||
GroundPathAdapter/PathValidator und Gruppenreise-Record zu entfernen.
|
||||
|
||||
Fix in AdventureGroupTravelMgr.cpp: Wenn keine Gruppe mehr besteht und ein
|
||||
Gruppenreise-Record vorhanden ist, wird `Clear(player)` aufgerufen. Dadurch werden
|
||||
Adapter, Validator, eigener Reisezustand und Record entfernt; Bots ohne früheren
|
||||
Record bleiben unberührt. Regression in test_adventure_group_travel.py verfolgt
|
||||
beide Registrierungen und beweist deren Entfernung samt Record/Reiseabbruch.
|
||||
|
||||
Buildregel eingehalten: Loader/Testaufnahme0, safe logout angefordert. Nach fünf
|
||||
Minuten blieben13 Bots auf regulären Flug/Taxistrecken; Saveall, vollständige TSV-
|
||||
Liste mit GUID/Name/Fraktion/Position/Taxi und native Info/Flight/Transport/Action-
|
||||
Ausgaben unter `/home/wow_admin/wow_cata_server/checkpoints/brindra-group-validator/`.
|
||||
Server sauber beendet. Gruppentravel-TestPASS. Build-j10 am Ende vollständig
|
||||
gelinkt (ELF geprüft), installiert, frischer ready-Start Prozess32369, Ports8085/
|
||||
8087. Wegen einer fehlerhaften Tool-Sitzungsrückmeldung liefen kurz mehrere eigene
|
||||
Linkprozesse auf dasselbe Artefakt; ausschließlich diese Prozesse beendet, danach
|
||||
ein einzelner sauberer Neu-Link. Installierte alte Binary war dabei nie überschrieben.
|
||||
|
||||
Alle13 Restbots eingeloggt, alte Flug-/Transportzustände waren weg, in
|
||||
Sturmwind/Orgrimmar geborgen und per Area-Ausgabe bestätigt. Loader/Testaufnahme
|
||||
wieder1; tatsächlich enabled1/schema1/busy0/known110. Brindra war erneut in einer
|
||||
Gruppe; `interaction 86 leave` führte live zu `No group travel state`, grouped0.
|
||||
Der zuvor abgelehnte Weg läuft nun mit Travel=Moving und Nav reason=`ok`, ohne
|
||||
PathRejected. Brindras Schedule ist wieder an. Kein Commit/Push angefordert.
|
||||
|
||||
---
|
||||
|
||||
# Aktuell: GM-Tagesplaneditor implementiert, gebaut, installiert und live geprüft
|
||||
|
||||
Nutzerauftrag: aktuelle/künftige Intents samtLocation perBefehl, GUID/Population,
|
||||
Fraktions- undLevelgruppenfilter. NeuerBefehl `clientless adventure editplan`
|
||||
unterbestehendemGM-Kommando. Syntax/Beispiele: doc/clientless/plan-commands.md.
|
||||
Scope ausdrücklich EINGELOGGTE AdventureBots, heutige aktuelle/künftigeStunden.
|
||||
GUID|all, current|next|next+N|Stundenrange, Intent|keep|instance-or-raid,
|
||||
Location|auto|capital|keep, alliance|horde|both, Min/Max1..85, preview|apply.
|
||||
Vorschau kopiertRecord und verändert wederDB nochRNG. Änderungen validiert mit
|
||||
normalemAllowed/Level/Area/Flight; FormationbenötigtzulässigenFolgeblock, nieStunde23.
|
||||
GültigeBots persistieren sofort und aktualisierenRAMPlan; ungültigeBots werden
|
||||
mitGrund proBot komplett übersprungen. Aktuell benutzt sicherenSetWantedHandover,
|
||||
zukünftig lässtaktuellenIntentlaufen. KeineTeleports/Gruppenauflösung durchEditor.
|
||||
KeineSchemaänderung/keineLuaänderung nötig. Current reaktiviertSchedule, Future
|
||||
behältmanuellenSchedulemode; beiBedarf schedule GUID on.
|
||||
|
||||
Betrieb: User warerneutbeimAufzeichnen, asynchrongefragt; Antwort "bin fertig gut
|
||||
aufgepasst" erlaubteInstallation/Restart. Loader/TestAdmissionpausiert, safeall um
|
||||
13:41:55CET; nachmehrals5min9Restbots53/54/67/74/75/86/89/125/145 mitSnapshot,
|
||||
saveallDBPositionen und verfügbarenFlags dokumentiert; sauberShutdown10, Prozessende
|
||||
verifiziertVORBuild. BestehenderNinjaDebugBuild-j10 EXIT0, viergezielteTestsPASS.
|
||||
InstallEXIT0, frischerreadyStartProzess25737, Ports8085/8087geprüft. NeunBots
|
||||
geprüft/indenHauptstädtenzurückgesetzt. Brindra86brauchtezweitenTeleport nachsicherem
|
||||
BehaviorStop; area5148bestätigt undSchedulewiederon. Loader/TestEnabled1undAdmission
|
||||
restauriert; tatsächlichenLoader enabled1/schema1/busy0/pools50/5/50/5bestätigt.
|
||||
Restbotpositionsquelle ausdrücklich letztesSaveall, keineunbelegtenLivekoordinaten.
|
||||
|
||||
NativeLiveprüfung: Preview26next undallianceLevel60Filter, dann26Stunde20
|
||||
social->rest(auto), DBpersistenzgeprüft; originalsocial/goldshire_tavern wiedermit
|
||||
Befehlhergestellt und alleSlots18..23gegenBackupidentischbestätigt. Dergeplante
|
||||
Gruppentest14–15/15–16bleibtbestehen. RaidJoin0/BGJoin0unverändert.
|
||||
KeinCommitfürdiesenAuftragangefordert/erstellt, vorherigerCommit69b5a1c4a1.
|
||||
Code: AdventurePlanCommand.h, AdventureBehaviorMgr.cpp/.h. Test:
|
||||
tests/clientless/test_adventure_plan_commands.py extrahiertproduktiveEditPlanMethode.
|
||||
Belege: doc/clientless/checkpoints/2026-10-31-plan-command/. VierTestsstattkompletter
|
||||
Suiteerneut, frühere120/120historisch. git diff --check erfolgreich.
|
||||
Vorheriges32MBRohlogundPythonCacheweiterlokalunversioniert, nichtlöschen.
|
||||
|
||||
---
|
||||
|
||||
# Aktueller Gruppentest geplant: 31.10., 14–15 Uhr Vorbereitung, 15–16 Uhr Ziele
|
||||
|
||||
Nutzer verlangt NÄCHSTEN Intent Gruppenbildung, danach gemischt Dungeon/Raid.
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"cause": "group travel path validator remained registered after leaving group",
|
||||
"fix": "AdventureGroupTravelMgr::Observe clears an existing group-travel record when GetGroup returns null",
|
||||
"regression_test": "PASS: test_adventure_group_travel.py",
|
||||
"build": "PASS: CMake/Ninja Debug -j10, final artifact verified as ELF",
|
||||
"installed": true,
|
||||
"startup": "PASS: fresh ready, process 32369, ports 8085 and 8087",
|
||||
"live_test": "PASS: Brindra left group, report showed no group travel state/grouped=0; same route changed from PathRejected to Moving with nav reason ok",
|
||||
"loader_restored": "enabled=1 schema=1 busy=0 known=110",
|
||||
"recovery_count": 13,
|
||||
"raw_evidence": "/home/wow_admin/wow_cata_server/checkpoints/brindra-group-validator/",
|
||||
"commit": null
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"Clientless.Adventure.Loader.Enabled": 1,
|
||||
"Clientless.TestBot.Enabled": 1,
|
||||
"requested_at": "2026-10-31T13:41:55.253785+01:00",
|
||||
"monotonic": 24044.355791678
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
[
|
||||
{
|
||||
"character_guid": "26",
|
||||
"local_date": "20261031",
|
||||
"hour_slot": "18",
|
||||
"intent": "leisure",
|
||||
"location_key": "poi_guard_542"
|
||||
},
|
||||
{
|
||||
"character_guid": "26",
|
||||
"local_date": "20261031",
|
||||
"hour_slot": "19",
|
||||
"intent": "groupformation",
|
||||
"location_key": "poi_npc_314039"
|
||||
},
|
||||
{
|
||||
"character_guid": "26",
|
||||
"local_date": "20261031",
|
||||
"hour_slot": "20",
|
||||
"intent": "social",
|
||||
"location_key": "goldshire_tavern"
|
||||
},
|
||||
{
|
||||
"character_guid": "26",
|
||||
"local_date": "20261031",
|
||||
"hour_slot": "21",
|
||||
"intent": "social",
|
||||
"location_key": "goldshire_tavern"
|
||||
},
|
||||
{
|
||||
"character_guid": "26",
|
||||
"local_date": "20261031",
|
||||
"hour_slot": "22",
|
||||
"intent": "groupformation",
|
||||
"location_key": "poi_npc_314313"
|
||||
},
|
||||
{
|
||||
"character_guid": "26",
|
||||
"local_date": "20261031",
|
||||
"hour_slot": "23",
|
||||
"intent": "raid",
|
||||
"location_key": "instance_visit_at_3528"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,44 @@
|
||||
[
|
||||
{
|
||||
"character_guid": "26",
|
||||
"local_date": "20261031",
|
||||
"hour_slot": "18",
|
||||
"intent": "leisure",
|
||||
"location_key": "poi_guard_542"
|
||||
},
|
||||
{
|
||||
"character_guid": "26",
|
||||
"local_date": "20261031",
|
||||
"hour_slot": "19",
|
||||
"intent": "groupformation",
|
||||
"location_key": "poi_npc_314039"
|
||||
},
|
||||
{
|
||||
"character_guid": "26",
|
||||
"local_date": "20261031",
|
||||
"hour_slot": "20",
|
||||
"intent": "social",
|
||||
"location_key": "goldshire_tavern"
|
||||
},
|
||||
{
|
||||
"character_guid": "26",
|
||||
"local_date": "20261031",
|
||||
"hour_slot": "21",
|
||||
"intent": "social",
|
||||
"location_key": "goldshire_tavern"
|
||||
},
|
||||
{
|
||||
"character_guid": "26",
|
||||
"local_date": "20261031",
|
||||
"hour_slot": "22",
|
||||
"intent": "groupformation",
|
||||
"location_key": "poi_npc_314313"
|
||||
},
|
||||
{
|
||||
"character_guid": "26",
|
||||
"local_date": "20261031",
|
||||
"hour_slot": "23",
|
||||
"intent": "raid",
|
||||
"location_key": "instance_visit_at_3528"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,6 @@
|
||||
[
|
||||
{
|
||||
"intent": "rest",
|
||||
"location_key": "goldshire_tavern"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,132 @@
|
||||
{
|
||||
"snapshot_at": "2026-10-31T13:47:02.811753+01:00",
|
||||
"bots": [
|
||||
{
|
||||
"guid": "53",
|
||||
"name": "Noranda",
|
||||
"race": "1",
|
||||
"map": "571",
|
||||
"position_x": "5728.95",
|
||||
"position_y": "695.284",
|
||||
"position_z": "688.058",
|
||||
"taxi_path": "",
|
||||
"faction": "alliance",
|
||||
"position_source": "saveall immediately before shutdown; last database-saved position",
|
||||
"individual_combat_teleport": "not exposed by current native status; aggregate safe logout and native flight/transport diagnostics captured separately",
|
||||
"recovery_result": "Online login confirmed; admin teleport to faction capital; native adventure area confirmed map0/area5148 Alliance or map1/area5170 Horde."
|
||||
},
|
||||
{
|
||||
"guid": "54",
|
||||
"name": "Falaeriel",
|
||||
"race": "10",
|
||||
"map": "1",
|
||||
"position_x": "1614",
|
||||
"position_y": "-4323.1",
|
||||
"position_z": "64.094",
|
||||
"taxi_path": "",
|
||||
"faction": "horde",
|
||||
"position_source": "saveall immediately before shutdown; last database-saved position",
|
||||
"individual_combat_teleport": "not exposed by current native status; aggregate safe logout and native flight/transport diagnostics captured separately",
|
||||
"recovery_result": "Online login confirmed; admin teleport to faction capital; native adventure area confirmed map0/area5148 Alliance or map1/area5170 Horde."
|
||||
},
|
||||
{
|
||||
"guid": "67",
|
||||
"name": "Volasha",
|
||||
"race": "8",
|
||||
"map": "1",
|
||||
"position_x": "-4483.48",
|
||||
"position_y": "-1854",
|
||||
"position_z": "132.231",
|
||||
"taxi_path": "25 42 ",
|
||||
"faction": "horde",
|
||||
"position_source": "saveall immediately before shutdown; last database-saved position",
|
||||
"individual_combat_teleport": "not exposed by current native status; aggregate safe logout and native flight/transport diagnostics captured separately",
|
||||
"recovery_result": "Online login confirmed; admin teleport to faction capital; native adventure area confirmed map0/area5148 Alliance or map1/area5170 Horde."
|
||||
},
|
||||
{
|
||||
"guid": "74",
|
||||
"name": "Nimbin",
|
||||
"race": "7",
|
||||
"map": "1",
|
||||
"position_x": "-3962.06",
|
||||
"position_y": "-2889.03",
|
||||
"position_z": "111.189",
|
||||
"taxi_path": "179 389 ",
|
||||
"faction": "alliance",
|
||||
"position_source": "saveall immediately before shutdown; last database-saved position",
|
||||
"individual_combat_teleport": "not exposed by current native status; aggregate safe logout and native flight/transport diagnostics captured separately",
|
||||
"recovery_result": "Online login confirmed; admin teleport to faction capital; native adventure area confirmed map0/area5148 Alliance or map1/area5170 Horde."
|
||||
},
|
||||
{
|
||||
"guid": "75",
|
||||
"name": "Faeleran",
|
||||
"race": "10",
|
||||
"map": "1",
|
||||
"position_x": "21.0141",
|
||||
"position_y": "-3100.41",
|
||||
"position_z": "119.486",
|
||||
"taxi_path": "25 23 ",
|
||||
"faction": "horde",
|
||||
"position_source": "saveall immediately before shutdown; last database-saved position",
|
||||
"individual_combat_teleport": "not exposed by current native status; aggregate safe logout and native flight/transport diagnostics captured separately",
|
||||
"recovery_result": "Online login confirmed; admin teleport to faction capital; native adventure area confirmed map0/area5148 Alliance or map1/area5170 Horde."
|
||||
},
|
||||
{
|
||||
"guid": "86",
|
||||
"name": "Brindra",
|
||||
"race": "3",
|
||||
"map": "0",
|
||||
"position_x": "-5298.76",
|
||||
"position_y": "-598.388",
|
||||
"position_z": "388.853",
|
||||
"taxi_path": "",
|
||||
"faction": "alliance",
|
||||
"position_source": "saveall immediately before shutdown; last database-saved position",
|
||||
"individual_combat_teleport": "not exposed by current native status; aggregate safe logout and native flight/transport diagnostics captured separately",
|
||||
"recovery_result": "Online login confirmed; admin teleport to faction capital; native adventure area confirmed map0/area5148 Alliance or map1/area5170 Horde. First teleport drifted back to old movement; stopped behavior safely, repeated teleport verified area5148; schedule on restored."
|
||||
},
|
||||
{
|
||||
"guid": "89",
|
||||
"name": "Tahuima",
|
||||
"race": "6",
|
||||
"map": "571",
|
||||
"position_x": "2718.31",
|
||||
"position_y": "6232.1",
|
||||
"position_z": "83.5786",
|
||||
"taxi_path": "",
|
||||
"faction": "horde",
|
||||
"position_source": "saveall immediately before shutdown; last database-saved position",
|
||||
"individual_combat_teleport": "not exposed by current native status; aggregate safe logout and native flight/transport diagnostics captured separately",
|
||||
"recovery_result": "Online login confirmed; admin teleport to faction capital; native adventure area confirmed map0/area5148 Alliance or map1/area5170 Horde."
|
||||
},
|
||||
{
|
||||
"guid": "125",
|
||||
"name": "Koruhon",
|
||||
"race": "6",
|
||||
"map": "1",
|
||||
"position_x": "2822",
|
||||
"position_y": "-481.923",
|
||||
"position_z": "112.377",
|
||||
"taxi_path": "58 25 ",
|
||||
"faction": "horde",
|
||||
"position_source": "saveall immediately before shutdown; last database-saved position",
|
||||
"individual_combat_teleport": "not exposed by current native status; aggregate safe logout and native flight/transport diagnostics captured separately",
|
||||
"recovery_result": "Online login confirmed; admin teleport to faction capital; native adventure area confirmed map0/area5148 Alliance or map1/area5170 Horde."
|
||||
},
|
||||
{
|
||||
"guid": "145",
|
||||
"name": "Gorgar",
|
||||
"race": "2",
|
||||
"map": "530",
|
||||
"position_x": "-1757.67",
|
||||
"position_y": "5231.64",
|
||||
"position_z": "-47.6846",
|
||||
"taxi_path": "",
|
||||
"faction": "horde",
|
||||
"position_source": "saveall immediately before shutdown; last database-saved position",
|
||||
"individual_combat_teleport": "not exposed by current native status; aggregate safe logout and native flight/transport diagnostics captured separately",
|
||||
"recovery_result": "Online login confirmed; admin teleport to faction capital; native adventure area confirmed map0/area5148 Alliance or map1/area5170 Horde."
|
||||
}
|
||||
],
|
||||
"completed": true
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"build": "PASS -j10",
|
||||
"installed": true,
|
||||
"startup": "fresh ready and process25737 with ports8085/8087",
|
||||
"tests": [
|
||||
"plan-command parser and production EditPlan",
|
||||
"intent state",
|
||||
"day persistence",
|
||||
"group departure"
|
||||
],
|
||||
"tests_passed": 4,
|
||||
"live_validation": "GUID26 future hour20 persisted; restored original18-23 and compared all six rows; filtered read-only previews accepted",
|
||||
"restored_loader": 1,
|
||||
"restored_test_admission": true,
|
||||
"raid_join_enabled": false,
|
||||
"bg_join_enabled": false,
|
||||
"recovery_count": 9,
|
||||
"scope": "online AdventureBots; edits persisted for restart; no offline selection",
|
||||
"git_commit": "not requested for this task"
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
# Safe-logout recovery list before route-planner performance build
|
||||
|
||||
- Safe logout requested: 2026-10-31 14:28 CET (approximately; console command)
|
||||
- Snapshot/saveall: 2026-10-31 14:34 CET
|
||||
- Loader and TestBot admission: disabled before the request
|
||||
- Native aggregate at the five-minute limit: sessions 4, combat 0, transport 0,
|
||||
flight/taxi 4, loading 0
|
||||
- Teleport-in-progress is not exposed by the current native status command.
|
||||
|
||||
| GUID | Name | Faction | Saved position | Combat | Flight/taxi | Transport | Action/status before shutdown |
|
||||
|---:|---|---|---|---:|---:|---:|---|
|
||||
| 54 | Falaeriel | Horde | map 1, 5309.99 -3820.91 1723.56 | no | failed free flight, still flying/mounted | no | `travel_to_location`, no safe bounded corridor |
|
||||
| 64 | Hildda | Alliance | map 0, -8802.94 642.241 106.207 | no | failed free flight, still flying/mounted | no | `travel_to_location`, no safe bounded corridor |
|
||||
| 89 | Tahuima | Horde | map 1, 1754.87 -4343.36 115.299 | no | failed free flight, still flying/mounted | no | `travel_to_location`, no safe bounded corridor |
|
||||
| 109 | Rixbin | Horde | map 530, 157 6047.06 57.2654; taxi 118 102 | no | native taxi active; prior free flight arrived | no | `travel_to_location`, taxi path 537 (118 to 102) |
|
||||
|
||||
The first three records demonstrate an existing safe-logout gap: failed free
|
||||
flight deliberately holds the bot mounted in the air, so the native safety gate
|
||||
can never become ready. Per the five-minute build rule they were not detached or
|
||||
force-logged-out individually; the server is shut down cleanly before compiling.
|
||||
After restart all four records must be checked and, if necessary, reset to
|
||||
Stormwind or Orgrimmar before normal loader operation resumes.
|
||||
|
||||
## Incremental performance build
|
||||
|
||||
The first live measurement showed that limiting road exits alone was
|
||||
insufficient. A second safe logout was requested at approximately 14:36 CET
|
||||
with the loader still disabled. GUIDs 64, 89 and 109 logged out safely. GUID 54
|
||||
remained in `FlightState::Failed` with movement flags still reporting flight
|
||||
(`flight segment made no confirmed progress`) beyond the five-minute limit.
|
||||
It is the sole recovery record for the incremental build; no individual forced
|
||||
logout or flight interruption was used before the clean server shutdown.
|
||||
|
||||
## Recovery result
|
||||
|
||||
After each installed build the recorded characters were logged in with the
|
||||
loader paused. All four had lost stale taxi/free-flight controller state.
|
||||
Falaeriel, Tahuima and Rixbin were verified in Orgrimmar (allowed area 5170 or
|
||||
1637); Hildda was verified in Stormwind (allowed area 5148). Their saved DB
|
||||
positions are now in the correct faction capitals and have empty taxi paths.
|
||||
Normal loader and TestBot admission were restored after the final build.
|
||||
@@ -0,0 +1,66 @@
|
||||
# Tagespläne per GM-Befehl bearbeiten
|
||||
|
||||
In der Konsole ohne Punkt, im Spiel mit führendem Punkt. Benötigt GM-Berechtigung.
|
||||
|
||||
```
|
||||
clientless adventure editplan <guid|all> <Zeitraum> <Intent> <Location> <Fraktion> <MinLevel> <MaxLevel> <preview|apply>
|
||||
```
|
||||
|
||||
- Ziel: einzelne Charakter-GUID oder `all` für alle eingeloggten AdventureBots.
|
||||
Offlinebots, Dungeonbots und echte Spieler werden nicht verändert.
|
||||
- Zeitraum: `current`, `next`, `next+1` (übernächste Stunde), eine Stunde `15`
|
||||
oder inklusive Spanne `15-17`. Nur heutige aktuelle/künftige Stunden;
|
||||
kein stiller Überlauf zum nächsten Tag. `current-next` ist ebenfalls möglich.
|
||||
- Intent: vorhandener Intentname, `keep` zum Beibehalten oder `instance-or-raid`
|
||||
für einen gemischten Test. Letzteres versucht bei geraden GUIDs Raid, sonst Dungeon;
|
||||
bei `auto` fällt ein nicht zulässiger Raid auf Dungeon zurück.
|
||||
- Location: konkreter Location-Key, `keep`, `auto` für die normale profil- und
|
||||
zugangsabhängige Auswahl oder `capital` für einen gültigen Ort in Sturmwind bzw.
|
||||
Orgrimmar. TravelGraph-Node-Keys sind nicht automatisch Location-Keys.
|
||||
- Fraktion: `alliance`, `horde`, `both`; Levelgrenzen inklusive, 1–85.
|
||||
- `preview` zeigt die geplanten Änderungen ohne Datenbank-, Bewegungs- oder
|
||||
Zufallszustandsänderung. `apply` speichert die Änderungen im persistenten Tagesplan
|
||||
und aktualisiert die laufenden Pläne ohne Neustart oder Lua-Änderung.
|
||||
|
||||
Ungültige Ziele werden gemeldet und für den betreffenden Bot wird die gesamte
|
||||
angeforderte Spanne übersprungen. Andere gültige Bots werden bearbeitet.
|
||||
Alle normalen Level-, Fraktions-, Gebiets-, Flug- und Instanzregeln bleiben aktiv.
|
||||
Gruppenbildung benötigt eine zulässige Folgeaktivität; diese deshalb zuerst setzen.
|
||||
Gruppenbildung in Stunde23 wird abgewiesen, weil kein Folgeblock existiert.
|
||||
|
||||
Aktuelle Änderungen aktivieren die Tagesplansteuerung und gehen durch den normalen
|
||||
sicheren Intentwechsel. Gruppenführung und laufende Spielerinstanzen behalten ihre
|
||||
normalen Regeln; dieser Befehl teleportiert nicht und löst keine Gruppen auf.
|
||||
Künftige Änderungen lassen den aktuellen Intent laufen. Bei manuell deaktiviertem
|
||||
Tagesplan muss für dessen spätere Ausführung `schedule <guid> on` verwendet werden.
|
||||
Bereits begonnene vorgezogene Gruppenreisen werden durch künftige Änderungen nicht
|
||||
zurückgesetzt. Die betroffene Anzahl und jeder übersprungene Bot werden ausgegeben.
|
||||
|
||||
## Klassischer Gruppentest
|
||||
|
||||
Zuerst die Ziele der Folgestunde setzen, dann die Gruppenbildungsphase. Beispiel
|
||||
bei aktueller Stunde14: Gruppenbildung14–15, Aktivität15–16.
|
||||
|
||||
```
|
||||
clientless adventure editplan all next instance-or-raid auto both 15 85 preview
|
||||
clientless adventure editplan all next instance-or-raid auto both 15 85 apply
|
||||
clientless adventure editplan all current groupformation capital both 15 85 preview
|
||||
clientless adventure editplan all current groupformation capital both 15 85 apply
|
||||
```
|
||||
|
||||
Für einen Test erst ab der nächsten Stunde die ersten beiden Befehle mit `next+1`
|
||||
und die letzten beiden mit `next` verwenden. Bots ohne zulässiges Dungeon-/Raidziel
|
||||
werden bei der Zielvergabe übersprungen; die Ausgabe vorher prüfen.
|
||||
|
||||
Weitere Beispiele:
|
||||
|
||||
```
|
||||
clientless adventure editplan 26 current economy auto alliance 60 60 apply
|
||||
clientless adventure editplan all 18-20 rest auto horde 1 40 preview
|
||||
clientless adventure editplan all next keep poi_guard_22 alliance 15 85 preview
|
||||
clientless adventure plan 26
|
||||
clientless adventure schedule 26 on
|
||||
```
|
||||
|
||||
Browserfreigaben werden von diesen Befehlen nicht verändert. Raid- und
|
||||
Schlachtfeldbeitritt bleiben bei entsprechender Konfiguration deaktiviert.
|
||||
Reference in new issue
Block a user