Files
Viano-Core/doc/clientless/lua-reload.md
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

2.3 KiB

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:

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).