[心得] Weakauras 自訂篇

看板WOW作者 (Istar@hellscream)時間7年前 (2017/03/14 01:17), 7年前編輯推噓14(14018)
留言32則, 12人參與, 最新討論串1/1
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
其實聖騎的奉獻BUFF也有類似的狀況
03/14 01:24, 1F

03/14 01:41, , 2F
抱歉,推錯篇了
03/14 01:41, 2F

03/14 01:45, , 3F
簽名檔少一次吧,我記得任務要弄6次
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
寫個WA死掉後顯示巨大的「白痴別再放魂了等群活」
03/14 08:24, 6F

03/14 08:38, , 7F
上次還真的有看到 我找一下..
03/14 08:38, 7F

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
XD 曾經遇到過因放魂而吵架..
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
推WA!自訂那邊超詳細欸讚
03/14 12:55, 16F

03/14 13:12, , 17F
這我要想想 剛剛翻了一下好像沒有材料銀行格子的api
03/14 13:12, 17F

03/14 13:12, , 18F
現在的做法單純是跑DepositReagentBank()把東西都丟進去
03/14 13:12, 18F

03/14 20:20, , 19F
http://pastebin.com/kjiEYE2w 改好了XD 其實做法挺簡單
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
這我直接跳過,還是用用內建的觸發就好XD
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
有任何idea或問題歡迎寄信XD
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
這個有addon 也有weakaura~
03/15 15:00, 29F

03/15 15:01, , 30F
03/15 15:01, 30F

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
文章代碼(AID): #1OnjGyYp (WOW)