Grundläggande om att skriva ett addon till World of Warcraft
Förord
Man arbetar inte alltid och att spela är för många ett trevligt sätt att koppla av. Många gillar dock att programmera även på fritiden. I spelet World of Warcraft går det att kombinera dessa två saker genom att skapa mindre program, addons, som ger spelaren information och funktioner som underlättar spelandet.
Vad som behövs
För att skriva ett addon så krävs ingen speciell mjukvara bortsett från spelet World of Warcraft. En vanlig textredigerare som Microsofts Anteckningar räcker men det är fördelaktigt att använda en textredigerare som stödjer syntax märkning (eng. syntax highlight). Jag brukar använda Notepad++.
Hur man installerar och använder ett addon
Ett addon består som minst av en mapp som innehåller en lua fil och en toc fil. Lua-filen är själva addonet medans toc-filen har till syfte att styra vilka filer som tillhör addonet och vilken version av spelet addonet är skrivet för.Ett addon skulle exempelvis kunna se ut så här:
/Exempeladdon/Exempel.toc
/Exempeladdon/Exempel.lua
Ett addon installeras genom att mappen och dess filer placeras i /World of Warcraft/Interface/AddOns/.
För att sedan köra det måste man oftast välja det innan man har loggat in med sin karaktär. Det gör man i samband med att man väljer sin karaktär via en knapp i det vänstra hörnet som heter Addons.
Att skriva ett addon
Nu till det viktiga i artikeln. Att skriva ett addon.Som tidigare nämnt så behöver ett addon minst en toc-fil och en lua-fil. Vi börjar först med toc-filen.
En toc fil bör minst bestå av dessa rader:
## Title: Exempel
## Notes: Ett exempel addon
Exempel.lua
Interface säger vilken version av spelet som addonet är skrivet för. Title är namnet på addonet och Notes är en kort beskrivning av addonet. Den sista raden, Exemple.lua, är filen som ska laddas.
Då vad det dags för det svåra. Att skriva själva addonet. Nedan är vårt första exempel.
SlashCmdList["EXMPL"] = function(msg)
print("Du har skrivit ett addon")
end
Först så skapar man ett slashcommand (/exempel) som kallas EXMPL1. Det här binds i sin tur till funktionen print. När man sen skriver /exempel så kommer texten "Du har nu skrivit ett addon!" att visas i chatrutan.
Här är ett exempel på ett litet mer avancerat addon som automatiskt döljer eller visar hjälmen på karaktären efter att man bytt ut dennes talents.
Hatt:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED");
Hatt:SetScript("OnEvent", function( self, event, ...)
local unit, spellName = ...
if(event == "UNIT_SPELLCAST_SUCCEEDED") then
if unit == "player" and (spellName == 63645) then
ShowHelm(1)
elseif unit == "player" and (spellName == 63644) then
ShowHelm(0)
end
end
end)
De första två raderna har till syfte att skapa en event handler. Dessa består av en frame (i det här fallet heter den Hatt) och de olika händelser (events) som har registrerats i den (i det här fallet så händelsen att någon enhet har lyckats med att genomföra en spell).
Därefter så kommer event handlern att övervakar eventet UNIT_SPELLCAST_SUCCEEDED och om rätt spell har använts (63645 eller 63644) av rätt enhet (player, spelaren) så kommer antingen hjälmen döljas eller visas.
Länkar
Mer om att skriva addons går att finna på länkarna nedan.http://www.mmo-champion.com/threads/817817-Creating-Your-Own-WoW-Addon
Ytterligare en artikel om att skapa ett addon för World of Warcraft
http://www.wowwiki.com/World_of_Warcraft_API
Mer om World of Warcrafts API
http://www.wowinterface.com
En av de större sidorna för att lägga upp addons på internet
http://www.wowwiki.com/TOC_format
Mer om TOC-filer
http://www.wowhead.com
Information om spells, items, m.m, i spelet. Läser man URL:en så kan man tyda ut vilken spell ID eller unit ID som något har. Exempel är www.wowhead.com/spell=20034/ vilken tillhör "Enchant Weapon - Crusader".
0 Kommentarer