參考資料 › 函式參考 › Conditions

Conditions.common.Widget_UnitWidget

公用

呼叫方式

addon:Widget_UnitWidget(value, units, update, field)

可直接透過 addon 使用,不需要相依項目。

作用

建立一個綁定到條件值記錄的已設定單位選擇器。傳回該元件,由呼叫端將其新增到條件回呼的父層。

參數

名稱類型作用
selfRMAddonRotation Master 插件實例(使用冒號呼叫時隱含傳入)。
valuetable選擇單位時會被更新的條件值記錄。
unitstable選擇器中顯示的單位鍵到顯示名稱的對應。
updatefunction變更所選單位後呼叫的回呼。
fieldstring | nil要編輯的值記錄欄位;預設為 unit。

傳回值

1RMConditionSelector已設定的單位選擇器;使用 parent:AddChild(widget) 新增它。

版本

內建輔助函式在每個版本上都會註冊。不同的是它們讀取的遊戲 API;某個 API 不存在時,輔助函式會改用備用方式,或傳回 nil 並附上原因。

它不會直接讀取任何遊戲 API。

插件如何呼叫它

  • 可攻擊 (widget)
    local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet" }),
  • 超出近戰範圍 (widget)
    parent:AddChild(addon:Widget_UnitWidget(value,addon.units,function()
  • 存在增益效果 (widget)
    local unit = addon:Widget_UnitWidget(value, addon.units,
  • 增益效果剩餘時間 (widget)
    local unit = addon:Widget_UnitWidget(value, addon.units,
  • 增益效果層數 (widget)
    local unit = addon:Widget_UnitWidget(value, addon.units,
  • 施法中 (widget)
    local unit = addon:Widget_UnitWidget(value, addon.units,
  • 施法進度 (widget)
    local unit = addon:Widget_UnitWidget(value, addon.units,
  • 施法剩餘時間 (widget)
    local unit = addon:Widget_UnitWidget(value, addon.units,

以及另外 52 處: 施放特定法術 (widget), 施法可中斷 (widget), 引導中 (widget), 引導進度 (widget), 引導剩餘時間 (widget), 引導特定法術 (widget), 引導可中斷 (widget), 職業 (widget), 單位分類 (widget), 戰鬥中 (widget), 戰鬥動作歷史 (widget), 戰鬥動作歷史時間 (widget), 生物類型 (widget), 已死亡或處於鬼魂狀態 (widget), 存在減益效果 (widget), 減益效果剩餘時間 (widget), 減益效果層數 (widget), 存在某類減益效果 (widget), 距離 (widget), 敵對 (widget), 是友方 (widget), 在隊伍中 (widget), 生命力 (widget), 生命力百分比 (widget), 免疫 (widget), 是同一單位 (widget), 等級 (widget), 法力 (widget), 法力百分比 (widget), 團隊標記 (widget), 點數 (widget), 能量 (widget), 能量百分比 (widget), 範圍內的盟友 (widget), 範圍內的生命力 (widget), 範圍內的生命力百分比 (widget), 範圍內的生命力百分比計數 (widget), 範圍內的生命力計數 (widget), 範圍內的法力 (widget), 範圍內的法力百分比 (widget), 範圍內的法力百分比計數 (widget), 範圍內的法力計數 (widget), PvP 標記 (widget), 有抗性 (widget), 職責 (widget), 逃跑者 (widget), 角色屬性 (widget), 擁有可竊取的增益效果 (widget), 威脅值 (widget), 距離生命力達到所需時間 (widget), 距離生命力百分比達到所需時間 (widget), 單位存在 (widget)

原始碼

UI/condition_unit.lua,第 23 行。在遊戲中為唯讀;「複製」會產生一份可編輯的複本。

Conditions.common.Widget_UnitWidget(self, value, units, update, field)
    if field == nil then
        field = "unit"
    end
    local unit = addon:CreateConditionDropdown()
    unit:SetLabel(L["Unit"])
    unit:SetCallback("OnValueChanged", function(_, _, v)
        value[field] = v
        update()
    end)
    unit:SetDisabled(value.disabled)
    unit.configure = function()
        local choices=units
        local parent=unit.parent
        local top
        for _=1,128 do
            if not parent then break end
            top=parent:GetUserData('top')
            if top then break end
            parent=parent.parent
        end
        if field=='unit' and (value[field]=='announcementtarget' or top and top:GetUserData('announcementTarget')==true) then
            choices={};for key,label in pairs(units) do choices[key]=label end
            choices.announcementtarget=L['Announcement target']
        end
        unit:SetList(choices, addon.keys(choices))
        unit:SetValue(value[field])
    end

    return unit

返回函式參考