參考資料

函式參考

自訂條件回呼

自訂條件由一組 Lua 函式主體組成。每個函式主體都會收到以下參數;addon 與 L 在所有函式主體中皆可使用。

evaluate(value, cache, evalStart)

判斷此條件目前是否符合。

valuetable此條件已儲存的值。
cachetable本次評估週期的共用資料。
evalStartnumber評估開始時間,單位為秒,取自 GetTime()。
傳回值boolean | niltrue 表示符合;false 或 nil 表示不符合。

valid(spec, value)

檢查已儲存的條件值是否完整且有效。

specnumber循環的專精範圍。
valuetable此條件已儲存的值。
傳回值boolean條件可以被評估時為 true。

print(spec, value)

用易讀的文字描述該條件。

specnumber循環的專精範圍。
valuetable此條件已儲存的值。
傳回值string | RMConditionPhrase一個可讀字串,或來自 Functions.presentation.phrase 的暫時具名短語。具名值保持原樣;具型別的判斷會選擇肯定或否定措辭。舊版字串格式仍受支援。

widget(parent, spec, value)

建構用於編輯此條件的控制項。

parentRMConditionGroup由介面轉接器提供的條件欄位容器。
specnumber循環的專精範圍。
valuetable此條件已儲存的值。
傳回值nil向提供的容器中新增控制項。

help(frame)

建構此條件的說明內容。

frameRMConditionGroup由介面轉接器提供的說明容器。
傳回值nil向提供的容器中新增說明內容。

on_register(tag)

在註冊條件時初始化資源。

tagstring條件識別碼。
傳回值nil不使用傳回值。

on_unregister(tag)

在條件被移除或取代時釋放資源。

tagstring條件識別碼。
傳回值nil不使用傳回值。

你的程式碼可以使用的值

addonRMAddonRotation Master 插件實例。公用輔助函式的說明請見 Functions。
Ltable在地化的 Rotation Master 文字,以其英文鍵為索引。
addon.unitstable<string, string>受支援的單位代碼到在地化單位名稱的查詢表。以 value.unit 作為鍵;例如 addon.units[value.unit]。可用的代碼因用戶端而異。
addon.unitsPossessivetable<string, string>受支援的單位代碼到在地化所有格單位名稱(例如「你的目標的」)的查詢表。
addon.PlatformRMPlatformRotation Master 用戶端相容性轉接器。其方法傳回一般的可讀結果;當觀測無法使用時傳回 nil 及原因。請使用冒號呼叫,或在點號參照時明確將 addon.Platform 作為 self 傳入。
addon.SpellCatalogRMSpellCatalogRotation Master 法術目錄,用於解析因用戶端而異的法術 ID、等級、名稱、圖示與連結。
functionstable<string, function>明確綁定到此條件或函式的工具函式。在插入其參照前,選擇一個自動完成項目以綁定可用的自訂函式。

自訂程式碼可用的 WoW API

內建輔助函式

遊戲中「函式」分頁列為內建的輔助函式。公用輔助函式直接以名稱呼叫;其他輔助函式需繫結為相依項目(選擇自動完成項目,或在「相依項目」中新增),再以其完整名稱呼叫。

240 個輔助函式中的 240 個。

Conditions.bossmod.encounterNote 相依項目Builds the status line the boss-mod condition editors show about the current encounter.
Conditions.bossmod.idEditor 相依項目Builds a full-width edit box for an optional boss-mod ID (such as the encounter ID) and adds it to parent.
Conditions.bossmod.note 相依項目Adds a full-width text label to a boss-mod condition editor; used for the encounter and timer status lines.
Conditions.bossmod.timerNote 相依項目Builds the status line the boss-mod condition editors show about running boss-mod timers.
Conditions.bossmod.validCompare 相依項目Validation check for a boss-mod condition's comparison: true when value.operator is one of addon.operators and value.value is a finite number of zero or more.
Conditions.bossmod.validID 相依項目True when value is a positive whole number below 2^31, the accepted shape of a saved boss-mod encounter or spell ID.
Conditions.build.imbueObservation 相依項目Reads the temporary enchant ID on the main hand, or the off hand when value.offhand is set, for the WEAPON_IMBUE condition.
Conditions.build.setLabel 相依項目Formats an item set ID for the SET_PIECES description: the set name with its ID when addon:GetItemSetName knows it, otherwise "item set N".
Conditions.build.wholeNumber 相依項目True when value is a positive, finite whole number; SET_PIECES uses it to validate the saved item set ID.
Conditions.common.Widget_GetSpellId 公用解析條件中儲存的法術識別碼。啟用精確等級時會保留所提供的 ID;否則在有等級的經典版用戶端上,會透過法術目錄解析目前已知的等級。無法完成解析時傳回 nil 與可用性原因。
Conditions.common.Widget_SpellWidget 公用為自訂條件元件建立一個帶有建議、驗證與法術連結支援的法術輸入框。更新回呼負責儲存所選的值;將傳回的元件新增到回呼的父層。
Conditions.common.Widget_UnitWidget 公用建立一個綁定到條件值記錄的已設定單位選擇器。傳回該元件,由呼叫端將其新增到條件回呼的父層。
Conditions.edition_state.eclipseMeasures 相依項目Lists the two measures of the Eclipse condition with their editor labels.
Conditions.edition_state.validCompare 相依項目Checks that a condition value carries a known comparison operator and a finite, non-negative number to compare against.
Conditions.encounter_state.validCompare 相依項目Checks that a condition value carries a known comparison operator and a finite, non-negative number to compare against.
Conditions.encounter_state.validNumber 相依項目Checks that a value is a finite number of zero or more (not NaN, not infinite).
Conditions.engraving.identifier 相依項目True when value is a positive whole number below 2^31; RUNE_ENGRAVED uses it to validate a saved rune ID.
Conditions.engraving.runeLabel 相依項目Names the rune selected in a RUNE_ENGRAVED condition: the known rune's name when the platform finds it, else the rune spell's name, else "rune spell N" or "rune N".
Conditions.equipment.matches 相依項目Tests one equipment slot record against a WEAPON_TYPE condition: empty slot, shield, any weapon, holdable, one-hand, two-hand, ranged, or a specific weapon subclass.
Conditions.equipment.subclassID 相依項目True when value is a whole number from 0 to 31, the range of weapon subclass IDs WEAPON_TYPE accepts.
Conditions.equipment.subclassName 相依項目Names a weapon subclass for WEAPON_TYPE descriptions, using the client's GetItemSubClassInfo when it returns a readable name, else the addon's built-in name, else "weapon type N".
Conditions.group_state.measureNames 相依項目Lists what the Group Count condition can count, with the editor label of each.
Conditions.group_state.validCompare 相依項目Checks that a Group Count value carries a known operator and a finite, non-negative number, which is at most 100 when the count is a percent of the group.
Conditions.hero_talent.listedSpec 相依項目Returns the specialization ID when it is one of the player's own class's specializations, which are the only ones whose hero talent trees the game can list.
Conditions.hero_talent.treeName 相依項目Names a hero talent tree: the game's own name for it when Platform:GetHeroTreeName can read one, else "hero talent tree" followed by the ID.
Conditions.hero_talent.validTree 相依項目Checks that a value can be a hero talent tree ID: a positive whole number below 2^31.
Conditions.item.get_item_desc 相依項目Describes an item reference for the item condition descriptions: an item set name (white for a profile set, cyan for a global one), or the first item's link or name followed by how many others are listed.
Conditions.item.itemHelp 相依項目Adds the item condition editors' help text to frame: the shared item widget help, a gap, and a note on how item sets, bag counts and restricted observations are evaluated.
Conditions.known_spell.validID 相依項目True when value is a positive, finite whole number; SPELL_KNOWN uses it to validate the saved spell ID.
Conditions.misc.difficultyKind 相依項目Names the kind of group a difficulty is for, from the group GetDifficultyInfo reports.
Conditions.misc.difficultyName 相依項目The display name of an instance difficulty ID: the game's name for it (GetDifficultyInfo) with the kind of group in parentheses when the game gives one.
Conditions.misc.validWhole 相依項目Checks that a value can be a difficulty or instance ID: a whole number from 0 up to 2^31.
Conditions.player_state.stateNames 相依項目Lists the states the Player State condition offers, with the editor label of each.
Conditions.player_state.statePhrase 相依項目The readable sentence for one Player State, such as "you are mounted", worded so a Not flips it to "you are not mounted".
Conditions.raid_marks.markListText 相依項目Formats a valid list of markers in priority order.
Conditions.raid_marks.markName 相依項目Returns the game's localized name for a raid marker, falling back to its English name.
Conditions.raid_marks.modeNames 相依項目Returns the localized labels for the any, none and selected-mark modes.
Conditions.raid_marks.validMark 相依項目Checks a saved marker mode or a comma-separated list of distinct marker names.
Conditions.spatial_stats.aggregate 相依項目Reduces the per-unit readings a PROXIMITY_* condition collected to one statistic: their average, minimum or maximum.
Conditions.spatial_stats.observation 相依項目Reads one health or mana number for a PROXIMITY_* condition through the evaluation cache, protected against errors.
Conditions.spatial_stats.statistic 相依項目Reads one unit's health or mana for the PROXIMITY_* conditions as an absolute value, a percentage of the maximum, or the deficit below the maximum.
Conditions.spatial.booleanRead 相依項目Calls a yes/no game API through the evaluation cache, protected against errors, for the distance conditions.
Conditions.spatial.combatFilter 相依項目Applies the In Combat option of Distance Count to one unit: with the option off every unit passes, with it on the unit must be in combat (UnitAffectingCombat).
Conditions.spatial.finite 相依項目True when value is a number that is neither NaN nor infinite.
Conditions.spatial.nameplateDistanceCount 相依項目Counts units for DISTANCE_COUNT from a nameplate unit snapshot: units that exist, whose hostility matches value.enemy, and that are definitely within value.distance yards.
Conditions.spatial.protectedRead 相依項目來自 Conditions/spatial.lua 的內建輔助函式。
Conditions.spatial.rangeMember 相依項目Decides whether unit is within distance yards from the platform's cached range-check bounds: true when the maximum bound is at or inside distance, false when the minimum bound is beyond it (or equals a nonzero distance), otherwise unavailable.
Conditions.spatial.rcf 相依項目Returns the LibRangeCheck-3.0 range estimate for a unit as minimum and maximum yards.
Conditions.specialization.classChoices 相依項目Builds the specialization choices for one class in the SPECIALIZATION editor.
Conditions.specialization.playerClass 相依項目Returns the player's class file token (such as "MAGE") from UnitClass, or nil when the call fails or the value is restricted.
Conditions.specialization.specClass 相依項目Looks up which class a specialization ID belongs to, from the built-in specialization table or else the platform's specialization display data.
Conditions.specialization.specID 相依項目True when value is a positive, finite whole number, the accepted shape of a saved specialization ID.
Conditions.specialization.specName 相依項目Names a specialization for SPECIALIZATION descriptions: the platform's display name and icon, else the built-in localized name, else "specialization N".
Conditions.talent.block 相依項目Adds a full-width group laid out as icon rows (the icon on the left, the picker rows beside it) to a condition widget.
Conditions.talent.classSpecs 相依項目Lists the specializations of the player's class for the Talent condition's Specialization picker, so a rotation can pick the talents of a specialization other than the one being played.
Conditions.talent.dropdown 相依項目Creates a full-width condition dropdown labeled title for the talent condition editors, forwards each selection to changed, and adds it to parent.
Conditions.talent.gridWidget 相依項目Builds the TALENT editor controls for the tier-and-column grid talent layout: a talent icon and a dropdown of the client's grid talents (up to 18).
Conditions.talent.group 相依項目Returns the talent group to query for spec: spec itself on progression clients when it is a whole number from 1 to 4, otherwise nil so the platform uses its default group.
Conditions.talent.groupLabel 相依項目The heading above one group of talents in the Retail and Forever talent list: class talents, specialization talents, both, one hero tree, or a plain name.
Conditions.talent.icon 相依項目Creates the 44-pixel talent icon for the TALENT editors, showing the referenced talent's icon and, on hover, its spell tooltip (or its name), and adds it to parent.
Conditions.talent.info 相依項目Looks up the talent a TALENT condition refers to, according to its layout: a trait node and entry, a grid index, or a tree and talent index.
Conditions.talent.integer 相依項目True when value is a whole number between minimum and maximum, inclusive.
Conditions.talent.legacySlot 相依項目True when a TALENT condition still uses the historical single-number layout: no layout, tree or talent field, and value.value a whole number from 1 to 21.
Conditions.talent.ownTrees 相依項目Whether the talent trees shown are the player's own class's, so the game can name them, rather than another class's trees from the addon's shipped list.
Conditions.talent.text 相依項目Adds a full-width explanatory label to a talent condition editor.
Conditions.talent.traitFamily 相依項目True when the client uses trait talents, that is the retail or forever client families.
Conditions.talent.traitShape 相依項目True when value.layout is "traits", meaning the TALENT condition names a trait node.
Conditions.talent.traitsWidget 相依項目Builds the TALENT editor controls for trait talents: a talent tree dropdown when there are several, a talent dropdown, Talent Node ID and Choice Entry ID edit boxes, and a Rank comparison.
Conditions.talent.treeExists 相依項目Checks that a talent condition's tree index exists on this client, using the cached platform talent tree count.
Conditions.talent.treeName 相依項目Names the talent tree in a talent tree condition's description: the client's tree name, else "Talent tree N", else "<talent tree>" when no tree is set.
Conditions.talent.treePicker 相依項目Builds the Talent tree dropdown for the TALENT_TREE_POINTS and PRIMARY_TALENT_TREE editors, listing the client's talent trees, storing the selection in value.tree and calling update.
Conditions.talent.treeShape 相依項目True when a TALENT condition uses the tree layout (layout nil or "tree") with both tree and talent set.
Conditions.talent.treeWidget 相依項目Builds the TALENT editor controls for Classic talent trees: a tree dropdown, a talent icon, a talent dropdown for the chosen tree, and a Points comparison.
Conditions.totem.amount 相依項目True when a totem condition's comparison is usable: value.value is a nonnegative finite number and value.operator is one of addon.operators.
Conditions.totem.element 相依項目True when value.spell is a valid spell ID of 4 or less, meaning the condition names a totem element slot rather than a totem spell.
Conditions.totem.findSpecific 相依項目Searches the totem slots for an active totem matching value.spell, by spell ID or name (only the exact spell ID when value.ranked is set).
Conditions.totem.observe 相依項目Calls a totem platform method through the evaluation cache, passing the platform as its self argument.
Conditions.totem.remaining 相依項目Seconds left on a totem slot record at time start (or now): zero when the totem is inactive, and never negative.
Conditions.totem.specific 相依項目True when a totem spell condition names a valid spell ID and value.ranked is nil or a boolean.
Conditions.weapon.enchantObservation 相依項目Reads whether the main hand, or the off hand when value.offhand is set, has a temporary weapon enchant for the weapon conditions, with its expiration and charges.
Conditions.weapon.numericObservation 相依項目Accepts a readable, nonnegative, finite number from a weapon observation and returns it unchanged; anything else becomes nil with a reason.
Conditions.weapon.swingSpeed 相依項目Reads the player's main-hand, or off-hand when value.offhand is set, attack speed from the cached UnitAttackSpeed for the swing timer conditions.
Core.class_group_conditions.GetClassGroupCount 公用統計目前固定名單中符合的職業代碼。先讀取隊伍成員身分;在要求時,團隊成員身分會選擇 raid1 到 raid40,而不另外讀取玩家資訊。單人與隊伍路徑會先讀取 player,組隊時再讀取 party1 到 party4。完整且已知的名單會傳回計數(包括零);任何所需資訊無法使用時傳回 nil 及原因。完整的觀測共用評估輪次快取;玩家職業不會跨輪次保留。已封存的原始回呼會另外保留其原有的載入時職業。
Core.creature_conditions.configuredID 相依項目Maps a stored CREATURE condition key to its numeric creature type, from BEAST (1) to GAS_CLUUD (13).
Core.creature_conditions.GetConditionCreatureTypeMatch 公用將所選單位的生物 ID 與一個現有的已儲存生物類型鍵進行比較。在一個私有的可執行對應器中解析固定的鍵到 ID 的對應;遊戲中的比對不依賴可變的在地化介面標題對應。在所提供的評估輪次快取中,依實際的觀測者、接收者與單位共用完整的原生觀測,包括不存在與無法使用的原因。已知不存在或已知 ID 不同時傳回 false;所需觀測無法使用時傳回 nil 及原因。不會新增長期狀態或修改標題。
Core.health_forecast_conditions.finite 相依項目Checks that a health-forecast number is readable and finite.
Core.health_forecast_conditions.GetConditionHealthForecast 公用估算距離達到所選生命力的時間。每個評估輪次快取完整的原生身分與惰性純量觀測,而提供者、歷史、時間區間、時鐘與預測保持即時。目標完全相等時,會在處理歷史之前傳回零。對於零速率或反向速率,保留刻意設計的「無估算」false 結果與初始化的零結果;所需資訊無效、溢位或 4096 單位工作量耗盡時為無法使用。絕不修改歷史或捏造部分估算。
Core.health_forecast_conditions.nativeValue 相依項目Reads a unit's current or maximum health through the platform's health-forecast observer and the evaluation cache, rejecting restricted, missing, nonfinite or negative values.
Core.health_forecast_conditions.readField 相依項目Reads object[key] for the health-forecast conditions without letting a restricted value, a non-table object or an index error escape.
Core.level_conditions.GetConditionUnitLevel 公用為條件評估解析可讀的原始單位等級。已知不存在時傳回 false;觀測無法使用時傳回 nil 及原因。在所提供的評估輪次內快取觀測。只有有效的玩家等級會在輪次之間保留,直到技能、設定檔或等級更新。
Core.point_conditions.editionPointResource 相依項目Selects the point resource for era and progression clients from the addon's per-edition map (combo points, Holy Power, Soul Shards, Chi, Shadow Orbs and similar).
Core.point_conditions.GetConditionPointResource 公用使用即時的職業到資源對應與 ComboPoints 備用,解析所選單位的點數資源選擇器。已知不存在時傳回 false;所需的身分或選擇器資料無法使用時傳回 nil 及原因。在評估輪次內共用完整的身分觀測。只有成功的玩家職業觀測會保留在目前的長期快取中,並與原生 UnitClass 身分綁定;存在性在每個輪次都會更新。這只選擇資源,不讀取其目前值或最大值。
Core.point_conditions.GetConditionPointResourceV2 公用使用原有的即時職業對應與身分快取解析點數資源,並採用明確的 TBC 玩家 ComboPoints 備用傳輸政策。若玩家備用與模組載入時擷取的可讀原始 Enum.PowerType 表格與 ComboPoints 值相符,則選擇 target-combo;明確的職業對應項目、其他角色與其他用戶端系列保留 power。被取代、繼承或無法證明來源的備用保留 power。此帶版本的政策並不聲稱原生 UnitPower 有問題或與之等效。已知單位不存在時傳回 false;所需觀測無法使用時傳回 nil 及原因。此處不查詢目前值或最大值。
Core.point_conditions.pointIdentity 相依項目Observes whether unit exists and, if so, its class, for the point-resource selectors.
Core.threat_count_conditions.finite 相依項目Checks that a threat-count number is readable and finite.
Core.threat_count_conditions.GetConditionThreatCount 公用只統計已在觀測成員快照中、以 GUID 為鍵的單位。在使用已發布的威脅值觀測器之前,會先驗證目前代碼的身分;已知不存在或被重複使用的代碼會被排除,且不會新增替代者。完整的身分與威脅值觀測只共用所提供的評估快取,而成員身分會重新走訪。已知的非敵人或選擇性的 nil 威脅值不計入;所需資訊無法讀取、格式錯誤或失敗時,整個結果為無法使用。這不會列舉完整的名單、套用距離篩選或修改被追蹤的記錄。
Core.threat_count_conditions.readField 相依項目Reads object[key] for the threat-count conditions without letting a restricted value, a non-table object or an index error escape.
Functions.cache.getCached 公用對每個快取與完全相同的參數元組只呼叫一次觀測,包括 nil 結果。傳入評估快取可在一個建議週期內共用觀測;快取為 nil 時直接呼叫。
Functions.cache.getRetryCached 公用在觀測傳回非 nil 值後將其快取;對整個傳回元組都為 nil 的觀測會重試。使用與 getCached 完全相同的參數鍵。
Functions.collections.cleanArray 公用原地移除項目,預設只保留 except 值中列出的鍵。invert 為 true 時,移除列出的鍵並保留未列出的鍵。沒有例外清單時,預設會移除所有項目,而 invert 為 true 時會保留所有項目。輸入為 nil 時不執行任何操作。
Functions.collections.compareArray 公用走訪兩個表格中的項目,並使用 Lua 相等比較將每個值與另一個表格中相應索引的值進行比較。一般的索引與相等中繼方法都會生效;巢狀內容不會被遞迴比較。
Functions.collections.deepcopy 公用儘管歷史上名為 deepcopy,它建立的是一個經過篩選的淺層複本。巢狀的值保留其原始身分,且不會複製來源表格的中繼表格。預設排除 except 值中列出的鍵;invert 為 true 時只包含列出的鍵。輸入為 nil 時傳回 nil。
Functions.collections.index 公用在 pairs 走訪過程中傳回第一個值等於所提供值的鍵。輸入表格為 nil 或 false 以及值不存在時傳回 nil。有多個相符的鍵時,選擇順序不確定。
Functions.collections.keys 公用收集表格的鍵,並使用 Lua 的小於比較依其對應的值排序。這是依值排序而不是依鍵名排序;值相等時鍵的順序不確定。
Functions.collections.multiinsert 公用將 ipairs 走訪到的每個值插入到目標陣列中對應的開頭索引處。現有項目會移到插入的前綴之後;走訪在第一個缺少的來源索引處停止。
Functions.collections.spairs 公用建立一個走訪表格鍵排序快照的迭代器。預設依鍵排序;自訂排序回呼會收到原始表格與兩個鍵。每次產出一個鍵時,值從原始表格中讀取。當下一個擷取的鍵為 nil 或 false 時,舊版迭代器結束。
Functions.collections.tablelength 公用統計 pairs 走訪到的所有項目,包括 false 值以及稀疏的數字鍵或非數字鍵。nil 表格的長度為零。
Functions.collections.tomap 公用複製一個表格,以每個原始鍵的 tostring 結果作為目標鍵。值保留其原始身分。字串化後相互衝突的鍵會依未指定的 pairs 走訪順序相互覆蓋。
Functions.forecast.calculate 公用使用明確的有限時間區間與時鐘,計算經過檢查的生命力歷史速率。保留有序加權、逐列即時標準捨入、被略過的資料流、陣列空洞、小數鍵以及最終存取時的時長。固定的 4096 單位預算涵蓋兩個資料流中被存取的列與累加區間;超出預算或無效的已消耗運算會傳回無法使用,絕不傳回部分估算或截斷值。這個新 API 有其自己的原始碼身分;歷史趨勢函式保持不變。
Functions.forecast.finite 相依項目Checks that a number used by Functions.forecast.calculate is readable and finite.
Functions.forecast.readField 相依項目Reads object[key] for Functions.forecast.calculate without letting a restricted value, a non-table object or an index error escape.
Functions.presentation.compareString 公用當運算子有否定形式時,使用命名布林備選項格式化比較措辭。primary 標記會將肯定形式標為主要措辭。肯定運算子標籤使用擷取的運算子對應;否定標籤與可為空分派保留其即時的插件 API。
Functions.presentation.nullable 公用原樣傳回存在的值;為 nil 時傳回紅色的顯示預留位置。用於可讀的條件標籤,而不是作為布林值的備用。
Functions.presentation.nullable_value 公用查詢表格中的鍵用於顯示,保留非 nil 的結果;無效的表格、缺少的鍵與 nil 鍵會使用可為空預留位置文字。
Functions.presentation.phrase 公用建立一個暫時的具名條件摘要。純量值使用 {name},判斷的正反兩種措辭使用 {{positive|negative}};在主要措辭前加上 !
Functions.presentation.playerize 公用僅當單位代碼為字面上的 player 時才選擇所提供的玩家值;其他所有單位都會選擇非玩家值。選中的 false 與 nil 值會被保留。
Functions.presentation.predicate 公用為具名條件短語建立一個具型別的比較判斷。肯定措辭使用原先擷取的運算子對應,否定措辭使用目前反轉後的運算子對應。主要判斷優先於限定詞;只有第一個符合條件的判斷會被反轉。未知運算子使用現有的運算子預留位置。這只格式化措辭,不比較值也不評估條件。
Functions.text.ends_with 公用使用 Lua 字串切片測試字面的位元組後綴。空後綴視為相符;模式字元沒有特殊含義,並區分大小寫。
Functions.text.split 公用將字串分割為分隔字元之間的非空片段。分隔符會被插入到 Lua 模式的字元類別中;它不是字面意義上的多字元分隔符。空欄位會被省略。
Functions.text.starts_with 公用使用 Lua 字串切片測試字面的位元組前綴。空前綴視為相符;模式字元沒有特殊含義,並區分大小寫。
Functions.text.trim 公用移除字串開頭與結尾符合 Lua 模式的空白字元。
Functions.text.wrap 公用在接近目標欄數的空白邊界處對文字換行。長單字會保持完整。
Functions.trends.calculate 公用根據加權的傷害與治療歷史估算帶正負號的生命力變化。傷害貢獻負速率,治療貢獻正速率。未提供時間區間時讀取即時設定檔中的時間區間,使用即時時鐘與舊版捨入服務,並保留現有的加權與捨入後時長計算。此輔助函式不會驗證或清理歷史,不會截斷時間戳記,也不保證結果有限。
Functions.trends.calculateOld 公用使用即時設定檔的歷史時間區間、時鐘與舊版捨入服務,執行歷史生命力快照的趨勢公式。保留其最大生命力的過渡、在滿血或零血時提前停止、加權、錯誤與傳回值數量。空陣列或未記錄任何加權變化的快照只傳回零,而不是 0/0 的結果;這是舊版演算法,而不是經過驗證的預測。
Functions.values.compare 公用使用 RM 運算子識別碼比較兩個值:LESSTHAN、LESSTHANOREQUALS、GREATERTHAN、GREATERTHANOREQUALS、EQUALS、NOTEQUALS 或 DIVISIBLE。無效的運算子會發出警告並傳回 nil;運算元必須支援所選的 Lua 運算。
Functions.values.isin 公用檢查表格中某個鍵是否有非 nil 的值。儲存的 false 值仍算作存在;這不會掃描表格中的值。
Functions.values.isint 公用執行舊版的整數或標準數字字串拼寫測試。數字使用無條件捨去後的相等比較;字串必須等於經數字轉換並無條件捨去後得到的拼寫。其他型別傳回 false。這不是有限數字的驗證器。
Functions.values.round 公用使用現有的 floor(num * 10^places + 0.5) / 10^places 公式進行捨入。places 預設為零,可以為負。處於一半的負值會向正無窮方向捨入;不會新增有限數字驗證或其他捨入政策。
Platform.actions.call 相依項目Calls a native API function in protected mode and returns its first result only when Rotation Master can read it.
Platform.actions.findSlot 相依項目Finds the spell-book slot of a spell with FindSpellBookSlotBySpellID.
Platform.actions.GetSpellRangeState 公用使用適當的用戶端 API 或法術書欄位,讀取某個單位針對特定法術的距離。沒有距離限制的法術傳回 applicable=false;否則 applicable=true,inRange 記錄該單位是否在距離內。未知或無法存取的觀測會傳回 nil 及原因。
Platform.actions.spellID 相依項目Validates a spell ID argument.
Platform.announcement_recipient.GetAnnouncementRecipientGroupMembership 公用將確切的施法對象名稱與目前有限的隊伍或團隊名單進行比對,然後透過單位代碼觀測其成員身分。名單資料缺少、含義不明確或正在變化時維持為無法使用;絕不讀取所選目標,也不在施法之間保留狀態。
Platform.casting.durationSeconds 相依項目Computes the total length of a cast or channel in seconds from the millisecond start and end times in a UnitCastingInfo or UnitChannelInfo result.
Platform.casting.finite 相依項目Returns true when value is a number that is neither NaN nor infinite, and false for anything else.
Platform.casting.GetUnitCastObservation 公用在探測或受限政策用戶端上觀測單位的施法或引導。已知不存在的單位或可讀的非活動結果傳回 active=false。活動記錄包含 name,或在名稱為機密時包含 nameReason(單位仍在施法),以及可獨立取得的 remainingSeconds、durationSeconds、interruptible 與 spellID 欄位;選用欄位無法使用時附帶 remainingReason、durationReason、interruptibleReason 或 spellReason。存在性觀測缺少、失敗或受限時傳回 nil 及原因。
Platform.casting.interruptibility 相依項目Converts the native notInterruptible flag of a cast or channel into an interruptible Boolean (its inverse).
Platform.casting.remainingSeconds 相依項目Converts the millisecond end time of a cast or channel into the seconds left, measured against a fresh GetTime() and clamped at zero.
Platform.casting.spellIdentity 相依項目Validates the spell ID field of a cast or channel result.
Platform.creature_type.GetUnitCreatureTypeID 公用在探測或受限政策用戶端上,從原生 UnitCreatureType 的第二個傳回值觀測生物身分。先檢查確切的 UnitExists(unit);可讀的 false 會直接傳回 false,不需要也不呼叫生物中繼資料。存在的單位要求可讀的有限數字 ID;未使用的在地化名稱不影響可用性。帶正負號、小數、零以及未來的有限 ID 都會作為已知值保留。所需資訊缺少、失敗、為 nil、受限或格式錯誤時傳回 nil 及原因。不會新增生物列舉、翻譯標題比較或長期快取。
Platform.form.GetPlayerFormObservation 公用使用一次受保護的無參數 GetShapeshiftForm 呼叫觀測玩家目前的形態。保留每個可讀的有限數字結果,包括零、帶正負號與小數值;不會推斷更嚴格的原生索引範圍。缺少、失敗、為 nil、受限或非有限的資料維持為無法使用。不會新增形態數量、職業、法術 ID、單位或選擇性參數。
Platform.glyphs.GetGlyphItemInfo 公用使用受保護的原生物品中繼資料,將一個數字物品歸類為所請求職業的雕紋。職業是選擇性的,預設為可讀取的玩家職業。這只確定物品分類,不確定裝備狀態,也不提供物品到雕紋法術 ID 的對應。
Platform.glyphs.GetGlyphSocketSnapshot 公用在已驗證的巫妖王之怒、浩劫與重生與潘達利亞之謎用戶端配置上觀測雕紋插槽。傳回 slots 與 complete 標記。每個插槽在已知鎖定或為空時為 active=false,被佔用時為 active=true 並附帶 spellID,無法使用時 active 為 nil 並附帶原因。未知配置與失敗的數量查詢會傳回 nil 及原因。這不會比較物品名稱,也不能證明物品與法術身分的確切對應。
Platform.glyphs.integer 相依項目Returns true when value is a finite whole number no smaller than minimum, and false for anything else (including NaN and infinity).
Platform.glyphs.layout 相依項目Maps client information to the position in the GetGlyphSocketInfo result that holds the glyph spell ID.
Platform.glyphs.socket 相依項目Reads one glyph socket by calling fn(index) in protected mode and always returns a slot record with slot=index.
Platform.groups.GetGroupMembership 公用在已識別的用戶端系列上讀取公開的隊伍成員身分。未知用戶端不受支援。raidOnly 為 true 時檢查 IsInRaid;為 false 或 nil 時使用原生預設的隊伍類別檢查 IsInGroup。可讀的 false 結果維持為 false。缺少、失敗、格式錯誤或受限的觀測會傳回 nil 及原因。
Platform.groups.GetUnitGroupMembership 公用讀取指定單位是否屬於玩家的隊伍或團隊。raidOnly 為 true 時只查詢 UnitInRaid;否則 UnitInParty 結果為 true 時直接傳回,為 false 時繼續查詢 UnitInRaid,未知時維持為無法使用。可讀的 nil 團隊索引表示 false;整數團隊索引 1..40 表示 true。名稱會原樣傳給原生 API;原生 API 是否接受名稱查詢需視用戶端而定。
Platform.health_forecast.finite 相依項目Returns true when value is a number that is neither NaN nor infinite, and false for anything else.
Platform.health_forecast.GetHealthForecastIdentityObservation 公用在探測或受限政策用戶端上觀測確切的 UnitExists(unit),然後僅對存在的單位觀測 UnitGUID(unit)。已知不存在時為 false。存在的身分要求可讀的非空 GUID;所需資訊缺少、失敗、格式錯誤或受限時為無法使用。不會新增生命力、提供者或額外單位的觀測。
Platform.health_forecast.GetHealthForecastProviderObservation 公用使用確切的單參數點號呼叫讀取選擇性的 RealMobHealth。命名空間不存在(nil/false)時傳回空記錄。分別標準化目前值與最大值:nil/false 欄位允許改用原生值,數字零仍視為存在。所使用的提供者資訊格式錯誤、失敗、受限、為負或非有限時為無法使用。不使用提供者或過期的備用快取。
Platform.health_forecast.GetHealthForecastTimeObservation 公用為所需的生命力預測重新觀測一次受保護的無參數 GetTime。要求結果可讀且為有限數字;保留帶正負號與小數值,不額外加入單調、整數或非負的限制。不使用時鐘快取或額外的原生查詢。
Platform.health_forecast.GetHealthForecastValueObservation 公用在另外的身分檢查之後讀取惰性的生命力純量。current 種類使用確切的 UnitHealth(unit);maximum 使用確切的 UnitHealthMax(unit)。探測或受限政策用戶端接受可讀的有限非負數字(包括零)。不會重複呼叫存在性/GUID 查詢,也不會改用其他元組。
Platform.health_forecast.providerValue 相依項目Normalizes one health figure returned by the RealMobHealth provider.
Platform.health_forecast.readField 相依項目Reads object[key] in protected mode.
Platform.instance.GetInstanceObservation 公用觀測一個受保護的無參數 IsInInstance 元組。所需的可讀布林成員值與類型欄位無關:已知在副本外時直接傳回,不解釋未使用的類型;在副本內時傳回可讀的字串類型,或在該次要欄位無法使用時傳回 instanceTypeReason。檢測是否在副本外的呼叫端只需要成員值;在副本內比較類型時必須檢查次要原因。不會新增戶外、區域或單位推斷。
Platform.items.finite 相依項目Returns true when value is a finite, nonnegative number (not NaN or infinity), and false for anything else.
Platform.items.GetItemInfoInstant 公用讀取正規化的原生物品分類中繼資料。記錄包含正規的 itemID、classID 與 subClassID,以及在可讀且非空時的 equipLoc(未在地化的 INVTYPE_* 裝備位置標記);不要求物品顯示文字已載入。中繼資料缺少、失敗、格式錯誤或受限時傳回 nil 及原因。
Platform.items.identifier 相依項目Validates an item argument.
Platform.loss_of_control.GetLossOfControlCount 公用使用受保護的無參數點號呼叫,讀取有說明文件的活躍失去控制數量。要求結果可讀且為有限的非負整數。零表示一次完整的空掃描,不需要列 API。RM 將掃描限制為 256 列,超出該資源預算時傳回無法使用;這並不是原生宣告的最大值。所需觀測缺少、失敗、受限或格式錯誤時維持為無法使用。
Platform.loss_of_control.GetLossOfControlEvent 公用依原生索引與所請求的主題種類,讀取一條有說明文件的活躍失去控制記錄列。type 查詢只需要可讀的控制類型字串;school 查詢只需要可讀的有限非負整數法術類型遮罩。選擇性的計時以有限的 timeRemaining 或逐欄位的明確原因傳回,因此不相關的主題不需要可用的計時器。缺少的列是無法使用的快照觀測。不會使用顯示欄位、推斷的截止時間、持續時間總和、最大值或原生別名備用方案。
Platform.mobinfo2.finite 相依項目Checks that a value is a readable finite number.
Platform.mobinfo2.GetMobInfo2Observation 公用在探測或受限政策用戶端上讀取選擇性的 MobInfo2 歷史觀測。只快取確切的所選單位存在性;UnitName 的第一個結果、UnitLevel 的第一個結果以及三參數的 MI2_GetMobData(name,level,unit) 點號呼叫每次都會重新取得。已知不存在的單位,以及成功傳回的未記錄的 nil 或省略的歷史,與無法使用的原生/提供者資訊保持區分。保留可讀的 runner 純量真值、法術類型正負號以及缺少 Hits 時預設為一。正的抗性比例必須有限;完全免疫會使用有限的 Hits,而部分免疫只需要其負值的法術類型觀測。絕不推斷原生抗性或借用舊記錄。
Platform.mobinfo2.hitCount 相依項目Reads the hit count for a spell school from a MobInfo2 resists table (the field named school.."Hits").
Platform.mobinfo2.presence 相依項目Checks whether a unit exists with one protected UnitExists call.
Platform.mobinfo2.readField 相依項目Reads object[key] in protected mode for MobInfo2 data.
Platform.pet.GetPetObservation 公用觀測寵物是否確切存在,並可選擇性地觀測其經 GetUnitName 格式化的顯示名稱。僅查詢存在性時從不需要名稱資料。已知不存在時會略過名稱查詢。僅在請求時,存在的寵物才需要可讀的非空名稱;所需觀測缺少、失敗、為 nil、受限或格式錯誤時傳回 nil 及原因。顯示輔助函式只以原有的單一寵物參數呼叫,不改用 UnitName,也不推斷快捷列、生命力或技能狀態。
Platform.player_flags.GetPlayerFlagObservation 公用觀測一個獨立的無參數玩家標記:stealthed 使用 IsStealthed,control 使用 HasFullControl,outdoors 使用 IsOutdoors。可讀的 true 與 false 保留其含義。所需資料缺少、失敗、為 nil、受限或格式錯誤時傳回 nil 及原因。不會新增存在性、副本或技能可用性的推斷。
Platform.player_movement.GetPlayerMovementObservation 公用在受支援且可讀的用戶端上觀測玩家目前的移動速度。這只針對 player 查詢 GetUnitSpeed,不檢測其他單位,也不重新導向載具擁有權。零表示靜止;正的有限小數速度仍然有效。缺少、失敗、受限或格式錯誤的觀測會傳回 nil 及原因。
Platform.points.GetPlayerComboPointObservation 公用觀測明確選擇的 TBC 玩家連擊點傳輸方式。current 只使用 GetComboPoints(player,target);maximum 使用帶原始選擇器的 UnitPowerMax(player,powerType)。其他用戶端系列在此無法使用,必須使用其現有的點數能量觀測器。保留可讀的有限帶正負號、小數與零值。缺少、失敗、受限或格式錯誤的資料維持為無法使用;所選的連擊點查詢失敗時絕不會改用 UnitPower。這不會觀測其他角色,也不會新增快取。
Platform.points.GetUnitPointFragmentObservation 公用觀測用戶端以片段回報的點數資源(潘達利亞之謎的燃火餘燼)。目前值確切使用 UnitPower(unit,powerType,true),最大值確切使用 UnitPowerMax(unit,powerType,true);結果會除以暴雪的 MAX_POWER_PER_EMBER(10),因此 35 個片段為 3.5。僅限探測政策。缺少、失敗、受限或格式錯誤的資料維持為無法使用;絕不會退回完整單位的查詢。不新增快取。
Platform.points.GetUnitPointIdentityObservation 公用為點數資源條件觀測確切的所選單位是否存在,並可選擇性地觀測其職業檔名。已知不存在時傳回 exists=false,不讀取職業。存在的單位只在請求時需要 UnitClass 的第二個傳回值;未使用的在地化名稱與 ID 不影響可用性。所需觀測缺少、失敗、受限或格式錯誤時維持為無法使用。這不會選擇資源或快取身分。
Platform.points.GetUnitPointPowerObservation 公用使用確切的雙參數 UnitPower 或 UnitPowerMax 查詢,讀取一個明確選擇的點數資源數量。選擇器為必要;不會推斷主要資源或重新對應角色。保留有限的帶正負號、小數與零數量,不進行截斷。缺少、失敗、受限或非有限的資料維持為無法使用。目前值與最大值是分開的觀測,因此呼叫端可以共用目前值快照,同時依需要延遲請求最大值。
Platform.range.GetNameplateMaxDistance 公用使用受支援的 CVar API 讀取目前正的名條可見距離。這會限制「距離內計數」查詢;它不能證明所有附近的單位都已被觀測到。缺少、格式錯誤、受限或失敗的觀測會傳回 nil 及原因。
Platform.range.GetRangeCheckBounds 公用讀取某個單位的公開 LibRangeCheck 距離區間。成功的上限是包含的;正的失敗下限是嚴格的。零下限是合成的。兩個邊界都不是精確距離,缺少上限也不能證明該單位在所有半徑之外。無法使用、格式錯誤、受限或失敗的觀測會傳回 nil 及原因。
Platform.role.GetInspectRoleObservation 公用在探測或受限政策用戶端上觀測所選單位的職責,不發出觀察請求。已知單位不存在時傳回 false。優先使用可呼叫的現代觀察 API,僅當它不可呼叫時才改用舊版;所選 API 失敗時絕不會改用其他 API。要求專精 ID 為正的有限整數,並且只使用確切的單參數 GetSpecializationInfoByID 呼叫的第五個傳回值(職責)。所需資訊缺少、失敗、受限或格式錯誤時為無法使用;可讀的非空未來職責字串保持原樣。
Platform.role.GetTalentGroupRoleObservation 公用在探測或受限政策用戶端上,觀測確切的舊版 GetTalentGroupRole(group) 點號呼叫的第一個職責結果。將可讀的所選天賦組原樣轉送,包括將 nil 作為一個參數;不推斷天賦組範圍、不替換為其他 API,也不查詢玩家單位。完整的舊版主要宣告並未成立。職責資料缺少、失敗、受限、為空或格式錯誤時為無法使用;可讀的非空未來字串保持原樣。
Platform.role.readField 相依項目Reads object[key] in protected mode, used to look up optional APIs.
Platform.role.roleValue 相依項目Validates a role returned by a native API.
Platform.roster_class.GetRosterClassObservation 公用在已識別的用戶端系列上讀取公開的名單身分。輸入路由僅限 player、party1 到 party4,以及 raid1 到 raid40。先以該確切的單參數代碼呼叫 UnitExists;已知為 false 時直接傳回 false,不查詢職業。對於存在的單位,只使用 UnitClass 的第二個傳回值作為可讀的非空職業檔名字串,不限制職業列舉。所需資訊缺少、失敗、格式錯誤或受限時傳回 nil 及原因。
Platform.roster_class.rosterUnit 相依項目Returns true when unit is exactly player, party1 through party4, or raid1 through raid40 (no leading zeros), and false for any other string.
Platform.rotation_owner.GetPlayerOwnerClassObservation 公用為循環擁有權讀取一次全新的受保護 UnitClass 玩家觀測。只使用第二個傳回值中可讀的非空職業檔名。不會新增存在性、等級、載具、用戶端系列或戰鬥政策的讀取,結果也不會跨呼叫保留。核心擁有權仍會分別驗證職業代碼與角色鍵;被覆蓋的情境提供者保留其完整的原有路徑。
Platform.runes.finite 相依項目Returns true when value is a number that is neither NaN nor infinite, and false for anything else.
Platform.runes.GetRuneCooldownObservation 公用為一個確切的原生欄位讀取一次受保護的 GetRuneCooldown 元組。分別標準化 ready、start 與 duration:ready 需要可讀的布林值,而每個時間值需要可讀的有限數字,並保留帶正負號、小數與零值。每個無法使用的欄位都附帶其自己的原因。成功傳回空元組時會產生部分記錄;缺少功能、政策或原生呼叫失敗時傳回 nil。絕不從計時推斷 ready,也不從 ready 推斷計時。請在呼叫端快取這份完整記錄,以便在符文計數與冷卻判斷之間共用一次觀測。
Platform.runes.GetRuneEvaluationTime 公用為符文冷卻運算讀取一次全新的受保護無參數 GetTime。要求結果可讀且為有限數字。此觀測刻意不快取;呼叫端保留原有的「先讀時鐘再掃描」順序,並且只在有相符的符文需要計時時才要求其值。不會以評估開始時間替代或推斷時間。
Platform.runes.GetRuneTypeObservation 公用使用只帶單一索引參數的 GetRuneType 觀測一個確切的原生符文欄位。要求類型可讀且為正的有限整數;已知的未來數字類型與所選類型保持區分,死亡符文是一個確切的類型而不是萬用字元。缺少、失敗、受限或格式錯誤的觀測維持為無法使用。不會新增職業、單位、數量或推斷基礎符文的查詢。
Platform.runes.numberField 相依項目Normalizes one numeric field of a native result.
Platform.runes.validIndex 相依項目Validates a rune slot index.
Platform.spells.cooldownFlags 相依項目Extracts the never-secret isEnabled, isActive and isOnGCD flags from a C_Spell.GetSpellCooldown record whose times are secret.
Platform.spells.cooldownValues 相依項目Reads a spell cooldown as separate values for the readiness checks.
Platform.spells.copy 相依項目Copies the expected fields of a native result table into a new table, checking each type.
Platform.spells.finiteNonNegative 相依項目Returns true when value is a nonnegative number that is not NaN or infinity, and false for anything else.
Platform.spells.flagReadiness 相依項目Decides cooldown readiness from the never-secret flags when the cooldown times are hidden.
Platform.spells.gcdRunning 相依項目Reports whether the global cooldown is running at time now.
Platform.spells.GetSpellCharges 公用讀取標準化的充能記錄:currentCharges、maxCharges、cooldownStartTime、cooldownDuration、chargeModRate 與 isActive。不受支援的法術或受限的用戶端資料會傳回 nil 及原因。
Platform.spells.GetSpellCooldown 公用讀取各支援用戶端的法術冷卻並將其正規化。傳回的記錄包含 startTime、duration、isEnabled 與 modRate。時間戳記與持續時間已經以 GetTime() 秒數描述到期時間;不要再除以 modRate。當用戶端隱藏時間時(正式版與永久的戰鬥中),記錄為 nil,原因為 restricted-value,在可以讀取時其後會附上永不為機密的 isEnabled、isActive 與 isOnGCD 旗標。
Platform.spells.identifier 相依項目Validates a spell argument.
Platform.spells.IsAutoRepeatActive 公用讀取玩家某個法術(例如射擊或自動射擊)的自動重複狀態。這與目前或佇列中的施法不同。現代用戶端會收到確切的法術 ID;舊版查詢會先解析玩家的法術書欄位。受限的用戶端政策、無法讀取的結果以及無法使用的法術書欄位會傳回 nil 及原因。這只觀測狀態,從不開始或停止法術。
Platform.spells.IsSpellReady 公用檢查某個法術現在能否被建議,允許剩餘冷卻時間隨目前共用冷卻一同結束的法術。在正式版與永久中,戰鬥中的冷卻時間是機密值,因此改為依據永不為機密的 isEnabled、isActive 與 isOnGCD 旗標判斷是否就緒。此函式只檢查冷卻是否就緒;不檢查是否已學會、距離或資源是否足夠。請傳入來自 evalStart 或 GetTime() 的評估時間。
Platform.spells.own 相依項目Returns a record holding only the expected fields, each checked by type.
Platform.threat.GetUnitThreatObservation 公用依序觀測所選單位是否存在、是否與玩家敵對,然後觀測玩家在該單位上的威脅值狀態。已知不存在、非敵人以及成功讀取到的 nil 威脅值狀態傳回 false,以保留「無威脅值」判斷。包括零在內的有限狀態數值保留其原有的比較含義。所需資訊缺少、失敗、為 nil、受限或格式錯誤時傳回 nil 及原因。不會新增可攻擊、死亡、戰鬥或載具的推斷。
Platform.unit_attackability.GetUnitAttackabilityObservation 公用使用確切的 UnitExists、UnitCanAttack 與 UnitIsDead 判斷,觀測玩家是否可以攻擊一個未死亡的所選單位。已知不存在或可讀的不可攻擊結果會傳回 false,不查詢死亡狀態。所需觀測缺少、失敗、受限或格式錯誤時傳回 nil 及原因。這不檢測鬼魂狀態、距離、敵對狀態或技能可用性,也不重新導向單位擁有權。
Platform.unit_flags.GetUnitFlagObservation 公用觀測一個目前的單位標記:combat 使用 UnitAffectingCombat,enemy 使用以 player 為第一個單位的 UnitIsEnemy,pvp 使用 UnitIsPVP。可讀且不存在的單位傳回 false,不查詢該標記。所需觀測缺少、失敗、受限或格式錯誤時傳回 nil 及原因。這會保留確切的所選單位,不推斷友好、可攻擊或其他單位狀態。
Platform.unit_health.finite 相依項目Returns true when value is a number that is neither NaN nor infinite, and false for anything else.
Platform.unit_health.GetUnitHealthObservation 公用在受支援的用戶端上觀測可讀的目前生命力,並可選擇性地觀測最大生命力。可讀且不存在的單位傳回 exists=false。缺少、失敗、受限或格式錯誤的觀測會傳回 nil 及原因;它們不能證明單位不存在或得出生命力。
Platform.unit_identity.GetUnitIdentityObservation 公用只用 UnitExists 檢查第一個單位代碼後,使用 UnitIsUnit 比較兩個確切的單位代碼。若第一個單位可讀且不存在,則不進行比較直接傳回 false。所需的觀測缺少、失敗、受限或格式錯誤時傳回 nil 及原因。不會額外進行第二次存在性查詢、GUID 查詢或推斷身分。
Platform.unit_level.finite 相依項目Returns true when value is a number that is neither NaN nor infinite, and false for anything else.
Platform.unit_level.GetUnitLevelObservation 公用在已知的用戶端上觀測可讀的原始單位等級。可讀且不存在的單位傳回 exists=false;存在的單位要求 UnitLevel 為正的有限整數。未知的首領等級,以及缺少、失敗、受限或格式錯誤的觀測會傳回 nil 及原因。這不使用有效等級或縮放後的等級。
Platform.unit_metadata.GetUnitMetadataObservation 公用在檢查 UnitExists 後觀測一個所使用的原生單位中繼資料欄位:class 使用 UnitClass 的第二個傳回值,creature 使用在地化的 UnitCreatureType 名稱,classification 使用 UnitClassification。可讀且不存在的單位傳回 false,不查詢中繼資料。未使用的元組欄位不影響可用性;所需的值缺少、失敗、為 nil、受限或格式錯誤時傳回 nil 及原因。不會新增玩家職業、GUID、列舉或翻譯推斷。
Platform.unit_power.finite 相依項目Returns true when value is a number that is neither NaN nor infinite, and false for anything else.
Platform.unit_power.GetUnitPowerObservation 公用在受支援且可讀的用戶端上觀測明確的法力或目前的原始能量資源。資源身分從即時的 PowerType 列舉中選擇;明確法力絕不會改用目前能量條。已知不存在時傳回 exists=false;缺少、失敗、受限或格式錯誤的觀測會傳回 nil 及原因。current 模式下的數量保留帶正負號的原生資源;明確法力為非負。僅在需要時請求最大值;百分比的使用者必須要求最大值為正。
Platform.unit_presence.GetUnitPresenceObservation 公用在已識別的用戶端系列上觀測單位的存在性。將所選單位原樣傳給一次受保護的 UnitExists 呼叫。保留可讀的 true 與 false;所需觀測缺少、失敗、受限、為 nil 或格式錯誤時傳回 nil 及原因。不會新增身分、可見性、距離或戰鬥狀態的查詢。
Platform.unit_stat.finite 相依項目Returns true when value is a number that is neither NaN nor infinite, and false for anything else.
Platform.unit_stat.GetUnitStatObservation 公用只從原生的第二個傳回值觀測有效屬性。在探測或受限政策用戶端上,先查詢確切的 UnitExists(unit),然後對選擇器 1..5 查詢 UnitStat(unit,stat),或對選擇器 6 查詢 UnitArmor(unit)。已知不存在時傳回 exists=false;所需資訊缺少、失敗、受限或非有限時傳回 nil。保留有限的帶正負號、小數與零值;忽略所有未使用的元組欄位。1..6 的路由是 RM 的選擇器政策,而非原生值域的限制。
Platform.unit_states.GetUnitStateObservation 公用在探測或受限政策用戶端上,觀測確切的所選單位是否死亡或處於鬼魂狀態,或是否對玩家友好。所需觀測缺少、失敗、受限或格式錯誤時為無法使用。單位不存在時為無法使用,而不是否定比對,在 NOT 下同樣如此。不會保留跨輪詢的狀態。
Platform.zone_pvp.GetZonePVPObservation 公用使用一次受保護的無參數點號呼叫,觀測區域 PvP 分類的第一個結果。優先使用可呼叫的 C_PvP.GetZonePVPInfo,僅當現代 API 不可呼叫時才使用全域輔助函式。成功傳回 nil 或沒有傳回值時,會產生一個已知的空記錄;缺少、失敗、受限或格式錯誤的觀測維持為無法使用。可讀的空字串與未來字串保留其確切含義,未使用的傳回欄位不決定可用性。在現代 API 傳回結果或失敗後,絕不切換後端。
UI.checkbox.constructor 相依項目Constructs a new RM-CheckBox condition widget: a 180 by 24 frame holding a workbench check box, with SetLabel, SetValue, GetValue and SetDisabled, firing OnValueChanged when clicked.
UI.checkbox.CreateConditionCheckBox 公用建立一個原生的布林條件控制項。設定 SetLabel、SetValue、SetDisabled 與 OnValueChanged;使用 parent:AddChild(widget) 新增它。
UI.condition_display.buttonConstructor 相依項目Constructs a new RM-ConditionButton widget around a 200-pixel workbench button, with SetText, SetAutoWidth and SetDisabled, firing OnClick (with the mouse button), OnEnter and OnLeave only while its lease is live.
UI.condition_display.CreateConditionButton 公用使用共用的條件元件生命週期與工作台主題建立一個原生按鈕。SetText、SetDisabled 與 SetCallback 用於設定其標籤與互動;OnClick 會收到所按的滑鼠按鍵。將其使用 parent:AddChild(widget) 新增到回呼的父層。
UI.condition_display.CreateConditionLabel 公用建立原生的自動換行文字,根據其寬度與字型測量高度。SetText、SetFont 或 SetFontObject 用於設定其內容。將其使用 parent:AddChild(widget) 新增到回呼的父層,以便版面能夠追蹤其測得的高度。
UI.condition_display.CreateConditionLink 公用建立原生的自動換行文字,可選擇帶有前置圖像與指標回呼。SetImage 與 SetImageSize 用於設定圖像;OnEnter、OnLeave 與 OnClick 使用條件回呼約定。將其使用 parent:AddChild(widget) 新增到回呼的父層;其租用被釋放時回呼會失效。
UI.condition_display.defaultFont 相依項目Returns the default font for condition labels and buttons: the GameFontHighlightSmall font object, or its name when the object is not defined.
UI.condition_display.labelConstructor 相依項目Constructs a new condition text widget: a plain wrapping RM-ConditionLabel, or with interactive set an RM-ConditionLink button that adds a leading image and OnEnter, OnLeave and OnClick callbacks.
UI.condition_icon.constructor 相依項目Constructs a new RM-ConditionIcon widget: a clickable image with an optional caption below it, with SetImage, SetImageByAtlas, SetImageSize, SetLabel and SetDisabled, firing OnClick, OnEnter and OnLeave while its lease is live.
UI.condition_icon.CreateConditionIcon 公用使用條件元件生命週期建立一個原生圖像控制項。SetImage 與 SetImageSize 用於選擇材質;SetText 可選擇性地新增說明文字。OnClick、OnEnter 與 OnLeave 使用共用的回呼約定。將該控制項使用 parent:AddChild(widget) 新增到回呼的父層。
UI.condition_inputs.constructor 相依項目Constructs a new condition input widget: an RM-ConditionEditBox text box, or with numeric set an RM-ConditionSlider pairing a slider with a numeric box (with range, step and percent display).
UI.condition_inputs.CreateConditionEditBox 公用使用條件元件約定建立一個原生文字輸入框。SetLabel、SetText、SetDisabled 與 SetCallback 用於設定它;OnEnterPressed 提交文字。使用 parent:AddChild(widget) 將其新增到回呼的父層。
UI.condition_inputs.CreateConditionSlider 公用建立一個帶有滑桿與數字輸入框的原生數值條件輸入控制項。設定 SetSliderValues、SetValue、SetIsPercent 與 SetCallback;OnValueChanged 回報已提交的值。使用 parent:AddChild(widget) 新增它。
UI.condition_inputs.finite 相依項目True when value is a number that is neither NaN nor infinite; the condition inputs use it to validate entered and slider values.
UI.condition_layout.constructor 相依項目Constructs a new RM-ConditionGroup container that stacks condition widgets in List, Table or RM-SpellField layout, resizing itself to its contents and relaying out its parent.
UI.condition_layout.CreateConditionGroup 公用建立一個條件欄位容器,使用 RM 自有的 List、Table 與自適應法術欄位版面。它接受已註冊的原生條件元件;使用 AddChild 新增子項目,並將該群組附加到回呼的父層。
UI.condition_layout.layoutIconRows 相依項目Lays out the "RM-IconRows" container: an icon on the left, vertically centered beside the rows of fields, and an optional side widget (marked with the side user data) that sits beside the last row when there is room and below the rows when there is not.
UI.condition_layout.verticalAlignment 相依項目Converts a table cell's alignV setting to a vertical offset fraction for the condition group's Table layout: 0 for nil, start or top, 0.5 for middle or center, and 1 for end or bottom (case-insensitive prefixes).
UI.condition_position.constructor 相依項目Constructs a new RM-ConditionPositionPad widget around the shared workbench directional pad, with SetDisabled, firing OnOffsetChanged (horizontal and vertical direction, whether Center was pressed, and the step) only while its lease is live and it is enabled.
UI.condition_position.CreateConditionPositionPad 公用使用共用的方向控制項建立一個原生位置面板。OnOffsetChanged 回報水平與垂直方向、是否按下了「置中」,以及增量(一,或按住 Shift 時為十)。SetDisabled 控制互動;將該面板使用 parent:AddChild(widget) 新增到回呼的父層。
UI.selector.CreateConditionDropdown 公用建立一個原生的條件選擇器。SetList 接受鍵到標籤或鍵到項目的對應;SetValue 選擇一個鍵,OnValueChanged 回報變化。使用 parent:AddChild(widget) 新增它。
UI.selector.selectorWidget 相依項目Constructs a new RM-Selector dropdown widget: an optional caption over a button that opens the workbench selector popup.
utils.getCachedInternal 相依項目來自 utils.lua 的內建輔助函式。
utils.packResults 相依項目來自 utils.lua 的內建輔助函式。