AddOns for World of Warcraft 之 “Hello, WoW!”

暴雪用5年的世界打造了世界頂級的網遊World of Warcraft,複雜多變的操作方法爲遊戲增添了無窮樂趣,而遊戲的可玩性不僅僅體現在遊戲世界本身,其XML+Lua的擴展機制也成爲該款遊戲的一大玩點。就像大家熟知的firefox一樣,WoW提供了豐富的接口,允許玩家實現一些有額外功能(如:物件ID查詢),這些額外功能被稱爲Addon。客戶端安裝目錄下/Interface/AddOns就是用於放置各種Addon的地方。
在開發Addon之前,必須瞭解其構成。在WoW中,規定Addon由至少三中文件構成:
  • toc:指明該Addon適用的客戶端API版本,以及Addon包含(和依賴)的文件。
  • xml:用於創建UI,指明事件處理腳本(Lua)。在某些情況下,可以不需要Lua文件,而直接將腳本嵌入到<scripts></scripts>標籤中。
  • lua:實現Addon功能的腳本。
下面我將實現一個在聊天框中輸入命令來執行兩個整數相加的Lua腳本,我將該插件命名爲Test:
Test.toc文件內容:
## Interface: 20300
## Title: Test Addon
test.lua
test.xml
Test.xml文件內容:
<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">
    <Frame name = "Test_Frame" hidden="true">
        <Scripts>
            <OnLoad>Test_load();</OnLoad>
        </Scripts>
    </Frame>
</Ui>
Test.lua文件內容:
function Test_load()
    -- Slash Commands
    SLASH_Test1 = "/test";
    SlashCmdList["Test"] = Test_commandline;
    DEFAULT_CHAT_FRAME:AddMessage("Test AddOn is now loaded!");
end

function Test_commandline(cmd)
    local a = gsub(cmd , "(%d+)(%s)(%d+)", "%1");
    local b = gsub(cmd , "(%d+)(%s)(%d+)", "%3");
    DEFAULT_CHAT_FRAME:AddMessage("a + b ="..a+b);
end
爲了運行Addon,需要將上述三個文件放在
客戶端安裝目錄下/Interface/AddOns/Test目錄下,然後啓動客戶端,在聊天框中輸入:/test <arg1> <arg2>就可以運行腳本了。截圖如下:



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章