ギルドウォーズ2のダンジョンと神殿の一部について、現在 解放されているワールドを表示します。
公式 API を使用してダイナミック イベントの進行状況を取得して判断しています。
判断基準は独自調査のため、不正確な可能性があることをご了承ください。
このページにない神殿については、以下のサイトでチェックできます。
Currently Open
NA | EU | |
---|---|---|
CoF Citadel of Flame |
||
CoE Crucible of Eternity |
||
Arah The Ruined City of Arah |
||
Grenth Temple of Grenth |
||
Balthazar Temple of Balthazar |
備考
- グレンス神殿が解放されていると、カルマ商人からソルジャー(パワー タフネス バイタリティ)の Exotic トリンケットを購入できます。他の神殿で購入できるトリンケットは Dulfy さんを参照。
- バルタザール神殿が解放されていると、カルマ商人からオブシディアン シャード(Obsidian Shard)を購入できます。これはレジェンダリ装備を作成するために必要で、カルマで交換できるのは通常ここだけです。
こじょの所見と妄想
これ大変でした... ダイナミック イベント API が返す state から、解放状況を判断する部分。
例えば CoE。普通に考えると、イベント チェインの最初である「Slay cave trolls to stop their attacks on Gallant's Folly」が Active なら、それ以外の関連イベントは Inactive になって欲しいじゃないですかー それなら最後のイベントの state だけ調べればよいのでー でも実際は、前回の結果がそのまま残っています。すべての関連イベントが Success であることを確認しないと、オープンしているということが判断できないのです。
かといって、Arah なんかは途中のイベントが Fail してても最終的にはオープンしたり、場所によっては防衛イベントがあったり。本当に複雑です。
これはGW2のダイナミック イベント システムが柔軟であることの裏返しなのですが、アプリをつくる側は涙目(つД`)
ここに書いても仕方ないですが、CoF の最後イベント「Hold the Gates of Flame against waves of Flame Legion」は、成功しても Success にならず、Warmup になります。これはバグですね。
冒頭でご紹介している 2サイトは、「今からダンジョンいくぜ、開いてるのどこだー!?」てときに若干、見難いかなと思ったので自分でつくってみました。だいぶ満足しています!^^
「Escort Razen the Raider to the Gates of Flame」イベントが進行中で閉じているのに開いていると表示される 等、関連するイベント名を教えていただけると大変ありがたいです。
$.getJSON('https://api.guildwars2.com/v1/world_names.json', function(data){ var world_names = []; $.each(data, function(){ world_names['w' + this.id] = this.name; }); // Citadel of Flame $.getJSON('https://api.guildwars2.com/v1/events.json?map_id=22', function(data){ var flag = []; for (var wid in world_names){ flag[wid] = true; } $.each(data.events, function(){ switch ( this.event_id ){ // Escort Razen the Raider to the Gates of Flame case '6A8374CF-9999-43E9-B1C7-BAB1541F2426': if ( this.state != 'Success' ) { flag['w' + this.world_id] = false; } break; // Hold the Gates of Flame against waves of Flame Legion case 'A1182080-2599-4ACC-918E-A3275610602B': if ( this.state != 'Warmup' ) { flag['w' + this.world_id] = false; } break; } }); for (var wid in flag){ if ( flag[wid] ) { var wname = $('').append(world_names[wid]); if ( wid.charAt(1) == '1' ) { $('#gw2-na-cof').append(wname); } else { $('#gw2-eu-cof').append(wname); } } } }); // Crucible of Eternity $.getJSON('https://api.guildwars2.com/v1/events.json?map_id=39', function(data){ var flag = []; for (var wid in world_names){ flag[wid] = true; } $.each(data.events, function(){ switch ( this.event_id ){ // Slay cave trolls to stop their attacks on Gallant's Folly case 'C4860CEF-F801-4F6E-BAD5-183A9ECC16BE': // Break into Infinity Coil case '08051AA6-F3E7-4B2A-91C2-4AC07AB8F1FF': // Capture the Destroyer Lab case '7B4EF74F-87CC-4978-9E05-82822F03BD33': // Capture the Zhaitan research Lab case '63E32CC1-F83B-4AA6-8EE6-D429F2673548': // Shut down the Crystal Research Lab case '1F207830-E56C-4639-B375-065828B74249': // Capture the Infinity Coil case 'ED8ADFBF-6D6A-4B98-BD49-741D39A04871': if ( this.state != 'Success' ) { flag['w' + this.world_id] = false; } break; } }); for (var wid in flag){ if ( flag[wid] ) { var wname = $('').append(world_names[wid]); if ( wid.charAt(1) == '1' ) { $('#gw2-na-coe').append(wname); } else { $('#gw2-eu-coe').append(wname); } } } }); // Temple of Grenth $.getJSON('https://api.guildwars2.com/v1/events.json?map_id=62', function(data){ var tog = []; var arah = []; for (var wid in world_names){ tog[wid] = true; arah[wid] = true; } $.each(data.events, function(){ switch ( this.event_id ){ // Protect Tactician Footi as she sets up her cannon case 'B41C90F8-AF33-400E-9AD3-3DB0AFCEDC6C': // See Keeper Jonez Deadrun safely to Death's Gaze Torch case '4B612C93-3700-43B8-B3C1-CBC64FEC0566': // Secure Death's Gaze Torch while Explorer Ambrose completes his ritual case '1D1BE3D6-2F0D-4D1C-8233-812AAF261CFF': // Ensure that Keeper Jonez Deadrun reaches the Cathedral of Silence case 'C8139970-BE46-419B-B026-485A14002D44': // Protect Keeper Jonez Deadrun and destroy the Champion Risen Priest of Grenth case 'E16113B1-CE68-45BB-9C24-91523A663BCB': // Cover Keeper Jonez Deadrun as he performs the cleansing ritual case '99254BA6-F5AE-4B07-91F1-61A9E7C51A51': if ( this.state != 'Success' ) { tog['w' + this.world_id] = false; } break; // Stop the Risen Priest of Grenth from retaking the Cathedral of Silence case '57A8E394-092D-4877-90A5-C238E882C320': if ( this.state == 'Fail' ) { tog['w' + this.world_id] = false; } break; // Defend the Pact lightning cannon // case '27E2F73C-E26B-4046-AC06-72C442D9B2B7': // The Ruined City of Arah // Get Warmaster Chan to Shank Anchorage before the troops' morale breaks case 'D7246CA2-DD85-42B3-A8D3-D2A1FE464ECF': if ( this.state != 'Success' ) { arah['w' + this.world_id] = false; } break; // Hold the Pact position at Shank Anchorage against Risen attack case '5761F5A5-48D2-484B-BE21-22096E84E845': // Collect scrap metal to help Ballistician Dexa build her siege weapon case '9DA0E1E8-1A44-4A3C-9FCC-257350978CE9': // Help Crusader Angaria signal reinforcements for the assault on Arah case '6B5C8659-F3AF-4DFC-A6F5-CD6620E3BE11': // Escort Scholar Didi to the signal flare site to summon her golem prototype for the assault on Arah case '7EA1BE90-C3CB-4598-A2DD-D56764785F7D': if ( this.state == 'Active' ) { arah['w' + this.world_id] = false; } break; // Help the Pact seize the steps of the Promenade of the Gods case 'E87A021D-4E7C-4A50-BEDB-6F5A54C90A9A': // Help the Pact capture the hall of the Promenade of the Gods case 'B1B94EFD-4F67-4716-97C2-880CD16F1297': // Defeat the Risen High Wizard and secure the Promenade of the Gods case '02DECBE6-A0BA-47CC-9256-A6D59881D92A': if ( this.state != 'Success' ) { arah['w' + this.world_id] = false; } break; // Ensure that the Pact holds the Gates of Arah case 'DFBFF5FE-5AF0-4B65-9199-B7CACC945ABD': if ( this.state == 'Fail' ) { arah['w' + this.world_id] = false; } break; } }); for (var wid in tog){ if ( tog[wid] ) { var wname = $('').append(world_names[wid]); if ( wid.charAt(1) == '1' ) { $('#gw2-na-tog').append(wname); } else { $('#gw2-eu-tog').append(wname); } } } for (var wid in arah){ if ( arah[wid] ) { var wname = $('').append(world_names[wid]); if ( wid.charAt(1) == '1' ) { $('#gw2-na-arah').append(wname); } else { $('#gw2-eu-arah').append(wname); } } } }); // Temple of Balthazar $.getJSON('https://api.guildwars2.com/v1/events.json?map_id=51', function(data){ var flag = []; for (var wid in world_names){ flag[wid] = true; } $.each(data.events, function(){ // Defeat the Risen Priest of Balthazar before it can summon a horde of Risen if ( this.event_id == '2555EFCB-2927-4589-AB61-1957D9CC70C8' ) { if ( this.state != 'Success' ) { flag['w' + this.world_id] = false; } } // Help the Pact hold the Altar of Betrayal from the Risen else if ( this.event_id == '589B1C41-DD96-4AEE-8A3A-4CC607805B05' ) { if ( this.state == 'Fail' ) { flag['w' + this.world_id] = false; } } }); for (var wid in flag){ if ( flag[wid] ) { var wname = $('').append(world_names[wid]); if ( wid.charAt(1) == '1' ) { $('#gw2-na-tob').append(wname); } else { $('#gw2-eu-tob').append(wname); } } } }); });

Guild Wars 2 情報同カテゴリの前後記事
Commentあなたのコメントをぜひ書き残してください!
素晴らしいですね。の一言です。ただただ感服です。
バグがあるならレポートするのもできるのがSEさんの腕の見せ所ですね(;´▽`A``
我ながらシンプルで見やすいと思ってますw
gw2stuff 便利ですよねー いつも使ってます。
Trackback あなたのウェブページをリンク!
Trackback URL |