作者aegius1r (Istar@hellscream)
看板WOW
標題[心得] Weakaura 自訂篇
時間Tue Mar 14 01:17:37 2017
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
推 raider01: 其實聖騎的奉獻BUFF也有類似的狀況03/14 01:24
→ raider01: 抱歉,推錯篇了03/14 01:41
推 gbaian10: 簽名檔少一次吧,我記得任務要弄6次03/14 01:45
→ aegius1r: 放不下惹03/14 01:51
→ gbaian10: 原來乳此03/14 01:54
推 awaited: 寫個WA死掉後顯示巨大的「白痴別再放魂了等群活」03/14 08:24
→ aegius1r: 上次還真的有看到 我找一下..03/14 08:38
推 QingTing: 雖然看得懂,但沒愛無法玩那麼深入03/14 09:04
推 sukura99: 用心~推推03/14 09:10
推 garfunkel: 我還蠻喜歡有人誤放魂的 一直滅需要一點時間平復情緒03/14 09:58
推 awaited: XD 曾經遇到過因放魂而吵架..03/14 10:45
→ aegius1r: 跳法刃拓斷橋 深刻體會阿 嗚嗚03/14 10:48
※ 編輯: aegius1r (61.222.31.187), 03/14/2017 10:52:59
推 lfstgenius: 存到銀行那個材料銀行滿了他不給存材料耶 要怎麼改才03/14 12:30
→ lfstgenius: 可以讓它存在一般銀行03/14 12:30
推 Titus: 推WA!自訂那邊超詳細欸讚03/14 12:55
→ aegius1r: 這我要想想 剛剛翻了一下好像沒有材料銀行格子的api 03/14 13:12
→ aegius1r: 現在的做法單純是跑DepositReagentBank()把東西都丟進去03/14 13:12
→ aegius1r: 判斷一下是不是交易技能材料 是的話就先丟進銀行03/14 20:21
→ aegius1r: 再把材料存進材料倉03/14 20:21
推 Onine24: 這我直接跳過,還是用用內建的觸發就好XD03/14 20:40
推 MeauD2: 推 讚 繼續!!!03/15 00:53
推 CIIIO: 推03/15 00:58
→ aegius1r: 暫時應該不會有下集 因為不知道要寫什麼03/15 14:50
→ aegius1r: 有任何idea或問題歡迎寄信XD03/15 14:51
※ 編輯: aegius1r (1.200.227.109), 03/15/2017 14:51:43
推 lfstgenius: 真不錯 感謝!! 還有個問題有沒有辦法做個按鈕可以吃 03/15 14:51
→ lfstgenius: 神兵 不用一個個去點 03/15 14:52
→ aegius1r: 這個有addon 也有weakaura~ 03/15 15:00
推 lfstgenius: !! 感謝 03/15 15:15
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