tvorbamap.cz

tvorbamap.cz

Navigace

bullet.gif

Domů


bullet.gif

Články


bullet.gif

Ke stažení


bullet.gif

Fórum


bullet.gif

FAQ



bullet.gif

Herní server


bullet.gif

Chat


bullet.gif

Převod jednotek



bullet.gif

Soutěž


bullet.gif

Síň slávy



bullet.gif

Podpořte nás


bullet.gif

Kontakt


bullet.gif

Vyhledávání


bullet.gif

RSS


Herní server

Shoutbox

Pro přidání zprávy do shoutboxu, musíte být přihlášeni.

31.12.2017 12:01:45
Dobrý den, mám problém který mi neumožňuje renderovat mapu na mém NT. Jakmile zapnu render, automaticky mi vyhodí hlášku, že program přestal pracovat. Setkal se někdo už s tímhle problémem? Děkuji.
±0


30.12.2017 16:20:10
Už dělám jenom PFka :D
±0


29.12.2017 17:58:23
@Backup mi neřikej že ještě něco tvořiš do 1.6 :D
±0


27.12.2017 03:14:04
Tady to zas žije!

A vše nej ke svátkům.
±0


20.12.2017 19:10:10
Tobě skoro taky.
±0


20.12.2017 19:02:04
Veselé skoro-Vánoce, králíčkové.
±0


09.12.2017 09:32:51
Nedamie niekedy niekde stretko?
±0


04.12.2017 15:38:21
Už jsem zapomněl jak se to dělalo :D
+1


04.12.2017 13:58:19
Kazí mi ale hall of fame... :(

Žádám Zálohu o zásah, tak jako to tehdá udělal u mě.
±0


04.12.2017 00:45:28
Alespoň někdo tu je aktivní.
±0


Master, multisource a env_global

(Oříšky)

Zamykání dveří a zakazování/povolování různých entit. Ukažte svým entitám kdo je jejich pán.

Master



Co je to Master (pán)? Je to vlastnost entity, která umožňuje uzamčení (zakázání) dané entity nadřazenou entitou (Masterem). Do tohoto políčka napíšeme jméno entity, která mu bude nadřazená. Masterem můžou být pouze dvě entity a to multisource a game_team_master (který v csku nefunguje správně).

Mastera můžeme vyplnit u všech těchto entit:
tankovité: func_tank, func_tanklaser, func_tankmortar
dvéřité: func_door, func_door_rotating, momentary_door, func_water
spínačové: trigger_counter, trigger_autosave, trigger_gravity, trigger_hurt, trigger_multiple, trigger_once, trigger_push, trigger_teleport,
herní: game_counter, game_counter_set, game_end, game_player_equip, game_player_hurt, game_player_team, game_score, game_team_master, game_team_set, game_text, game_zone_player
tlačné: func_button, func_rot_button, button_target, momentary_rot_button

Master u části z nich ale nefunguje, takže pokud narazíte na nějakou takovou entitu, nahlašte jí v komentářích a já ji vyškrtnu.

multisource



Multisource je nejpoužívanější entita jako Master. Jakmile ji aktivujeme (např. tlačítkem), odemknou se všechny entity, které ji mají uvedenou jako mastera. Jednoduchý příklad se zamykáním dveří:

func_door - Master: zlypan
multisource - Name: zlypan
func_button - Target: zlypan

master_schema1.png

Dveře jsou na začátku zamčené, protože zlypan čeká na aktivaci tlačítka. Jakmile tlačítko zmáčkneme, dveře se odemknou. Když se tlačátko deaktivuje, opět se zamknou.
Toto funguje ale jen pro tlačítko, které "vyprší". Pokud bychom chtěli spíše spínač - toggle tlačítko, musíme přidat trigger_relay.

func_door - Master: zlypan
multisource - Name: zlypan
trigger_relay - Name: rele, Target: zlypan
func_button - Target: rele

master_schema2.png

Funguje to úplně stejně jako předtím. Důvod, proč musíme použít relé, je chyba ve zdrojovém kódu.
Poznámka pro Valve: v souboru buttons.cpp na řádce 761 má být else if

Tohle ale není jediná funkce multisource. Jak už název napovídá, umožňuje zpracování více zdrojů. Jednoduchý příklad s odemykáním dveří dvěma tlačítky:

func_door - Master: zlypan
multisource - Name: zlypan
func_button - Target: zlypan
func_button - Target: zlypan

master_schema3.png

Dveře jsou zamčené dokud nesepneme obě tlačítka naráz. Jakmile se jedno znich deaktivuje, dveře se opět zamknou.
V případě toggle tlačítek musíme opět použít relé.

Další funkce multisource nesouvisí s Masterem, ale také se hodí znát. Jakmile je multisource aktivován vším co ho aktivuje, je možné nastavit Target, který se spustí.
Příklad - máme vysouvací dveře, které jsou aktuálně ve vrchní pozici a jsou podepřeny dřevěnými zábranami, aby nespadly dolů.

func_door - Name: dvere
multisource - Name: zlypan, Target: dvere
func_breakable - Target: zlypan
func_breakable - Target: zlypan
...

master_schema4.png

Po rozstřílení všech zábran dveře spadnou dolů. (Pozor, toto nebude fungovat v dalším kole!)

Poslední funkcí multisource je možnost číst tzv. Global State - proměnná, která se chová jako takový master pro multisource. Ještě předtím, než se multisource aktivuje a odemkne své poddané (např. nějaké ty dveře) zkontroluje Global State. Pokud je vyplněn a je nastaven na On, multisource se odemkne. Jakmile se Global State změní na Off, multisource se zamkne.

Global State není entita sama o sobě, je to pouze jméno nějaké té proměnné, ze které může číst multisource a trigger_auto (opět má smysl spíše v singleplayeru) a měnit její obsah může env_global.

env_global



Jak již bylo zmíněno, env_global mění obsah určité globální proměnné. Rozebereme si jeho vlastnosti:
Name - klasika, jméno entity
Global State to Set - jméno globální proměnné, kterou budeme nastavovat
Trigger Mode:
> On - vždy nastaví hodnotu na On
> Off - nastaví hodnotu na Off
> Dead - zruší proměnnou
> Toggle - přepne hodnotu z On na Off nebo naopak
Initial State - v kombinaci s Flagem Set Initial State nastaví hodnotu proměnné po startu mapy; výchozí hodnota je Off

Uvedeme si zase nějaký jednoduchý příklad, opět zamykací dveře (s toggle tlačítkem):

func_door - Master: zlypan
multisource - Name: zlypan, Global State Master: zamek
env_global - Name: odemkni, Global State to Set: zamek, Trigger Mode: Toggle
func_button - Target: odemkni

master_schema5.png

Dveře jsou zamčené, aktivujeme tlačítko, změníme GS, tím se odemkne multisource a naše dveře. Deaktivací tlačítka se dveře opět zamknou. Musíme použít toggle tlačítko, protože normální tlačítko nevysílá signál o deaktivaci (resp. vysílá ho pouze pro multisource).

Env_global se hodí, když chceme mít např. jedno tlačítko pro zamčení dveří a druhé pro odemčení.

func_door - Master: zlypan
multisource - Name: zlypan, Global State Master: zamek
env_global - Name: odemkni, Global State to Set: zamek, Trigger Mode: On
func_button - Target: odemkni
env_global - Name: zamkni, Global State to Set: zamek, Trigger Mode: Off
func_button - Target: zamkni

master_schema6.png

A aby to náhodou nebylo moc lehké, můžeme mít pro zamčení a odemčení vždy dvě tlačítka.

func_door - Master: zlypan
multisource - Name: zlypan, Global State Master: zamek
env_global - Name: odemkni, Global State to Set: zamek, Trigger Mode: On
multisource - Name: odemykac, Target: odemkni
func_button - Target: odemykac
func_button - Target: odemykac
env_global - Name: zamkni, Global State to Set: zamek, Trigger Mode: Off
multisource - Name: zamykac, Target: zamkni
func_button - Target: zamykac
func_button - Target: zamykac

master_schema7.png

Global State není globální jen tak, protože to je hezké jméno. Jmenuje se tak kvůli tomu, že hodnota této proměnné se zachovává i přes loadingy do dalších map (v singleplayeru). Pokud tedy dumáte, jak v HL1 udělali Blast Pit, tak je to právě přes env_global.
Zmiňoval jsem entitu trigger_auto, která umí číst Global State, ale není příliš vhodná do multiplayeru. Její (ne)výhoda je, že se aktivuje po startu mapy. V singlu je to super funkce, v multi to může udělat nečekané věci, pokud máme Global State inicializovaný na On.

Příkladová mapa.

Příště se mrkneme na nějaký opravdový oříšek. :)

Komentáře

#1 |
XXL_cz dne 11.07.2013 13:23:05 |
±0
Tak konečně vím, jak se používá master - další výborný článek :)

A u těch dveří, které spadnou po zničení zábran jak to nefunguje v dalším kole - To se dá nahradit game_counterem místo mutisource, když se tam dá počet aktivací podle počtu zábran. A na začátku dalšího kola samozřejmě game_counter_set na reset.
#2 |
KoRis dne 17.07.2013 15:08:19 |
±0
XXL: To si pamatuji, jak jsme toto spolu řešili.
Multisource je prostě jen do singlu a obejít to jde různě. Třeba já ho nahradil v mapě de_secret_labs (kde se dá po spuštění asi osmy "spínačů" otevřít tajná místnost na CT spawnu) přes func_train.
Zkrátka multisource je zbytečná entita.

Přidat komentář

Pro přidání komentáře musíte být přihlášený.

Hodnocení

Pro hodnocení musíte být registrovaný.

Prosím přihlašte se nebo se zaregistrujte.

Výborné! Výborné! 100% [3 Hlasů]
Chvalitebné Chvalitebné 0% [Žádné hlasy]
Dobré Dobré 0% [Žádné hlasy]
Dostačující Dostačující 0% [Žádné hlasy]
Nedostačující Nedostačující 0% [Žádné hlasy]

Přihlášení

Jméno

Heslo



Nejste členem?
Zaregistrujte se!

Ztracené heslo?

Seznam článků

Diskuze fóra

Nejnovější příspěvky


bullet.gif

Svetlo

(Backup)
bullet.gif

Program přestal...

(Backup)
bullet.gif

help

(mailyy)
bullet.gif

lyy_min...

(Gordon Freeman)
bullet.gif

run

(mailyy)
bullet.gif

too much entities

(Backup)
bullet.gif

CS:GO - Úprava ...

(EMINEM)
bullet.gif

Moje začátky

(Backup)
bullet.gif

Exceeded MAX_PA...

(Backup)
bullet.gif

Vaše kompil...

(TheLaoming)

Odkazy

Kotelna Mix-Arena.eu - Gaming portál AMX Mod X nonsteam.cz - seznam CZ/SK Non-Steam Counter Strike serverů

Twitter & FB


Kdo je on-line

bullet.gif Hosté on-line: 1

bullet.gif Členové on-line: 0

bullet.gif Registrovaní členové: 918
bullet.gif Nejnovější člen: Aldom