天天看點

【魔獸世界插件】魔獸世界插件實戰筆記從入門到放棄的心理曆程 第二節XML架構的建立

【魔獸世界插件】魔獸世界插件實戰筆記從入門到放棄的心理曆程 第二節XML架構的建立

經過前面兩節的學習,知道了怎麼建立一個魔獸世界的插件,以及用lua檔案來建立一個窗體,但是一般在看别人的插件的時候,都會看到一個XML檔案,了解HTMl的都知道,它一般指可擴充标記語言,而且基本都是成對出現。

在魔獸世界的插件定義中,toc檔案是插件定義檔案,xml檔案來實作窗體的UI,lua檔案實作功能。

建立好toc檔案以後,在魔獸世界的用戶端就能看到第三節 XML框體的建立  已經能正确加載,用一個print列印函數來确認一下。

/script   print("目前遊戲版本号:",(select(4,GetBuildInfo())));

先介紹一個窗體檢測宏指令,怎麼用,看視訊:

/fstack   檢測窗體

這一節有一點要注意,好像到9.0版本以後,在xml中Backdrop的屬性發生了變化,背景屬性設定不起作用,必須放到Scripts中調用嗎?在Vscode中看着沒有顔色變化不舒服,我把定義放到lua檔案去,前面說過,功能的實作,其實在哪裡看你願意,都是可以的,你覺得舒服就行,沒有必要強求。

toc檔案代碼: 

# 魔獸版本号
## Interface: 90200
# 标題
# Title: 第三節XML架構
## Title: |cffffe00a[|r|cffff7d0a摸魚兒|r|cffffe00a]|r |cff69ccf0第三節XML架構的建立|r
# 說明
# Notes: 介紹魔獸插件架構的建立。
## Notes: |cff69ccf0介紹魔獸插件XML架構的建立。|r
# 作者
## Author: 摸魚兒
# 插件的版本号,和魔獸版本号沒有關系
## Version: 1.0.0


# 框體布局檔案
UiFarme.xml


# 腳本檔案,一般用來放功能實作函數
LuaFamrme.lua 
           

xml檔案代碼: 

<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<Frame name="FrameBackdrop" parent="UIParent"  inherits="BackdropTemplate"  enableMouse="true">
            <Size>
            <!-- 尺寸設定 -->
            <AbsDimension x="200" y="200" />
            </Size>
            <Anchors>
            <Anchor point="CENTER">
            <!-- 偏移 -->
            <Offset x="-250" y="0" />
            </Anchor>
            </Anchors>
            <Layers>
            <Layer level="BACKGROUND">
            <!-- <Backdrop bgFile="Interface/Tooltips/UI-Tooltip-Background" edgeFile="Interface/Tooltips/UI-Tooltip-Border" tile="true">
            <BackgroundInsets>
            <AbsInset left="4" right="4" top="4" bottom="4" />
            </BackgroundInsets>
            <TileSize>
            <AbsValue val="32" />
            </TileSize>
            <EdgeSize>
            <AbsValue val="32" />
            </EdgeSize>
            </Backdrop> -->

            <!-- 材質設定 -->
            <Texture name="$parentHorizontal" >
            <Size x="180" y="180" />
            <!-- 錨點位置 -->
            <Anchors>
            <Anchor point="CENTER" relativePoint="CENTER" />
            </Anchors>

            <!-- <Color r="0" g="0" b="1" a="0.5" /> -->
            </Texture>
            </Layer>
            </Layers>


<Scripts>
<OnLoad>
    <!-- local backdropInfo = {
        bgFile		= "Interface/Tooltips/UI-Tooltip-Background",
        edgeFile	= "Interface/Tooltips/UI-Tooltip-Border",
        tile 		= true,
        tileEdge	= true,
        edgeSize = 16,
        insets = { left = 4, right = 4, top = 4, bottom = 4 },
    }
    self:SetBackdrop(backdropInfo);
    self:SetBackdropColor(0, 0, 1, .5) -->
</OnLoad>

</Scripts>



</Frame>
</Ui> 
           

lua檔案代碼: 

print("目前遊戲版本号:",(select(4,GetBuildInfo())));


local backdropInfo = {
    bgFile		= "Interface/Tooltips/UI-Tooltip-Background",
    edgeFile	= "Interface/Tooltips/UI-Tooltip-Border",
    tile 		= true,
    tileEdge	= true,
    edgeSize = 16,
    insets = { left = 4, right = 4, top = 4, bottom = 4 },
}

-- name="FrameBackdrop"
local f =  FrameBackdrop
f:SetBackdrop(backdropInfo);
f:SetBackdropColor(0, 0, 1, .3) 
           

視訊我發到B站了,有興趣的自己去看。

魔獸世界插件實戰筆記從入門到放棄的心理曆程 第三節XML架構的建立