Ahojte, po siedmich rokoch som sa nostalgicky pozrel spat na toto forum a ono este stale existuje Nedokazal som si obnovit stary ucet, email uz je zruseny tak aspon takto sa hlasim
Je načase rozebrat "dveře na šestimístný číselný nastavitelný kód". Podíváme se jak dají využít brushové entity jako zajímavá součást skriptu.
Všem nejspíš již známé video z května roku 2010. Neukojitelná touha vytvořit nastavitelný kód ve mně dřímala od dob vytvoření klasických dveří na kód. Probudila se po zjištění, že func_pushable umí sepnout trigger_multiple. A právě pushable je důležitou součástí nastavitelného kódu. Je součástí paměti.
Do této paměti se ukládá kód. Je to pole bitů 6x9. Každý řádek je jedna pozice kódu (1. - 6.). Každý sloupec je jeden znak kódu (1-9). Heslo 421337 vypadá v tom poli takto (řádky jdou odspoda nahoru):
000000100
001000000
001000000
100000000
010000000
000100000
Toto je jeden bit. Součásti, ze kterých se skládá:
1, func_pushable
2, func_door, směr nahoru
3, func_door, směr doleva, k jedničce
4, trigger_multiple
5, func_door, opět směr k jedničce
Funkce součástí:
1, žádná zvláštní funkce, jen se nechává posunovat všemi těmi dveřmi a spouští trigger_multiple
2, vysune pushable nahoru, čímž ho postaví do rány dveřím č. 3 (nastaví hodnotu bitu)
3, pokud je pushable vysunutý nahoru, klepne do něj a prostrčí ho triggerem (přečte hodnotu triggeru)
4, nechává se spínat pushablem (vrací hodnotu bitu)
5, posune pushable do pozice před čtením (klepnutím dveřmi č. 3) (umožňuje opakovat čtení)
Kdybychom chtěli mít kód pouze jednomístný (tzn jen jedno číslo 1-9), měli bychom jednu řádku těchto bitů. Tlačítka nastavovací klávesnice by spínaly nastavovací func_door (č.2). Tyto nastavovače by měly v targetu jméno devíti changetargetů, které by následně nastavovací klávesnici deaktivovaly. Tlačítka otevírací klávesnice by měly targety na ověřovací func_door (č.3). Tyto ověřovače by měly target na jeden velký resetovač (func_door č.5, stačí jeden velký pro všechny pushably). Zbývá nám ještě trigger_multiple (stačí také jeden), který má target přímo na zamknuté dveře.
Pro vícemístné kódy je to složitější. Nastavovače nejdříve mají targety na trigger_changetargety, které změní cíle nastavovacích tlačítek na další řádek nastavovačů. Až poslední řádek nastavovačů má trigger_changetargety, které nastavovací tlačítka deaktivují.
To stejné musíme provést i s otevíracími tlačítky. Otevírací func_doory mění targety otevíracím tlačítkům. Kromě toho si potřebujeme vytvořit dvě počítadla. Jedno na počet stisknutých tlačítek, které bude spínané vedle otevíracích func_doorů. Druhé na počet správně uhodnutých znaků hesla, které bude spínáno triggerem_multiple.
Při naplnění prvního počítadla resetujeme druhé počítadlo a sepneme resetovací func_door.
To je asi vše k tomuto starému nastavitelnému kódu. Kdybych ho měl vyrobit teď znovu, nejspíše bych ho udělal jinak, přes spousty changetargetů a relé. Na druhou stranu, mechanická paměť má své kouzlo, které jí rozhodně nemůžeme upřít.