1679 lines
104 KiB
Markdown
1679 lines
104 KiB
Markdown
# WICHTIGSTER NEUER BEFUND: Freiflug scheitert an fehlendem Terrain-Fallback
|
||
|
||
Native `clientless flight probe 128 1751.49 -4389.67` (09:20CETca) ergab
|
||
valid0 ground0 ceiling0. DIREKT davor in aktuellemConsoleLog:
|
||
Map file /home/wow_admin/wow_cata_server/data/maps/7192840.map does not exist!
|
||
Karte719lautlokalerMapDBC=Hyjal,Parent1(Kalimdor). PhysischeBasiskachel
|
||
0012840.map sowie001_28_40.vmtile/001.vmtree sind vorhanden.
|
||
ClientlessFlightMgr::Sample(Zeile~166) benutztPhasingHandler::GetTerrainMapId
|
||
undverlangtTerrainMgr::ExistMapAndVMap(terrain,x,y) fürdiesesChildTerrain.
|
||
BeiFehlenreturn{} bevor eigentlicheHeight/CeilingChecks. Normales
|
||
TerrainInfo::GetGrid(281ff) lädtBasiskarteundnutztChildnurdann,wennesfürdiesenOrt
|
||
eineChildGridMapgibt;ansonstenbleibtBasiskarte. UnsereExtravorprüfungignoriert
|
||
diesenFallback undverhindertsoFlügeauchmit225Reiten/Lizenzen/Mounts.
|
||
NichtPhase169ändern(istStandard)! Nichtblind719Kachelnfälschen/kopieren oder
|
||
Kollisionsprüfungenabschalten. NötigwäreeineTerrainprüfung mitdemtatsächlich
|
||
verwendetenKachelfallback,danachweiterVMAP/Bounds/Clearanceprüfen.
|
||
ZweiterBefundbleibtGraph-AnschlussnurperMMAPundfinalerCrossMapFallbackungeeignet.
|
||
KeineCodeänderung/DBwrites/IntentänderungeninderDiagnose. NutzerTeilbefund
|
||
soebenkommentiert;jetztkurzabschließendzusammenfassen.
|
||
|
||
---
|
||
|
||
# Neueste Diagnose: Horde-Navigation/Fliegen, keine Änderungen umgesetzt
|
||
|
||
Nutzer bat Horde-Navigation anzusehen, höherlevelige solltenfliegenkönnen.
|
||
55Horde online,22ab60 nativStatusangefragt (09:18CET):19ActionCompleted/
|
||
PhaseOnSite,1Failed(Volakmar128,L80,Naxxramasgoal571),1Idle(Gruppeninteraktion),
|
||
1Moving. Allestanden gespeichertnochinOrgrimmar nachUmsiedlung, vieleerfüllen
|
||
legitimStadtintents. Logs zeigenvorallembeiLowlevels wiederholteMMAP/Graph-
|
||
Startprobleme anOrgrimmarsHöhenplattformen.
|
||
|
||
KonkreteCodeLücke: PlanAdaptiveRoute startetGraph nurüberlokalenMMAP-Weg zum
|
||
Startnode (inklDeferredPartial), keinFlugvomaktuellenStandortzumeinemStartnode.
|
||
FreieFlugalternativen beginnen erst INNERHALB desGraphs. TryFallbackFlight in
|
||
ClientlessActionExecutorMgr.cpp1890 prüft nurGetTravelGoal(finalesZiel) und
|
||
brichtbeiandererMap sofortab. Volakmar128,L80,hat225Reiten,90267+54197 und
|
||
HordeFlugmounts32243/44/45,willNaxxramas571,bleibtinOrgrimmar anStart-MMAP
|
||
hängen,keinFlightState. Grundrouten fehlen,aberFlugzukünftigzumgeeigneten
|
||
legalenAbreiseknoten muss dieseAnschlusslücke überbrücken. Keine pauschale
|
||
Flugsperre inOrgrimmar ausdiesenDatenbewiesen. NativeFlightSurfaceProbe128
|
||
bei1751.49,-4389.67 zuletztgesendet.
|
||
|
||
22HighLevels gespeichertmeist225; Aldren32undTalzul97habenKEINcharacter_skills
|
||
RIDING762Datensatz,obwohlLizenzen/Mountspells und geladeneProfileGroundMount1.
|
||
DBistgespeicherterZustand, liveSkillnochNICHTausgelesen,nichtalsdefinitiven
|
||
aktuellenSkillbugverkaufen. Reconcile SetSkill nurwennCanGroundMount true;
|
||
KontrollederLaufzeitvorbereitung/speicherung sinnvoll. StoredAldrenProfil
|
||
beginntfalseLegacy,weiterhintenmovementm überschreibtesaufaktuelltrue.
|
||
|
||
Artefakte:/tmp/vcore-horde-flight-guids.txt, ...flight-offset.txt,
|
||
/tmp/vcore-horde-flight-diagnosis.txt. NativeConsoleweiter
|
||
/tmp/vcore-area-start-verified-20261029.log,ServerPID247021. SourceWIP
|
||
unverändert,keineConfig/DBwrites/IntentsänderungenwährenddieserDiagnose;
|
||
nurreadonlyStatus/FlightSurfaceprobe. NutzerkurzerklärteTeilbefundekommentiert.
|
||
NochkeineImplementierungfürdieseLückeangefordert; aufDiagnoseabschließen.
|
||
|
||
---
|
||
|
||
# Neuester Auftrag:110AdventureBots in sichere Hauptstädte umgesiedelt
|
||
|
||
Nutzer bat alleBots nachSturmwind/Orgrimmar zu versetzen, um alteStrandungen zu
|
||
beseitigen. OhneCode/Build/Serverrestart umgesetzt: TestLoader kurz perConfig
|
||
Enabled0+reloadconfig+populationreload pausiert,110nativeClientlessLogouts,
|
||
DBOffline geprüft, nur explizitgenerierte readyBots inCharacterDB verlagert.
|
||
55Allianz aufnativeGameTeleStormwind954(Map0,Zone1519,-8833.07,622.778,93.9317),
|
||
55Horde aufOrgrimmar703(Map1,Zone1637,1569.97,-4397.41,16.0472).
|
||
Gespeicherte Taxi-/Transport-/Instanzfelder bereinigt, alteInstanceVisits und
|
||
BotCorpse/Geist-Auren8326/20584 entfernt, Health>=1, keineWiederbelebungsschwäche.
|
||
KeineProfile/Intents/Tagespläne geändert. LoaderEnabledOriginal1 und50/5/50/5
|
||
wiederhergestellt, normalesgestaffeltesEinloggen. ServerPID247021 bliebgleich.
|
||
Audit/engePositionsbackups /tmp/vcore-capital-relocation-20261029/,
|
||
Skript /tmp/vcore-capital-relocate.py, AblaufLog /tmp/vcore-capital-relocate.log.
|
||
State normal_loader_restored. NachSQL alle110fraktionsrichtiginHauptstädten,
|
||
0alteReisezustände. Livepositionsprobe26Area5148(Sturmwind),32Area1637(Orgrimmar)
|
||
beideerlaubt. NormaleTagespläne dürfen dieBots wiederlegalweiterreisenlassen.
|
||
AbschlussNativePopulation110/110,50/5/50/5,0pending,errorleer geprüft.
|
||
GMreloadconfig meldetErfolg nurGlobalGM, nichtConsole -> nichtdaraufwarten,
|
||
ConsoleFIFO viaanschließendenpopulationreload mitenabledStatus prüfen.
|
||
KeineandererenSpielerangefasst, keinCommit/Push. VorigeSource-WIP bleibtbewahrt.
|
||
|
||
---
|
||
|
||
# ABSCHLUSS: finaler Testserver geprüft,110Bots online
|
||
|
||
Gebietskatalog-Integration fertig gebaut/installiert. LetzterStart
|
||
/tmp/vcore-area-start-verified-20261029.log, PID247021, tmuxvcore-worldserver.
|
||
Ready-Prozess-Port8085 geprüft. NativePopulation110,50/5/50/5,0pending,errorleer.
|
||
FinalerTagesplanaudit2640Slots,keineleerenZiele,0Verstöße inMetadaten;
|
||
298Slots ohneexpliziteGebiets-ID werdennativüberKoordinatengeprüft.
|
||
FinaleLiveproben: Allianz26Tiefenbahn erlaubt,Horde32Sturmwindportal verboten,
|
||
Vashjir26verboten. KeinADVENTURE_DISABLED/Assert/SQLKollationsfehler imletztenStart.
|
||
Nachweise doc/clientless/checkpoints/2026-10-29-area-catalog/ inklfinal-server-smoke.log.
|
||
ZehnTestsbestanden. KeineweiterenArbeitenvorAbschlussnötig. Serverlaufenlassen.
|
||
NochkeinCommit/Push. AbschließendNutzermelden: Funktionenaktiv,Reloadkommando,
|
||
Build/Tests/110Botsgeprüft;Gameplayvisuellnichtabgenommen. AlteTaxi-Hänger und
|
||
kalte/großeDebug-Routen(mehrereSekunden)bleibengesonderteThemen.
|
||
|
||
---
|
||
|
||
# Aktuell29.10.2026: Gebietskatalog LAUFZEIT-INTEGRATION implementiert
|
||
|
||
Nutzerauftrag: Bots und Tagesplaner müssen Gebietskatalog verwenden; keine
|
||
Locations in gesperrten/zu hochstufigen Gebieten. Frühere Katalog-only-Notizen
|
||
unten sind HISTORISCH, nicht als aktuelles Arbeitsverbot verstehen!
|
||
|
||
Implementiert: AdventureAreaMgr + getestete AdventureAreaPolicy. Snapshots aus
|
||
WorldDB, Eltern-Fraktionsschnittmenge, MinLevel+Gap(default5), bekannte Bereiche,
|
||
unbekannte Freilandbereiche unter85 gesperrt, native Flugpräferenzen. Neue/alte
|
||
Tagespläne über Allowed/PickLocation/Generate prüfen und illegale Ziele persistent
|
||
ersetzen, Intents/Stunden bewahren. AreaRevision bewirkt Revalidierung nachReload.
|
||
AdventureLocationMgr bezieht Levelgewichte nur noch aus neuem Katalog.
|
||
|
||
Node-ACL vcore_clientless_node_access für alle Nodearten, explizit4Allianz-Nodes
|
||
(Tiefenbahn, SW-Ruttheran-Schiff). Automatische Taximasken aus Creature-Spawn-NPCflag
|
||
COALESCE(c.npcflag,t.npcflag) und NPC-Fraktionsvorlagen (auch neutral).314TaxiNodes
|
||
zugeordnet,141ungeklärt und zu. Masken werden im Manager abgeleitet, nicht mit
|
||
manuellen Masken verwechselt. Optional flightmaster_spawn_id für konkreteBindung.
|
||
Tabellen-Kollation utf8mb4_unicode_ci passend zu bestehenden Nodekeys!
|
||
|
||
TravelGraph alle Suchpfade, virtuelle Brücken/Ein-/Ausstiege, cachedMMAPgeometry,
|
||
Executor vorRouteStep und realenRecordedSplines, TravelMgr Diagnose+Ausführung,
|
||
Taxi-DBC-Strecken, FreeFlight Planung+Segmente und nativeTransportStarts prüfen.
|
||
Gruppenreise: JourneyFollow Portalziel ebenfalls prüfen, da dieser Pfad native
|
||
Portale direkt verwendet. Neues Kommando `clientless adventure area <guid> [node]`.
|
||
`clientless adventure reload` lädt Snapshot+Locations+Graph, ungültigeArea-Daten
|
||
lassen bisherigenSnapshot bestehen. KeinNeubuild/Restart für spätereDatenedits.
|
||
|
||
GeometrieCache zwischen Fraktionen/Levels und nativeTerrainSwaps geteilt,
|
||
Berechtigungen bleiben live. Terrainsharedptrs halten, sonst massivesRemoteMap-
|
||
Neuladen. Cachegröße begrenzt mit teilweiserEviction. DijkstraFlight-Vorprüfung
|
||
über sichereKostenuntergrenze40+0.4*Distanz vermeidet unnötigeTerrainproben,
|
||
keine Kandidaten/Graphverbindungen einfach abgeschnitten.
|
||
|
||
Quellcode erfolgreichgebaut mit bestehenderDebugCMake, letztesBuild
|
||
/tmp/vcore-area-build-verified.log, Installation /tmp/vcore-area-install-verified.log.
|
||
ZehnTestprogramme bestanden, nativeLivechecks einschließlichbeiderNeutralitäts-
|
||
seiten, Vashjir, HordeTram/Schiff, neutralerCapitalPortalnode, DalaranLevel60,
|
||
NodeEdit+Reload+Restore und absichtlichungültigerSnapshot+Restore bestanden.
|
||
Alle110Bots imvorigenLaufgeladen:2640Planslots,0leereZiele,0Metadatenverstöße;
|
||
298Slots ohneGebietsmetadaten werden imProduktionsplaner überKoordinatengeprüft.
|
||
Nachweise doc/clientless/checkpoints/2026-10-29-area-catalog/; Doku area-catalog.md.
|
||
|
||
LETZTER TESTSERVERSTART: neuer frischer tmux vcore-worldserver mit
|
||
/tmp/vcore-area-start-verified-20261029.log (nach finalesPortalFollow-Update).
|
||
BeiWiederaufnahme zuerstReady+Prozess+Port8085 und Loaderstatus prüfen!
|
||
Worldserver/Bots laufenlassen. Zieleweiter50/5/50/5. KeineProduktion, keinPush,
|
||
keinCommit. Branch feature/clientless-player-core Basis0173a434f4, erwarteteWIP
|
||
Katalogdaten+Integration+Tests+Docs. SQL02 und03 explizit gitadd-f, da*.sqlignoriert.
|
||
|
||
Grenzen: keinevisuelleAbnahme, gespeicherteTaxi-Hänger/gestrandeteBots nicht
|
||
teleportiert/behoben. Bewegungssampling40yards statt mathematischerGrenzbeweis.
|
||
Kalte/großeDebug-Routen teilsmehrereSekunden, weiterePerformancearbeitbleibt.
|
||
KnownMaps719/736 fehlenweiter. EinfrüherTestshutdownmitzuvordeaktiviertemKatalog
|
||
hatteGetMapAssertnachHalting; nachfolgendeShutdownsnichtreproduziert, Rohlog
|
||
/tmp/vcore-area-start-20261029.log. SQLKollationsfehlerseitdembehoben.
|
||
|
||
Nächste Schritte für Abschluss dieserTurnarbeit: finalenServerstartverifizieren,
|
||
Nativeprobe26/32undPopulationstatusnochmalsprüfen, finalePID/Loaderstandhier
|
||
kurzergänzen. KeineweiterenCodeänderungennötig. DannkurzerdeutscherAbschlussbericht
|
||
mitFeatures, Build/10Tests/Livechecks, Reloadkommando und verbleibendenGrenzen.
|
||
|
||
---
|
||
|
||
# Aktuell29.10.2026: Gebietskatalog angelegt, Integration steht AUS
|
||
|
||
Nachtbeobachtung beendet07:00CET; automatischer Wächter lief trotz Turnunterbrechung
|
||
bis Deadline. Nutzer erhielt Bericht nach07:27. Server lief ohne Neustart,
|
||
110Bots. Befunde Taxi-Hänger, Fraktionsrouten, Todesschleifen, Navigation.
|
||
Vorheriger Nachtauftrag unten ist abgeschlossen, NICHT erneut ausführen.
|
||
|
||
Neuester Nutzerauftrag zieht vor jeder weiteren Implementierung einen ohne
|
||
Neukompilierung/Installation bearbeitbaren Gebietskatalog vor. Dafür ausschließlich
|
||
Datenbasis angelegt, NOCH KEINE Runtime-Regeln oder C++-Änderungen!
|
||
WorldDB: vcore_adventure_area_catalog(3206AreaTable-Gebiete inkl2931Untergebiete),
|
||
vcore_adventure_map_catalog(207Karten inkl1fehlender nativer Map alsTyp255).
|
||
Migration sql/custom/world/2026_10_29_02_adventure_area_catalog.sql bereits auf TEST
|
||
angewandt; reproduzierbarer DBC-Exporter contrib/clientless/export_area_catalog.py.
|
||
Bestehende78Levelbereiche aus vcore_adventure_zone übernommen. Doku
|
||
doc/clientless/area-catalog.md erklärt Felder, SQL-Änderungen und offene Integration.
|
||
Erneutimport identisch, keine fehlenden Eltern/Karten, keine Zyklen, Vashjir-Chain
|
||
geprüft. Native Spieldaten/C++/laufender Server unverändert. Kein Build nötig,
|
||
kein Restart, kein Commit/Push. Bestehende SESSION-RESUME-WIP erhalten.
|
||
|
||
Vereinbarte spätere Integration: Gebiet einschließlich Vorfahren über Node über
|
||
Verbindung; Fraktionsmasken0=zu,1=Allianz,2=Horde,3=beide,NULL=erben. Kind/neutraler
|
||
Node darf Elternsperre nicht aufheben. Gebiete weit über Botlevel meiden auch bei
|
||
Transit; DefaultLevelGap5, max_level ist KEIN Verbot für höherstufige Heimkehrer.
|
||
Vashjir5146 komplett zu inkl4815/5144/5145. Startregionen/Hauptstädte fraktionsgebunden.
|
||
Scherbenwelt/Nordend/Cata-Flugpräferenz nur bei nativer Erlaubnis/Fähigkeit.
|
||
Karte530 enthält auch Startergebiete -> nicht pauschal Outland-Fluggebiet!
|
||
Alle Nodes müssen individuelle Fraktionsfreigabe erhalten können. Flugknoten
|
||
automatisch aus zugeordneten Flugmeister-NPC-Fraktionsvorlagen ableiten, neutrale
|
||
beiden erlauben, unklare nicht automatisch neutral. Tiefenbahn und Schiff
|
||
Sturmwind-Teldrassil für Horde sperren. Hauptstadtportale Ziel-Fraktion beachten.
|
||
Start/Ziel/Zwischenstationen, virtuelle Graphverbindungen, lokale Wege und Executor
|
||
absichern. Bot in gesperrtem Gebiet braucht sicheren Ausweg. Runtime-Katalog-
|
||
Reload erst in nächster Integration einbauen; bisheriger adventure reload wertet
|
||
neue Tabellen NICHT aus. Eine erstmalige Anbindung benötigt Build/Installation,
|
||
danach dürfen Katalogänderungen keinen Build/Restart brauchen.
|
||
|
||
---
|
||
|
||
# AKTIVER NACHTAUFTRAG: Bis29.10.2026 07:00CET beobachten und DANN berichten
|
||
|
||
Nutzer geht schlafen und bittet, Bots frei ihren Intents folgen zu lassen,
|
||
regelmäßig Logs auf Fehler/Auffälligkeiten zu prüfen und um07:00 mitteleuropäisch
|
||
Beobachtung zu beenden und Bericht zu geben. CET/Berlin+01:00 heute korrekt,
|
||
Deadline2026-10-29T07:00:00+01:00 (06:00UTC). NICHT frühzeitig mit Abschlussbericht
|
||
enden. Aktiven Turn bis Deadline betreuen, neue Benutzersteuerung berücksichtigen.
|
||
Worldserver/Bots nach07:00 NICHT stoppen, nur Beobachtung beenden.
|
||
|
||
Aktueller Commit0173a434f4, Branch feature/clientless-player-core, Quellcode sauber
|
||
zu Auftragsbeginn; nur diese Resume-Notiz geändert. KEINE Features/Fixes/Commits/
|
||
Deployments während Beobachtung. Keine Produktion, keine Subagents. Native Test-
|
||
Crash-Recovery ist gemäß bestehenden Serverregeln erlaubt, nicht bei Warnungen.
|
||
|
||
Worldserver PID214924, tmux vcore-worldserver, Installation server/debug/bin,
|
||
Console /tmp/vcore-performance-retry-start1.log.110Bots50/5/50/5 normaler Tagesplan,
|
||
Mapworker4. Gruppenfindungsmanipulation um01:00 abgelaufen und Helfer inaktiv.
|
||
NativeStatus-Befehle sind nur lesend. Fehlende Karten719/736 und Transportprobleme
|
||
(Lunna49, falsche Fraktionsroute Falaeriel54) schon VORHER bekannt, getrennt werten.
|
||
|
||
Persistenter Wächter gestartet in eigener tmux-Session
|
||
vcore-overnight-monitor-20261029. Skript
|
||
/tmp/vcore-overnight-20261029/monitor.py, Parameter --until2026-10-29T07:00:00+01:00
|
||
--out/tmp/vcore-overnight-20261029 --recover. NICHT doppelt starten oder State
|
||
überschreiben! Console /tmp/vcore-overnight-20261029/monitor-console.log.
|
||
Liest minütlich ab aktuellem Dateiende Server.log, DBErrors.log,
|
||
adventurebot-navigation.log (inkl.Rotation) und Console. Native Population alle5min,
|
||
alle15min Intent-/Transportstatus und gespeicherte110Botpositionen/Fertigkeiten
|
||
(nur gewählte Characterfelder, KEINE Credentials). CPU/RSS minütliche Deltas.
|
||
DB-Abfragenfehler werden nur protokolliert, kein Eingriff ins Spielverhalten.
|
||
Watch-Skript geprüft mit2Einzelzyklen, letzter01:51CET/110Charaktere/kein Fehler.
|
||
|
||
Dateien: status.json (kurz), state.json (alle Daten), events.jsonl (Auffälligkeiten),
|
||
characters.jsonl (15min-Snapshots), report.md (laufende Zusammenfassung, final um07).
|
||
Script zählt native Ereignisse und Warnungen getrennt. Fehlende Maps separat;
|
||
Transit>15min und wiederholtes gespeichertes Transguid>30min sind Kandidaten,
|
||
keine automatisch bestätigten Bugs. Server-/Nav-/DB-Fehler werden gesammelt,
|
||
CPC_PERF/SlowRoutes ebenfalls. Gespeicherte Positionen können90s alt sein.
|
||
|
||
Bei Prozessverlust: Wächter startet NUR exakt diese Testinstallation, höchstens3
|
||
Versuche je Recovery, jeweils frische Readiness/Portkontrolle, ca10s zwischen
|
||
Versuchen. Mehr als3Crash-Episoden/30min -> Recovery aus. Nicht bei Warnungen neu
|
||
starten! Prozess vorhanden aber keine CPC-/Populationantwort>10min -> Event
|
||
possible_hang; dann selbst diagnostizieren, nicht blind Neustart. Unbekannte
|
||
Prozessmengen werden nicht angerührt. Bei07 stoppt Watcher und schreibt Endbericht;
|
||
Server bleibt an. Falls der Turn unterbrochen wurde, vorhandene Dateien lesen,
|
||
bis07 weiter beobachten oder bei Wiederaufnahme nach07 Ergebnis berichten.
|
||
|
||
Nächste Schritte: status.json nach erstem Minutenzyklus prüfen, dann regelmäßig
|
||
(ca5min) selbst neue Events/Counter/Population/Performance auswerten; Tool-Waits
|
||
höchstens60s, sinnvoll clock.sleep60000 oder functions.wait yield<=60000 verwenden.
|
||
Nicht einfach zurückgeben, bevor07. Am Morgen aussagekräftige Befunde mit Uhrzeiten,
|
||
Crash-/Neustartzahl, Botzahl, Datenfehlern/Transport-Kandidaten/Leistung berichten;
|
||
keine visuellen Gameplay-Verifikationen behaupten. Rohbericht ggf. nach
|
||
Doc-Checkpoint kopieren, kein Commit ohne Nutzerauftrag.
|
||
|
||
Zusatz zur Nacht: Exakte kategorisierte Nav-Auswertung per
|
||
`python3 /tmp/vcore-overnight-20261029/audit-navigation.py`; inkrementell über
|
||
aktuelle/rotierte Navlogs, Timestampfilter01:51:59..07:00. Zustand navigation-audit.json.
|
||
Um07 unbedingt zuletzt ausführen: Hauptwächter normalisiert Timestamps nicht,
|
||
seine auf300begrenzten Warnsignaturen laufen früh über. Ereigniszähler/CPU/Population
|
||
und Warnkategorien bleiben korrekt, für Navgründe/Severity/Actors Audit verwenden!
|
||
Manuelle Notizen manual-observations.md.
|
||
Zusätzlicher rein lesender sample-actions.py (gleiches/tmp-Verzeichnis) sammelt
|
||
110native Aktionszustände und markiert lange Taxi-Legs ohne Complete zwischen
|
||
Stichproben. Erstes Sample02:33:59,18Taxi-Legs; nächste ca02:49, dann15min.
|
||
Dateien actions.jsonl, taxi-candidates.jsonl. Verdacht vor allem2301(608Map0->23Map1),
|
||
807(6Map0->213Map530), außerdemGarenden62auf2108(sameMap1). Siehe manuelle
|
||
Notizen; mögliche fehlende Teleport-ACKs nicht als bewiesen ausgeben. Nicht fixen! Stand02:50:110stabil, keine Neustarts,
|
||
Nav-ERROR bisher alles RECOVERY_FAILED; viele normale WARN/Retry-Pfadabbrüche.
|
||
2neue DBErrors sind fehlende creature_text für Stormwind Royal Guard42218,
|
||
keine SQL-Verbindungsfehler. Letzter Snapshot02:07 keine gespeicherten Passagiere.
|
||
Keine Eingriffe in Bot-/Serververhalten.
|
||
Neuste relevante Befunde: Darilwin127(Worgen27) inUnterstadt beiCaptainDonaldAdams60
|
||
in sehr schneller Tod/Reclaim-Schleife; RuhezielStormwindBench, solo. Details und
|
||
andere Betroffene in manual-observations.md, Zähler nicht blind als eindeutige
|
||
Todesanzahl werten. ZweiteAktionsprobe02:50:17Taxi-Legs seit02:33:59gleich, ohne
|
||
Complete in Console dazwischen. VieleMapwechsel2301/807/766/767, zusätzlich62sameMap2108.
|
||
NächsteActions-Probe ca03:05, dann15min nach letztem actions.jsonlZeitstempel.
|
||
110online/keineRecovery/CPUca25%main/RSS4.4GiB. Watch läuft unverändert bis07!
|
||
|
||
---
|
||
|
||
# Aktuell: Performance-Verbesserungen implementiert und mit110Bots gemessen
|
||
|
||
Nutzer beauftragte geringere Last/bessere Mehrkernnutzung im Hinblick auf spätere
|
||
Produktion. Branch feature/clientless-player-core, letzter Commit cac4142ec1.
|
||
Sämtliche vorherigen Arthoran/Worgen/PvP/nativer-LFG-Änderungen enthalten.
|
||
Dieser Stand wird auf ausdrücklichen Nutzerauftrag lokal committet; kein Push.
|
||
Doku doc/clientless/performance.md, Nachweise checkpoints/2026-10-29-performance/.
|
||
|
||
Aktuelle Installation: letzter erfolgreicher Build /tmp/vcore-performance-retry-build.log,
|
||
Install /tmp/vcore-performance-retry-install.log. Testserver PID214924 in tmux
|
||
vcore-worldserver, frischer Start /tmp/vcore-performance-retry-start1.log; aktuelle
|
||
ready-Meldung, Prozess und TCP8085 LISTEN bestätigt. Keine Produktion berührt.
|
||
Aktive Config MapUpdate.Threads=4 (vorher1), Network.Threads=1, Loader weiter
|
||
50 persistent+5 temporär pro Fraktion. ALLE110 online, pending0, error leer.
|
||
Gruppenfindungstest-Deadline01:00 abgelaufen; kein Setup-Helfer aktiv. Normale
|
||
persistente Tagespläne werden nach Neustart verfolgt, Test nicht heimlich verlängert.
|
||
|
||
Letzte /proc-Messung10.069s bei110Bots: Hauptthread26.2% eines logischen Kerns,
|
||
vier Mapworker38.6/37.6/38.1/38.5%. Vorherige Beobachtung95.1% Hauptthread,
|
||
9.9% einzelner Mapworker. Verschiedene laufende Situationen, KEIN deterministischer
|
||
Benchmark/keine garantierte Prozentverbesserung. CPU-Datei im Checkpoint.
|
||
Letztes30.011s CPC-Fenster110Bots: Actions7.762s, Controllers1.612s. Baseline
|
||
16Bots/31.923s: Actions24.381s, Controllers1.032s. Zeiten sind Wandzeiten,
|
||
keine CPU-Prozente. Debug-CMake unverändert -g OHNE Optimierung; Produktion
|
||
benötigt gesonderten optimierten Build/Lasttest, keine1,000Bot-Freigabe behaupten.
|
||
|
||
Hauptursache gemessen: Flugkostenbewertung im Graphen (21,456Calls,292.767ms
|
||
von355.109ms warmer Suche). Scoped Flight-Planning-Snapshot reduziert wiederholte
|
||
Config-/Profilabfragen auf einmal pro Suche; exakte binäre Gebietsschlüssel
|
||
statt float-Textformatierung. Native tatsächliche Start-/Lizenz-/Gebietsregeln
|
||
bleiben wirksam. Spätere ähnliche20k-Calls-Suchen34..37ms Flugbewertung, ca100ms
|
||
Gesamtsuche. Kalte Terrain-/Loginvorgänge können weiterhin Einzelspitzen erzeugen.
|
||
|
||
Weitere Änderungen: ClientlessGraphProbeCache erfolgreiche statische feste MMAP-
|
||
Verbindungen (Map/Instanz/Richtung/exakteKoordinaten), max32768, Graph-Reload leert;
|
||
max4096 feste Graphnachbarschaften als Würfel-Superset mit allen bisherigen
|
||
Radius/Sperrlisten/Wegeprüfungen. Nur innerhalb EINER Suche Startpfade teilen,
|
||
auch über Suchtiers; keine globalen Playerpfade/negativen/transienten Proben.
|
||
Reisefehlerbackoff2..30s mit Jitter, neuer Intent setzt Retry zurück, Zeitblock-
|
||
Deadline unverändert, Kampf und Benachrichtigungen nicht verzögert. Verhindert
|
||
beobachtete heiße Schleifen mit>50Fehlzielen innerhalb weniger Minuten.
|
||
CPC_PERF alle30s + CPC_ROUTE für Suchanfragen>=50ms bleiben als Diagnose.
|
||
|
||
Alle86 Clientless-Tests bestanden, /tmp/vcore-performance-retry-tests.log,
|
||
inklusive neuer Cache-/Retry-/Scoped-Planning-/Koordinaten-/Routenregressionen,
|
||
16parallel schreibenden Mapworker-Notifications und native Masterpfade. Gameplay-
|
||
Abnahme und produktionsnaher optimierter Lasttest bleiben getrennt offen.
|
||
Bot/Lua/Player-Manager bleiben Worldthread-eigen; native Mapjobs parallel, einzelne
|
||
Map weiterhin seriell. Kein blindes Parallelisieren geteilter Zustände.
|
||
|
||
---
|
||
|
||
# Performance-Fortschritt: Cache/Mapworker bereit, Vergleich noch offen
|
||
|
||
Interne Baseline-CPC_PERF bestätigt Actions als Engpass:16Bots/31.923s Fenster
|
||
24.381s Actions,1.032s Controllers,27ms Perception. Bei20Bots nur10Ticks/31.537s,
|
||
27.872s Actions. Bei59Bots12Ticks/32.301s,26.331s Actions. Baseline-Logs
|
||
/tmp/vcore-perf-baseline-start1.log und derzeitiges Server.log (vor Neustart sichern).
|
||
|
||
Implementiert: ClientlessGraphProbeCache.h, maximal32768 erfolgreiche statische
|
||
MMAP-Proben, genaue Floatbits/direktional/Map-/Instanzschlüssel. Keine Playerpfade,
|
||
Detour-Pointer, negativen/unvollständigen/transienten Ergebnisse speichern.
|
||
In PlanAdaptiveRoute nur zukünftige feste Graphpunkte. Aktuelle Einstiegswege
|
||
und alle ausführenden Wegprüfungen bleiben nativ. Reload leert Cache.
|
||
Zusätzlich maximal4096 Graph-Nachbarschaften nach Ausgangsknoten/Radius; Würfel-
|
||
Superset, ursprüngliche genaue Radius-/Sperrlisten-/Pfadregeln bleiben aktiv.
|
||
CPC_ROUTE-Trace für Suchanfragen>=50ms mit Gesamt-/Navzeit/Probezahl/Cachehits.
|
||
|
||
Cache-Unit, Produktionsplaner (kalte/warme identische Route, weniger Proben,
|
||
Sperrlisten und Cacheleerung), 16-Thread-Damage-Handoff erfolgreich. Social-Handoff
|
||
und Gruppenreise zielgerichtet laufen/Ergebnisse prüfen. Baseline-Build cache1
|
||
war erfolgreich; aktueller abschließender cache2-Build enthält zusätzliche
|
||
Routenzeiten: /tmp/vcore-performance-cache-build2.log, Session65518, vorher
|
||
pgrep ninja vor weiterem Build! Native Baseline-Server204663 vollständig beendet.
|
||
Testconfig MapUpdate.Threads=4 gesetzt (vorher1), Netzwerk unverändert1; nur
|
||
Testserver, Produktion unverändert. Noch NICHT installiert/neu gestartet.
|
||
|
||
Nächster Schritt: Build/Tests fertig prüfen, installieren, frisch starten,
|
||
Ready/Port/4Mapworker prüfen. CPC_PERF/CPC_ROUTE und CPU-Deltas nach Cache-Warmup
|
||
bei dokumentierter Botzahl vergleichen. Noch KEINE Verbesserung behaupten;
|
||
falls Navigation nicht dominant im CPC_ROUTE-Trace, weiteren Engpass messen.
|
||
Alle früheren WIP erhalten, kein Commit/Push, keine Subagents.
|
||
|
||
---
|
||
|
||
# Aktuell: Performance/Mehrkern-Optimierung in Arbeit
|
||
|
||
Nutzer beauftragt Verbesserung der Last/CPU-Verteilung für spätere Produktion.
|
||
Alle vorherigen uncommitteten Arthoran/Worgen/PvP/LFG-Änderungen bewahren.
|
||
Branch feature/clientless-player-core geprüft. Keine Subagents erlaubt; kein Push.
|
||
Baseline vor Änderungen PID201380: Hauptthread95.1% eines logischen Kerns,
|
||
Mapworker9.9%,12logische CPUs. MapUpdate.Threads=1,Network.Threads=1.
|
||
CMake Debug mit -g OHNE -O; Produktionslast dadurch nicht direkt ableitbar.
|
||
perf und gdb attach durch OS-Rechte gesperrt, sudo -n ebenfalls nicht verfügbar.
|
||
Keine OS-Rechte geändert. Stattdessen gezielte Laufzeitmessung eingeführt.
|
||
|
||
ClientlessPlayerMgr.cpp Update misst Travel/Perception/Transport/Flight/Actions/
|
||
Controllers inklusive Online-Initialisierung, protokolliert CPC_PERF alle30s
|
||
mit Fensterdauer, Tickzahl, Botzahl und langsamstem Einzelcontroller.
|
||
Build /tmp/vcore-performance-instrument-build.log erfolgreich und installiert.
|
||
Alter Server201380 vollständig beendet. Aktueller Baseline-Start läuft unter
|
||
tmux vcore-worldserver, /tmp/vcore-perf-baseline-start1.log. Readiness/Port und
|
||
erste CPC_PERF-Fenster jetzt prüfen; noch keine Optimierung/Mehrkern-Config geändert.
|
||
Loader bleibt50/5/50/5;110 gespeicherte Bots. Frühere Gruppenfindung bis01:00,
|
||
Helfer war zuletzt nicht mehr aktiv; Vergleichslast sorgfältig dokumentieren.
|
||
|
||
Nächste Schritte: Messfenster auswerten, gezielt teuerste Arbeit verbessern,
|
||
sichere Mapworker-Konfiguration prüfen. Bot/Lua/Player-Manager nicht blind parallel
|
||
aufrufen! Welt-/Mapthread-Grenzen beibehalten. TravelGraph-Routing enthält sehr
|
||
teure zukünftige Punkt-zu-Punkt-MMAP-Brücken und ForwardEntry-Probes; Cache bisher
|
||
nur pro einzelner Suchanfrage (validBridgeLengths/rejectedBridges). Falls Messung
|
||
Actions bestätigt, positiver geometrischer Cache über Anfragen mit Graph-Reload-
|
||
Invalidierung/Instanzschlüssel sinnvoll; keine transienten negativen Ergebnisse
|
||
unbegrenzt speichern. Noch NICHT implementiert. Nach Änderungen sinnvoll testen,
|
||
bauen/installieren/neustarten und Last mit Botzahl/Fenster/Debug-Einschränkung
|
||
vergleichen. Keine ungemessenen Prozentverbesserungen behaupten.
|
||
|
||
---
|
||
|
||
# Aktuell: Korrektur auf nativen SucheNachGruppe-Kanal
|
||
|
||
Nutzer korrigiert: SucheNachGruppe ist eingebauter automatisch betretenener
|
||
Hauptstadtkanal; vorheriger /join-Hinweis und Ersatzkanal waren falsch.
|
||
Lokale deDE ChatChannels.dbc bestätigt ID26, NameSucheNachGruppe, Flags262201.
|
||
AdventureGroupMgr.Speak jetzt Lookup26 + native Zonenberechtigung und
|
||
GetJoinChannel(entry->ID,"",zone), tatsächlichen Beitritt vor Say überprüfen.
|
||
Kein benutzerdefinierter reservierter Kanal mehr. Bestehende Limits erhalten.
|
||
Aktive Testconfig Channel.RestrictedLfg von1 auf0 gesetzt und reload config
|
||
bereits ausgeführt; bisheriger NativeCode wies gruppierte normale Accounts
|
||
beim LFG-Beitritt ab (GM/RBAC-Ausnahmen beachten). Keine Änderung allgemeiner
|
||
Player-/Client-Joinlogik. Clientanzeige nach Stadtwechsel/Relog noch abnehmen.
|
||
Doku worgen-recruitment.md korrigiert, frühere Customkanal-Angaben historisch.
|
||
|
||
Neuer echter Speak-Adaptertest test_adventure_native_lfg.py besteht: ID26,
|
||
Zonenberechtigung, Joinbestätigung, Cooldown. test_adventure_groups.py ebenfalls
|
||
bestanden. Abschließender Build2 /tmp/vcore-native-lfg-build2.log erfolgreich und installiert.
|
||
Vorheriger Testworldserver197361 vollständig beendet. Neuer Server PID201380,
|
||
/tmp/vcore-native-lfg-start1.log; frische ready-Meldung in aktuellem Server.log,
|
||
Port8085 LISTEN, Prozess stabil bestätigt. Config RestrictedLfg=0 bestätigt.
|
||
Gruppenfindungs-Helfer mit vorhandener01:00 Deadline wieder gestartet, Log
|
||
/tmp/vcore-groupfinding-native-lfg.log; Arthoran26 bereits vorbereitet.
|
||
Clientanzeige/echter Nachrichtenempfang noch nicht visuell abgenommen. Kein
|
||
Commit/Push; alle vorigen Arthoran/Worgen/PvP-WIP erhalten. Branch geprüft.
|
||
|
||
---
|
||
|
||
# Aktuell: Worgen, aktive Gruppenfindung und PvP implementiert
|
||
|
||
Nutzer beauftragte Worgengestalten/Reittiere, Vorbereitungs-Mikroaktionen,
|
||
Kapital-Suchchat und aktive Spielereinladungen mit vorheriger Zielinfo sowie
|
||
permanentes freiwilliges PvP. Schiffspositionen ausdrücklich unverändert lassen.
|
||
Vorherige uncommittete Arthoran-Änderungen vollständig erhalten. Kein Commit/Push.
|
||
Branch feature/clientless-player-core, letzter Commit cac4142ec1.
|
||
Doku doc/clientless/worgen-recruitment.md.
|
||
|
||
ClientlessLuaEngine.UpdateWorldPresence pflegt native PvP-Wunsch-/Playerflags,
|
||
Worgen nach Intent/Kampf/Instanz und zufälliger ruhiger Ankunft, sichere verzögerte
|
||
Wechsel mit5s Retry, Zustand bei Logout gelöscht. PrepareGroundMount verwendet
|
||
native Wilde Hatz87840 bei Worgengestalt, Pferd2404/Zauber458 in Menschengestalt;
|
||
Dismount entfernt Aura. Neue generierte Worgenprofile Pferde statt Volkspferde;
|
||
alte leere Mount-Dictionaries bekommen funktionierenden Lauf-/Pferdefallback.
|
||
|
||
Gruppenfindung beendet nicht länger Mikroaktionen vorzeitig; zusätzliche SQL-
|
||
Migration2026_10_29_01_adventure_group_preparation.sql bereits in Test-WorldDB
|
||
angewendet (SQL-Pfad ignoriert, per git add -N -f zur Nachverfolgung aufgenommen).
|
||
Vorbereitung/Suchwege lokal mit18Y Pathbudget, auch innen. GroupMgr announciert
|
||
nächsten Intent + tatsächliches Ziel im vorhandenen sucheNachGruppe-Kanal,
|
||
max1 Nachricht/15s populationsweit und3..5min pro Werber. Spieler müssen Kanal
|
||
beitreten. Nahe passende Menschen werden mit vorherigem Whisper eingeladen;
|
||
10min Cooldown pro Mensch populationsweit. Native Gruppe/Einladung/Kapazität,
|
||
Fraktion/Sicht/AFK/Kampf/Reiseschutz und bisherige Spielerführung beibehalten.
|
||
|
||
Build4 /tmp/vcore-worgen-recruitment-build4.log erfolgreich, installiert;
|
||
Testserver nach vollständigem Stopp frisch gestartet. PID197361, tmux
|
||
vcore-worldserver, /tmp/vcore-worgen-recruitment-start1.log. Frische ready-Meldung,
|
||
Port8085 LISTEN und Prozess stabil bestätigt. Loader aktiv50/5/50/5;110 gespeicherte
|
||
Bots vorhanden, Online-Aufbau läuft. Native gespeicherte PvP-Wunschflags bei
|
||
Arthoran26/Aelion29/Zanzan30/Lenara31 jeweils1. Worgen31/38 Pferd458+ZweiGestalten68996
|
||
in Spellbook bestätigt; native Script-Zuordnung87840/68996 überprüft.
|
||
|
||
Regression /tmp/vcore-worgen-recruitment-tests.log:82/83 erfolgreich, einzig alter
|
||
intent_state-Adapter fehlte neuer Lua-Ankunftsaufruf. Adapter ergänzt, Einzeltest
|
||
anschließend bestanden. Neues world_presence und erweiterte groups/leisure Tests
|
||
anschließend bestanden, einschließlich begrenzter Innenraum-Suchwege, menschlicher
|
||
Einladung/Zieltext/Abklingzeit, Gestalt in Kampf/Mischinstanzen und Mount-Aura-Cleanup.
|
||
Keine visuelle Abnahme von Chat/Morph/Einladung behaupten; native Kanal-/Micro-
|
||
Logs waren in erster Ramp-up-Stichprobe noch nicht aufgetreten (Bots reisen).
|
||
|
||
Vorherige Gruppenfindungs-Deadline00:00 war abgelaufen. Für fortgesetzten Test nach
|
||
Neustart gemeinsame Deadline auf01:00 Europe/Berlin (1793232000) gesetzt. Helfer
|
||
/tmp/vcore-groupfinding-setup.py läuft weiter, Log /tmp/vcore-groupfinding-worgen.log,
|
||
Manifest /tmp/vcore-groupfinding-test.json. Neue online Bots automatisch vorbereiten,
|
||
bei110 online stoppt Helfer; DB-Transienten werden erneut versucht. Nicht parallel
|
||
starten! Früheres Manifest /tmp/vcore-groupfinding-test-first-block.json gesichert.
|
||
Native performative Instanzaufenthalte können sichere Übergabe noch verzögern.
|
||
Kein Push/Commit beauftragt. Gameplay-Tankverhalten/Schiffe bleiben gesondert offen.
|
||
|
||
---
|
||
|
||
# Aktuell: Arthoran in normale persistente Verwaltung übernommen
|
||
|
||
Auftrag: Arthoran normaler AdventureBot, Krieger60, Gruppenrolle Tank,
|
||
Tavernen/Geselligkeit stärker gewichten als Abenteuer, keinem Kampf ausweichen.
|
||
Branch feature/clientless-player-core; Ausgangscommit cac4142ec1. Bereits
|
||
vorhandene Änderung dieses Dokuments gehört zum Lasttest und wurde bewahrt.
|
||
|
||
arthoran.lua jetzt ProfileVersion2, Level60/Class1, SchutzSpec2/Tank, SoloArms0,
|
||
Tagesplan aktiv, Elwynn/Sturmwind Heimat, verstärkte Tavernen-/Sozialgewichte,
|
||
Aggression1/DangerTolerance1, behavior.allow_retreat=false. Neue optionale
|
||
AllowRetreat-Eigenschaft (Defaulttrue) beendet Flucht bei ausdrücklicher Ablehnung;
|
||
Gruppenflucht weiterhin aus. Normale CPC-Infrastruktur unverändert.
|
||
Generator Reconcile/ProtectedEquipment/PrepareCombat und Population.Online lassen
|
||
vollständige v2-Dateiprofile wie generierte Profile verwalten; Legacy-Profile
|
||
bleiben unverändert. Arthoran26 explizit in CharacterDB-Registry übernommen,
|
||
persistent/ready/warrior/seed26, eigener Lua-Profiltext ebenfalls gesichert.
|
||
Kein neuer Charakter, keine Level-/Klassenumwandlung. Backup des Zustands/Inventars
|
||
vorher /tmp/vcore-arthoran-before-adoption.tsv. 26 zählt zur Allianz-Persistentquote.
|
||
|
||
PvP-Frage geprüft: kein erzwungenes PvP in Adventure-Lifecycle; zuletzt0/96
|
||
Registry-Bots CHARACTER_FLAG_PVP_DESIRED gesetzt, ebenso Arthoran nicht. Native
|
||
Kampf-/Gebietsflagging bleibt. Globale PvP-Einstellung NICHT verändert.
|
||
|
||
Build /tmp/vcore-arthoran-managed-build.log erfolgreich und installiert. Betroffene
|
||
Tests combat_reactions (zusätzlich ausdrückliches Fluchtverbot), population
|
||
(zusätzlich benanntes v2-Profil vs Legacy/unvollständig), combat_preparation,
|
||
profile_selection, profession_profile erfolgreich. Bisheriger Server183811
|
||
vollständig beendet; Neustart /tmp/vcore-arthoran-managed-start1.log.
|
||
Startbereitschaft bestätigt (frische ready-Meldung, PID191926, Port8085 LISTEN).
|
||
Arthoran26 online/persistent/ready, Level60/Class1, SoloArms-Talentbaum746,
|
||
103 Zauber,14 gelernte Talentzauber, Zweihandwaffe31134. Tankrolle/SchutzSpec2
|
||
im Profil; tatsächlicher Gruppen-Tankwechsel noch nicht im Spiel abgenommen.
|
||
Erste Reconcile-Prüfung scheiterte am alten Mining-Lehrzauber ohne Fertigkeit.
|
||
26 nativ ausgeloggt, ausschließlich fehlende Skills186/164 mit375/375 im Offline-
|
||
Zustand ergänzt, nativ neu eingeloggt; danach Reconcile ohne neue Fehlermeldung.
|
||
Mining nativ auf450 erhöht, Blacksmith375; bestehende Nebenskills erhalten.
|
||
Gruppenfindung für26 erneut bis00:00 angefordert; sichere Übergabe aus Social
|
||
kann noch laufen. Kein Gameplay-Tanktest behaupten.
|
||
|
||
Gruppenfindungs-Setup hatte wegen temporärem DB-TLS-Reset angehalten. Native
|
||
DB-Query-Retry ergänzt, nach Neustart Manifest prepared zurückgesetzt und Setup
|
||
wieder gestartet: /tmp/vcore-groupfinding-resume.log; ursprüngliche Deadline
|
||
00:00 beibehalten. Laufenden Setup-Prozess nicht doppelt starten! Loader aktiv
|
||
50/5/50/5; keine anderen Nutzercharaktere übernommen. Kein Commit/Push beauftragt.
|
||
|
||
---
|
||
|
||
# Aktiver Test: Gruppenfindung für Lasttestpopulation
|
||
|
||
Nutzer fordert alle Bots zunächst in Gruppenfindung, danach Instanz/Raid;
|
||
keine C++-Änderung. Vorhandenes natives `clientless adventure prepare` verwendet,
|
||
keine Lua-/Profiländerung nötig. Aufruf pro online Bot: prepare <guid> <next>
|
||
<meeting> <seconds>. Allianz poi_guard_22 (Sturmwind), Horde poi_guard_179
|
||
(Orgrimmar), Level>=60 raid, darunter instance. Gemeinsame Deadline nächste
|
||
volle Stunde: 2026-10-29 00:00 Europe/Berlin (epoch1793228400), danach1h Folgeintent.
|
||
Bestehende Kampf-/Tod-/Reiseübergaben bleiben aktiv. Test überschreibt den
|
||
aktiven Ablauf (schedule=0), gespeicherte normale Tagespläne/Profilwerte bleiben
|
||
erhalten. Nach Test mit `clientless adventure schedule <guid> on` zurückstellen.
|
||
|
||
Setup /tmp/vcore-groupfinding-setup.py, Log /tmp/vcore-groupfinding-setup.log,
|
||
Manifest /tmp/vcore-groupfinding-test.json. Pollt neue online generierte Bots
|
||
alle10s bis mindestens110 online, höchstens30min bzw. vor Deadline. Nicht doppelt
|
||
starten oder Manifest überschreiben. Bisher80 native prepare-Erfolgsbestätigungen; Aelion29, Lenara31 und Karggan35
|
||
melden groupformation + next=raid. Zuletzt80 online (35/5/35/5),
|
||
Loader noch busy beim weiteren Erzeugen, kein Loaderfehler. Setup läuft weiter;
|
||
110er Abschluss noch nicht bestätigt. Finales Manifest/Bestätigungen prüfen. Kein Push/Commit beauftragt.
|
||
|
||
---
|
||
|
||
# Aktuell: Gemeinsame Gruppenreisen implementiert
|
||
|
||
Auftrag: Spieler- und Botgruppen mit sicheren Formationen, Reittieren, freiem
|
||
Flug, nativen Taxis/Portalen und aufgezeichneten Verkehrsmitteln reisen lassen.
|
||
Branch feature/clientless-player-core; Ausgangscommit a758239da9.
|
||
Dieser Stand wird auf ausdrücklichen Nutzerauftrag lokal committet; kein Push.
|
||
Doku: doc/clientless/group-travel.md.
|
||
|
||
AdventureGroupTravelMgr/Policy übernimmt lokale Gruppenverfolgung, sichere
|
||
Bodenpfade, stabile Formationsplätze, begrenzte Straßenabschnitte, Flugverfolgung
|
||
und Übergangsqueues. >500Yards startet getrennte 10-Minuten-Uhr; bekannte Reisen
|
||
und fortschreitendes Aufholen sind begrenzt geschützt. Reine Botgruppen behalten
|
||
ihre gemeinsamen Graph-/Flugrouten. Native Transportverluste führen zum erfassten
|
||
Einstieg zurück, zuerst per Pfad, bei Scheitern gezielt per Teleport. Keine
|
||
allgemeinen Teleports zum Anführer. Generic CPC verwendet optionale owner-Callbacks,
|
||
bleibt unabhängig von AdventureBots. DungeonBots unverändert.
|
||
|
||
Build6 erfolgreich: /tmp/vcore-group-travel-build6.log. Alle82 Tests erfolgreich:
|
||
/tmp/vcore-group-travel-tests2.log. Nach letzten Änderungen zusätzlich Gruppenreise,
|
||
Straßenfortsetzung und bewegter Flug erneut erfolgreich getestet. Installation
|
||
mit bestehender CMake-Konfiguration erfolgreich; vorheriger Server vollständig
|
||
beendet. Neuer Start läuft: /tmp/vcore-group-travel-start1.log, PID183811,
|
||
tmux vcore-worldserver. Startbereitschaft bestätigt: frische ready-Meldung, Prozess stabil, Port8085
|
||
LISTEN. Loader24 online,10/2/10/2, pending0, error leer.
|
||
Aktueller Lasttestauftrag: Loader aktiv mit50 persistent+5 temporär je Fraktion
|
||
(Soll110). Aktive worldserver.conf angepasst und reload config sowie
|
||
clientless population reload ausgeführt; Zielwerte50/5/50/5 bestätigt.
|
||
Population wird schrittweise aufgefüllt; frühere24er Angaben sind historisch.
|
||
|
||
Native Spielerreisen und visuelle Formation sind noch nicht im Spiel abgenommen.
|
||
Unbekannte/scriptgesteuerte Portale oder fehlende Serviceaufzeichnungen werden
|
||
nicht erraten; Bots warten bzw. suchen vorhandene Graphwege. Keine Behauptung,
|
||
dass Adaptertests Gameplay-Abnahme ersetzen. Kein Push.
|
||
|
||
---
|
||
|
||
# Aktuell: Klassen-/Rollen-Kampf und Spieler-Instanzmodus implementiert
|
||
|
||
Nutzer autorisierte die gemeinsam besprochene Umsetzung. Ausgangsstand sauber
|
||
bei d3273c677e auf feature/clientless-player-core. Dieser Implementierungsstand wird auf ausdrücklichen Nutzerauftrag lokal
|
||
committet; kein Push. Doku: doc/clientless/class-combat.md.
|
||
|
||
Neue AdventureRotationPolicy/TalentPolicy und AdventureEncounterMgr.28 feste
|
||
Cataclysm-PvE-Talentvorlagen (27 Spezialisierungen plus separates Bär/Katze) gegen
|
||
lokale4.3.4-DBC abgeglichen; alle Punktbudgets1..41 testbar. Solo-Spec im neuen
|
||
Lua-Profil, alte Profile deterministisch aus gespeichertem Seed. Alle Klassen
|
||
mit gemeinsamen Prioritäten und nativen Casts; native Ressourcen/Procs/Combo/
|
||
HolyPower, Cata-Spezialisierungen, Heiler/Tanks/Damage und DungeonBot-Unterstützung.
|
||
Gruppenwechsel schaltet Skillung/Ausrüstung sicher um, nie im Kampf/Flug/Fallen.
|
||
Alternativausrüstung geschützt/wiederverwendet. Level85 episch ilvl>=359,
|
||
Furor vor31 Talentpunkten Einhand; Frost-DK zwei Einhandwaffen/Unholy Presence.
|
||
Native Gifte/Schamanenimbues, Begleiter und Rollenunterstützung.
|
||
|
||
Spielergruppen erhalten echten Instanzmodus mit ausgesetzter Planausführung,
|
||
nativen Portalwegen, allgemeinem DynamicObject-Flächenausweichen und C++-Hooks
|
||
für spätere Instanz-/Boss-Skripte. Alte performative Visits werden ausdrücklich
|
||
beim echten Eintritt ohne künstlichen Ausgang/Verwundung beendet. Reine Botgruppen
|
||
bleiben performativ. Tote warten auf Wiederbelebung, nach Wipe Eingangsrückweg
|
||
mit Teleport bei fehlendem/gescheitertem Weg, malusfreie Wiederbelebung, Sammeln,
|
||
Rückkehr/Todespunkt bzw. lebenden Spieler priorisieren. Kick verlässt Instanz
|
||
sicher und nimmt Solo-Spec/Tagesplan wieder auf. Keine Boss-Skripte eingeführt.
|
||
|
||
Native Integration deckte CORE-Bug auf: Hunter Lock and Load56342 leert Effect2,
|
||
SpellValue berechnete trotzdem diesen parentlosen Default-Effekt. Scaling war
|
||
zudem uninitialisiert. Crash untergdb reproduziert; ROOTFIX jetzt SpellInfo.h
|
||
Scaling{} und Spell.cpp IsEffect-Gate. Regression test_empty_spell_effect.py.
|
||
Erste zwei Starts scheiterten daran, dritter korrigierter Start läuft stabil.
|
||
Alter vorheriger Server PID139425 zeigte außerdem vorhandenen Shutdown-Segfault.
|
||
|
||
80/80 automatisierte Tests erfolgreich: /tmp/vcore-role-tests-recovery.log.
|
||
Danach letzte gezielte Klassen-/Talent-/Ausrüstungs-/Empty-Effect-Tests erfolgreich.
|
||
Vollständiger1046-Schritt-Build /tmp/vcore-role-build-recovery.log und finaler
|
||
9-Schritt-Build /tmp/vcore-role-build-final-fixed.log erfolgreich, installiert
|
||
/tmp/vcore-role-install-fixed.log. Testserver LIVE PID167319, tmux
|
||
vcore-worldserver, Console /tmp/vcore-class-combat-20261028-start3.log.
|
||
Frisches ready, fortlaufender Prozess und Port8085 geprüft. Loader unverändert
|
||
AKTIV10 persistent+2 temporär je Fraktion, alle24 online/pending0/error leer.
|
||
NICHT auf historische deaktivierte Defaults zurücksetzen.
|
||
|
||
Native Hunter44 gab einmal initial unvollständige Talentvorbereitung aus,
|
||
automatisch korrigiert: gespeicherter Survival-Baum809/28 Punkte bei Level63
|
||
passt zur nativen DBC. Vorhandene Missing-map719 und Into-the-Wilderness84729
|
||
misc9-Warnungen bleiben, kein behobenes vollständiges Terrain/System versprechen.
|
||
Inventarhashes von menschlichem Allitester21 und Arthoran26 unverändert.
|
||
Belege: doc/clientless/checkpoints/2026-10-28-class-combat/.
|
||
|
||
Noch abnehmen: tatsächliche Tank-/Heiler-/DD-Kämpfe mit Spielern, DungeonBot-
|
||
Zusammenspiel und Wipe/Portalwege in der Spielwelt. Automatisierte Adaptertests
|
||
sind KEINE Ingame-Abnahme. Bossmechaniken jenseits generischer Bodenflächen
|
||
werden später pro Instanz ergänzt. Kein laufender Build.
|
||
|
||
Nächster besprochener, NOCH NICHT implementierter Schritt: gemeinsame Gruppenreise
|
||
für Spieler-/Botführer, getrennte Formationsplätze, sichere Boden-/Flugverfolgung,
|
||
Bodenreittiere/Taxi/Schiffe/Tiefenbahn/Portale. Im Stand kleine Formation, unterwegs
|
||
Kolonne, mehrreihig nur bei geprüftem Platz; Engstellen einreihig. Kein gültiger
|
||
Pfad -> stehenbleiben/wiederprüfen, keine Klippensprünge. >500Yards über10Minuten
|
||
führt unter bisherigen Austrittsschutzregeln zum Verlassen; bekannte Übergänge,
|
||
Nachreisen und Transport-Recovery pausieren den Abstandszähler. Nicht flugfähige
|
||
Bots folgen nur zu sicheren erreichbaren Bodenpunkten bei begrenzter Höhe.
|
||
Transportverlust -> letzter sicherer Einstiegsknoten, zuerst sicherer Weg, bei
|
||
Scheitern gezielter Rücksetzteleport, nächste Fahrt abwarten. Nutzer bat jetzt
|
||
zuerst um Commit der vorherigen Klassen-/Rollenänderungen.
|
||
|
||
---
|
||
|
||
# Aktuell: Loader auf Nutzerauftrag für24 Bots aktiviert
|
||
|
||
Nutzer hat ausdrücklich aktive Testpopulation festgelegt: Allianz10 persistent
|
||
+2 temporär, Horde10 persistent+2 temporär. In aktiver Testserverkonfiguration
|
||
server/debug/etc/worldserver.conf gesetzt, Loader.Enabled1. Native reload config
|
||
und clientless population reload ausgeführt, kein Neustart/Build nötig.
|
||
Abschließend nativ bestätigt: alle vier Pools online10/2/10/2, pending0,
|
||
manager24, busy0, error leer. PID139425 weiterhin aktiv, Port8085 lauscht.
|
||
16 fehlende persistente Bots wurden schrittweise erzeugt/angemeldet;
|
||
bestehende temporäre Bots zählen mit.25 fertige Registry-Bots, davon24 online,
|
||
ein weiterer Allianz-Temp offline. Levelbereich1..85, Rotation15%/Mindestalter24h
|
||
und restliche Einstellungen unverändert. Loader AKTIV LASSEN, NICHT auf die
|
||
in den historischen Checkpoints beschriebenen deaktivierten Defaults setzen.
|
||
Keine weiteren Codeänderungen/Commits/Pushes für diese Konfigurationsaufgabe.
|
||
|
||
---
|
||
|
||
# Aktuell: Profile, Tagesplaner, Botmanager und Loader abgeschlossen
|
||
|
||
Nutzer beauftragte Umsetzung nach bestätigter Planung. Branch
|
||
feature/clientless-player-core war sauber. Änderungen noch NICHT committet;
|
||
kein Push. Vollständige Doku: doc/clientless/population.md.
|
||
|
||
Neue AdventurePopulationMgr/Policy mit vier unabhängigen Sollzahlen:
|
||
Allianz/Horde jeweils persistent/temporär. Normale World-Updates statt
|
||
Startup-Warten; verzögerte einzelne Anmeldungen, asynchrone Snapshots,
|
||
SRP6-Accountanlage, generischer Factory-Preflight und atomischer Save ohne
|
||
Future-Warten im Loader. Native Vorbereitung bleibt World-Thread; vorhandene
|
||
native Login-/Profil-/Katalogpfade enthalten weiterhin synchrone Reads.
|
||
Zufällige temporäre Rotation vor Login, Mindestalter und Chance konfigurierbar;
|
||
pro Kandidat einmal pro Prozess geprüft, keine erzwungene Online-Abmeldung.
|
||
Erst Ersatz speichern, dann Journal, nativ alten Bot löschen, World-Plan
|
||
bereinigen, zuletzt Profil/Supply-/Instanzstate/Journal. Persistente und
|
||
verbundene Charaktere geschützt. Accounts nur explizit eigene normale Accounts.
|
||
|
||
Profile v2 in Character-DB, weiterhin Lua-Sandbox/generated:GUID, keine Dateien
|
||
im Sourceprofilbaum. Level1..85/DK>=55, Klasse/Spec/Rolle/Seed, Heimat+Hauptstadt,
|
||
levelgerechtes Lieblingsgebiet, Aggression/Heimatbindung plus bisherige
|
||
Persönlichkeit. Gewichtete native Bodenmount-Displays/Flugmount- und Petspells,
|
||
Anzahlen und Inventar-Whitelist. Erweiterte kulturelle Namensgrammatiken.
|
||
Rollen beeinflussen native Spezialisierung/Ausrüstung; Tank-/Heiler-Kampf-AI
|
||
und volle Klassenrotationen weiterhin spätere Arbeit. Alte Generatorprofile
|
||
wurden beim Laden erweitert, Identität/alte Persönlichkeit/Berufe erhalten.
|
||
Keine handgeschriebenen Profile geändert, keine temporären Overrides.
|
||
|
||
Planer speichert24 vollständige Stunden-Slots vor Ausführung in bestehender
|
||
World-Tabelle. Gleiche Folge-Intents/-Locations teilen komplette Blockfrist.
|
||
Veraltete/unvollständige Tage werden atomisch ersetzt, gleiche Tage geladen.
|
||
Bestehender TINYINT-hour-Lesefehler GetUInt32->GetUInt8 behoben.
|
||
Heimatbindung, Neugier und Ziel-/Gebietswiederholungen beeinflussen Gewichte,
|
||
Gebietsbänder aus neuem editierbarem Katalog; Profillevel maßgeblich.
|
||
Auch neutral markierte Orte in Gegnerhauptstädten sind nun ausgeschlossen.
|
||
Manager nur für generierte versionierte Profile: sichere Zustände, Level/XP,
|
||
Training/Talente/Riding/fehlende oder unpassende Ausrüstung korrigieren.
|
||
Geburt und Erhaltung nutzen dieselbe Armor-/Stat-/Spell-/Level-/Use-Prüfung.
|
||
Volle Rucksäcke nativ leeren, angelegte Ausrüstung unberührt, aktuelle
|
||
Vorratsstacks/Whitelist/Werkzeuge/Leine/Angel/Taschen geschützt.
|
||
|
||
WICHTIGER Integrationsfix: alter ClientlessInstanceVisitResume startete alle
|
||
Instanzbesucher synchron in OnStartup und umging die neuen Quoten. Jetzt nur
|
||
asynchrones verzögertes/gepacetes Wiederanmelden NICHT-generierter Besucher
|
||
in OnUpdate. Generator-eigene Instanzbesucher laufen ausschließlich über die
|
||
Quoten. Fehlende Generator-Tabelle lässt alte manuelle Wiederaufnahme bestehen.
|
||
Nativ bewiesen: bei finalem Start keine Clientless-Anmeldung trotz gespeicherter
|
||
Instanzvisite36, während Loader deaktiviert/alle Sollzahlen0 waren.
|
||
|
||
Migrationen world/characters2026_10_29_00 auf TEST-DB zweimal angewendet
|
||
(78 Gebiete). Beide SQL-Dateien wegen Ignore explizit vorgemerkt.
|
||
75/75 Tests im abschließenden Lauf erfolgreich; Debug-j10 gebaut/installiert.
|
||
Letzter Testserver PID139425: frische Ready nach11s, Prozess und Port8085
|
||
bestätigt. Native Tests: beide Fraktionen Level1 und85, vier getrennte Pools,
|
||
Stufe60-Schutzkrieger37 mit Tankprofil/Schutzbaum/Waffe+Schild; Level1->5
|
||
administrativ verändert und auf1 korrigiert, Planhash unverändert; alter
|
||
Testtag ersetzt; gleiche Pläne nach echtem Neustart bytegleich.
|
||
Rotation37->38: alter Nativechar/Profil/Plan/Supply-/Instanzstate weg,
|
||
Journal leer. Bestehende29..32 und retired27/28 erhalten. Native Inventarhashes
|
||
für menschlichen21 und Arthoran26 vor/nach identisch.
|
||
|
||
Eigene neue normale Accounts7 (Allianz) /8 (Horde). Neue persistente Testbots:
|
||
33 Tinkbin Gnom-Krieger1,34 Sylaria Blutelf-Schurkin1,
|
||
35 Karggan Zwergen-Priester85,36 Edwin Untoten-Krieger85;
|
||
38 Renaarna Worgen-Priesterin85 temporär. Diese fünf abschließend OFFLINE.
|
||
Testbot37 Elaisia wurde ausdrücklich für Rotation erzeugt und nativ gelöscht.
|
||
36 behält gespeicherte Instanz-Anreise; beim nächsten freigegebenen Login
|
||
normaler vorhandener Instanz-/Zeitbudget-Abgleich. Kein automatischer Start
|
||
unter deaktiviertem Loader. Arthoran26 bleibt OFFLINE/unverändert.
|
||
29 Aelion und31 Lenara wieder ONLINE in Goldhain, Intents gestoppt,
|
||
schedule0 und grouped0. Vor Login nativ offline GameTele435 positioniert,
|
||
nach Profilinitialisierung per Watcher gestoppt, keine Profiländerung dafür.
|
||
30 Zanzan nativ zu GameTele823 SenjinVillage/Durotar zurückgesetzt,32 Aldren
|
||
zu GameTele1040 TheDeadField/Silberwald nahe ursprünglichem NPC-Ziel;
|
||
beide online mit ursprünglichen Social-Zielen823/poi_npc_321922 angefordert.
|
||
Das waren administrative Test-Rückstellungen, kein Reisebeleg.
|
||
|
||
Aktive Testkonfiguration dauerhaft auf Defaults zurückgesetzt:
|
||
Loader.Enabled0, alle vier Sollzahlen0, Min1/Max85, Rotation15%, Mindestalter24h,
|
||
Intervall2000ms, Manager300s. Bereits manuell angemeldete vier Bots bleiben
|
||
online. Konfigurationsänderung: reload config, dann clientless population reload.
|
||
Diagnose population status/reload, generate profile GUID, adventure plan GUID.
|
||
Kein Commit/Push dieses neuen Arbeitsstands beauftragt.
|
||
|
||
Zwei während Tests gefundene native Abstürze behoben: LOGIN_INS_ACCOUNT braucht
|
||
CONNECTION_BOTH für asynchrones SRP6-Insert; Security-Abfrage nutzt tatsächliche
|
||
AccountID/SecurityLevel-Spalten. Item-Spell-Sentinel4294967295 erreichte
|
||
ApplyEquipCooldown-Assert; Generator schließt fehlende Spellmetadaten aus,
|
||
nativer Cooldown-Code prüft GetSpellInfo statt Assert. Factory-Shutdown gibt
|
||
wartende Offline-Players vor Map-Unload frei. Ein bekannter temporärer Auth-DB-
|
||
Ausfall10.0.0.1 wurde durch SIGTERM des Fehlstarts und zweiten Start überstanden;
|
||
keine Remote-Infrastrukturänderung. Aktuell Testserver bereit.
|
||
|
||
Restliche Abnahme: große1000er-Last, visuelle Reisen/Interaktionen und volle
|
||
Klassen-/Rollen-Kampflogik. Es wurden bestehende TravelGraph/MMAP-Fallbacks und
|
||
fehlende Map719-Terraindaten beobachtet; Navigationsüberarbeitung bleibt auf
|
||
Nutzerwunsch vertagt. Nicht als erfolgreich geprüfte Fernreise ausgeben.
|
||
Belege: checkpoints/2026-10-28-population/; Logs /tmp/vcore-population-*.log.
|
||
DB-Helfer /tmp/vcore-population-db.py (Credentials nur aus lokaler Konfiguration,
|
||
keine Secrets ausgeben). Originals- und Dayhash-Vergleiche in Checkpoint.
|
||
|
||
---
|
||
|
||
# Aktuell: Automatische Botgruppen, Raid und Gruppenbildung
|
||
|
||
Nutzer beauftragte Umsetzung der gemeinsam bestätigten Planung. Vollständige
|
||
Doku doc/clientless/bot-groups.md. Vorherige uncommittete PvP-/Fluchtarbeit
|
||
wird zusammen mit den Gruppenänderungen auf Nutzerauftrag lokal committet; kein Push. Neue AdventureGroupMgr/Policy,
|
||
native Einladungen und Erst-Einlader-Führung, lokale Gruppen und Kontakt in
|
||
Hauptstädten via sucheNachGruppe (Spielerchat wird nicht ausgewertet).
|
||
Vorbereitungsintent groupformation vergleicht NÄCHSTEN Intent, nie Ziele;
|
||
Sammelpunkt ist Gruppenbildungs-Location des Führers. Instanz5/Raid20 inklusive
|
||
Führer, andere Intents3/social10. Offene Einladungen werden mitgezählt.
|
||
Anführer bestimmt Intent/Ziel/Frist; eigene Tagespläne bleiben erhalten.
|
||
AFK während Bildung ausgesetzt, Übergang zu geplanter Aktivität kein Austritt.
|
||
Kein Warten auf Vollständigkeit/Anwesenheit. Rollen später. Botführer darf PvP
|
||
beginnen, Mitglieder assistieren; Gruppen fliehen weiterhin nie.
|
||
Spieler-Invite an gruppierten Bot erzeugt generische GUID-JoinRequest-Queue,
|
||
Botführer kann Gegeneinladung anbieten und übergibt nach Beitritt nativ Führung.
|
||
Native provisorische Gruppenführer ignorieren eigene Einladung (Regressiontest).
|
||
Raidbildung wählt native25-normal Schwierigkeit; Katalog verlangt>=20 Kapazität
|
||
mit nativem Downscaling für alte20/40-Raids; Zehner-only-Ziele ausgeschlossen.
|
||
Neue CPC route_source-Snapshots mit nativem catch-up, gemeinsame Flugsegmentspur,
|
||
native Gruppeninstanzen statt alter Solo-Sperre. Raid/Dungeon nach nativen Maps.
|
||
Migration world2026_10_28_01 zweimal auf Test-DB angewendet, bestehende Tage erhalten.
|
||
Zusätzlicher Diagnosebefehl adventure prepare <guid> <next> <capital-location> [s].
|
||
Alle66 Tests bestanden; abschließende Interaktions- und Plan-Regressionsfälle
|
||
zusätzlich erneut bestanden. Debug-j10 erfolgreich, abschließend installiert.
|
||
Aktueller Testserver122595 läuft; frische Ready-Meldung, Prozess und Port8085
|
||
bestätigt. Vier Testbots online, Arthoran26 weiterhin offline.
|
||
Nach Anmeldung bildete Lenara31 nativ Gruppe mit Aelion29 (Log Invite accepted1,
|
||
beide grouped1/leader31); nach Stop-Intentwechsel nativ wieder aufgelöst.
|
||
Dabei gefunden/behoben: Gruppentimer darf Behavior.Update bei Botgruppen nicht
|
||
auf1Hz mit falschem diff drosseln; Regressiontest sichert normale World-Ticks.
|
||
Stop-Wanted sperrt sofort weitere Rekrutierung/Annahme, ohne veralteten Intent.
|
||
Diagnose interaction <guid> leave: sicheres natives Verlassen/Testaufräumen.
|
||
Bots29/31 abschließend beide enabled0/grouped0 in Goldhain bestätigt und gespeichert;
|
||
vor Login nativ tele name435 zur sicheren Bereitstellung abseits Flugstart.
|
||
30/32 normale soziale Intents. Keine temporären Profiländerungen/Overrides.
|
||
Persönlicher Plan wird beim Austritt wiederhergestellt; übernommene Ziele ändern
|
||
nicht die persönliche Austrittssignatur (besonders manuelle Aufträge).
|
||
Belege: checkpoints/2026-10-28-bot-groups/, /tmp/vcore-groups-tests-final.log.
|
||
Kein vollständiger Live-Gruppenlauf oder Raid abgenommen.
|
||
|
||
---
|
||
|
||
# Aktuell: Solo-Fluchtlogik ergänzt
|
||
|
||
Nutzer hat Flucht vor deutlich stärkeren Gegnern und bei HP<20% beauftragt,
|
||
mit absoluter Ausnahme für Gruppenmitglieder. Implementierung CombatMgr/Policy:
|
||
+6 Level, gleich-/höherstufige Elite/Bosse, tatsächliche Angreifer; alle Arten.
|
||
Gruppenbeitritt bricht Flucht ab. Alle2s 24 MMAP-Fluchtpunkte, Abstand vergrößern,
|
||
weitere sichtbare Feinde meiden; kein Pfad => stationäre Nahkampfverteidigung.
|
||
Ende erst außerhalb nativem Kampf UND50Y Abstand zur letzten Bedrohung.
|
||
Bestehende Tränke, Intentfristen und Todesablauf erhalten. Details combat-reactions.md.
|
||
Vorherige uncommittete PvP-Änderungen erhalten. Alle63 Tests bestanden inkl.
|
||
erweiterter produktiver Flucht-Zustandsmaschine (/tmp/vcore-flee-tests.log).
|
||
Debug-j10 erfolgreich gebaut und installiert. Testserver105886 mit frischer
|
||
Ready-Meldung und Port8085 geprüft. Vier Testbots erneut angemeldet;29/31
|
||
nach Profilinitialisierung erneut gestoppt (früher Stop während Loading wird
|
||
vom Profilstart überschrieben). Aelion begann kurz nativen Flug Goldhain->SW;
|
||
danach nativer tele name435 nach Goldhain, ebenso Lenara. Beide Status
|
||
endgültig enabled0/stopped bestätigt, saveall. Aelion am nahen taxi_168,
|
||
Lenara am Goldshire-Telepunkt. Keine Live-Fluchtabnahme.
|
||
Kein Commit/Push.
|
||
|
||
---
|
||
|
||
# Aktuell: Offensive Fraktionsbegegnungen
|
||
|
||
Nutzer beauftragte PvP-Erstangriffe gegen gegnerische Bots/Spieler/NPCs:
|
||
50 Yards, maximal +/-5 Level inklusive, Persönlichkeit und Intent maßgeblich.
|
||
Umsetzung in AdventureCombatMgr/Policy; Details combat-reactions.md.
|
||
Alle30s Entscheidung mit adventurousness*danger_tolerance*Intentgewicht;
|
||
Gruppen keine autonomen Erstangriffe, Ruhe/Instanz/deaktiviert friedlich.
|
||
Native PvP/Phase/LOS/MMAP-Regeln, HP60/Mana30 und keine Elite/Boss-NPCs.
|
||
PvE-Zielwahl schließt Fraktions-NPCs aus (kein Umgehen der PvP-Regeln).
|
||
Selbstverteidigung unverändert; eigenständige Fluchtlogik bislang NICHT vorhanden.
|
||
Neuer Produktionstest test_adventure_pvp.py. Debug-j10 erfolgreich gebaut und
|
||
installiert; alle63 Tests bestanden (/tmp/vcore-pvp-tests.log). Testserver100594
|
||
mit frischer Ready-Meldung und Port8085 verifiziert. Bots29..32 nach sauberem
|
||
Logout/Neustart wieder online;29/31 autonome Intents wieder gestoppt,29 steht
|
||
nun am nahen taxi_582 in Goldhain (kurze initiale Reise vor Stop),31 am Node.
|
||
Arthoran26 bleibt offline. Live-PvP nicht ausgeführt/abgenommen.
|
||
|
||
Vorheriger begrenzter Goldhain-Test: Lenara Emote-Antwort und Einladung
|
||
abgelehnt, Aelion Einladung angenommen im Server.log belegt. Folgen nicht
|
||
anhand dieser Logs bestätigt. Aelion29/Lenara31 am goldshire_center, autonome
|
||
Intents für den Test gestoppt. Arthoran26 weiterhin offline. Horde30/32 anderswo.
|
||
Keine neuen Charaktere, Migrationen oder Profiländerungen für PvP erforderlich.
|
||
Kein Commit/Push beauftragt für diese Änderungen.
|
||
|
||
---
|
||
|
||
# Aktuell: Automatische AdventureBot-Erzeugung abgeschlossen
|
||
|
||
Stand28.10.2026 auf feature/clientless-player-core. Nutzer beauftragte einen
|
||
Generator für neue Bots mit RP-Namen/Profilen, passenden Fähigkeiten, Berufen
|
||
und Ausrüstung; Kennzeichnung für spätere temporäre Rotation. Nutzer hat den
|
||
lokalen Commit beauftragt; kein Push. SQL-Migration2026_10_28_00_adventure_generator.sql
|
||
wegen SQL-Ignore bereits gezielt vorgemerkt; Test-Charakter-DB zweimal angewendet.
|
||
|
||
ClientlessCharacterFactory ist generische native Infrastruktur ohne Adventure-
|
||
Abhängigkeit: Player::Create, validierte zufällige Optik, Geburt auf Zielstufe
|
||
via native Initialisierung statt GiveLevel-Belohnungen, Vorbereitungscallback,
|
||
gemeinsamer Save+Profil+Homebind+Ownership-Commit; Cache/Hook erst nach Erfolg.
|
||
Neue AdventureGeneratorMgr/Policy: zehn native legale Klassen-Archetypen,
|
||
zwölf Völker, kulturelle Namensgrammatiken, Herkunft/Beruf/Personalityprofile.
|
||
Profile liegen in Character-DB und werden als generated:<guid> im vorhandenen
|
||
Lua-Sandboxparser geladen. Handgeschriebene Namensprofile haben Vorrang und ihre
|
||
Namen werden bei Erzeugung reserviert. Keine Laufzeitdateien im Profilquellbaum.
|
||
|
||
Wichtige Live-Fixes: Berufs-Lernzauber mit Effekt44 wirken vor Welteintritt
|
||
nicht zuverlässig. Native SkillRaceClass/SkillTiers + Player::SetSkill bereiten
|
||
legale volle Ränge vor; Hilfsfunktion verweigert Online-Spieler. Online-
|
||
Selbstversorgung unverändert. Rollen-Ausrüstung prüft native Equipregeln,
|
||
Werte, temporäre/reputations-/gebietsgebundene Items, Mana-/Zauber-/physische
|
||
Effekte und keine doppelten ausgerüsteten Einträge. Ersetzte Items bleiben in
|
||
Taschen. Native Trainer::CanTeachSpell lediglich read-only öffentlich gemacht.
|
||
Arms nutzt vorhandenen Talentplan, andere Klassen gültigen Tier-Basisplan.
|
||
|
||
Befehle: clientless generate create <account> <count> [level faction archetype
|
||
persistent|temporary seed]; optionale fünf Parameter nur gemeinsam. Kurzform
|
||
level60, any/any, persistent. Count1..10, level10..85, DK>=55, Account normal
|
||
und ohne Netzwerksitzung, normale Realm-Charaktergrenze. Beispiel für Tests:
|
||
clientless generate create 6 1 60 alliance warrior temporary 42.
|
||
list/profile/login/logout/equip/retire <guid>. Erzeugung offline; login explizit.
|
||
equip nur eigener online/lebender/ruhiger Bot, native Checks, alte Items behalten.
|
||
retire nur eigener offline-temporärer Bot, markiert nur Metadaten, keine Löschung.
|
||
Automatische Rotation, Löschung, Accountanlage und Populationssteuerung später.
|
||
Vollständige Doku: doc/clientless/generator.md.
|
||
|
||
Debug-j10 erfolgreich installiert,62/62 Tests bestanden. Testserver88947 läuft,
|
||
frische Ready + Port8085 verifiziert. Vier neue Stufe60-Bots online und mit
|
||
individuellen DB-Profilen nach Neustart/Relog wieder geladen:
|
||
-29 Aelion, Nachtelf-Krieger, Teldrassil/poi_guard_111.
|
||
-30 Zanzan, Troll-Krieger, Durotar/poi_tele_823.
|
||
-31 Lenara, Worgen-Magierin, Elwynn/poi_npc_280710.
|
||
-32 Aldren, Untoter-Todesritter, Silberwald/poi_npc_321922.
|
||
Native Talentbäume746/746/851/400, Talentzeilen13/13/14/12,
|
||
Zauberanzahl80/80/87/64. Alle vier Nebenberufe und vier22er-Glutseidenstofftaschen,
|
||
alle fünf Vorratsstacks20. Primär: Krieger/DK Mining450+Smith375; Magierin
|
||
Tailoring375+Enchant375. Werte stammen aus gegenwärtigen nativen Trainerdaten.
|
||
Ausrüstungsauffrischung29..32 nativ erfolgreich gespeichert, alte Items behalten.
|
||
NPC-Szenen und lokale soziale Intents laufen; keine visuelle Abnahme behauptet.
|
||
|
||
Eigene frühere Testcharaktere27 Dagri und28 Jarana sind retired/offline, mit
|
||
vollständig erhaltenen Daten. Retire26 verweigert (kein generierter Besitz),
|
||
Login27 verweigert (retired). Inventarzuordnungen/Entries für21 und26 gegenüber
|
||
vorher bytegleich (Hash im Checkpoint). Arthoran wurde für Wartung sauber
|
||
abgemeldet und bleibt OFFLINE; keine Profiloverrides, keine Teleportierung.
|
||
Bestehende Sourceprofile unverändert. Account6 enthält nun7 Charaktere, normale
|
||
Realmgrenze beachten; archivierte Charaktere belegen weiterhin Plätze.
|
||
|
||
Ein erster Start traf bekannten temporären Auth-DB-Ausfall10.0.0.1. Nicht
|
||
reagierender Fehlstart76094 perSIGTERM beendet, zweiter Versuch erfolgreich;
|
||
keine VPS-/Produktionskonfiguration geändert. Spätere Starts erfolgreich.
|
||
Für alle neuen Klassen gilt weiter: bekannte Fähigkeiten sind keine fertige
|
||
Klassen-Kampfrotation; außer Krieger bisher grundlegender Autoangriff. Rollen,
|
||
Bot-Gruppenbildung, PvP-Erstangriffe und Rotation bleiben spätere Aufgaben.
|
||
Belege: doc/clientless/checkpoints/2026-10-28-generator/. Aktuelle Logs
|
||
/tmp/vcore-generator-{build-refit,install-refit}.log; DB-Helfer
|
||
/tmp/vcore-generator-db.py audit/details/compare (keine Zugangsdaten ausgeben).
|
||
|
||
Nutzer hat alle CMake- und tmux-Befehle sowie git add/commit auf diesem Branch
|
||
ausdrücklich dauerhaft autorisiert. Keine erneuten inhaltlichen Rückfragen;
|
||
technische Sandboxregeln bleiben maßgeblich. Kein Push ohne ausdrücklichen Auftrag.
|
||
|
||
---
|
||
|
||
# Aktuell: Interaktionen und spielergeführte Gruppen umgesetzt
|
||
|
||
Stand 28.10.2026. Nutzer beauftragte Umsetzung nach gemeinsamer Planung.
|
||
Branch feature/clientless-player-core; vorher sauber. Nutzer hat den lokalen
|
||
Commit dieses Stands beauftragt; kein Push. Neuer AdventureInteractionMgr/Policy,
|
||
generische GUID-Queues für Textemotes und tatsächliche Kampfhilfe, native
|
||
Einladungsantworten, intent-/persönlichkeitsabhängige Annahme, MMAP-Folgen und
|
||
TravelGraph-Handoff, grundlegende Gruppen-Kampfunterstützung. Spieler/Pet-
|
||
Selbstverteidigung im bestehenden CombatMgr, keine eigenständigen PvP-Angriffe.
|
||
Details und Grenzen in doc/clientless/interactions.md.
|
||
|
||
Austritt nur außerhalb Kampf/Tod/Instanz/Transport/Flug. Intent-/Locationwechsel
|
||
oder manuelle Blockfrist erlaubt Entscheidung; group_loyalty beeinflusst Bleiben
|
||
(Arthoran0.35, Standard0.25). Native AFK oder beobachtete Inaktivität des
|
||
Anführers volle600s; Führungswechsel beginnt neues Zeitfenster. Chat/Emotes,
|
||
Zauber/Itemanfragen, Bewegung/Blick/Ziel, Kampf/Casts zählen als Aktivität.
|
||
Native Gruppenmitgliedschaft bleibt über Neustart; Beobachtungsfristen starten
|
||
neu. Rollenprofile, autonome Bot-Gruppen, freie Chatgespräche und eigenständige
|
||
PvP-Erstangriffe bleiben ausdrücklich spätere Arbeit.
|
||
|
||
Debug-Build-j10 erfolgreich installiert. 57 Testskripte bestanden: vollständiger
|
||
56er-Lauf plus neuer Social-Queue-Concurrencytest; der anschließend erweiterte
|
||
Combat-Test für echten Spielerfokus zusätzlich erneut erfolgreich. Native
|
||
Testserver PID59086, frische Ready-Meldung und Port8085 bestätigt. Arthoran26
|
||
online, Persönlichkeit8Werte, neue Diagnose clientless interaction26 erfolgreich:
|
||
sociability0.65/loyalty0.35, keine Gruppe. Echte Kreaturen-Selbstverteidigung
|
||
nach Neustart weiterhin beobachtet, kein Beleg für Live-PvP/Gruppenannahme.
|
||
|
||
Arthorans unveränderte initiale Profilvorgabe startete bei Login die normale
|
||
Goldhain-Reise. clientless adventure stop26 wurde angefordert, letzte Diagnose
|
||
noch Switching/waiting for safe player/transport state. Keine Teleportierung,
|
||
kein temporärer Profiloverride; normale Herkunftsdateien bleiben erhalten.
|
||
Für Live-Abnahme Position und Reise zuerst erneut prüfen. Gruppeneinladungen
|
||
werden in Flug-/Transport-/Kampfzuständen bis zur sicheren Lage zurückgestellt.
|
||
|
||
Beim sauberen Shutdown der ALTEN, vor Installation laufenden Binärdatei trat
|
||
Object.h:448 GetMap ASSERTION FAILED m_currMap auf. AlterProzess49765 endete;
|
||
keine fremden Prozesse beendet. Das ist ein beobachteter Shutdownfehler des
|
||
Ausgangsstands, Ursache hier nicht untersucht/behoben. Neuer Start erfolgreich.
|
||
|
||
Offene Gameplay-Abnahmen: echte Spielereinladungen, zwei gleichzeitige Bots,
|
||
PvP/Pet-Verteidigung, native Gruppenportale/kartenübergreifendes Folgen,
|
||
zehn echte Minuten AFK. Klassenrotationen außer Krieger und Supportrollen
|
||
weiterhin begrenzt. Belege: checkpoints/2026-10-28-interactions/.
|
||
Logs /tmp/vcore-interactions-{build-final,install}.log und zugehörige Tests.
|
||
|
||
---
|
||
|
||
# Aktuell: Selbstversorgung und gemeinsame Nebenberufe abgeschlossen
|
||
|
||
Stand 27.10.2026. Branch feature/clientless-player-core, vorheriger Commit
|
||
c0c799c4b6. Nutzer hat den lokalen Commit der Selbstversorgung beauftragt; kein Push.
|
||
Debug-Build -j10 erfolgreich installiert, alle 55 Testskripte bestanden.
|
||
Testserver PID 49765 läuft; frisches Ready und Port 8085 bestätigt.
|
||
|
||
AdventureSupplyMgr/Policy versorgt AdventureBots zu Tagesbeginn und nach
|
||
Kampfende bis zu jeweils einem nativen Stack: Verbände, Heil-/Manatränke,
|
||
Essen und Trinken. Vier Glutseidenstofftaschen54443 mit je22 Plätzen ergänzen
|
||
Arthoran. Alte Gegenstände blieben erhalten, Geld weiterhin0.
|
||
Migration world10 und characters01 angewendet und trotz SQL-Ignore gezielt
|
||
vorgemerkt. Persistierter Tagesstempel verhindert Nachschub bei jedem Login.
|
||
|
||
Nutzerregeln umgesetzt: Selbstheilung beginnt erst bei mindestens10% fehlenden
|
||
HP. Außerhalb des Kampfes zuerst ein nutzbarer Verband; bei Sperre direkt Essen,
|
||
nach Verband Essen nur bei weiter mindestens10% Mangel. Mananutzer trinken bei
|
||
passendem Mangel. Im Kampf nur native Tränke. Echte Item-Anfragen, Verbrauch,
|
||
Abklingzeiten und Verbandssperre; keine direkte HP/Mana-Zuweisung außer dem
|
||
expliziten Diagnosebefehl testrecovery. Intents behalten ihre ursprüngliche Frist.
|
||
|
||
Auf ausdrücklichen Nutzerwunsch erhalten alle AdventureBots die stufengerecht
|
||
verfügbaren Nebenberufe Erste Hilfe, Kochen, Angeln und Archäologie, innerhalb
|
||
nativer Traineranforderungen und Fertigkeitsgrenzen. Keine Hauptberufe geändert.
|
||
Arthoran gespeichert: ErsteHilfe375/375, Kochen525/525, Angeln525/525,
|
||
Archäologie375/375. Er verwendet schwere Netherstoffverbände21991.
|
||
Native Trainer erlauben Kochen/Angeln525 bei diesem Charakter.
|
||
|
||
Notwendige native Fehlerkorrektur: Player::GetPureMaxSkillValue hatte eine
|
||
invertierte Prüfung und lieferte für gelernte Fertigkeiten null. Fehlendes !
|
||
korrigiert, eigener nativer Regressionstest vorhanden. Nebenberufsausbildung
|
||
berücksichtigt sowohl Skill-Effekt118 als auch den nativen Lerneffekt44.
|
||
|
||
Live bestätigt:
|
||
- Vier22er-Taschen und alle fünf Stacks20, vorhandene Item-GUIDs erhalten.
|
||
- Markierte8%-Testverletzung: kein Verbrauch.
|
||
- Markierte80%-Testverletzung: echter Verbandverbrauch, danach4961/5249HP;
|
||
weniger als10% fehlend, daher kein Essen.
|
||
- Erneute Testverletzung bei nativer Verbandssperre: echtes Essen, volleHP.
|
||
- Gleicher Tagesstempel beim erneuten Login: Verband19/Essen19 bleiben bestehen,
|
||
kein weiterer Tagesnachschub.
|
||
- Echter Bärenkampf gegen Spawn300425 mit markiertem anfänglichem30%-Defizit:
|
||
Heiltrank22829 im Kampf verbraucht. Danach exakt je ein Verband, Heiltrank
|
||
und Essen ergänzt; alle fünf Bestände20. GespeichertHP5249, Geld0.
|
||
- Manaspezifisches Verhalten produktiv mit Adaptern geprüft, nicht mit echtem
|
||
Manacharakter. Administrative Testpositionierung ist kein Fernreisebeleg.
|
||
|
||
Arthoran bleibt angemeldet in den Verwüsteten Landen am Bären-Testplatz,
|
||
reagiert auf Gegner und versorgt sich selbst. Normales Lua-Profil bytegleich
|
||
restauriert; kein temporärer Override. Dokumentation: doc/clientless/supplies.md.
|
||
Belege: doc/clientless/checkpoints/2026-10-27-supplies/.
|
||
Logs: /tmp/vcore-supplies-build-final.log und /tmp/vcore-supplies-tests-final.log.
|
||
DB-Helfer /tmp/vcore-instance-db.py supplies_audit. Diagnose:
|
||
clientless combat supplies26, testrecovery26<fehlende-Prozent1..80>.
|
||
Die bisherigen Server-/Branchregeln und vertagte Pfadfindungsarbeit gelten weiter.
|
||
|
||
|
||
---
|
||
|
||
# Aktuell: Training, echte Gegner und Todesverhalten abgeschlossen
|
||
|
||
Stand 27.10.2026. Auf feature/clientless-player-core bleiben alle bisherigen
|
||
Änderungen erhalten. Debug-Build mit -j10 erfolgreich installiert; alle 51
|
||
Testskripte bestanden. Testserver PID 45545 läuft mit frisch geprüftem Ready
|
||
und Port 8085. Nutzer hat den lokalen Commit aller Änderungen beauftragt; kein Push.
|
||
|
||
Neue AdventureCombatMgr und AdventureCombatPolicy überlagern den Adventure-
|
||
Controller während Kampf und Tod. Tatsächlich angewandter Kreaturenschaden
|
||
wird über eine threadsichere GUID-Queue geordnet an den Controller übergeben.
|
||
Der erste Angreifer bleibt Fokus; weitere folgen nach dessen Tod. Abenteuer
|
||
berücksichtigt Gegner am aktiven MMAP-Pfad, Kürschnerei nur Tiere bei bestehendem
|
||
Profilrecht. Arthoran bleibt Bergbau/Schmied. Konservative Erstangriffsfilter:
|
||
höchstens +2 Level, mindestens 60% HP und gegebenenfalls 30% Mana, keine Elites,
|
||
Weltbosse oder Gegnergruppen. Andere Intents jagen nicht.
|
||
|
||
Migration 09 ergänzt leisure_training für 60–180 Sekunden an echten erreichbaren
|
||
Puppen im lokalen 60-Yards-Umkreis. Bereits in Test-DB angewendet und trotz
|
||
SQL-Ignore gezielt vorgemerkt. Ursprüngliche Intentfristen bleiben erhalten.
|
||
Todesablauf: native Freigabe, gespeicherter Leichenzeitpunkt, MMAP-Punkte innerhalb
|
||
39 Yards und native Aufnahmefrist. Ohne passenden Pfad nach 300 Sekunden native
|
||
Friedhofsrückkehr und Wiederbelebung ohne Geistheiler-Mali.
|
||
|
||
Live erfolgreich geprüft:
|
||
- Trainingsszene: MMAP-Anreise, native Angriffe und reguläres Ende nach 60 Sekunden.
|
||
- Echter Bär, Entry 42336 / Spawn 300425, Stufe 58: besiegt, native Respawnzeile
|
||
bestätigt. Tatsächlicher Gegentreffer löste den Selbstverteidigungsfokus aus.
|
||
- Expliziter Testtod 1: Freigabe um 1793138872, kein akzeptierter Rückweg;
|
||
volle 300 Sekunden tatsächlich abgewartet. Friedhofswiederbelebung, anschließend
|
||
lebend gespeichert, keine Leiche oder Wiederbelebungskrankheit.
|
||
- Expliziter Testtod 2 nahe Friedhof: tatsächlicher MMAP-Geisterlauf von 37,40
|
||
Yards und native Leichenaufnahme. Danach HP 4340 gespeichert, keine Leiche
|
||
oder Aura 15007. Kein natürlicher Kampftod behauptet.
|
||
- Administrative Offline-Positionierung diente nur isolierten Tests; kein Beleg
|
||
für Fernanreise. Mehrfachangreifer und Neustart während Geisterlauf bislang
|
||
durch Produktionsadapter geprüft, nicht durch entsprechende Live-Abnahme.
|
||
|
||
Arthoran ist wieder angemeldet, ohne Fernauftrag am letzten Rücklaufpunkt:
|
||
Karte 0, (-12187.9, -2603.74, 1.5777), Verwüstete Lande. Er reagiert auf Angreifer.
|
||
Normales Lua-Profil bytegleich restauriert; kein temporärer Override vorhanden.
|
||
Befehle: clientless combat train <guid> [seconds], attack <guid> <spawn-id>,
|
||
testdeath <guid>, stop <guid>. Testdeath ist ein markierter nativer Diagnosetod
|
||
für einen verwalteten Bot ohne zusätzlichen Haltbarkeitsverlust.
|
||
|
||
Belege: doc/clientless/checkpoints/2026-10-27-combat/.
|
||
Logs: /tmp/vcore-reactive-combat-build-final.log und
|
||
/tmp/vcore-reactive-tests-final.log. DB-Helfer: /tmp/vcore-instance-db.py,
|
||
Modus combat_live_state. Vorherige Ausrüstung/Reparatur-WIP bleibt erhalten.
|
||
Pfadfindungsüberarbeitung bleibt vertagt. Weitere Klassenrotationen und konkrete
|
||
Spieler-/Bot-Interaktionsregeln sind noch auszuarbeiten.
|
||
|
||
|
||
---
|
||
|
||
# Wiederaufnahme: Kampfausstattung und Reparaturtest
|
||
|
||
Stand 27.10.2026: Branch feature/clientless-player-core, bestehende Änderungen
|
||
bewahren. Debug-Build erfolgreich, installiert; Testserver PID41714 frisch ready
|
||
und Port8085 bestätigt. 48 Testskripte bestanden. Kein Push oder neuer Commit.
|
||
|
||
Arthoran26 trägt neun native Kopien von Allitester21 (Zorn und Ashkandi),
|
||
26/26 native Waffen-Talentpunkte Baum746, stufengerechte Klassenfähigkeiten.
|
||
Originalquelle unverändert, alte Ausrüstung in Taschen. Begrenzte Trainingsübung
|
||
an echter Puppe314147 erfolgreich: native angenommene Fähigkeiten protokolliert.
|
||
Phase169 ist Standard; keine Phasenänderungen. Ursprüngliches Problem war LOS.
|
||
Volle autonome Kampf-/Todes-/Interaktionssteuerung bleibt zukünftige Umsetzung.
|
||
Malusfreie Friedhofswiederbelebung nach5min ohne Pfad ist verbindliche Vorgabe.
|
||
|
||
NEU: economy_repair, Migration08 bereits Test-DB angewendet. Liveprüfung läuft:
|
||
Arthoran ausgeloggt, nur seine neun Kopien auf halbe Haltbarkeit gesetzt,
|
||
Position administrativ an poi_tele_954 (Handelsdistrikt), wieder angemeldet.
|
||
Intent economy am Anker angekommen; Mikroaktion economy_repair gestartet,
|
||
echter Händler1287/GUID1879, native MMAP-Anreise. Abschluss bestätigt: ECONOMY_REPAIR_COMPLETE; nach saveall alle neun Kopien
|
||
wieder auf voller Haltbarkeit, Geld weiterhin0, Allitester unverändert.
|
||
Ausgangswerte /tmp/vcore-repair-before.tsv.
|
||
Normales Lua-Profil bytegleich restauriert, kein temporärer Override.
|
||
|
||
Werkzeuge /tmp/vcore-instance-db.py gear_verify (prüft auch Allitester-Hash),
|
||
repair_test_prepare NICHT WIEDERHOLEN. Konsole saveall nach Reparaturabschluss,
|
||
ECONOMY_REPAIR_COMPLETE in Server.log prüfen. Gegebenenfalls Szene beobachten.
|
||
Build-/Testlogs /tmp/vcore-combat-preparation-{build,tests-final}.log.
|
||
Migration08 wird von *.sql ignoriert, gezielt force-add für Erhalt erforderlich.
|
||
Reparaturprüfung abgeschlossen; Arthoran darf den Wirtschaftsintent weiter ausführen.
|
||
|
||
---
|
||
|
||
# Neuer Arbeitsbereich: Kampf, Reaktionen und Interaktionen
|
||
|
||
Alle sieben Grundintents sind abgeschlossen und die bisherigen Änderungen
|
||
lokal committet (e18a416bf4). Der Nutzer hat die visuelle Instanzabnahme erlassen.
|
||
Jetzt Kampf, reaktives Verhalten, Bot-Spieler und Bot-Bot gemeinsam ausarbeiten.
|
||
Neue Regeln/Vorprüfung in `combat-reactions.md` dauerhaft festgehalten.
|
||
|
||
Nutzer: Selbstverteidigung fokussiert erste tatsächlich schädigende Kreatur bis
|
||
zu deren Tod; weitere Treffer wechseln den Fokus nicht. Erstangriffe wählen
|
||
nächstgelegenes gültiges intentspezifisches Ziel: Abenteuer nahe Feindkreatur auf
|
||
aktuellem Weg; Beruf/Lederjagd nahes geeignetes Tier. Stärkecheck verhindert
|
||
leichtsinnige Angriffe auf deutlich stärkere Gegner. Exakte Grenzwerte noch offen.
|
||
Tod: Leichenrücklauf als Geist, native Wiederbelebungsreichweite; ohne Pfad nach
|
||
fünf Minuten Friedhofswiederbelebung. Native Handler/39-Yards-Radius vorhanden.
|
||
Timerherkunft und weitere Randfälle als Auslegung/Vorschlag markieren.
|
||
Arthoran bleibt mining/blacksmithing; keine stillschweigende skinning-Freigabe.
|
||
Sammeln weiterhin performativ, neu gewünschter Kampf real.
|
||
|
||
PlayerAI.cpp gründlich geprüft. Viel vorhandene Klassen-/Zauberlogik, aber
|
||
Charm-Steuerung muss entkoppelt werden. Technisch nicht ungenutzt: Unit::UpdateCharmAI
|
||
und mehrere Bossskripte verwenden sie. Unit::DealDamage liefert UnitAI-Callbacks
|
||
und UnitScript-OnDamage VOR endgültigem HP-Abzug: tatsächlichen Erstschaden
|
||
sauber bestätigen, keine Nullschaden-/Godmode-Fokussierung.
|
||
|
||
Noch keine Kampfimplementierung oder Livekampftests in dieser Vorprüfung.
|
||
Nur Dokumentation neu/uncommittet; keine weiteren Commits ohne konkreten Bedarf.
|
||
Details zu Flucht, Zielverlust, verbleibenden Angreifern, Erstangriffsschwellen
|
||
und konkreten Spieler-/Bot-Reaktionen noch nicht als Nutzerentscheidungen ausgeben.
|
||
|
||
---
|
||
|
||
# Aktuell: Instanzintent implementiert und technisch live geprüft
|
||
|
||
Stand 27.10.2026, letzter Testserverprozess PID **35865**, frisches Ready beim
|
||
letzten Restart und Port 8085 geprüft. Nutzer beauftragte Umsetzung einschließlich
|
||
zufälliger Verletzung (0–50 Prozent Max-HP) nach Rückkehr. Umsetzung fertig,
|
||
Der Nutzer hat ausdrücklich auf eine weitere visuelle Abnahme verzichtet.
|
||
Alle vorhandenen Änderungen sollen gemeinsam lokal committet werden; kein Push.
|
||
Details: `instance-intent.md`.
|
||
|
||
Implementierung:
|
||
- Intent `instance`, eigener Tagesplanwert (Default .5), feste Phasen statt
|
||
zufälliger Innenraum-Mikroaktionen. Anreise verbraucht Blockzeit; zehn Sekunden
|
||
Vorbereitung; tatsächlicher nativer Eintritt; Warten direkt dahinter; Rückkehr
|
||
zu Blockende minus fünf Minuten; Nachruhe bis zum ursprünglichen Blockende.
|
||
- Neue native Außenwelt-Aliase `instance_visit_at_<Trigger-ID>` und editierbare
|
||
Ein-/Ausgangszuordnung. 108 Eingänge in Test-DB, insgesamt 2.973 Locations /
|
||
3.966 Worldpoints. Innenräume bleiben reine native Karten/Graphknoten.
|
||
- Charakterpersistenz enthält Phase, Trigger, Instanz-ID, absolute Frist,
|
||
einmal gezogenen Verletzungswert und injury_applied. Gemeinsame Transaktion
|
||
mit Player::SaveToDB über ASYNC-Worker, bestätigter Commit vor Fortschritt.
|
||
- Optionales WorldScript in viano_bot_commands.cpp meldet nur gespeicherte
|
||
Besucher beim Serverstart automatisch mit dem Adventure-Controller an.
|
||
Wiederaufnahme hat Vorrang vor normalem Lua-Initialintent.
|
||
- Getrennten Hinterausgang aus nativen Daten bevorzugen, expliziter Override
|
||
möglich. Verborgene Dungeon-Durchquerung wird innen bis zum echten Ausgang
|
||
abstrahiert, danach nativer Trigger. Fehlender Ausgang: Eingang. Keine Kämpfe,
|
||
Beute/Inventar-/Geldänderung, keine DungeonBot-Abhängigkeit.
|
||
|
||
Geprüft:
|
||
- Debug-Build -j10, installiert, **44 Testskripte im vollständigen abschließenden
|
||
Lauf bestanden** (/tmp/vcore-instance-tests-final.log).
|
||
- Beide additiven Migrationen angewendet. Tabellen-Collation unicode_ci passt
|
||
zum bestehenden Schema; Dateien wegen *.sql-Ignore gezielt mit git add -f
|
||
vorgemerkt, alle übrigen Änderungen uncommittet. Kein Push.
|
||
- Verlies-Eingang 101, Ausgang 503, Karte34/Instanz-ID1 tatsächlich betreten.
|
||
Echter Serverneustart während Phase3: automatischer Login, gleiche Instanz-ID1,
|
||
ursprüngliche absolute Frist beibehalten. Normales Lua-Profil war restauriert.
|
||
- Für schnelle Rückkehrprüfung wurde ausschließlich nach sauberem Serverstopp
|
||
die Test-Besuchsfrist verkürzt. Original in
|
||
/tmp/vcore-instance-live-original-deadline.tsv. Keine normale Codefrist geändert.
|
||
- Native Rückkehr nach Karte0 (-8766.11,845.499,87.9952), zunächst zweimal echte
|
||
0%-Würfe, nächster regulärer kurzer Testblock 17%: **2165/2609 HP**.
|
||
Charakter-DB bestätigte Phase5, loss_percent17, injury_applied1 und HP2165.
|
||
- Erneuter Logout/Login während Phase5: gleiche Frist, injuryApplied1, kein
|
||
Neuwurf/keine zweite Verletzung. Aktuell Nachruhe vor dem Verlies bis
|
||
Deadline1793128202; anschließend endet der manuelle Testauftrag. Zustand bei
|
||
Wiederaufnahme neu prüfen; keinen weiteren Test automatisch starten.
|
||
- Normales Profil in Quelle UND Installation bytegleich normal (SHA256
|
||
26b11c3108e6ecc5dbc59d1852b4103ca4e818148603a34c02a470c969dc659b).
|
||
Kein temporärer Lua-Override. Nach saveall Geld-/Inventar-SHA256 unverändert
|
||
8d40931782d05219466ba9fd077ce7acd3e02bd53eb63f6e96115042c620d26a.
|
||
|
||
Wichtig: Fernanreise NICHT live erfolgreich verifiziert. Vorhandene Graph-
|
||
Recovery-Schleifen führten erst nach Goldhain, dann durch Sturmwind. Nutzer hat
|
||
Pfadfindung/Hinderniserkennung ausdrücklich auf später verschoben. Daher wurde
|
||
für den isolierten Instanztest nur der ausgeloggte Testbot administrativ an den
|
||
realen Außeneingang gestellt; anschließender lokaler MMAP-Anschluss und Eintritt
|
||
waren regulär. Kein Instanzteleport als erfolgreicher Eintritt ausgegeben.
|
||
Todesminen-Hinterausgang und zwei unabhängig gleichzeitig betretene Kopien nur
|
||
produktive Adaptertests/Quellprüfung, noch kein entsprechender Livevergleich.
|
||
|
||
Erster Liveversuch fand meinen falschen SYNCH-Transaktionsweg; Debugserver
|
||
beendete sich vor der Anreise. Fehler korrigiert auf AsyncCommitTransaction mit
|
||
Commitresultat. Nachfolgende native Saves/Neustarts erfolgreich, Fehlerlog
|
||
/tmp/vcore-instance-first-live-DBErrors.log erhalten. Nicht als aktuelles Problem
|
||
missverstehen. Aktuell keine neuen Instanz-SQL-/Startfehler beobachtet.
|
||
|
||
Alle Schlaf-WIP-Änderungen von vorher erhalten. Bett-/Hinderniserkennung bleibt
|
||
auf Nutzerwunsch zurückgestellt. Nur feature/clientless-player-core verwenden.
|
||
|
||
---
|
||
|
||
# Aktueller Auftrag: Instanzbesuche – Nutzervorgaben konkretisiert
|
||
|
||
Wirtschaftstest vom Nutzer als ausreichend beendet; nächster Intent sind
|
||
Instanzbesuche. Details verbindlich in `instance-intent.md` festgehalten.
|
||
Rest des gewählten Location-Zeitblocks, letzte fünf Minuten Nachruhe draußen.
|
||
Beispiel 60 Minuten: 40 Anreise, 15 innen, 5 Nachruhe. Tatsächlicher Eintritt,
|
||
Warten direkt hinter dem Eingang in nativer eigener Instanzkopie, keine
|
||
Dungeon-Durchquerung/Kampf. Neustart: am Eingang innen wieder einloggen,
|
||
ursprüngliche absolute Frist weiterverwenden. Rückkehr eigener Ausgang,
|
||
sonst Eingang. Instanzinnenräume NICHT zu normalen Locations machen.
|
||
|
||
World-DB geprüft: areatrigger_teleport enthält 78 Deadmines Entrance Target,
|
||
119 Exit Front Target, 121 Rear Exit Target. Alle sechs source/target-Knoten
|
||
in vcore_clientless_travel_node vorhanden, Kommentare nur Triggernummern.
|
||
Semantik aus nativen Namen und DBC-Quell-/DB-Zielkarten ableiten.
|
||
|
||
Noch keine Implementierung/Instanzbetretung in dieser Vorprüfung. Core-Befund:
|
||
Online startet heute flüchtigen Behavior-Record/Profil neu; dauerhafte
|
||
Besuchsphase/Frist und Wiederaufnahme müssen ergänzt werden. Native Instanz-ID,
|
||
Solobindung und Instanzspeicherung für Restart berücksichtigen und testen.
|
||
Eigener Ausgang hinten erfordert Rückkehrbehandlung ohne Dungeon-Durchquerung.
|
||
Randfall Ankunft mit weniger als fünf Minuten: noch keine ausdrückliche
|
||
Nutzerentscheidung, sinnvolle Ableitung ist Eintritt auslassen/Nachruhe.
|
||
|
||
Keine Code-/DB-/Serveränderung bei dieser Vorprüfung. Vorheriger Wirtschaftsintent
|
||
kann auf dem Testserver weiterhin laufen; vor Implementierung Zustand prüfen.
|
||
Schlaf-/Hindernisthemen bleiben ausdrücklich vertagt. Vorhandenes WIP bewahren.
|
||
|
||
---
|
||
|
||
# Aktueller Nutzerauftrag: freier Wirtschaftsintent im Handelsdistrikt
|
||
|
||
Bett-/Geometriesuche ausdrücklich vom Nutzer zurückgestellt. Ebenso spätere
|
||
Überarbeitung der Pfadfindung/Hinderniserkennung (beobachtetes Durchlaufen von
|
||
Zäunen und Erhöhungen). Diese offenen Themen sollen die weitere Entwicklung
|
||
NICHT blockieren; jetzt daran nicht weiterarbeiten.
|
||
|
||
Arthoran GUID 26 hat auf Nutzerwunsch den autonomen Auftrag:
|
||
`clientless adventure intent 26 economy poi_tele_954 3600`.
|
||
`poi_tele_954` ist der vorhandene allgemeine Sturmwind-Anker im Handelsdistrikt
|
||
(-8833.07,622.778,93.9317), Kategorie landmark; keine Händler-/Bank-/AH-Rollensperre
|
||
wie bei den spezialisierten Testankern. Kein gezielter Mikroaktionszwang.
|
||
INTENT_ARRIVED economy und selbst gewählter Start `economy_vendor_visit`
|
||
gegen echten Händler Entry 277, GUID Low 1325, sind bestätigt. Szene läuft.
|
||
Kein erneuter Build/Restart oder Lua-Profilwechsel für diesen Auftrag.
|
||
|
||
Vorher `saveall`; Geld-/Inventar-SHA256 weiterhin
|
||
8d40931782d05219466ba9fd077ce7acd3e02bd53eb63f6e96115042c620d26a.
|
||
Wirtschaften bleibt rein performativ: keine echten Transaktionen.
|
||
Nutzer beobachtet nun die freie Ausführung im Spiel; keine neue visuelle
|
||
Abnahme behaupten. Schlafboden am ersten Anker war vom Nutzer bestätigt.
|
||
|
||
Alle vorherigen WIP-Änderungen erhalten, Branch feature/clientless-player-core,
|
||
kein Push. Normales Lua-Profil weiterhin unverändert. Schlaf-Testanker und
|
||
bisheriger Ausbau bleiben erhalten, siehe historische Notizen unten.
|
||
|
||
---
|
||
|
||
# Neuer Liveauftrag: Suche bei Allitesters Position
|
||
|
||
Nach dem Flächenausbau wollte der Nutzer eine erneute Suche nahe den beiden
|
||
Betten an seiner aktuellen Position. `saveall`, danach Allitester GUID 21:
|
||
Map 0, (-8877.360, 673.489, 104.950), O=0.649831. Separater aktiver manueller
|
||
Suchanker `gilded_rose_sleep_room_test` in Test-DB angelegt, Kategorie rest_sleep,
|
||
Metadata von Sturmwind; bestehende Punkte nicht verschoben.
|
||
|
||
Neustart war nötig: adventure reload erneuert NICHT den Reisepunkt-Cache,
|
||
weshalb der erste Anreiseversuch den neuen Punkt nicht fand und zurückfiel.
|
||
Server jetzt PID 32004, frisches Ready nach elf Sekunden, Port 8085 geprüft.
|
||
Einmaliges Loginprofil rest/room_test danach bytegleich restauriert, installierte
|
||
Profilkopie ebenfalls normal. Arthoran erreichte den neuen Anker regulär.
|
||
|
||
Erneute Suche dort: beds=0 raised=0 floor=46 (erster Lauf floor=34).
|
||
REST_CONFIRMED am Anker (-8877.360,673.489,104.950), O=.650, zuletzt 143 Sekunden.
|
||
Die sichtbaren Betten werden also weiterhin NICHT als Bett/erhöhte Fläche erkannt;
|
||
Ursache der konkreten geometrischen Ablehnung ist NICHT gemessen. Nicht behaupten,
|
||
dass nur der bisher zu kleine Radius schuld war.
|
||
|
||
Die gewichtete Auswahl wählte zwischenzeitlich wieder den alten Schlafanker.
|
||
Für den gezielten Versuch wurde NUR `gilded_rose_sleep_upstairs` kurz enabled=0
|
||
gesetzt, Katalog geladen, micro rest_sleep ausgeführt, dann enabled=1 restauriert
|
||
und Katalog erneut geladen. Kein Punkt blieb vorübergehend deaktiviert.
|
||
DB-Helfer /tmp/vcore-sleep-room-test.py, Positionssnapshot daneben als JSON.
|
||
Nutzer hat neuen Bodenplatz am alten Anker sichtbar bestätigt; Bettdarstellung
|
||
und tatsächliche Bettnutzung weiterhin offen. Kein neuer Code/Build in diesem
|
||
Folgeversuch. Vor weiterer Arbeit laufende Szene/Position neu prüfen.
|
||
|
||
---
|
||
|
||
# Aktuell: Schlafplatzsuche am 27.10.2026
|
||
|
||
Dieser Abschnitt hat Vorrang vor den historischen Checkpoints unten.
|
||
Der Nutzer nahm den Schlaftest wieder auf, sah Arthoran mitten im oberen Stuhl
|
||
und beauftragte eine Flächensuche: Betten/geeignete erhöhte Flächen bevorzugen,
|
||
sonst freier Gasthausboden, auch für Gasthäuser ohne Betten.
|
||
|
||
Implementiert, gebaut (`-j10`), installiert und live getestet, noch uncommittet:
|
||
`AdventureRestSpace.h`, Schlafadapter in `AdventureBehaviorMgr.cpp`, gespeichertes
|
||
Szenenziel in `.h`; zwei neue Regressionen und erweiterter Ruhetest. Insgesamt
|
||
39 Testskripte erfolgreich (38er-Lauf plus neuer nativer Adaptertest; danach
|
||
betroffene erweiterte Tests erneut erfolgreich). Details: `rest-intent.md`.
|
||
|
||
Schlafanker sind jetzt Suchbereiche, keine ungeprüften Liegepunkte. Native
|
||
Bettobjekte vor erhöhten Flächen mit abrupten Seitenkanten vor freiem Boden.
|
||
Geometrie ist keine sichere Bettsemantik; passende Tische können ähnlich sein.
|
||
Modellabhängige Liegefläche, Höhen-/Kollisionsraster, native Stuhlsperre,
|
||
Spieler/Kreaturenbelegung, Innenraum und Stockwerksgrenze. Tatsächlicher
|
||
MMAP-Endpunkt muss passen, kein Teleport/Klettern auf unerreichbare Möbel.
|
||
Erneute Prüfung vor Hinlegen und alle zwei Sekunden. Keine neue SQL-Migration.
|
||
|
||
Live: Prozess 31446, frisches Ready nach elf Sekunden, Port 8085 bestätigt.
|
||
Arthoran GUID 26 im Ruheauftrag `gilded_rose_sleep_upstairs`. Die neue Suche
|
||
fand `beds=0 raised=0 floor=18`; er ging 4,03 Yards zu
|
||
(-8868.534, 682.800, 104.949), Ausrichtung 3,740, Endpunktfehler null.
|
||
`REST_CONFIRMED` für 243 Sekunden. Die sichtbare Abnahme des neuen Bodenplatzes
|
||
ist offen, ebenso ein positiver Live-Betttest; Fixturetests decken Betten ab.
|
||
Normales Lua-Profil in Quelle UND Installation bytegleich wiederhergestellt,
|
||
mining/blacksmithing unverändert. Kein temporäres Override, kein Push.
|
||
|
||
Die zuvor bereits vorhandene Änderung an `rest-intent.md` zur ersten
|
||
Schlafvorführung wurde erhalten und ergänzt. Branch ausschließlich
|
||
`feature/clientless-player-core`. Build/Install/Testlogs: `/tmp/vcore-sleep-*.log`.
|
||
Prozess-/Szenenzustand beim Fortsetzen neu prüfen. Nicht automatisch den
|
||
abgeschlossenen Berufs-Ausbau oder die vertagte Instanzarbeit beginnen.
|
||
|
||
---
|
||
|
||
# Fortsetzung am 27.10.2026 – aktueller Stand hat Vorrang
|
||
|
||
Der unten erhaltene Sitzungswechsel-Checkpoint ist historisch. Der Berufs-Ausbau
|
||
ist jetzt vollständig gebaut (`-j10`), auf dem Testserver installiert und die
|
||
Migration `_05` ist auf der Test-World-DB angewendet. **37 Testskripte bestanden**.
|
||
Keine Änderungen wurden gepusht. Branch bleibt `feature/clientless-player-core`.
|
||
|
||
Seit dem Checkpoint behoben:
|
||
- Berufsarbeit an GOs nähert sich nach Verdrängung erneut, bevor weitere Gesten laufen.
|
||
- Native unsichtbare Arbeitsplatzmarker verwenden VMAP-Sichtprüfung zur Arbeitsfläche
|
||
(mindestens 1,5 Yards über dem Marker); Bodenmarker im Amboss blockierten zuvor die Szene.
|
||
- Location-Abfrage liest numerische native Spalten ohne COALESCE-Widening. Debug verlor
|
||
zuvor `is_area`/`faction`; Elwynn wird live jetzt korrekt als `area=1` geladen.
|
||
|
||
Zusätzliche Tests: echter Lua-5.4-Professionsparser mit Arthoran/generic und ungültigen
|
||
Profilen; native Lock-/Station-/Kadaver-/Trainerklassifikation; Szene erst nach Ankunft,
|
||
Profilentzug, Wiederannäherung; SQL-Fixtures mit erhaltenen Gewichten/Freigaben;
|
||
erreichbare Gebietsknoten; progressive Suche und Uferbedingungen; echte Debug-Fieldgetter
|
||
und VMAP-Sichtlinienadapter. Siehe `tests/clientless/test_adventure_profession_*.py`,
|
||
`test_adventure_area_node.py` und erweiterte bestehende Harnesses.
|
||
|
||
Live bestätigt:
|
||
- Frische Ready-Meldung, laufender Prozess und Port 8085 nach Installation.
|
||
- Arthoran lädt zwei Hauptberufe; Profil ist bytegleich wiederhergestellt:
|
||
`social` / `goldshire_tavern`, mining + blacksmithing. Kein temporäres Profil liegenlassen.
|
||
- Reguläre Anreise zu `poi_guard_541` über Graph, Taxi und Bodenwege.
|
||
- `smithing_show` wählt echtes Anvil-GO **201415**, Low **556**; Work-Emote **233**;
|
||
`PROFESSION_WORK_COMPLETE` und `PROFESSION_VISIT_COMPLETE` nach Abschluss.
|
||
- `profession_herbalism` live als nicht verfügbar zurückgewiesen. Die isolierte
|
||
Profilprüfung auch bei vorhandener Pflanze ist durch den produktiven Zieltest belegt.
|
||
- Nach `saveall` unveränderte Geld-/Inventar-Prüfsumme:
|
||
`8d40931782d05219466ba9fd077ce7acd3e02bd53eb63f6e96115042c620d26a`.
|
||
- Elwynn-Auftrag `profession poi_tele_338` lädt `area=1`, startet `travel_to_node`,
|
||
erreicht mit bestehendem Free-flight-Fallback den Gebietsknoten und meldet `INTENT_ARRIVED`.
|
||
Lokale `profession_search` absolvierte danach alle sechs progressiven MMAP-Wegpunkte
|
||
(ca. 104 Yards, `LEISURE_COMPLETE`, legs=6).
|
||
- Letzter geprüfter Testserverprozess: PID 28577, frische Ready-Meldung und Port 8085.
|
||
Beim Wiederaufnehmen immer den tatsächlichen Zustand neu prüfen.
|
||
|
||
Offener Befund: Der erste Intentwechsel während aktiver Goldshire-Anreise geriet in
|
||
Graph-Handover-/Recovery-Schleifen zum nächstgelegenen `portal_at_109_target`.
|
||
Für die gezielten Tests wurde deshalb nur beim Login die Startvorgabe temporär
|
||
geändert und danach bytegleich restauriert. Dieses Travel-Handover ist NICHT als
|
||
behoben zu betrachten. Navigationslog enthält die Vorgänge ab 17:43.
|
||
|
||
Dokumentation: [profession-intent.md](profession-intent.md). Visuelle Abnahme bleibt
|
||
beim Nutzer; Freizeit-Ausritt/Rundflug und Schlafdarstellung bleiben zurückgestellt.
|
||
Alle ursprünglichen Regeln und fachlichen Festlegungen unten gelten weiterhin.
|
||
|
||
---
|
||
|
||
# Gesicherter Arbeitsstand – hier fortsetzen
|
||
|
||
Stand: 27.10.2026. Der Nutzer hat die Implementierung ausdrücklich für einen
|
||
Codex-Sitzungswechsel unterbrechen lassen. Diese Notiz ist die maßgebliche
|
||
Übergabe. Nicht bei null beginnen und keine vorhandenen Änderungen verwerfen.
|
||
|
||
## Sofort beim Wiederaufnehmen
|
||
|
||
1. `AGENTS.md` und diese Datei lesen; Branch und Working Tree prüfen.
|
||
2. Ausschließlich `feature/clientless-player-core`, niemals `master`, kein Push.
|
||
3. Der unten beschriebene Berufs-Ausbau ist **unfertig und NICHT installiert**.
|
||
4. Der laufende Build wurde zur Sicherung geordnet mit SIGINT unterbrochen.
|
||
Vor erneutem Bauen trotzdem nach verbleibendem CMake/Ninja-Prozess sehen.
|
||
Keine zwei Builds gleichzeitig. Immer **`-j10`**, niemals `-j4`.
|
||
5. Neueste Compiler-/Teststände prüfen und die untenstehenden offenen Arbeiten
|
||
fortsetzen. Kein Installieren eines nur teilweise gebauten Standes.
|
||
|
||
## Aktueller Auftrag und verbindliche Nutzerentscheidungen
|
||
|
||
Wir arbeiten am Intent **Beruf (`profession`)**, nach Geselligkeit, Ruhe,
|
||
Freizeit, Wirtschaften und dem Abenteuer-Erkundungsausbau. Danach folgen
|
||
Instanzbesuche. Kampf kommt GANZ AM ENDE, gemeinsam mit reaktiver Selbstwehr
|
||
(z. B. bei Angriff während einer Reise).
|
||
|
||
- Alle Berufsaktionen bleiben **dauerhaft rein performativ**. Es wird NICHT
|
||
tatsächlich abgebaut, gesammelt, gekürschnert, produziert, gefangen oder
|
||
geheilt. Keine Beute, Quellenerschöpfung, Inventar-/Materialänderung,
|
||
Fertigkeitserhöhung oder tatsächliches Erlernen. Nicht „zunächst“ schreiben.
|
||
- Hauptberufe dürfen NUR ausgeführt werden, wenn sie im Lua-Charakterprofil
|
||
ausdrücklich eingetragen sind. Nebenberufe brauchen diese Freigabe nicht;
|
||
Vorlieben werden später weiter über gewichteten Zufall ausgestaltet.
|
||
- Der Nutzer hat die Rückfrage ausdrücklich beantwortet: **Arthoran hat
|
||
Bergbau und Schmiedekunst**. In seinem Profil stehen deshalb dauerhaft
|
||
`professions = { primary = { "mining", "blacksmithing" } }`.
|
||
KEIN Kräutersammeln bei ihm erlauben, auch nicht vor vorhandenen Pflanzen.
|
||
Das generische Profil enthält eine leere Hauptberufsliste.
|
||
- Ort und Gebiet sind gleichberechtigte Ziele. Ein Bot soll z. B. das Gebiet
|
||
Elwynn anreisen und dort lokal selbst nach passenden Ressourcen suchen.
|
||
- **Hierarchie:** Tagesplan wählt Intent, dann passender importierter Ort,
|
||
dann lokal mögliche Mikroaktion. Der Ortsbestand darf die Intentauswahl
|
||
nicht vetoieren. Die Location-/Intent-Katalogzuordnung legt die Eignung fest.
|
||
- Eine für `profession` geeignete Location (auch ein ganzes Gebiet) schaltet
|
||
NICHT alle Berufsaktionen frei. Schmieden braucht einen echten nahen Amboss,
|
||
Schmelzen eine Esse, Kräutersammeln eine tatsächliche Pflanze UND Profilrecht.
|
||
- Gebietsanreise ist bereits vorhanden: `AdventureBehaviorMgr::AreaNode`
|
||
sucht einen ERREICHBAREN Graphknoten im Zielgebiet, `Begin` reist über
|
||
`travel_to_node`; die Ankunft wird gegen das Gebiet geprüft.
|
||
- Abenteuer soll regulär draußen in passenden Weltgebieten stattfinden.
|
||
Sturmwind ist nur Testgebiet; keine zusätzlichen Stadt-Sonderregeln bauen,
|
||
sondern passende gespeicherte Locations/Intent-Gewichte verwenden.
|
||
- Ausritte, Freizeit-Rundflüge und Schlafdarstellung sind auf Nutzerwunsch
|
||
weiterhin für spätere visuelle Tests zurückgestellt. Jetzt nicht testen.
|
||
|
||
## Umgebung und Betriebszustand beim Sichern
|
||
|
||
- Source: `/home/wow_admin/wow_cata_server/source/TrinityCore`.
|
||
- Build: `/home/wow_admin/wow_cata_server/build/debug`, Ninja, Debug.
|
||
- Install: `/home/wow_admin/wow_cata_server/server/debug`.
|
||
- Testserver: tmux `vcore-worldserver`, cwd `server/debug/bin`, `./worldserver`.
|
||
- Vor dem Sichern lief **PID 19058**, letzter installierter Abenteuer-Ausbau.
|
||
Diesen nicht blind wiederverwenden: Prozesszustand beim Fortsetzen prüfen.
|
||
- Arthoran: Charakter GUID **26**, Account 6, aktuell Abenteuer am importierten
|
||
Sturmwind-Ort `poi_tele_954`. Allitester GUID 21 kann als Zuschauer online sein.
|
||
- Der BERUFS-Ausbau wurde noch nicht installiert; SQL-Migration `_05` wurde
|
||
noch NICHT eingespielt. Der laufende Server ist daher der vorherige Stand.
|
||
- Arthorans normale Startvorgabe im gespeicherten Lua-Profil ist wieder
|
||
`social` / `goldshire_tavern`. Es gibt aktuell KEIN temporäres Login-Profil.
|
||
- Der letzte Build wurde mit j10 unterbrochen, bei 749/751 Schritten (libgame.a gelinkt; letzte Linkschritte noch offen). Die nächste
|
||
inkrementelle Ausführung kann normal weiterbauen; Objektdateien erhalten.
|
||
- Erster Build hatte nur den Fehler `Creature::GetDeathState` statt
|
||
`getDeathState`. Das wurde bereits korrigiert. Der daraufhin neu gestartete
|
||
Build hatte bis zur Unterbrechung keine weiteren gemeldeten Compilerfehler.
|
||
- CMake wurde mit den bestehenden Einstellungen neu ausgeführt, um die neue
|
||
`AdventureProfessionTargets.cpp` einzusammeln (CollectSourceFiles ohne
|
||
CONFIGURE_DEPENDS). Das löste einen größeren Build aus. Nicht grundlos
|
||
erneut konfigurieren, nur mit j10 weiterbauen.
|
||
|
||
## Bereits geschriebene, noch unfertige Berufs-Implementierung
|
||
|
||
### Profil und Regeln
|
||
|
||
- `AdventureProfessionPolicy.h`: reine Regeln/Task-Spezifikationen, elf
|
||
Hauptberufe, kanonische englische Bezeichner, Nebenberufe ohne Primärfreigabe.
|
||
Hauptberufsrecht stammt aus dem Profil, NICHT aus `Player::HasSkill`.
|
||
- `ClientlessAdventureProfile::PrimaryProfessions` und Lua-Parser für
|
||
`professions.primary` als Array. Unbekannte Namen warnen und gewähren nichts.
|
||
- `arthoran.lua`: mining + blacksmithing. `generic.lua`: leeres Array.
|
||
- `Trainer.h`: nur neuer generischer, read-only Zugriff `GetSpells() const`.
|
||
Kein Lernen/Trainer-Handler wird aufgerufen.
|
||
|
||
### Echte Ressourcen und Arbeitsplätze
|
||
|
||
- Neu: `AdventureProfessionTargets.{h,cpp}`.
|
||
- Erz/Pflanzen: echte aktive CHΕST-GOs, native Lock-/Skill-Anforderungen aus
|
||
`sLockStore` / `SkillByLockType`, nicht bloß Namen oder Locationkategorie.
|
||
Nur sichtbare, phasenrichtige, bereite und erreichbare Ziele.
|
||
- Kürschnerei: vorhandener toter BEAST-Kadaver im Zustand CORPSE mit nativem
|
||
SKINNABLE-Flag. Kein Erzeugen/Töten eines Tiers. Kampf/Jagd später.
|
||
- Arbeitsplätze: neuer editierbarer Katalog `vcore_adventure_workstation`
|
||
mit GO-Templateentry, semantischer Rolle und enabled. Keine Bot-/Ort-ID-Liste.
|
||
Native Fokuskennungen geprüft: 1 Amboss, 3 Esse, 4 Kochfeuer, 663 Alchemielabor,
|
||
1589 Lexikon. 623/543 sind besondere Amboss-/Essenfokusse.
|
||
- Native unsichtbare SPELL_FOCUS-Marker repräsentieren reale Kartenarbeitsplätze
|
||
und dürfen dafür genutzt werden. Keine Aktivierung/Objektbenutzung.
|
||
- Rollen ohne reale erkennbare Arbeitsplätze bleiben nicht verfügbar; keine
|
||
beliebige Werkstatt-Location als Amboss behandeln.
|
||
- Trainer: native Tradeskill-Trainer, deren native Spell-/SkillLine-Daten zu
|
||
einem erlaubten Haupt- oder einem Nebenberuf passen. Reines Gespräch.
|
||
|
||
### Szenen und bestehende Legacy-Aktionen
|
||
|
||
- Wiederverwendete `AdventureSocialActions` mit `Cue::Work`, professionellen
|
||
Zielprüfungen, nativen Emote-Zuständen, Abschlussbetrachtung und kurzem
|
||
Wegtreten. Keine Harvest-/Craft-/Loot-/Teach-/Heal-Aufrufe.
|
||
- Profil und Ziel werden auch während der Szene erneut geprüft.
|
||
- Alte `mining_show` / `smithing_show` (Kind `work`, Requirement ore/forge)
|
||
werden in `ResolvedAction` auf dieselben neuen gesperrten Szenen umgelegt.
|
||
Es darf KEIN Legacy-Bypass der Profil- oder Arbeitsplatzprüfung verbleiben.
|
||
- Nach vollständiger Sammeldarstellung wird `work:<GUID>` in der bestehenden
|
||
Zielhistorie gespeichert. Kürzlich bearbeitete Ressourcen werden gemieden,
|
||
damit die unverändert stehen bleibende Quelle nicht endlos wiederholt wird.
|
||
Nur Erzbetrachtung (`ore_inspect`) setzt diese Bearbeitungssperre nicht.
|
||
|
||
### Gebietssuche / gemeinsame Erkundungssteuerung
|
||
|
||
- Neue Suche `profession_search`, Requirement `work_search`, Kind `outing`.
|
||
- Wiederverwendete MMAP-Routensteuerung: progressive Hinwege, an erreichten
|
||
Kontrollpunkten erneut mögliche Berufsarbeit prüfen und Suche dann beenden.
|
||
- Bei Gebietsaufträgen wird der lokale Anker nach bestätigtem Suchfortschritt
|
||
verschoben. Weiteres Durchsuchen bleibt über jeden MMAP-Punkt im Zielgebiet.
|
||
- Gebiets-Abenteuerwege sind jetzt ebenfalls progressiv; normale Freizeitwege
|
||
bleiben bestätigte Hin-/Rückwege. Keine Stadt-Sonderregel.
|
||
- Zusätzliche native Uferprüfung für performatives Berufsangeln im Gebiet,
|
||
ohne zwingenden speziellen Fishing-Location-Key. Ausgerüstete Angel bleibt
|
||
nötig. Kein wirklicher Angelzauber/Fang. Noch nicht live getestet.
|
||
|
||
### Neue Migration
|
||
|
||
`sql/custom/world/2026_10_27_05_adventure_profession.sql` (noch NICHT angewendet):
|
||
Arbeitsplatzrollen, neue Arbeits-/Such-/Nebenberufs-/Gesprächsaktionen,
|
||
Berufsgewichtung für Gebiet/Wildnis/Siedlung, neue Texte. Native Fokusdaten
|
||
haben Vorrang; Namen ergänzen nur erkennbare geeignete Props. Geänderte
|
||
Gewichte/disabled-Rollen sollen bei Wiederholung erhalten bleiben.
|
||
|
||
## Offene Arbeiten – konkret hier weiter
|
||
|
||
1. Aktuellen C++-Diff kritisch prüfen; dies ist ein WIP, keine fertige Abnahme.
|
||
Insbesondere Berufsszenen, Legacy-Auflösung, progressive Ankeraktualisierung,
|
||
Ressourcen-Wiederholungsdämpfung und Uferprüfung gegen Nutzerregeln prüfen.
|
||
2. `cmake --build /home/wow_admin/wow_cata_server/build/debug -j10` fortsetzen.
|
||
Vorher prüfen, dass kein alter Build mehr läuft. Weitere Fehler beheben.
|
||
3. Vollständige Tests erneut laufen lassen. Vor dem Berufs-Ausbau waren
|
||
**32 Tests grün**. Seitdem gab es 7 Mock-/Harness-Anpassungsfehler, deren
|
||
Fixes bereits TEILWEISE geschrieben sind. Alte Fehlerdateien sind historisch!
|
||
- Economy/Exploration/Social-fire: neues Policy-Include und Profilfelder,
|
||
Targets-Stub für zusätzlich mitkompilierte Zweige.
|
||
- Social: Map-/Position-/Origin-Stubs und native Work-Emotes ergänzt;
|
||
zuletzt nach INVALID_HEIGHT-Fix wieder grün.
|
||
- Exploration und Leisure: nach Anpassungen zuletzt wieder grün.
|
||
- Intent-state: neue Scene-Felder Progressive/Route/Step ergänzt;
|
||
letzter Fehler fehlende Player::GetExactDist(Position const&). Der
|
||
Überladungs-Fix ist bereits geschrieben, aber noch nicht erneut geprüft.
|
||
- Rest-fire: PrimaryProfessions in Mock-Profil/-Kontext ergänzt;
|
||
aktuellen Zustand durch erneuten Lauf prüfen.
|
||
4. Neue aussagekräftige Berufs-Tests fehlen noch! Geplant:
|
||
- tatsächlichen neuen Lua-Parser mit realem Lua 5.4 ausführen, inklusive
|
||
Arthoran mining/blacksmithing, leeres/ungültiges Profil sperrt Hauptberufe;
|
||
- Mining+Smithing darf vorhandene Kräuter NICHT bearbeiten, umgekehrt darf
|
||
Herbalism+Alchemy keine Erz-/Schmiedearbeit; sekundäre Aktionen ohne Liste;
|
||
- produktive native Zielklassifikation: Lock-Skills statt Namen, Amboss
|
||
versus Esse versus bloße Workshop-/Gebietszuordnung, falsche Phase,
|
||
despawnte/gelootete Quelle, Kadaverprüfung und passende Trainer;
|
||
- native Arbeitsgeste erst NACH tatsächlicher Ankunft, Profilentzug während
|
||
laufender Szene, keine Objektbenutzung/Casts/Inventaränderung, Abschluss;
|
||
- Migration auf Schemafixtures ausführen, Idempotenz und bearbeitete
|
||
Gewichte/Arbeitsplatzfreigaben erhalten;
|
||
- Gebiets-Anreise über erreichbaren Graphnode und lokale progressive Suche
|
||
innerhalb des Gebiets, Stopp bei gefundenem zulässigem Arbeitsplatz.
|
||
5. Erst dann neue Migration auf TEST-DB anwenden. Noch kein profession_apply-
|
||
Modus im gesicherten DB-Helfer! Ergänzen oder engen eigenen Helfer schreiben.
|
||
6. Erfolgreichen Build nach sauberem Serverstopp installieren, neu starten und
|
||
frische Ready-Meldung + Prozess + Port 8085 prüfen. AGENTS-Recovery beachten.
|
||
7. Live prüfen: tatsächlicher Amboss in Sturmwind (z. B. importierter
|
||
`poi_guard_541`, Schmiedebereich), dann Gebietsziel `poi_tele_338` = Elwynn,
|
||
Gebiet 12, echtes travel_to_node und lokale Ressourcen-/Arbeitsplatzsuche.
|
||
Kräuter muss Arthoran verweigern. Inventar/Geld und Ressourcen unverändert
|
||
nachweisen. Keine gefälschten Ressourcen, Spawns oder Teleports.
|
||
8. Berufs-Dokumentation schreiben, Katalog-/Standdokumente aktualisieren und
|
||
offen gebliebene Live-/visuelle Prüfungen ehrlich benennen.
|
||
|
||
## Wichtige vorherige Ergebnisse – nicht neu implementieren
|
||
|
||
- Reisegraph: optionale virtuelle Exits regelmäßig (6 s) während Weiterbewegung
|
||
prüfen, kein Abbruch nach fünf Versuchen, Kante nicht mitten darin umkehren.
|
||
Free-flight-Fallback getrennt von künstlichen Normalreise-Auswahlregeln.
|
||
- Ruhe/Feuer: gemeinsames natives Kochfeuer 818, neue Feuer nie in Gebäuden/
|
||
Städten. Schlafdarstellung weiterhin vertagt.
|
||
- Freizeit: Katze (Spell 10673, Creature 7385), Leine (Item 37460, Spell 48722),
|
||
echte native Begleiter-/Itemverwendung. Kanal beim Gehen erhalten. Owned-only
|
||
Cleanup, keine Veränderung fremder Begleiter. Nutzer hat sichtbare Katze,
|
||
Leine, zusammenhängende Routen und flüssige Bewegung ausdrücklich abgenommen.
|
||
- Native Follow-Fix: aktive Player-Splinegeschwindigkeit statt Run-Flag wählen;
|
||
SetWalk setzt die Gait-Auswahl, nicht MOVEMENTFLAG_WALKING. Das beseitigte
|
||
die ständigen Zwei-Meter-Pausen. Nicht wieder entfernen.
|
||
- Native Spline-Kurzsegment-Fix: 0,11 Yards Mindestabstand beim Splitten.
|
||
- Wirtschaften rein performativ; Händler/Bank/AH und Vergleich mit zwei GUIDs
|
||
technisch live geprüft, Geld/Inventar danach bytegleich.
|
||
- Importfehler behoben: SMALLINT maps über GetUInt16 statt GetUInt32, das in
|
||
Debug Null ergab. Gezielte, idempotente `clientless adventure repairimport`
|
||
reparierte 2.159 unveränderte abgeleitete Orte, ergänzte 217. Jetzt **2.864**
|
||
aktive semantische Locations / 3.857 Worldpoints. 16 manuelle Orte unverändert.
|
||
Vier Horde-Hauptstädte korrekt auf Karte/Fraktion zugeordnet. Nicht die
|
||
originalen world-DB-Quellen ändern. Snapshots liegen bei dieser Übergabe.
|
||
- Location-Zuordnung: kein versteckter Wirtschaften-Fallback mehr im Code;
|
||
`_04` materialisiert ausdrückliche Kategorie-/Intent-Gewichte, inklusive
|
||
begrenzter Freizeitgewichtung für Tavernen. Tagesplan-Intent unabhängig davon.
|
||
- Abenteuer `_04`: native Objektuntersuchung ohne Use, Scout/Equipment,
|
||
zusammenhängende Bodenwege. Zehn neue Aktionen, 32 Tests bestanden, technisch
|
||
live in Sturmwind: Pestle's Apothecary 197117, Weller's Arsenal 197121,
|
||
80-Yards-Erkundungsweg mit zehn bestätigten Hin-/Rückwegpunkten. Visuelle
|
||
Abnahme und gefährliche offene Welt weiterhin separat.
|
||
|
||
## Werkzeuge, Logs und reproduzierbarer Betrieb
|
||
|
||
Dauerhafte Kopien für diese Übergabe:
|
||
`doc/clientless/checkpoints/2026-10-27-profession/`.
|
||
Darin Build-/Configurelogs, historische fehlgeschlagene Testausgaben,
|
||
Ortskatalog-Snapshots und die bisherigen schmalen DB-Helfer. Diese Helfer lesen
|
||
Verbindungsdaten aus der lokalen Testserverkonfiguration; keine Passwörter
|
||
im Chat/Logs ausgeben. Sie enthalten keine fest codierten Zugangsdaten.
|
||
Die Helfer bei Bedarf wieder nach `/tmp` kopieren; Pfade gelten für diesen Host.
|
||
|
||
Wichtige Live-Logs (normal und ohne vorsorgliche Elevation lesen):
|
||
`/home/wow_admin/wow_cata_server/server/debug/bin/Server.log`,
|
||
`adventurebot-navigation.log`, `DBErrors.log`. Server.log wird beim Start neu
|
||
begonnen, Navigations-/DBErrorslogs können ältere Fehler enthalten. Bekannte
|
||
alte Script-/Spell-Warnungen nicht mit neuem Startup-Versagen verwechseln.
|
||
|
||
Buildbefehle: `cmake --build .../build/debug -j10`, bestehende Installation
|
||
mit `cmake --install .../build/debug`. Tool-Sandbox für Build/Install/tmux/DB
|
||
beachten, aber normale Logs nicht vorsorglich eskalieren. Keine laufende
|
||
Executable überschreiben. Kein Push.
|
||
|
||
Für gezielte Tests nach Restart wurde bisher nur beim Login die Startvorgabe
|
||
in arthoran.lua temporär geändert, vorher byteweise gesichert, nach
|
||
`[AdventureBot][Profile] loaded guid=26` exakt zurückgesetzt. Die jetzt dauerhaft
|
||
vereinbarten Hauptberufe dabei unbedingt erhalten. Keine temporären Profile
|
||
liegenlassen. Alternativ normalen Login abwarten und per Console Intent setzen;
|
||
auf unerwünschte automatische Goldshire-Anreise achten.
|
||
|
||
Console-Beispiele ohne führenden Punkt:
|
||
`clientless login 26`, `clientless adventure status 26`,
|
||
`clientless adventure intent 26 profession poi_guard_541 3600`,
|
||
`clientless adventure intent 26 profession poi_tele_338 3600`,
|
||
`clientless adventure micro 26 <action_key>`, `saveall`.
|
||
|
||
Der Nutzer möchte vor allem konkrete, überprüfte Ergebnisse und wenig
|
||
Bestätigungsfragen. Die Hauptberufs-Rückfrage ist bereits BEANTWORTET; nicht
|
||
noch einmal stellen. Testservermanagement und lokale Commits sind autorisiert.
|