cm fare un addons

« Older   Newer »
 
  Share  
.
  1.  
    .
    Avatar

    King

    Group
    Administrator
    Posts
    617

    Status
    Offline
    Inizio subito dicendo che questa e' una guida rapida per chi volesse cimentarsi nella scrittura di AddOn per WoW e non sa proprio dove mettere le mani.

    Requisiti minimi:
    --> Un qualsiasi programma di videoscrittura semplice andra' bene: il blocco note di windows, o il fantastico Kate di KDE (che fra le altre cose riconosce nativamente il linguaggio LUA ) [Notare che per "semplice" si intende un programma che scriva il codice ASCII in chiaro su file, come un .txt, diversamente da un testo codificato su file, come un .doc]

    --> Conoscenze minime di programmazione (preferibilmente C++, Java o qualsiasi altro linguaggio di programmazione ORIENTATA AGLI OGGETTI, se avete conoscenze di LUA meta' del lavoro e' fatto )

    --> Fantasia e tanta pazienza, dato che WoW, essendo un gioco e non una piattaforma di sviluppo, non ha grandi supporti al debug e spesso si procede per tentativi

    INIZIAMO:
    Per creare il vostro primo AddOn "Hello World" su WoW dovrete conoscerne almeno la struttura di base!
    Passo 1) create una cartella dentro: ~\Programmi\World of Warcraft\Interface\AddOns\
    potrete chiamare la cartella a vostro piacimento, nel nostro esempio la chiameremo HelloWorld.
    Entrate quindi dentro: ~\Programmi\World of Warcraft\Interface\AddOns\HelloWorld\
    Passo 2) in questa cartella create i files:
    HelloWorld.toc
    HelloWorld.xml
    HelloWorld.lua

    SPIEGAZIONE:
    il file .toc contiene informazioni importanti riguardo l'addon che stiamo creando: contiene la versione della patch del gioco, (per verificare se l'addon sia valido o scaduto); contiene dati sullo sviluppatore del codice e, cosa importante, contiene i nomi dei files annessi all'addon (nel nostro caso il file .xml e quello .lua)
    IMPORTANTE:
    il file .toc deve avere lo stesso nome della cartella, e' cosi' che il gioco capisce quale file caricare per primo!!!
    (Cartella: Topolino, File: Topolino.toc)

    Ecco il contenuto di HelloWorld.toc:

    Codice:
    ## Interface: 30300
    ## Title: Hello World
    ## Notes: Questo AddOn non fa assolutamente nulla :)
    ## Version: 1.0
    ## Author: Babbo Natale
    ## OptionalDeps: addon1-opzionale-da-caricare, addon2-opzionale-da-caricare
    HelloWorld.xml
    HelloWorld.lua



    *** Interface: indica la versione della patch (30300 e' la serie 3.3.x)
    *** OptionalDeps: indica i possibili addon da caricare inisieme al nostro, ad esempio se inseriamo GearScore potremo usare le funzioni di quell'addon (e' come fare #include "GearScore.h" in C, per capirci)

    Ecco il contenuto di HelloWorld.xml:

    Codice:
    <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/
    ..\..\FrameXML\UI.xsd">
    <script File="HelloWorld.lua"/>
    <frame name="HelloWorld">
    <scripts>
    HelloWorld_OnLoad();
    OnEvent_Handler(event);
    </scripts>
    </frame>




    *** Ui: e' l'interfaccia e quella stringa lunghissima non e' altro che l'interfaccia di default della Blizzard (limitatevi ad un copia/incolla)
    *** Script File: indica dove trovare il file .lua, ovvero il nostro script!
    *** Frame name: e' il nome del nostro frame principale, il frame non e' altro che il background del nostro script (come un pannello invisibile su cui aggiungeremo tasti, scritte, etc...); ovviamente i frame possono contenere sfondi, colori ed altri aspetti legati alla grafica dello sfondo, come la grafica dei bordi, oltre alle cose citate in parentesi
    *** OnLoad: esegue la funzione HelloWorld_OnLoad() presente nel nostro script .lua quando viene caricato l'addon nel gioco
    *** OnEvent: esegue la funzione OnEvent_Handler(event) presente nel nostro script .lua quando avviene un evento nel gioco, ad esempio l'attivazione di un buff, la ricezione di un danno nemico, etc...
    in generale qualsiasi azione del gioco e' un evento!

    Ecco il contenuto di HelloWorld.lua:

    Codice:
    local enabled1, loadable1 = select(4, GetAddOnInfo("addon1-opzionale-da-caricare"))
    local enabled2, loadable2 = select(4, GetAddOnInfo("addon2-opzionale-da-caricare"))

    function HelloWorld_OnLoad()
    print("Hello World! °_°")
    -- qui inizializzeremo tutti i pulsanti e tutte le classi che dovremo poi usare!
    -- usando due trattini di seguito si puo' scrivere un commento all'interno del codice
    end

    function OnEvent_Handler(event)
    if ( event == "CHAT_MSG_RAID_LEADER" ) then
    print ("SILENZIO! parla il leader...")
    end
    end



    *** local enabled, loadable: sono valori boolean, assumono quindi i soli stati true o false
    ad esempio: if (enabled1 and loadable1) then ...


    Qui si conclude il nostro HelloWorld °_°
    universita' permettendo vedro' di aggiungere qualche esempio piu' complesso, ad ogni modo potete sempre scaricare e studiare il codice del mio addon "Wis Elite Drop Master 1.0"

    Siti consigliati per riferimenti alle classi API di WoW per LUA:
    www.wowwiki.com/Widget_API
    http://update.multiverse.net/wiki/index.php/Widget_Reference
     
    .
0 replies since 15/2/2011, 18:33   759 views
  Share  
.