Mafia 2

World Editor ~ WE - Rozprava o M


Autor: rednek
Název: WE - Rozprava o MUI, ale teraz bez srandy

Jeden krátky spôsob ako spraviť z klasického triggeru "MUI trigger"
A to taký, čo za niečo aj stojí.

Kde bolo tam bolo, bol raz istý nemenovaný Restor, ktorý raz v jeden teplý letný deň robil na fóre tejto sajty strašný penis, aký je on veľký Gosu, ako sa vyzná lepšie ako ja a aká som zaňho "lacná náhrada"...

No a potom zabil takúto hovadinu:
http://warcraft3.cz/index.php?page=12⊂=4466&table=articles

Pôvodne som na to nechcel reagovať ako na to reagujem, ale potom mi došlo, že to ešte niekto urobí ako to on popísal, no a to by ma svedomie bolelo, lebo by som vedel, že som tomu mohol zabrániť. A keďže je moja svätá povinnosť nenechať vás zviesť sa do tmy leakujúcich šmyčiek, tu máte ozajstný tutoriál na MUI...

Ok, úvod a prvá polovica jeho tutoriálu boli dobré, a keďže dobré boli, neni treba ich písať znova. Budem ho teda citovať ak sa neurazí, a ak sa urazí, tak niekoho poprosím, aby to deletol, a ja tam hodím screenshot textu z jeho tutoriálu, aby sa copyrightom neoháňal.

Tí, čo už jeho návod čítali, môžu nasledujúcu časť preskočiť.


-------------------------------
---------!!!CITÁT!!!-----------
-------------------------------

"Čo je to MUI? Nie, nie je to žiadny ďalší programovací "jazyk", ako sa mi jedno decko z tejto stránky snažilo nakecať, a ešte kecalo, že mui s editorom nemá nič spoločné, a že som vlastne noob, keď sa tým zaoberám, ale pravda je taká, že problematika MUI je dosť podstatná v multiplayerových mapách. Presný význam tejto skratky v angličtine neviem (Multiple Unit Instancleable - pozn. red), ale značí to niečo ako Možnosť viacnásobného používania triggeru v jeden okamih.

Tažko sa to v teórii vysvetľuje, zoberme si krátky príklad, máme trigger

E:unit - starts the effect of an ability
C:ability being cast = Tralala
A:set Caster = Casting unit
set Target = Postion of Caster
wait 5 sec
create special efect XY above Target

Tí chytrejší pochopili, že Caster a Target sú premenné. Fajn, všetko funguje, do tej doby kým v tom intervale tých 5 sekúnd nejaká iná jednotka nezačaruje rovnaký spell, vtedy sa logicky stane to že premenné Caster a Target sa prepíšu na tú druhú dvojicu jednotiek, a po uplynutí pôvodných 5 sec. vzniknú špecial efekty u druhej dvojice, a po tých ďalších 5 sec, znova u tej druhej, skrátka, všetko po waite by sa týkalo poslednej jednotky, ktorá by naštartovala tento trigger."

-------------------------------
-----!!!KONIEC CITÁTU!!!-------
-------------------------------

Allright. Teraz by nasledoval Restorov spôsob, namiesto toho hneď popíšem, v čom je ten môj lepší:

-Zbitočne nezaťažuje procesor
-Netreba preň žiadne zbitočné dummy unity, ktoré by vám najskôr aj tak podrbali Unit Enters Region triggery, a ak aj nie, tak by ste mali robotu podmienkovať ich.
-Odohráva sa len v jednom spínači
A teda, celkovo je jednoduchší.

Na druhú stranu, používa wait, ktorý nieje úplne najpresnejší a neni to ani najlepšia vec čo používať máte, ale pri singleplayer mapách to aj tak neurobí rozdiel, a pri multiplayer si to pri tom delayi nikto nevšimne.
A ak vás aj tak mrle žerú, tak tam dajte tú Dummy unitu jak to Prestor robí, a škrtnite posledné dva body z "Prečo je môj tut lepší", ten najpodstatnejší bod tam stále zostane.

Ok, takže na začiatok vytvoríme tieto 4 premenné:

Caster - typ unit, a premenná bude array
Target - typ unit, a premenná bude array
NajnizCislo - typ integer (pociatocna hodnota 0)
NajvizCislo - typ integer (pociatocna hodnota 0)

A urobíme trigger:

Events
Unit - A unit Begins casting an ability
Conditions
Actions
Set NajvisCislo = (NajvisCislo + 1)
Set Caster[NajvisCislo] = (Casting unit)
Set Target[NajvisCislo] = (Position of Caster[NajvisCislo])
Wait 5.00 seconds
Set NajnizCislo = (NajnizCislo + 1)
Special Effect - Create a special effect at Target[NajnizCislo] using XY
Special Effect - Destroy (Last created special effect)

OK, takže to je celé. A čo to robí? Namiesto zbitočne dlhých smyčiek to akcie vykoná len raz. A to je podstatné, ak si nechcete zoškvariť procesor.
Zo začiatku zvýši premennú NajvisCislo o 1, a potom to premennými Caster a Target označí jednotku čo kúzli a povedzme miesto, na ktorom stojí. Tieto do arrayu dostanú NajvisCislo premennú. Po piatich sekundách zvýši NajnizCislo premennú o jeden bod, a teda bude na takej hodnote, na akej bolo NajvisCislo pred 5mi sekundami. No a potom už môžete s Casterom alebo Targetom robiť čokoľvek ste v pláne mali, pretože NajvizCislo a NajnizCislo sú predsa len čísla, a čísla sú číslami, aj keď premenné sú rozdielne.

BTW, max číslo arrayu 8192 stále platí, fixneme to, ako už Prestor spomínal, pomocou:
If NajvisCislo = 8192, then Set NajvisCislo = 1, Else nothing

PS: Neopovážte sa mi niekto tvrdiť, že hentoto je flame. Ja len fixujem Prestorove chyby a zachraňujem vás, aby ste nerobili rovnaké.
-Peace

Hodnocení
(počet hlasů: 16)
hrozné
výborné

Hodnotit mohou jen registrovaní uživatelé. > Zaregistrovat <




Nový komentář
AAAnděl d:)9.2.2011 20:51:26
No MUI vypadá zajímavě... Co nejdřív se na to mrknu... :)

Ariagil 9.12.2010 18:35:58
Pokud to dobře chápu...podle tohodle spínače jde MUI použít jen tak, že pro každý "okamžik" (úsek spínače nerozdělený činností wait)musí být jedná proměnná pro Array...
--->Např. set array1 +1, sešlu kouzlo na Oblast Array1,wait 1 secoond, set array2 +1, Damage area - Oblast Array2, wait 3 seconds, set Array3 +1, Zvláštní efekt in Oblast Array3
<---Jde použít jinýzpůsob pro MUI např. právě pro kouzlo jehož součástí je Periodic Event?

Ariagil 8.12.2010 21:30:32
No mám tu jeden problém...udělal sem jeden spell...Ale...pochvíli přemejšlení sem zjistil že jako MUI nefunguje...Protože tady sou jenom dva okamžiky...a na ty se přesně určí Array takže to fakt funguje...jenomže co když použiju Periodic event...řekněme schopnost známou jako Knoback nebo něco v tom smyslu?
Udělal jsem kouzlo Focused Fire...vytvoří tři bludičky(efekty) a ty poletí do bodu seslání kouzla...potom jakmile se spojí expoldují a zraní oblast za počet životů podle úrovně. To funguje...jenomže jak na to aby se z toho udělalo MUI..?

Ariagil 7.12.2010 18:40:36
Fakt skvělej návod...Restorův možná taky fungoval (zas tak extra se v tom nevyznám...;D)...ale tenhle mi přijde vážně elegantnější...Dummy je zbytečnost a ten cyklus Rednek taky zjednodušil...zároveň napsal návod díky kterýmu sem MUI okamžitě pochopil!
Od dnešního odpoledne budou moje spelly MUI!

rednek > Restor19.9.2010 17:38:56
No, teraz pozeram, bezdak ma pravdu vlastne, tam som sa sekol :S

Diky za upozornenie!

Emental 19.7.2010 15:15:39
nejde o bod na mape (teda vlastne hej ale...) ide o poziciu JEDNOTKY, takze je to ok

bezdak 22.3.2010 18:26:47
jedna mala oprava, premenna target nie je typ unit ale point, kedze ide o bod na mape nie o jednotku. inac tutorial dobry

rednek > Restor12.2.2010 20:12:08
Neda sa to, ked vytvaras jednotku, musis ju odvodit od hera

rednek > Restor10.1.2010 18:48:24
Sakoo
Tak, a je vidiet, ze o danej veci vela nevies.
Keby sa dalo spoliehat na to, ze bezny user ma vesmirny comp, tak je programovanie vseobecne nejakych 15 krat lahsie. Nehovoriac o tom, ze vesmirny comp nema zatial nikto, a problemy s cpu stihanim mas s kazdou zlozitejsou mapou co robis aj dneska.



Nový komentář:


Jen pro zaregistrované uživatele.

Jméno:
Heslo:
Zapamatovat
Nová registrace
Zapomněli jste heslo?


Poslední příspěvky
Novinky24.12. 18:11
Rat Race21.04. 13:53
Ikonky v př...20.04. 18:55
Rat Race20.04. 15:01
Rat Race09.04. 11:01
Hlášení chyb30.03. 14:05
Rat Race18.03. 10:44
Rat Race17.03. 16:07
Návrat Plam...14.03. 20:54
Rat Race12.03. 12:07


Streamy
back2warcraftN/A
CechiN/A
Compmaster[nXh]N/A
ESL_WC3N/A
LawLietN/A
n3GRN/A
ReMinDN/A
TomikuSN/A
vOshN/A

Mafia 2



© Warcraft3.cz 2003-2017, všechna práva vyhrazena, ISSN 1214-892X
Názvy Warcraft, Reign of Chaos, The Frozen Throne a Battle.net jsou
registrovanými obchodními znaekami spoleenosti Activision Blizzard.