Weakaura 自訂篇 - WOW

By Donna
at 2017-03-14T01:17
at 2017-03-14T01:17
Table of Contents
Weakaura 自訂篇
其實這篇幾天前就寫好了 不過感覺不太實用 所以..
決定多分享一點aura 教學的部分當自由閱讀(?
(1) http://pastebin.com/LF40WNsg
觀察身上的吸收盾總量 call api的簡單範例
(2) http://pastebin.com/XesFzUi2
pal的信標 6版用到現在
特效部分 可以參考怎麼增加文字顏色
(3) http://pastebin.com/TFkd6SYs
監視夜禍的點燃靈魂 (現在貼好像有點晚?
抓到的人會上標+喊話中的名字
其實做法不太複雜 看懂下面的寫法可以試著做看看
(4) http://pastebin.com/rgDYNy0e
新增兩個按鈕 會在出現商人/銀行的時候跳出來
按一下把列表東西存進銀行/賣給商人
但裡面的清單是很久以前寫的 所以都是六版的東西 可以自行修改~
如果要調位置的話改兩個背景的位置就好 另外有圖示的會跟著動
其實我另外有做一套是按一鍵把東西寄給分身的
還沒改好 改一改再放上來 打大秘比較重要(欸
(5) http://pastebin.com/G1aqaFFs 斷法
http://pastebin.com/5hUBJ8Wx 驅散
偵測團隊或小隊內 有人驅散和斷法時
會在對話框列印出訊息 專門抓戰犯用的
(6) http://pastebin.com/4yqV4THZ
監視古爾丹p3的靈魂之井殘餘靈魂/正在吸收的人數/下次的傷害量
純抄來 只做了一點翻譯!
(7) http://pastebin.com/DYs4w9PB
小東西 滑鼠指標旁邊放個圈
本來是想做cursor UI的功能 可是移動速度不太快 不夠漂亮
--
底下有興趣可以看一看 但是我要說
如果完全沒有程式基礎 不推薦用自訂觸發 會搞得你暈頭轉向
去抄別人的/用內建的比較好
現在weakaura內建功能已經多很多了
之前幾個用自訂刻出來的我都想要不要用內建重作一下XD
當然自訂還是可以做出一些比較自由的功能
1. wow api
http://wowprogramming.com/docs/api_categories
首先要知道 魔獸很多功能都只是在call api
你放個寒冰箭就是CastSpellByID或CastSpellByName
說一句話就是SendChatMessage
所以找得到api 就可以用出許多功能
但是BZ覺得 不行 這樣很危險
所以他們把一些api鎖起來(Protected)
只能從BZ內建的技能之類觸發
這也就是為什麼巨集做不出 if (目標血量<50) then 施放法術 這類功能
因為後面那個被鎖起來惹 朕不給的你不能要!
那些api可以call? 看上面那個網址都會寫
哪個是幹嘛的? 想辦法試囉
點進去就看得出他的arguments(參數)和returns(傳回值)
舉例來說 我寫health = UnitHealth("player")
什麼意思? 來看看UnitHealth這個api
http://wowprogramming.com/docs/api/UnitHealth
health = UnitHealth("unit") or UnitHealth("name")
Arguments:
unit - ......(string, unitID)
name - ......(string)
Returns:
health - ......(number)
表示你要給他一個單位ID或字串 他回傳一個number
那這整個api在幹嘛? 網頁上面告訴你啦 回傳單位目前的血量值
所以我們做的UnitHealth("player")
就是傳玩家這個unitID給他 他回傳玩家目前的血量給你
假如寫個巨集 /run print(UnitHealth("player"))
就是印出玩家目前的血量啦
好 api先放一邊
能用的api太多了 需要的時候再去查資料庫就好
2. wow events
http://wowprogramming.com/docs/events
魔獸裡很多事情都是事件的發生
拿上面那個(3)夜禍的aura當範例
我們要做的是偵測點燃靈魂 這個光環覆蓋時觸發
並且利用api抓一些我們想放的功能
可以import aura 或跟著做一次:
先新增一個文字 觸發選自訂 特效文字打個空白
(不需要用到圖示的我通常會這樣做)
事件類型選 事件
底下冒出來的空格填上 COMBAT_LOG_EVENT_UNFILTERED
這個事件是專門抓戰鬥紀錄的
再來我們找到COMBAT_LOG_EVENT_UNFILTERED的介紹
http://wow.gamepedia.com/COMBAT_LOG_EVENT
(重導頁面 反正兩個的參數有87%像)
既然是施放技能 開頭找法術 SPELL
那我們想抓的是光環覆蓋 所以是接_AURA_APPLIED的字尾
阿裡面怎麼這麼多東西?
因為一個技能裡面有 施法者 法術ID 法術名稱 目標 等等一堆參數
等下撈你要的東西出來用就好
當weakaura發現我們前面偵測的event觸發時
它就會去跑看看自訂觸發裡面的function(...) 看return 了什麼
true 的話就觸發 false當然就不觸發
自訂觸發的完整code如下: http://pastebin.com/JJ67hzZR
function(event, timestamp, message, hideCaster, sourceGUID, sourceName,
sourceFlags, sourceRaidFlags, destGUID, destName, destFlags, destRaidFlags,
...) --這邊是所有COMBAT_LOG_EVENTS_UNFILTERED的基本參數
if message == "SPELL_AURA_APPLIED" then --如果是光環覆蓋
local spellId, spellName, spellSchool, auraType = ... --額外參數
if spellName == "點燃靈魂" then --如果技能名稱叫點燃靈魂
local message = (spellName);
if destName ~= nil then
message = destName .. "中了" .. message .. "!"; --設定訊息
SetRaidTarget(destName,8); --標記中的人
C_Timer.After(10, function() SetRaidTarget(destName,0) end)
--10秒後取消標記
SendChatMessage(message, "YELL"); --大喊訊息
return true
end
end
end
end
-- 後面是備註
這邊用到了 SetRaidTarget 標記目標
C_Timer.After 時間後執行指令
SendChatMessage 喊話 這幾個api
不過只有COMBAT_LOG_EVENT_UNFILTERED這個event嗎? 當然不只
登入遊戲(PLAYER_ENTERING_WORLD) 打開信箱(MAIL_SHOW)
抓events可以做出各種奇怪的功能
做custom code還蠻容易壞
可以裝個addon: buggrabber來抓runtime的錯誤
(同時你的遊戲會該該叫 你的UI有太多的錯誤誤誤誤)
如果真的做壞了怎麼辦?
之前有過 /wa 完全開不起來 重登什麼都沒效 同時buggrabber狂叫
關遊戲 打開world of warcraft/WTF/Account/你的帳號/SavedVariables/WeakAuras.lua
找到你做壞的weakaura 在它的lua table
["load"] = {
["use_never"] = true, --加上這一行
(或已經有了 應該會是 ["use_never"] = false 就把它改成true)
再進遊戲把它搞好
大概就這樣
其他還有一些零零落落可以講的 可是好像沒有完整到值得發文
如果有weakaura想做的歡迎詢問(?
--
葡萄酒商勒修斯說:進到桶子,踏踩那些水果!
葡萄酒商勒修斯說:進到桶子,踏踩那些水果!
葡萄酒商勒修斯說:進到桶子,踏踩那些水果!
葡萄酒商勒修斯說:進到桶子,踏踩那些水果!
葡萄酒商勒修斯說:進到桶子,踏踩那些水果!
葡萄酒商勒修斯說:你一定能成為厲害的酒商!又有一批秘能酒準備好出貨了。
--
其實這篇幾天前就寫好了 不過感覺不太實用 所以..
決定多分享一點aura 教學的部分當自由閱讀(?
(1) http://pastebin.com/LF40WNsg
觀察身上的吸收盾總量 call api的簡單範例
(2) http://pastebin.com/XesFzUi2
pal的信標 6版用到現在
特效部分 可以參考怎麼增加文字顏色
(3) http://pastebin.com/TFkd6SYs
監視夜禍的點燃靈魂 (現在貼好像有點晚?
抓到的人會上標+喊話中的名字
其實做法不太複雜 看懂下面的寫法可以試著做看看
(4) http://pastebin.com/rgDYNy0e
新增兩個按鈕 會在出現商人/銀行的時候跳出來
按一下把列表東西存進銀行/賣給商人
但裡面的清單是很久以前寫的 所以都是六版的東西 可以自行修改~
如果要調位置的話改兩個背景的位置就好 另外有圖示的會跟著動
其實我另外有做一套是按一鍵把東西寄給分身的
還沒改好 改一改再放上來 打大秘比較重要(欸
(5) http://pastebin.com/G1aqaFFs 斷法
http://pastebin.com/5hUBJ8Wx 驅散
偵測團隊或小隊內 有人驅散和斷法時
會在對話框列印出訊息 專門抓戰犯用的
(6) http://pastebin.com/4yqV4THZ
監視古爾丹p3的靈魂之井殘餘靈魂/正在吸收的人數/下次的傷害量
純抄來 只做了一點翻譯!
(7) http://pastebin.com/DYs4w9PB
小東西 滑鼠指標旁邊放個圈
本來是想做cursor UI的功能 可是移動速度不太快 不夠漂亮
--
底下有興趣可以看一看 但是我要說
如果完全沒有程式基礎 不推薦用自訂觸發 會搞得你暈頭轉向
去抄別人的/用內建的比較好
現在weakaura內建功能已經多很多了
之前幾個用自訂刻出來的我都想要不要用內建重作一下XD
當然自訂還是可以做出一些比較自由的功能
1. wow api
http://wowprogramming.com/docs/api_categories
首先要知道 魔獸很多功能都只是在call api
你放個寒冰箭就是CastSpellByID或CastSpellByName
說一句話就是SendChatMessage
所以找得到api 就可以用出許多功能
但是BZ覺得 不行 這樣很危險
所以他們把一些api鎖起來(Protected)
只能從BZ內建的技能之類觸發
這也就是為什麼巨集做不出 if (目標血量<50) then 施放法術 這類功能
因為後面那個被鎖起來惹 朕不給的你不能要!
那些api可以call? 看上面那個網址都會寫
哪個是幹嘛的? 想辦法試囉
點進去就看得出他的arguments(參數)和returns(傳回值)
舉例來說 我寫health = UnitHealth("player")
什麼意思? 來看看UnitHealth這個api
http://wowprogramming.com/docs/api/UnitHealth
health = UnitHealth("unit") or UnitHealth("name")
Arguments:
unit - ......(string, unitID)
name - ......(string)
Returns:
health - ......(number)
表示你要給他一個單位ID或字串 他回傳一個number
那這整個api在幹嘛? 網頁上面告訴你啦 回傳單位目前的血量值
所以我們做的UnitHealth("player")
就是傳玩家這個unitID給他 他回傳玩家目前的血量給你
假如寫個巨集 /run print(UnitHealth("player"))
就是印出玩家目前的血量啦
好 api先放一邊
能用的api太多了 需要的時候再去查資料庫就好
2. wow events
http://wowprogramming.com/docs/events
魔獸裡很多事情都是事件的發生
拿上面那個(3)夜禍的aura當範例
我們要做的是偵測點燃靈魂 這個光環覆蓋時觸發
並且利用api抓一些我們想放的功能
可以import aura 或跟著做一次:
先新增一個文字 觸發選自訂 特效文字打個空白
(不需要用到圖示的我通常會這樣做)
事件類型選 事件
底下冒出來的空格填上 COMBAT_LOG_EVENT_UNFILTERED
這個事件是專門抓戰鬥紀錄的
再來我們找到COMBAT_LOG_EVENT_UNFILTERED的介紹
http://wow.gamepedia.com/COMBAT_LOG_EVENT
(重導頁面 反正兩個的參數有87%像)
既然是施放技能 開頭找法術 SPELL
那我們想抓的是光環覆蓋 所以是接_AURA_APPLIED的字尾
阿裡面怎麼這麼多東西?
因為一個技能裡面有 施法者 法術ID 法術名稱 目標 等等一堆參數
等下撈你要的東西出來用就好
當weakaura發現我們前面偵測的event觸發時
它就會去跑看看自訂觸發裡面的function(...) 看return 了什麼
true 的話就觸發 false當然就不觸發
自訂觸發的完整code如下: http://pastebin.com/JJ67hzZR
function(event, timestamp, message, hideCaster, sourceGUID, sourceName,
sourceFlags, sourceRaidFlags, destGUID, destName, destFlags, destRaidFlags,
...) --這邊是所有COMBAT_LOG_EVENTS_UNFILTERED的基本參數
if message == "SPELL_AURA_APPLIED" then --如果是光環覆蓋
local spellId, spellName, spellSchool, auraType = ... --額外參數
if spellName == "點燃靈魂" then --如果技能名稱叫點燃靈魂
local message = (spellName);
if destName ~= nil then
message = destName .. "中了" .. message .. "!"; --設定訊息
SetRaidTarget(destName,8); --標記中的人
C_Timer.After(10, function() SetRaidTarget(destName,0) end)
--10秒後取消標記
SendChatMessage(message, "YELL"); --大喊訊息
return true
end
end
end
end
-- 後面是備註
這邊用到了 SetRaidTarget 標記目標
C_Timer.After 時間後執行指令
SendChatMessage 喊話 這幾個api
不過只有COMBAT_LOG_EVENT_UNFILTERED這個event嗎? 當然不只
登入遊戲(PLAYER_ENTERING_WORLD) 打開信箱(MAIL_SHOW)
抓events可以做出各種奇怪的功能
做custom code還蠻容易壞
可以裝個addon: buggrabber來抓runtime的錯誤
(同時你的遊戲會該該叫 你的UI有太多的錯誤誤誤誤)
如果真的做壞了怎麼辦?
之前有過 /wa 完全開不起來 重登什麼都沒效 同時buggrabber狂叫
關遊戲 打開world of warcraft/WTF/Account/你的帳號/SavedVariables/WeakAuras.lua
找到你做壞的weakaura 在它的lua table
["load"] = {
["use_never"] = true, --加上這一行
(或已經有了 應該會是 ["use_never"] = false 就把它改成true)
再進遊戲把它搞好
大概就這樣
其他還有一些零零落落可以講的 可是好像沒有完整到值得發文
如果有weakaura想做的歡迎詢問(?
--
葡萄酒商勒修斯說:進到桶子,踏踩那些水果!
葡萄酒商勒修斯說:進到桶子,踏踩那些水果!
葡萄酒商勒修斯說:進到桶子,踏踩那些水果!
葡萄酒商勒修斯說:進到桶子,踏踩那些水果!
葡萄酒商勒修斯說:進到桶子,踏踩那些水果!
葡萄酒商勒修斯說:你一定能成為厲害的酒商!又有一批秘能酒準備好出貨了。
--
Tags:
WOW
All Comments

By Robert
at 2017-03-18T18:00
at 2017-03-18T18:00

By Christine
at 2017-03-20T09:52
at 2017-03-20T09:52

By Cara
at 2017-03-24T12:03
at 2017-03-24T12:03

By Mary
at 2017-03-27T14:08
at 2017-03-27T14:08

By Gary
at 2017-03-27T22:48
at 2017-03-27T22:48

By Annie
at 2017-03-29T01:05
at 2017-03-29T01:05

By Cara
at 2017-04-02T12:49
at 2017-04-02T12:49

By Carolina Franco
at 2017-04-06T11:29
at 2017-04-06T11:29

By Bennie
at 2017-04-07T23:11
at 2017-04-07T23:11

By Tom
at 2017-04-09T07:07
at 2017-04-09T07:07

By Andy
at 2017-04-09T10:36
at 2017-04-09T10:36

By Noah
at 2017-04-10T09:23
at 2017-04-10T09:23

By Michael
at 2017-04-13T03:02
at 2017-04-13T03:02

By Ula
at 2017-04-16T05:12
at 2017-04-16T05:12

By Ula
at 2017-04-16T21:32
at 2017-04-16T21:32

By Joe
at 2017-04-20T23:08
at 2017-04-20T23:08

By Kumar
at 2017-04-22T22:33
at 2017-04-22T22:33

By Ophelia
at 2017-04-26T10:30
at 2017-04-26T10:30

By Edith
at 2017-04-29T00:59
at 2017-04-29T00:59

By Lauren
at 2017-04-30T09:43
at 2017-04-30T09:43

By Hedda
at 2017-05-01T19:14
at 2017-05-01T19:14

By Brianna
at 2017-05-06T07:51
at 2017-05-06T07:51

By Hedda
at 2017-05-10T00:54
at 2017-05-10T00:54

By Lucy
at 2017-05-14T20:36
at 2017-05-14T20:36

By Aaliyah
at 2017-05-17T17:44
at 2017-05-17T17:44

By Lauren
at 2017-05-20T08:18
at 2017-05-20T08:18

By Eden
at 2017-05-21T05:21
at 2017-05-21T05:21

By Rae
at 2017-05-25T01:38
at 2017-05-25T01:38

By Lauren
at 2017-05-25T12:18
at 2017-05-25T12:18
Related Posts
延長虛無圖騰時效和範圍

By Jake
at 2017-03-14T00:54
at 2017-03-14T00:54
雷雲樹(可跨服)-休閒團招生

By Kyle
at 2017-03-14T00:02
at 2017-03-14T00:02
部落方軍團團隊高手成就

By Sarah
at 2017-03-13T23:55
at 2017-03-13T23:55
請不要刪除垃圾橘裝

By Olive
at 2017-03-13T22:49
at 2017-03-13T22:49
傳奇暗夜堡-火法視角

By Robert
at 2017-03-13T21:35
at 2017-03-13T21:35