Fix AdventureBot travel recovery, area eligibility and safe build logout
This commit is contained in:
1 parent
60cab950bd
commit
649915e575
46 files changed
+1500
-77
No files matched your search
@@ -0,0 +1,126 @@
|
||||
# Gebietskatalog, POI-Zuordnung und sichere Builds
|
||||
|
||||
## Befund und Korrektur
|
||||
|
||||
Pibwin (GUID88, Stufe18) kündigte ein Abenteuer bei „Dalaran Krasus' Landing“ an.
|
||||
Der importierte Ort `poi_guard_140` lag tatsächlich auf Karte1 bei5831/508/Z3,55,
|
||||
Gebiet2078, Zone148 (Dunkelküste). Der Gebietskatalog prüfte deshalb einen
|
||||
niedrigstufigen Ort, nicht Dalaran. Ursache war die Auswahl des nächsten
|
||||
`game_tele`-Ankers nach X/Y über verschiedene Kontinente hinweg.
|
||||
|
||||
POIs erhalten ihre Karte jetzt über die nativen Gesprächsmenüs der tatsächlich
|
||||
platzierten NPCs (`creature_template_gossip`, `gossip_menu_option`, `creature`).
|
||||
Untermenüs werden verfolgt, Zyklen abgefangen. Mehrdeutige oder fehlende native
|
||||
Zuordnungen werden nicht durch eine Koordinatenvermutung ersetzt. Erst innerhalb
|
||||
der eindeutigen Karte werden die Bodenhöhe und die Gebietszuordnung bestimmt.
|
||||
|
||||
`clientless adventure repairimport` erkennt unveränderte generierte Orte anhand
|
||||
von Quelle, Name, Position und Geografiemetadaten. Es korrigiert ihre Karte/Höhe/
|
||||
Gebietsdaten und deaktiviert solche ohne sichere native Zuordnung. Manuell
|
||||
veränderte Orte sowie Original-POIs und aufgezeichnete Reiserouten bleiben erhalten.
|
||||
|
||||
Die Katalogmigration `2026_10_30_00_adventure_city_parents.sql` ordnet native
|
||||
Stadtwurzeln ihren geografischen Umgebungen zu, insbesondere Dalaran4395 dem
|
||||
Kristallsangwald2817 und Shattrath3703 Terokkar3519. Auch die acht Volksstädte
|
||||
bekommen ihre Heimatregion als semantischen Katalog-Elternbereich. Vorhandene
|
||||
manuelle Elternzuordnungen bleiben bestehen; Karten müssen übereinstimmen.
|
||||
Neue DBC-Exporte erzeugen dieselben editierbaren Vorgaben. Die native DBC- und
|
||||
Spielergebietshierarchie wird nicht geändert. Levelminimum, Fraktionssperren und
|
||||
fehlende Flugvorgaben werden über die vorhandene Katalogvererbung berücksichtigt.
|
||||
|
||||
Gruppenpläne prüfen auch das tatsächlich angekündigte nächste Ziel gegen die
|
||||
Berechtigungen des Bots. Ungültige gespeicherte/manuelle Ziele werden nicht mehr
|
||||
beworben. Bei Einladungen werden sowohl Anführer als auch Teilnehmer geprüft.
|
||||
Gespeicherte Tagespläne werden durch die vorhandene Reparatur beim Laden bzw.
|
||||
Katalogwechsel auf zulässige Ziele umgestellt.
|
||||
|
||||
## Verbindlicher Ablauf vor künftigen Builds
|
||||
|
||||
1. Den bisherigen Wert von `Clientless.Adventure.Loader.Enabled` sichern, auf0
|
||||
setzen, `reload config` und `clientless population reload` ausführen. Bei einer
|
||||
noch laufenden Loader-Operation deren Abschluss abwarten und erneut laden.
|
||||
2. `clientless logout safe all` ausführen. Der Welt-Thread fordert einmalig einen
|
||||
sicheren Verhaltensstopp an und lässt die bestehenden Controller weiterlaufen.
|
||||
Er wartet auf lebende, geladene Bots ohne Kampf, Transportbindung, Taxi, Flug,
|
||||
Fall, Teleport, Zauber oder aktive Bewegung. Es gibt keinen erzwungenen Logout
|
||||
nach einer Wartefrist. Menschen und normale Netzwerksitzungen sind ausgenommen.
|
||||
3. Mit `clientless logout status` warten, bis `pending=0 sessions=0` gemeldet wird.
|
||||
Erst dann `cmake --build /home/wow_admin/wow_cata_server/build/debug -j10` starten.
|
||||
Bei blockierten Bots zuerst die Ursache untersuchen; nicht nebenher bauen.
|
||||
4. Den Loader durch Installation und Neustart hindurch pausiert lassen.
|
||||
Laufende Binärdateien nicht überschreiben; nach sauberem Serverstopp installieren.
|
||||
Frischen Ready-Eintrag, Prozess und Listener prüfen.
|
||||
5. `clientless logout resume` beendet die Sammel-Anforderung, falls derselbe
|
||||
Weltprozess weiterläuft. Nach Neustart ist sie ohnehin zurückgesetzt.
|
||||
Bisherige Loader-Konfiguration wiederherstellen, `reload config` und
|
||||
`clientless population reload` ausführen. Der Loader lädt die Bots wieder
|
||||
schrittweise. Die Regel ist zusätzlich dauerhaft in `AGENTS.md` festgehalten.
|
||||
|
||||
Einzelne Bots können mit `clientless logout safe <guid>` ebenso sicher abgemeldet
|
||||
werden. Der bisherige unmittelbare Einzel-Logout bleibt als Administrationswerkzeug
|
||||
bestehen und ist nicht der empfohlene Build-Ablauf.
|
||||
|
||||
Beim ersten Übergang auf diesen Ablauf war der sichere Sammel-Befehl noch nicht
|
||||
installiert. Die vorhandenen sicheren Intent-Stopps dienten zur Abmeldung.
|
||||
Für zwei im alten Schiffscode festhängende Bots wurde zunächst der bereits fertig
|
||||
gebaute vorherige Transportfix installiert. Tholgar92 und Lillina118 erreichten
|
||||
anschließend regulär den Anleger (`Arrived`, `passenger=0`,11:54:06).
|
||||
Bei den zuletzt stationären Bots Edwin36 und Drakogzug77 wurden vermutete
|
||||
verwaiste native Kampfzustände separat mit `combatstop` bereinigt; dies ist kein
|
||||
Bestandteil des neuen automatischen Logout-Verfahrens. Anschließend wurden ihre
|
||||
sicheren Stopps und Offline-Zustände bestätigt. Vor dem neuen Build waren sämtliche
|
||||
110 Bots offline, der Loader aus und nur eine normale Spielersitzung aktiv.
|
||||
|
||||
## Weltkarte
|
||||
|
||||
Der vorhandene GM-Befehl lautet `.cheat explore 1`. Ohne Zielauswahl wird die
|
||||
eigene Karte aufgedeckt; bei Auswahl eines Spielers dessen Karte. `.cheat explore 0`
|
||||
löscht die Erkundungsbits wieder. Behoben wurden die bisher falsche Zielperson
|
||||
und das wirkungslose Löschen per `SetFlag(...,0)`. Der Befehl schreibt jetzt alle
|
||||
Erkundungsfelder des ausgewählten Spielers korrekt.
|
||||
|
||||
## Prüfstand
|
||||
|
||||
113 isolierte Clientless-Testprogramme erfolgreich. Neue Prüfungen führen die
|
||||
produktive POI-Zuordnung, den nativen Logout-Sicherheitscheck und den bestehenden
|
||||
Kartenbefehl aus. Weitere Prüfungen bestätigen die Katalogmigration einschließlich
|
||||
Idempotenz und Erhalt manueller Eltern sowie neue DBC-Exporte und Gruppenpläne
|
||||
mit unzulässigem Folgeziel. Die Integrationsergebnisse nach Installation werden
|
||||
im Session-Checkpoint und im Abschlussbericht festgehalten.
|
||||
|
||||
Build mit bestehender Debug/Ninja-Konfiguration und `-j10` erfolgreich, ohne
|
||||
parallel eingeloggte Bots. Logs unter `/tmp/vcore-city-safe-logout-*`, Testausgaben
|
||||
unter `/tmp/vcore-travel-fixes-tests/`. Geografiesnapshots unter
|
||||
`/tmp/vcore-city-fix-state/` enthalten keine Konfigurationszugangsdaten.
|
||||
|
||||
### Bestätigte Integration
|
||||
|
||||
- Finaler Testserverstart: PID 446178, frische Ready-Meldung nach 10 Sekunden,
|
||||
Listener 8085/8087. Beide Builds mit `-j10` bei 0 Bots erfolgreich, ohne OOM-Abbruch.
|
||||
- Reparatur: 437 native Wächter-POIs, 166 nicht nutzbare Koordinaten übersprungen,
|
||||
2916 aktive Locations einschließlich Instanzvarianten. Die Höhenprüfung nutzt
|
||||
zunächst NPC-Höhe +3; bei weit entferntem Bodentreffer folgt eine Probe von +35.
|
||||
Der nähere Treffer gewinnt. Nahe Innenböden werden beibehalten.
|
||||
- `poi_guard_140`: Karte 571, X 5831, Y 508,617, Z 657,7, Gebiet 4564,
|
||||
Zone 4395 Dalaran. Pibwin auf Stufe 18: `own=0 invitation=0`. Sein Tagesblock
|
||||
12 behält Adventure, bekommt `poi_tele_651` (Blutmythosinsel, niedriger Levelbereich).
|
||||
- Katalogeltern 4395→2817 und 3703→3519 bestätigt. Policytests bestätigen
|
||||
geerbte Levelminima 77 bzw. 62 und Flugvorgaben.
|
||||
- Nodes, Kanten und Transportstopps vor/nach Reparatur bytegleich. Alle 17
|
||||
vorherigen manuellen Ortsdatensätze unverändert. 236 generierte Datensätze
|
||||
repariert/deaktiviert, 12 semantische Datensätze ergänzt. Snapshots unter
|
||||
`/tmp/vcore-city-fix-state/`.
|
||||
- Sammel-Logout mit Arthoran 26 und Pibwin 88 live ausgeführt: erste Rückmeldung
|
||||
pending=2/sessions=2/flight=1. Arthorans native Taxiverbindung 2221 endete vor
|
||||
seinem `CLIENTLESS_SAFE_LOGOUT`, danach Pibwins Bewegungsabschluss und Logout.
|
||||
Abschluss: `pending=0 sessions=0`. Kein zeitgesteuerter Zwangslogout.
|
||||
- Sammel-Anforderung mit `logout resume` beendet, ursprünglichen Loaderwert 1
|
||||
wiederhergestellt, Config und Population neu geladen. Bots kehren schrittweise
|
||||
zurück; keine neuen Sammel-Logouts nach der Wiederaufnahme. Zielkonfiguration
|
||||
unverändert: 50 persistente + 5 temporäre Bots pro Fraktion. Abschließend alle
|
||||
110 Bots online, keine ausstehenden Logins, Loader ohne Fehler.
|
||||
|
||||
Die Liveprüfung bestätigt Zielberechtigung und Logoutablauf. Sie ersetzt keine
|
||||
vollständige Abnahme sämtlicher Reisewege oder aller reparierten POIs. Der
|
||||
Kartenbefehl wurde am produktiven Handler isoliert geprüft; keinem Spieler wurde
|
||||
ungefragt seine Karte verändert.
|
||||
@@ -0,0 +1,85 @@
|
||||
# Reise- und Gruppenfixes vom 30.10.2026
|
||||
|
||||
## Betriebsgrenze
|
||||
|
||||
Der Nutzer zeichnet am laufenden Testserver Routen auf. Daher ausschließlich
|
||||
Quellcode, lokaler Build mit `-j10` und isolierte Tests; **keine Installation,
|
||||
kein Neustart und keine Änderungen an aufgezeichneten Routen oder Live-Daten**.
|
||||
Die native Instanz-/Raid-Zulassung bleibt erhalten.
|
||||
|
||||
## Änderungen
|
||||
|
||||
- Gruppenwiederherstellung: Ein vorhandener Charakter ohne Gilde ist weiterhin
|
||||
ein gültiges Gruppenmitglied. Nur nicht vorhandene Charaktere werden entfernt;
|
||||
Rollen, Untergruppe und Mitgliedsflags werden regulär wiederhergestellt.
|
||||
- Portalplanung: Ein generischer read-only ConditionMgr-Zugriff bewertet die
|
||||
bereits geladenen Spielerbedingungen für den jeweiligen nativen Portalzauber.
|
||||
Level, Quests, Gegenstände und weitere Spieleranforderungen einschließlich
|
||||
AND/OR-Gruppen, Referenzen und negativer Bedingungen werden berücksichtigt.
|
||||
Die Spielerrolle im nativen Cast bestimmt den geprüften ConditionTarget.
|
||||
Orts-/Kampf-/Skriptbedingungen bleiben bis zur tatsächlichen Benutzung offen.
|
||||
Diese dynamische Prüfung erfolgt vor dem Cache der statischen Gebietserlaubnis
|
||||
und nochmals vor der Benutzung. Keine festen Ersatz-Level, entfernten
|
||||
Bedingungen oder künstlichen Portalteleports.
|
||||
- Deckrückkehr: Aufgezeichnete Ausstiege benötigen kein optionales freies Bordnetz.
|
||||
Auch Kraken und Zeppeline können eine unterbrochene Rampenposition sicher zum
|
||||
aufgezeichneten Stand korrigieren. Weiterhin nur bei stehendem Transport,
|
||||
echter Passagierbindung und genügend verbleibender Haltezeit.
|
||||
- Transportzustand: Ein Fehler bei noch angebundenem Passagier behält die Fahrt
|
||||
und deren Ziel bei, statt sie pro Tick als neue Fahrt zu übernehmen. Kurze
|
||||
Wiederholungsverzögerung; sichere Ausstiegsversuche am nächsten passenden Halt.
|
||||
Die Ausstiegsreserve berücksichtigt auch die aktuelle Steuerungstaktung.
|
||||
- Verlust beim Ein-/Aussteigen: Der erwartete Passagierzustand wird aus dem
|
||||
tatsächlichen Fortschritt der aufgezeichneten Übergangspunkte abgeleitet.
|
||||
Ein beabsichtigtes Erreichen des Landpunkts löst keine Bergung aus; tatsächlicher
|
||||
Verlust kann die bestehende Rettung zum aufgezeichneten Abfahrtsanleger nutzen.
|
||||
- Flugstart: Ein unterstützter Bodenstand in einem Gebäude führt zunächst zur
|
||||
Suche nach einem erreichbaren offenen Abflugpunkt. Bis 200 Yards Suchradius,
|
||||
vollständiger unverdächtiger MMAP-Bodenweg bis 600 Yards, native Außenbereichs-
|
||||
und Kollisionsprüfung sowie Gebietskatalog. Erst dort native Flugmount-Auswahl
|
||||
und Cast. Reitfertigkeit und regionale Flugberechtigungen bleiben erforderlich.
|
||||
- Landung: Mehrere Ringe bis 180 Yards, vollständiger MMAP-Anschluss bis 600 Yards
|
||||
zum Ziel. Ein Höhenunterschied allein schließt einen sicheren Bodenanschluss
|
||||
nicht aus; Wasser-, Kollisions-, Gebiets- und native Pfadprüfungen bleiben.
|
||||
- Kartengrenzen bleiben echte Portal-/Schiffs-/Zeppelinabschnitte. Flug ersetzt
|
||||
weder einen Kartenübergang noch eine native Zugangsvoraussetzung.
|
||||
|
||||
## Temporäre Diagnose
|
||||
|
||||
`ClientlessTravelTelemetry.h` enthält den ausdrücklichen Vermerk
|
||||
`TEMPORARY_ADVENTURE_TRAVEL_TELEMETRY` / vor Entwicklungsabschluss entfernen.
|
||||
|
||||
`TEMP_TRAVEL` protokolliert ausschließlich aktive Instanz-/Raidreisen: Reise-ID,
|
||||
Bot, Gruppe, Anführer, Ziel, Route/Abschnitte, Transportphasen, Portalankunft,
|
||||
Flugzustand und Berechtigungen, Start-/Landekandidaten und Ablehnungszähler,
|
||||
Fortschritt sowie Eingang und das getrennte Ergebnis der nativen Zulassung.
|
||||
Fortschritt höchstens alle 20 Sekunden, gleiche Ereignisdetails innerhalb einer
|
||||
Minute unterdrückt, insgesamt höchstens 40 Zeilen je Bot/Minute. Auch wechselnde
|
||||
Fallback-Ziele setzen dieses Minutenbudget nicht zurück. Offline oder anderer
|
||||
Intent entfernt die Erfassung. Das Verhalten hängt nicht von der Diagnose ab.
|
||||
|
||||
Vor Entwicklungsabschluss diese Instrumentierung und ihre Aufrufstellen entfernen.
|
||||
|
||||
## Prüfung
|
||||
|
||||
109 Clientless-Testprogramme erfolgreich (vollständiger Lauf), einschließlich
|
||||
neuer produktiver Methoden-Harnesses für gildenlose Gruppen, Portalbedingungen,
|
||||
alternative Landeflächen und die begrenzte Telemetrie. Transport-/Abflugtests
|
||||
wurden um unterbrochene Fahrten, Schiffe ohne Bordnetz, Verluste beim Ein- und
|
||||
Aussteigen und die Bodenannäherung aus einem Gebäude erweitert.
|
||||
|
||||
Die Harnesses verwenden deterministische Welt-/Terrain-Doubles. Sie bestätigen
|
||||
Entscheidungen und Zustandsübergänge, ersetzen aber keine Prüfung mit echten
|
||||
VMAP/MMAP-Dateien und fahrenden Schiffen im laufenden Spiel. Durchgängige Reisen
|
||||
zu allen Instanzzielen und das Verhalten der Gruppenmitglieder müssen nach der
|
||||
später freigegebenen Installation mit der neuen Telemetrie beobachtet werden.
|
||||
|
||||
Build: bestehende Debug/Ninja-Konfiguration und Installationspräfix unverändert.
|
||||
Erster `-j10`-Lauf durch getöteten Compilerprozess unter Speicherlast abgebrochen;
|
||||
Wiederholung ebenfalls mit `-j10`. Abschließender `-j10`-Build erfolgreich (exit 0), inklusive der letzten
|
||||
Bodenstützprüfung; Log `/tmp/vcore-travel-fixes-build-final.log`.
|
||||
Rohlogs: `/tmp/vcore-travel-fixes-build*.log`, Testlogs und Ergebnisliste unter
|
||||
`/tmp/vcore-travel-fixes-tests/`. Keine Gameplay-Abnahme behauptet.
|
||||
|
||||
Der vorherige Laufzeitabsturz hat keinen erhaltenen vollständigen Stacktrace;
|
||||
diese Änderungen sind kein Nachweis, dass dessen Ursache behoben ist.
|
||||
@@ -1,3 +1,241 @@
|
||||
# COMPLETED Oct30: safe builds, city inheritance, native POI map/height fix
|
||||
|
||||
Authorized branch feature/clientless-player-core, expected uncommitted work
|
||||
includes previous travel fixes and this task. No push or commit requested.
|
||||
User ALLOWS restart/install again. Permanent new rule in AGENTS.md: before EVERY
|
||||
build pause loader, request safe logout, let native combat/transport/flight finish,
|
||||
verify zero CPC sessions; builds ALWAYS -j10. New admin command:
|
||||
`clientless logout safe all` (or individual guid), `clientless logout status`,
|
||||
`clientless logout resume`. Native world-thread safety predicate, no timeout force.
|
||||
Pause loader first; resume clears collection, restore loader setting after work.
|
||||
|
||||
Both new -j10 builds PASSED with all bots OFFLINE and no OOM. Final installed
|
||||
binary includes POI raised-platform height fallback. Full113 tests passed, final
|
||||
POI height regression also passed. git diff --check clean. Build logs
|
||||
/tmp/vcore-city-safe-logout-build.log and /tmp/vcore-city-height-build.log.
|
||||
|
||||
Final server446178 in tmuxvcore-worldserver; console /tmp/vcore-city-height-start.log.
|
||||
Fresh ready10sec, ports8085/8087 verified. Final startup proof saved separately
|
||||
/tmp/vcore-city-fix-state/fresh-startup-evidence.txt because reloadconfig truncates
|
||||
Server.log. No pending build/install/restart. Prior prebuilt transport fixes were
|
||||
installed first to release old stranded ship passengers;92/118 Arrived passenger0
|
||||
at11:54:06. Bootstrap orphan combat flags36/77 were separately cleared with native
|
||||
combatstop after stationary old-state diagnosis; NOT part of future auto logout.
|
||||
|
||||
Pibwin88 lvl18 root cause: guardPOI140 DalaranKrasusLanding was guessed on map1
|
||||
Darkshore based on closestXY across continents. New AdventurePoiPolicy.h uses
|
||||
recursive native gossip menus -> spawned NPC map bindings; cycles/ambiguity
|
||||
closed. Height from native NPC neighborhood, +35 retry only if first floor hit
|
||||
far>25yd below/reference (floating Dalaran); retain close normal floor. Scoped
|
||||
repair protects source/name/position/geography and manual edits. Original POI
|
||||
source table and recorded routes untouched. Native repairimport final437POIs,
|
||||
166invalid skipped,2916active locations. poi_guard140 now map571 X5831 Y508.617
|
||||
Z657.7 area4564 zone4395 Dalaran. Live eligibility88 adventure140:own0 invitation0.
|
||||
Pibwin's preserved12:00Adventure block repaired to poi_tele651(Bloodmyst low-level
|
||||
Alliance starting region, map530 NOT Outland). No manual test schedule override.
|
||||
|
||||
City-parent migration2026_10_30_00_adventure_city_parents.sql APPLIED; exporter
|
||||
updated likewise. Dalaran4395->CrystalSong2817,Shattrath3703->Terokkar3519 +eight
|
||||
racial capitals->home regions. Catalog only; operator nonzero parents preserved,
|
||||
no native DBC/player hierarchy changes. Effective native query at taxi310:
|
||||
minLevel77/max85/preferFlight1,Arthoran60 denied. GroupPlan validates actualnextgoal
|
||||
before advertising; CanInvite validates leader +member. Existing .cheat explore1
|
||||
fixed selected-player target, explore0 clears fields. Tell user: clear selection
|
||||
then `.cheat explore 1` to reveal own map. Native command fixture passed; no human
|
||||
exploration fields were altered by us.
|
||||
|
||||
Live safe-batch test26+88 passed: pending2/sessions2/flight1 first; native taxi2221
|
||||
completed for26 BEFORE CLIENTLESS_SAFE_LOGOUT26, then88 motion complete+logout.
|
||||
Final native pending0 sessions0. Called logoutresume, restored original config
|
||||
Loader.Enabled1, reloadconfig/populationreload. Targets UNCHANGED50persistent+
|
||||
5temporary PERFACTION. Loader schema1,busy0,error empty, gradually loading110;
|
||||
FINAL native population status: ALL110 ONLINE, pools50/5/50/5, pending0 in
|
||||
every pool, manager110, schema1,busy0,error empty. No new safe-logouts after
|
||||
resume. Bot operation fully restored, final process446178 alive,branch correct.
|
||||
|
||||
Snapshots /tmp/vcore-city-fix-state/: nodes/edges/stops before vsafter EXACTMATCH;
|
||||
all17 prior manual semantic records unchanged.236 imported rows repaired/disabled,
|
||||
12 semantic rows added. No production/remote auth changes. Detailed German report
|
||||
in doc/clientless/2026-10-30-city-catalog-build-policy.md. Earlier historical WIP
|
||||
and checkpoints below are superseded. Need only final current pool/process/port
|
||||
check and concise German final response now. Do NOT restart or build again.
|
||||
|
||||
# UPDATE current: final POI height correction built, install/restart pending
|
||||
|
||||
Builds /tmp/vcore-city-safe-logout-build.log and /tmp/vcore-city-height-build.log
|
||||
bothPASSED -j10 withallbotsOFFLINE. Full113/113testsPASS; finalnewPoiHeightfixture
|
||||
passes. NewcitymigrationAPPLIEDandbackupunder/tmp/vcore-city-fix-state/.
|
||||
InstallednewbatchSafeLogoutcode(firstcurrenttaskbuild),server445223ready11sec,
|
||||
ports8085/8087,console/tmp/vcore-city-safe-logout-start.log. Ranrepairimport:
|
||||
421nativePOIs,182skipped,2913active. poi_guard140map571BUTfirstheight184wasunder
|
||||
floatingcity. AddedAdventurePoiPolicy::Height referenceNPC+3 thenretry+35ONLYif
|
||||
firstfloorfar>25ydfromNPC,choosecloserfloor (keepsnormalnearbyfloor). Addedscoped
|
||||
firstNative height correctioncandidate torepaircurrentintermediaterecord; doNOT
|
||||
manuallypatchcoordinates. Nativeanchor651,nearestservice639,realplatform658.
|
||||
FinalheightbuildPASSED;server445223shutdown10requestednow. Waitexit,cmakeinstall,
|
||||
startnewfreshconsolethenready/process/ports. LoaderSTILL0andallCPC0confirmedvia
|
||||
native`clientless logout safe all` +`logout status`pending0sessions0. NativeAllflag
|
||||
setoncurrentprocess,willresetafterrestart. NormalhumanTestonlineearliernotCPC.
|
||||
|
||||
Nextrequired: finalrestart->repairimportagain->reloadcatalogs->verifypoi140actual
|
||||
platform/cityandlevel88denied;checkmanualroutes/semanticmanualRows snapshots;
|
||||
loginPibwin88+Arthoran26 withloader0;eligibility88adventurepoi_guard140mustown0,
|
||||
planrepaired;nativebatchsafelogout2bots->pending0sessions0;logoutresume;restore
|
||||
loaderconfigpreviousvalue1 from/tmp/vcore-build-drain-loader-setting.json then
|
||||
reloadconfig/populationreload;verifynormalgradual110population. Preservefreshready
|
||||
beforeconfigreloadtruncatesServer.log. Updatedocs/checkpointfinalreply.No commitasked.
|
||||
|
||||
# ACTIVE NEW TASK Oct30: city/POI eligibility, safe pre-build logout, map reveal
|
||||
|
||||
User now ALLOWS INSTALL/RESTART. New permanent rule: before EVERY build pause
|
||||
loader, finish combat/flights/transports safely, log out ALL CPC bots, verify0
|
||||
native sessions. Always j10. Rule appended AGENTS.md. Previous fixes' prebuilt
|
||||
binary installed after clean shutdown of417346; fresh437976 started ready12sec,
|
||||
ports8085/8087. Console /tmp/vcore-prebuilt-travel-start.log, native ready in
|
||||
freshServer.log. Loader currentlyDISABLED (config Enabled0), previous value saved
|
||||
/tmp/vcore-build-drain-loader-setting.json (value1). Restore only after final
|
||||
install/restart/native verification. Original110botlist /tmp/vcore-build-drain-bots.json.
|
||||
19remainingresumedmanuallyafterprebuiltinstall so oldships canfinallyexit;92/118
|
||||
ARRIVED passenger0 at11:54:06. Most thenstopped/logout; currentremaining36/77
|
||||
were ground/healthy/stationary butUnsafe stuck. Nativecombatstop requested to
|
||||
clear suspectedorphancombatstate, inspectresultsbeforelogout/build. Never
|
||||
force transportdetach or airborne logout. PlayerTest/Allitesterarehumans, leavealone.
|
||||
|
||||
RootPibwin88level18: poi_guard_140 namedDalaranKrasusLanding wronglyIMPORTEDon
|
||||
map1Darkshore XY5831,508Z3.55 area2078zone148! ThusactualAreaCatalogchecks saw
|
||||
lowlevelzone, notDalaran. Realnativegossipbinding140uniquemap571,39guardanchors.
|
||||
NewAdventurePoiPolicy.h resolvesrecursivegossipMenu->POI via spawnedNPCmaps,
|
||||
rejectsambiguous/unbound, choosesnativeheight. AdventureLocationMgr.cpp importer
|
||||
usesit; repairimport matchesoldgeneratedposition+metadata, preservesmanualedits,
|
||||
updatesmap/Z/geography anddisablesunchangedunboundlegacyPOIs. Mustrunrepairimport
|
||||
onTEST afternewbuildinstalled. DoNOTchangeoriginalpoints_of_interest oruserRoutes.
|
||||
|
||||
Newworldmigration2026_10_30_00_adventure_city_parents.sql +export_area_catalog.py
|
||||
curatededitablecatalogcityparents10capitals:4395->2817(DalaranCrystalSong),
|
||||
3703->3519(ShattrathTerokkar),othershomezones. Parent0only/samemap, preserveoperator
|
||||
parentassignments. ExistingResolve inheritsmin andflight;testsenhanced. SQLnotyet
|
||||
applied. GroupPlan disablesrecruitmentforinvalidactualgoal;CanInvitechecksboth
|
||||
leader/membernativeArea position. Existing.cheat explore1commandbugfix selected
|
||||
playerfields(andexplore0clearing), no newlyinventedcommandneeded.
|
||||
|
||||
NewadminbatchsafeLogout namespaceinCustom/viano_bot_commands.cpp:
|
||||
clientless logout safe all|<guid>, logout status, logout resume.
|
||||
WorldScriptUpdate requestsBehavior stoponce, waitsnativealive/inworld/noncombat/
|
||||
nontransport/nontaxi/nonflying/nonfalling/nonteleport/noncast/nonspline then
|
||||
StopPlayer atomicallyonworldthread. No timeoutforce. PauseLoaderbeforecommand.
|
||||
All modecontinuescatchingnewCPCsessions untilresume/restart;futurebuildworkflow
|
||||
mustusenativepending0+sessions0. Bootstrapcurrentprebuiltlackscommand,uses
|
||||
Behaviorstop+statusEnabled0thenlogout;twooldshipsfixedviaprebuiltdeployment.
|
||||
|
||||
Tests113expected(109previous+POI+safeLogout+cheatExplore+cityCatalog), fullrunbefore
|
||||
lastfixturefixhad2mockerrors(instance_autoresume/instance_loader missingnewSafe
|
||||
Update double), nowbothfixedandtargetedpass. NewPOI/area/city/explore/safeallpass,
|
||||
groupPlan/departure/groupspass. Fullrerunandbuild-j10stillREQUIRED. No newbuildyet
|
||||
sincebotsneedfinishlogout. SourcechangesuncommittedincludeprevioustaskexpectedWIP.
|
||||
|
||||
Next:confirm0CPCbots ->buildj10(noOOMnowbotsout),full113tests;resolvecompilation;
|
||||
applycitymigration;cleanstop/install/restartloader0;nativeReady/process/ports;
|
||||
runrepairimport,snapshotmanualroutesnotchanged/Pibwinpoi140now571actualDalaran;
|
||||
verifyPibwin18deniedandplanrepaired;testnativebatchsafelogoutwith2bots;logoutresume,
|
||||
restoreloader1reloadconfig/populationreload,verifybotsgraduallynormal. Updatedocs,
|
||||
reportcommand.cheat explore1plusvalidation. No push/commitasked.
|
||||
|
||||
# CURRENT Oct30: travel fixes implemented, DEPLOYMENT HELD BY USER
|
||||
|
||||
User is recording routes: NO INSTALL and NO RESTART until expressly released.
|
||||
Source-only task implemented. Worktree includes expected source/test/doc changes;
|
||||
no commit/push, DB writes or live route edits in this task. Authorized branch
|
||||
feature/clientless-player-core. Keep all builds -j10.
|
||||
|
||||
Implemented guildless native group restoration; conservative native portal actor
|
||||
prerequisites BEFORE geographic permission cache and before real portal use;
|
||||
recorded deck-stand fallback for ships without optional deck meshes; interrupted
|
||||
passenger transitions retain ride/3-second retry delay; lost-passenger detection
|
||||
in Boarding/Leaving; exit reserve accounts for update cadence. Flight walks from
|
||||
indoor/layered starts to verified open MMAP-reachable departure (200yd search,
|
||||
600yd ground cap), landing alternatives180yd/600yd native MMAP approach, no fixed
|
||||
5yd height rejection. Native permission/collision/area/raid admission preserved.
|
||||
Temporary scoped TEMP_TRAVEL instrumentation is header-only, bounded40/bot/min,
|
||||
20sec progress, deduplicated, includes REMOVE BEFORE DEVELOPMENT COMPLETION.
|
||||
Details: doc/clientless/2026-10-30-travel-fixes.md.
|
||||
|
||||
109/109 clientless test programs passed. Added production-method harnesses for
|
||||
guildless restore, portal prerequisites, landing alternatives and telemetry;
|
||||
expanded deck/transition/indoor-departure tests. Final NaN-foot-support regression
|
||||
passed separately after full suite. git diff --check clean.
|
||||
|
||||
Final build PASSED (exit0), existing Debug/Ninja configuration with -j10.
|
||||
Attempts1–3 had compiler OOM kills; attempt4 and final incremental build passed.
|
||||
Final exact source guard included: /tmp/vcore-travel-fixes-build-final.log,
|
||||
4/4 linking worldserver. No CMake config changes. Tests109/109 plus final targeted
|
||||
flight departure/NaN-foot-support regression passed. Raw earlier build logs
|
||||
/tmp/vcore-travel-fixes-build{,-2,-3,-4}.log; test results
|
||||
/tmp/vcore-travel-fixes-tests/results.json. DO NOT INSTALL / RESTART.
|
||||
|
||||
Server remains SAME installed binary/process417346 in tmuxvcore-worldserver,
|
||||
ports8085/8087 checked. No lifecycle action this task. User performs route recording.
|
||||
Live behavior and end-to-end instance journeys remain unverified until later
|
||||
authorized deployment/observation. Prior runtime crash root remains unproven.
|
||||
|
||||
The entries below are historical checkpoints, not current task instructions.
|
||||
|
||||
# Latest: testserver recovered after10:36 Oct30 runtime crash
|
||||
|
||||
User asked whether testserver offline. Verified no worldserver/ports; kernel
|
||||
journal records SIGSEGV of389322 at2026-10-30 10:36:35 inlibstdc++. No kernelOOM
|
||||
observed for this incident; exact cause not investigated. This happened AFTER
|
||||
02:20–04:00 observationwindow, not during thattest. Old console tail preserved
|
||||
/tmp/vcore-flight-regions-group-test-start-20261030.log. No source/build/install.
|
||||
Restarted SAME installedbinary in freshdedicatedtmuxvcore-worldserver, PID417346.
|
||||
Freshready11s,processalive,ports8085/8087listening. New console
|
||||
/tmp/vcore-recovery-20261030-1036.log. Deferredfix/discussioninstructions below
|
||||
remainunchanged; no nextfix implementation started. Preserveanycoredump forlater
|
||||
analysis before subsequent crash overwrites it.
|
||||
|
||||
# Latest user request: record next-fix scope; discussion only, no implementation yet
|
||||
|
||||
User explicitly adds ship boarding/disembarking gaps to the NEXT fix. More
|
||||
importantly, investigate end-to-end destination reachability of flying instance/
|
||||
raid bots and groups, not whether they know flight. Existing transitions should
|
||||
connect Kalimdor/EasternKingdoms/Outland/Northrend for flyers; missing low-level
|
||||
non-flying Horde Kalimdor↔EK links remain a known exception. Roofs or failure of
|
||||
one landing candidate must lead to a reachable ground exit/free takeoff area or
|
||||
alternative safe landing+validated final ground approach, not abandonment or a
|
||||
replanning loop. Preserve safety/native access checks.
|
||||
|
||||
TEMPORARY TELEMETRY expressly authorized for NEXT fix: track flying bots' whole
|
||||
instance journeys, leaders/followers, routes/map transitions/modes, exact flight
|
||||
state rejection, takeoff/landing candidates and ground approaches, progress,
|
||||
fallbacks and entry-vs-admission. Instrumentation MUST carry a clear code comment
|
||||
that it is TEMPORARY and must be REMOVED BEFORE DEVELOPMENT COMPLETION. Targeted,
|
||||
bounded/deduplicated logging; no per-tick spam. Not implemented in this turn.
|
||||
Detailed scope recorded in doc/clientless/group-observation-followups.md.
|
||||
|
||||
Previously deferred items1(guildless group restore) and4(portal prerequisites)
|
||||
remain recorded. Item5(native instance admission restriction) is accepted as
|
||||
correct, not something to bypass. No source/server changes during discussion.
|
||||
Existing uncommitted resume/followup-doc changes belong to this discussion.
|
||||
|
||||
# Latest user steering: discussion first; defer fixes1+4, accept restriction5
|
||||
|
||||
User asks to note reportpoints1(guildlessgrouprestore) and4(portalprerequisites)
|
||||
for laterfix, not implement now. Reportpoint5(raid admissiondenial) is initially
|
||||
CORRECT intended instance restriction; do not bypass/remove it. Recorded in
|
||||
`doc/clientless/group-observation-followups.md`. Current turn is investigation/
|
||||
explanation of shipstandfallback, fallenpassengerrescue, and flightgroupfailures.
|
||||
No source/server changes requested atthisstage.
|
||||
|
||||
Codeconfirmed:DeckMgrGet supports onlyBravery176310 andtram176080–86. Kraken190536
|
||||
returnsnull andUpdate returns true BEFORE ReturnToRecordedStand. Thus its stopped
|
||||
standteleportfallback neverruns, recordedexit startsfrommid-ramp andfails>8yd.
|
||||
Tholgarremainedpassenger1/transguid17,notactuallydetached. RecoverPassenger entry
|
||||
is inRiding whenGetTransport becomesnull; no universal Boarding/Leaving lossguard.
|
||||
ResumePassenger re-adoptsFailedattachedride andresetsprogress, causingretryloop.
|
||||
Flightrequiredskillsarepresent; failurepoints include map transitions, indoor
|
||||
starts, rejecteddepartureheights, safe landing/shortapproach. TKsuccess concrete
|
||||
NAVFLIGHT_LANDED guid74/53 27segments736.81yd error0 andnativeinstanceentries.
|
||||
Do notpresent allfailedflightstarts asprovenindoors; generalguardmessageambiguous.
|
||||
|
||||
# COMPLETED Oct30 04:00CET: flightregions committed + group observation
|
||||
|
||||
Observation endedautomatically04:00:00.126CET; monitorPID387861/execcell67325 exited0.
|
||||
|
||||
@@ -0,0 +1,123 @@
|
||||
# Umsetzung begonnen am 30.10.2026
|
||||
|
||||
Die unten dokumentierten Besprechungspunkte wurden anschließend zur Umsetzung
|
||||
freigegeben. Quellcodekorrekturen und Regressionstests sind in Arbeit.
|
||||
**Installation und Neustart bleiben ausdrücklich gesperrt**, während der Nutzer
|
||||
Routen aufzeichnet. Details und abschließender Prüfstand folgen in
|
||||
`2026-10-30-travel-fixes.md`. Native Raid-Zulassung bleibt unverändert.
|
||||
|
||||
# Nachverfolgung nach dem Gruppentest vom 30.10.2026
|
||||
|
||||
Nutzerentscheidung nach dem Bericht:
|
||||
|
||||
- **Berichtspunkt 1, Gruppenwiederherstellung ohne Gilde:** für einen späteren
|
||||
Fix vormerken. Nicht während der anschließenden Besprechung implementieren.
|
||||
- **Berichtspunkt 4, Portalvoraussetzungen in der Routenplanung:** ebenfalls
|
||||
für einen späteren Fix vormerken. Native Zugangsbeschränkungen beibehalten.
|
||||
- **Berichtspunkt 5, abgewiesener Raidbeitritt:** zunächst als korrekt greifende
|
||||
Instanzbeitrittsbeschränkung behandeln, nicht als zu beseitigenden Fehler.
|
||||
|
||||
## Erklärung der Transportlücke
|
||||
|
||||
Der bestehende Rücktransfer zum aufgezeichneten Deckstand liegt hinter der
|
||||
Deckmodell-Auswahl in `ClientlessTransportDeckMgr::Update`. Modelle werden nur
|
||||
für Bravery 176310 und Tiefenbahn 176080–176086 geladen. Kraken 190536 fällt vor
|
||||
Rückwegprüfung und `ReturnToRecordedStand` mit `return true` heraus. Dadurch
|
||||
startet der Ausstieg direkt, auch wenn der Passagier an einer Zwischenposition
|
||||
steht. Der generelle Fallback ist somit zu eng an die freie Bordnavigation
|
||||
gekoppelt und greift auf Kraken nicht. Dasselbe Modell-Gate ist für andere
|
||||
Transporttypen ohne Decknetz relevant.
|
||||
|
||||
Tholgar blieb laut Log mit `passenger=1` und Transport-GUID 17 angebunden. Er war
|
||||
nicht nachweislich von Bord gefallen. Der Verlust-Fallback setzt erst beim
|
||||
fehlenden Transport während der Phase Riding `Recovering=true`. Er ist damit
|
||||
für diesen Fall nicht zuständig. Ein echter Verlust während Boarding/Leaving
|
||||
ist durch diesen Einstieg ebenfalls nicht allgemein abgedeckt; erwartetes
|
||||
Absteigen und versehentliches Fallen müssten dort ausdrücklich unterschieden
|
||||
werden. Nach Failed gibt es derzeit zusätzlich eine Wiederaufnahme des noch
|
||||
angebundenen Passagiers ohne Fortschrittsübernahme des begonnenen Ausstiegs.
|
||||
|
||||
## Erklärung der Flugprobleme
|
||||
|
||||
Flugfähigkeit ersetzt keine Kartenübergänge; dafür werden weiterhin Schiffe,
|
||||
Zeppeline und Portale benötigt. Zusätzlich verlangt der echte Flugstart unter
|
||||
anderem einen lebenden, kampffreien, nicht fahrenden, nicht fallenden Bot im
|
||||
Freien. Das Planungsmodell kann einen Flug vorher bereits als günstig einstufen.
|
||||
Logs zeigen Fehlstarts an Gasthäusern, abgewiesene Abflughöhen und fehlende sichere
|
||||
Landepunkte. Die allgemeine Fehlermeldung unterscheidet nicht alle Startzustände;
|
||||
der exakte Zustand ist daher nicht für jede Ablehnung nachgewiesen.
|
||||
|
||||
Für Festung der Stürme sind erfolgreiche letzte Flugabschnitte konkret belegt:
|
||||
unter anderem Nimbin 74 und Noranda 53, je 27 Segmente über 736,81 Yards,
|
||||
`FLIGHT_LANDED ... error=0.00`, anschließend bestätigter Instanzeintritt.
|
||||
Das belegt einen funktionierenden konkreten Weg, nicht die Zuverlässigkeit
|
||||
sämtlicher Start-, Übergangs- und Landekombinationen anderer Ziele.
|
||||
|
||||
## Für den nächsten Fix ausdrücklich vorgemerkt
|
||||
|
||||
### Ein- und Aussteigen von Schiffen
|
||||
|
||||
- Den sicheren Rücktransfer zum aufgezeichneten Deckstand unabhängig davon
|
||||
ermöglichen, ob für das Fahrzeug bereits ein freies Decknetz vorhanden ist.
|
||||
Die bestehenden Bedingungen für einen stehenden Transport und eine sichere
|
||||
Passagierbindung beibehalten.
|
||||
- Einen unterbrochenen Ausstieg beim nächsten geeigneten Halt sinnvoll fortsetzen
|
||||
beziehungsweise zuerst zum normalen Stand zurückkehren. Keine dauernde
|
||||
Wiederaufnahme vom falschen Startpunkt mit derselben Acht-Yards-Ablehnung.
|
||||
- Verlorene Passagiere auch während Boarding und Leaving erfassen. Einen echten
|
||||
Sturz vom vorgesehenen Absteigen unterscheiden und bei tatsächlichem Verlust
|
||||
die bereits vereinbarte Rettung zum aufgezeichneten Anleger einsetzen.
|
||||
|
||||
### Durchgängige Instanzanreise flugfähiger Bots und Gruppen
|
||||
|
||||
Die Nutzerfrage betrifft die tatsächliche Erreichbarkeit des Ziels, nicht das
|
||||
Vorhandensein der Flugfähigkeit. Für flugfähige Bots müssen Übergänge zwischen
|
||||
Kalimdor, den Östlichen Königreichen, Scherbenwelt und Nordend über die vorhandenen
|
||||
Verbindungen nutzbar sein. Diese Erreichbarkeit ist im nächsten Fix konkret zu
|
||||
prüfen. Bei nicht flugfähigen Horde-Bots sind fehlende Verbindungen zwischen
|
||||
Kalimdor und den Östlichen Königreichen weiterhin eine bekannte Einschränkung.
|
||||
|
||||
Überdachungen und ein ungeeigneter erster Landeversuch sind keine ausreichende
|
||||
Begründung, die Reise aufzugeben oder dauerhaft neu zu planen:
|
||||
|
||||
- Aus einem überdachten Startbereich zunächst auf gültigem Bodenweg eine
|
||||
erreichbare freie Abflugfläche suchen und ansteuern, anschließend abheben.
|
||||
- Am Ziel alternative sichere Landeflächen mit validiertem Bodenanschluss zum
|
||||
Instanzeingang suchen. Ein einzelner abgewiesener Punkt darf nicht den gesamten
|
||||
Reiseweg unbrauchbar machen.
|
||||
- Die Sicherheitsprüfungen für Geometrie, Höhen, Kollisionen, Gebiete und native
|
||||
Voraussetzungen erhalten. Die Suche und Verkettung der Reiseabschnitte
|
||||
verbessern, statt Prüfungen abzuschalten oder normale Reisen durch Teleports
|
||||
zu ersetzen.
|
||||
- Gruppenanführer und Mitglieder getrennt erfassen: gemeinsame Route,
|
||||
Kartenwechsel, Anschlussverlust, Zielwechsel und Fortschritt müssen erklärbar
|
||||
sein. Die tatsächliche Ankunft am Eingang getrennt von einer anschließend
|
||||
korrekt abgewiesenen Instanzzulassung beurteilen; Berichtspunkt 5 bleibt gültig.
|
||||
|
||||
### Temporäre Telemetrie für die Untersuchung
|
||||
|
||||
Der Nutzer erlaubt für diesen nächsten Fix ausdrücklich temporäre Telemetrie
|
||||
im Code. Sie ist jetzt nur vorgemerkt, noch nicht implementiert. Jede entsprechende
|
||||
Instrumentierung erhält einen eindeutigen Codevermerk, zum Beispiel:
|
||||
|
||||
```cpp
|
||||
// TEMPORARY_ADVENTURE_TRAVEL_TELEMETRY:
|
||||
// Remove before development completion / vor Entwicklungsabschluss entfernen.
|
||||
```
|
||||
|
||||
Erfassen sollen wir mindestens:
|
||||
|
||||
- Bot-, Gruppen- und Anführer-ID sowie eine zusammenhängende Reise-/Abschnitt-ID;
|
||||
- geplantes Instanzziel, tatsächlich verfolgtes Ziel und Gründe für Zielwechsel;
|
||||
- Graphroute, Kartenübergänge, gewähltes Reisemittel und konkrete Ablehnungsgründe;
|
||||
- Zustand bei Flugstart: drinnen/draußen, Kampf, Wasser, Fallen, Taxi, Transport,
|
||||
Teleport, Reitfertigkeit, gelernte Berechtigungen und gewähltes Reittier;
|
||||
- gesuchte Abflug- und Landekandidaten, ihre Bodenanschlüsse und Ablehnungsgründe;
|
||||
- Fortschritt, Stillstand, Wiederholungen, Zeit pro Abschnitt und Fallbacks;
|
||||
- erreichten Eingang und das davon getrennte Ergebnis der nativen Zulassung.
|
||||
|
||||
Die Erfassung gezielt auf die relevanten Instanz-/Raidanreisen begrenzen und
|
||||
wiederholte identische Meldungen zusammenfassen. Sie soll Ursachen nachvollziehbar
|
||||
machen, ohne erneut pro Tick tausende gleiche Fehlermeldungen zu erzeugen.
|
||||
Vor Abschluss der Entwicklung die temporäre Instrumentierung entfernen und dies
|
||||
als eigenen Abschlussprüfpunkt behandeln.
|
||||
Reference in new issue
Block a user