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>就可以运行脚本了。截图如下:



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