====== Automatické Zavírání/Zamykání Dveří ====== Ve výchozím nastavení zůstávají dveře otevřené, dokud poslední hráč neopustí oblast. To stačí ve většině situací. Někdy však možná budete chtít zajistit, aby se konkrétní dveře zavíraly a zamykaly automaticky. Například pokud máte dveře pouze pro zloděje, které slouží jako zkratka, nebo dveře vyžadují klíč, který je třeba nejprve získat od pojmenovaného monstra. K tomu vložte skript **//ark_zamkni//** do události OnOpen dveří. Nebo, ve speciálním případě, kdy dveře vedou do podoblati bez návratu, můžete chtít použít událost OnAreaTransitionClicked - to zabrání typickému problému, kdy hráč otevře dveře a pak se rozhodne odpočinout před vstupem, v takovém případě by se dveře normálně zavřely a zamkly. Výchozí časovač pro zamykání a zavírání dveří s tímto skriptem je 15 sekund. Pokud chcete jiný čas, můžete to specifikovat těmito proměnnými: * LOCK_DELAY int X - kde X je počet sekund, než se dveře samy zamknou * CLOSE_DELAY int X - kde X je počet sekund, než se dveře samy zavřou Pokud jsou dveře spojeny s jinými dveřmi, pak zavření dveří z jedné strany je zavře i z druhé strany. Tento skript také zpožďuje zavírání, pokud je hráč do 5 metrů od dveří, aby se předešlo problému s hráčem, který otevře dveře a odpočívá, nebo hráčem, který zůstane uvězněn uvnitř dveří, což se někdy stává. ===== Automatické Zavírání Spuštěné Oblastí ===== Existují další možnosti pro skript, který zavírá dveře, když poslední hráč opustí oblast. * ALWAYSCLOSE int 1 - to přinutí dveře, aby byly vždy zavřeny tímto skriptem, normálně, pokud hráč opustil oblast přes dveře, pak tyto dveře zůstanou otevřené, aby se nezavřely z druhé strany, kde hráč právě je, ale někdy může být toto chování nežádoucí * NEVERCLOSE int 1 - to zabrání dveřím, aby byly zavřeny skriptem, to je užitečné, pokud chcete mít dveře předem otevřené a nechcete, aby se někdy zavřely * LOCKME int 1 - dveře s touto proměnnou budou také zamknuty, když poslední hráč opustí oblast, může být použito i na umístitelné objekty s inventářem ===== Respawn Dveří ===== Pokud chcete, aby byly dveře zničitelné v neinstanční oblasti, pak budete chtít, aby se tyto dveře po nějaké době znovu objevily. K tomu nastavte skript **//sh_respdvere//** do události OnDeath dveří. Poté nastavte další charakteristiky dveří, jako jsou životní body, automatický zavírací skript, tvrdost nebo dokonce past a stiskněte OK. Jakmile to máte, musíte vytvořit šablonu z těchto dveří. K tomu klikněte pravým tlačítkem na dveře a vyberte Přidat do palety. {{:en:modulebuilding:addtopalette.png?400|}} Tím se znovu otevře okno vlastností dveří, ale tentokrát budete moci změnit jejich resref v záložce Pokročilé a poli Blueprint ResRef. Nastavte nový resref a poté vyberte kategorii palety (záložka Základní), pokud tam žádná není, kde později dveře najdete. Ve výchozím nastavení se respawn uskuteční 300 sekund po zničení. Můžete to změnit pomocí proměnné: * RESPAWN_DELAY int X - kde X je počet sekund, po kterých se dveře znovu objeví Všimněte si, že přidání předem umístěného objektu do palety automaticky změní jeho resref na nový resref, který vyberete v okně vlastností, avšak jakékoli další změny, které jste během tohoto procesu provedli, nebudou zkopírovány do předem umístěného objektu v oblasti. Proto doporučuji smazat předem umístěný objekt a umístit ho znovu z palety. ===== Další Skripty a Proměnné pro Dveře ===== Skript **//sh_useablefalse//** v události OnOpen způsobí, že dveře po otevření již nebudou použitelné a interaktivní. Někdy to dělám v instančních oblastech, zejména pokud dveře nějak překážejí jinému objektu. Toto lze použít i pro umístitelné objekty, stanou se nepoužitelnými, pokud byl jejich inventář vyprázdněn, ale v případě umístitelných objektů chcete tento skript vložit do události OnClosed. Dveře s přechodem do oblasti mohou mít další proměnné: * PROGRESS_MINIMUM integer X - minimální procento vyčištěných spawnů pro průchod, související s [[cs:modulebuilding:progresssystem|Progress System]] * DISABLE_TRANSITION_IN_COMBAT integer 1 - zabraňuje průchodu, dokud je hráč v boji a dokud jsou v oblasti živé nepřátelské bytosti * MIN_LVL integer X - zabraňuje průchodu bez specifikované minimální úrovně (pokud vím, žádné dveře na Arkhalia to nepoužívají, ale možnost existuje) * DVERE string door_tag - značka dveří, které musí být odemčeny nebo zničeny pro průchod (řešení exploitu běžícího přes dveře)