Export a Import#
Export a Import jsou funkce pro ukládání a načítání vybraných herních objektů. Jedná se o nástroje určené především pro správce serveru.
Export#
Export funguje podobně jako uložení (save), ale zachovává pouze vybranou sadu objektů. Reference na Thingy, GameAccounty a ThingDefy se uloží jen jako odkazy, zatímco reference na jiné objekty se uloží jako odkazy a zároveň se uloží i odkazovaný objekt.
Export se skládá ze dvou fází:
- Určení objektů k uložení – buď manuálně, nebo pomocí C# skriptové funkce
- Spuštění exportu – zavolání
ExportImport.Export(), které vytvoří soubor, zapíše exportované objekty a připojí značku[EOF]
Operace exportu je bezpečná, protože nemění stav herního světa.
Import#
Import se podobá načítání (load), ale probíhá za běhu serveru. Před ním i po něm musí být svět ve validním stavu, proto se jedná o potenciálně nebezpečnou operaci.
Import probíhá v sedmi fázích:
- Výběr souboru – pevně zadaný nebo manuální vstup
- Parsování souboru – zavolání
ExportImport.Import(), které zpracuje soubor na instance PropsSection - Přiřazení instancí – přiřazení k ImportHelper objektům přes označené statické metody
- Ověření – kontrola, že všechny ImportHelpery mají přiřazené instance
- Volání Import() – spuštění metod Import() na instancích
- Odložené metody – spuštění přes
DelayedResolver.ResolveAll() - Dokončení – spuštění označených
[ImportingFinishedMethod]statických metod
Jakákoliv chyba ve fázích 5–7 znamená okamžité nucené shození serveru.
Související články#
- SteamEngine – serverový software shardu Moria
- Scripting – přehled skriptování