Autor: Ariagil
Název: WE - Custom Spells

Každý slušný mapmaker ve svých mapách, popřípadě kampaních, vytvoří nějaké vlastní schopnosti. Jestli jste hráli např. mojí mapu Frost to the Ocean, přesně o takových schopnostech mluvím. Pokud se chcete naučit vytvářet takové schopnosti, zdokonalit se nebo zjistit nějakou zajímavou vychytávku tento návod by vám měl pomoct.
Schopnost upravená v editoru objektů
1) Otevřete editor objektů a záložku schopnosti
2) Klikněte pravým tlačítkem (např. na složku Vlastní schopnosti, ale je to jedno) a vyberte Nová Vlastní Schopnost. Vyberte schopnost kterou budete upravovat a dejte jí jméno.
3) Klikněte na svou novou schopnost a upravte jí popis:
Nástrojový tip - učení -Popis, který se zobrazí v nabídce učení schopností - je dobré popsat účinky všech úrovní schopnosti
Nástrojový tip - normální -To je jméno schopnosti i s úrovní - Např. Plamenná střela - 1. úroveň. Nenechte se zmást když uvidíte např. |cffffcc00P|lamenná střela - [|cffffcc002. úroveň|r]. Jsou to jen barvy textu, které pokud chcete profesionální efekt můžete také použít - zvýraznění klávesové zkratky a úrovně žlutou barvou (viz. návod WE - Farebné texty)
Nástrojový tip - normální - rozšířený -Popis schopnosti přímo ve výběru schopností, když už máte schopnost naučenou. Pro každou úroveň samozřejmě jiný. Např. Sešle ohnivou vlnu energie která zraní za 250 životů.
4) Upravte ikonky, grafický efekt -Nejdřív například ikonky:
Ikona - normální -Ta ikonka, kterou uvidíte když už máte schopnost naučenou.
Ikona - vypnout -Ikona vypnutí schopností. Např. jako má schopnost Obětování
Ikona - výzkum -Ikona ve výběru učení schopností
*poznámka - Můžete použít stažené ikonky např. z Hiveworkshop - viz. WE - Importy
Dále grafický efekt:
Grafika - kouzelník -Efekt který se vytvoří kolem sesílající jednotky
Grafika - Grafická střela -Efekt střely. Jako např. u Ohnivého blesku.
Grafika - Efekty blesů (jen překlep ve WE - Efekty Blesků) -Efekt blesku spojující sesilatele a cíl - Např. Spal manu. Pokud je cílů více můžete vybrat více blesků jako např. u Řetězového blesku
Grafika - Cíl -Efekt, který se zobrazí na cíli.
Grafika - Rychlost střely -Rychlost případné grafické střely
*poznámka - Ještě najdete Grafika - Efekt...sám přesně nevím k čemu je, takže ho nebudu popisovat, vůbec není důležitý.
**poznámka - Za zmínku stojí Grafika - 1. místo připojení -To je poloha na jednotce kde se efekt zobrazí (viz. WE - Attachmenty)
5) Upravte data schopnosti:
Statistika - Úrovně -počet úrovní schopnosti. Např. Rexxarovi schopnosti mají 4 úrovně
Statistika - Požadovaná úroveň -Požadovaná úroveň pro naučení kouzla - Např. Ultimate mají úroveň 6
Statistika - Podmínka přeskakování -Kolik úrovní se musí přeskočit pro naučení další úrovně. Pokud necháte 0 automaticky se hodnota převede na tu z Konstant hratelnosti - 2.
Statistika - Schopnost Hrdiny -Jestli je schopnost pro hrdinu nebo ne.
Statistika - Schopnost předmětu -Jestli je schopnost pro předmět.
6) Upravte účinky schopnosti:
-Vypíšu jen několik nejdůležitejších...na další určitě přijdete nebo nebudou důležité
Úroveň X - Data - Zranění -Instantní zranění jako např. Ohnivý blesk
... - Statistika - Cena -Cena v maně
... - Statistika - Rozsah kouzla -Vzdálenost na kterou lze schopnost seslat
... - Statistika - Rozsah účinnosti -Rozsah u plošných kouzel - Např. Blizzard, Plamenný úder atd.
... - Statistika - Trvání -Většinou znamená dobu omráčení jako např. Ohnivý blesk nebo trvání např. neviditelnosti - Chůze vánku
... - Statistika - Doba mezi výstřely -Cooldown, doba než lze schopnost znovu seslat
... - Statistika - Doba vyvolání -TO je snad jasné, moc se nepoužívá, ale můžete najít např. u Plamenného úderu
... - Statistika - Počet vyvolaných -Počet vyvolaných jednotek
... - Statistika - Vyvolaný typ jednotky -To je snad samo o sobě jasné, jde ale použít i víc typů - Viz. Temný portál
*poznámka - X je úroveň. Pro každou z úrovní platí jiná hodnota - Např. Zranění.
Úroveň 1 - Data - Zranění 200
Úroveň 2 - Data - Zranění 400
Úroveň 3 - Data - Zranění 600
7) Jestli chcete můžete upravit i Zaklínadla, Efekty
Statistika - Efekty -Např. grafický typ střely u Blizzardu nebo Hvězdopádu
Statistika - Zaklínadla -To může být efekt na cíli - ikonka a popis stavu dole uprostřed - Je tam napsáno Stav: ...A jsou tam ikonky např. Zpomal, Prokletí, Omlazení atd.
-Otevřete záložku Zaklínadla/Efekty, udělejte si z nějakého Efektu nebo Zaklínadla vlastní a upravte ho. Většinou jde jen o efekt, popřípadě u Zaklínadel o ikonku a popis.
Např. Pokud chcete upravit Blizzard aby místo ledových úlomků padali ohnivé koule, vytvořte si Efekt pro toto kouzlo z původního Blizzardu a vyměňte efekt za ohnivou kouli. Také můžete jen použít efekt který už existuje. U mého příkladu s Blizzardem lze použít efekt Pekelný déšť (efekt)
Pochopili jste? Vypadá to možná složitě, ale jenom jsme vypsal téměř všechny možnosti upravení schopnosti v editoru objektů. Sami to zkuste, je to jednoduché a může to vypadat velmi dobře.
Schopnost upravená v Editoru spínačů
1) Vytvořte si vlastní schopnost v Editoru objektů
2)Otevřete si Editor spínačů a vytvořte nový spínač
3) Můžete udělat několik zajímavých věcí - napíšu Událost, Podmínku, A různé použitelné Činnosti
Události
-Jednotka - Generic Unit event -- Unit (Schopnost začíná účinkovat)
Podmínky
-Ability Comparsion -- (Ability being cast) (Rovná se) (XVaše schopnostX)
Tohle udělejte u všech Schopností ^
Činnosti (které můžete použít)
-Jednotka - Damage Target -Zraní cíl. Lze zajímavě použít tak, že zranění uděláte např. 200-300. A to tak, že místo hodnoty nastavíte Matematický - Random Number -- Random Number between X and X
-Jednotka - Damage Area -Zraníte všechny jednotky v určité oblasti.
Lze nejlépe použít tímto způsobem:
a)Vytvořte si proměnnou typu Bod (Např. Ohniva_exploze_cil)
b)Na začátek spínače dejte Set Variable -- Set (Ohniva_explozr_cil) (Se rovná) (Reakce na Události - Target of Ability being cast)
c)Damage Area -- A nastavte Radius na poloměr kruhu (např. 300) a jako bod tam dejte Vaší proměnnou. Činnost zraní vše do vzdálenosti např. 300 od středu oblasti, kam jste kouzlo seslali.
-Jednotka - Pause/Unpause Unit -- Jednotku nastavte jako Target of ability being cast (nebo jí označte jako proměnnou a do činnosti dosaďte rovnou proměnnou). Dejte Wait (a čas po který má být jednotka "zmrazena"). A potom Znovu to samé jen dejte místo Pozastaveno Nepozastaveno
-Zvláštní efekt -- Lze použít Zvláštní efekt - Special efekt on unit např. při zmíněném zmrazení. Vytvořte si proměnnou typu zvláštní efekt. Hned po činnosti která pozastaví vytvořte tento efekt (Např. efekt u frost novy...vytvoří se kus ledu kolem jednotky). Označte si ho jako vaši proměnnou (Set Variable -- Set (Vaše proměnná pro efekt) se rovná (Last created effect)). A po "rozmrazení" jej odstraňte.
-Jednotka - Set Life/Mana -- Použitelné pro léčení. Set Life (to value) -- Set live of (Vaše jednotka) to ((live of (vaše jendotka))+(*kolik chcete léčit...např. 100)) Stejně tak lze použít i pro obnovu many.
-Jednotka - Create Unit Facing Angle -- Lze také použít. Vytvoří jednotku na určitém místě.
-Hrdina - Modify Hero Atributes -- Např. Modify Síla of (Casting Unit): Přidat 3. Potom dáte wait např. 20 vteřin. A Modify síla od (Casting Unit): Odečíst 3. Takže na 20 vteřin zvýšíte sílu hrdiny který kouzlo seslal o 3. Také se zde hodí efekt, který po 20 vteřinách odstraníte.
-Blesk - Create lightning efekt -- Vytvoří blesk mezi dvěma body. Pro použítí blesku si vždy udělejte proměnnou typu blesk. Vytvořte blesk mezi casterem a cílem (ať už je cíl jednotka nebo oblast). Označte si vaší proměnnou (Set Vaše proměnná se rovná Last created Lightning Efekt).Dejte Wait (třeba 0.5 vteřiny). A Destroy lightning efekt. Takhle vám probleskne výboj mezi casterem a cílem. Dále můžete připojit damage samozřejmě.
Složitější trigger spelly - pro pokročilé
1) Vytvořte si schopnost v editoru objektů a vynulujte jí účinky
2) Vytvořte si nový
3) A teď lze dělat x věcí
Tady jsou zajímavé příklady:
- Efekt - Jednotka -Jako efekt lze použít jednotku jíž změníte model dáte jí locust, odstraníte stín atd. Vytvořte si např. na začátku kouzla efekt na hrdinovi a pochvíli efekt na cíli. A barvou a měřítkem lze změnit efekty k nepoznání.
- Kruhy -Další fáze tvoření efektů - vytvořte kolem hrdiny (nebo cíle) kruh z efektů, může to vypadat skvěle. (popřípadě můžete vytvořit i pentagram, trojúhelník...) Viz. WE - Efekty pro pokročilé
- Vztahy -Můžete se vytvořit kouzlo které:
-Zraní za počet jednotek many cíle - Damage target - Cause Caster to Damage Target, dealing (Mana of (Target)) *To Mana of target najdete jako Jednotka - Property a tam si nastavte Mana of (Target). Samozřejmě to může být i obráceně - čím více many má ten, kdo kouzlo sesílá, tím víc zraní.
-Zraní tím víc čim vyšší je úroveň hrdiny, který kouzlo sesílá -Většinou to dělám tak, že na začátek spínače dám If, Then, Else, do If dám Úroveň hrdiny se rovná 1, do Then dám účinky kouzla a do Else to celé zkopíruju jenom dám Úroveň hrdiny se rovná 2 a změním účinky popřípadě efekt. Někdy je ale jednodušší udělat např. Damage Target - Cause Caster to Damage Target, dealing (100x(Level of (Casting Unit))). Takže např. na sedmé úrovni kouzlo způsobí damage 700.
-Zraní v závislosti na vzdálenost. Např. na vzdálenost od Castera (toho, který sesílá). Cause Caster to Damage Target, dealing ((500)-((Distance between Cater and Target)/(5)). Takže zraní za pětset mínus vzdálenost vydělěná pěti. (Např. na vzdálenost 500 způsobí zranění 400 životů). Také upravit jako např. vzdálenost od místa seslání, jen změníte na (Distance Between Target of ability being cast and Target).
-Hromadné zranění -Jak ho vylepšit a obejít některé bugy
-Hromadné zranění lze udělat jako Damage Area, ale existuje další, velmi užitečný způsob:
Pick Every Unit in (tady může být např. In range - to je nejpoužitelnější)
->Damage Target -- Cause Caster to Damage Picked Unit, dealing 500.
Zvláštní efekt --Special effect on Unit - A nastavíte zase Picked Unit.
V tomto způsobu můžete použít efekt na každou jednotku zvlášť a také můžete použít vztahy (např. zranění podle vzdálenosti), protože zraňujete vlastně každou jednotku zvlášť.
-Teď jeden bug. Když se kouzla sesílá tak, že zraní i Castera (např. když máte Pick every unit in range 500 of Caster - Caster tam bude taky spadat, takže i jeho to zraní...), nemělo by uškodit (zvlášť ne v singleplayeru), když na ten okamžik učiníte Catera nesmrtleného - Make Unit Invulnerable - a potom to hned vrátíte - Make Unit Vulnerable. Lze to udělat i tak že uděláte nezranitelné např. všechny jednotky jednoho hráče. Viz. moje kouzlo Maelstrom Requiem.
-Náhodné vygenerování bodu -Např. pro ohnivý déšť
Vytvořte si proměnnou pro bod (např. TargetPoint)
A potom dejte set TargetPoint Se Rovná Random point in (Tady můžete použít právě range - kolem bodu seslání případně kolem Castera)
A potom zraňte všechny kolem bodu, dejte tam efekt atd.
Můžete to dát jako smyčku...For each Integer A from 1 to 20....a dáte tam za to wait 0.02 seconds. Nebo, pokud chcete menší časový rozdíl než 0.2 vteřiny udělejte to jako periodic event...Viz. Knockback, tam máte jak udělat z Periodic eventu vlastní smyčku.
-Náhodné vygenerování řetězce -Zní to děsivě ale je to vlastně Řetězový blesk který se odráží od země - vytvoří se klikatá čára s několika "ohyby" nebo "klouby" chceteli. Jestli jste hráli Frost to the Ocean, určitě si pamatujete schopnost Maelstrom Requiem...
Tak a takhle nějak to uděláte:
Vytvoříte si proměnné pro:
Všechny "klouby"(Typ Point), všechny bleky které je budo spojovat(Typ Lightning effect), Všechny efekty, které budou v "kloubech" (Typ Jednotka) a bod seslání (Target of ability being cast) - ten si na začátku nastavte - Set Variable.
*Samozřejmě i Caster
První bod bude TargetPoint(Místo seslání)
-Potom udělejte mezi tímto místem a Caterem blesk a označte ho jako proměnnou. Dále vytvořte na Target point Jednotku - efekt a označte jí jako proměnnou.
Potom dejte wait 0.00 seconds - nejmenší hodnota je stejně 0.2, je jedno jestli napíšte Wait 0.20 nebo 0.00.
Druhý bod vygenerujete takto:
-Set PivotPoint1 = TargetPoint offset by 300 towards ((Angle from (Caster) to Target point)+(Random number between (50) and (-50)))
-Tímto nastavíte další bod 300 od místa seslání, ale ne přímo za ním. Je tam -50 až 50. Takže bude mírně náhodně odkloněný. Při každém vytvoření kloubu zraňte oblast kolem něj - Pick every Unit in (250 of PivotPoint1).
Opět vytvořte blesk, efekt...a takto pokračujte dál, podle toho kolik bodů budete mít.
Na konci nezapomeňte odstranit blesky.
Zde je dobré použít "chvilkovou nesmrtelnost" na odtranění zranění Castera nebo vlastních jednotek.
-Knockback -- Velmi zajímavé a působivé. Myslím že nějaké takové kouzlo je i v Dotě.
-Nejdřív si označte proměnné Caster a Target ve spínači - Unit schopnost začíná účinkovat. Potom zapněte další spínač - a to Periodic event (nejlépe Every 0.01 seconds - to je nejplynulejší)
A ten bude vypadat asi takto.
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Jestliže - podmínky
Knockback se rovná 100
Potom - akce
Spínač - Turn off (This trigger)
Set Knockback = 0
Jinak - akce
Set Knockback = (Knockback + 1)
Jednotka - Move Target instantly to ((Position of Target) offset by (3) towards (Angle from (Position of Caster) to Target) degrees)
-Takže, Knockback je další proměnná, která nám "zapíše" kolikrát se už tento spínač spustil. Pokaždé se přičte +1 (Set Knockback = (Knockback + 1)). Když bude Knockback 100 - spínač byl spuštěn stokrát - periodic event se vypne - přeruší a Knockback se nastaví zpět na 0, takže další seslání kouzla bude probíhat stejně. Pokud budete mít Every 0.01 seconds tento "posun" bude trvat jednu vteřinu (100 x 0.01 vteřiny :) ). Teď samotný posun. Je to jednoduché, prostě pokaždé posunete o nějakou vzdálenost. Úhel nastavíme jako úhel mezi casterem a targetem (Matematický - Angle between points). V této situaci je vzdálenost 3, každou setinu vteřiny a to stokrát - knockback bude trvat vteřinu a jednotka se posune o 300. To už si můžete upravit jak chcete :)
-Chápete? Tak něco složitejšího. Můžete vytvořit do kouzla efekt, který budete posunovat. Např. vytvoří dvě ohnivé koule vedle Castera a každá se bude posunovat k místu seslání a potom explodují - velmi zajímavý efekt.
Je to to samé, jen si v úvodním spínači vytvořte další proměnnou pro efekt (Proměnná typu Jednotka jen použijete upravenou jednotku) a potom ještě - Distance(Typu Real) - a to jako vzdálenost mezi pozicí jednotky a cílem.
(Set Distance Se Rovná Distance between (pozition of (Efekt) and poziton of (Target of ability being cast)))
Ještě posun bude vypadat trochu jinak.
Jednotka - Move Efekt instantly to ((Position of Target) offset by (Distance/100) towards (Angle from (Position of Efekt) to Target of ability being cast) degrees)
Posunutí je o tu vzdálenost vydělenou stem. To je přímo pro spínač kde to bude stokrát. Pokud se váš spínač bude opakovat např. 50krát dejte Distance/50. Takže Vzálenost vydělená počtem posunutí. A ten úhel je vám snad jasný ne?
Nezapomeňte efekty zničit. Např. do základního spínače dejte hned po zapnutí Periodic Eventu wait 1 second a potom dejte kill Unit.
To samé jde udělat jak jsem říkal i s více efekty. Jen si udělejte dvě Distance(pokud nebudou stejně daleko od cíle), a v periodic eventu posuňte obě jednotky.
Všechny tyto způsoby lze kombinovat, např. udělat Knockback, kolem Castera přitom hořící pentagram, a kolem Castera náhodně spadnne několik meteoritů...kouzlo udělejte pěkný popis, několik úrovní, Stáhněte si ikonku....a bude to dokonalé...:)
Doufám, že se vám bude tento návod k něčemu hodit, že se někdo něco přiučil.
...mimochodem poklona před těmi, kteří to dočetli celé až sem. :)
Už se těším na vaše vlastní kouzla...
~Ariagil~
Edit by : e1f
e1f@warcraft3.cz
Editor neručí a nezodpovídá za kvalitu překladu