WOW UI Mod Guide – Chapter 2 Slash komennot

osta WoW Gold Cheap

  • osta Wow Classic Gold Safe at PVPBank käyttäen kuponkia SEAN. Maksut: Paypal, Luotto.
  • osta WoW Gold Paypal Mulefactorysta. WoW Classic-Kuponki: wowcgold & WoW-Kultakuponki: wowrgold. Mahtavat hinnat, Välitön toimitus. Maksut: Paypal, Skrill, Bitcoin.
  • UI Mod Guide-Chapter 1
  • UI Mod Guide-Chapter 2
  • UI Mod Guide-Chapter 3
  • UI Mod Guide-Chapter 4
  • UI Mod Guide-Chapter 5
  • UI Mod Guide-Chapter 6
  • UI Mod Guide-Chapter 7

osan 2 Hakemisto

  • Mitä ovat slash-komennot ja miksi välitän
  • miten slash-komennot toimivat
  • LUA-tiedostot
  • kaiken yhteen laittaminen
  • mitä se tekee
  • lopulliset sanat

Tervetuloa toiseen osaan oppaamme luoda wow Hei! Tässä osassa rakennamme sen yksinkertaisen lisän varaan, jonka loimme ensimmäisessä osassa. Vaikka olet jo perehtynyt lisäosien luomiseen, kannattaa ehkä nopeasti skimmata ensimmäinen osa.

toisessa osassa oletan, että tunnette Lua -, XML-ja toc-tiedostojen perusteet. En kuitenkaan oleta, että sinulla on kokemusta ohjelmoinnista. Keskitymme käsittelemään ”° / ± ” komentoja. Matkan varrella tutustumme myös hieman lähemmin Lua-koodaukseen. Kun olemme valmiit, olemme laajentaneet hieman ontuvan taisteluhuudon ensimmäisestä osasta loppukäyttäjien muokattavaksi ilman, että heitä vaaditaan muuttamaan Lua-koodia. Jos sinulla ei ole vielä lisäystä ensimmäisestä osasta, saat tiedostot <täältä>.

WHAT ARE SLASH COMMANDS, and WHY DO I CARE

If you¡ve played WoW for more than five minutes, you ¡re familiar The slash commands. Ne ovat sellaisia asioita, kuten ”sano” Ja ”kuka”, jotka kirjoitetaan WoW ’ ta soittaessa. Slash-komennot ovat erittäin kätevä tapa suorittaa toiminto ilman hiirtä. Addonin kirjoittajille slash-komennot ovat huomattavasti yksinkertaisempia toteuttaa kuin graafinen käyttöliittymä Windowsilla ja painikkeilla. Jos tarpeesi ovat yksinkertaisia, slash-komennot saattavat olla kaikki, mitä AddOn vaatii.

kuten tiedätte, WoW tarjoaa noin lukemattomia tällaisia komentoja. Et ehkä tiedä, että lisät voivat lisätä omia slash-komentojaan. Katsotaanpa, mitä tarvitaan, jotta slash-komentojen määrä kasvaa lukemattomaksi.

miten SLASH-komennot toimivat

jokaisella slash-komennolla, jonka AddOn luo, on siihen liittyvä Lua-funktio. Kun käyttäjä kirjoittaa slash-komennon, WoW kutsuu Lua-toimintoa. Sisäisesti, WoW ylläpitää ¡°SlashCmdList ¡±, joka on taulukko, jossa kaikki eri slash komentoja toimintoja heidän pitäisi kutsua. Voit ajatella tätä puhelinluettelona. (Muista takaisin ennen chat ja IM, kun ihmiset käyttivät puhelinta J) slash komennot ovat kuin nimet ja toiminnot ovat kuin puhelinnumerot. Kun käyttäjä kirjoittaa slash-komennon, WoW kulkee slash-komentojen (nimet) läpi, kunnes se löytää oikean komennon. Sitten se kutsuu toiminnon (puhelinnumero), että merkintä. Tässä Lua luo slash-komennon:

SlashCmdList=TthAog2SetMyBattleCry;

tämä rivi asettaa funktion ¡°TTH_AOG2_SET_MY_BATTLE_CRY ¡± slash-komennolle ¡°tthaog2setmybattlecry ¡±. Jos &°TTH_AOG2_SET_MY_BATTLE_CRY¡± slash-komento ei ole jo olemassa & °SlashCmdList ¡±taulukossa, se luodaan automaattisesti. (Kätevää, ei ole se) jotta tämä todella toimisi, meidän on määriteltävä ”aog2setmybattlecry” – funktio jossain Lua-koodissamme. Funktio saattaa näyttää tältä:

funktio TthAog2SetMyBattleCry(msg)
— aseta taisteluhuuto, käytettäväksi myöhemmin
TthAog2MyBattleCry = msg;
loppu

(sana konventiosta: huomaa, että käytimme all-capsia slash-komennon nimessä. Toisin sanoen kirjoitimme TTH_AOG2_SET_MY_BATTLE_CRY¡± sijaan ¡°tthaog2setmybattlecry ¡±. Tässä oppaassa käytetään kaikkia korkkeja vakioiden C arvoille, joiden ei pitäisi koskaan muuttua, vaikka maailma murenisi tähtienväliseksi pölyksi tai Lumimyrskypapeiksi tai joksikin yhtä kauhistuttavaksi. Aina kun näet minun käyttävän all caps-nimeä, tiedät, että näytän sinulle vakion.)

Pop quiz: what does a user type to run the new slash command Okay, I confident. Se on kompakysymys. Vaikka yllä oleva Lua-rivi luo slash-komennon ja liittää Lua-funktion siihen, meillä ei silti ole mitään tapaa suorittaa sitä. WoW käyttää näppärää aliasing-järjestelmää liittääkseen käyttäjän tyypit varsinaisiin slash-komentoihin. Tässä on Lua koodi tehdä se:

SLASH_TTH_AOG2_SET_MY_BATTLE_CRY1 = ”/setmybattlecry2”;

nyt jos käyttäjätyypit ¡°/setmybattlecry2 Ei nivusiin!& ± , slash komento ¡°TTH_AOG2_SET_MY_BATTLE_CRY¡± suoritetaan, jolloin funktio ¡°TthAog2SetMyBattleCry ¡±kutsutaan parametrilla ¡°ei nivusiin!¡±. (Laitamme tekstin ” ¡°2 ¡±”loppuun” ¡/setmybattlecry2 ”¡± ” , koska tarkistamme Lisäosaamme tämän oppaan myöhemmissä osissa, emmekä halua nimien olevan ristiriidassa keskenään.)

miksi lisäaskel miksi slash-komennon luominen (°TTH_AOG2_SET_MY_BATTLE_CRY) tehdään automaattisesti niin, että käyttäjä voi kirjoittaa (°/tth_aog2_setmybattlecry) (±) suorittaa sen on kaksi syytä. Voit jo nähdä ensimmäisen: vaikka sisäisissä nimissämme voi olla paljon järkeä koodissamme, ne ovat usein hirvittävän rumia näytettäväksi käyttäjille. Toinen syy on tärkeämpi: tämä ylimääräinen vaihe mahdollistaa useita avainsanoja voi suorittaa sama slash komento. Kirjoittaminen ¡°/setmybattlecry2¡± on tavallaan tuskaa. Annetaan ihmisille lyhyempi tie:

SLASH_TTH_AOG2_SET_MY_BATTLE_CRY2 = ”/ smbc2”;

nyt Lisäosamme käyttäjät voivat kirjoittaa joko ¡°/setmybattlecry2¡± tai ¡°/smbc2¡± asettaakseen taisteluhuudon. Huomaa, että vakio-osassa (SLASH_TTH_AOG2_SET_MY_BATTLE_CRY2) lisäsimme tällä kertaa a: n ” 2 ”sijaan A: n ”1”. Voisimme lisätä kolmannen avainsanan, lisäämällä sen sijaan sanan ” 3 ” ja niin edelleen.

vaikka slash-komennot eivät ole yhtä hienoja tai visuaalisesti houkuttelevia kuin ikkunat ja painikkeet, ne ovat usein käteviä käyttäjille. Ja ne on paljon helpompi luoda. (Jos haluat vielä graafisen käyttöliittymän AddOn, ja luultavasti et, ole kärsivällinen. Tätä käsitellään tämän oppaan seitsemännessä osassa.)

Lua muuttujat

olet saattanut huomata jotain uutta yllä olevassa funktiossa. Tässä se taas on, jos et osunut:

funktio TthAog2SetMyBattleCry (msg)
— aseta taisteluhuuto, käytettäväksi myöhemmin
TthAog2MyBattleCry = msg;
loppu

The ¡°TthAog2MyBattleCry = msg; ¡±on uusi osa. ¡°TthAog2MyBattleCry¡± on Lua-muuttuja. Muuttujat ovat vain lähtö pitää mitään arvoa valintasi. Kuten monet skriptauskielet, lua käsittelee muuttujia hyvin joustavasti. Jos olet käyttänyt voimakkaasti kirjoitettua¡± ohjelmointikieltä, kuten C++, saatat ihmetellä muuttujan¡s ¡°tyyppiä ¡±. Lua-muuttujat ovat isoja tyhjiä laatikoita,joihin mahtuu mitä tahansa. Tässä Addonissa Tallennamme käyttäjän suosiman taisteluhuudon muuttujaan.

yksi muuttujien tärkeä osa-alue on±±. Soveltamisala tarkoittaa lähinnä sitä, mitä koodi voi nähdä tämän muuttujan (±) oletusarvoisesti, muuttujilla on (°) globaali soveltamisala (±), monet funktiosi voivat nähdä muuttujan. Toinen soveltamisala on paikallinen soveltamisala±. Tämä tarkoittaa meille sitä, että muuttujan voi nähdä vain samassa (°) lohkossa (±) oleva koodi. A ’° – lohko¡± tarkoittaa periaatteessa ”seuraavaan loppuun asti’±’. (Soveltamisalan tekninen määrittely Lua: ssa on monimutkaisempi, mutta meidän ei tarvitse huolehtia näistä yksityiskohdista.)

edellä mainitussa esimerkissämme ¡°TthAog2MyBattleCry¡± on globaalimuuttuja ¡±, muuttuja, jolla on maailmanlaajuinen ulottuvuus. Line ¡°tthaog2mybattlecry = msg;¡± sisällä ¡°tthaog2setmybattlecry ¡± funktio loi sen. Niille teistä tulevat kielet kuten C++, tämä voi tuntua counterintuitive. Mutta Lua: ssa, jos muuttujan ei ole nimenomaisesti määritelty olevan paikallinen, se on automaattisesti globaali. Vaikka se julistettaisiin funktion sisällä. Joten seuraava toimisi:

function TthAog2SetMyBattleCry(msg)
— set the battle cry, for use later
TthAgo2MyBattleCry = msg;
end

function TTHAog2Event()
— sendchatmessage () tthaog2mybattlecry, ”sanoa”);
loppu

huomaa, että tthaog2mybattlecryä käytetään molemmissa funktioissa. Molemmissa paikoissa se viittaa samaan muuttujaan. Käyttämällä laatikko analogia, jos TthAog2SetMyBattleCry asettaa arvon ruutuun, TthAog2Event voi katsoa ruutuun ja nähdä, että arvo.

globaalien muuttujien ilmoittaminen tällä tavalla on kuitenkin huono käytäntö. On paljon parempi julistaa ne yläosassa Lua-tiedoston. Tällä on kaksi etua:

1) täydellinen luettelo globaaleista muuttujista on tässä, josta voit helposti nähdä ne kaikki yhdellä silmäyksellä

2) voit olla varma, että muuttuja on oikein alustettu.

näin on siis paljon parempi tehdä:

— tämä muuttuja pitää taisteluhuutomme
TthAog2MyBattleCry = ” not in the face!”;

funktio TthAog2SetMyBattleCry (msg)
— aseta taisteluhuuto, käytettäväksi myöhemmin
TthAog2MyBattleCry = msg;
loppu

funktio TthAog2Event ()
— lähetä viesti chatille
SendChatMessage (TthAog2MyBattleCry, ”sano”);
loppu

nyt on paljon helpompi nähdä, mitä tapahtuu.

paikalliset muuttujat ovat usein hyödyllisiä, kun tarvitsemme arvoa vain lyhyesti. Käyttämällä paikallista, on hyvin selvää, mikä koodi muuttaa muuttujan. Koska paikallinen ei ole olemassa kovin kauan, voit yleensä nähdä kaikki koodi, joka voi muokata sitä yhdellä silmäyksellä. Olisi hyvä idea toistaa Uusi taisteluhuuto käyttäjälle, kun he asettavat sen. Muokataanpa TthAog2SetMyBattleCry tekemään näin.:

funktio TthAog2SetMyBattleCry (msg)
— Aseta taisteluhuuto myöhempää käyttöä varten.
TthAog2MyBattleCry = msg;

— Echo the new battle cry for confirmation.
local echo = TTH_AOG2_BATTLE_CRY_SET_TO .. msg;
tthaog2outputtochat (echo);
end

olemme ottaneet käyttöön useita uusia asioita paikallisen muuttujan lisäksi, joten tarkastellaan niitä lyhyesti yksitellen:

local echo = TTH_AOG2_BATTLE_CRY_SET_TO .. msg;

tämä rivi luo paikallisen muuttujan nimeltä ¡°echo¡± tallentamaan käyttäjän kaikuarvon. Yhtäsuuruusmerkin jälkeinen osa muodostaa merkkijonon tekstiä, joka alkaa muuttujan tth_aog2_battle_cry_set_to sisällöstä ja päättyy msg: n sisältöön.

Uh-oh, Emme ole määritelleet tth_aog2_battle_cry_set_to-muuttujaa. Määrittelemme sen tällä rivillä, joka on sijoitettu tiedostomme yläreunaan:

paikallinen TTH_AOG2_BATTLE_CRY_SET_TO = ”Battle cry set to ”;

kuten näette, tth_aog2_battle_cry_set_to-muuttuja sisältää yksinkertaisesti merkkijonon. Koska tämä merkkijono ei koskaan muutu, sitä kutsutaan vakioksi ¡±. Saattaminen vakio yläreunassa tiedoston On aina hyvä idea. Näin, Jos haluat muuttaa sanamuotoa, merkkijono on erittäin helppo löytää. (Kuten kuudennessa osassa nähdään, se tekee myös lokalisoinnin eli useiden kielten tukemisen paljon helpommaksi.) Olemme myös julistaneet tth_aog2_battle_cry_set_to-muuttujan paikalliseksi, vaikka se ei ole funktiossa. Tämä tarkoittaa, että muuttuja on olemassa vain tässä tiedostossa eikä missään muussa. Jos käytät muuttujaa vain yhdessä tiedostossa, on aina hyvä tehdä siitä paikallinen. Siten olet varma, että mikään koodi tiedostosi ulkopuolella ei ole voinut muuttaa sitä. (Saatat ihmetellä, miksi emme tehneet Tthaog2mybattlecrystä paikallista. Halusin näyttää, miltä globaali muuttuja näyttää. Mutta on toinenkin syy, jonka näette kolmannessa osassa.)

nyt siirrytään toimintomme seuraavalle riville:

TthAog2OutputToChat (echo);

tämä rivi kutsuu funktiota, joka meidän on kirjoitettava lähettääksemme viestin chat-alueelle. Muuttujan kaiku siirretään funktiolle. Tässä on mitä tämä toiminto näyttää:

function TthAog2OutputToChat (msg)
if(DEFAULT_CHAT_FRAME) then
DEFAULT_CHAT_FRAME:AddMessage (msg);
end
end

tämä funktio määrittää, voimmeko näyttää tekstin oletuskeskusteluun, ja jos on, näyttää tekstin MSG: ssä chat-alueelle. Tämä teksti ei ole nähnyt muut pelaajat C se on puhtaasti informatiivinen teksti pelaaja käynnissä AddOn. Jos et ole perehtynyt siihen, miten muuttujien siirtäminen funktioihin toimii, näin se menee: kun TthAog2SetMyBattleCry kutsuu tthaog2outputtochat ohittamalla echo-muuttujan, Lua joitakin asioita kulissien takana. Se luo paikallisen muuttujan nimeltä msg tthaog2outputtochat, sitten Kopioi arvo echo MSG. Tämä antaa meille paikallisen muuttujan nimeltä msg sisällä tthaog2outputtochat funktio, jota voimme käyttää kuin haluamme.

tätä varten ei tarvinnut luoda funktiota. Olisimme voineet laittaa koodin lähtö chat-alueelle suoraan TthAog2SetMyBattleCry toiminto. Mutta toiminnon avulla on todella helppo tulostaa tekstiä chat-alueelle. Jos meidän pitäisi tehdä tämä jossain muualla, meidän täytyy vain soittaa funktio, ei kopioida koko lohko koodia. (Käytämme tätä hyödyksemme kolmannessa osassa.) Myös, jos päätimme näyttää tekstiä käyttäjälle eri tavalla, meidän täytyy vain muokata koodia funktion sisällä. Mikään muu koodi ei vaikuttaisi, mikä vähentäisi vian mahdollisuutta. Lopuksi se yksinkertaisti tthaog2setmybattlecry-toimintoa. Helppolukuinen koodi on helppolukuinen debug-koodi.

Emme ole täysin perehtyneet Lua-merkkijonojen käsittelyyn tai wow-kehyshierarkiaan, mutta sen tekeminen tässä vaiheessa olisi häiriötekijä pääkohteestamme slash-komennoista. Toivottavasti edellä on riittävä voit ymmärtää, mitä tapahtuu tässä versiossa AddOn.

kaiken kasaaminen

olemme nyt valmiita kirjoittamaan taisteluhuudon uudelleen, jotta käyttäjä voi määrittää haluamansa taisteluhuudon slash-komennoilla. Aivan kuten ensimmäisessä osassa, mukana on kolme tiedostoa:
– toc-tiedosto
– XML-tiedosto
– Lua-kooditiedosto

toc-tiedosto on lähes muuttumaton ensimmäisestä osasta:

## Interface: 11000
## Title: TenTonHammer Guide Part 2
## Author: TenTonHammer.com
## Notes: Makes your character scream a customizable battle cry when combat begins
TthAog2.xml

olemme juuri muuttaneet ”1” ± ” 2 ” ± ”ja muuttaneet nuotit ””taisteluhuudoksi ””muokattavissa ””eikä ””hölmö””. Tallenna tämä Toc-tiedosto nimellä TthAog2.toc kansioon nimeltä tthaog2 kansion lisät.

XML-tiedosto on identtinen ensimmäisen osan kanssa, lukuun ottamatta muutosta ¡°1¡°2¡±:

<Ui xmlns=”http://www.blizzard.com/wow/ui/” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi: schemaLocation=”http://www.blizzard.com/wow/ui/”>
<Script file= ” TthAog2.lua”/>
<Frame name=” TthAog2Core”>
<Scripts>
<OnLoad>TthAog2Load();</OnLoad>
<OnEvent>TthAog2Event();</OnEvent>
</Scripts>
</Frame>
</Ui>

Tallenna tämä XML-tiedosto nimellä TthAog2.XML kansioon nimeltä tthaog2 kansiolisäysten alla.

lopuksi meillä on Lua-tiedosto, joka sisältää itse koodin. Olet nähnyt kaikki nämä kappaleet jo:

– Vakiokielet.
paikallinen TTH_AOG2_BATTLE_CRY_SET_TO = ” taisteluhuuto asetettu ”;
— tämä muuttuja pitää sisällään taisteluhuutomme.
TthAog2MyBattleCry = ” Ei kasvoihin!”;

— Utility function for printing to chat area
function TthAog2OutputToChat (msg)
if(DEFAULT_CHAT_FRAME) then
DEFAULT_CHAT_FRAME:AddMessage (msg);
end
end

— Called when the AddOn loads.
funktio TthAog2Load ()
— ilmoittaudu tapahtumaan.
this: RegisterEvent (”PLAYER_REGEN_DISABLED”);

— luo slash-komento.
SlashCmdList = TthAog2SetMyBattleCry;
SLASH_TTH_AOG2_SET_MY_BATTLE_CRY1 = ”/ setmybattlecry2”;
SLASH_TTH_AOG2_SET_MY_BATTLE_CRY2 = ”/ smbc2”;
end

— kutsutaan, kun slash-komento suoritetaan.
funktio TthAog2SetMyBattleCry (msg)
— Aseta taisteluhuuto myöhempää käyttöä varten.
TthAog2MyBattleCry = msg;

— Echo the new battle cry for confirmation.
local echo = TTH_AOG2_BATTLE_CRY_SET_TO .. msg;
tthaog2outputtochat (echo);
end

— Called to handle the event for which we ’ ve registered.
funktio TthAog2Event ()
— Lähetä viesti chatille.
SendChatMessage(TthAog2MyBattleCry, ”SAY”);
loppu

ensimmäiseen osaan verrattuna lisäsimme Tthaog2mybattlecry global-muuttujan, lisäsimme koodin slash-komennon luomiseksi, lisäsimme tthaog2setmybattlecry-funktion ja käytimme tthaog2mybattlecry global-muuttujaa tthaog2eventissä. Olemme myös lisänneet kommentteja.

Tallenna tämä Lua-tiedosto nimellä TthAog2.Lua kansioon nimeltä tthaog2 kansiolisäysten alla.

WHAT DOES IT DO

now start WoW and get in a fight. Saat nähdä typerän taisteluhuudon Ei naamalle!¡±. Tämä kuvastaa tthaog2mybattlecry-muuttujan oletusarvoa. Kirjoita nyt seuraava:

/ smbc2 taisteluun!

voit nähdä uuden taisteluhuudon kaikuvan chat-alueelle. Mene toiseen taisteluun, niin pääset taisteluun!ei kasvoihin!¡±. Jos haluat sammuttaa taisteluhuudon, voit kirjoittaa vain:

/ smbc2

meidän kaiku ei ole kovin hyvin muotoiltu tähän tapaukseen (se vain sanoo ”’taisteluhuuto ’ asetettuna’±’). Jos tämä olisi todellinen lisä suurelle yleisölle, testaisimme msg: n arvon ja näyttäisimme erityisen kaiun, jos käyttäjä tyhjentää taisteluhuutoa. Koska tämä on vain esimerkki, emme voi mutkistaa koodia.

viimeiset sanat

jos kokeilet Addonin uutta versiota ja hahmosi huutaa kaksi taisteluhuutoa, se johtuu todennäköisesti siitä, että sinulla on edelleen tämän oppaan ensimmäisen osan Addoni asennettuna ja aktiivisena. Koska olimme tarkkoja nimeämisessä, tämä ei aiheuttanut virheitä. Mutta sitäkään et varmaan halua. Vain saada poistaa käytöstä tai poistaa ensimmäinen versio C uusi on parempi muutenkin.

siinä on kuitenkin yksi ongelma: taisteluhuutosi katoaa istuntojen välillä. Aina kun suljet ja käynnistät WoW ’ n, tulet takaisin ei naamaan!¡±. Kun olet valmis, siirry kolmanteen osaan ja katsotaan, miten saat haluamasi taisteluhuudon pysymään istuntojen välissä.