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.
42 lines
2.3 KiB
Markdown
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).
|