Files
Viano-Core/doc/clientless/lua-reload.md
T
Nico 1164a72ea3 Implement clientless transports, Lua reload and same-map portals
Add native transport recording and execution with grid lifecycle handling, clientless teleport acknowledgements, and regression tests. Support targeted same-map portal imports and preserve disabled taxi nodes. Document live transport and portal verification and the remaining portal inventory.
2026-10-26 11:27:56 +01:00

42 lines
2.3 KiB
Markdown

# Lua im laufenden Testserver ändern
`.clientless luareload 26` liest Arthorans Profil und Adventure-Skript erneut von
der Festplatte und führt das Verhalten einmal aus. In der Serverkonsole entfällt
der führende Punkt. Der Befehl benötigt GM-Rechte und funktioniert für jeden
eingeloggten, verwalteten clientlosen Spieler anhand seiner GUID.
Die Antwort enthält den tatsächlich verwendeten absoluten Skriptpfad. Es gelten
weiterhin die vorhandenen Fallbacks: `adventure/profiles/<name>.lua` oder
`adventure/profiles/generic.lua` sowie `adventure/overrides/<name>.lua` oder
`adventure/generic.lua`. Die Engine hält keine kompilierten Skripte im Cache.
Für Entwicklung kann `worldserver.conf` direkt auf die Quelldateien zeigen:
```ini
Clientless.ScriptRoot = "/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/scripts/Custom/clientless"
```
Der Standard bleibt `scripts/clientless`, relativ zum Arbeitsverzeichnis des
Worldservers. Eine nichtleere Umgebungsvariable `VCORE_CLIENTLESS_SCRIPT_DIR`
hat Vorrang. Eine Änderung des Stammverzeichnisses erfordert einen Neustart;
anschließende Lua-Dateiänderungen benötigen weder Build noch Installation oder
Neustart. Die vorhandene Installation der Lua-Dateien bleibt für eigenständige
Serverinstallationen erhalten.
Der Reload setzt einen untätigen Bot mit leerer Aktionswarteschlange voraus.
Laufende Reisen, Flüge, Teleports und Passagiere auf Transportmitteln werden
abgewiesen, ohne diese abzubrechen. Der Befehl hängt daher keine zusätzliche
Reise an eine bereits laufende Reise an. Ein erfolgreicher Reload kann sofort
die im geänderten Skript eingereihten Aktionen starten.
Profil und Verhalten werden zusammen geladen. Bei Lade- oder Laufzeitfehlern
bleibt das bisherige Profil erhalten. Während des Reloads angeforderte Aktionen
und Intent-Änderungen werden erst nach Erfolg übernommen. Lua-Logmeldungen
können auch aus einem später fehlgeschlagenen Reload stammen. Fehlerdetails
stehen im Serverlog; das Ergebnis wird zusätzlich als `LUA_RELOAD` im
Navigationslog protokolliert. Lokale Variablen des alten Skriptaufrufs werden
nicht fortgeführt; das entspricht dem bisherigen einmaligen Login-Aufruf.
Regressionstest: `python3 tests/clientless/test_lua_reload.py` (C++-Compiler und
Lua-5.4-Entwicklungspaket erforderlich).