NameplateCooldowns外掛程式分析

來源:互聯網
上載者:User

標籤:

功能:Shows the cooldowns of enemy players above their nameplates

沒有使用Ace3庫,只包含兩個檔案:localizations.lua 和NameplateCooldowns.lua

1、localizations.lua,定義了多國語言介面文字,使用addonTable.L將文字內容傳遞給NameplateCooldowns.lua
local addonName, addonTable = ...;
addonTable.L = locales[GetLocale()];
--NameplateCooldowns.lua--
local addonName, addonTable = ...;
local L = addonTable.L;
...
Print(L["...

2、NameplateCooldowns.lua 尋找姓名板CheckForNewNameplates(),使用了WOW API的WorldFrame。姓名板框體儲存在WorldFrame框體下,使用WorldFrame:GetChildren(),通過尋找框體名字匹配字串"NamePlate",來找出所有的姓名板框體

3、姓名板框體鉤子指令碼frame:HookScript("OnShow", Nameplate_OnShow) 和frame:HookScript("OnHide", Nameplate_OnHide),配合姓名板顯示設定,調用UpdateOnlyOneNameplate來更新技能冷卻表徵圖。UpdateOnlyOneNameplate通過之前監控戰鬥日誌事件儲存的技能CD資訊來建立和更新該姓名板上的所有技能CD表徵圖。主要通過CreateFrame函數建立表徵圖,並使用frame.NCIconsCount 和frame.NCIcons 來儲存表徵圖,然後通過一系列Set函數來更新表徵圖狀態

4、整個外掛程式的主框體EventFrame,作為代碼入口,註冊了"PLAYER_ENTERING_WORLD" 和"COMBAT_LOG_EVENT_UNFILTERED" 事件的監聽函數。前者初始化一些內容,後者關注了4個變數:eventType、srcName、srcFlags、spellID。eventType監控了"SPELL_CAST_SUCCESS"、"SPELL_AURA_APPLIED"、"SPELL_MISSED"、"SPELL_SUMMON";srcName提供角色名稱;srcFlags用來判定是否敵對角色;spellID就是技能法術ID。最後還是通過UpdateOnlyOneNameplate來更新姓名板表徵圖

5、最後是‘/nc‘命令顯示的配置介面,這個配置介面做得很實用,直接列出每個職業可以監控的技能,讓我們自己選要監控哪些,並且滑鼠移上去可以看到技能的詳細資料。GUIFrame就是一個簡單的Frame,使用按鈕、划動條、字型等等來建立介面。技能表徵圖按鈕監控了"OnEnter"、"OnLeave"、"OnClick"用來顯示和隱藏技能Tooltip以及配置技能監控的開關

NameplateCooldowns外掛程式分析

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.