17. marca 2014

Co jsou to makra a proč je máme rádi


Makro je v podstatě textová definice posloupnosti akcí, funkcí nebo příkazů, které usnadňují určitou činnost. Skoro za každou akcí kterou ve hře provedete se skrývají makra či skripty.
Jejich nejpodstatnější výhodou je možnost spojit několik akcí do samostatného úkonu nebo např. i částečně rozhodovat jaká akce bude následovat s ohledem na okolnosti.

Nejlepší bude ukázat si pár nejjednodušších příkladu. Některá kratší makra můžeme psát přímo do příkazové řádky (chatu). Zkuste si nasednout na nějakého mounta a následně do chatu napište /dismount čímž z mounta sesednete. Zpětné lomítko před každým příkazem je velice důležité, podle toho totiž „hra“ pozná že se jedná o příkaz který se má vykonat.

Následující příkaz vám např. přehraje hlášku vhodnou ke spojení s “Death Gripem“


/script PlaySoundFile("Sound\\Creature\\HeadlessHorseman\\Horseman_Beckon_01.wav")

Protože takovéto makro nám moc užitečné není, přejdeme na další level. Dejme tomu že potřebujete od některého z prodejců ve hře nakoupit větší množství zboží. Většinou si vystačíte s podržením klávesy Shift a kliknutím na zboží, čímž se vám otevře nabídka s možností zadání požadovaného množství. Bohužel však stále existují zatvrzelí prodejci (např. Krystel z Shrine of Seven Stars), kteří tuto službu odmítají. Zde nám tedy pomůže následující makro. Dojděte k prodejci, nalistujte si stránku na které je zboží které potřebujete a napište:
/run BuyMerchantItem(číslo položky, množství)
Číslo položky je číselné označení políčka ve kterém leží to co chceme nakoupit. Čísluje se po řádcích od 1-10.
Samozřejmě pokud nemáme dostatek peněz nebo itemu za než dané NPC prodává tak k obchodu nedojde.
Dejme tomu že potřebujeme 6x Ethereal Shard. Ten leží na políčku číslo 9. Následující makro bude tedy znít:

/run BuyMerchantItem(9, 6)

Nyní se přesuneme ještě dál. Vzhledem k tomu že makra lze různě vrstvit a modifikovat pro každou vaši postavu, bude se vám nejspíš hodit možnost někam si je ukládat pro opakované použití. Tato možnost zde naštěstí je ( i když značně omezená). Jděte ve hře do hlavní nabídky a klikněte na položku Macros. Otevře se vám základní nabídka. Ta je rozdělená na dvě části. General Macros – zde uložená makra jsou společná pro všechny vaše postavy v rámci realmu. Druhá část Jméno Specifics Macros bude dostupná pouze pro aktuální postavu. Na následujícím videu si ukážeme tvorbu jednoduchého makra a jeho následné použití.



Příkaz “/tar Prowler” nám přesune do “targetu” první NPC s tímto názvem (stačí napsat třebas i jen část jména, např. “/tar Prow”. ) 


A příkaz /script SetRaidTargetIcon("target", 4) náš ”target” označí ikonkou pod indexem 4, což jsou tanga. Záměnou indexu za nulu bude aktuální značka odstraněna. Nezapomeňte však že po ůpravách je nutno kliknout na “Save“, jinak se změny neprojeví.
Ještě malá poznámka ohledně ikon. K dispozici máte všechny ikony použité ve hře. Pokud ovšem nechcete přiřazovat konkrétní ikonu, můžete nechat na makru aby měnilo ikonu na vašem panelu podle příkazu který bude následovat. Při volbě ikony zvolte ten červený otazník z prvního řádku.

Nyní nadešel čas podívat se některá omezení a pravidla které je potřeba dodržet. Tak především už víme že všechny příkazy musejí začínat lomítkem. Pokud potřebujete některou část dočasně deaktivovat nahraďte lomítko znakem # “mřížka“. Naleznete ho pod ASCII kódem 35.

#uspaný příkaz
/cast nějakékouzlo

Další omezení se týká délky makra. To je v základu omezeno na 255znaků. Částečně si můžeme dopomoci využíváním zkratek “/target“ → “/tar“ nebo “/modifier“ → “/mod“ apod.
Další dopomoc je použitím addonu na makra http://www.curse.com/addons/wow/macro-toolkit. Ten nám umožňuje psát makra až o délce 1024 znaků a navíc při zadáváni kontroluje syntaxi.


Kompletní seznam všech příkazů naleznete volně na netu a je zbytečné je zde uvádět. Nicméně, nečekejte plnou kontrolu na jádrem. Spousta vnitřních příkazů je záměrně nedostupná. Např. vaši pozici vůči targetu (důležité zejména pro roguny a feraly) nelze zjistit apod..
Na konec se ještě podíváme na některá specifika.

Modifikátory

Modifikátor je v podstatě klávesa která při stisknuti ovlivňuje která část makra se provede.
/cast [mod:shift] PrikazA; PrikazB

Pokud při použití podržíme klávesu Shift, provede se PříkazA, v opačném případě PříkazB.
Modifikátory lze samozřejmě různě vrstvit, záleží jen na vaši fantazii a potřebách.
Ukázka volby mounta:

/cast [mod:alt] Sandstone Drake
/cast [mod:ctrl] Traveler's Tundra Mammoth
/cast [mod:shift] Azure Water Strider
/cast Geosynchronous World Spinner

Stavy

Občas budete potřebovat zjistit svůj stav a na jeho základě provést nějakou akci.
Příklad, pokud jsem na nějakém mountu tak seskočím, v opačném případě se nic nestane:

/dismount [mounted]

Nyní půjdeme ještě dál. Ukázka makra pro ferala.

Příkaz /cast Cat Form aktivuje proměnu do kočky a při dalším kliknutí zase z kočky. Pokud ale použijeme před příkazem vykřičník /cast !Cat Form, (programátoři už vědí) proměna z kočky zpět už se neprovede, protože makro obsahuje “negátor“ který říká že každý pokus o změnu formy na jinou než kočka není povolen. Toto se používá zejména jako ochrana před opakovaným stisknutím (lagy, pře-klik, apod).

Následující makro tedy říká, pokud nemáš třetí formu což je kočka tak se proměň a
pokud jsi v kombatu použij raciálku Shadowmeld jinak Prowl.


/cast [noform:3] !Cat Form; [combat] Shadowmeld; [nocombat] Prowl


Bohužel i některá makra mají společné cooldowny a proto se některé příkazy provedou až po dalším kliknutí. Zejména toto platí při použití různých předmětů, raciálek apod.

Sequence

A nyní se dostáváme k poslední části a to je postupné vykonávání příkazů.
Následující makro vykoná při stisknutí příkaz A, při dalším příkaz B, atd.


/castsequence A, B, C, D

Až makro dojde na konec tak začne znovu od začátku. Někdy však potřebujeme aby se začalo od začátku dříve, např. Při změně targetu nebo prostě po určité době. Tyto požadavky můžeme dokonce spojovat.

/castsequence reset=4/target A, B, C, D

Pokud se změní target nebo uběhnou 4 sekundy, začne se makro provádět znovu od začátku.

Závěr

Možností je skutečně nepřeberné množství. Stručný soupis naleznete na http://wowprogramming.com/docs/api_categories Na úplný závěr uvedu pár příkladů které se vám snad budou hodit.

Automatická volba mounta dle situace (upraveno pro shamana)

/use [mod:shift] Azure Water Strider
/use [swimming]Abyssal Seahorse, [flyable]Sandstone Drake
/stopmacro [flying]
/use [outdoors]Fiery Warhorse, [indoors]Ghost Wolf, [combat] Ghost Wolf


Použití tabardu pro teleport (u guild prodejce)

Zde se uplatňuje sequence. Při jednom kliknutí si plášť oblečete a při dalším ho použijete.

/equipslot [nomod] 15 Wrap of Unity
/use [nomod] Wrap of Unity
/equipslot [mod:shift] 15 Shroud of Cooperation
/use [mod:shift] Shroud of Cooperation
/equipslot [mod:ctrl] 15 Cloak of Coordination
/use [mod:ctrl] Cloak of Coordination

A ještě něco málo pro druida

/cast [nostance:3]!Cat Form
/cast [mod:shift] Swipe
/cast [nostealth,stance:3,nocombat]Prowl
/startattack [combat]
/castsequence [nomod] reset=3/target Rake, Mangle,Mangle,Mangle,Mangle,Mangle,Mangle,Mangle,Mangle,Mangle


Pokud jste se dostaly až sem a máte alespoň trochu představu jak to vlastně funguje, nebude pro vás již problém si vytvářet vlastní komba či dohledat na netu další a další příklady a upravovat si je podle potřeby.

Článok pre vás napísal Yori

Žiadne komentáre:

Zverejnenie komentára