精華區beta WOW 關於我們 聯絡資訊
PS 這篇前篇是介紹基本的/script 和WOW API介紹,但是寫一寫自己都不滿意, 所以還沒PO,反到是這篇先PO出來了。 PS 這邊基礎會以WOW API為主,盡量避開LUA之語法特質,但是有些地方還是會含有 LUA之特殊用法,不過用法很固定所以多看幾次就會寫了。 ---------------------------------------- 一、 前言 WOW中的Event簡單說就是系統抓到的變化,這個範圍相當廣,像是你獲得buff 或是你操縱的人物使用了一個法術,因此系統產生了event去處理這些動作。 基本上,你可以從戰鬥記錄器看到的敘述,都是記錄到的event。 二、 這東西,跟巨集有什麼關係? 這裡的應用範圍相當廣,比較常見的例子是DBM boss警告和Castyeller 這些UI,很常用的就是偵測到特殊"事件"然後送出一段訊息。 以DBM的BOSS警告為例 王出現深呼吸的表情 <--這就是一個事件 接著DBM偵測到以後,開啟一個計時器,5秒後送出團隊警告"深呼吸即將來臨" 所以說,藉著WOW中可以使用到的event配合可使用的API就可以做出相當多的事情。 三、 如何編寫 這裡先舉一例,然後分段解析code結構 這邊舉的是很常見的 破羊提示(Big Brother , NGA) /run F=F or CreateFrame("frame") F:RegisterEvent("COMBAT_LOG_EVENT") F:SetScript("OnEvent",function() if arg2=="SPELL_AURA_REMOVED"and arg10=="變形術" then print("羊破了,注意") end end) F=F or CreateFrame("frame") 創造一個框架(FRAME),這行表示創造一個新的框架 這個可以想成我們找一個人專門負責來抓一個特殊的event F:RegisterEvent("COMBAT_LOG_EVENT") 登錄這個框架的內容,我們指定他去監聽(listen)關於COMBAT_LOG_EVENT這個分類的事件 簡單說,我們要他去監聽戰鬥記錄的部分 F:SetScript("OnEvent",function() 當事件發生時<"OnEvent">,我們要他執行function()的內容 if arg2=="SPELL_AURA_REMOVED"and arg10=="變形術" then print("羊破了,注意")end 這段就是function()的內容,arg表示COMBAT_LOG_EVENT這個事件的參數 參數二是"光環被移除",參數十是"法術名稱" 這對敘述則是,當<if>光環被移除,並且<and>法術名稱是變形術 則<then>在螢幕印出"羊破了"的字樣, 後面的end分別表示if敘述結束和 function()的敘述結束 想看更多範例可以找精華區某篇關於施法喊話的巨集,一時之間不知道被藏在哪了 找不到.. Z 32 21 4 18 後面關於施法成功喊話的部分,現在應該看的懂了?! 四、 相關說明(英) API COMBAT LOG EVENT http://www.wowwiki.com/API_COMBAT_LOG_EVENT Events List 事件列表 http://www.wowwiki.com/Events_A-Z_(Full_List) SetScript http://www.wowwiki.com/API_Frame_SetScript RegisterEvent http://www.wowwiki.com/API_Frame_RegisterEvent HANDLER http://www.wowwiki.com/Widget_handlers -- Player: What do you think about new titles in Ulduar like Undying & Immortal in NAXX ? Blizzard: The Rock. And the heroic version, the Big Rock. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.120.225.85 ※ 編輯: k0286 來自: 140.120.225.85 (05/29 17:10)
Michael132:推 05/29 17:10
※ 編輯: k0286 來自: 140.120.225.85 (05/29 17:11)
ifom:幫推 05/29 17:11
※ 編輯: k0286 來自: 140.120.225.85 (05/29 17:13)
shenmi:看不懂趕流行推(淚奔 05/29 17:18
furbyyeh:熱心推 翻譯心得研究分享教學交流 05/29 17:29
jonahlin:呃 看不懂 05/29 17:35
Fron:推推推 05/29 17:39
Kavis:推 05/29 17:44
Xavy:一在哪? 05/29 17:52
k0286:就 還沒寫完 所以過幾天吧.. 05/29 17:53