Files
Viano-Core/doc/clientless/2026-10-30-travel-fixes.md
T
Nico 649915e575
clang PCH / build (push) Waiting to run
GCC PCH / build (push) Waiting to run
Fix AdventureBot travel recovery, area eligibility and safe build logout
2026-10-30 12:43:22 +01:00

5.2 KiB

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.