[心得] Weakauras 自訂篇
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想做的歡迎詢問(?
--
葡萄酒商勒修斯說:進到桶子,踏踩那些水果!
葡萄酒商勒修斯說:進到桶子,踏踩那些水果!
葡萄酒商勒修斯說:進到桶子,踏踩那些水果!
葡萄酒商勒修斯說:進到桶子,踏踩那些水果!
葡萄酒商勒修斯說:進到桶子,踏踩那些水果!
葡萄酒商勒修斯說:你一定能成為厲害的酒商!又有一批秘能酒準備好出貨了。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.116.66.1
※ 文章網址: https://www.ptt.cc/bbs/WOW/M.1489425468.A.8B3.html
推
03/14 01:24, , 1F
03/14 01:24, 1F
→
03/14 01:41, , 2F
03/14 01:41, 2F
推
03/14 01:45, , 3F
03/14 01:45, 3F
→
03/14 01:51, , 4F
03/14 01:51, 4F
→
03/14 01:54, , 5F
03/14 01:54, 5F
推
03/14 08:24, , 6F
03/14 08:24, 6F
→
03/14 08:38, , 7F
03/14 08:38, 7F
→
03/14 08:38, , 8F
03/14 08:38, 8F
推
03/14 09:04, , 9F
03/14 09:04, 9F
推
03/14 09:10, , 10F
03/14 09:10, 10F
推
03/14 09:58, , 11F
03/14 09:58, 11F
推
03/14 10:45, , 12F
03/14 10:45, 12F
→
03/14 10:48, , 13F
03/14 10:48, 13F
※ 編輯: aegius1r (61.222.31.187), 03/14/2017 10:52:59
推
03/14 12:30, , 14F
03/14 12:30, 14F
→
03/14 12:30, , 15F
03/14 12:30, 15F
推
03/14 12:55, , 16F
03/14 12:55, 16F
→
03/14 13:12, , 17F
03/14 13:12, 17F
→
03/14 13:12, , 18F
03/14 13:12, 18F
→
03/14 20:20, , 19F
03/14 20:20, 19F
→
03/14 20:21, , 20F
03/14 20:21, 20F
→
03/14 20:21, , 21F
03/14 20:21, 21F
推
03/14 20:40, , 22F
03/14 20:40, 22F
推
03/15 00:53, , 23F
03/15 00:53, 23F
推
03/15 00:58, , 24F
03/15 00:58, 24F
→
03/15 14:50, , 25F
03/15 14:50, 25F
→
03/15 14:51, , 26F
03/15 14:51, 26F
※ 編輯: aegius1r (1.200.227.109), 03/15/2017 14:51:43
推
03/15 14:51, , 27F
03/15 14:51, 27F
→
03/15 14:52, , 28F
03/15 14:52, 28F
→
03/15 15:00, , 29F
03/15 15:00, 29F
→
03/15 15:01, , 30F
03/15 15:01, 30F
→
03/15 15:02, , 31F
03/15 15:02, 31F
推
03/15 15:15, , 32F
03/15 15:15, 32F
2017/3/23 試著丟了一個aura上wago.io~
https://wago.io/NJJHJsoif BossSpellTrack
會新增一個按鈕 按下去之後 戰鬥中會列印出boss唱法的紀錄+時間
用來記錄時間軸用的 不然看log有一點煩XD
※ 編輯: aegius1r (61.222.31.187), 03/23/2017 12:14:57