close

英語翻譯日語有點久沒寫weakaura的文章了 此次想講的器材會相對進階一點 假如對lua完全生疏的人就..end吧 (啥 但若是略微看得懂 又想做一些比較麻煩的功能 那這篇應當可以幫上一點忙 別的根基上天成翻譯公司一直都是本身邊做邊找ref 所以若是有失言就不負責啦 XDD 本篇會講的東西有 1. aura_env 情況 2. WeakAurasSaved 貯存變數 3. Trigger State Updater (TSU) 1. aura_env 情況 https://github.com/WeakAuras/WeakAuras2/wiki/The-Aura-Environment 首先從weakaura的架構講起 在建好一個aura以後 Weakaura首先會生一個對應的table出來 這個table叫做 aura_env 而關於這個weakaura的資訊 城市存在這個table傍邊 假如在weakaura的自訂觸發傍邊 抓到了一個字串 (例如說可能對話記載傳進來 拿到一個ID之類的) 那我想把它顯示在提醒結果的文字部門 該怎麼做呢? 變數這類東西是有範圍的 當然不克不及用local變數 會直接抓不到 用global規模又太大 搞不好哪天被其他aura或addon蓋掉就尷尬了 於是我們就把他附在aura_env這個table中 舉個例子 假定今天從 觸發/自訂/事件/CHAT_MSG_WHISPER (https://wow.gamepedia.com/index.php?title=CHAT_MSG_WHISPER ) 傳進來一個密語 (這是有人密翻譯公司的時辰會觸發的event ↑) 那觸發那處可以用 -> https://imgur.com/03b5DeX.jpg

https://imgur.com/e7lFFKe.jpg
function(event翻譯社 ...) local message, author = ... --只取前兩個 橫豎後面不想用XD aura_env.text = author .. ":" .. message -- 在這邊建個變數 等下可以用; 我但願顯示 "密的人:他說的話" return true end 接著在 提示結果/提醒結果文字 這邊 我們用%c去接 自訂函數用 -> https://imgur.com/ZJUaRqW.jpg
function() return aura_env.text or "" -- nil check end 如許就簡單建好一個 有人密翻譯公司的時刻 把密語內容接起來 顯示在文字部分的aura了 成果: https://pastebin.com/pJBCJJHA 那aura_env不只是自己接變數可以用 他自己也有良多器械存在裡面 就算不是用自訂變數也一樣 舉例來說 aura_env.id 這個就是aura自己的名稱 aura_env.state 這個是當觸發出來今後 貯存一些資訊的table aura_env.state.stacks 就是觸發的堆疊 在提示結果的%s aura_env.state.icon 觸發的圖示 %i aura_env.state.duration 觸發的持續時候 %p ......等等 其他可用的變數可以看這段最上面的保持 或是本身用loop去call看看 (for k,v in pairs(aura_env) do print(k,v) end) 善用這些變數 就可以在提示結果中自由組合 加判定式去寫一堆東西 但記得要做nil check 因為aura_env.state這器材不會那麼快建出來 別的天成翻譯公司本身習慣是 只要是變數或函數(function) 能的話我都邑在aura的初始化時界說出來 於是aura的初始化平日會長成這樣 https://imgur.com/MJ5lEel.jpg
有點像header檔 XD 2. 儲存變數 光是有aura_env還不夠啊 天成翻譯公司但願拿到一個變數 我可以把它存起來 搞欠好我換腳色也想看 乃至我想把某些跨腳色的數值加起來算一下 到底我目前總共有多少錢! Weakaura會把變數存在 WeakAurasSaved["displays"][aura_env.id]裡面 (display是貯存所有aura內容的table 而aura_env.id固然就是天成翻譯公司們用的aura名稱) 而現實的儲存位置會在 World of Warcraft\WTF\Account\帳號\SavedVariables\WeakAuras.lua 這裡 如果翻譯公司真的去開這個lua檔 就會看到一堆table 大概像 https://imgur.com/fpbKssQ.jpg
於是我們也能夠照樣操作 舉例來講 我想算到底天成翻譯公司的總財產有多少 先建個aura 類型文字 觸發就自訂/狀況/所有框架 -> https://imgur.com/83Sv08v.jpg
https://imgur.com/KcY228m.jpg
function() WeakAurasSaved["displays"][aura_env.id]["Money"] = WeakAurasSaved["displays"][aura_env.id]["Money"] or {} -- 先建一個table來放資料 但是要看有無預設存檔 沒有才建 WeakAurasSaved["displays"][aura_env.id]["Money"][UnitName("player")] = GetMoney()/10000 -- GetMoney傳回今朝有若幹錢 但單元是銅 所以要除10000 aura_env.sum = 0 -- 起頭較量爭論總數 for k翻譯社v in pairs(WeakAurasSaved["displays"][aura_env.id]["Money"]) do aura_env.sum = aura_env.sum + v end return true end 顯示部分一樣用%c -> https://imgur.com/xyHFzF0.jpg
function() return aura_env.sum or 0 -- nil check end 以後只要登入腳色 這個aura就會去抓今朝錢的總數 自己儲存加總 然後告訴你有幾何 XD (這時候候的SavedVariables\weakauras.lua就會像 https://imgur.com/OHOyz8R )
功效: https://pastebin.com/33whNtWY 要提示的是 建議建一個 WeakAurasSaved["displays"][aura_env.id]["Data"] 之類的table 來貯存所有的變數 如許假如翻譯公司要清空資料 只要把這全部table wipe掉就好 否則你去開SavedVariables\weakauras.lua看 還有這個aura本身貯存的各類資料變數 包管亂成一團 XD 3. Trigger State Updater (TSU) 觸發狀況更新 https://github.com/WeakAuras/WeakAuras2/wiki/Trigger-State-Updater-(TSU) 如果到這邊還隨著上 由衷信服你 這些器材我搞了好久QQ 平常 一個aura就是對應到一個顯示 然則有時刻會進展 a. 統一個aura 可以給許多雷同的器械用 顯示N次 而我不進展雷同的aura反複copy個好幾遍 每一個只改個光環名稱 b. 做的時刻底子還不知道要顯示幾遍 抓出來才知道 這時候就能夠用TSU來做 開weakaura介面 看一下觸發/自訂/事宜類型 以往對照經常使用的是事宜跟狀況 目下當今要用的則是觸發狀況更新 https://imgur.com/Buju2xD.jpg
此次拿小隊來當例子 假如天成翻譯公司想要顯示每個人的血量好了 (話說這功能不是小隊框架就有了嗎? 可是我一時之間想不到好做的規範嘛 QQ) 先建一個進度條 載入部份只在步隊中 https://imgur.com/2AFfpC7.jpg
檢查的部份用所有框架 略微省事一點 固然有點吃效能 觸發狀況更新會把allstates這個表傳進來 看成第一個變數 所以function要去接他 (假如搜檢部份用事宜 那event, args就從第二個參數最先) function(allstates) -- 記得接這個table! for i = 0, 4 do local unit = (i == 0 and "player" or "party"..i) -- party1~4是小隊其他人 本身不在編號內 只好如許搞 if UnitExists(unit) then -- 確認這個人存在 allstates[i] = { -- TSU的部份入手下手 changed = true, show = true翻譯社 name = UnitName(unit), progressType = "static"翻譯社 value = UnitHealth(unit), total = UnitHealthMax(unit), } end end return true end -> https://imgur.com/N8R9Ie3.jpg
來細講TSU那段在幹嗎 起首我們改了allstate[i] 方才i是0~4 劃分代表小隊中的每一個人編號 changed 這個狀況i被改過了 show 這個狀況i天成翻譯公司進展它顯示出來 以上兩個剛設立建設時必然都是true name 我進展出來的名稱是誰 可以用%n接 progressType 進度條的類型 有分timed跟static timed就是算時候 離別傳兩個number給duration跟expirationTime 跟平時用進度條的方式對照像 可以設守時間到會消逝 static是自訂進度 這邊用value是UnitHealth(unit) 第i小我的血量 total是UnitHealthMax(unit) 第i小我的總血量 而duration/value可以用%p接 expirationTime/total可以用%t接 (其餘還有icon, texture翻譯社 stacks等等 或是也可以自界說) 於是寫好了觸發今後 進度條左側擺 %n 右側擺%p/%t 略微改一下樣式 顯示出來就是一個會主動copy的進度條 讓你看小隊裡面所有人的血量 https://imgur.com/BX391qk.jpg
..然後翻譯公司會發現 有兩小我以上他就糊在一路惹 https://imgur.com/pxaUPfS.jpg
空話 你做了兩個進度條 把他們擺在一樣的位置 不糊才有鬼 所以再建一個動態模組 把這個進度條丟進裡面 https://imgur.com/p7vteld.jpg
他就會幫你放置群組增進 對齊 置中等等樣式了 這時候候你會發現 有人退隊了 阿他的血條還在? 緣由是我們註冊了allstates 在該不見時卻沒有把他移除掉 那最簡單的方式是 每次搜檢我都把所有的人移除掉 從新放就行了嘛 在方才那段code的第二行 加上 for k,v in pairs(allstates) do allstates[k].changed = true allstates[k].show = false end -> https://imgur.com/Ai69Y2Z.jpg
在每次更新時 他都先把每個狀況標示為有改變 然後不顯示 如許假如後面沒被建起來 這個狀況就會被消去 到達天成翻譯公司們的目的 可能就是這些 橫豎本身著手做看看 應當會幾許做出一點功效 然後不要怕bugsack一向逼逼叫 這是正常的 修到他不會叫就及格了 XD 功效: https://pastebin.com/B6V4EBfj 底下擺一些作品 https://wago.io/r1eVBDiaG 算全部帳號的聲譽值總量 轉換成品級 不知道bfa會怎麼換算曩昔 所以以後可能會再改XD https://wago.io/B1EWsFWkm 幫達到斬殺線的目的 血條上個標 https://wago.io/HyUtnL-e7 看暗盤的時刻 貯存資料 而且傳給跟本身同公會/同頻道(要本身設定) 的人 這樣你朋侪看暗盤 你也會知道有那些器械 https://wago.io/H1AoOSYAG 當你afk 有人密你/在頻道提到設定的樞紐字的時刻 把訊息存起來 等翻譯公司不再afk或下次登入時秀出來看 還有其他器械 我目下當今都丟wago.io了 https://wago.io/p/aegius1r 以上~ 直接end的舉個手 ._./ -- 葡萄酒商勒修斯說:進到桶子,踏踩那些生果! 葡萄酒商勒修斯說:進到桶子,踏踩那些生果! 葡萄酒商勒修斯說:進到桶子,踏踩那些生果! 葡萄酒商勒修斯說:進到桶子,踏踩那些生果! 葡萄酒商勒修斯說:進到桶子,踏踩那些生果! 凡席爾說:你必然能成為利害的酒商!又有一批秘能酒準備好出貨了翻譯乾 真的是你耶

本篇文章引用自此: https://www.ptt.cc/bbs/WOW/M.1528960349.A.BC1.html有關各國語文翻譯公證的問題歡迎諮詢天成翻譯公司02-77260931

arrow
arrow
    文章標籤
    翻譯社
    全站熱搜
    創作者介紹
    創作者 floressknryt 的頭像
    floressknryt

    這裡是和天成翻譯有關的地盤,歡迎到訪我的BLOG!

    floressknryt 發表在 痞客邦 留言(0) 人氣()