UI簡易教學之二 - WOW

Table of Contents

在上篇以及之前的範例中

大家可以瞭解到UI的本體其實都是frame

有了本體才能以SetScript來讓他主動去執行我們所寫的script *註1
(或以HookScript來掛上script 接在SetScript的東西後執行)

SetScript可以讓frame在註冊的事件觸發的時後自動去執行我們設定的程式


但要是事件不只一樣呢?

以下舉CombatEvents中的一小段作為範例 (由於字數限制有簡化過)





STEP I&II

請延續上篇 以下從 STEP III 開始玩



















STEP III

打開core.lua 貼上以下東西 (--表示是註釋,可以不用貼進去)



local f = CreateFrame("Frame") --建立一個Frame用來監聽事件
f:RegisterEvent("PLAYER_REGEN_ENABLED") --註冊事件, 玩家回血時觸發
f:RegisterEvent("PLAYER_REGEN_DISABLED") --註冊事件, 玩家不回血時觸發
f:SetScript("OnEvent", --在事件觸發時執行以下script
function(self, event) --註2
if event == "PLAYER_REGEN_DISABLED" then --停止自動回血也就是進入戰鬥
print("進入戰鬥") --在對話框顯示 進入戰鬥
elseif event =="PLAYER_REGEN_ENABLED" then --開始自動回血也就是離開戰鬥
print("離開戰鬥") --在對話框顯示 離開戰鬥
end --結束if
end --結束function
) --SetScript最後的)


存檔並關掉

註1:

沒有本體也可以設定slash command去手動執行script (範例 /紅字)


註2

這邊引入了兩個變數並命名為self及event

self代表的是f這個frame本身 (因為我們SetScript是set在f上嘛)

event則是OnEvent時的事件名稱

所以我們在這邊引入這個變數用以分辨不同事件

但要是事件只有一項 或是不同事件觸發時都做一樣的事情 那當然不用這樣做囉

因為都是做同樣的事~ 所以不需要去區分 (範例 /memory)


但還有一種情況是事件發生時會有很多變數可以用

最著名的就是COMBAT_LOG_EVENT_UNFILTERED這個事件了 也就是俗稱的CLEU

由於人生就是不斷的戰鬥 所以他最實用

這也導致只要bz一偷改這個東西的變數時 很多UI就會開始哀嚎

這邊就先不提 有興趣可以 google 或是打開之前發的CombatEvents的lua檔來參考

http://www.google.com/search?q=COMBAT_LOG_EVENT_UNFILTERED













EXERCISE

瀏覽所有的Events
http://www.wowwiki.com/Events_(API)



PREP

SetScript除了OnEvent之外還能幹嘛
http://www.wowwiki.com/Widget_handlers





多這兩項是因為上回被噓內容太淺 阿幹我也是初學者啊 這我自學心得吶




--
(RC)) RL: 戰士, 你減傷@#$%?(模糊模糊)
[R] 防戰: 啥?聽不清楚? 回音好大聲
[R] 術士: 你減傷幾啪
[R] 法師: 問你減傷幾啪
[R] 戒騎: 你減傷激巴
[R] 防戰: 你才積芭 ~所以最後減傷到底多少的某日Raiding~
--

All Comments

Lucy avatarLucy2011-10-23
...
Anthony avatarAnthony2011-10-24
幹麻將...換頁對齊好難
Robert avatarRobert2011-10-28
看到有關程式語言的東西就濕了.......
Yuri avatarYuri2011-11-01
其實就長一點的巨集...
Hedda avatarHedda2011-11-05
...
Hedy avatarHedy2011-11-06
幹麻將...換頁對齊好難 XDDDDDD
Tristan Cohan avatarTristan Cohan2011-11-07
你為什麼要幹麻將....
Bethany avatarBethany2011-11-07
大家好 我是羅志祥
Cara avatarCara2011-11-08
喔喔 SetScript嘛 我小時候常常拿來玩呢
Tristan Cohan avatarTristan Cohan2011-11-10
那第三篇OnUpdate就交給stanwhale了(逃跑
Damian avatarDamian2011-11-12
不去忙開潮店,還在搞ui阿
Mary avatarMary2011-11-13
潮店!!!
Olivia avatarOlivia2011-11-14
what is the 潮店?
Eartha avatarEartha2011-11-14
賣雨衣的?
Rachel avatarRachel2011-11-16
賣很潮的麻將嗎?
Catherine avatarCatherine2011-11-18
濕透了...
Olivia avatarOlivia2011-11-21
感慨到眼框都濕了
Olga avatarOlga2011-11-22
到時記得算我5折!
Tom avatarTom2011-11-26
多講的..你又不會出現...
Isabella avatarIsabella2011-11-28
難得好文