lord Arvenger píše:
Se scriptováním scenárií jsem se zatím moc nesetkal, ale jak vás tu tak poslouchám . . . .
Je to přesně to, čeho jsem se obával: programování.
Mapky s pokročilejšími funckiami alebo s priehľadnejším kódom/triggermi bez zložitejších nástrojov nespravíš.
Keď sa pozrieš na niektoré triggery s W3, napr:
Kód:
HumanBaseMiddleTL
Události
Jednotka - A unit enters MiddleTL <gen>
Podmínky
(Owner of (Triggering unit)) Rovná se Hráč 1 (Červená)
Činnosti
Jednotka - Order (Triggering unit) to Přesun s útokem na (Center of MiddleBL <gen>)
(S prekladom: ak jednotka vstúpi do zóny MiddleTL a tá jednotka patrí červenému, tak spínajúcej jednotke (tá ktorá vstúpila do zóny) sa nakáže attack move na zónu MiddleBL)
...tak sa až tak moc od SC neodlišujú. Trochu iná syntax ale v princípe to isté.
Ale vďaka zložitejším príkazom, ktoré napr. používa tento trigger:
Kód:
HeroPick
Události
Jednotka - A unit Prodej jednotky
Podmínky
((Sold unit) is Hrdina) Rovná se TRUE
Činnosti
-------- Vybere sa každý hráč a vybraný hrdina sa preňho nastaví ako nedostupný --------
Skupina hráče - Pick every player in (All players) and do (Actions)
Smyčka - akce
Hráč - Make (Unit-type of (Sold unit)) Nedostupné for training/construction by (Picked player)
Hra - Display to (All players) the text: ((Player |cffff0000 + ((Name of (Owner of (Sold unit))) + |r )) + ((select: |cff0099ff + (Name of (Sold unit))) + |r))
Výběr - Select (Sold unit) for (Owner of (Sold unit))
-------- Nastavenie nedostupnosti ostatných hrdinov --------
Hráč - Make Cutter Nedostupné for training/construction by (Owner of (Sold unit))
Hráč - Make TestHero Nedostupné for training/construction by (Owner of (Sold unit))
// tu by ešte nasledovali ďaľsie jednotky (hrdinovia) ktorí by sa dali ako nedostupný
(S prekladom:
Ak sa predá jednotka a tá jednotka je hrdina,
vyberú sa hráči a postupne po jednom sa pre nich nastaví predaná jednotka ako nedostupná na nákup - takže nikto iný si ju nebude môcť kúpiť.
Potom sa zobrazí každému hráčovi text (preložený do cze): Hráč (meno hráča ktorý vlastní predanú jednotku) si vybral: (meno predanej jednotky).
Ďalej sa označí hráčovi ktorý ju kúpil a v posledných riadkoch sa nastavia určité jednotky pre tohto hráča nedostupné na nákup (v tomto príapde všetci hrdinovia, aby si mohol kúpiť len jedného))
...môžeš naprogramovať veci o dosť elegantnejšie. V SC by sa toto muselo robiť samostatným scriptom pre každého hráča (čo keby si to ešte musel upravovať, brr), zatiaľ čo tu postačí jeden trigger.
Na druhej strane, nič ti vo W3 editore nebráni písať mapky podobným spôsobom ako v SC editore a tieto zložitejšie funkcie obísť:
Kód:
Script pre jedného červeného hráča (len schematicky):
Události
Predanie jednotky
Podmínky
Vlastník predanej jednotky = červený
Činnosti
Nastav jednotku pre hráča Modrý nedostupnú
// toto toľkokrát koľko je hráčov v hre
Napis text: hrac cerveny si vybral jednotku NameOfSoldUnit
// toto si neviem predstaviť že by sa robilo pre každú jednotku zvlášť, takže sa použije názov predanej jednotky
Nastav jednotku Jednotka1 nedostupnu pre hraca Červený
Nastav jednotku Jednotka2...
// tu zase všetky jednotky ktoré sa majú vyhodiť z kupovania
...a v princípe to zostane určite možné aj v SC2 editore.
A nakoniec, scriptovanie by bolo pre nás, ktorím niekedy ani tieto možnosti triggerov nestačia, aby sme mohli naprogramovať presne to, čo chceme a nemuseli sa zdržiavať klikačkou