mcpField
W
wow-api-encounters

wow-api-encounters

github.com/jburlison開発4636 回インストール37 週間前に更新
リポジトリ

wow-api-encounters について

World of Warcraft Retail向けのAPIリファレンススキルです。エンカウンタージャーナル、ミシック+、シナリオ、レイドロックアウト、シーズンの関数や戻り値、使用例を開発者向けに整理しています。

主な機能

  1. 01エンカウンタージャーナルとボス情報
  2. 02戦利品、アビリティ、難易度の照会
  3. 03ミシック+のキーとランデータ
  4. 04シナリオとデルブの進行状況
  5. 05レイドロックアウトとシーズン情報

活用シーン

  1. 01エンカウンターや戦利品APIの参照
  2. 02ミシック+情報表示の作成
  3. 03シナリオやデルブ進行状況の取得
  4. 04保存済みレイドロックアウトの確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/jburlison/wowaddonapiagents --skill wow-api-encounters

インストール後、Claude Code で/wow-api-encountersを入力して読み込まれたか確認します。

詳細

エンカウンター API(リテール — パッチ 12.0.0)

エンカウンタージャーナル、ミシック+、インスタンス、シナリオ、レイドのロックアウト、シーズンに関する包括的なリファレンスです。

情報源: https://warcraft.wiki.gg/wiki/World_of_Warcraft_API 2026 年 1 月 28 日時点: パッチ 12.0.0(ビルド 65655) 対象範囲: リテールのみ。


対象範囲

  • エンカウンタージャーナル — ボスのデータベース、戦利品テーブル、アビリティ
  • C_ChallengeMode — M+ のキーストーン、アフィックス、タイマー
  • C_MythicPlus — 週間 M+ ラン、レーティング、シーズン関連
  • ScenarioInfo — シナリオ、デルブ、ステージ
  • InstanceLeaverInfo — 離脱者に関する情報
  • レイドのロックアウト — 保存済みインスタンスのロックアウト
  • C_SeasonInfo — シーズンコンテンツ

エンカウンタージャーナル

インスタンスの移動
関数戻り値説明
EJ_GetNumTiers()numTiers拡張ティアの数
EJ_GetTierInfo(tierIndex)name, linkティア名とリンク
EJ_SelectTier(tierIndex)—拡張ティアを選択
EJ_GetCurrentTier()tierIndex現在選択されているティア
EJ_GetInstanceByIndex(index, isRaid)instanceID, name, description, bgImage, buttonImage1, loreImage, buttonImage2, dungeonAreaMapID, link, shouldDisplayDifficultyインデックスで指定したインスタンス
EJ_GetNumInstances()—関数ではありません。EJ_GetInstanceByIndex を nil が返るまで繰り返し呼び出します
EJ_SelectInstance(instanceID)—インスタンスを選択
EJ_GetInstanceInfo(instanceID)name, description, bgImage, ...インスタンス情報
EJ_InstanceIsRaid()isRaid選択中のインスタンスはレイドか?
エンカウンター(ボス)データ
関数戻り値説明
EJ_GetEncounterInfoByIndex(index)name, description, journalEncounterID, rootSectionID, link, journalInstanceID, dungeonEncounterID, instanceIDインデックスで指定したボス
EJ_GetEncounterInfo(encounterID)name, description, journalEncounterID, rootSectionID, link, journalInstanceID, dungeonEncounterID, instanceIDボス情報
EJ_SelectEncounter(encounterID)—エンカウンターを選択
EJ_GetNumEncountersForLootByIndex(index)numEncounters戦利品があるボスの数
EJ_GetCreatureInfo(index, encounterID)id, name, description, displayInfo, iconImage, ...クリーチャー情報
セクション(アビリティ)データ
関数戻り値説明
EJ_GetSectionInfo(sectionID)infoセクション/アビリティ情報
EJ_GetNumSectionsForEncounter(encounterID)numSectionsセクションの数
セクション情報のフィールド
  • title — セクションのタイトル
  • description — セクションのテキスト
  • headerType — ヘッダーの種類を示す列挙型
  • abilityIcon — アイコンのテクスチャ
  • creatureDisplayID — 表示 ID
  • siblingSectionID — 次の兄弟セクション
  • firstChildSectionID — 最初の子セクション
  • filteredByDifficulty — 難易度フィルターによって非表示か?
  • link — ジャーナルリンク
  • startsOpen — デフォルトで展開されるか?
戦利品
関数戻り値説明
EJ_GetLootInfoByIndex(index)name, icon, slotFilter, armorType, itemID, link, encounterIDインデックスで指定した戦利品
EJ_GetNumLoot()numLoot戦利品アイテムの数
EJ_SetLootFilter(classID, specID)—クラス/特化で絞り込む
EJ_GetLootFilter()classID, specID現在のフィルター
EJ_SetSlotFilter(slotFilter)—スロットで絞り込む
EJ_GetSlotFilter()slotFilter現在のスロットフィルター
EJ_ResetLootFilter()—すべてのフィルターを解除
EJ_IsLootListOutOfDate()isOutOfDate更新が必要か?
難易度
関数戻り値説明
EJ_SetDifficulty(difficultyID)—EJ の難易度を設定
EJ_GetDifficulty()difficultyID現在の EJ の難易度
EJ_GetNumEncountersByDifficulty(difficultyID)numEncounters指定した難易度のボスの数
検索
関数戻り値説明
EJ_SetSearch(text)—検索テキストを設定
EJ_GetSearchResult(index)resultInfo検索結果
EJ_GetNumSearchResults()numResults結果の数
EJ_IsSearchFinished()isFinished検索完了?
EJ_ClearSearch()—検索をクリア

C_ChallengeMode — ミシック+のキーストーン

キーストーン情報
関数戻り値説明
C_ChallengeMode.GetActiveKeystoneInfo()activeKeystoneLevel, activeAffixIDs, wasActiveKeystoneCharged有効なキーストーン
C_ChallengeMode.GetActiveChallengeMapID()mapID有効なM+マップ
C_ChallengeMode.GetActiveKeystoneLink()linkキーストーンのハイパーリンク
C_ChallengeMode.GetSlottedKeystoneInfo()mapID, affixIDs, keystoneLevelスロット済みキーストーン
C_ChallengeMode.HasSlottedKeystone()hasKeystoneキーストーンがスロット済み?
C_ChallengeMode.SlotKeystone()slottedキーストーンをスロット
C_ChallengeMode.RemoveKeystone()removedキーストーンを取り外す
マップとアフィックスのデータ
関数戻り値説明
C_ChallengeMode.GetMapTable()mapIDsすべてのM+マップ
C_ChallengeMode.GetMapUIInfo(mapID)name, id, timeLimit, texture, backgroundTextureマップ情報
C_ChallengeMode.GetAffixInfo(affixID)name, description, filedataidアフィックス情報
C_ChallengeMode.GetCurrentAffixes()affixes今週のアフィックス
完了と記録
関数戻り値説明
C_ChallengeMode.GetMapPlayerStats(mapID)durationSec, ...自己ベスト
C_ChallengeMode.GetGuildLeaders()guildLeadersギルドのベストラン
C_ChallengeMode.GetCompletionInfo()mapID, level, time, onTime, keystoneUpgradeLevels, practiceRun, oldOverallDungeonScore, newOverallDungeonScore, IsMapRecord, IsAffixRecord, PrimaryAffix, isEligibleForScore, membersランの完了データ
C_ChallengeMode.IsChallengeModeActive()isActiveM+が進行中?
C_ChallengeMode.GetDeathCount()numDeaths, timeLost死亡数とペナルティ
C_ChallengeMode.GetActiveChallengeModeLevel()level現在のキーレベル
報酬
関数戻り値説明
C_ChallengeMode.GetChallengeMapInfo(mapID, keystoneLevel)rewardInfoキーレベルごとの報酬

C_MythicPlus — シーズンM+データ

関数戻り値説明
C_MythicPlus.GetCurrentSeason()seasonID現在のシーズン
C_MythicPlus.GetRunHistory(includePreviousWeeks, includeIncompleteRuns)runsラン履歴
C_MythicPlus.GetRewardLevelFromKeystoneLevel(keystoneLevel)rewardLevel報酬アイテムレベル
C_MythicPlus.GetOwnedKeystoneLevel()level所持キーレベル
C_MythicPlus.GetOwnedKeystoneChallengeMapID()mapID所持キーのダンジョン
C_MythicPlus.GetOwnedKeystoneMapID()mapID所持キーのマップ
C_MythicPlus.GetCurrentAffixes()affixIDs現在のアフィックス
C_MythicPlus.GetWeeklyChestRewardLevel()rewardLevel保管庫の報酬レベル
C_MythicPlus.GetSeasonBestAffixScoreInfoForMap(mapID)bestScoreInfoアフィックスごとのベストスコア
C_MythicPlus.GetSeasonBestForMap(mapID)intimeInfo, overtimeInfoシーズン中のベストラン
C_MythicPlus.GetOverallDungeonScore()scoreM+の総合レーティング
C_MythicPlus.RequestCurrentAffixes()—アフィックスデータをリクエスト
C_MythicPlus.RequestMapInfo()—マップデータをリクエスト
C_MythicPlus.RequestRewards()—報酬データをリクエスト
C_MythicPlus.IsDungeonScorable(mapID)isScorableスコアを獲得できる?

ScenarioInfo — シナリオとデルヴ

関数戻り値説明
C_ScenarioInfo.GetScenarioInfo()scenarioInfo現在のシナリオ
C_ScenarioInfo.GetScenarioStepInfo()stepInfo現在のステップ
C_ScenarioInfo.GetCriteriaInfo(criteriaIndex)criteriaInfoインデックスで指定した条件
C_ScenarioInfo.GetCriteriaInfoByStep(stepIndex, criteriaIndex)criteriaInfoステップの条件
C_ScenarioInfo.GetScenarioStepByIndex(index)stepInfoインデックスで指定したステップ
シナリオ情報のフィールド
  • name — シナリオ名
  • currentStage — 現在のステージ
  • numStages — ステージの合計数
  • flags — シナリオのフラグ
  • isComplete — 完了済みか
  • xp — XP報酬
  • money — ゴールド報酬
  • type — シナリオの種類
  • area — エリア名
  • uiTextureKit — UIテクスチャキット
ステップ情報のフィールド
  • title — ステップのタイトル
  • description — ステップの説明
  • numCriteria — 条件の数
  • isComplete — ステップが完了しているか
  • isBonusObjective — ボーナス目標か
  • isFinal — 最終ステップか
  • weightedProgress — 進捗率

レイドロック(保存済みインスタンス)

関数戻り値説明
GetNumSavedInstances()numInstances保存済みインスタンスの数
GetSavedInstanceInfo(index)name, id, reset, difficulty, locked, extended, instanceIDMostSig, isRaid, maxPlayers, difficultyName, numEncounters, encounterProgress, extendDisabled保存済みインスタンス情報
GetSavedInstanceEncounterInfo(index, encounterIndex)bossName, fileDataID, isKilled, isIneligibleボスの討伐状況
SetSavedInstanceExtend(index, extend)—ロックアウトを延長
GetNumSavedWorldBosses()countワールドボスのロック数
GetSavedWorldBossInfo(index)name, id, resetワールドボス情報
RequestRaidInfo()—ロック情報を要求

InstanceLeaverInfo — 離脱者

関数戻り値説明
C_InstanceLeaverInfo.GetLeaverInfo()leaverInfo離脱者情報
C_InstanceLeaverInfo.HasLeaverPenalty()hasPenalty離脱ペナルティがあるか
C_InstanceLeaverInfo.GetLeaverPenaltyTimeRemaining()seconds残り時間

C_SeasonInfo — シーズンコンテンツ

関数戻り値説明
C_SeasonInfo.GetCurrentDisplaySeasonID()seasonID現在の表示シーズン
C_SeasonInfo.GetCurrentSeason()seasonID現在のシーズン
C_SeasonInfo.GetSeasonInfo(seasonID)seasonInfoシーズンデータ

よく使われるパターン

エンカウントジャーナルのボスを一覧表示する
-- Select an instance and list its bosses
EJ_SelectTier(EJ_GetCurrentTier())
EJ_SelectInstance(instanceID)

local index = 1
while true do
    local name, description, encounterID, rootSectionID = EJ_GetEncounterInfoByIndex(index)
    if not name then break end
    print(index, name, "- EncounterID:", encounterID)
    index = index + 1
end
M+のキーストーン情報を表示する
local function ShowKeystoneInfo()
    local level = C_MythicPlus.GetOwnedKeystoneLevel()
    local mapID = C_MythicPlus.GetOwnedKeystoneChallengeMapID()
    if level and mapID then
        local name = C_ChallengeMode.GetMapUIInfo(mapID)
        print("Keystone:", name, "+", level)
    else
        print("No keystone")
    end
    
    local score = C_MythicPlus.GetOverallDungeonScore()
    print("M+ Rating:", score or 0)
end
アクティブなM+の進行状況を確認する
local function ShowMythicPlusProgress()
    if not C_ChallengeMode.IsChallengeModeActive() then
        print("Not in an active M+")
        return
    end
    
    local level = C_ChallengeMode.GetActiveChallengeModeLevel()
    local mapID = C_ChallengeMode.GetActiveChallengeMapID()
    local name = C_ChallengeMode.GetMapUIInfo(mapID)
    local deaths, timeLost = C_ChallengeMode.GetDeathCount()
    
    print(name, "+", level)
    print("Deaths:", deaths, "Time lost:", timeLost, "sec")
end
保存済みインスタンスを一覧表示する
RequestRaidInfo()
-- Wait for UPDATE_INSTANCE_INFO event, then:
local numSaved = GetNumSavedInstances()
for i = 1, numSaved do
    local name, id, reset, difficulty, locked, extended, 
          _, isRaid, maxPlayers, diffName, numEncounters, progress = 
          GetSavedInstanceInfo(i)
    if locked then
        print(name, diffName, progress .. "/" .. numEncounters, 
              "Reset:", SecondsToTime(reset))
    end
end

主なイベント

イベントペイロード説明
EJ_LOOT_DATA_RECIEVEDitemID戦利品データが読み込まれた
EJ_DIFFICULTY_UPDATEdifficultyIDEJの難易度が変更された
CHALLENGE_MODE_STARTmapIDM+が開始された
CHALLENGE_MODE_COMPLETEDmapIDM+が完了した
CHALLENGE_MODE_RESETmapIDM+がリセットされた
CHALLENGE_MODE_DEATH_COUNT_UPDATED—死亡回数が変更された
CHALLENGE_MODE_KEYSTONE_RECEPTABLE_OPEN—力の泉が開かれた
CHALLENGE_MODE_KEYSTONE_SLOTTED—キーストーンがセットされた
MYTHIC_PLUS_CURRENT_AFFIX_UPDATE—アフィックスが更新された
MYTHIC_PLUS_NEW_WEEKLY_RECORDmapID週間の新記録
MYTHIC_PLUS_NEW_SEASON_RECORDmapIDシーズンの新記録
SCENARIO_UPDATE—シナリオの状態が変更された
SCENARIO_CRITERIA_UPDATE—条件が更新された
SCENARIO_COMPLETED—シナリオが完了した
UPDATE_INSTANCE_INFO—保存済みインスタンスのデータ
INSTANCE_LOCK_START—ロックアウトが取得された
INSTANCE_LOCK_STOP—ロックアウトが解除された
INSTANCE_LOCK_WARNING—ロックアウトの警告

注意点と制限事項

  1. EJ データは非同期です — 戦利品データは非同期で読み込まれます。戦利品を読み取る前に、EJ_LOOT_DATA_RECIEVED を待ってください。
  2. ティアの選択が重要です — EJ 関数は現在選択されているティアに対して動作します。必ず先にティアを設定してください。
  3. M+ の完了データは一時的です — GetCompletionInfo() がデータを返すのは、ランの直後のみです。
  4. キーストーンのスロットへの装着にはハードウェアイベントが必要です — プレイヤーは力の源に手動で触れる必要があります。
  5. レイドロックの延長 — SetSavedInstanceExtend() はロックの有効期間中に呼び出す必要があります。
  6. シナリオの種類はさまざまです — デルヴ、島の遠征、シナリオはいずれも ScenarioInfo を使用しますが、タイプフラグは異なります。
  7. M+ レーティングはシーズンごとです — GetOverallDungeonScore() はシーズンごとにリセットされます。
  8. RequestRaidInfo() は非同期です — 保存済みインスタンスを読み取る前に、UPDATE_INSTANCE_INFO を待ってください。

コメント