003. Vypínatelné svetlá
9.06.2008 - 09:10,
(Autor: tomoxm)

Hráčom ovládaný prepínač/tlačítko

  1. Otvorte mapu ktorú sme si vytvorili v predchádzajúcom tutoriály. Kliknite v menu na File | Save as a uložte novú mapu s názvom light_switch.vmf.

  2. Najprv si spravíme malý brush - bude to náš vypínač.

  3. Otvorte Texture Browser a vyberte textúru No draw.

  4. TextWind

  5. Kliknite na Block Tool blocktool a vytvorte brush o veľkosti 2 x 8 x 8, potom stlačte Enter a uložte ho na stenu, pod úroveň výšky hráča.

  6. switchwall

  7. Otvorte Texture Browser a vyberte textúru props/doorbutton002a, ktorú aplikujte na prednú stranu novovytvoreného brushu.(Nemajte nič označené, otvorte face edit tool, uistite sa, že je vybratý Mode: apply textures and values a aplikujte texúru)
  8. S ešte otvoreným nástrojom face edit tool faceedit , vyberte Mode: Lift and Select, kliknite na textúru tlačítka v 3D okne, potom kliknite na funkciu fit (podkategória Justify).

    Vaša textúra by mala byť umiestnená v správnej polohe a veľkosti.

  9. switchtex

  10. Otvorte si Texture Browser a vyberte nejakú tmavú textúru, ktorú aplikujeme na zvyšné strany brushu.

    Všimnite si, že zadná strana brushu, ktorú hráč nebude vidieť, má textúru no draw.

    Teraz prekonvertujeme brush do funkcie func_button

  11. Označte si brush vypínača. Potom stlačte CTRL+T , alebo pravým tlačítkom myši označte brush a v menu ktoré sa objaví vyberte Tie to Entity

    Objaví sa nám okno Object Properties.
  12. V položke Class info vyberte funkciu func_button. Kliknite na Apply.

  13. fblist


    Prekonvertovaním na func_button, sa celý brush posunie do smeru ktorým sa bude zatláčať,
  14. kliknite na Move direction (Pitch/Yaw/Roll) aby ste videli do ktorej. Biela čiara v čiernom kruhu vám napovie (v okne-pohľade Top (x/y))
    funcbutt


    My ho nechceme posúvať, takže :
  15. Kliknite na záložku Flags a zaškrtnite políčko Don't move (ak ešte nie je).

  16. flagsbutt


    Ked už sme pri tejto záložke, tak si môžeme vysvetliť čo robia nasledujúce parametre :
    • touch activates - táto funkcia znemaná, že tlačítko sa spustí hneď ako k nemu podíde hráč
    • use activates - tlačítko sa spustí ak hráč v hre použije klávesu USE
    • Damage Activates - zabezpečí, že sa spustí ak na toto tlačítko vystrelíte

    Funkcia sparks slúži na to, aby z daného tlačítka vychádzali iskry (napr. pre efekt že toto tlačítko je pokazené).
    Z nejakého dôvodu nefunguje v hre zvuk pre iskry, aspoň nie v SP (single player). Ale dá sa to spraviť inak, ako si ukážeme neskôr.
    V našom prípade si označme funkcie Use activates a Damage Activates.
  17. Choďte naspäť na položku Class info a dajte funkcii func_button nejaký názov.
  18. Je veľmi užitočné nazývať si entity rozumne, pretože pri mape ktorá je veľmi veľká sa v týchto entitách môžete veľmi ľahko stratiť. Názov by mohol obsahovať referenciu na čo je a kde sa nachádza. Predsa je oveľa jednoduchšie hladať tlačítko butt3_armoury ako tlačítko s názvom 187.

    Pre tento tutoriál si ho nazveme : Brian.
  19. Ďalšie možnosti s ktorými by ste sa mohli pohrať sú Sound (zvuk), pozrite sa na rôzny výber a vyberte si jeden ktorý sa vám páči.

    Delay before reset - ako dlho trvá kým je možné znovu zatlačiť tlačítko.

    Kliknite Apply a zavrite okno.
  20. Označte všetky štyri entity svetiel a otvorte ich Properties(nastavenia) ( ALT+Enter )(Ako ste si mohli všimnúť môžeme zmeniť nastavenia (Properties) celej označenej skupiny)
  21. Do políčka Name napíšte: Mary. Týmto sa zmenia všetky názvy svetiel na jedno : Mary.
  22. Choďte do záložky Flags a zaškrtnite položku Initially Dark
  23. Keď spustíte mapu tak bude tmavá, takže radšej položte hráča hneď ku vypínaču, alebo do mapy pridajte nejaké slabšie svetlo, inak strávite veľa času hľadaním tlačítka :-)

    INPUTS AND OUTPUTS (VSTUPY A VÝSTUPY)

    Tento kúsok tutoriálu nám ukáže ako pracujú vstupy a výstupy.

  24. Otvorte znova func_button Properties.
  25. Kliknite na záložku Outputs (výstupy)
  26. Kliknite na Add (na spodku) a vyplnte premenné nasledovne :

    My output named OnPressed

    Target entities named Mary
    (Note how the drop down has the named entity listed)

    Via this input Toggle

    output

    Toto určuje, že keď je tlačítko s názvom Brian stlačené, zapne svetlá s menom Mary. Nastavenie Toggle znamená že pri najbližšom stlačení tlačítka sa svetlá vypnú. Keď si otvoríte Light Properties a kliknete na záložku Inputs, uvidíte inštrukcie zaslané z výstupu (Output) tlačítka.
  27. Skompilujte a spustite mapu.

  28. V mape by ste mali vedieť zapnúť a vypnúť svetlo pomocou tlačítka, a taktiež vypnúť a zapnúť strelením do tlačítka.

    Ak chcete aby sa tlačítko realisticky stlačilo v záložke Flags odškrtnite položku Don't move. Ale pozor, pri tomto nastavení budete musieť trochu upraviť cestu pre tlačítko v stene (a nezabudnite na správne smerovanie) Pre detailnejšie vysvetlenie o vstupoch a výstupoch (Inputs and Outputs) choďte na stránku Editlife.

    The Trigger Entity (Entita Trigger)

    Ďalšia možnosť ako vypínať/zapínať svetlá je zapnúť ich (trigger) inou udalosťou. Najjednoduchšie ako to urobiť je aby hráč prešiel cez nejaký priestor v mape a tak spustil "trigger". Viac zaujímavejšie je vypnutie svetla, napr. keď hráč vojde do osvetlenej miestnosti a svetlo zrazu zhasne...

  1. Otvorte Texture Browser a napíšte trigger do políčka filter, dvakrát naňho kliknite.

  2. triggerimg

  3. Kliknite na block tool blocktool
  4. Spravte si brush, veľký ako miestnosť, ale o šírke len 32 jednotiek a výšku nech má takú ako hráč.
  5. Položte ho 128 jednotiek od podlahy. Ak sa pozriete na 3D pohľad uvidíte textúru triggeru, priesvitne-oranžovú so slovom trigger
  6. Položte hráča medzi stenu a nami vytvorený trigger brush.

  7. triggerplayer

  8. Uistite sa, že naše entity svetiel - light entities - sú nazvané Mary a v záložke flags označte alebo odznačte položku initially dark, to záleži či chcete aby boli na začiatku svetlá zhasnuté alebo zapnuté.
  9. Vyberte brush trigger, stlačte CTRL+T aby sme ho "priviazali" na entitu.
  10. V položke Class list, vyberte Trigger_multiple a dajte mu meno.
  11. Klikneme na záložku Outputs. Potom na tlačítko Add.
  12. Zadajte nasledovné nastavenia v rolovacom menu:

    My Output named OnTrigger

    Targets entities named Mary

    Via this Output Toggle

    Toto určí hre, že ked hráč prejde brush Trigger tak sa vypne/zapne svetlo (Mary).

  13. Skompilujte mapu.

  14. Keď prejdete cez (v hre neviditeľný) trigger svetlo sa zapne, alebo vypne, to záleží od toho ako ste nastavili položku initially dark v možnostiach entity svetla. Vypínač/tlačítko robí to isté.
    Translated from : http://www.halfwit-2.com

 

Napísať otázku k tutoriálu

Meno: Dátum:
Kontrolný kód : 5 + sedem =
 
Autor : El Carlos
11.02.2010 - 16:52
Tady mi není jasná jedna věc. Zapnout/vypnout světlo - OK. Jenomže, aby to působilo trochu realisticky, je zapotřebí použít dvojici "prop_static", tedy samotných svítících předmětů. Pokud použiju prostě lampu, tak než ji zapnu, bude rozsvícená ve tmě, ale nevydávat světlo. V opačném případě bude po rozsvícení všude vidět, ale lampa bude očividně znasnutá. Nemůžu nikde najít, jak tyto dva prvky nechat kombinovat a asi to jít musí, protože v seznamu entit je skoro každé světlo v zapnuté i zhaslé variantě.