16 KiB
Ruhe-Intent
Stand: 27.10.2026. Technischer Intentname: rest.
Ruhe ist ein eigenes Vorhaben mit anschließender Auswahl passender Mikroaktionen. Tavernen werden bei der Ortswahl stärker gewichtet als Siedlungen. Native Stühle und Bänke dürfen auch außerhalb von Tavernen benutzt werden, beispielsweise in Sturmwind. Ein Ort ohne passende Ruhemöglichkeit löst die Suche nach einer Ersatzlocation aus.
Mikroaktionen
| Schlüssel | Ausführung |
|---|---|
rest_seat |
Erreichbaren nativen Stuhl oder eine Bank aufsuchen, regulär benutzen und 60–100 Sekunden sitzen. |
rest_sleep |
Einen geprüften Schlafplatz nahe dem Schlafanker oder im Gasthaus aufsuchen und 120–300 Sekunden mit nativer Schlafhaltung ruhen. |
rest_ground |
Einen ausdrücklich markierten Bodenrastplatz aufsuchen und 60–120 Sekunden sitzen. |
rest_drink |
Eine vorhandene native Sitzgelegenheit benutzen und Trinken darstellen. |
rest_eat |
Eine vorhandene native Sitzgelegenheit benutzen und Essen darstellen. |
rest_look |
Kurzes ruhiges Umsehen zwischen den Ruhephasen. |
rest_fire |
Vorhandenes geeignetes Feuer nutzen oder an einem markierten Bodenrastplatz ein natives Kochfeuer entzünden, hingehen, sitzen, trinken und ruhen (45–75 Sekunden Szenenbasis). |
Sitz-, Ess-, Trink- und Feuerabläufe verwenden dieselben Fähigkeiten wie Geselligkeit.
2026_10_27_01_adventure_rest_fire.sql ergänzt rest_fire mit Auswahlgewicht 3,
ohne vorhandene Szenen oder manuell geänderte Gewichte zu überschreiben.
Für vorhandene Feuer gelten die bisherigen Ortsgrenzen, Phasen-, Sicht- und
Navigationsprüfungen. Ein eigenes Feuer wird bei rest nur an einer Location
mit Kategorie rest_ground erlaubt, zusätzlich zu den bestehenden Prüfungen
auf Außenbereich, ebenen freien Boden, Wasser, Fallen und Zauberabklingzeit.
Zusätzlich verbietet die gemeinsame Feuerfähigkeit das Entzünden innerhalb von
Städten für sämtliche Intents. Dafür werden Stadt-/Handelskanal-Kennzeichen der
nativen AreaTable am aktuellen Standort, in übergeordneten Gebieten und der
Zone geprüft. Fehlende oder zyklische Gebietsdaten erlauben kein neues Feuer.
Die Prüfung erfolgt auch unmittelbar vor dem Zaubern. Vorhandene geeignete
Feuer bleiben in Städten und Gebäuden nutzbar.
Ein fehlendes Feuer an einer Stadtbank oder in einer Taverne berechtigt nicht
zum Entzünden. Der native Zauber 818 benötigt keine Kochkunst; erst das
bestätigte Feuerobjekt erlaubt die anschließende Feuerrast. Verschwindet es,
endet die Szene. Aufstehen und Aufräumen erfolgen über denselben Szenenabschluss
wie bei den anderen Ruheaktionen.
Gespräche, Bestellungen und Tanz gehören nicht zum anfänglichen Ruhe-Katalog.
Die Zeit der Schlaf- und Bodenrastphase beginnt nach bestätigter Ankunft;
die lokale Anreise verwendet den Gehmodus und kein Bodenmount.
Geeignete Orte
Die additive Migration ist
sql/custom/world/2026_10_27_00_adventure_rest.sql (nach den bisherigen
Verhaltens- und Geselligkeitsmigrationen anwenden).
Die vorhandene Weltpunkt-Tabelle bleibt der Ortskatalog. Zusätzliche Kategorien:
rest_seat: Anlaufpunkt bei einer geeigneten nativen Sitzgelegenheit.rest_sleep: ausdrücklich festgelegter Schlafplatz mit Position und Ausrichtung.rest_ground: ausdrücklich festgelegter Bodenrastplatz.
Ein Schlafanker ist keine automatische Bettinteraktion. Der Bot sucht heute eine freie Liegefläche in seiner Nähe, läuft regulär dorthin und nimmt die native Schlafhaltung ein (Details und Grenzen im Abschnitt zur Flächensuche unten). Dekorative Betten werden weder als benutzbar vorausgesetzt noch durch Teleports betreten. Neue Schlafplätze benötigen weiterhin eine visuelle Abnahme.
Die Migration ergänzt einen Ruheplatz im Obergeschoss der Goldhainer Taverne
(goldshire_sleep_upstairs) und einen Anlaufpunkt bei einer vorhandenen
Sturmwinder Steinbank (stormwind_rest_bench, Spawn 219847, Entry 203946).
Die Bankdefinition wird nur angelegt, wenn der passende native Spawn vorhanden
ist. Bestehende Definitionen und manuell bearbeitete Gewichte bleiben erhalten.
Beim Schlafen oder Bodenrasten muss der Punkt zur Fraktion und Karte passen und höchstens 30 Yards vom Aufenthaltsanker entfernt sein; maximal 12 Yards Höhenunterschied erlauben einen Schlafplatz im Obergeschoss. Der lokale Weg muss vollständig und unverdächtig sein und darf maximal 120 Yards lang sein. Anlauf und Ankunft prüfen auf andere Spieler am Platz. Die Ankunft muss innerhalb von 60 Sekunden und mit höchstens einem Yard Positionsabweichung bestätigt werden. Wasser, Fallen, Kartenwechsel, entfernte Ortsdefinitionen, veränderte Ruhehaltung und Kampf beenden beziehungsweise verhindern die Szene. Beim Abbruch oder Intentwechsel wird die Haltung zurückgesetzt. Fernreisen behalten die vorhandene sichere Übergabe an regulären Graphnodes.
Bedienung
Serverkonsole (im Spiel mit führendem Punkt):
clientless adventure intent 26 rest goldshire_tavern 3600
clientless adventure status 26
clientless adventure micro 26 rest_sleep
clientless adventure intent 26 rest stormwind_rest_bench 3600
clientless adventure micro 26 rest_seat
clientless adventure stop 26
micro ist ein gezielter Test während eines laufenden passenden Intents am
Zielort. Es umgeht weder Ortsbedingungen noch Navigation oder native
Sitzbestätigung. Der Tagesplaner kann rest anhand von
activity_affinity.rest auswählen (Standardgewicht 0,5); vorhandene gespeicherte
Tagespläne werden nicht nachträglich umgeschrieben. Arthorans Tagesplan bleibt
für die gezielte Sichtprüfung ausgeschaltet.
Prüfungen
python3 tests/clientless/test_adventure_rest.py
python3 tests/clientless/test_adventure_rest_fire.py
python3 tests/clientless/test_adventure_social_fire.py
python3 tests/clientless/test_adventure_micro_reset.py
python3 tests/clientless/test_adventure_intent_state.py
python3 tests/clientless/test_adventure_social.py
python3 tests/clientless/test_adventure_walk.py
Die neue Regression führt die produktiven Auswahl- und Aktualisierungsfunktionen mit kontrollierten Navigationsadaptern aus: geeignete Kategorien, Karte, Fraktion, Abstand und Höhe, bestätigte Ankunft, belegte Plätze, vollständige Ruhedauer nach Anreise, Navigationsfehler, Zeitlimit, Katalogänderung und unterbrochene Haltung. Bestehende Prüfungen decken Sitzbestätigung, Gehmodus, Aufräumen und Intentübergabe ab. Build und technische Tests ersetzen die visuelle Abnahme der neuen Ruheabläufe nicht.
Testserverstand am 27.10.2026
- Debug-Build mit
-j10erfolgreich, installiert. Alle neun ausgeführten Adventure-/Beobachter-Regressionsskripte erfolgreich. - Frische Worldserver-Sitzung mit
(worldserver-daemon) ready..., fortlaufendem Prozess und geöffnetem Port 8085 bestätigt. - Goldhain:
INTENT_ARRIVED,REST_APPROACHundREST_CONFIRMEDfürgoldshire_sleep_upstairsbestätigt. Der lokale Weg führte über die Treppe und zwei Splineabschnitte mitwalk=1; die tatsächliche Ankunft lag bei(-9457.200, 32.800, 63.820). Angeforderte Schlafdauer: 131 Sekunden. Der nachfolgende Intentwechsel beendete diese Schlafphase vorzeitig. - Sturmwind:
INTENT_ARRIVEDundrest_seatbestätigt. Native Steinbank Entry 203936, Slotposition(-8473.900, 847.299, 105.786), Slotfehler0.000, Sitzhaltung5, Bewegungs-GUID26. Der lokale Anlauf lief mitwalk=1. Die Auswahl darf andere passende Bänke in der Nähe des Anlaufpunkts verwenden. - Der Banktest begann nach administrativer Positionierung am Kathedralenplatz;
die anschließende Navigation zum Ruheort und die Sitzplatzbenutzung waren
regulär. Die Fernreise von Goldhain zu dieser Bank ist nicht als erfolgreich
geprüft einzustufen: der bestehende Graph plante einen weiten Umweg über
Eisenschmiede (16 Schritte zum Hafenanker); der Versuch wurde beendet.
Bei einer zwischenzeitlichen Rückreise traten außerdem vorhandene
Navigationsfehler mit
_checkPathLengths()auf. Diese Reiseprobleme wurden im Rahmen der Ruhe-Erweiterung nicht verändert. - Für den isolierten Banktest wurde der Startauftrag im Profil kurzzeitig angepasst und nach bestätigtem Login wieder vollständig zurückgesetzt. Arthoran bleibt zur Sichtprüfung im laufenden Ruhe-Intent in Sturmwind; sein Tagesplan ist aus. Das unveränderte Profil startet nach erneutem Login weiterhin den bisherigen Sozialauftrag in Goldhain.
Offen bleiben die visuelle Abnahme der neuen Schlafdarstellung und des Ruheablaufs sowie eine reguläre Fernreise bis zum Stadtbank-Ruheort. Bodenrast ist automatisiert geprüft, hat aber noch keinen eigenen Live-Testpunkt. Weitere Ruheorte können über den bestehenden Ortskatalog ergänzt werden.
Fortschreibung: Der Nutzer hat den lokalen Anlauf zur Stadtbank, Absteigen
und Hinsetzen visuell bestätigt. Für die anschließende Schlafvorführung in
Sturmwind wurde gilded_rose_sleep_upstairs im Obergeschoss der Taverne
the_gilded_rose ergänzt. Die markierte Bodenposition verwendet die native
Schlafhaltung; automatische Bettbenutzung ist weiterhin nicht implementiert.
Feuerrast-Ergänzung am 27.10.2026
rest_fire ist im Testkatalog aktiv (34 Aktionen insgesamt). Die additive
Migration wurde angewendet; vorhandene Feueraktionen für Geselligkeit und
Abenteuer blieben unverändert. Alle 22 Clientless-Regressionsskripte und der
Debug-Build mit -j10 bestanden. Die Binärdateien sind installiert; der frische
Start erreichte ready..., Prozess und Port 8085 wurden bestätigt.
Arthoran wurde mit seinem Ruheauftrag in der Gilded Rose wieder eingeloggt.
Sein Profil wurde nur für diesen Login temporär angepasst und anschließend
bytegenau zurückgesetzt. INTENT_ARRIVED und natives Sitzen sind erneut
bestätigt. Der gezielte Aufruf micro 26 rest_fire wurde dort mangels eines
geeigneten erkannten Feuers abgelehnt; die laufende Sitzszene blieb erhalten.
Damit ist die Laufzeitsperre an diesem Innenraum geprüft, nicht eine erfolgreiche
Feuerrast. Feuererzeugung und vorhandene Feuer sind mit kontrollierten Adaptern
getestet; eine positive Sichtprüfung der Feuerrast und der verschobene visuelle
Schlaftest bleiben offen. Im aktuellen Testkatalog gibt es noch keine aktivierten
rest_ground-Locations; neue Plätze müssen vor Freigabe räumlich geprüft werden.
Die ergänzte Gebäudesperre/Stadtsperre ist ebenfalls gebaut (-j10) und
installiert. Die drei betroffenen Feuer-/Szenen-Regressionsskripte bestanden,
einschließlich unmarkierter Stadtviertel mit Stadt-Parent, getrennter Zone,
Handelskanal-Kennzeichen, fehlender Gebietsdaten und weiterhin nutzbarer
vorhandener Feuer. Die geladenen enUS-AreaTable-Daten bestätigen die
Stadtkennzeichen unter anderem für Sturmwind und deren Vererbung an das
selbst unmarkierte Untergebiet 1617. Der Testserver erreichte erneut ready...;
Prozess und Port 8085 wurden geprüft. Arthoran ist wieder im Ruhe-Intent in
der Gilded Rose, sein temporär angepasstes Startprofil ist zurückgesetzt.
Schlafvorführung am 27.10.2026
Auf ausdrücklichen Nutzerwunsch wurde die Schlafprüfung wieder aufgenommen.
Arthoran reiste regulär von Elwynn zur Gilded Rose. Der alte Schlafmarker lag
1,72 Yards vom nativen MMAP-Endpunkt entfernt und wurde deshalb von der strengen
lokalen Ankunftsprüfung zurückgewiesen. Die native Navigation erreichte über
die Treppe (-8865.066, 684.800, 105.517); der Marker wurde gezielt dorthin
korrigiert (Migration _06, auf Test-DB bereits ausgeführt). Keine Lockerung
der Ankunftsprüfung, kein Teleport. Der kurz verwendete Lua-Testoverride wurde
bytegleich wiederhergestellt.
REST_CONFIRMED guid=26 point='gilded_rose_sleep_upstairs' posture='sleep' durationMs=168000 bestätigt die gestartete native Schlafhaltung. Die sichtbare
Abnahme durch den Nutzer steht noch aus. Der Ruheauftrag gilt für diesen
Testlauf; das normale Lua-Profil blieb unverändert.
Flächensuche statt ungeprüfter Schlafposition
Die Sichtprüfung vom 27.10.2026 zeigte Arthoran mitten im oberen Stuhl.
REST_CONFIRMED belegte zuvor nur Navigation und Haltung, keine freie Liegefläche.
Die Migration _06 wird deshalb nicht weiter als räumlich abgenommener Platz
betrachtet. Ihr Punkt dient jetzt als Suchanker; vorhandene Koordinaten bleiben erhalten.
Schlaf sucht bis acht Yards um einen geeigneten rest_sleep-Anker; ohne nutzbaren
Schlafanker dürfen freigegebene Tavernen als Suchanker dienen. Explizite
Schlafanker haben Vorrang. Die Suche bleibt innerhalb von 1,5 Yards zur
Ankerhöhe und im Innenraum. Sie ersetzt keine Anreise und teleportiert nicht.
Reihenfolge innerhalb der Suche:
- Phasenrichtige, gespawnte native Bettobjekte, deren Name ein vollständiges Bett-/Bedroll-/Bunk-/Cot-Wort enthält. Ein eigener nativer Betttyp existiert nicht; auch Betten vom Typ Chair werden nicht als Stuhl benutzt.
- Geometrisch mögliche erhöhte Liegeflächen mit abrupten Kanten auf beiden Seiten (mindestens 0,35 Yards Abfall auf 0,15 Yards Strecke, höchstens ein Yard Höhendifferenz). Das ist eine Heuristik, keine sichere Bettklassifikation; ein passender Tisch kann geometrisch gleich aussehen.
- Ein freier ebener Bodenplatz, auch in Gasthäusern ohne Bett.
Für jede Ausrichtung wird eine modellgrößenabhängige Körperfläche geprüft: mindestens 3,2 × 1,3 Yards, größere Charaktermodelle entsprechend größer. 45 Stützstellen müssen eine gemeinsame ebene, trockene Fläche ergeben (maximal 0,18 Yards Abweichung). Native VMAP-/dynamische Sichtlinien auf mehreren Körperhöhen und senkrechte Abfragen prüfen Möbel, Wände und niedrige Überbauten. Native Stühle werden zusätzlich mit Sicherheitsabstand ausgeschlossen, auch wenn ihr Modell keine nutzbare Kollision besitzt. Andere Spieler und Kreaturen dürfen die Körperfläche nicht belegen. Dekoration ohne Kollisionsdaten und ohne eigene erkennbare Objektkennung bleibt technisch nicht sicher erfassbar.
Der gewählte Platz und seine Ausrichtung werden getrennt vom Suchanker in der
Szene gespeichert. MMAP muss ihn vollständig und unverdächtig erreichen;
maximale Endpunktabweichung 0,3 Yards, tatsächliche Ankunft höchstens 0,35 Yards.
Ein Pfad auf dem Boden unter einer Bettfläche gilt damit nicht als Bettankunft.
Die Flächenprüfung wiederholt sich unmittelbar vor der Schlafhaltung und alle
zwei Sekunden während des Schlafens. Änderungen beenden die Szene über das
vorhandene Aufräumen. Bodenrast (rest_ground) behält ihr bisheriges Verhalten.
Neue Regressionen: test_adventure_rest_space.py (produktive Flächen-/Kantenregeln),
test_adventure_rest_targets.py (produktive native Objektauswahl und Suchadapter).
test_adventure_rest.py prüft zusätzlich den vom Anker abweichenden Zielpunkt,
die erneute Flächenprüfung und den Abbruch bei nachträglicher Belegung.
Liveprüfung des Flächenausbaus am 27.10.2026:
- Debug-Build (
-j10) erfolgreich, sauber gestoppt, installiert und neu gestartet. Frische Ready-Meldung nach elf Sekunden, Prozess 31446 und Port 8085 bestätigt. - Alle 38 zunächst vorhandenen/ergänzten Testskripte bestanden; der danach ergänzte native Zieladaptertest ebenfalls, insgesamt 39. Die anschließend erweiterten Ruhe-, Flächen- und Zieladaptertests erneut erfolgreich.
- Arthoran erreichte den oberen Suchanker regulär. Suche:
beds=0 raised=0 floor=18. Gewählt wurde(-8868.534, 682.800, 104.949), Ausrichtung 3,740. Native Geh-Anreise über 4,03 Yards, Endpunktfehler 0,00, danachREST_CONFIRMEDmit 243 Sekunden Schlafdauer. Kein Teleport/Objektbenutzen. - Source- und installierte Profilkopie entsprechen wieder dem unveränderten
Normalprofil (SHA256
26b11c3108e6ecc5dbc59d1852b4103ca4e818148603a34c02a470c969dc659b). - Bett-/erhöhte-Flächen-Präferenz ist durch produktive Adapterfixtures geprüft, noch nicht positiv live an einem realen Bett. Sichtprüfung des neuen Bodenplatzes durch den Nutzer bleibt offen. Keine neue DB-Migration nötig.
Erneute Suche auf Nutzerwunsch bei Allitester: separater Testanker
gilded_rose_sleep_room_test, (-8877.360, 673.489, 104.950), O=0,649831.
Arthoran erreichte den Punkt nach frischem Laden des Reisepunkt-Caches regulär.
Auch hier beds=0 raised=0, zuletzt floor=46; Schlafhaltung am Boden bestätigt
(143 Sekunden). Die sichtbaren Zimmerbetten sind damit weiterhin nicht erkannt;
der genaue geometrische Ablehnungsgrund wurde noch nicht instrumentiert.
Der ältere Anker wurde für die gezielte Auswahl kurz ausgeblendet und danach
vollständig wieder aktiviert. Normalprofil unverändert wiederhergestellt.