[創作] UI簡易教學之二

看板WOW作者 (挨冬鎧兒)時間14年前 (2011/10/18 18:57), 編輯推噓11(1109)
留言20則, 9人參與, 最新討論串1/1
在上篇以及之前的範例中 大家可以瞭解到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~ -- ※ 發信站: 批踢踢實業坊(ptt.cc)

10/18 18:59, , 1F
...
10/18 18:59, 1F

10/18 19:01, , 2F
幹麻將...換頁對齊好難
10/18 19:01, 2F

10/18 19:02, , 3F
看到有關程式語言的東西就濕了.......
10/18 19:02, 3F

10/18 19:05, , 4F
其實就長一點的巨集...
10/18 19:05, 4F

10/18 19:17, , 5F
...
10/18 19:17, 5F

10/18 19:18, , 6F
幹麻將...換頁對齊好難 XDDDDDD
10/18 19:18, 6F

10/18 19:22, , 7F
你為什麼要幹麻將....
10/18 19:22, 7F
好硬

10/18 19:22, , 8F
大家好 我是羅志祥
10/18 19:22, 8F
樓上正妹小香

10/18 20:34, , 9F
喔喔 SetScript嘛 我小時候常常拿來玩呢
10/18 20:34, 9F

10/18 20:41, , 10F
那第三篇OnUpdate就交給stanwhale了(逃跑
10/18 20:41, 10F
※ 編輯: ak147 來自: 114.37.75.204 (10/18 21:11)

10/18 21:47, , 11F
不去忙開潮店,還在搞ui阿
10/18 21:47, 11F

10/18 21:47, , 12F
潮店!!!
10/18 21:47, 12F

10/18 21:48, , 13F
what is the 潮店?
10/18 21:48, 13F

10/18 21:49, , 14F
賣雨衣的?
10/18 21:49, 14F

10/18 21:54, , 15F
賣很潮的麻將嗎?
10/18 21:54, 15F

10/18 21:59, , 16F
濕透了...
10/18 21:59, 16F

10/18 21:59, , 17F
感慨到眼框都濕了
10/18 21:59, 17F

10/18 22:10, , 18F
到時記得算我5折!
10/18 22:10, 18F

10/18 22:28, , 19F
多講的..你又不會出現...
10/18 22:28, 19F

10/19 13:08, , 20F
難得好文
10/19 13:08, 20F
文章代碼(AID): #1EdLkd-2 (WOW)