106 Jak udělat žárovku, která po rozbití zhasne [Half-Life & Counter Strike] - CESKEMODY.cz
NOVINKY MODIFIKACE ČLÁNKY TUTORIALY ENTITY DOWNLOAD DISKUZE ODKAZY

TUTORIALY, NÁVODY, PŘÍKLADY, CHEATY

Zde nabízíme pomocné informace při tvorbě map a modifikací do počítačových her - tutorialy psané nebo videotutorialy, podrobné návody i cheaty. Celkem je zde 115 materiálů.

Hra:
  Seřadit dle: Názvu▼  Vydání▼

Jak udělat žárovku, která po rozbití zhasne

Rubrika: Half-Life & Counter Strike  
Vložil: Cr,  zobrazeno: 11407x

Návod je určen pro editor Valve Hammer Editor. Hry Half-Life, CounterStrike 1.6



Jak udělat svítící žárovku, která po rozbití zhasne?

K čemu to vlastně je?

K větší realističnosti map. Pokud doma začnete jakoukoli moderní zbraní střílet do žárovky, asi se rozbije, že? A proč by to tak nemohlo býti i v Half-life? Jak to však udělat? Na to přišel snad jen málokdo… Já jsem mezi nimi. Ale musím vás upozornit, že je to poněkud netradiční způsob řešení.

Postup

Nejprve si uděláme model žárovky, tj. něco alespoň podobného kulovitému tvaru s texturou skla, a uděláme z toho entitu func_breakable, což zajistí, že bude možno žárovku „sestřelit“. Jméno dávat nemusíme, ale do Target on break dáme třeba zarovka_znicena, což zajistí, že po sestřelení se targetne něco s názvem "zarovka_znicena". Samozřejmě nezapomeňte na něco, jako je objímka (to, do čeho se žárovky zašroubovávají). Ta tam totiž i po rozpadu žárovky na cimprcampr zůstane. Dále musíme zajistit její průhlednost tak, že do Render mode dáme Texture a do FX Amount dáme 100 (čím vyšší číslo, tím nižší průsvitnost ). Dále se přesvědčte, že jako Material type máte Glass (typ materiálu - sklo). Pokud chcete, aby žárovka po sestřelení vybouchla, do kolonky Explode magnitude dejte 1.

Nyní musíme obstarat světlo. Těsně pod žárovkou udělejte entitu light. Jako jméno třeba svetlo a nezapomeňte změnit si barvu světla. Teď vypínač - stačí něco s dobrou texturou. Udělejte z tohoto objektu func_button. Do kolonky Taget dejte třeba jenom tlacitko a ve záložce Flags zaškrtněte Don´t move (podle typu tlačítka).

Tak, to by byla ta viditelná část, ale to nejtěžší nás teprve čeká.
Nyní potřebujeme něco, co by deaktivovalo tlačítko a co by hlídalo, zda žárovka svítí po jejím rozbití, nebo ne.Teď se přesuneme někde do rohu mapy, tj. někde úplně na okraj editovatelnosti - asi zde:


Tak daleko proto, aby nebyly slyšet rány, které se odtud budou ozývat (v mé příkladové mapě je to blízko, abyste to mohli vidět).
Následující entity a položení objektů vám nejlépe vysvětlí tento obrázek:


Tento zneškodní tlačítko a funguje tak, že env_explosion (1) po každém přepnutí vypínače vybouchne a tato exploze aktivuje button_target (5) a po jeho aktivaci, aktivuje button_target "svetlo" a žárovka se rozsvíti, pokud nesvítila nebo zhasne, pokud svítila. Toto bychom nemohli dát do kolonky Target v tlačítku, protože bychom nijak nezajistili, abychom, jak už žárovka bude setřelena, nemohli stále rozsvicovat, nebo zhasínat.
Svělo se rozsvítí nebo zhasne, jakmile aktivujeme env_explosion (1), která aktivuje button_target (5), jenž hned aktivuje světlo. Celé je to však v tom, že jestliže bychom dali mezi env_explosion (1) a button target (5) nějakou stěnu, jenž by zabránila proniknutí ohně, entita button_target se neaktivuje a tak můžeme tlačítkem mačkat jak chceme, entita env_explosion bude vybuchovat, ale její oheň přes tuto stěnu nepronikne, netargetne button_target a ten netargetne světlo.Touto stěnou je func_train (2), který startuje na path_corner (3). Na path_corner (4) se přesune, jakmile rozbijeme žárovku. Tím se postaví mezi env_explosion a button_target.
Její jméno musí být stejné jako je v Target on break v entite func_breakable, v žárovce.



Tento obrázek zajistí, aby žárovka po sestřelení zhasnula. Funguje tak, že v této poloze, jak je na obrázku, světlo svítí a tak potřebuje zhasnout. To se stane tak, že entita env_explosion (1) po rozbití žárovky vybouchne a rozbije tak entitu func_breakable (5) ( při button_target mi to nechce fungovat, nevíte někdo proč ? ), kde je v kolonce Target on break jméno světla, čímž tedy po rozbití func_breakable (5) světlo zhasne.Pokud je to naopak - světlo nesvíti, je func_train (2) na path_corner (4) a oheň z env_explosion nerozbije func_breakable, ten tedy netargetne svělo, takže zůstane zhasnuté.

Závěr
Toto řešení je, jak už jsem řekl, netradiční a má nevýhodu v tom, že je zdlouhavé a je pouze pro jednu žárovku, takže pokud byste jich chtěli více, museli byste toto všechno opakovat a to ještě téměř všechno s jinými jmény. Proto ho doporučuji spíše do místností, kde je jedna lampa na stropě. Doufám, že to lze udělat i jinak a mnohem jednodušeji, ale na to já jsem nepřišel. Podobným způsobem se toto dá použít při přivolávaní výtahu atd.
Nezapomeňte, že exploze musí být dostatečně silná, aby zasáhla button_target, nebo func_breakable. Taky jednotlivé moduly ( to, co vyřadí tlačítko a to, co zajistí zhasnutí po rozbití ) musí být od sebe dotatečně daleko, aby exploze v prvním neaktivovala něco v druhém.

Příklady

Příkladová mapa: svetlo.zip
Na tuto příkladovou mapu reagoval Přema a poslal verzi svou.
Příkladová mapa od Přemy je zarofka.zip.
Přemova verze však obsahuje podstatnou chybu.

Created by Cr.

 DISKUZE -- 5

Nadpis: 
Přezdívka/nick: 
Text příspěvku: 
(pouze holý text)
Napiš cifrou deset:
 25.03.2009 14:31:03 -- Cr-anon:  ...  
Ten tutoriál jsem dělal jako hodně mladý průzkumník. Člověku v tom věku nedochází ještě, že by mohlo existovat mnohem snažší řešení a že možná nějaká jiná kolonka mezi těmi všemi by mohla dělat něco podobného mnohem jednodušeji :-).
Vím o tom, že je to hodně extravagantní řešení a teoreticky by se daly exploze možná nahradit samozřejmě spíš lasery :-P. A nebo něčím pro tento účel, věru, stvořeným.
Nicméně viděl jsem chlápka, co v Excelu naprogramoval (přepsal) nějaký starší Intelácký procesor, protože se nudil v práci a nic jiného mu mít k dispozici znemožnili. Jedna buňka byla jeden tranzistor, na začátku vstupy, na konci výstupy, a člověk si pak mohl klidně číst jednotlivé bity na tranzistorech kdekoliv uprostřed sešitu. Docela dobrá prácička. Teoreticky, takovými krkolomnými řešeními jako tato žárovka, byste mohli taky takový procesor vytvořit v Half-life :-). 
 20.10.2007 16:43:46 -- WampYr-anon:  jednodusi zpusob  
je i jednodusi zpusob, jak to vyresit. Vytvorte zarovku vcetne svetla (do outputu u zarovky dejte zhasnuti svetla a zamknuti vypinace, ktery teprve vytvorite), a tlacitko, taky podle navodu. tohle si zkopirujte, kolik zarovek chcete mit (nezapomente prejmenovat aby vsechny objekty mely jedinecne jmeno)a tyto spinace posunte nekam kde nebudou videt (staci doprostred steny...). Pak vytvorte jeste jeden vypinac, ktery pri stisknuti stikne vypinace nalinkovane na svetla. A hotovo. Pri stisku tlacitka se stiknou vsechna tlacitka k zarovkam a zapnou/vypnou svetla, ale kdyz svetlo znicite, vypinac pro konkretni svetlo se zamkne a hlavni vypinac ho uz nebude moc zapnout. Prijde mi to rozhodne jednodusi a rychlejsi nez v navodu popisovana metoda, ackoliv pravdepodobne to jde vsechno nacpat do jedineho vypinace. Ale s hammer editorem delam teprve par hodin takze jeste moc nevim, jak co udelat. 
 13.01.2007 19:09:44 -- Manas-anon:  zdlhave  
Velmi pekny tutorial ale myslim ze dost zdlhavy,pomenovat svetlo(light) napr do name napiseme light1,a ziarovu nastavime na func_breakable a do target dame meno svetla cize light1 po rozbyti svetlo zhasne...
 
 11.01.2006 13:24:49 -- mikau-anon:  icq  
kdo mapuje ozvěte se na 237922944 (icq)

heslo VHE 
 30.12.2005 14:39:16 -- Viking-anon:  HAHA  
No neviem ale nikomu to nenapadlo urobit pommocou changetargetov a relayov? :) 
 Poslední vydané tutorialy
02.03.2016  Alien:Isolation  od: kuma
02.01.2016  Shadow Warrior  od: p2k
18.12.2015  Obecné tém  od: kuma
10.12.2015  Alien:Isolation  od: p2k
27.11.2015  CHSR  od: Duke

 Přehled návodů pref. n/a

© Petr Skovajsa :: 2000-2018. Všechna práva rezervována.
Přebírání, přepisování nebo kopírování jakýchkoliv materiálů z tohoto webu je povoleno pouze s písemným svolením autora daného obsahu nebo šéfredaktora www.ceskemody.cz.

| Vygenerováno za 0.02086 sec. |