diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 0000000..8c97ab4
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -0,0 +1 @@
+custom: ['https://www.paypal.me/dfassist']
diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md
new file mode 100644
index 0000000..ede6dec
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug-report.md
@@ -0,0 +1,30 @@
+---
+name: Bug report
+about: Create a report to help us improve
+title: ''
+labels: ''
+assignees: ''
+
+---
+
+**Describe the bug**
+A clear and concise description of what the bug is.
+
+**To Reproduce**
+Steps to reproduce the behavior:
+1. Go to '...'
+2. Click on '....'
+3. Scroll down to '....'
+4. See error
+
+**Expected behavior**
+A clear and concise description of what you expected to happen.
+
+**Screenshots**
+If applicable, add screenshots to help explain your problem.
+
+**Application Logs**
+Please copy and paste the application's log here.
+
+**Additional context**
+Add any other context about the problem here.
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..7389b58
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,2 @@
+language: csharp
+solution: DFAssist.sln
diff --git a/App/Api/WebApi.cs b/App/Api/WebApi.cs
index f3260da..70bd225 100644
--- a/App/Api/WebApi.cs
+++ b/App/Api/WebApi.cs
@@ -11,25 +11,81 @@ namespace App
{
internal static class WebApi
{
- internal static void Tweet(string key, params object[] args)
+ internal static void Request(string service, string type, string name)
{
Task.Factory.StartNew(() =>
{
- var message = Localization.GetText(key, args);
- var url = $"{Global.API_ENDPOINT}/tweet?u={Settings.TwitterAccount}&m={HttpUtility.UrlEncode(message)}&h={GetMD5Hash(message)}";
+ var account = "";
+ if (service == "telegram")
+ account = Settings.TelegramChatId;
+ else if (service == "discord")
+ account = Settings.DiscordAccount;
+ if (account == "") return;
+ var url = $"{Global.API_ENDPOINT}?service={service}&user={account}&lang={Settings.Language}&type={type}&name={HttpUtility.UrlEncode(name)}&hash={GetMD5Hash(name)}";
var resp = Request(url);
if (resp == null)
{
- Log.E("tweet-failed-request");
+ Log.E($"l-{service}-failed-request");
}
- else if (resp == "1")
+ else if (resp == "0")
{
- Log.E("tweet-failed");
+ Log.S($"l-{service}-success");
}
- else if (resp == "0")
+ else
+ {
+ Log.E($"l-{service}-failed-general", resp);
+ }
+ });
+ }
+
+ internal static void customHttpRequest(string status, string name)
+ {
+ Task.Factory.StartNew(() =>
+ {
+ var url = "http://" + Settings.customHttpUrl;
+ string data = "{ \"status\": \""+status+"\", \"name\" : \""+name+"\" }";
+
+ try
+ {
+ HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
+ request.Method = "POST";
+ request.ContentType = "application/json";
+ request.Timeout = 30 * 1000;
+
+ // POST할 데이터를 Request Stream에 쓴다
+ byte[] bytes = Encoding.UTF8.GetBytes(data);
+ request.ContentLength = bytes.Length; // 바이트수 지정
+
+ using (Stream reqStream = request.GetRequestStream())
+ {
+ reqStream.Write(bytes, 0, bytes.Length);
+ }
+
+ Log.I("l-POST-send", url, data);
+
+ // Response 처리
+ string responseText = string.Empty;
+ using (WebResponse resp = request.GetResponse())
+ {
+ Stream respStream = resp.GetResponseStream();
+ using (StreamReader sr = new StreamReader(respStream))
+ {
+ responseText = sr.ReadToEnd();
+ if(responseText == null)
+ {
+ Log.E("l-POST-no-response");
+ }
+ else
+ {
+ Log.S("l-POST-response",responseText);
+ }
+ }
+ }
+ }
+ catch (Exception ex)
{
- Log.S("tweet-success");
+ Log.Ex(ex, "l-POST-failed");
}
});
}
@@ -39,11 +95,15 @@ internal static string Request(string urlfmt, params object[] args)
try
{
var url = string.Format(urlfmt, args);
+
+ ServicePointManager.Expect100Continue = true;
+ ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
+ ServicePointManager.DefaultConnectionLimit = 9999;
+
var request = (HttpWebRequest)WebRequest.Create(url);
request.UserAgent = "DFA";
request.Timeout = 10000;
request.CachePolicy = new RequestCachePolicy(RequestCacheLevel.NoCacheNoStore);
-
using (var response = (HttpWebResponse)request.GetResponse())
{
var encoding = Encoding.GetEncoding(response.CharacterSet);
@@ -55,7 +115,7 @@ internal static string Request(string urlfmt, params object[] args)
}
catch (Exception ex)
{
- Log.Ex(ex, "web-failed");
+ Log.Ex(ex, "l-web-request-failed");
}
return null;
diff --git a/App/App.csproj b/App/App.csproj
index 95b1e79..d0f60fa 100644
--- a/App/App.csproj
+++ b/App/App.csproj
@@ -1,228 +1,227 @@
-
-
-
-
-
- Debug
- AnyCPU
- {0390E828-597D-4CBD-93A6-E6D5492A56EC}
- WinExe
- Properties
- App
- DFAssist
- v4.0
- 512
-
- false
-
-
- publish\
- true
- Disk
- false
- Foreground
- 7
- Days
- false
- false
- true
- 0
- 1.0.0.%2a
- false
- true
-
-
- AnyCPU
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
-
-
- AnyCPU
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
-
-
- App.ico
-
-
- app.manifest
-
-
- App.Program
-
-
- false
-
-
-
-
-
-
- OnBuildSuccess
-
-
-
-
- ..\packages\Newtonsoft.Json.6.0.8\lib\net40\Newtonsoft.Json.dll
-
-
- ..\packages\SharpRaven.2.2.0\lib\net40\SharpRaven.dll
-
-
-
-
-
-
-
-
-
-
-
-
-
- Component
-
-
- True
- True
- Resources.resx
-
-
-
-
-
-
-
-
-
- Form
-
-
- OverlayFormMove.cs
-
-
- Component
-
-
-
-
-
-
-
-
-
- Form
-
-
- MainForm.cs
-
-
-
-
-
-
- Component
-
-
- Form
-
-
- UpdaterForm.cs
-
-
- Form
-
-
- OverlayForm.cs
-
-
-
-
-
-
-
-
- MainForm.cs
-
-
- OverlayFormMove.cs
-
-
- UpdaterForm.cs
-
-
- OverlayForm.cs
-
-
- ResXFileCodeGenerator
- Designer
- Resources.Designer.cs
-
-
- Designer
-
-
- Designer
-
-
-
-
-
-
- Designer
-
-
-
- SettingsSingleFileGenerator
- Settings.Designer.cs
-
-
- True
- Settings.settings
- True
-
-
-
-
-
-
-
-
-
-
- Designer
-
-
-
-
- {58FBCF7C-E7A9-467C-80B3-FC65E8FCCA08}
- 1
- 0
- 0
- tlbimp
- False
- True
-
-
-
-
- False
- .NET Framework 3.5 SP1
- true
-
-
-
-
-
+
+
+
+
+
+ Debug
+ AnyCPU
+ {0390E828-597D-4CBD-93A6-E6D5492A56EC}
+ WinExe
+ Properties
+ App
+ DFAssist
+ v4.0
+ 512
+
+ false
+
+
+ publish\
+ true
+ Disk
+ false
+ Foreground
+ 7
+ Days
+ false
+ false
+ true
+ 0
+ 1.0.0.%2a
+ false
+ true
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+ App.ico
+
+
+ app.manifest
+
+
+ App.Program
+
+
+ false
+
+
+
+
+
+
+ OnBuildSuccess
+
+
+
+
+ ..\packages\Newtonsoft.Json.6.0.8\lib\net40\Newtonsoft.Json.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Component
+
+
+ True
+ True
+ Resources.resx
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ OverlayFormMove.cs
+
+
+ Component
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ MainForm.cs
+
+
+
+
+
+ Component
+
+
+ Form
+
+
+ UpdaterForm.cs
+
+
+ Form
+
+
+ OverlayForm.cs
+
+
+
+
+
+
+
+
+ MainForm.cs
+
+
+ OverlayFormMove.cs
+
+
+ UpdaterForm.cs
+
+
+ OverlayForm.cs
+
+
+ ResXFileCodeGenerator
+ Designer
+ Resources.Designer.cs
+
+
+ Designer
+
+
+ Designer
+
+
+
+
+
+
+
+ Designer
+
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {58FBCF7C-E7A9-467C-80B3-FC65E8FCCA08}
+ 1
+ 0
+ 0
+ tlbimp
+ False
+ True
+
+
+
+
+ False
+ .NET Framework 3.5 SP1
+ true
+
+
+
+
+
set DeployPath=$(TargetDir)Deploy
set ZipPath=$(SolutionDir)$(TargetName).zip
if $(ConfigurationName) == Release (
@@ -233,21 +232,21 @@ if $(ConfigurationName) == Release (
powershell.exe -nologo -noprofile -command "& { Add-Type -A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::CreateFromDirectory('%25DeployPath%25', '%25ZipPath%25'); }"
rmdir "%25DeployPath%25" /s /q
echo Output: %25ZipPath%25
-)
-
-
-
- This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
-
-
-
-
-
+)
+
+
+
+ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
+
+
+
+
+
+ -->
\ No newline at end of file
diff --git a/App/Data.cs b/App/Data.cs
index da87624..5f699b1 100644
--- a/App/Data.cs
+++ b/App/Data.cs
@@ -2,7 +2,6 @@
using System.Collections.Generic;
using App.Properties;
using Newtonsoft.Json;
-using SharpRaven.Data;
namespace App
{
@@ -10,13 +9,14 @@ public static class Data
{
public static bool Initialized { get; private set; } = false;
public static decimal Version { get; private set; } = 0;
+ public static string Language { get; private set; } = "";
public static Dictionary Areas { get; private set; } = new Dictionary();
public static Dictionary Instances { get; private set; } = new Dictionary();
public static Dictionary Roulettes { get; private set; } = new Dictionary();
public static Dictionary FATEs { get; private set; } = new Dictionary();
- internal static void Initialize(string language)
+ internal static void Initialize(string language, MainForm mainForm)
{
string json;
@@ -34,18 +34,26 @@ internal static void Initialize(string language)
json = Resources.Data_FR_FR;
break;
+ case "de-de":
+ json = Resources.Data_DE_DE;
+ break;
+
case "ja-jp":
json = Resources.Data_JA_JP;
break;
+ case "ru-ru":
+ json = Resources.Data_EN_US;
+ break;
+
default:
return;
}
- Fill(json);
+ Fill(json, mainForm);
}
- public static void Fill(string json)
+ public static void Fill(string json, MainForm mainForm)
{
try
{
@@ -53,7 +61,7 @@ public static void Fill(string json)
var version = data.Version;
- if (version > Version)
+ if (version > Version || Language != Settings.Language)
{
var fates = new Dictionary();
foreach (var area in data.Areas)
@@ -70,9 +78,11 @@ public static void Fill(string json)
Roulettes = data.Roulettes;
FATEs = fates;
Version = version;
+ Language = Settings.Language;
if (Initialized)
{
+ mainForm.Invoke(mainForm.refresh_Fates);
Log.S("l-data-updated", Version);
}
@@ -98,10 +108,7 @@ internal static Instance GetInstance(int code)
if (code != 0)
{
- var @event = new SentryEvent("Missing instance code");
- @event.Level = ErrorLevel.Warning;
- @event.Tags["code"] = code.ToString();
- Sentry.ReportAsync(@event);
+ // "Missing instance code"
}
return new Instance { Name = Localization.GetText("unknown-instance", code) };
@@ -116,10 +123,7 @@ internal static Roulette GetRoulette(int code)
if (code != 0)
{
- var @event = new SentryEvent("Missing Roulette code");
- @event.Level = ErrorLevel.Warning;
- @event.Tags["code"] = code.ToString();
- Sentry.ReportAsync(@event);
+ // "Missing Roulette code"
}
return new Roulette { Name = Localization.GetText("unknown-roulette", code) };
@@ -134,10 +138,7 @@ internal static Area GetArea(int code)
if (code != 0)
{
- var @event = new SentryEvent("Missing area code");
- @event.Level = ErrorLevel.Warning;
- @event.Tags["code"] = code.ToString();
- Sentry.ReportAsync(@event);
+ // "Missing area code"
}
return new Area { Name = Localization.GetText("unknown-area", code) };
@@ -152,10 +153,7 @@ internal static FATE GetFATE(int code)
if (code != 0)
{
- var @event = new SentryEvent("Missing FATE code");
- @event.Level = ErrorLevel.Warning;
- @event.Tags["code"] = code.ToString();
- Sentry.ReportAsync(@event);
+ // "Missing FATE code"
}
return new FATE { Name = Localization.GetText("unknown-fate", code) };
diff --git a/App/Form/MainForm.Designer.cs b/App/Form/MainForm.Designer.cs
index c4dfd05..2eca63c 100644
--- a/App/Form/MainForm.Designer.cs
+++ b/App/Form/MainForm.Designer.cs
@@ -1,805 +1,1207 @@
-namespace App
-{
- partial class MainForm
- {
- ///
- /// Required designer variable.
- ///
- private System.ComponentModel.IContainer components = null;
-
- ///
- /// Clean up any resources being used.
- ///
- /// true if managed resources should be disposed; otherwise, false.
- protected override void Dispose(bool disposing)
- {
- if (disposing && (components != null))
- {
- components.Dispose();
- }
- base.Dispose(disposing);
- }
-
- #region Windows Form Designer generated code
-
- ///
- /// Required method for Designer support - do not modify
- /// the contents of this method with the code editor.
- ///
- private void InitializeComponent()
- {
- this.components = new System.ComponentModel.Container();
- System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
- this.label_AboutTitle = new App.LocalizableLabel();
- this.button_ResetProcess = new System.Windows.Forms.Button();
- this.comboBox_Process = new System.Windows.Forms.ComboBox();
- this.button_SelectProcess = new System.Windows.Forms.Button();
- this.button_ResetOverlayPosition = new System.Windows.Forms.Button();
- this.checkBox_Overlay = new System.Windows.Forms.CheckBox();
- this.notifyIcon = new System.Windows.Forms.NotifyIcon(this.components);
- this.contextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
- this.toolStripMenuItem_Open = new System.Windows.Forms.ToolStripMenuItem();
- this.toolStripMenuItem_Close = new System.Windows.Forms.ToolStripMenuItem();
- this.panel_TopSetting = new System.Windows.Forms.Panel();
- this.label_Process = new App.LocalizableLabel();
- this.comboBox_Language = new System.Windows.Forms.ComboBox();
- this.toolTip = new System.Windows.Forms.ToolTip(this.components);
- this.tabControl = new App.TabControlBlack();
- this.tabPage_Settings = new System.Windows.Forms.TabPage();
- this.groupBox_TwitterSet = new System.Windows.Forms.GroupBox();
- this.textBox_Twitter = new System.Windows.Forms.TextBox();
- this.label_TwitterAt = new App.LocalizableLabel();
- this.label_TwitterAbout = new App.LocalizableLabel();
- this.checkBox_Twitter = new System.Windows.Forms.CheckBox();
- this.groupBox_DefaultSet = new System.Windows.Forms.GroupBox();
- this.label_SoundLocation = new App.LocalizableLabel();
- this.button_SoundLocation = new System.Windows.Forms.Button();
- this.checkBox_PlaySound = new System.Windows.Forms.CheckBox();
- this.checkBox_ShowAnnouncement = new System.Windows.Forms.CheckBox();
- this.checkBox_FlashWindow = new System.Windows.Forms.CheckBox();
- this.checkBox_AutoOverlayHide = new System.Windows.Forms.CheckBox();
- this.checkBox_StartupShow = new System.Windows.Forms.CheckBox();
- this.tabPage_FATE = new System.Windows.Forms.TabPage();
- this.label_FATEAbout = new App.LocalizableLabel();
- this.triStateTreeView_FATEs = new RikTheVeggie.TriStateTreeView();
- this.menuStrip_FATETab = new System.Windows.Forms.MenuStrip();
- this.toolStripMenuItem_SelectAll = new System.Windows.Forms.ToolStripMenuItem();
- this.toolStripMenuItem_UnSelectAll = new System.Windows.Forms.ToolStripMenuItem();
- this.presetToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.bookOfSkyfireIToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.bookOfSkyfireIIToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.bookOfNetherfireIToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator();
- this.bookOfSkyfallIToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.bookOfSkyfallIIToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.bookOfNetherfireIToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
- this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator();
- this.bookOfSkywindIToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.bookOfSkywindIIToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator();
- this.bookOfSkyearthIToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.toolStripMenuItem_SelectApply = new System.Windows.Forms.ToolStripMenuItem();
- this.tabPage_Log = new System.Windows.Forms.TabPage();
- this.panel_LogCover = new System.Windows.Forms.Panel();
- this.richTextBox_Log = new System.Windows.Forms.RichTextBox();
- this.menuStrip_LogTab = new System.Windows.Forms.MenuStrip();
- this.toolStripMenuItem_LogCopy = new System.Windows.Forms.ToolStripMenuItem();
- this.toolStripMenuItem_LogClear = new System.Windows.Forms.ToolStripMenuItem();
- this.tabPage_Info = new System.Windows.Forms.TabPage();
- this.label_About = new App.LocalizableLabel();
- this.linkLabel_GitHub = new System.Windows.Forms.LinkLabel();
- this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
- this.contextMenuStrip.SuspendLayout();
- this.panel_TopSetting.SuspendLayout();
- this.tabControl.SuspendLayout();
- this.tabPage_Settings.SuspendLayout();
- this.groupBox_TwitterSet.SuspendLayout();
- this.groupBox_DefaultSet.SuspendLayout();
- this.tabPage_FATE.SuspendLayout();
- this.menuStrip_FATETab.SuspendLayout();
- this.tabPage_Log.SuspendLayout();
- this.panel_LogCover.SuspendLayout();
- this.menuStrip_LogTab.SuspendLayout();
- this.tabPage_Info.SuspendLayout();
- this.SuspendLayout();
- //
- // label_AboutTitle
- //
- this.label_AboutTitle.BackColor = System.Drawing.Color.Silver;
- this.label_AboutTitle.Dock = System.Windows.Forms.DockStyle.Bottom;
- this.label_AboutTitle.Font = new System.Drawing.Font("Malgun Gothic", 11.25F, System.Drawing.FontStyle.Bold);
- this.label_AboutTitle.ForeColor = System.Drawing.Color.Gray;
- this.label_AboutTitle.Location = new System.Drawing.Point(0, 297);
- this.label_AboutTitle.Name = "label_AboutTitle";
- this.label_AboutTitle.Size = new System.Drawing.Size(544, 24);
- this.label_AboutTitle.TabIndex = 0;
- this.label_AboutTitle.Text = "VERSION STRING";
- this.label_AboutTitle.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
- //
- // button_ResetProcess
- //
- this.button_ResetProcess.Font = new System.Drawing.Font("Malgun Gothic", 8F);
- this.button_ResetProcess.Location = new System.Drawing.Point(288, 0);
- this.button_ResetProcess.Name = "button_ResetProcess";
- this.button_ResetProcess.Size = new System.Drawing.Size(60, 27);
- this.button_ResetProcess.TabIndex = 0;
- this.button_ResetProcess.Text = "재설정";
- this.button_ResetProcess.UseVisualStyleBackColor = true;
- this.button_ResetProcess.Click += new System.EventHandler(this.button_ResetProcess_Click);
- //
- // comboBox_Process
- //
- this.comboBox_Process.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
- this.comboBox_Process.Font = new System.Drawing.Font("Malgun Gothic", 9F);
- this.comboBox_Process.FormattingEnabled = true;
- this.comboBox_Process.Location = new System.Drawing.Point(107, 2);
- this.comboBox_Process.Name = "comboBox_Process";
- this.comboBox_Process.Size = new System.Drawing.Size(120, 23);
- this.comboBox_Process.Sorted = true;
- this.comboBox_Process.TabIndex = 0;
- //
- // button_SelectProcess
- //
- this.button_SelectProcess.Font = new System.Drawing.Font("Malgun Gothic", 8F);
- this.button_SelectProcess.Location = new System.Drawing.Point(228, 0);
- this.button_SelectProcess.Name = "button_SelectProcess";
- this.button_SelectProcess.Size = new System.Drawing.Size(60, 27);
- this.button_SelectProcess.TabIndex = 0;
- this.button_SelectProcess.Text = "수동설정";
- this.button_SelectProcess.UseVisualStyleBackColor = true;
- this.button_SelectProcess.Click += new System.EventHandler(this.button_SelectProcess_Click);
- //
- // button_ResetOverlayPosition
- //
- this.button_ResetOverlayPosition.Font = new System.Drawing.Font("Malgun Gothic", 8F);
- this.button_ResetOverlayPosition.Location = new System.Drawing.Point(110, 22);
- this.button_ResetOverlayPosition.Name = "button_ResetOverlayPosition";
- this.button_ResetOverlayPosition.Size = new System.Drawing.Size(74, 20);
- this.button_ResetOverlayPosition.TabIndex = 0;
- this.button_ResetOverlayPosition.Text = "위치 초기화";
- this.button_ResetOverlayPosition.UseVisualStyleBackColor = true;
- this.button_ResetOverlayPosition.Click += new System.EventHandler(this.button_ResetOverlayPosition_Click);
- //
- // checkBox_Overlay
- //
- this.checkBox_Overlay.AutoSize = true;
- this.checkBox_Overlay.Checked = true;
- this.checkBox_Overlay.CheckState = System.Windows.Forms.CheckState.Checked;
- this.checkBox_Overlay.Font = new System.Drawing.Font("Malgun Gothic", 9F);
- this.checkBox_Overlay.Location = new System.Drawing.Point(6, 23);
- this.checkBox_Overlay.Name = "checkBox_Overlay";
- this.checkBox_Overlay.Size = new System.Drawing.Size(102, 19);
- this.checkBox_Overlay.TabIndex = 0;
- this.checkBox_Overlay.Text = "오버레이 사용";
- this.toolTip.SetToolTip(this.checkBox_Overlay, "오버레이 UI의 좌측 막대를 이용해 드래그 할 수 있습니다.");
- this.checkBox_Overlay.UseVisualStyleBackColor = true;
- this.checkBox_Overlay.CheckedChanged += new System.EventHandler(this.checkBox_Overlay_CheckedChanged);
- //
- // notifyIcon
- //
- this.notifyIcon.ContextMenuStrip = this.contextMenuStrip;
- this.notifyIcon.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon.Icon")));
- this.notifyIcon.Text = "임무/돌발 찾기 도우미";
- this.notifyIcon.Visible = true;
- this.notifyIcon.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.notifyIcon_MouseDoubleClick);
- //
- // contextMenuStrip
- //
- this.contextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.toolStripMenuItem_Open,
- this.toolStripMenuItem_Close});
- this.contextMenuStrip.Name = "contextMenuStrip";
- this.contextMenuStrip.Size = new System.Drawing.Size(99, 48);
- //
- // toolStripMenuItem_Open
- //
- this.toolStripMenuItem_Open.Name = "toolStripMenuItem_Open";
- this.toolStripMenuItem_Open.Size = new System.Drawing.Size(98, 22);
- this.toolStripMenuItem_Open.Text = "열기";
- this.toolStripMenuItem_Open.Click += new System.EventHandler(this.toolStripMenuItem_Open_Click);
- //
- // toolStripMenuItem_Close
- //
- this.toolStripMenuItem_Close.Name = "toolStripMenuItem_Close";
- this.toolStripMenuItem_Close.Size = new System.Drawing.Size(98, 22);
- this.toolStripMenuItem_Close.Text = "종료";
- this.toolStripMenuItem_Close.Click += new System.EventHandler(this.toolStripMenuItem_Close_Click);
- //
- // panel_TopSetting
- //
- this.panel_TopSetting.BackColor = System.Drawing.Color.Silver;
- this.panel_TopSetting.Controls.Add(this.label_Process);
- this.panel_TopSetting.Controls.Add(this.comboBox_Language);
- this.panel_TopSetting.Controls.Add(this.comboBox_Process);
- this.panel_TopSetting.Controls.Add(this.button_SelectProcess);
- this.panel_TopSetting.Controls.Add(this.button_ResetProcess);
- this.panel_TopSetting.Dock = System.Windows.Forms.DockStyle.Top;
- this.panel_TopSetting.Location = new System.Drawing.Point(0, 0);
- this.panel_TopSetting.Name = "panel_TopSetting";
- this.panel_TopSetting.Padding = new System.Windows.Forms.Padding(5);
- this.panel_TopSetting.Size = new System.Drawing.Size(544, 27);
- this.panel_TopSetting.TabIndex = 1;
- //
- // label_Process
- //
- this.label_Process.AutoSize = true;
- this.label_Process.Dock = System.Windows.Forms.DockStyle.Left;
- this.label_Process.Font = new System.Drawing.Font("Malgun Gothic", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
- this.label_Process.ForeColor = System.Drawing.Color.Gray;
- this.label_Process.Location = new System.Drawing.Point(5, 5);
- this.label_Process.Name = "label_Process";
- this.label_Process.Size = new System.Drawing.Size(100, 17);
- this.label_Process.TabIndex = 0;
- this.label_Process.Text = "FFXIV 프로세스";
- //
- // comboBox_Language
- //
- this.comboBox_Language.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
- this.comboBox_Language.BackColor = System.Drawing.SystemColors.Window;
- this.comboBox_Language.DisplayMember = "Code";
- this.comboBox_Language.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
- this.comboBox_Language.Font = new System.Drawing.Font("Malgun Gothic", 9F);
- this.comboBox_Language.FormattingEnabled = true;
- this.comboBox_Language.Location = new System.Drawing.Point(480, 2);
- this.comboBox_Language.Name = "comboBox_Language";
- this.comboBox_Language.Size = new System.Drawing.Size(62, 23);
- this.comboBox_Language.TabIndex = 4;
- this.comboBox_Language.ValueMember = "Code";
- //
- // tabControl
- //
- this.tabControl.Alignment = System.Windows.Forms.TabAlignment.Left;
- this.tabControl.Controls.Add(this.tabPage_Settings);
- this.tabControl.Controls.Add(this.tabPage_FATE);
- this.tabControl.Controls.Add(this.tabPage_Log);
- this.tabControl.Controls.Add(this.tabPage_Info);
- this.tabControl.Dock = System.Windows.Forms.DockStyle.Fill;
- this.tabControl.ItemSize = new System.Drawing.Size(30, 110);
- this.tabControl.Location = new System.Drawing.Point(0, 27);
- this.tabControl.Multiline = true;
- this.tabControl.Name = "tabControl";
- this.tabControl.SelectedIndex = 0;
- this.tabControl.Size = new System.Drawing.Size(544, 270);
- this.tabControl.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
- this.tabControl.TabIndex = 0;
- //
- // tabPage_Settings
- //
- this.tabPage_Settings.BackColor = System.Drawing.SystemColors.Control;
- this.tabPage_Settings.Controls.Add(this.groupBox_TwitterSet);
- this.tabPage_Settings.Controls.Add(this.groupBox_DefaultSet);
- this.tabPage_Settings.Location = new System.Drawing.Point(114, 4);
- this.tabPage_Settings.Name = "tabPage_Settings";
- this.tabPage_Settings.Size = new System.Drawing.Size(426, 262);
- this.tabPage_Settings.TabIndex = 1;
- this.tabPage_Settings.Text = "설정";
- //
- // groupBox_TwitterSet
- //
- this.groupBox_TwitterSet.Controls.Add(this.textBox_Twitter);
- this.groupBox_TwitterSet.Controls.Add(this.label_TwitterAt);
- this.groupBox_TwitterSet.Controls.Add(this.label_TwitterAbout);
- this.groupBox_TwitterSet.Controls.Add(this.checkBox_Twitter);
- this.groupBox_TwitterSet.Dock = System.Windows.Forms.DockStyle.Top;
- this.groupBox_TwitterSet.Location = new System.Drawing.Point(0, 151);
- this.groupBox_TwitterSet.Name = "groupBox_TwitterSet";
- this.groupBox_TwitterSet.Size = new System.Drawing.Size(426, 111);
- this.groupBox_TwitterSet.TabIndex = 0;
- this.groupBox_TwitterSet.TabStop = false;
- this.groupBox_TwitterSet.Text = "트위터 알림";
- //
- // textBox_Twitter
- //
- this.textBox_Twitter.ImeMode = System.Windows.Forms.ImeMode.Off;
- this.textBox_Twitter.Location = new System.Drawing.Point(37, 25);
- this.textBox_Twitter.MaxLength = 16;
- this.textBox_Twitter.Name = "textBox_Twitter";
- this.textBox_Twitter.Size = new System.Drawing.Size(156, 25);
- this.textBox_Twitter.TabIndex = 0;
- this.textBox_Twitter.TextChanged += new System.EventHandler(this.textBox_Twitter_TextChanged);
- //
- // label_TwitterAt
- //
- this.label_TwitterAt.AutoSize = true;
- this.label_TwitterAt.Location = new System.Drawing.Point(12, 28);
- this.label_TwitterAt.Name = "label_TwitterAt";
- this.label_TwitterAt.Size = new System.Drawing.Size(21, 17);
- this.label_TwitterAt.TabIndex = 0;
- this.label_TwitterAt.Text = "@";
- //
- // label_TwitterAbout
- //
- this.label_TwitterAbout.Font = new System.Drawing.Font("Malgun Gothic", 8F);
- this.label_TwitterAbout.Location = new System.Drawing.Point(13, 61);
- this.label_TwitterAbout.Name = "label_TwitterAbout";
- this.label_TwitterAbout.Size = new System.Drawing.Size(407, 48);
- this.label_TwitterAbout.TabIndex = 0;
- this.label_TwitterAbout.Text = "매칭이 됐을 시 입력된 트위터 계정으로 멘션을 보내 해당 사실을 알립니다.\r\n원하는 돌발이 발생했을 시에도 멘션을 보내 해당 사실을 알립니다.\r\n" +
- "계정명 입력시 앞의 @ 표시는 제외하고 순수 계정명만 입력해주세요.";
- //
- // checkBox_Twitter
- //
- this.checkBox_Twitter.AutoSize = true;
- this.checkBox_Twitter.Location = new System.Drawing.Point(199, 28);
- this.checkBox_Twitter.Name = "checkBox_Twitter";
- this.checkBox_Twitter.Size = new System.Drawing.Size(66, 21);
- this.checkBox_Twitter.TabIndex = 0;
- this.checkBox_Twitter.Text = "활성화";
- this.checkBox_Twitter.UseVisualStyleBackColor = true;
- this.checkBox_Twitter.CheckedChanged += new System.EventHandler(this.checkBox_Twitter_CheckedChanged);
- //
- // groupBox_DefaultSet
- //
- this.groupBox_DefaultSet.Controls.Add(this.label_SoundLocation);
- this.groupBox_DefaultSet.Controls.Add(this.button_SoundLocation);
- this.groupBox_DefaultSet.Controls.Add(this.checkBox_PlaySound);
- this.groupBox_DefaultSet.Controls.Add(this.button_ResetOverlayPosition);
- this.groupBox_DefaultSet.Controls.Add(this.checkBox_ShowAnnouncement);
- this.groupBox_DefaultSet.Controls.Add(this.checkBox_FlashWindow);
- this.groupBox_DefaultSet.Controls.Add(this.checkBox_AutoOverlayHide);
- this.groupBox_DefaultSet.Controls.Add(this.checkBox_StartupShow);
- this.groupBox_DefaultSet.Controls.Add(this.checkBox_Overlay);
- this.groupBox_DefaultSet.Dock = System.Windows.Forms.DockStyle.Top;
- this.groupBox_DefaultSet.Location = new System.Drawing.Point(0, 0);
- this.groupBox_DefaultSet.Name = "groupBox_DefaultSet";
- this.groupBox_DefaultSet.Size = new System.Drawing.Size(426, 151);
- this.groupBox_DefaultSet.TabIndex = 0;
- this.groupBox_DefaultSet.TabStop = false;
- this.groupBox_DefaultSet.Text = "기본설정";
- this.groupBox_DefaultSet.Enter += new System.EventHandler(this.groupBox_DefaultSet_Enter);
- //
- // label_SoundLocation
- //
- this.label_SoundLocation.Font = new System.Drawing.Font("Malgun Gothic", 8F);
- this.label_SoundLocation.Location = new System.Drawing.Point(198, 126);
- this.label_SoundLocation.Name = "label_SoundLocation";
- this.label_SoundLocation.Size = new System.Drawing.Size(225, 13);
- this.label_SoundLocation.TabIndex = 1;
- //
- // button_SoundLocation
- //
- this.button_SoundLocation.Font = new System.Drawing.Font("Malgun Gothic", 8F);
- this.button_SoundLocation.Location = new System.Drawing.Point(110, 122);
- this.button_SoundLocation.Name = "button_SoundLocation";
- this.button_SoundLocation.Size = new System.Drawing.Size(82, 20);
- this.button_SoundLocation.TabIndex = 5;
- this.button_SoundLocation.Text = "사운드 선택";
- this.button_SoundLocation.UseVisualStyleBackColor = true;
- this.button_SoundLocation.Click += new System.EventHandler(this.button_SoundLocation_Click);
- //
- // checkBox_PlaySound
- //
- this.checkBox_PlaySound.AutoSize = true;
- this.checkBox_PlaySound.Font = new System.Drawing.Font("Malgun Gothic", 9F);
- this.checkBox_PlaySound.Location = new System.Drawing.Point(6, 123);
- this.checkBox_PlaySound.Name = "checkBox_PlaySound";
- this.checkBox_PlaySound.Size = new System.Drawing.Size(90, 19);
- this.checkBox_PlaySound.TabIndex = 4;
- this.checkBox_PlaySound.Text = "사운드 재생";
- this.checkBox_PlaySound.UseVisualStyleBackColor = true;
- this.checkBox_PlaySound.CheckedChanged += new System.EventHandler(this.checkBox_PlaySound_CheckedChanged);
- //
- // checkBox_ShowAnnouncement
- //
- this.checkBox_ShowAnnouncement.AutoSize = true;
- this.checkBox_ShowAnnouncement.Font = new System.Drawing.Font("Malgun Gothic", 9F);
- this.checkBox_ShowAnnouncement.Location = new System.Drawing.Point(6, 103);
- this.checkBox_ShowAnnouncement.Name = "checkBox_ShowAnnouncement";
- this.checkBox_ShowAnnouncement.Size = new System.Drawing.Size(190, 19);
- this.checkBox_ShowAnnouncement.TabIndex = 3;
- this.checkBox_ShowAnnouncement.Text = "오버레이에 공지사항 보여주기";
- this.checkBox_ShowAnnouncement.UseVisualStyleBackColor = true;
- this.checkBox_ShowAnnouncement.CheckedChanged += new System.EventHandler(this.checkBox_ShowAnnouncement_CheckedChanged);
- //
- // checkBox_FlashWindow
- //
- this.checkBox_FlashWindow.AutoSize = true;
- this.checkBox_FlashWindow.Font = new System.Drawing.Font("Malgun Gothic", 9F);
- this.checkBox_FlashWindow.Location = new System.Drawing.Point(6, 83);
- this.checkBox_FlashWindow.Name = "checkBox_FlashWindow";
- this.checkBox_FlashWindow.Size = new System.Drawing.Size(369, 19);
- this.checkBox_FlashWindow.TabIndex = 2;
- this.checkBox_FlashWindow.Text = "매칭/돌발 발생시 파이널판타지14 작업 표시줄 아이콘 깜빡이기";
- this.checkBox_FlashWindow.UseVisualStyleBackColor = true;
- this.checkBox_FlashWindow.CheckedChanged += new System.EventHandler(this.checkBox_FlashWindow_CheckedChanged);
- //
- // checkBox_AutoOverlayHide
- //
- this.checkBox_AutoOverlayHide.AutoSize = true;
- this.checkBox_AutoOverlayHide.Font = new System.Drawing.Font("Malgun Gothic", 9F);
- this.checkBox_AutoOverlayHide.Location = new System.Drawing.Point(6, 63);
- this.checkBox_AutoOverlayHide.Name = "checkBox_AutoOverlayHide";
- this.checkBox_AutoOverlayHide.Size = new System.Drawing.Size(222, 19);
- this.checkBox_AutoOverlayHide.TabIndex = 1;
- this.checkBox_AutoOverlayHide.Text = "임무 입장시 자동으로 오버레이 숨김";
- this.checkBox_AutoOverlayHide.UseVisualStyleBackColor = true;
- this.checkBox_AutoOverlayHide.CheckedChanged += new System.EventHandler(this.checkBox_AutoOverlayHide_CheckedChanged);
- //
- // checkBox_StartupShow
- //
- this.checkBox_StartupShow.AutoSize = true;
- this.checkBox_StartupShow.Font = new System.Drawing.Font("Malgun Gothic", 9F);
- this.checkBox_StartupShow.Location = new System.Drawing.Point(6, 43);
- this.checkBox_StartupShow.Name = "checkBox_StartupShow";
- this.checkBox_StartupShow.Size = new System.Drawing.Size(186, 19);
- this.checkBox_StartupShow.TabIndex = 0;
- this.checkBox_StartupShow.Text = "프로그램 시작시 이 창 보이기";
- this.checkBox_StartupShow.UseVisualStyleBackColor = true;
- this.checkBox_StartupShow.CheckedChanged += new System.EventHandler(this.checkBox_StartupShow_CheckedChanged);
- //
- // tabPage_FATE
- //
- this.tabPage_FATE.BackColor = System.Drawing.SystemColors.Control;
- this.tabPage_FATE.Controls.Add(this.label_FATEAbout);
- this.tabPage_FATE.Controls.Add(this.triStateTreeView_FATEs);
- this.tabPage_FATE.Controls.Add(this.menuStrip_FATETab);
- this.tabPage_FATE.Location = new System.Drawing.Point(114, 4);
- this.tabPage_FATE.Name = "tabPage_FATE";
- this.tabPage_FATE.Size = new System.Drawing.Size(426, 262);
- this.tabPage_FATE.TabIndex = 0;
- this.tabPage_FATE.Text = "돌발";
- //
- // label_FATEAbout
- //
- this.label_FATEAbout.Dock = System.Windows.Forms.DockStyle.Bottom;
- this.label_FATEAbout.Font = new System.Drawing.Font("Malgun Gothic", 8F);
- this.label_FATEAbout.Location = new System.Drawing.Point(0, 230);
- this.label_FATEAbout.Name = "label_FATEAbout";
- this.label_FATEAbout.Size = new System.Drawing.Size(426, 32);
- this.label_FATEAbout.TabIndex = 2;
- this.label_FATEAbout.Text = "알림을 받고자 하는 돌발을 선택하신 뒤 상단 적용하기 버튼을 눌러주세요.\r\n돌발 알림은 캐릭터가 해당 지역에 있을 때에만 동작합니다.";
- //
- // triStateTreeView_FATEs
- //
- this.triStateTreeView_FATEs.BackColor = System.Drawing.SystemColors.Control;
- this.triStateTreeView_FATEs.Dock = System.Windows.Forms.DockStyle.Top;
- this.triStateTreeView_FATEs.FullRowSelect = true;
- this.triStateTreeView_FATEs.HotTracking = true;
- this.triStateTreeView_FATEs.Location = new System.Drawing.Point(0, 24);
- this.triStateTreeView_FATEs.Name = "triStateTreeView_FATEs";
- this.triStateTreeView_FATEs.Size = new System.Drawing.Size(426, 203);
- this.triStateTreeView_FATEs.TabIndex = 0;
- this.triStateTreeView_FATEs.TriStateStyleProperty = RikTheVeggie.TriStateTreeView.TriStateStyles.Installer;
- //
- // menuStrip_FATETab
- //
- this.menuStrip_FATETab.BackColor = System.Drawing.SystemColors.Control;
- this.menuStrip_FATETab.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.toolStripMenuItem_SelectAll,
- this.toolStripMenuItem_UnSelectAll,
- this.presetToolStripMenuItem,
- this.toolStripMenuItem_SelectApply});
- this.menuStrip_FATETab.Location = new System.Drawing.Point(0, 0);
- this.menuStrip_FATETab.Name = "menuStrip_FATETab";
- this.menuStrip_FATETab.Size = new System.Drawing.Size(426, 24);
- this.menuStrip_FATETab.TabIndex = 0;
- this.menuStrip_FATETab.Text = "menuStrip1";
- //
- // toolStripMenuItem_SelectAll
- //
- this.toolStripMenuItem_SelectAll.Name = "toolStripMenuItem_SelectAll";
- this.toolStripMenuItem_SelectAll.Size = new System.Drawing.Size(70, 20);
- this.toolStripMenuItem_SelectAll.Text = "모두 선택";
- this.toolStripMenuItem_SelectAll.Click += new System.EventHandler(this.toolStripMenuItem_SelectAll_Click);
- //
- // toolStripMenuItem_UnSelectAll
- //
- this.toolStripMenuItem_UnSelectAll.Name = "toolStripMenuItem_UnSelectAll";
- this.toolStripMenuItem_UnSelectAll.Size = new System.Drawing.Size(70, 20);
- this.toolStripMenuItem_UnSelectAll.Text = "모두 해제";
- this.toolStripMenuItem_UnSelectAll.Click += new System.EventHandler(this.toolStripMenuItem_UnSelectAll_Click);
- //
- // presetToolStripMenuItem
- //
- this.presetToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.bookOfSkyfireIToolStripMenuItem,
- this.bookOfSkyfireIIToolStripMenuItem,
- this.bookOfNetherfireIToolStripMenuItem,
- this.toolStripMenuItem1,
- this.bookOfSkyfallIToolStripMenuItem,
- this.bookOfSkyfallIIToolStripMenuItem,
- this.bookOfNetherfireIToolStripMenuItem1,
- this.toolStripMenuItem2,
- this.bookOfSkywindIToolStripMenuItem,
- this.bookOfSkywindIIToolStripMenuItem,
- this.toolStripMenuItem3,
- this.bookOfSkyearthIToolStripMenuItem});
- this.presetToolStripMenuItem.Name = "presetToolStripMenuItem";
- this.presetToolStripMenuItem.Size = new System.Drawing.Size(55, 20);
- this.presetToolStripMenuItem.Text = "프리셋";
- //
- // bookOfSkyfireIToolStripMenuItem
- //
- this.bookOfSkyfireIToolStripMenuItem.Name = "bookOfSkyfireIToolStripMenuItem";
- this.bookOfSkyfireIToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
- this.bookOfSkyfireIToolStripMenuItem.Text = "불의 서 1권";
- this.bookOfSkyfireIToolStripMenuItem.Click += new System.EventHandler(this.bookOfSkyfireIToolStripMenuItem_Click);
- //
- // bookOfSkyfireIIToolStripMenuItem
- //
- this.bookOfSkyfireIIToolStripMenuItem.Name = "bookOfSkyfireIIToolStripMenuItem";
- this.bookOfSkyfireIIToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
- this.bookOfSkyfireIIToolStripMenuItem.Text = "불의 서 2권";
- this.bookOfSkyfireIIToolStripMenuItem.Click += new System.EventHandler(this.bookOfSkyfireIIToolStripMenuItem_Click);
- //
- // bookOfNetherfireIToolStripMenuItem
- //
- this.bookOfNetherfireIToolStripMenuItem.Name = "bookOfNetherfireIToolStripMenuItem";
- this.bookOfNetherfireIToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
- this.bookOfNetherfireIToolStripMenuItem.Text = "불의 서 3권";
- this.bookOfNetherfireIToolStripMenuItem.Click += new System.EventHandler(this.bookOfNetherfireIToolStripMenuItem_Click);
- //
- // toolStripMenuItem1
- //
- this.toolStripMenuItem1.Name = "toolStripMenuItem1";
- this.toolStripMenuItem1.Size = new System.Drawing.Size(143, 6);
- //
- // bookOfSkyfallIToolStripMenuItem
- //
- this.bookOfSkyfallIToolStripMenuItem.Name = "bookOfSkyfallIToolStripMenuItem";
- this.bookOfSkyfallIToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
- this.bookOfSkyfallIToolStripMenuItem.Text = "물의 서 1권";
- this.bookOfSkyfallIToolStripMenuItem.Click += new System.EventHandler(this.bookOfSkyfallIToolStripMenuItem_Click);
- //
- // bookOfSkyfallIIToolStripMenuItem
- //
- this.bookOfSkyfallIIToolStripMenuItem.Name = "bookOfSkyfallIIToolStripMenuItem";
- this.bookOfSkyfallIIToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
- this.bookOfSkyfallIIToolStripMenuItem.Text = "물의 서 2권";
- this.bookOfSkyfallIIToolStripMenuItem.Click += new System.EventHandler(this.bookOfSkyfallIIToolStripMenuItem_Click);
- //
- // bookOfNetherfireIToolStripMenuItem1
- //
- this.bookOfNetherfireIToolStripMenuItem1.Name = "bookOfNetherfireIToolStripMenuItem1";
- this.bookOfNetherfireIToolStripMenuItem1.Size = new System.Drawing.Size(146, 22);
- this.bookOfNetherfireIToolStripMenuItem1.Text = "물의 서 3권";
- this.bookOfNetherfireIToolStripMenuItem1.Click += new System.EventHandler(this.bookOfNetherfireIToolStripMenuItem1_Click);
- //
- // toolStripMenuItem2
- //
- this.toolStripMenuItem2.Name = "toolStripMenuItem2";
- this.toolStripMenuItem2.Size = new System.Drawing.Size(143, 6);
- //
- // bookOfSkywindIToolStripMenuItem
- //
- this.bookOfSkywindIToolStripMenuItem.Name = "bookOfSkywindIToolStripMenuItem";
- this.bookOfSkywindIToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
- this.bookOfSkywindIToolStripMenuItem.Text = "바람의 서 1권";
- this.bookOfSkywindIToolStripMenuItem.Click += new System.EventHandler(this.bookOfSkywindIToolStripMenuItem_Click);
- //
- // bookOfSkywindIIToolStripMenuItem
- //
- this.bookOfSkywindIIToolStripMenuItem.Name = "bookOfSkywindIIToolStripMenuItem";
- this.bookOfSkywindIIToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
- this.bookOfSkywindIIToolStripMenuItem.Text = "바람의 서 2권";
- this.bookOfSkywindIIToolStripMenuItem.Click += new System.EventHandler(this.bookOfSkywindIIToolStripMenuItem_Click);
- //
- // toolStripMenuItem3
- //
- this.toolStripMenuItem3.Name = "toolStripMenuItem3";
- this.toolStripMenuItem3.Size = new System.Drawing.Size(143, 6);
- //
- // bookOfSkyearthIToolStripMenuItem
- //
- this.bookOfSkyearthIToolStripMenuItem.Name = "bookOfSkyearthIToolStripMenuItem";
- this.bookOfSkyearthIToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
- this.bookOfSkyearthIToolStripMenuItem.Text = "땅의 서 1권";
- this.bookOfSkyearthIToolStripMenuItem.Click += new System.EventHandler(this.bookOfSkyearthIToolStripMenuItem_Click);
- //
- // toolStripMenuItem_SelectApply
- //
- this.toolStripMenuItem_SelectApply.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold);
- this.toolStripMenuItem_SelectApply.Name = "toolStripMenuItem_SelectApply";
- this.toolStripMenuItem_SelectApply.Size = new System.Drawing.Size(67, 20);
- this.toolStripMenuItem_SelectApply.Text = "적용하기";
- this.toolStripMenuItem_SelectApply.Click += new System.EventHandler(this.toolStripMenuItem_SelectApply_Click);
- //
- // tabPage_Log
- //
- this.tabPage_Log.BackColor = System.Drawing.SystemColors.Control;
- this.tabPage_Log.Controls.Add(this.panel_LogCover);
- this.tabPage_Log.Controls.Add(this.menuStrip_LogTab);
- this.tabPage_Log.Location = new System.Drawing.Point(114, 4);
- this.tabPage_Log.Name = "tabPage_Log";
- this.tabPage_Log.Size = new System.Drawing.Size(426, 262);
- this.tabPage_Log.TabIndex = 2;
- this.tabPage_Log.Text = "로그";
- //
- // panel_LogCover
- //
- this.panel_LogCover.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.panel_LogCover.Controls.Add(this.richTextBox_Log);
- this.panel_LogCover.Dock = System.Windows.Forms.DockStyle.Fill;
- this.panel_LogCover.Location = new System.Drawing.Point(0, 24);
- this.panel_LogCover.Name = "panel_LogCover";
- this.panel_LogCover.Size = new System.Drawing.Size(426, 238);
- this.panel_LogCover.TabIndex = 1;
- //
- // richTextBox_Log
- //
- this.richTextBox_Log.BackColor = System.Drawing.SystemColors.Control;
- this.richTextBox_Log.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.richTextBox_Log.Dock = System.Windows.Forms.DockStyle.Fill;
- this.richTextBox_Log.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
- this.richTextBox_Log.Location = new System.Drawing.Point(0, 0);
- this.richTextBox_Log.Name = "richTextBox_Log";
- this.richTextBox_Log.ReadOnly = true;
- this.richTextBox_Log.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.ForcedVertical;
- this.richTextBox_Log.Size = new System.Drawing.Size(424, 236);
- this.richTextBox_Log.TabIndex = 0;
- this.richTextBox_Log.Text = "";
- this.richTextBox_Log.TextChanged += new System.EventHandler(this.richTextBox_Log_TextChanged);
- //
- // menuStrip_LogTab
- //
- this.menuStrip_LogTab.BackColor = System.Drawing.SystemColors.Control;
- this.menuStrip_LogTab.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.toolStripMenuItem_LogCopy,
- this.toolStripMenuItem_LogClear});
- this.menuStrip_LogTab.Location = new System.Drawing.Point(0, 0);
- this.menuStrip_LogTab.Name = "menuStrip_LogTab";
- this.menuStrip_LogTab.Size = new System.Drawing.Size(426, 24);
- this.menuStrip_LogTab.TabIndex = 0;
- this.menuStrip_LogTab.Text = "menuStrip2";
- //
- // toolStripMenuItem_LogCopy
- //
- this.toolStripMenuItem_LogCopy.Name = "toolStripMenuItem_LogCopy";
- this.toolStripMenuItem_LogCopy.Size = new System.Drawing.Size(70, 20);
- this.toolStripMenuItem_LogCopy.Text = "로그 복사";
- this.toolStripMenuItem_LogCopy.Click += new System.EventHandler(this.toolStripMenuItem_LogCopy_Click);
- //
- // toolStripMenuItem_LogClear
- //
- this.toolStripMenuItem_LogClear.Name = "toolStripMenuItem_LogClear";
- this.toolStripMenuItem_LogClear.Size = new System.Drawing.Size(70, 20);
- this.toolStripMenuItem_LogClear.Text = "로그 삭제";
- this.toolStripMenuItem_LogClear.Click += new System.EventHandler(this.toolStripMenuItem_LogClear_Click);
- //
- // tabPage_Info
- //
- this.tabPage_Info.BackColor = System.Drawing.SystemColors.Control;
- this.tabPage_Info.Controls.Add(this.label_About);
- this.tabPage_Info.Controls.Add(this.linkLabel_GitHub);
- this.tabPage_Info.Location = new System.Drawing.Point(114, 4);
- this.tabPage_Info.Name = "tabPage_Info";
- this.tabPage_Info.Size = new System.Drawing.Size(426, 262);
- this.tabPage_Info.TabIndex = 3;
- this.tabPage_Info.Text = "정보";
- //
- // label_About
- //
- this.label_About.Dock = System.Windows.Forms.DockStyle.Fill;
- this.label_About.Font = new System.Drawing.Font("Malgun Gothic", 10F);
- this.label_About.Location = new System.Drawing.Point(0, 0);
- this.label_About.Name = "label_About";
- this.label_About.Size = new System.Drawing.Size(426, 237);
- this.label_About.TabIndex = 0;
- this.label_About.Text = "[제작 및 문의]\r\n유채색\r\n라그린네\r\n히비야\r\n\r\n[저작권]\r\n기재되어있는 회사명 · 제품명 · 시스템 이름은\r\n해당 소유자의 상표 또는 등록 " +
- "상표입니다.\r\n(C) 2010 - 2017 SQUARE ENIX CO., LTD All Rights Reserved.\r\nKorea Publish" +
- "ed by EYEDENTITY MOBILE.";
- this.label_About.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- //
- // linkLabel_GitHub
- //
- this.linkLabel_GitHub.Dock = System.Windows.Forms.DockStyle.Bottom;
- this.linkLabel_GitHub.Location = new System.Drawing.Point(0, 237);
- this.linkLabel_GitHub.Name = "linkLabel_GitHub";
- this.linkLabel_GitHub.Size = new System.Drawing.Size(426, 25);
- this.linkLabel_GitHub.TabIndex = 0;
- this.linkLabel_GitHub.TabStop = true;
- this.linkLabel_GitHub.Text = "GitHub";
- this.linkLabel_GitHub.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.linkLabel_GitHub.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel_GitHub_LinkClicked);
- //
- // openFileDialog1
- //
- this.openFileDialog1.FileName = "openFileDialog1";
- //
- // MainForm
- //
- this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
- this.AutoSize = true;
- this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
- this.ClientSize = new System.Drawing.Size(544, 321);
- this.Controls.Add(this.tabControl);
- this.Controls.Add(this.label_AboutTitle);
- this.Controls.Add(this.panel_TopSetting);
- this.DoubleBuffered = true;
- this.Font = new System.Drawing.Font("Malgun Gothic", 9.75F);
- this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
- this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
- this.MaximizeBox = false;
- this.MinimumSize = new System.Drawing.Size(560, 360);
- this.Name = "MainForm";
- this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
- this.Text = "임무/돌발 찾기 도우미";
- this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing);
- this.Load += new System.EventHandler(this.MainForm_Load);
- this.contextMenuStrip.ResumeLayout(false);
- this.panel_TopSetting.ResumeLayout(false);
- this.panel_TopSetting.PerformLayout();
- this.tabControl.ResumeLayout(false);
- this.tabPage_Settings.ResumeLayout(false);
- this.groupBox_TwitterSet.ResumeLayout(false);
- this.groupBox_TwitterSet.PerformLayout();
- this.groupBox_DefaultSet.ResumeLayout(false);
- this.groupBox_DefaultSet.PerformLayout();
- this.tabPage_FATE.ResumeLayout(false);
- this.tabPage_FATE.PerformLayout();
- this.menuStrip_FATETab.ResumeLayout(false);
- this.menuStrip_FATETab.PerformLayout();
- this.tabPage_Log.ResumeLayout(false);
- this.tabPage_Log.PerformLayout();
- this.panel_LogCover.ResumeLayout(false);
- this.menuStrip_LogTab.ResumeLayout(false);
- this.menuStrip_LogTab.PerformLayout();
- this.tabPage_Info.ResumeLayout(false);
- this.ResumeLayout(false);
-
- }
-
- #endregion
- internal System.Windows.Forms.RichTextBox richTextBox_Log;
- private System.Windows.Forms.LinkLabel linkLabel_GitHub;
- private System.Windows.Forms.CheckBox checkBox_Overlay;
- private LocalizableLabel label_AboutTitle;
- private System.Windows.Forms.Button button_ResetOverlayPosition;
- private System.Windows.Forms.Button button_SelectProcess;
- private System.Windows.Forms.ContextMenuStrip contextMenuStrip;
- private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem_Open;
- private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem_Close;
- private System.Windows.Forms.CheckBox checkBox_StartupShow;
- private System.Windows.Forms.ComboBox comboBox_Process;
- private System.Windows.Forms.Button button_ResetProcess;
- private System.Windows.Forms.TextBox textBox_Twitter;
- private LocalizableLabel label_TwitterAt;
- private LocalizableLabel label_TwitterAbout;
- private System.Windows.Forms.CheckBox checkBox_Twitter;
- internal RikTheVeggie.TriStateTreeView triStateTreeView_FATEs;
- private System.Windows.Forms.Panel panel_TopSetting;
- private LocalizableLabel label_Process;
- private TabControlBlack tabControl;
- private System.Windows.Forms.TabPage tabPage_FATE;
- private System.Windows.Forms.TabPage tabPage_Settings;
- private System.Windows.Forms.MenuStrip menuStrip_FATETab;
- private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem_SelectAll;
- private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem_UnSelectAll;
- private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem_SelectApply;
- private System.Windows.Forms.TabPage tabPage_Log;
- private System.Windows.Forms.Panel panel_LogCover;
- private System.Windows.Forms.MenuStrip menuStrip_LogTab;
- private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem_LogCopy;
- private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem_LogClear;
- private System.Windows.Forms.ToolTip toolTip;
- private System.Windows.Forms.TabPage tabPage_Info;
- private LocalizableLabel label_About;
- private System.Windows.Forms.GroupBox groupBox_TwitterSet;
- private System.Windows.Forms.GroupBox groupBox_DefaultSet;
- private System.Windows.Forms.CheckBox checkBox_AutoOverlayHide;
- internal System.Windows.Forms.NotifyIcon notifyIcon;
- private System.Windows.Forms.CheckBox checkBox_FlashWindow;
- private System.Windows.Forms.ToolStripMenuItem presetToolStripMenuItem;
- private System.Windows.Forms.ToolStripMenuItem bookOfSkyfireIToolStripMenuItem;
- private System.Windows.Forms.ToolStripMenuItem bookOfSkyfireIIToolStripMenuItem;
- private System.Windows.Forms.ToolStripMenuItem bookOfNetherfireIToolStripMenuItem;
- private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1;
- private System.Windows.Forms.ToolStripMenuItem bookOfSkyfallIToolStripMenuItem;
- private System.Windows.Forms.ToolStripMenuItem bookOfSkyfallIIToolStripMenuItem;
- private System.Windows.Forms.ToolStripMenuItem bookOfNetherfireIToolStripMenuItem1;
- private System.Windows.Forms.ToolStripSeparator toolStripMenuItem2;
- private System.Windows.Forms.ToolStripMenuItem bookOfSkywindIToolStripMenuItem;
- private System.Windows.Forms.ToolStripMenuItem bookOfSkywindIIToolStripMenuItem;
- private System.Windows.Forms.ToolStripSeparator toolStripMenuItem3;
- private System.Windows.Forms.ToolStripMenuItem bookOfSkyearthIToolStripMenuItem;
- private LocalizableLabel label_FATEAbout;
- private System.Windows.Forms.ComboBox comboBox_Language;
- private System.Windows.Forms.CheckBox checkBox_ShowAnnouncement;
- private System.Windows.Forms.CheckBox checkBox_PlaySound;
- private System.Windows.Forms.Button button_SoundLocation;
- private System.Windows.Forms.OpenFileDialog openFileDialog1;
- private LocalizableLabel label_SoundLocation;
- }
-}
-
+namespace App
+{
+ partial class MainForm
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
+ this.button_ResetProcess = new System.Windows.Forms.Button();
+ this.comboBox_Process = new System.Windows.Forms.ComboBox();
+ this.button_SelectProcess = new System.Windows.Forms.Button();
+ this.notifyIcon = new System.Windows.Forms.NotifyIcon(this.components);
+ this.contextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
+ this.toolStripMenuItem_Open = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolStripMenuItem_Close = new System.Windows.Forms.ToolStripMenuItem();
+ this.panel_TopSetting = new System.Windows.Forms.Panel();
+ this.comboBox_Language = new System.Windows.Forms.ComboBox();
+ this.pictureBox1 = new System.Windows.Forms.PictureBox();
+ this.label_Process = new App.LocalizableLabel();
+ this.toolTip = new System.Windows.Forms.ToolTip(this.components);
+ this.checkBox_Overlay = new System.Windows.Forms.CheckBox();
+ this.tabControl = new App.TabControlBlack();
+ this.tabPage_Settings = new System.Windows.Forms.TabPage();
+ this.linkLabel_Localization = new System.Windows.Forms.LinkLabel();
+ this.groupBox_DefaultSet = new System.Windows.Forms.GroupBox();
+ this.checkBox_CopyMacro = new System.Windows.Forms.CheckBox();
+ this.checkBox_autoHideOverlay = new System.Windows.Forms.CheckBox();
+ this.checkBox_useVPN = new System.Windows.Forms.CheckBox();
+ this.label_CustomSoundFileName = new System.Windows.Forms.Label();
+ this.button_getSoundFile = new System.Windows.Forms.Button();
+ this.checkBox_CustomSound = new System.Windows.Forms.CheckBox();
+ this.checkBox_FateSound = new System.Windows.Forms.CheckBox();
+ this.button_ResetOverlayPosition = new System.Windows.Forms.Button();
+ this.checkBox_CheatRoullete = new System.Windows.Forms.CheckBox();
+ this.checkBox_FlashWindow = new System.Windows.Forms.CheckBox();
+ this.checkBox_StartupShow = new System.Windows.Forms.CheckBox();
+ this.tabPage_3rdParty = new System.Windows.Forms.TabPage();
+ this.linkLabel_Telegram = new System.Windows.Forms.LinkLabel();
+ this.linkLabel_DiscordServer = new System.Windows.Forms.LinkLabel();
+ this.groupBox_DiscordSet = new System.Windows.Forms.GroupBox();
+ this.textBox_Discord = new System.Windows.Forms.TextBox();
+ this.label_DiscordAt = new App.LocalizableLabel();
+ this.label_DiscordAbout = new App.LocalizableLabel();
+ this.checkBox_Discord = new System.Windows.Forms.CheckBox();
+ this.groupBox_TelegramSet = new System.Windows.Forms.GroupBox();
+ this.checkBox_Telegram_Queue_Status = new System.Windows.Forms.CheckBox();
+ this.textBox_Telegram = new System.Windows.Forms.TextBox();
+ this.label_Telegram_ChatId = new App.LocalizableLabel();
+ this.label_TelegramAbout = new App.LocalizableLabel();
+ this.checkBox_Telegram = new System.Windows.Forms.CheckBox();
+ this.tabPage_Advanced = new System.Windows.Forms.TabPage();
+ this.groupBox_debug = new System.Windows.Forms.GroupBox();
+ this.checkBox_DebugLog = new System.Windows.Forms.CheckBox();
+ this.groupBox_CustomHttpRequest = new System.Windows.Forms.GroupBox();
+ this.label_HttpRequestReadme = new System.Windows.Forms.Label();
+ this.textBox_CustomHttpUrl = new System.Windows.Forms.TextBox();
+ this.label_HttpRequestUrl = new System.Windows.Forms.Label();
+ this.checkBox_RequestOnDutyMatched = new System.Windows.Forms.CheckBox();
+ this.checkBox_RequestOnFateOccur = new System.Windows.Forms.CheckBox();
+ this.checkBox_EnableHttpRequest = new System.Windows.Forms.CheckBox();
+ this.tabPage_FATE = new System.Windows.Forms.TabPage();
+ this.label_FATEAbout = new App.LocalizableLabel();
+ this.triStateTreeView_FATEs = new RikTheVeggie.TriStateTreeView();
+ this.menuStrip_FATETab = new System.Windows.Forms.MenuStrip();
+ this.toolStripMenuItem_SelectAll = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolStripMenuItem_UnSelectAll = new System.Windows.Forms.ToolStripMenuItem();
+ this.presetToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.bookOfSkyfireIToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.bookOfSkyfireIIToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.bookOfNetherfireIToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator();
+ this.bookOfSkyfallIToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.bookOfSkyfallIIToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.bookOfNetherfireIToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator();
+ this.bookOfSkywindIToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.bookOfSkywindIIToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator();
+ this.bookOfSkyearthIToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
+ this.IxionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.TamamoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
+ this.frogMountToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.frogSuitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolStripMenuItem_SelectApply = new System.Windows.Forms.ToolStripMenuItem();
+ this.tabPage_Log = new System.Windows.Forms.TabPage();
+ this.panel_LogCover = new System.Windows.Forms.Panel();
+ this.richTextBox_Log = new System.Windows.Forms.RichTextBox();
+ this.menuStrip_LogTab = new System.Windows.Forms.MenuStrip();
+ this.toolStripMenuItem_LogCopy = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolStripMenuItem_LogClear = new System.Windows.Forms.ToolStripMenuItem();
+ this.tabPage_Info = new System.Windows.Forms.TabPage();
+ this.label_About = new App.LocalizableLabel();
+ this.linkLabel_GitHub = new System.Windows.Forms.LinkLabel();
+ this.label_AboutTitle = new App.LocalizableLabel();
+ this.contextMenuStrip.SuspendLayout();
+ this.panel_TopSetting.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
+ this.tabControl.SuspendLayout();
+ this.tabPage_Settings.SuspendLayout();
+ this.groupBox_DefaultSet.SuspendLayout();
+ this.tabPage_3rdParty.SuspendLayout();
+ this.groupBox_DiscordSet.SuspendLayout();
+ this.groupBox_TelegramSet.SuspendLayout();
+ this.tabPage_Advanced.SuspendLayout();
+ this.groupBox_debug.SuspendLayout();
+ this.groupBox_CustomHttpRequest.SuspendLayout();
+ this.tabPage_FATE.SuspendLayout();
+ this.menuStrip_FATETab.SuspendLayout();
+ this.tabPage_Log.SuspendLayout();
+ this.panel_LogCover.SuspendLayout();
+ this.menuStrip_LogTab.SuspendLayout();
+ this.tabPage_Info.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // button_ResetProcess
+ //
+ this.button_ResetProcess.Font = new System.Drawing.Font("맑은 고딕", 8F);
+ this.button_ResetProcess.Location = new System.Drawing.Point(293, 0);
+ this.button_ResetProcess.Name = "button_ResetProcess";
+ this.button_ResetProcess.Size = new System.Drawing.Size(60, 27);
+ this.button_ResetProcess.TabIndex = 0;
+ this.button_ResetProcess.Text = "재설정";
+ this.button_ResetProcess.UseVisualStyleBackColor = true;
+ this.button_ResetProcess.Click += new System.EventHandler(this.button_ResetProcess_Click);
+ //
+ // comboBox_Process
+ //
+ this.comboBox_Process.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.comboBox_Process.Font = new System.Drawing.Font("맑은 고딕", 9F);
+ this.comboBox_Process.FormattingEnabled = true;
+ this.comboBox_Process.Location = new System.Drawing.Point(107, 2);
+ this.comboBox_Process.Name = "comboBox_Process";
+ this.comboBox_Process.Size = new System.Drawing.Size(120, 23);
+ this.comboBox_Process.Sorted = true;
+ this.comboBox_Process.TabIndex = 0;
+ //
+ // button_SelectProcess
+ //
+ this.button_SelectProcess.Font = new System.Drawing.Font("맑은 고딕", 8F);
+ this.button_SelectProcess.Location = new System.Drawing.Point(228, 0);
+ this.button_SelectProcess.Name = "button_SelectProcess";
+ this.button_SelectProcess.Size = new System.Drawing.Size(65, 27);
+ this.button_SelectProcess.TabIndex = 0;
+ this.button_SelectProcess.Text = "수동설정";
+ this.button_SelectProcess.UseVisualStyleBackColor = true;
+ this.button_SelectProcess.Click += new System.EventHandler(this.button_SelectProcess_Click);
+ //
+ // notifyIcon
+ //
+ this.notifyIcon.ContextMenuStrip = this.contextMenuStrip;
+ this.notifyIcon.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon.Icon")));
+ this.notifyIcon.Text = "임무/돌발 찾기 도우미";
+ this.notifyIcon.Visible = true;
+ this.notifyIcon.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.notifyIcon_MouseDoubleClick);
+ //
+ // contextMenuStrip
+ //
+ this.contextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.toolStripMenuItem_Open,
+ this.toolStripMenuItem_Close});
+ this.contextMenuStrip.Name = "contextMenuStrip";
+ this.contextMenuStrip.Size = new System.Drawing.Size(99, 48);
+ //
+ // toolStripMenuItem_Open
+ //
+ this.toolStripMenuItem_Open.Name = "toolStripMenuItem_Open";
+ this.toolStripMenuItem_Open.Size = new System.Drawing.Size(98, 22);
+ this.toolStripMenuItem_Open.Text = "열기";
+ this.toolStripMenuItem_Open.Click += new System.EventHandler(this.toolStripMenuItem_Open_Click);
+ //
+ // toolStripMenuItem_Close
+ //
+ this.toolStripMenuItem_Close.Name = "toolStripMenuItem_Close";
+ this.toolStripMenuItem_Close.Size = new System.Drawing.Size(98, 22);
+ this.toolStripMenuItem_Close.Text = "종료";
+ this.toolStripMenuItem_Close.Click += new System.EventHandler(this.toolStripMenuItem_Close_Click);
+ //
+ // panel_TopSetting
+ //
+ this.panel_TopSetting.BackColor = System.Drawing.Color.Silver;
+ this.panel_TopSetting.Controls.Add(this.comboBox_Language);
+ this.panel_TopSetting.Controls.Add(this.pictureBox1);
+ this.panel_TopSetting.Controls.Add(this.label_Process);
+ this.panel_TopSetting.Controls.Add(this.comboBox_Process);
+ this.panel_TopSetting.Controls.Add(this.button_SelectProcess);
+ this.panel_TopSetting.Controls.Add(this.button_ResetProcess);
+ this.panel_TopSetting.Dock = System.Windows.Forms.DockStyle.Top;
+ this.panel_TopSetting.Location = new System.Drawing.Point(0, 0);
+ this.panel_TopSetting.Name = "panel_TopSetting";
+ this.panel_TopSetting.Padding = new System.Windows.Forms.Padding(5);
+ this.panel_TopSetting.Size = new System.Drawing.Size(544, 27);
+ this.panel_TopSetting.TabIndex = 1;
+ //
+ // comboBox_Language
+ //
+ this.comboBox_Language.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.comboBox_Language.BackColor = System.Drawing.SystemColors.Window;
+ this.comboBox_Language.DisplayMember = "Code";
+ this.comboBox_Language.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.comboBox_Language.Font = new System.Drawing.Font("맑은 고딕", 9F);
+ this.comboBox_Language.FormattingEnabled = true;
+ this.comboBox_Language.Location = new System.Drawing.Point(480, 2);
+ this.comboBox_Language.Name = "comboBox_Language";
+ this.comboBox_Language.Size = new System.Drawing.Size(62, 23);
+ this.comboBox_Language.TabIndex = 0;
+ this.comboBox_Language.ValueMember = "Code";
+ //
+ // pictureBox1
+ //
+ this.pictureBox1.Image = global::App.Properties.Resources.language2;
+ this.pictureBox1.Location = new System.Drawing.Point(464, 2);
+ this.pictureBox1.Name = "pictureBox1";
+ this.pictureBox1.Size = new System.Drawing.Size(22, 22);
+ this.pictureBox1.TabIndex = 5;
+ this.pictureBox1.TabStop = false;
+ //
+ // label_Process
+ //
+ this.label_Process.AutoSize = true;
+ this.label_Process.Dock = System.Windows.Forms.DockStyle.Left;
+ this.label_Process.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+ this.label_Process.ForeColor = System.Drawing.Color.Gray;
+ this.label_Process.Location = new System.Drawing.Point(5, 5);
+ this.label_Process.Name = "label_Process";
+ this.label_Process.Size = new System.Drawing.Size(100, 17);
+ this.label_Process.TabIndex = 0;
+ this.label_Process.Text = "FFXIV 프로세스";
+ //
+ // checkBox_Overlay
+ //
+ this.checkBox_Overlay.AutoSize = true;
+ this.checkBox_Overlay.Checked = true;
+ this.checkBox_Overlay.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.checkBox_Overlay.Font = new System.Drawing.Font("맑은 고딕", 9F);
+ this.checkBox_Overlay.Location = new System.Drawing.Point(6, 23);
+ this.checkBox_Overlay.Name = "checkBox_Overlay";
+ this.checkBox_Overlay.Size = new System.Drawing.Size(102, 19);
+ this.checkBox_Overlay.TabIndex = 1;
+ this.checkBox_Overlay.Text = "오버레이 사용";
+ this.toolTip.SetToolTip(this.checkBox_Overlay, "오버레이 UI의 좌측 막대를 이용해 드래그 할 수 있습니다.");
+ this.checkBox_Overlay.UseVisualStyleBackColor = true;
+ this.checkBox_Overlay.CheckedChanged += new System.EventHandler(this.checkBox_Overlay_CheckedChanged);
+ //
+ // tabControl
+ //
+ this.tabControl.Alignment = System.Windows.Forms.TabAlignment.Left;
+ this.tabControl.Controls.Add(this.tabPage_Settings);
+ this.tabControl.Controls.Add(this.tabPage_3rdParty);
+ this.tabControl.Controls.Add(this.tabPage_Advanced);
+ this.tabControl.Controls.Add(this.tabPage_FATE);
+ this.tabControl.Controls.Add(this.tabPage_Log);
+ this.tabControl.Controls.Add(this.tabPage_Info);
+ this.tabControl.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.tabControl.ItemSize = new System.Drawing.Size(30, 110);
+ this.tabControl.Location = new System.Drawing.Point(0, 27);
+ this.tabControl.Multiline = true;
+ this.tabControl.Name = "tabControl";
+ this.tabControl.SelectedIndex = 0;
+ this.tabControl.Size = new System.Drawing.Size(544, 271);
+ this.tabControl.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
+ this.tabControl.TabIndex = 0;
+ //
+ // tabPage_Settings
+ //
+ this.tabPage_Settings.BackColor = System.Drawing.SystemColors.Control;
+ this.tabPage_Settings.Controls.Add(this.linkLabel_Localization);
+ this.tabPage_Settings.Controls.Add(this.groupBox_DefaultSet);
+ this.tabPage_Settings.Location = new System.Drawing.Point(114, 4);
+ this.tabPage_Settings.Name = "tabPage_Settings";
+ this.tabPage_Settings.Size = new System.Drawing.Size(426, 263);
+ this.tabPage_Settings.TabIndex = 1;
+ this.tabPage_Settings.Text = "설정";
+ //
+ // linkLabel_Localization
+ //
+ this.linkLabel_Localization.Dock = System.Windows.Forms.DockStyle.Bottom;
+ this.linkLabel_Localization.Location = new System.Drawing.Point(0, 237);
+ this.linkLabel_Localization.Name = "linkLabel_Localization";
+ this.linkLabel_Localization.Size = new System.Drawing.Size(426, 26);
+ this.linkLabel_Localization.TabIndex = 7;
+ this.linkLabel_Localization.TabStop = true;
+ this.linkLabel_Localization.Text = "DFAssist 번역 참여";
+ this.linkLabel_Localization.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.linkLabel_Localization.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel_Localization_LinkClicked);
+ //
+ // groupBox_DefaultSet
+ //
+ this.groupBox_DefaultSet.Controls.Add(this.checkBox_CopyMacro);
+ this.groupBox_DefaultSet.Controls.Add(this.checkBox_autoHideOverlay);
+ this.groupBox_DefaultSet.Controls.Add(this.checkBox_useVPN);
+ this.groupBox_DefaultSet.Controls.Add(this.label_CustomSoundFileName);
+ this.groupBox_DefaultSet.Controls.Add(this.button_getSoundFile);
+ this.groupBox_DefaultSet.Controls.Add(this.checkBox_CustomSound);
+ this.groupBox_DefaultSet.Controls.Add(this.checkBox_FateSound);
+ this.groupBox_DefaultSet.Controls.Add(this.button_ResetOverlayPosition);
+ this.groupBox_DefaultSet.Controls.Add(this.checkBox_CheatRoullete);
+ this.groupBox_DefaultSet.Controls.Add(this.checkBox_FlashWindow);
+ this.groupBox_DefaultSet.Controls.Add(this.checkBox_StartupShow);
+ this.groupBox_DefaultSet.Controls.Add(this.checkBox_Overlay);
+ this.groupBox_DefaultSet.Dock = System.Windows.Forms.DockStyle.Top;
+ this.groupBox_DefaultSet.Location = new System.Drawing.Point(0, 0);
+ this.groupBox_DefaultSet.Name = "groupBox_DefaultSet";
+ this.groupBox_DefaultSet.Size = new System.Drawing.Size(426, 234);
+ this.groupBox_DefaultSet.TabIndex = 0;
+ this.groupBox_DefaultSet.TabStop = false;
+ this.groupBox_DefaultSet.Text = "기본설정";
+ //
+ // checkBox_CopyMacro
+ //
+ this.checkBox_CopyMacro.AutoSize = true;
+ this.checkBox_CopyMacro.Font = new System.Drawing.Font("맑은 고딕", 9F);
+ this.checkBox_CopyMacro.Location = new System.Drawing.Point(6, 128);
+ this.checkBox_CopyMacro.Name = "checkBox_CopyMacro";
+ this.checkBox_CopyMacro.Size = new System.Drawing.Size(345, 19);
+ this.checkBox_CopyMacro.TabIndex = 7;
+ this.checkBox_CopyMacro.Text = "매크로 정보가 있는 경우, 클립보드에 자동으로 매크로 복사";
+ this.checkBox_CopyMacro.UseVisualStyleBackColor = true;
+ this.checkBox_CopyMacro.CheckedChanged += new System.EventHandler(this.checkBox_CopyMacro_CheckedChanged);
+ //
+ // checkBox_autoHideOverlay
+ //
+ this.checkBox_autoHideOverlay.AutoSize = true;
+ this.checkBox_autoHideOverlay.Font = new System.Drawing.Font("맑은 고딕", 9F);
+ this.checkBox_autoHideOverlay.Location = new System.Drawing.Point(6, 44);
+ this.checkBox_autoHideOverlay.Name = "checkBox_autoHideOverlay";
+ this.checkBox_autoHideOverlay.Size = new System.Drawing.Size(245, 19);
+ this.checkBox_autoHideOverlay.TabIndex = 3;
+ this.checkBox_autoHideOverlay.Text = "임무 매칭 중이 아닐 때, 오버레이 숨기기";
+ this.checkBox_autoHideOverlay.UseVisualStyleBackColor = true;
+ this.checkBox_autoHideOverlay.CheckedChanged += new System.EventHandler(this.checkBox_autoHideOverlay_CheckedChanged);
+ this.checkBox_autoHideOverlay.MouseClick += new System.Windows.Forms.MouseEventHandler(this.checkBox_autoHideOverlay_MouseClick);
+ //
+ // checkBox_useVPN
+ //
+ this.checkBox_useVPN.AutoSize = true;
+ this.checkBox_useVPN.Font = new System.Drawing.Font("맑은 고딕", 9F);
+ this.checkBox_useVPN.Location = new System.Drawing.Point(6, 149);
+ this.checkBox_useVPN.Name = "checkBox_useVPN";
+ this.checkBox_useVPN.Size = new System.Drawing.Size(222, 19);
+ this.checkBox_useVPN.TabIndex = 8;
+ this.checkBox_useVPN.Text = "로컬 네트워크 필터링 해제 (VPN 등)";
+ this.checkBox_useVPN.UseVisualStyleBackColor = true;
+ this.checkBox_useVPN.CheckedChanged += new System.EventHandler(this.checkBox_useVPN_CheckedChanged);
+ this.checkBox_useVPN.MouseUp += new System.Windows.Forms.MouseEventHandler(this.checkBox_useVPN_MouseUp);
+ //
+ // label_CustomSoundFileName
+ //
+ this.label_CustomSoundFileName.AutoSize = true;
+ this.label_CustomSoundFileName.Location = new System.Drawing.Point(213, 207);
+ this.label_CustomSoundFileName.Name = "label_CustomSoundFileName";
+ this.label_CustomSoundFileName.Size = new System.Drawing.Size(115, 17);
+ this.label_CustomSoundFileName.TabIndex = 0;
+ this.label_CustomSoundFileName.Text = "(기본값: 비워두기)";
+ //
+ // button_getSoundFile
+ //
+ this.button_getSoundFile.Font = new System.Drawing.Font("맑은 고딕", 8F);
+ this.button_getSoundFile.Location = new System.Drawing.Point(142, 206);
+ this.button_getSoundFile.Name = "button_getSoundFile";
+ this.button_getSoundFile.Size = new System.Drawing.Size(70, 20);
+ this.button_getSoundFile.TabIndex = 11;
+ this.button_getSoundFile.Text = "파일 선택";
+ this.button_getSoundFile.UseVisualStyleBackColor = true;
+ this.button_getSoundFile.Click += new System.EventHandler(this.button_getSoundFile_Click);
+ //
+ // checkBox_CustomSound
+ //
+ this.checkBox_CustomSound.AutoSize = true;
+ this.checkBox_CustomSound.Font = new System.Drawing.Font("맑은 고딕", 9F);
+ this.checkBox_CustomSound.Location = new System.Drawing.Point(6, 207);
+ this.checkBox_CustomSound.Name = "checkBox_CustomSound";
+ this.checkBox_CustomSound.Size = new System.Drawing.Size(130, 19);
+ this.checkBox_CustomSound.TabIndex = 10;
+ this.checkBox_CustomSound.Text = "알림음 사용자 설정";
+ this.checkBox_CustomSound.UseVisualStyleBackColor = true;
+ this.checkBox_CustomSound.CheckedChanged += new System.EventHandler(this.checkBox_CustomSound_CheckedChanged);
+ this.checkBox_CustomSound.MouseDown += new System.Windows.Forms.MouseEventHandler(this.checkBox_CustomSound_MouseDown);
+ //
+ // checkBox_FateSound
+ //
+ this.checkBox_FateSound.AutoSize = true;
+ this.checkBox_FateSound.Font = new System.Drawing.Font("맑은 고딕", 9F);
+ this.checkBox_FateSound.Location = new System.Drawing.Point(6, 170);
+ this.checkBox_FateSound.Name = "checkBox_FateSound";
+ this.checkBox_FateSound.Size = new System.Drawing.Size(270, 34);
+ this.checkBox_FateSound.TabIndex = 9;
+ this.checkBox_FateSound.Text = "돌발임무 알림음 활성화\r\n(돌발임무 알림에서 사용자 알림음 사용 안함)";
+ this.checkBox_FateSound.UseVisualStyleBackColor = true;
+ this.checkBox_FateSound.CheckedChanged += new System.EventHandler(this.checkBox_FateSound_CheckedChanged);
+ //
+ // button_ResetOverlayPosition
+ //
+ this.button_ResetOverlayPosition.Font = new System.Drawing.Font("맑은 고딕", 8F);
+ this.button_ResetOverlayPosition.Location = new System.Drawing.Point(110, 22);
+ this.button_ResetOverlayPosition.Name = "button_ResetOverlayPosition";
+ this.button_ResetOverlayPosition.Size = new System.Drawing.Size(74, 20);
+ this.button_ResetOverlayPosition.TabIndex = 2;
+ this.button_ResetOverlayPosition.Text = "위치 초기화";
+ this.button_ResetOverlayPosition.UseVisualStyleBackColor = true;
+ this.button_ResetOverlayPosition.Click += new System.EventHandler(this.button_ResetOverlayPosition_Click);
+ //
+ // checkBox_CheatRoullete
+ //
+ this.checkBox_CheatRoullete.AutoSize = true;
+ this.checkBox_CheatRoullete.Font = new System.Drawing.Font("맑은 고딕", 9F);
+ this.checkBox_CheatRoullete.Location = new System.Drawing.Point(6, 107);
+ this.checkBox_CheatRoullete.Name = "checkBox_CheatRoullete";
+ this.checkBox_CheatRoullete.Size = new System.Drawing.Size(302, 19);
+ this.checkBox_CheatRoullete.TabIndex = 6;
+ this.checkBox_CheatRoullete.Text = "무작위 임무일 경우에도 실제 매칭된 임무 보여주기";
+ this.checkBox_CheatRoullete.UseVisualStyleBackColor = true;
+ this.checkBox_CheatRoullete.CheckedChanged += new System.EventHandler(this.checkBox_CheatRoullete_CheckedChanged);
+ //
+ // checkBox_FlashWindow
+ //
+ this.checkBox_FlashWindow.AutoSize = true;
+ this.checkBox_FlashWindow.Font = new System.Drawing.Font("맑은 고딕", 9F);
+ this.checkBox_FlashWindow.Location = new System.Drawing.Point(6, 86);
+ this.checkBox_FlashWindow.Name = "checkBox_FlashWindow";
+ this.checkBox_FlashWindow.Size = new System.Drawing.Size(369, 19);
+ this.checkBox_FlashWindow.TabIndex = 5;
+ this.checkBox_FlashWindow.Text = "매칭/돌발 발생시 파이널판타지14 작업 표시줄 아이콘 깜빡이기";
+ this.checkBox_FlashWindow.UseVisualStyleBackColor = true;
+ this.checkBox_FlashWindow.CheckedChanged += new System.EventHandler(this.checkBox_FlashWindow_CheckedChanged);
+ //
+ // checkBox_StartupShow
+ //
+ this.checkBox_StartupShow.AutoSize = true;
+ this.checkBox_StartupShow.Font = new System.Drawing.Font("맑은 고딕", 9F);
+ this.checkBox_StartupShow.Location = new System.Drawing.Point(6, 65);
+ this.checkBox_StartupShow.Name = "checkBox_StartupShow";
+ this.checkBox_StartupShow.Size = new System.Drawing.Size(186, 19);
+ this.checkBox_StartupShow.TabIndex = 4;
+ this.checkBox_StartupShow.Text = "프로그램 시작시 이 창 보이기";
+ this.checkBox_StartupShow.UseVisualStyleBackColor = true;
+ this.checkBox_StartupShow.CheckedChanged += new System.EventHandler(this.checkBox_StartupShow_CheckedChanged);
+ //
+ // tabPage_3rdParty
+ //
+ this.tabPage_3rdParty.BackColor = System.Drawing.SystemColors.Control;
+ this.tabPage_3rdParty.Controls.Add(this.linkLabel_Telegram);
+ this.tabPage_3rdParty.Controls.Add(this.linkLabel_DiscordServer);
+ this.tabPage_3rdParty.Controls.Add(this.groupBox_DiscordSet);
+ this.tabPage_3rdParty.Controls.Add(this.groupBox_TelegramSet);
+ this.tabPage_3rdParty.Location = new System.Drawing.Point(114, 4);
+ this.tabPage_3rdParty.Name = "tabPage_3rdParty";
+ this.tabPage_3rdParty.Size = new System.Drawing.Size(426, 263);
+ this.tabPage_3rdParty.TabIndex = 5;
+ this.tabPage_3rdParty.Text = "외부 알림";
+ //
+ // linkLabel_Telegram
+ //
+ this.linkLabel_Telegram.Location = new System.Drawing.Point(-2, 243);
+ this.linkLabel_Telegram.Name = "linkLabel_Telegram";
+ this.linkLabel_Telegram.Size = new System.Drawing.Size(213, 20);
+ this.linkLabel_Telegram.TabIndex = 6;
+ this.linkLabel_Telegram.TabStop = true;
+ this.linkLabel_Telegram.Text = "DFAssist Telegram Bot";
+ this.linkLabel_Telegram.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.linkLabel_Telegram.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel_Telegram_LinkClicked);
+ //
+ // linkLabel_DiscordServer
+ //
+ this.linkLabel_DiscordServer.Location = new System.Drawing.Point(210, 243);
+ this.linkLabel_DiscordServer.Name = "linkLabel_DiscordServer";
+ this.linkLabel_DiscordServer.Size = new System.Drawing.Size(216, 20);
+ this.linkLabel_DiscordServer.TabIndex = 4;
+ this.linkLabel_DiscordServer.TabStop = true;
+ this.linkLabel_DiscordServer.Text = "DFAssist Discord Server";
+ this.linkLabel_DiscordServer.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.linkLabel_DiscordServer.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel_DiscordServer_LinkClicked);
+ //
+ // groupBox_DiscordSet
+ //
+ this.groupBox_DiscordSet.Controls.Add(this.textBox_Discord);
+ this.groupBox_DiscordSet.Controls.Add(this.label_DiscordAt);
+ this.groupBox_DiscordSet.Controls.Add(this.label_DiscordAbout);
+ this.groupBox_DiscordSet.Controls.Add(this.checkBox_Discord);
+ this.groupBox_DiscordSet.Dock = System.Windows.Forms.DockStyle.Top;
+ this.groupBox_DiscordSet.Location = new System.Drawing.Point(0, 102);
+ this.groupBox_DiscordSet.Name = "groupBox_DiscordSet";
+ this.groupBox_DiscordSet.Size = new System.Drawing.Size(426, 140);
+ this.groupBox_DiscordSet.TabIndex = 2;
+ this.groupBox_DiscordSet.TabStop = false;
+ this.groupBox_DiscordSet.Text = "디스코드 알림";
+ //
+ // textBox_Discord
+ //
+ this.textBox_Discord.BackColor = System.Drawing.SystemColors.Window;
+ this.textBox_Discord.Enabled = false;
+ this.textBox_Discord.ForeColor = System.Drawing.Color.Black;
+ this.textBox_Discord.ImeMode = System.Windows.Forms.ImeMode.Off;
+ this.textBox_Discord.Location = new System.Drawing.Point(30, 18);
+ this.textBox_Discord.MaxLength = 18;
+ this.textBox_Discord.Name = "textBox_Discord";
+ this.textBox_Discord.Size = new System.Drawing.Size(137, 25);
+ this.textBox_Discord.TabIndex = 11;
+ this.textBox_Discord.TextChanged += new System.EventHandler(this.textBox_Discord_TextChanged);
+ this.textBox_Discord.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.textBox_Discord_KeyPress);
+ //
+ // label_DiscordAt
+ //
+ this.label_DiscordAt.AutoSize = true;
+ this.label_DiscordAt.Location = new System.Drawing.Point(4, 21);
+ this.label_DiscordAt.Name = "label_DiscordAt";
+ this.label_DiscordAt.Size = new System.Drawing.Size(24, 17);
+ this.label_DiscordAt.TabIndex = 12;
+ this.label_DiscordAt.Text = "ID:";
+ //
+ // label_DiscordAbout
+ //
+ this.label_DiscordAbout.Font = new System.Drawing.Font("맑은 고딕", 8F);
+ this.label_DiscordAbout.Location = new System.Drawing.Point(4, 45);
+ this.label_DiscordAbout.Name = "label_DiscordAbout";
+ this.label_DiscordAbout.Size = new System.Drawing.Size(421, 92);
+ this.label_DiscordAbout.TabIndex = 13;
+ this.label_DiscordAbout.Text = "입력된 디스코드 계정으로도 멘션을 통해 알림을 보냅니다.\r\n디스코드 ID는 15자리 이상의 숫자입니다.\r\n\r\n디스코드 ID는 DFAssist 디스" +
+ "코드 서버에서 #get-discord-id 채널에 !id 를 입력하면 확인할 수 있습니다.\r\n또한, DFAssist 디스코드 서버에 참여한 상태" +
+ "여야만 알림을 보낼 수 있습니다.";
+ //
+ // checkBox_Discord
+ //
+ this.checkBox_Discord.AutoSize = true;
+ this.checkBox_Discord.Location = new System.Drawing.Point(173, 20);
+ this.checkBox_Discord.Name = "checkBox_Discord";
+ this.checkBox_Discord.Size = new System.Drawing.Size(66, 21);
+ this.checkBox_Discord.TabIndex = 14;
+ this.checkBox_Discord.Text = "활성화";
+ this.checkBox_Discord.UseVisualStyleBackColor = true;
+ this.checkBox_Discord.CheckedChanged += new System.EventHandler(this.checkBox_Discord_CheckedChanged);
+ //
+ // groupBox_TelegramSet
+ //
+ this.groupBox_TelegramSet.Controls.Add(this.checkBox_Telegram_Queue_Status);
+ this.groupBox_TelegramSet.Controls.Add(this.textBox_Telegram);
+ this.groupBox_TelegramSet.Controls.Add(this.label_Telegram_ChatId);
+ this.groupBox_TelegramSet.Controls.Add(this.label_TelegramAbout);
+ this.groupBox_TelegramSet.Controls.Add(this.checkBox_Telegram);
+ this.groupBox_TelegramSet.Dock = System.Windows.Forms.DockStyle.Top;
+ this.groupBox_TelegramSet.Location = new System.Drawing.Point(0, 0);
+ this.groupBox_TelegramSet.Name = "groupBox_TelegramSet";
+ this.groupBox_TelegramSet.Size = new System.Drawing.Size(426, 102);
+ this.groupBox_TelegramSet.TabIndex = 1;
+ this.groupBox_TelegramSet.TabStop = false;
+ this.groupBox_TelegramSet.Text = "텔레그램 알림";
+ //
+ // checkBox_Telegram_Queue_Status
+ //
+ this.checkBox_Telegram_Queue_Status.AutoSize = true;
+ this.checkBox_Telegram_Queue_Status.Location = new System.Drawing.Point(237, 20);
+ this.checkBox_Telegram_Queue_Status.Name = "checkBox_Telegram_Queue_Status";
+ this.checkBox_Telegram_Queue_Status.Size = new System.Drawing.Size(115, 21);
+ this.checkBox_Telegram_Queue_Status.TabIndex = 15;
+ this.checkBox_Telegram_Queue_Status.Text = "매칭 현황 전송";
+ this.checkBox_Telegram_Queue_Status.UseVisualStyleBackColor = true;
+ this.checkBox_Telegram_Queue_Status.CheckedChanged += new System.EventHandler(this.checkBox_Telegram_Queue_Status_CheckedChanged);
+ //
+ // textBox_Telegram
+ //
+ this.textBox_Telegram.Enabled = false;
+ this.textBox_Telegram.ImeMode = System.Windows.Forms.ImeMode.Off;
+ this.textBox_Telegram.Location = new System.Drawing.Point(62, 18);
+ this.textBox_Telegram.MaxLength = 12;
+ this.textBox_Telegram.Name = "textBox_Telegram";
+ this.textBox_Telegram.Size = new System.Drawing.Size(97, 25);
+ this.textBox_Telegram.TabIndex = 11;
+ this.textBox_Telegram.TextChanged += new System.EventHandler(this.textBox_Telegram_TextChanged);
+ //
+ // label_Telegram_ChatId
+ //
+ this.label_Telegram_ChatId.AutoSize = true;
+ this.label_Telegram_ChatId.Location = new System.Drawing.Point(4, 21);
+ this.label_Telegram_ChatId.Name = "label_Telegram_ChatId";
+ this.label_Telegram_ChatId.Size = new System.Drawing.Size(56, 17);
+ this.label_Telegram_ChatId.TabIndex = 12;
+ this.label_Telegram_ChatId.Text = "Chat ID:";
+ //
+ // label_TelegramAbout
+ //
+ this.label_TelegramAbout.Font = new System.Drawing.Font("맑은 고딕", 8F);
+ this.label_TelegramAbout.Location = new System.Drawing.Point(4, 45);
+ this.label_TelegramAbout.Name = "label_TelegramAbout";
+ this.label_TelegramAbout.Size = new System.Drawing.Size(421, 53);
+ this.label_TelegramAbout.TabIndex = 13;
+ this.label_TelegramAbout.Text = "매칭이 되면 입력한 텔레그램 채팅방으로 메시지를 보내 해당 사실을 알립니다.\r\n원하는 돌발이 발생했을 시에도 메시지를 보내 해당 사실을 알립니다." +
+ "\r\n채팅방 ID는 DFAssist Notify Bot에게 아무 메시지나 보내면 확인할 수 있습니다.";
+ //
+ // checkBox_Telegram
+ //
+ this.checkBox_Telegram.AutoSize = true;
+ this.checkBox_Telegram.Location = new System.Drawing.Point(165, 20);
+ this.checkBox_Telegram.Name = "checkBox_Telegram";
+ this.checkBox_Telegram.Size = new System.Drawing.Size(66, 21);
+ this.checkBox_Telegram.TabIndex = 14;
+ this.checkBox_Telegram.Text = "활성화";
+ this.checkBox_Telegram.UseVisualStyleBackColor = true;
+ this.checkBox_Telegram.CheckedChanged += new System.EventHandler(this.checkBox_Telegram_CheckedChanged);
+ //
+ // tabPage_Advanced
+ //
+ this.tabPage_Advanced.BackColor = System.Drawing.SystemColors.Control;
+ this.tabPage_Advanced.Controls.Add(this.groupBox_debug);
+ this.tabPage_Advanced.Controls.Add(this.groupBox_CustomHttpRequest);
+ this.tabPage_Advanced.Location = new System.Drawing.Point(114, 4);
+ this.tabPage_Advanced.Name = "tabPage_Advanced";
+ this.tabPage_Advanced.Size = new System.Drawing.Size(426, 263);
+ this.tabPage_Advanced.TabIndex = 4;
+ this.tabPage_Advanced.Text = "고급";
+ //
+ // groupBox_debug
+ //
+ this.groupBox_debug.Controls.Add(this.checkBox_DebugLog);
+ this.groupBox_debug.Dock = System.Windows.Forms.DockStyle.Top;
+ this.groupBox_debug.Location = new System.Drawing.Point(0, 189);
+ this.groupBox_debug.Name = "groupBox_debug";
+ this.groupBox_debug.Size = new System.Drawing.Size(426, 75);
+ this.groupBox_debug.TabIndex = 6;
+ this.groupBox_debug.TabStop = false;
+ this.groupBox_debug.Text = "디버그";
+ //
+ // checkBox_DebugLog
+ //
+ this.checkBox_DebugLog.AutoSize = true;
+ this.checkBox_DebugLog.Location = new System.Drawing.Point(7, 25);
+ this.checkBox_DebugLog.Name = "checkBox_DebugLog";
+ this.checkBox_DebugLog.Size = new System.Drawing.Size(128, 21);
+ this.checkBox_DebugLog.TabIndex = 0;
+ this.checkBox_DebugLog.Text = "디버그 로그 출력";
+ this.checkBox_DebugLog.UseVisualStyleBackColor = true;
+ this.checkBox_DebugLog.CheckedChanged += new System.EventHandler(this.checkBox_DebugLog_CheckedChanged);
+ //
+ // groupBox_CustomHttpRequest
+ //
+ this.groupBox_CustomHttpRequest.Controls.Add(this.label_HttpRequestReadme);
+ this.groupBox_CustomHttpRequest.Controls.Add(this.textBox_CustomHttpUrl);
+ this.groupBox_CustomHttpRequest.Controls.Add(this.label_HttpRequestUrl);
+ this.groupBox_CustomHttpRequest.Controls.Add(this.checkBox_RequestOnDutyMatched);
+ this.groupBox_CustomHttpRequest.Controls.Add(this.checkBox_RequestOnFateOccur);
+ this.groupBox_CustomHttpRequest.Controls.Add(this.checkBox_EnableHttpRequest);
+ this.groupBox_CustomHttpRequest.Dock = System.Windows.Forms.DockStyle.Top;
+ this.groupBox_CustomHttpRequest.Location = new System.Drawing.Point(0, 0);
+ this.groupBox_CustomHttpRequest.Name = "groupBox_CustomHttpRequest";
+ this.groupBox_CustomHttpRequest.Size = new System.Drawing.Size(426, 189);
+ this.groupBox_CustomHttpRequest.TabIndex = 5;
+ this.groupBox_CustomHttpRequest.TabStop = false;
+ this.groupBox_CustomHttpRequest.Text = "사용자 지정 HTTP 요청";
+ //
+ // label_HttpRequestReadme
+ //
+ this.label_HttpRequestReadme.AutoSize = true;
+ this.label_HttpRequestReadme.Font = new System.Drawing.Font("맑은 고딕", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+ this.label_HttpRequestReadme.Location = new System.Drawing.Point(1, 101);
+ this.label_HttpRequestReadme.Name = "label_HttpRequestReadme";
+ this.label_HttpRequestReadme.Size = new System.Drawing.Size(428, 78);
+ this.label_HttpRequestReadme.TabIndex = 9;
+ this.label_HttpRequestReadme.Text = resources.GetString("label_HttpRequestReadme.Text");
+ //
+ // textBox_CustomHttpUrl
+ //
+ this.textBox_CustomHttpUrl.Enabled = false;
+ this.textBox_CustomHttpUrl.Location = new System.Drawing.Point(49, 20);
+ this.textBox_CustomHttpUrl.Name = "textBox_CustomHttpUrl";
+ this.textBox_CustomHttpUrl.Size = new System.Drawing.Size(300, 25);
+ this.textBox_CustomHttpUrl.TabIndex = 7;
+ this.textBox_CustomHttpUrl.TextChanged += new System.EventHandler(this.textBox_CustomHttpUrl_TextChanged);
+ //
+ // label_HttpRequestUrl
+ //
+ this.label_HttpRequestUrl.AutoSize = true;
+ this.label_HttpRequestUrl.Location = new System.Drawing.Point(3, 23);
+ this.label_HttpRequestUrl.Name = "label_HttpRequestUrl";
+ this.label_HttpRequestUrl.Size = new System.Drawing.Size(45, 17);
+ this.label_HttpRequestUrl.TabIndex = 8;
+ this.label_HttpRequestUrl.Text = "http://";
+ //
+ // checkBox_RequestOnDutyMatched
+ //
+ this.checkBox_RequestOnDutyMatched.AutoSize = true;
+ this.checkBox_RequestOnDutyMatched.Enabled = false;
+ this.checkBox_RequestOnDutyMatched.Font = new System.Drawing.Font("맑은 고딕", 9F);
+ this.checkBox_RequestOnDutyMatched.Location = new System.Drawing.Point(6, 53);
+ this.checkBox_RequestOnDutyMatched.Name = "checkBox_RequestOnDutyMatched";
+ this.checkBox_RequestOnDutyMatched.Size = new System.Drawing.Size(158, 19);
+ this.checkBox_RequestOnDutyMatched.TabIndex = 6;
+ this.checkBox_RequestOnDutyMatched.Text = "던전 매칭 완료시 보내기";
+ this.checkBox_RequestOnDutyMatched.UseVisualStyleBackColor = true;
+ this.checkBox_RequestOnDutyMatched.CheckedChanged += new System.EventHandler(this.checkBox_RequestOnDutyMatched_CheckedChanged);
+ //
+ // checkBox_RequestOnFateOccur
+ //
+ this.checkBox_RequestOnFateOccur.AutoSize = true;
+ this.checkBox_RequestOnFateOccur.Enabled = false;
+ this.checkBox_RequestOnFateOccur.Font = new System.Drawing.Font("맑은 고딕", 9F);
+ this.checkBox_RequestOnFateOccur.Location = new System.Drawing.Point(6, 75);
+ this.checkBox_RequestOnFateOccur.Name = "checkBox_RequestOnFateOccur";
+ this.checkBox_RequestOnFateOccur.Size = new System.Drawing.Size(158, 19);
+ this.checkBox_RequestOnFateOccur.TabIndex = 5;
+ this.checkBox_RequestOnFateOccur.Text = "돌발 임무 발생시 보내기";
+ this.checkBox_RequestOnFateOccur.UseVisualStyleBackColor = true;
+ this.checkBox_RequestOnFateOccur.CheckedChanged += new System.EventHandler(this.checkBox_RequestOnFateOccur_CheckedChanged);
+ //
+ // checkBox_EnableHttpRequest
+ //
+ this.checkBox_EnableHttpRequest.AutoSize = true;
+ this.checkBox_EnableHttpRequest.Font = new System.Drawing.Font("맑은 고딕", 9F);
+ this.checkBox_EnableHttpRequest.Location = new System.Drawing.Point(355, 23);
+ this.checkBox_EnableHttpRequest.Name = "checkBox_EnableHttpRequest";
+ this.checkBox_EnableHttpRequest.Size = new System.Drawing.Size(62, 19);
+ this.checkBox_EnableHttpRequest.TabIndex = 4;
+ this.checkBox_EnableHttpRequest.Text = "활성화";
+ this.checkBox_EnableHttpRequest.UseVisualStyleBackColor = true;
+ this.checkBox_EnableHttpRequest.CheckedChanged += new System.EventHandler(this.checkBox_EnableHttpRequest_CheckedChanged);
+ //
+ // tabPage_FATE
+ //
+ this.tabPage_FATE.BackColor = System.Drawing.SystemColors.Control;
+ this.tabPage_FATE.Controls.Add(this.label_FATEAbout);
+ this.tabPage_FATE.Controls.Add(this.triStateTreeView_FATEs);
+ this.tabPage_FATE.Controls.Add(this.menuStrip_FATETab);
+ this.tabPage_FATE.Location = new System.Drawing.Point(114, 4);
+ this.tabPage_FATE.Name = "tabPage_FATE";
+ this.tabPage_FATE.Size = new System.Drawing.Size(426, 263);
+ this.tabPage_FATE.TabIndex = 0;
+ this.tabPage_FATE.Text = "돌발";
+ //
+ // label_FATEAbout
+ //
+ this.label_FATEAbout.Dock = System.Windows.Forms.DockStyle.Bottom;
+ this.label_FATEAbout.Font = new System.Drawing.Font("맑은 고딕", 8F);
+ this.label_FATEAbout.Location = new System.Drawing.Point(0, 231);
+ this.label_FATEAbout.Name = "label_FATEAbout";
+ this.label_FATEAbout.Size = new System.Drawing.Size(426, 32);
+ this.label_FATEAbout.TabIndex = 2;
+ this.label_FATEAbout.Text = "알림을 받고자 하는 돌발을 선택하신 뒤 상단 적용하기 버튼을 눌러주세요.\r\n돌발 알림은 캐릭터가 해당 지역에 있을 때에만 동작합니다.";
+ //
+ // triStateTreeView_FATEs
+ //
+ this.triStateTreeView_FATEs.BackColor = System.Drawing.SystemColors.Control;
+ this.triStateTreeView_FATEs.Dock = System.Windows.Forms.DockStyle.Top;
+ this.triStateTreeView_FATEs.Font = new System.Drawing.Font("Meiryo", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.triStateTreeView_FATEs.FullRowSelect = true;
+ this.triStateTreeView_FATEs.HotTracking = true;
+ this.triStateTreeView_FATEs.Location = new System.Drawing.Point(0, 24);
+ this.triStateTreeView_FATEs.Name = "triStateTreeView_FATEs";
+ this.triStateTreeView_FATEs.Size = new System.Drawing.Size(426, 203);
+ this.triStateTreeView_FATEs.TabIndex = 0;
+ this.triStateTreeView_FATEs.TriStateStyleProperty = RikTheVeggie.TriStateTreeView.TriStateStyles.Installer;
+ //
+ // menuStrip_FATETab
+ //
+ this.menuStrip_FATETab.BackColor = System.Drawing.SystemColors.Control;
+ this.menuStrip_FATETab.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.toolStripMenuItem_SelectAll,
+ this.toolStripMenuItem_UnSelectAll,
+ this.presetToolStripMenuItem,
+ this.toolStripMenuItem_SelectApply});
+ this.menuStrip_FATETab.Location = new System.Drawing.Point(0, 0);
+ this.menuStrip_FATETab.Name = "menuStrip_FATETab";
+ this.menuStrip_FATETab.Size = new System.Drawing.Size(426, 24);
+ this.menuStrip_FATETab.TabIndex = 0;
+ this.menuStrip_FATETab.Text = "menuStrip1";
+ //
+ // toolStripMenuItem_SelectAll
+ //
+ this.toolStripMenuItem_SelectAll.Name = "toolStripMenuItem_SelectAll";
+ this.toolStripMenuItem_SelectAll.Size = new System.Drawing.Size(71, 20);
+ this.toolStripMenuItem_SelectAll.Text = "모두 선택";
+ this.toolStripMenuItem_SelectAll.Click += new System.EventHandler(this.toolStripMenuItem_SelectAll_Click);
+ //
+ // toolStripMenuItem_UnSelectAll
+ //
+ this.toolStripMenuItem_UnSelectAll.Name = "toolStripMenuItem_UnSelectAll";
+ this.toolStripMenuItem_UnSelectAll.Size = new System.Drawing.Size(71, 20);
+ this.toolStripMenuItem_UnSelectAll.Text = "모두 해제";
+ this.toolStripMenuItem_UnSelectAll.Click += new System.EventHandler(this.toolStripMenuItem_UnSelectAll_Click);
+ //
+ // presetToolStripMenuItem
+ //
+ this.presetToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.bookOfSkyfireIToolStripMenuItem,
+ this.bookOfSkyfireIIToolStripMenuItem,
+ this.bookOfNetherfireIToolStripMenuItem,
+ this.toolStripMenuItem1,
+ this.bookOfSkyfallIToolStripMenuItem,
+ this.bookOfSkyfallIIToolStripMenuItem,
+ this.bookOfNetherfireIToolStripMenuItem1,
+ this.toolStripMenuItem2,
+ this.bookOfSkywindIToolStripMenuItem,
+ this.bookOfSkywindIIToolStripMenuItem,
+ this.toolStripMenuItem3,
+ this.bookOfSkyearthIToolStripMenuItem,
+ this.toolStripSeparator1,
+ this.IxionToolStripMenuItem,
+ this.TamamoToolStripMenuItem,
+ this.toolStripSeparator2,
+ this.frogMountToolStripMenuItem,
+ this.frogSuitToolStripMenuItem});
+ this.presetToolStripMenuItem.Name = "presetToolStripMenuItem";
+ this.presetToolStripMenuItem.Size = new System.Drawing.Size(55, 20);
+ this.presetToolStripMenuItem.Text = "프리셋";
+ //
+ // bookOfSkyfireIToolStripMenuItem
+ //
+ this.bookOfSkyfireIToolStripMenuItem.Name = "bookOfSkyfireIToolStripMenuItem";
+ this.bookOfSkyfireIToolStripMenuItem.Size = new System.Drawing.Size(202, 22);
+ this.bookOfSkyfireIToolStripMenuItem.Text = "불의 서 1권";
+ this.bookOfSkyfireIToolStripMenuItem.Click += new System.EventHandler(this.bookOfSkyfireIToolStripMenuItem_Click);
+ //
+ // bookOfSkyfireIIToolStripMenuItem
+ //
+ this.bookOfSkyfireIIToolStripMenuItem.Name = "bookOfSkyfireIIToolStripMenuItem";
+ this.bookOfSkyfireIIToolStripMenuItem.Size = new System.Drawing.Size(202, 22);
+ this.bookOfSkyfireIIToolStripMenuItem.Text = "불의 서 2권";
+ this.bookOfSkyfireIIToolStripMenuItem.Click += new System.EventHandler(this.bookOfSkyfireIIToolStripMenuItem_Click);
+ //
+ // bookOfNetherfireIToolStripMenuItem
+ //
+ this.bookOfNetherfireIToolStripMenuItem.Name = "bookOfNetherfireIToolStripMenuItem";
+ this.bookOfNetherfireIToolStripMenuItem.Size = new System.Drawing.Size(202, 22);
+ this.bookOfNetherfireIToolStripMenuItem.Text = "불의 서 3권";
+ this.bookOfNetherfireIToolStripMenuItem.Click += new System.EventHandler(this.bookOfNetherfireIToolStripMenuItem_Click);
+ //
+ // toolStripMenuItem1
+ //
+ this.toolStripMenuItem1.Name = "toolStripMenuItem1";
+ this.toolStripMenuItem1.Size = new System.Drawing.Size(199, 6);
+ //
+ // bookOfSkyfallIToolStripMenuItem
+ //
+ this.bookOfSkyfallIToolStripMenuItem.Name = "bookOfSkyfallIToolStripMenuItem";
+ this.bookOfSkyfallIToolStripMenuItem.Size = new System.Drawing.Size(202, 22);
+ this.bookOfSkyfallIToolStripMenuItem.Text = "물의 서 1권";
+ this.bookOfSkyfallIToolStripMenuItem.Click += new System.EventHandler(this.bookOfSkyfallIToolStripMenuItem_Click);
+ //
+ // bookOfSkyfallIIToolStripMenuItem
+ //
+ this.bookOfSkyfallIIToolStripMenuItem.Name = "bookOfSkyfallIIToolStripMenuItem";
+ this.bookOfSkyfallIIToolStripMenuItem.Size = new System.Drawing.Size(202, 22);
+ this.bookOfSkyfallIIToolStripMenuItem.Text = "물의 서 2권";
+ this.bookOfSkyfallIIToolStripMenuItem.Click += new System.EventHandler(this.bookOfSkyfallIIToolStripMenuItem_Click);
+ //
+ // bookOfNetherfireIToolStripMenuItem1
+ //
+ this.bookOfNetherfireIToolStripMenuItem1.Name = "bookOfNetherfireIToolStripMenuItem1";
+ this.bookOfNetherfireIToolStripMenuItem1.Size = new System.Drawing.Size(202, 22);
+ this.bookOfNetherfireIToolStripMenuItem1.Text = "물의 서 3권";
+ this.bookOfNetherfireIToolStripMenuItem1.Click += new System.EventHandler(this.bookOfNetherfireIToolStripMenuItem1_Click);
+ //
+ // toolStripMenuItem2
+ //
+ this.toolStripMenuItem2.Name = "toolStripMenuItem2";
+ this.toolStripMenuItem2.Size = new System.Drawing.Size(199, 6);
+ //
+ // bookOfSkywindIToolStripMenuItem
+ //
+ this.bookOfSkywindIToolStripMenuItem.Name = "bookOfSkywindIToolStripMenuItem";
+ this.bookOfSkywindIToolStripMenuItem.Size = new System.Drawing.Size(202, 22);
+ this.bookOfSkywindIToolStripMenuItem.Text = "바람의 서 1권";
+ this.bookOfSkywindIToolStripMenuItem.Click += new System.EventHandler(this.bookOfSkywindIToolStripMenuItem_Click);
+ //
+ // bookOfSkywindIIToolStripMenuItem
+ //
+ this.bookOfSkywindIIToolStripMenuItem.Name = "bookOfSkywindIIToolStripMenuItem";
+ this.bookOfSkywindIIToolStripMenuItem.Size = new System.Drawing.Size(202, 22);
+ this.bookOfSkywindIIToolStripMenuItem.Text = "바람의 서 2권";
+ this.bookOfSkywindIIToolStripMenuItem.Click += new System.EventHandler(this.bookOfSkywindIIToolStripMenuItem_Click);
+ //
+ // toolStripMenuItem3
+ //
+ this.toolStripMenuItem3.Name = "toolStripMenuItem3";
+ this.toolStripMenuItem3.Size = new System.Drawing.Size(199, 6);
+ //
+ // bookOfSkyearthIToolStripMenuItem
+ //
+ this.bookOfSkyearthIToolStripMenuItem.Name = "bookOfSkyearthIToolStripMenuItem";
+ this.bookOfSkyearthIToolStripMenuItem.Size = new System.Drawing.Size(202, 22);
+ this.bookOfSkyearthIToolStripMenuItem.Text = "땅의 서 1권";
+ this.bookOfSkyearthIToolStripMenuItem.Click += new System.EventHandler(this.bookOfSkyearthIToolStripMenuItem_Click);
+ //
+ // toolStripSeparator1
+ //
+ this.toolStripSeparator1.Name = "toolStripSeparator1";
+ this.toolStripSeparator1.Size = new System.Drawing.Size(199, 6);
+ //
+ // IxionToolStripMenuItem
+ //
+ this.IxionToolStripMenuItem.Name = "IxionToolStripMenuItem";
+ this.IxionToolStripMenuItem.Size = new System.Drawing.Size(202, 22);
+ this.IxionToolStripMenuItem.Text = "익시온 (호반지대)";
+ this.IxionToolStripMenuItem.Click += new System.EventHandler(this.IxionToolStripMenuItem_Click);
+ //
+ // TamamoToolStripMenuItem
+ //
+ this.TamamoToolStripMenuItem.Name = "TamamoToolStripMenuItem";
+ this.TamamoToolStripMenuItem.Size = new System.Drawing.Size(202, 22);
+ this.TamamoToolStripMenuItem.Text = "타마모 (얀샤)";
+ this.TamamoToolStripMenuItem.Click += new System.EventHandler(this.TamamoToolStripMenuItem_Click);
+ //
+ // toolStripSeparator2
+ //
+ this.toolStripSeparator2.Name = "toolStripSeparator2";
+ this.toolStripSeparator2.Size = new System.Drawing.Size(199, 6);
+ //
+ // frogMountToolStripMenuItem
+ //
+ this.frogMountToolStripMenuItem.Name = "frogMountToolStripMenuItem";
+ this.frogMountToolStripMenuItem.Size = new System.Drawing.Size(202, 22);
+ this.frogMountToolStripMenuItem.Text = "개구리 탈 것 (콜루시아)";
+ this.frogMountToolStripMenuItem.Click += new System.EventHandler(this.frogMountToolStripMenuItem_Click);
+ //
+ // frogSuitToolStripMenuItem
+ //
+ this.frogSuitToolStripMenuItem.Name = "frogSuitToolStripMenuItem";
+ this.frogSuitToolStripMenuItem.Size = new System.Drawing.Size(202, 22);
+ this.frogSuitToolStripMenuItem.Text = "개구리 옷 (템페스트)";
+ this.frogSuitToolStripMenuItem.Click += new System.EventHandler(this.frogSuitToolStripMenuItem_Click);
+ //
+ // toolStripMenuItem_SelectApply
+ //
+ this.toolStripMenuItem_SelectApply.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold);
+ this.toolStripMenuItem_SelectApply.Name = "toolStripMenuItem_SelectApply";
+ this.toolStripMenuItem_SelectApply.Size = new System.Drawing.Size(67, 20);
+ this.toolStripMenuItem_SelectApply.Text = "적용하기";
+ this.toolStripMenuItem_SelectApply.Click += new System.EventHandler(this.toolStripMenuItem_SelectApply_Click);
+ //
+ // tabPage_Log
+ //
+ this.tabPage_Log.BackColor = System.Drawing.SystemColors.Control;
+ this.tabPage_Log.Controls.Add(this.panel_LogCover);
+ this.tabPage_Log.Controls.Add(this.menuStrip_LogTab);
+ this.tabPage_Log.Location = new System.Drawing.Point(114, 4);
+ this.tabPage_Log.Name = "tabPage_Log";
+ this.tabPage_Log.Size = new System.Drawing.Size(426, 263);
+ this.tabPage_Log.TabIndex = 2;
+ this.tabPage_Log.Text = "로그";
+ //
+ // panel_LogCover
+ //
+ this.panel_LogCover.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.panel_LogCover.Controls.Add(this.richTextBox_Log);
+ this.panel_LogCover.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.panel_LogCover.Location = new System.Drawing.Point(0, 24);
+ this.panel_LogCover.Name = "panel_LogCover";
+ this.panel_LogCover.Size = new System.Drawing.Size(426, 239);
+ this.panel_LogCover.TabIndex = 1;
+ //
+ // richTextBox_Log
+ //
+ this.richTextBox_Log.BackColor = System.Drawing.SystemColors.Control;
+ this.richTextBox_Log.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.richTextBox_Log.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.richTextBox_Log.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+ this.richTextBox_Log.Location = new System.Drawing.Point(0, 0);
+ this.richTextBox_Log.Name = "richTextBox_Log";
+ this.richTextBox_Log.ReadOnly = true;
+ this.richTextBox_Log.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.ForcedVertical;
+ this.richTextBox_Log.Size = new System.Drawing.Size(424, 237);
+ this.richTextBox_Log.TabIndex = 0;
+ this.richTextBox_Log.Text = "";
+ this.richTextBox_Log.TextChanged += new System.EventHandler(this.richTextBox_Log_TextChanged);
+ //
+ // menuStrip_LogTab
+ //
+ this.menuStrip_LogTab.BackColor = System.Drawing.SystemColors.Control;
+ this.menuStrip_LogTab.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.toolStripMenuItem_LogCopy,
+ this.toolStripMenuItem_LogClear});
+ this.menuStrip_LogTab.Location = new System.Drawing.Point(0, 0);
+ this.menuStrip_LogTab.Name = "menuStrip_LogTab";
+ this.menuStrip_LogTab.Size = new System.Drawing.Size(426, 24);
+ this.menuStrip_LogTab.TabIndex = 0;
+ this.menuStrip_LogTab.Text = "menuStrip2";
+ //
+ // toolStripMenuItem_LogCopy
+ //
+ this.toolStripMenuItem_LogCopy.Name = "toolStripMenuItem_LogCopy";
+ this.toolStripMenuItem_LogCopy.Size = new System.Drawing.Size(71, 20);
+ this.toolStripMenuItem_LogCopy.Text = "로그 복사";
+ this.toolStripMenuItem_LogCopy.Click += new System.EventHandler(this.toolStripMenuItem_LogCopy_Click);
+ //
+ // toolStripMenuItem_LogClear
+ //
+ this.toolStripMenuItem_LogClear.Name = "toolStripMenuItem_LogClear";
+ this.toolStripMenuItem_LogClear.Size = new System.Drawing.Size(71, 20);
+ this.toolStripMenuItem_LogClear.Text = "로그 삭제";
+ this.toolStripMenuItem_LogClear.Click += new System.EventHandler(this.toolStripMenuItem_LogClear_Click);
+ //
+ // tabPage_Info
+ //
+ this.tabPage_Info.BackColor = System.Drawing.SystemColors.Control;
+ this.tabPage_Info.Controls.Add(this.label_About);
+ this.tabPage_Info.Controls.Add(this.linkLabel_GitHub);
+ this.tabPage_Info.Location = new System.Drawing.Point(114, 4);
+ this.tabPage_Info.Name = "tabPage_Info";
+ this.tabPage_Info.Size = new System.Drawing.Size(426, 263);
+ this.tabPage_Info.TabIndex = 3;
+ this.tabPage_Info.Text = "정보";
+ //
+ // label_About
+ //
+ this.label_About.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.label_About.Font = new System.Drawing.Font("맑은 고딕", 10F);
+ this.label_About.Location = new System.Drawing.Point(0, 0);
+ this.label_About.Name = "label_About";
+ this.label_About.Size = new System.Drawing.Size(426, 233);
+ this.label_About.TabIndex = 0;
+ this.label_About.Text = "[제작 및 문의]\r\n유채색\r\n라그린네\r\n히비야\r\n윈도ce\r\n[도움] 고먐미\r\n[저작권]\r\n기재되어있는 회사명 · 제품명 · 시스템 이름은\r\n해당 " +
+ "소유자의 상표 또는 등록 상표입니다.\r\n(C) 2010 - 2019 SQUARE ENIX CO., LTD All Rights Reserved.\r" +
+ "\nKorea Published by ACTOZ SOFT.";
+ this.label_About.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ //
+ // linkLabel_GitHub
+ //
+ this.linkLabel_GitHub.Dock = System.Windows.Forms.DockStyle.Bottom;
+ this.linkLabel_GitHub.Location = new System.Drawing.Point(0, 233);
+ this.linkLabel_GitHub.Name = "linkLabel_GitHub";
+ this.linkLabel_GitHub.Size = new System.Drawing.Size(426, 30);
+ this.linkLabel_GitHub.TabIndex = 0;
+ this.linkLabel_GitHub.TabStop = true;
+ this.linkLabel_GitHub.Text = "GitHub";
+ this.linkLabel_GitHub.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.linkLabel_GitHub.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel_GitHub_LinkClicked);
+ //
+ // label_AboutTitle
+ //
+ this.label_AboutTitle.BackColor = System.Drawing.Color.Silver;
+ this.label_AboutTitle.Dock = System.Windows.Forms.DockStyle.Bottom;
+ this.label_AboutTitle.Font = new System.Drawing.Font("맑은 고딕", 11.25F, System.Drawing.FontStyle.Bold);
+ this.label_AboutTitle.ForeColor = System.Drawing.Color.Gray;
+ this.label_AboutTitle.Location = new System.Drawing.Point(0, 298);
+ this.label_AboutTitle.Name = "label_AboutTitle";
+ this.label_AboutTitle.Size = new System.Drawing.Size(544, 24);
+ this.label_AboutTitle.TabIndex = 0;
+ this.label_AboutTitle.Text = "VERSION STRING";
+ this.label_AboutTitle.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ //
+ // MainForm
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
+ this.AutoSize = true;
+ this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
+ this.ClientSize = new System.Drawing.Size(544, 322);
+ this.Controls.Add(this.tabControl);
+ this.Controls.Add(this.label_AboutTitle);
+ this.Controls.Add(this.panel_TopSetting);
+ this.DoubleBuffered = true;
+ this.Font = new System.Drawing.Font("맑은 고딕", 9.75F);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.MaximizeBox = false;
+ this.MinimumSize = new System.Drawing.Size(560, 360);
+ this.Name = "MainForm";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "임무/돌발 찾기 도우미";
+ this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing);
+ this.Load += new System.EventHandler(this.MainForm_Load);
+ this.contextMenuStrip.ResumeLayout(false);
+ this.panel_TopSetting.ResumeLayout(false);
+ this.panel_TopSetting.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
+ this.tabControl.ResumeLayout(false);
+ this.tabPage_Settings.ResumeLayout(false);
+ this.groupBox_DefaultSet.ResumeLayout(false);
+ this.groupBox_DefaultSet.PerformLayout();
+ this.tabPage_3rdParty.ResumeLayout(false);
+ this.groupBox_DiscordSet.ResumeLayout(false);
+ this.groupBox_DiscordSet.PerformLayout();
+ this.groupBox_TelegramSet.ResumeLayout(false);
+ this.groupBox_TelegramSet.PerformLayout();
+ this.tabPage_Advanced.ResumeLayout(false);
+ this.groupBox_debug.ResumeLayout(false);
+ this.groupBox_debug.PerformLayout();
+ this.groupBox_CustomHttpRequest.ResumeLayout(false);
+ this.groupBox_CustomHttpRequest.PerformLayout();
+ this.tabPage_FATE.ResumeLayout(false);
+ this.tabPage_FATE.PerformLayout();
+ this.menuStrip_FATETab.ResumeLayout(false);
+ this.menuStrip_FATETab.PerformLayout();
+ this.tabPage_Log.ResumeLayout(false);
+ this.tabPage_Log.PerformLayout();
+ this.panel_LogCover.ResumeLayout(false);
+ this.menuStrip_LogTab.ResumeLayout(false);
+ this.menuStrip_LogTab.PerformLayout();
+ this.tabPage_Info.ResumeLayout(false);
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+ internal System.Windows.Forms.RichTextBox richTextBox_Log;
+ private System.Windows.Forms.LinkLabel linkLabel_GitHub;
+ private System.Windows.Forms.CheckBox checkBox_Overlay;
+ private LocalizableLabel label_AboutTitle;
+ private System.Windows.Forms.Button button_ResetOverlayPosition;
+ private System.Windows.Forms.Button button_SelectProcess;
+ private System.Windows.Forms.ContextMenuStrip contextMenuStrip;
+ private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem_Open;
+ private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem_Close;
+ private System.Windows.Forms.CheckBox checkBox_StartupShow;
+ private System.Windows.Forms.ComboBox comboBox_Process;
+ private System.Windows.Forms.Button button_ResetProcess;
+ internal RikTheVeggie.TriStateTreeView triStateTreeView_FATEs;
+ private System.Windows.Forms.Panel panel_TopSetting;
+ private LocalizableLabel label_Process;
+ private TabControlBlack tabControl;
+ private System.Windows.Forms.TabPage tabPage_FATE;
+ private System.Windows.Forms.TabPage tabPage_Settings;
+ private System.Windows.Forms.MenuStrip menuStrip_FATETab;
+ private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem_SelectAll;
+ private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem_UnSelectAll;
+ private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem_SelectApply;
+ private System.Windows.Forms.TabPage tabPage_Log;
+ private System.Windows.Forms.Panel panel_LogCover;
+ private System.Windows.Forms.MenuStrip menuStrip_LogTab;
+ private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem_LogCopy;
+ private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem_LogClear;
+ private System.Windows.Forms.ToolTip toolTip;
+ private System.Windows.Forms.TabPage tabPage_Info;
+ private LocalizableLabel label_About;
+ private System.Windows.Forms.GroupBox groupBox_DefaultSet;
+ internal System.Windows.Forms.NotifyIcon notifyIcon;
+ private System.Windows.Forms.CheckBox checkBox_FlashWindow;
+ private System.Windows.Forms.CheckBox checkBox_CheatRoullete;
+ private System.Windows.Forms.ToolStripMenuItem presetToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem bookOfSkyfireIToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem bookOfSkyfireIIToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem bookOfNetherfireIToolStripMenuItem;
+ private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1;
+ private System.Windows.Forms.ToolStripMenuItem bookOfSkyfallIToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem bookOfSkyfallIIToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem bookOfNetherfireIToolStripMenuItem1;
+ private System.Windows.Forms.ToolStripSeparator toolStripMenuItem2;
+ private System.Windows.Forms.ToolStripMenuItem bookOfSkywindIToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem bookOfSkywindIIToolStripMenuItem;
+ private System.Windows.Forms.ToolStripSeparator toolStripMenuItem3;
+ private System.Windows.Forms.ToolStripMenuItem bookOfSkyearthIToolStripMenuItem;
+ private LocalizableLabel label_FATEAbout;
+ private System.Windows.Forms.ComboBox comboBox_Language;
+ private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
+ private System.Windows.Forms.ToolStripMenuItem IxionToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem TamamoToolStripMenuItem;
+ private System.Windows.Forms.PictureBox pictureBox1;
+ private System.Windows.Forms.CheckBox checkBox_FateSound;
+ private System.Windows.Forms.CheckBox checkBox_CustomSound;
+ private System.Windows.Forms.Button button_getSoundFile;
+ private System.Windows.Forms.Label label_CustomSoundFileName;
+ private System.Windows.Forms.CheckBox checkBox_useVPN;
+ private System.Windows.Forms.TabPage tabPage_Advanced;
+ private System.Windows.Forms.GroupBox groupBox_CustomHttpRequest;
+ private System.Windows.Forms.CheckBox checkBox_EnableHttpRequest;
+ private System.Windows.Forms.CheckBox checkBox_RequestOnDutyMatched;
+ private System.Windows.Forms.CheckBox checkBox_RequestOnFateOccur;
+ private System.Windows.Forms.TextBox textBox_CustomHttpUrl;
+ private System.Windows.Forms.Label label_HttpRequestUrl;
+ private System.Windows.Forms.Label label_HttpRequestReadme;
+ private System.Windows.Forms.TabPage tabPage_3rdParty;
+ private System.Windows.Forms.GroupBox groupBox_DiscordSet;
+ private System.Windows.Forms.TextBox textBox_Discord;
+ private LocalizableLabel label_DiscordAt;
+ private LocalizableLabel label_DiscordAbout;
+ private System.Windows.Forms.CheckBox checkBox_Discord;
+ private System.Windows.Forms.LinkLabel linkLabel_DiscordServer;
+ private System.Windows.Forms.GroupBox groupBox_TelegramSet;
+ private System.Windows.Forms.TextBox textBox_Telegram;
+ private LocalizableLabel label_TelegramAbout;
+ private System.Windows.Forms.CheckBox checkBox_Telegram;
+ private LocalizableLabel label_Telegram_ChatId;
+ private System.Windows.Forms.LinkLabel linkLabel_Telegram;
+ private System.Windows.Forms.CheckBox checkBox_autoHideOverlay;
+ private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
+ private System.Windows.Forms.ToolStripMenuItem frogSuitToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem frogMountToolStripMenuItem;
+ private System.Windows.Forms.CheckBox checkBox_CopyMacro;
+ private System.Windows.Forms.CheckBox checkBox_Telegram_Queue_Status;
+ private System.Windows.Forms.LinkLabel linkLabel_Localization;
+ private System.Windows.Forms.GroupBox groupBox_debug;
+ private System.Windows.Forms.CheckBox checkBox_DebugLog;
+ }
+}
+
diff --git a/App/Form/MainForm.cs b/App/Form/MainForm.cs
index d8a4ee6..ca12c48 100644
--- a/App/Form/MainForm.cs
+++ b/App/Form/MainForm.cs
@@ -1,554 +1,825 @@
-using System;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.Linq;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Windows.Forms;
-
-namespace App
-{
- public partial class MainForm : Form
- {
- internal Network networkWorker;
- internal Process FFXIVProcess;
- internal OverlayForm overlayForm;
- internal List nodes;
-
- public MainForm()
- {
- Settings.Load();
-
- InitializeComponent();
-
- Log.Form = this;
- overlayForm = new OverlayForm();
- nodes = new List();
- }
-
- protected override void OnShown(EventArgs e)
- {
- base.OnShown(e);
-
- if (!Settings.StartupShowMainForm)
- {
- Hide();
- }
- }
-
- private void MainForm_Load(object sender, EventArgs e)
- {
- Localization.Initialize(Settings.Language);
- Data.Initialize(Settings.Language);
-
- ApplyLanguage();
-
- overlayForm.Show();
- networkWorker = new Network(this);
-
- label_AboutTitle.Text = $@"DFA {Global.VERSION}";
-
- FindFFXIVProcess();
-
- if (!Settings.ShowOverlay)
- {
- overlayForm.Hide();
- checkBox_Overlay.Checked = false;
- }
-
- Task.Factory.StartNew(() =>
- {
- while (true)
- {
- Updater.CheckNewVersion(this);
- Thread.Sleep(30 * 60 * 1000);
- }
- });
-
- comboBox_Language.DataSource = new[]
- {
- new Language { Name = "한국어", Code = "ko-kr" },
- new Language { Name = "English", Code = "en-us" },
- new Language { Name = "Français", Code = "fr-fr" },
- new Language { Name = "日本語", Code = "ja-jp" },
- };
-
- comboBox_Language.DisplayMember = "Name";
- comboBox_Language.ValueMember = "Code";
-
- comboBox_Language.SelectedValue = Settings.Language;
-
- comboBox_Language.SelectedValueChanged += comboBox_Language_SelectedValueChanged;
-
- checkBox_StartupShow.Checked = Settings.StartupShowMainForm;
- checkBox_AutoOverlayHide.Checked = Settings.AutoOverlayHide;
- checkBox_FlashWindow.Checked = Settings.FlashWindow;
- checkBox_PlaySound.Checked = Settings.PlaySound;
- if (System.IO.File.Exists(Settings.SoundLocation) == false)
- {
- checkBox_PlaySound.Checked = false;
- label_SoundLocation.Text = "";
- }
- else
- {
- label_SoundLocation.Text = System.IO.Path.GetFileName(Settings.SoundLocation);
- }
- if (checkBox_PlaySound.Checked == false) { button_SoundLocation.Enabled = false; }
- checkBox_ShowAnnouncement.Checked = Settings.ShowAnnouncement;
-
- checkBox_Twitter.Checked = Settings.TwitterEnabled;
- textBox_Twitter.Enabled = Settings.TwitterEnabled;
- textBox_Twitter.Text = Settings.TwitterAccount;
-
- foreach (var area in Data.Areas)
- {
- triStateTreeView_FATEs.Nodes.Add(area.Key.ToString(), area.Value.Name);
-
- foreach (var fate in area.Value.FATEs)
- {
- var node = triStateTreeView_FATEs.Nodes[area.Key.ToString()].Nodes.Add(fate.Key.ToString(), fate.Value.Name);
- node.Checked = Settings.FATEs.Contains(fate.Key);
- nodes.Add(node);
- }
- }
-
- Task.Factory.StartNew(() =>
- {
- while (true)
- {
- Thread.Sleep(30 * 1000);
-
- if (FFXIVProcess == null || FFXIVProcess.HasExited)
- {
- FFXIVProcess = null;
-
- overlayForm.SetStatus(false);
- this.Invoke(FindFFXIVProcess);
- }
- else {
- // FFXIVProcess is alive
-
- if (networkWorker.IsRunning)
- {
- networkWorker.UpdateGameConnections(FFXIVProcess);
- }
- else
- {
- networkWorker.StartCapture(FFXIVProcess);
- }
- }
- }
- });
-
- if (Settings.Updated)
- {
- Settings.Updated = false;
- Settings.Save();
- ShowNotification("notification-app-updated", Global.VERSION);
- }
-
- Sentry.ReportAsync("App started");
- }
-
- private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
- {
- if (e.CloseReason == CloseReason.UserClosing)
- {
- e.Cancel = true;
- Hide();
- }
- }
-
- private void notifyIcon_MouseDoubleClick(object sender, MouseEventArgs e)
- {
- Show();
- }
-
- private void toolStripMenuItem_Open_Click(object sender, EventArgs e)
- {
- Show();
- }
-
- private void toolStripMenuItem_Close_Click(object sender, EventArgs e)
- {
- Application.Exit();
- }
-
- private void richTextBox_Log_TextChanged(object sender, EventArgs e)
- {
- richTextBox_Log.SelectionStart = richTextBox_Log.Text.Length;
- richTextBox_Log.SelectionLength = 0;
- richTextBox_Log.ScrollToCaret();
- }
-
- private void linkLabel_GitHub_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
- {
- Process.Start($"https://github.com/{Global.GITHUB_REPO}");
- }
-
- private void linkLabel_NewUpdate_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
- {
- Process.Start($"https://github.com/{Global.GITHUB_REPO}/releases/latest");
- }
-
- private void button_SelectProcess_Click(object sender, EventArgs e)
- {
- try
- {
- SetFFXIVProcess(Process.GetProcessById(int.Parse(((string)comboBox_Process.SelectedItem).Split(':')[1])));
- }
- catch
- {
- Log.E("l-process-set-failed");
- }
- }
-
- private void button_ResetProcess_Click(object sender, EventArgs e)
- {
- networkWorker.StopCapture();
- FFXIVProcess = null;
- FindFFXIVProcess();
- }
-
- private void checkBox_Overlay_CheckedChanged(object sender, EventArgs e)
- {
- Settings.ShowOverlay = checkBox_Overlay.Checked;
- Settings.Save();
-
- if (Settings.ShowOverlay)
- {
- overlayForm.Show();
- }
- else
- {
- overlayForm.Hide();
- }
- }
-
- private void button_ResetOverlayPosition_Click(object sender, EventArgs e)
- {
- overlayForm.ResetFormLocation();
- }
-
- private void checkBox_StartupShow_CheckedChanged(object sender, EventArgs e)
- {
- Settings.StartupShowMainForm = checkBox_StartupShow.Checked;
- Settings.Save();
- }
-
- private void checkBox_Twitter_CheckedChanged(object sender, EventArgs e)
- {
- textBox_Twitter.Enabled = checkBox_Twitter.Checked;
- Settings.TwitterEnabled = checkBox_Twitter.Checked;
- Settings.Save();
- }
-
- private void checkBox_AutoOverlayHide_CheckedChanged(object sender, EventArgs e)
- {
- Settings.AutoOverlayHide = checkBox_AutoOverlayHide.Checked;
- Settings.Save();
- }
-
- private void checkBox_FlashWindow_CheckedChanged(object sender, EventArgs e)
- {
- Settings.FlashWindow = checkBox_FlashWindow.Checked;
- Settings.Save();
- }
-
- private void checkBox_ShowAnnouncement_CheckedChanged(object sender, EventArgs e)
- {
- Settings.ShowAnnouncement = checkBox_ShowAnnouncement.Checked;
- Settings.Save();
- }
-
- private void textBox_Twitter_TextChanged(object sender, EventArgs e)
- {
- Settings.TwitterAccount = textBox_Twitter.Text;
- Settings.Save();
- }
-
- private void toolStripMenuItem_LogCopy_Click(object sender, EventArgs e)
- {
- Clipboard.SetText(richTextBox_Log.Text);
- LMessageBox.I("ui-clipboard-copied");
- }
-
- private void toolStripMenuItem_LogClear_Click(object sender, EventArgs e)
- {
- if (LMessageBox.I("ui-clear-log-confirm", MessageBoxButtons.OKCancel) == DialogResult.OK)
- {
- richTextBox_Log.Text = "";
- }
- }
-
- private void toolStripMenuItem_SelectAll_Click(object sender, EventArgs e)
- {
- foreach (var node in nodes)
- {
- node.Checked = true;
- Settings.FATEs.Add(ushort.Parse(node.Name));
- }
-
- Settings.Save();
- }
-
- private void toolStripMenuItem_UnSelectAll_Click(object sender, EventArgs e)
- {
- FateAllUnset(true);
- }
-
- private void toolStripMenuItem_SelectApply_Click(object sender, EventArgs e)
- {
- foreach (var node in nodes)
- {
- if (node.Checked)
- {
- Settings.FATEs.Add(ushort.Parse(node.Name));
- }
- else
- {
- Settings.FATEs.Remove(ushort.Parse(node.Name));
- }
- }
-
- Settings.Save();
- LMessageBox.I("ui-fate-selection-saved");
- }
-
- private void FateAllUnset(bool save = false)
- {
- foreach (var node in nodes)
- {
- node.Checked = false;
- }
-
- Settings.FATEs.Clear();
-
- if (save)
- Settings.Save();
- }
-
- private void PresetAccept(int[] arr)
- {
- FateAllUnset();
-
- foreach (var node in nodes)
- {
- var c = ushort.Parse(node.Name);
- if (arr.Any(code => code == c))
- {
- node.Checked = true;
- Settings.FATEs.Add(c);
- }
- }
-
- Settings.Save();
- LMessageBox.I("ui-fate-preset-applied");
- }
-
- private void bookOfSkyfireIToolStripMenuItem_Click(object sender, EventArgs e)
- {
- int[] arr = { 611, 480, 589 };
- PresetAccept(arr);
- }
-
- private void bookOfSkyfireIIToolStripMenuItem_Click(object sender, EventArgs e)
- {
- int[] arr = { 424, 633, 571 };
- PresetAccept(arr);
- }
-
- private void bookOfNetherfireIToolStripMenuItem_Click(object sender, EventArgs e)
- {
- int[] arr = { 521, 620, 430 };
- PresetAccept(arr);
- }
-
- private void bookOfSkyfallIToolStripMenuItem_Click(object sender, EventArgs e)
- {
- int[] arr = { 540, 577, 475 };
- PresetAccept(arr);
- }
-
- private void bookOfSkyfallIIToolStripMenuItem_Click(object sender, EventArgs e)
- {
- int[] arr = { 569, 616, 516 };
- PresetAccept(arr);
- }
-
- private void bookOfNetherfireIToolStripMenuItem1_Click(object sender, EventArgs e)
- {
- int[] arr = { 632, 642, 499 };
- PresetAccept(arr);
- }
-
- private void bookOfSkywindIToolStripMenuItem_Click(object sender, EventArgs e)
- {
- int[] arr = { 604, 317, 517 };
- PresetAccept(arr);
- }
-
- private void bookOfSkywindIIToolStripMenuItem_Click(object sender, EventArgs e)
- {
- int[] arr = { 552, 628, 486 };
- PresetAccept(arr);
- }
-
- private void bookOfSkyearthIToolStripMenuItem_Click(object sender, EventArgs e)
- {
- int[] arr = { 543, 493, 587 };
- PresetAccept(arr);
- }
-
- private void FindFFXIVProcess()
- {
- comboBox_Process.Items.Clear();
- Log.I("l-process-finding");
-
- var processes = new List();
- processes.AddRange(Process.GetProcessesByName("ffxiv"));
- processes.AddRange(Process.GetProcessesByName("ffxiv_dx11"));
-
- if (processes.Count == 0)
- {
- Log.E("l-process-found-nothing");
- button_SelectProcess.Enabled = false;
- comboBox_Process.Enabled = false;
- }
- else if (processes.Count >= 2)
- {
- Log.E("l-process-found-multiple");
- button_SelectProcess.Enabled = true;
- comboBox_Process.Enabled = true;
-
- foreach (var process in processes)
- {
- comboBox_Process.Items.Add($"{process.ProcessName}:{process.Id}");
- }
- comboBox_Process.SelectedIndex = 0;
- }
- else {
- SetFFXIVProcess(processes[0]);
- }
- }
-
- private void SetFFXIVProcess(Process process)
- {
- FFXIVProcess = process;
-
- var name = $"{FFXIVProcess.ProcessName}:{FFXIVProcess.Id}";
- Log.S("l-process-set-success", name);
-
- comboBox_Process.Enabled = false;
- button_SelectProcess.Enabled = false;
-
- comboBox_Process.Items.Clear();
- comboBox_Process.Items.Add(name);
- comboBox_Process.SelectedIndex = 0;
-
- networkWorker.StartCapture(FFXIVProcess);
- }
-
- internal void ShowNotification(string key, params object[] args)
- {
- this.Invoke(() =>
- {
- notifyIcon.ShowBalloonTip(10 * 1000, Localization.GetText("app-name"), Localization.GetText(key, args), ToolTipIcon.Info);
- });
- }
-
- private void comboBox_Language_SelectedValueChanged(object sender, EventArgs e)
- {
- var language = comboBox_Language.SelectedValue.ToString();
- if (Settings.Language == language)
- {
- return;
- }
-
- Settings.Language = language;
- Settings.Save();
-
- Localization.Initialize(Settings.Language);
- Data.Initialize(Settings.Language);
-
- ApplyLanguage();
-
- LMessageBox.I("ui-language-changed");
- }
-
- private void ApplyLanguage()
- {
- this.Text = Localization.GetText("app-name");
- notifyIcon.Text = Localization.GetText("app-name");
- toolStripMenuItem_Open.Text = Localization.GetText("ui-notifymenustrip-open");
- toolStripMenuItem_Close.Text = Localization.GetText("ui-notifymenustrip-close");
- label_Process.Text = Localization.GetText("ui-topsetting-process");
- button_SelectProcess.Text = Localization.GetText("ui-topsetting-select");
- button_ResetProcess.Text = Localization.GetText("ui-topsetting-reset");
- tabControl.TabPages[0].Text = Localization.GetText("ui-tabcontrol-settings");
- tabControl.TabPages[1].Text = Localization.GetText("ui-tabcontrol-fate");
- tabControl.TabPages[2].Text = Localization.GetText("ui-tabcontrol-logs");
- tabControl.TabPages[3].Text = Localization.GetText("ui-tabcontrol-info");
- groupBox_DefaultSet.Text = Localization.GetText("ui-settings-title");
- checkBox_Overlay.Text = Localization.GetText("ui-settings-overlay-use");
- toolTip.SetToolTip(checkBox_Overlay, Localization.GetText("ui-settings-overlay-tooltip"));
- button_ResetOverlayPosition.Text = Localization.GetText("ui-settings-overlay-reset");
- checkBox_StartupShow.Text = Localization.GetText("ui-settings-startupshow");
- checkBox_AutoOverlayHide.Text = Localization.GetText("ui-settings-autohide");
- checkBox_FlashWindow.Text = Localization.GetText("ui-settings-iconflash");
- checkBox_PlaySound.Text = Localization.GetText("ui-settings-playsound");
- button_SoundLocation.Text = Localization.GetText("ui-settings-soundlocation");
- checkBox_ShowAnnouncement.Text = Localization.GetText("ui-settings-overlay-announcement");
- groupBox_TwitterSet.Text = Localization.GetText("ui-settings-tweet-title");
- checkBox_Twitter.Text = Localization.GetText("ui-settings-tweet-activate");
- label_TwitterAbout.Text = Localization.GetText("ui-settings-tweet-about");
- toolStripMenuItem_SelectAll.Text = Localization.GetText("ui-fate-selectall");
- toolStripMenuItem_UnSelectAll.Text = Localization.GetText("ui-fate-unselectall");
- presetToolStripMenuItem.Text = Localization.GetText("ui-fate-preset");
- bookOfSkyfireIToolStripMenuItem.Text = Localization.GetText("fate-preset-animus-SkyfireI");
- bookOfSkyfireIIToolStripMenuItem.Text = Localization.GetText("fate-preset-animus-SkyfireII");
- bookOfNetherfireIToolStripMenuItem.Text = Localization.GetText("fate-preset-animus-NetherfireI");
- bookOfSkyfallIToolStripMenuItem.Text = Localization.GetText("fate-preset-animus-SkyfallI");
- bookOfSkyfallIIToolStripMenuItem.Text = Localization.GetText("fate-preset-animus-SkyfallII");
- bookOfNetherfireIToolStripMenuItem1.Text = Localization.GetText("fate-preset-animus-NetherfallI");
- bookOfSkywindIToolStripMenuItem.Text = Localization.GetText("fate-preset-animus-SkywindI");
- bookOfSkywindIIToolStripMenuItem.Text = Localization.GetText("fate-preset-animus-SkywindII");
- bookOfSkyearthIToolStripMenuItem.Text = Localization.GetText("fate-preset-animus-SkyearthI");
- toolStripMenuItem_SelectApply.Text = Localization.GetText("ui-fate-apply");
- label_FATEAbout.Text = Localization.GetText("ui-fate-about");
- toolStripMenuItem_LogCopy.Text = Localization.GetText("ui-logs-copy");
- toolStripMenuItem_LogClear.Text = Localization.GetText("ui-logs-clear");
- label_About.Text = Localization.GetText("ui-info-about");
-
- }
-
- private void checkBox_PlaySound_CheckedChanged(object sender, EventArgs e)
- {
- button_SoundLocation.Enabled = checkBox_PlaySound.Checked;
- if (button_SoundLocation.Enabled == false)
- {
- label_SoundLocation.Text = "";
- Settings.SoundLocation = "";
- }
- Settings.PlaySound = checkBox_PlaySound.Checked;
- Settings.Save();
- }
-
- private void button_SoundLocation_Click(object sender, EventArgs e)
- {
- openFileDialog1.Filter = "WAVE Files|*.wav";
- DialogResult result = openFileDialog1.ShowDialog();
- if (result == DialogResult.OK)
- {
- label_SoundLocation.Text = System.IO.Path.GetFileName(openFileDialog1.FileName);
- Settings.SoundLocation = openFileDialog1.FileName;
- Settings.Save();
- }
- }
-
- private void groupBox_DefaultSet_Enter(object sender, EventArgs e)
- {
-
- }
- }
-}
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using System.IO;
+using System.Drawing;
+using System.Text.RegularExpressions;
+
+namespace App
+{
+ public partial class MainForm : Form
+ {
+ internal Network networkWorker;
+ internal Process FFXIVProcess;
+ internal OverlayForm overlayForm;
+ internal List nodes;
+
+ public MainForm()
+ {
+ Settings.Load();
+
+ InitializeComponent();
+
+ Log.Form = this;
+ overlayForm = new OverlayForm();
+ nodes = new List();
+ }
+
+ protected override void OnShown(EventArgs e)
+ {
+ base.OnShown(e);
+
+ if (!Settings.StartupShowMainForm)
+ {
+ Hide();
+ }
+ }
+
+ private void MainForm_Load(object sender, EventArgs e)
+ {
+ Localization.Initialize(Settings.Language);
+ Data.Initialize(Settings.Language, this);
+
+ ApplyLanguage();
+
+ overlayForm.Show();
+ networkWorker = new Network(this);
+
+ label_AboutTitle.Text = $@"DFA {Global.VERSION}";
+
+ FindFFXIVProcess();
+
+ if (!Settings.ShowOverlay)
+ {
+ overlayForm.Hide();
+ checkBox_Overlay.Checked = false;
+ }
+ networkWorker.notificationPlayer = new System.Media.SoundPlayer();
+
+ Task.Factory.StartNew(() =>
+ {
+ while (true)
+ {
+ Updater.CheckNewVersion(this);
+ Thread.Sleep(30 * 60 * 1000);
+ }
+ });
+
+ comboBox_Language.DataSource = new[]
+ {
+ new Language { Name = "한국어", Code = "ko-kr" },
+ new Language { Name = "English", Code = "en-us" },
+ new Language { Name = "Français", Code = "fr-fr" },
+ new Language { Name = "Deutsch", Code = "de-de" },
+ new Language { Name = "日本語", Code = "ja-jp" },
+ new Language { Name = "简体中文", Code = "zh-cn" },
+ new Language { Name = "Русский", Code = "ru-ru" },
+ };
+
+ comboBox_Language.DisplayMember = "Name";
+ comboBox_Language.ValueMember = "Code";
+
+ comboBox_Language.SelectedValue = Settings.Language;
+
+ comboBox_Language.SelectedValueChanged += comboBox_Language_SelectedValueChanged;
+
+ checkBox_StartupShow.Checked = Settings.StartupShowMainForm;
+ checkBox_autoHideOverlay.Checked = Settings.autoHideOverlay;
+ checkBox_FlashWindow.Checked = Settings.FlashWindow;
+ checkBox_FateSound.Checked = Settings.FateSound;
+ checkBox_useVPN.Checked = Settings.useVPN;
+ // Check if Custom Sound File Exists
+ if (File.Exists(Settings.CustomSoundPath))
+ {
+ label_CustomSoundFileName.Text = Path.GetFileName(Settings.CustomSoundPath);
+ checkBox_CustomSound.Checked = Settings.CustomSound;
+ networkWorker.notificationPlayer.SoundLocation = Settings.CustomSoundPath;
+ }
+ else
+ {
+ label_CustomSoundFileName.Text = "";
+ checkBox_CustomSound.Checked = false;
+ Settings.CustomSound = false;
+ Settings.Save();
+ }
+ SetCheatRoulleteCheckBox(Settings.CheatRoulette);
+ checkBox_CopyMacro.Checked = Settings.copyMacro;
+ checkBox_Telegram.Checked = Settings.TelegramEnabled;
+ checkBox_Telegram_Queue_Status.Checked = Settings.TelegramQueueStatusEnabled;
+ textBox_Telegram.Enabled = Settings.TelegramEnabled;
+ textBox_Telegram.Text = Settings.TelegramChatId;
+ checkBox_Discord.Checked = Settings.DiscordEnabled;
+ textBox_Discord.Enabled = Settings.DiscordEnabled;
+ textBox_Discord.Text = Settings.DiscordAccount;
+
+ checkBox_EnableHttpRequest.Checked = Settings.customHttpRequest;
+ textBox_CustomHttpUrl.Text = Settings.customHttpUrl;
+ checkBox_RequestOnDutyMatched.Checked = Settings.requestOnDutyMatched;
+ checkBox_RequestOnFateOccur.Checked = Settings.requestOnFateOccured;
+ checkBox_DebugLog.Checked = Settings.debugLog;
+
+ refresh_Fates();
+
+ Task.Factory.StartNew(() =>
+ {
+ while (true)
+ {
+ Thread.Sleep(30 * 1000);
+
+ if (FFXIVProcess == null || FFXIVProcess.HasExited)
+ {
+ FFXIVProcess = null;
+
+ overlayForm.SetStatus(false);
+ this.Invoke(FindFFXIVProcess);
+ }
+ else {
+ // FFXIVProcess is alive
+
+ if (networkWorker.IsRunning)
+ {
+ networkWorker.UpdateGameConnections(FFXIVProcess);
+ }
+ else
+ {
+ networkWorker.StartCapture(FFXIVProcess);
+ }
+ }
+ }
+ });
+
+ if (Settings.Updated)
+ {
+ Settings.Updated = false;
+ Settings.Save();
+ ShowNotification("notification-app-updated", Global.VERSION);
+ }
+ }
+
+ internal void refresh_Fates()
+ {
+ triStateTreeView_FATEs.Nodes.Clear();
+ foreach (var area in Data.Areas)
+ {
+ triStateTreeView_FATEs.Nodes.Add(area.Key.ToString(), area.Value.Name);
+
+ foreach (var fate in area.Value.FATEs)
+ {
+ var node = triStateTreeView_FATEs.Nodes[area.Key.ToString()].Nodes.Add(fate.Key.ToString(), fate.Value.Name);
+ node.Checked = Settings.FATEs.Contains(fate.Key);
+ nodes.Add(node);
+ }
+ }
+ }
+
+ private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
+ {
+ if (e.CloseReason == CloseReason.UserClosing)
+ {
+ e.Cancel = true;
+ Hide();
+ }
+ }
+
+ private void notifyIcon_MouseDoubleClick(object sender, MouseEventArgs e)
+ {
+ Show();
+ }
+
+ private void toolStripMenuItem_Open_Click(object sender, EventArgs e)
+ {
+ Show();
+ }
+
+ private void toolStripMenuItem_Close_Click(object sender, EventArgs e)
+ {
+ Application.Exit();
+ }
+
+ private void richTextBox_Log_TextChanged(object sender, EventArgs e)
+ {
+ richTextBox_Log.SelectionStart = richTextBox_Log.Text.Length;
+ richTextBox_Log.SelectionLength = 0;
+ richTextBox_Log.ScrollToCaret();
+ }
+
+ private void linkLabel_Localization_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
+ {
+ Process.Start(Global.LOCALIZATION);
+ }
+
+ private void linkLabel_Telegram_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
+ {
+ Process.Start(Global.TELEGRAM_BOT);
+ }
+
+ private void linkLabel_DiscordServer_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
+ {
+ Process.Start(Global.DISCORD_INVITE);
+ }
+
+ private void linkLabel_GitHub_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
+ {
+ Process.Start($"https://github.com/{Global.GITHUB_REPO}");
+ }
+
+ private void button_SelectProcess_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ SetFFXIVProcess(Process.GetProcessById(int.Parse(((string)comboBox_Process.SelectedItem).Split(':')[1])));
+ }
+ catch
+ {
+ Log.E("l-process-set-failed");
+ }
+ }
+
+ private void button_ResetProcess_Click(object sender, EventArgs e)
+ {
+ networkWorker.StopCapture();
+ FFXIVProcess = null;
+ FindFFXIVProcess();
+ }
+
+ private void checkBox_Overlay_CheckedChanged(object sender, EventArgs e)
+ {
+ Settings.ShowOverlay = checkBox_Overlay.Checked;
+
+ // Disable autohide overlay function when ShowOverlay is disabled
+ if (checkBox_Overlay.Checked)
+ {
+ checkBox_autoHideOverlay.Enabled = true;
+ }
+ else
+ {
+ checkBox_autoHideOverlay.Enabled = false;
+ checkBox_autoHideOverlay.Checked = false;
+ Settings.autoHideOverlay = false;
+ }
+ Settings.Save();
+
+ if (Settings.ShowOverlay)
+ {
+ overlayForm.Show();
+ }
+ else
+ {
+ overlayForm.Hide();
+ }
+ }
+
+ private void button_ResetOverlayPosition_Click(object sender, EventArgs e)
+ {
+ overlayForm.ResetFormLocation();
+ }
+
+ private void checkBox_autoHideOverlay_CheckedChanged(object sender, EventArgs e)
+ {
+ Settings.autoHideOverlay = checkBox_autoHideOverlay.Checked;
+ Settings.Save();
+ }
+
+ private void checkBox_autoHideOverlay_MouseClick(object sender, MouseEventArgs e)
+ {
+ if (checkBox_autoHideOverlay.Checked)
+ {
+ LMessageBox.I("ui-notification-overlay-autohide");
+ }
+ }
+
+ private void checkBox_StartupShow_CheckedChanged(object sender, EventArgs e)
+ {
+ Settings.StartupShowMainForm = checkBox_StartupShow.Checked;
+ Settings.Save();
+ }
+
+ private void checkBox_FlashWindow_CheckedChanged(object sender, EventArgs e)
+ {
+ Settings.FlashWindow = checkBox_FlashWindow.Checked;
+ Settings.Save();
+ }
+
+ private void checkBox_FateSound_CheckedChanged(object sender, EventArgs e)
+ {
+ Settings.FateSound = checkBox_FateSound.Checked;
+ Settings.Save();
+ }
+
+ private void checkBox_CustomSound_CheckedChanged(object sender, EventArgs e)
+ {
+ Settings.CustomSound = checkBox_CustomSound.Checked;
+ Settings.Save();
+ }
+
+ private void checkBox_CustomSound_MouseDown(object sender, MouseEventArgs e)
+ {
+ if (label_CustomSoundFileName.Text == "")
+ {
+ LMessageBox.I("ui-notification-customsound-selectfile");
+ checkBox_CustomSound.Checked = false;
+ }
+ }
+
+ private void button_getSoundFile_Click(object sender, EventArgs e)
+ {
+ // Create a new OpenFileDialog.
+ OpenFileDialog dlg = new OpenFileDialog();
+
+ // Make sure the dialog checks for existence of the
+ // selected file.
+ dlg.CheckFileExists = true;
+
+ dlg.Filter = Localization.GetText("ui-settings-getfilewav");
+ dlg.DefaultExt = ".wav";
+
+ // Activate the file selection dialog.
+ if (dlg.ShowDialog() == DialogResult.OK)
+ {
+ // Get the selected file's path from the dialog.
+ this.label_CustomSoundFileName.Text = Path.GetFileName(dlg.FileName);
+
+ Settings.CustomSoundPath = dlg.FileName;
+ Settings.Save();
+
+ networkWorker.notificationPlayer.SoundLocation = dlg.FileName;
+ }
+ }
+
+ private void checkBox_CheatRoullete_CheckedChanged(object sender, EventArgs e)
+ {
+ var @checked = checkBox_CheatRoullete.Checked;
+ SetCheatRoulleteCheckBox(false);
+ if (@checked)
+ {
+ var respond = LMessageBox.W("ui-cheat-roulette-confirm", MessageBoxButtons.YesNo, MessageBoxDefaultButton.Button2);
+ if (respond == DialogResult.Yes)
+ {
+ LMessageBox.I("ui-cheat-roulette-enabled");
+ SetCheatRoulleteCheckBox(true);
+ }
+ }
+
+ Settings.CheatRoulette = checkBox_CheatRoullete.Checked;
+ Settings.Save();
+ }
+
+ private void checkBox_CopyMacro_CheckedChanged(object sender, EventArgs e)
+ {
+ Settings.copyMacro = checkBox_CopyMacro.Checked;
+ Settings.Save();
+ }
+
+ private void checkBox_useVPN_CheckedChanged(object sender, EventArgs e)
+ {
+ Settings.useVPN = checkBox_useVPN.Checked;
+ Settings.Save();
+ networkWorker.StopCapture();
+ FFXIVProcess = null;
+ FindFFXIVProcess();
+ }
+
+ private void checkBox_useVPN_MouseUp(object sender, MouseEventArgs e)
+ {
+ if (checkBox_useVPN.Checked)
+ {
+ LMessageBox.I("ui-settings-usevpn-alert");
+ }
+ }
+
+ private void textBox_Telegram_TextChanged(object sender, EventArgs e)
+ {
+ Settings.TelegramChatId = textBox_Telegram.Text;
+ Settings.Save();
+ }
+
+ private void checkBox_Telegram_CheckedChanged(object sender, EventArgs e)
+ {
+ textBox_Telegram.Enabled = checkBox_Telegram.Checked;
+ Settings.TelegramEnabled = checkBox_Telegram.Checked;
+ Settings.Save();
+ }
+
+ private void checkBox_Telegram_Queue_Status_CheckedChanged(object sender, EventArgs e)
+ {
+ Settings.TelegramQueueStatusEnabled = checkBox_Telegram_Queue_Status.Checked;
+ Settings.Save();
+ }
+
+ private void textBox_Discord_TextChanged(object sender, EventArgs e)
+ {
+ string strRegex = "^[0-9]{15,}";
+ Regex re = new Regex(strRegex);
+ if (re.IsMatch(textBox_Discord.Text))
+ {
+ textBox_Discord.ForeColor = Color.Blue;
+ }
+ else
+ {
+ textBox_Discord.ForeColor = Color.Red;
+ }
+ Settings.DiscordAccount = textBox_Discord.Text;
+ Settings.Save();
+ }
+
+ private void textBox_Discord_KeyPress(object sender, KeyPressEventArgs e)
+ {
+ if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar))
+ {
+ LMessageBox.I("ui-3rdparty-discord-numberonly-alert");
+ e.Handled = true;
+ }
+ }
+
+ private void checkBox_Discord_CheckedChanged(object sender, EventArgs e)
+ {
+ textBox_Discord.Enabled = checkBox_Discord.Checked;
+ Settings.DiscordEnabled = checkBox_Discord.Checked;
+ Settings.Save();
+ }
+
+ private void checkBox_EnableHttpRequest_CheckedChanged(object sender, EventArgs e)
+ {
+ var @checked = checkBox_EnableHttpRequest.Checked;
+ Settings.customHttpRequest = @checked;
+ textBox_CustomHttpUrl.Enabled = @checked;
+ checkBox_RequestOnDutyMatched.Enabled = @checked;
+ checkBox_RequestOnFateOccur.Enabled = @checked;
+ Settings.Save();
+ }
+
+ private void textBox_CustomHttpUrl_TextChanged(object sender, EventArgs e)
+ {
+ Settings.customHttpUrl = textBox_CustomHttpUrl.Text;
+ Settings.Save();
+ }
+
+ private void checkBox_RequestOnDutyMatched_CheckedChanged(object sender, EventArgs e)
+ {
+ Settings.requestOnDutyMatched = checkBox_RequestOnDutyMatched.Checked;
+ Settings.Save();
+ }
+
+ private void checkBox_RequestOnFateOccur_CheckedChanged(object sender, EventArgs e)
+ {
+ Settings.requestOnFateOccured = checkBox_RequestOnFateOccur.Checked;
+ Settings.Save();
+ }
+
+ private void checkBox_DebugLog_CheckedChanged(object sender, EventArgs e)
+ {
+ Settings.debugLog = checkBox_DebugLog.Checked;
+ Settings.Save();
+ }
+
+ private void toolStripMenuItem_LogCopy_Click(object sender, EventArgs e)
+ {
+ Clipboard.SetText(richTextBox_Log.Text);
+ LMessageBox.I("ui-clipboard-copied");
+ }
+
+ private void toolStripMenuItem_LogClear_Click(object sender, EventArgs e)
+ {
+ if (LMessageBox.I("ui-clear-log-confirm", MessageBoxButtons.OKCancel) == DialogResult.OK)
+ {
+ richTextBox_Log.Text = "";
+ }
+ }
+
+ private void toolStripMenuItem_SelectAll_Click(object sender, EventArgs e)
+ {
+ foreach (var node in nodes)
+ {
+ node.Checked = true;
+ Settings.FATEs.Add(ushort.Parse(node.Name));
+ }
+
+ Settings.Save();
+ }
+
+ private void toolStripMenuItem_UnSelectAll_Click(object sender, EventArgs e)
+ {
+ FateAllUnset(true);
+ }
+
+ private void toolStripMenuItem_SelectApply_Click(object sender, EventArgs e)
+ {
+ foreach (var node in nodes)
+ {
+ if (node.Checked)
+ {
+ Settings.FATEs.Add(ushort.Parse(node.Name));
+ }
+ else
+ {
+ Settings.FATEs.Remove(ushort.Parse(node.Name));
+ }
+ }
+
+ Settings.Save();
+ LMessageBox.I("ui-fate-selection-saved");
+ }
+
+ private void FateAllUnset(bool save = false)
+ {
+ foreach (var node in nodes)
+ {
+ node.Checked = false;
+ }
+
+ Settings.FATEs.Clear();
+
+ if (save)
+ Settings.Save();
+ }
+
+ private void PresetAccept(int[] arr)
+ {
+ foreach (var node in nodes)
+ {
+ var c = ushort.Parse(node.Name);
+ if (arr.Any(code => code == c))
+ {
+ node.Checked = true;
+ Settings.FATEs.Add(c);
+ }
+ }
+
+ Settings.Save();
+ LMessageBox.I("ui-fate-preset-applied");
+ }
+
+ private void bookOfSkyfireIToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ int[] arr = { 611, 480, 589 };
+ PresetAccept(arr);
+ }
+
+ private void bookOfSkyfireIIToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ int[] arr = { 424, 633, 571 };
+ PresetAccept(arr);
+ }
+
+ private void bookOfNetherfireIToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ int[] arr = { 521, 620, 430 };
+ PresetAccept(arr);
+ }
+
+ private void bookOfSkyfallIToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ int[] arr = { 540, 577, 475 };
+ PresetAccept(arr);
+ }
+
+ private void bookOfSkyfallIIToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ int[] arr = { 569, 616, 516 };
+ PresetAccept(arr);
+ }
+
+ private void bookOfNetherfireIToolStripMenuItem1_Click(object sender, EventArgs e)
+ {
+ int[] arr = { 632, 642, 499 };
+ PresetAccept(arr);
+ }
+
+ private void bookOfSkywindIToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ int[] arr = { 604, 317, 517 };
+ PresetAccept(arr);
+ }
+
+ private void bookOfSkywindIIToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ int[] arr = { 552, 628, 486 };
+ PresetAccept(arr);
+ }
+
+ private void bookOfSkyearthIToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ int[] arr = { 543, 493, 587 };
+ PresetAccept(arr);
+ }
+
+ private void IxionToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ int[] arr = { 1103, 1104, 1105 };
+ PresetAccept(arr);
+ }
+
+ private void TamamoToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ int[] arr = { 1106, 1107, 1108, 1109, 1110, 1111 };
+ PresetAccept(arr);
+ }
+
+ private void frogSuitToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ int[] arr = { 1426, 1427, 1428, 1429, 1430, 1431, 1432 };
+ PresetAccept(arr);
+ }
+
+ private void frogMountToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ int[] arr = { 1462, 1463, 1464, 1477, 1478, 1479 };
+ PresetAccept(arr);
+ }
+
+ private void SetCheatRoulleteCheckBox(bool @checked)
+ {
+ checkBox_CheatRoullete.CheckedChanged -= checkBox_CheatRoullete_CheckedChanged;
+ checkBox_CheatRoullete.Checked = @checked;
+ checkBox_CheatRoullete.CheckedChanged += checkBox_CheatRoullete_CheckedChanged;
+ }
+
+ private void FindFFXIVProcess()
+ {
+ comboBox_Process.Items.Clear();
+ Log.I("l-process-finding");
+
+ var processes = new List();
+ processes.AddRange(Process.GetProcessesByName("ffxiv"));
+ processes.AddRange(Process.GetProcessesByName("ffxiv_dx11"));
+
+ if (processes.Count == 0)
+ {
+ Log.E("l-process-found-nothing");
+ button_SelectProcess.Enabled = false;
+ comboBox_Process.Enabled = false;
+ }
+ else if (processes.Count >= 2)
+ {
+ Log.E("l-process-found-multiple");
+ button_SelectProcess.Enabled = true;
+ comboBox_Process.Enabled = true;
+
+ foreach (var process in processes)
+ {
+ comboBox_Process.Items.Add($"{process.ProcessName}:{process.Id}");
+ }
+ comboBox_Process.SelectedIndex = 0;
+ }
+ else {
+ SetFFXIVProcess(processes[0]);
+ }
+ }
+
+ private void SetFFXIVProcess(Process process)
+ {
+ FFXIVProcess = process;
+
+ var name = $"{FFXIVProcess.ProcessName}:{FFXIVProcess.Id}";
+ Log.S("l-process-set-success", name);
+
+ comboBox_Process.Enabled = false;
+ button_SelectProcess.Enabled = false;
+
+ comboBox_Process.Items.Clear();
+ comboBox_Process.Items.Add(name);
+ comboBox_Process.SelectedIndex = 0;
+
+ networkWorker.StartCapture(FFXIVProcess);
+ }
+
+ internal void ShowNotification(string key, params object[] args)
+ {
+ this.Invoke(() =>
+ {
+ notifyIcon.ShowBalloonTip(10 * 1000, Localization.GetText("app-name"), Localization.GetText(key, args), ToolTipIcon.Info);
+ });
+ }
+
+ private void comboBox_Language_SelectedValueChanged(object sender, EventArgs e)
+ {
+ var language = comboBox_Language.SelectedValue.ToString();
+ if (Settings.Language == language)
+ {
+ return;
+ }
+
+ Settings.Language = language;
+ Settings.Save();
+
+ Localization.Initialize(Settings.Language);
+ Data.Initialize(Settings.Language, this);
+
+ ApplyLanguage();
+
+ LMessageBox.I("ui-language-changed");
+ }
+
+ private void ApplyLanguage()
+ {
+ this.Text = Localization.GetText("app-name");
+ notifyIcon.Text = Localization.GetText("app-name");
+ toolStripMenuItem_Open.Text = Localization.GetText("ui-notifymenustrip-open");
+ toolStripMenuItem_Close.Text = Localization.GetText("ui-notifymenustrip-close");
+ label_Process.Text = Localization.GetText("ui-topsetting-process");
+ button_SelectProcess.Text = Localization.GetText("ui-topsetting-select");
+ button_ResetProcess.Text = Localization.GetText("ui-topsetting-reset");
+ tabControl.TabPages[0].Text = Localization.GetText("ui-tabcontrol-settings");
+ tabControl.TabPages[1].Text = Localization.GetText("ui-tabcontrol-3rdparty");
+ tabControl.TabPages[2].Text = Localization.GetText("ui-tabcontrol-advanced");
+ tabControl.TabPages[3].Text = Localization.GetText("ui-tabcontrol-fate");
+ tabControl.TabPages[4].Text = Localization.GetText("ui-tabcontrol-logs");
+ tabControl.TabPages[5].Text = Localization.GetText("ui-tabcontrol-info");
+ groupBox_DefaultSet.Text = Localization.GetText("ui-settings-title");
+ checkBox_Overlay.Text = Localization.GetText("ui-settings-overlay-use");
+ toolTip.SetToolTip(checkBox_Overlay, Localization.GetText("ui-settings-overlay-tooltip"));
+ button_ResetOverlayPosition.Text = Localization.GetText("ui-settings-overlay-reset");
+ checkBox_autoHideOverlay.Text = Localization.GetText("ui-settings-overlay-autohide");
+ checkBox_StartupShow.Text = Localization.GetText("ui-settings-startupshow");
+ checkBox_FlashWindow.Text = Localization.GetText("ui-settings-iconflash");
+ checkBox_FateSound.Text = Localization.GetText("ui-settings-fatesound");
+ checkBox_CustomSound.Text = Localization.GetText("ui-settings-customsound");
+ button_getSoundFile.Text = Localization.GetText("ui-settings-getsoundfile");
+ checkBox_CheatRoullete.Text = Localization.GetText("ui-settings-cheatroulette");
+ checkBox_CopyMacro.Text = Localization.GetText("ui-settings-copymacro");
+ checkBox_useVPN.Text = Localization.GetText("ui-settings-usevpn");
+ linkLabel_Localization.Text = Localization.GetText("ui-link-localization");
+ groupBox_TelegramSet.Text = Localization.GetText("ui-3rdparty-telegram-title");
+ checkBox_Telegram.Text = Localization.GetText("ui-3rdparty-telegram-activate");
+ checkBox_Telegram_Queue_Status.Text = Localization.GetText("ui-3rdparty-telegram-queuestatus");
+ label_TelegramAbout.Text = Localization.GetText("ui-3rdparty-telegram-about");
+ groupBox_DiscordSet.Text = Localization.GetText("ui-3rdparty-discord-title");
+ checkBox_Discord.Text = Localization.GetText("ui-3rdparty-discord-activate");
+ label_DiscordAbout.Text = Localization.GetText("ui-3rdparty-discord-about");
+ groupBox_CustomHttpRequest.Text = Localization.GetText("ui-advanced-http");
+ checkBox_EnableHttpRequest.Text = Localization.GetText("ui-advanced-http-enable");
+ checkBox_RequestOnDutyMatched.Text = Localization.GetText("ui-advanced-http-duty-matched");
+ checkBox_RequestOnFateOccur.Text = Localization.GetText("ui-advanced-http-fate-occured");
+ label_HttpRequestReadme.Text = Localization.GetText("ui-advanced-http-readme");
+ groupBox_debug.Text = Localization.GetText("ui-debug");
+ checkBox_DebugLog.Text = Localization.GetText("ui-debug-log");
+ toolStripMenuItem_SelectAll.Text = Localization.GetText("ui-fate-selectall");
+ toolStripMenuItem_UnSelectAll.Text = Localization.GetText("ui-fate-unselectall");
+ presetToolStripMenuItem.Text = Localization.GetText("ui-fate-preset");
+ bookOfSkyfireIToolStripMenuItem.Text = Localization.GetText("fate-preset-animus-SkyfireI");
+ bookOfSkyfireIIToolStripMenuItem.Text = Localization.GetText("fate-preset-animus-SkyfireII");
+ bookOfNetherfireIToolStripMenuItem.Text = Localization.GetText("fate-preset-animus-NetherfireI");
+ bookOfSkyfallIToolStripMenuItem.Text = Localization.GetText("fate-preset-animus-SkyfallI");
+ bookOfSkyfallIIToolStripMenuItem.Text = Localization.GetText("fate-preset-animus-SkyfallII");
+ bookOfNetherfireIToolStripMenuItem1.Text = Localization.GetText("fate-preset-animus-NetherfallI");
+ bookOfSkywindIToolStripMenuItem.Text = Localization.GetText("fate-preset-animus-SkywindI");
+ bookOfSkywindIIToolStripMenuItem.Text = Localization.GetText("fate-preset-animus-SkywindII");
+ bookOfSkyearthIToolStripMenuItem.Text = Localization.GetText("fate-preset-animus-SkyearthI");
+ IxionToolStripMenuItem.Text = Localization.GetText("fate-preset-Ixion");
+ TamamoToolStripMenuItem.Text = Localization.GetText("fate-preset-Tamamo");
+ frogMountToolStripMenuItem.Text = Localization.GetText("fate-preset-frogMount");
+ frogSuitToolStripMenuItem.Text = Localization.GetText("fate-preset-frogSuit");
+ toolStripMenuItem_SelectApply.Text = Localization.GetText("ui-fate-apply");
+ label_FATEAbout.Text = Localization.GetText("ui-fate-about");
+ toolStripMenuItem_LogCopy.Text = Localization.GetText("ui-logs-copy");
+ toolStripMenuItem_LogClear.Text = Localization.GetText("ui-logs-clear");
+ label_About.Text = Localization.GetText("ui-info-about");
+
+ // change Font
+ List allControls = GetAllControls(this, GetAllControls(overlayForm));
+ allControls.Add(groupBox_DefaultSet);
+ allControls.Add(groupBox_TelegramSet);
+ allControls.Add(groupBox_DiscordSet);
+ allControls.Add(groupBox_CustomHttpRequest);
+ if (Settings.Language == "ja-jp")
+ {
+ allControls.ForEach(k => k.Font = new Font("Yu Gothic", k.Font.Size));
+ }
+ else
+ {
+ allControls.ForEach(k => k.Font = new Font("Malgun Gothic", k.Font.Size));
+ }
+ label_AboutTitle.Font = new Font(label_AboutTitle.Font, FontStyle.Bold);
+
+ // Move items as String length change with languages.
+ button_ResetOverlayPosition.Left = checkBox_Overlay.Location.X + checkBox_Overlay.Size.Width;
+ button_getSoundFile.Left = checkBox_CustomSound.Location.X + checkBox_CustomSound.Size.Width;
+ label_CustomSoundFileName.Left = button_getSoundFile.Location.X + button_getSoundFile.Size.Width;
+ comboBox_Process.Left = label_Process.Location.X + label_Process.Size.Width;
+ button_SelectProcess.Left = comboBox_Process.Location.X + comboBox_Process.Size.Width;
+ button_ResetProcess.Left = button_SelectProcess.Location.X + button_SelectProcess.Size.Width;
+ checkBox_Telegram_Queue_Status.Left = checkBox_Telegram.Location.X + checkBox_Telegram.Size.Width;
+ }
+
+ private List GetAllControls(Control container, List list)
+ {
+ foreach (Control c in container.Controls)
+ {
+ if (c.Controls.Count > 0)
+ list = GetAllControls(c, list);
+ else
+ list.Add(c);
+ }
+
+ return list;
+ }
+ private List GetAllControls(Control container)
+ {
+ return GetAllControls(container, new List());
+ }
+ }
+}
diff --git a/App/Form/MainForm.resx b/App/Form/MainForm.resx
index 1b9ea6e..dfb844d 100644
--- a/App/Form/MainForm.resx
+++ b/App/Form/MainForm.resx
@@ -1,428 +1,430 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- 587, 17
-
-
- 17, 17
-
-
- 123, 17
-
-
-
-
- AAABAAEALCwAAAEAIADIHwAAFgAAACgAAAAsAAAAWAAAAAEAIAAAAAAAQB4AABMLAAATCwAAAAAAAAAA
- AAA8XXT/PF10/ylEW/8pRFv/KURb/ylEW/8pRFv/KURb/ylEW/8pRFv/KURb/ylEW/8pRFv/KURb/ylE
- W/8pRFv/KURb/ylEW/8pRFv/KURb/ylEW/8pRFv/KURb/ylEW/8pRFv/KURb/ylEW/8pRFv/KURb/ylE
- W/8pRFv/KURb/ylEW/8pRFv/KURb/ylEW/8pRFv/KURb/ylEW/8pRFv/KURb/ylEW/8hRF7/IURe/1KC
- pf88XXT/OWGE/zlhhP85YYT/OWGE/zlhhP85YYT/OWGE/zlhhP85YYT/OWGE/zlhhP85YYT/OWGE/zlh
- hP85YYT/OWGE/zlhhP85YYT/OWGE/zlhhP85YYT/OWGE/zlhhP85YYT/OWGE/zlhhP85YYT/OWGE/zlh
- hP85YYT/OWGE/zlhhP85YYT/OWGE/zlhhP85YYT/OWGE/zlhhP85YYT/OWGE/yldhP8pXYT/c5q9/1Nu
- hP+M2/f/jNv3/4zb9/+M2/f/jOv//4zr//+M6///jOv//4zr//+M6///jOv//4zr//+M6///jOv//4zr
- //+M6///jOv//4zr//+M6///jOv//4zr//+M6///jOv//4zr//+M6///jOv//4zr//+M6///jOv//4zr
- //+M6///jOv//4zr//+M6///jOv//4zr//+M4///jOP//4zj//+M4///QmmE/0JphP9zmr3/U26E/2yf
- tv8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykk
- Mf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykk
- Mf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykgKf8pICn/KSAp/4zj//9CaYT/QmmE/3Oavf9TboT/SWBy/ykk
- Mf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykk
- Mf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykk
- Mf8pJDH/KSQx/ykkMf8pJDH/KSAp/ykgKf8pICn/bKO5/0JphP9CaYT/c5q9/1NuhP9JYHL/KSQx/ykk
- Mf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykk
- Mf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykk
- Mf8pJDH/KSQx/ykkMf8pICn/KSAp/ykgKf9so7n/QmmE/0JphP97mrX/WG5//0JtjP8hECH/LC9E/ywv
- RP8xLEL/MSxC/zEsQv8xLEL/MSxC/zEsQv8xLEL/MSxC/zEsQv8xLEL/MSxC/zEsQv8uK0T/LitE/y4r
- RP8sKT//ISAx/yEgMf8hIDH/ISAx/yMlOv8jJTr/KSxC/yksQv8hICn/ISAp/yEgKf8hICn/KSQ5/ykk
- Of8pJDn/KSQ5/zY3TP82N0z/GAgY/3OWtf9KbYz/Sm2M/3uatf9Ybn//Qm2M/yEQIf8sL0T/LC9E/zEs
- R/8xLEf/MSxH/zEsR/8xLEf/MSxH/zEsR/8xLEf/MSxH/zEsR/8xLEf/MSxH/zEsSv8xLEr/LitE/y4r
- RP8hIDH/ISAx/yEgMf8hIDH/Hh8x/yMlOv8jJTr/IyU6/yEgKf8hICn/ISAp/yEgKf8pJDn/KSQ5/ykk
- Of8pJDn/NjdM/zY3TP8YCBj/c5a1/0ptjP9KbYz/e5q1/1huf/9CbYz/IRAh/ywvRP8sL0T/MSxH/zEs
- R/8xLEf/MSxH/zEsR/8xLEf/MSxH/zEsR/8xLEf/MSxH/zEsR/8xLEf/MSxK/zEsSv8uK0T/KSg5/yEg
- Mf8hIDH/ISAx/yEgMf8YGCn/Hh8x/x4fMf8eHzH/ISAp/yEgKf9zrtb/WH+d/ykkOf8pJDn/KSQ5/ykk
- Of82N0z/NjdM/xgIGP9zlrX/Sm2M/0ptjP97mrX/WG5//0JtjP8hECH/LC9E/ywvRP8xLEr/MSxK/zEs
- Sv8xLEr/MSxK/zEsSv8xLEr/MSxK/zEsSv8xLEr/MSxK/zEsSv8xLEr/MSxK/zEsSv8pKDn/TW+E/01v
- hP9jlq3/Y5at/x4fMf8YGCn/Hh8x/x4fMf8hICn/ISAp/3Ou1v9zrtb/Y5K9/ykkOf8pJDn/KSQ5/zY3
- TP82N0z/GAgY/3OWtf9KbYz/Sm2M/3uevf9YcYT/QnGU/yEQIf8sMEf/LDBH/zEtT/8xLU//MS1P/zEt
- T/8xLU//MS1P/zEtT/8xLU//MS1P/zEtT/8xLU//MS1P/y4tTf8uLU3/Li1N/ykoQv9UYm//krG5/5Kx
- uf+Ssbn/h6+5/xgcKf8YHCn/GBwp/wgYMf9DW3X/Q1t1/4Kgu/+SrL7/XWd6/ykkOf8pJDn/NjdS/zY3
- Uv8YCCH/c5a1/0pxjP9KcYz/e569/1hxhP9CcZT/IRAh/ywwR/8sMEf/MS1P/zEtT/8xLU//MS1P/zEt
- T/8xLU//MS1P/zEtT/8xLU//MS1P/zEtT/8xLU//Li1N/y4tTf8uLU3/LCtH/xgYKf9UYm//zvv//877
- //+Hr7n/h6+5/xgcKf8YHCn/gqC7/4Kgu/+CoLv/veP//8bv//+SrL7/XWd6/ykkOf82N1L/NjdS/xgI
- If9zlrX/SnGM/0pxjP97nr3/WHGE/0JxlP8hECH/LDBH/ywwR/8xLU//MS1P/zEtT/8xLU//MS1P/zEt
- T/8xLU//MS1P/zEtT/8xLU//MS1P/zEtT/8uLU3/Li1N/y4tTf8sK0f/GBgp/xgYKf9UYm//zvv//733
- //+Hr7n/h6+5/4evuf+CoLv/gqC7/73j//+94///XWd6/ykkOf9dZ3r/KSQ5/zY3Uv82N1L/GAgh/3OW
- tf9KcYz/SnGM/3uevf9YcYT/QnGU/yEQIf8sMEf/LDBH/zEtT/8xLU//MS1P/zEtT/8xLU//MS1P/zEt
- T/8xLU//MS1P/zEtT/8xLU//MS1P/zEwUv8xMFL/Li1N/ywrR/8YGCn/GBgp/xgYKf9UYm//h6+5/4ev
- uf+Hr7n/h6+5/4Kgu/+94///veP//0Nbdf8pJDn/KSQ5/ykkOf8pJDn/NjdS/zY3Uv8YCCH/c5a1/0px
- jP9KcYz/e6K9/1hzhP9CcZT/IRQx/ywzUf8sM1H/MTBa/zEwWv8xMFr/MTBa/zEwWv8xMFr/MTBa/zEw
- Wv8xL13/MS9d/zEvXf8xL13/MSxa/zEsWv8xLFr/KSRH/xgYIf8YGCH/GBgh/xgYIf+rvdn/q73Z/6u9
- 2f+rvdn/prfE/6a3xP8hJEr/ISRK/yYjQf8sKVP/LClT/zEwY/82OVf/NjlX/xgMKf9zlrX/UnWM/1J1
- jP97or3/WHOE/0JxlP8hFDH/LDNR/ywzUf8xMFr/MTBa/zEwWv8xMFr/MTBa/zEwWv8xMFr/MTBa/zEv
- Xf8xL13/MS9d/zEvXf8xLFr/MSxa/ykkR/8gHDT/RGKb/0Rim/8YGCH/GBgh/zFFjP9tf7L/q73Z/6u9
- 2f9ibIX/YmyF/yEkSv8hJEr/JiNB/ywpU/8sKVP/MTBj/zY5V/82OVf/GAwp/3OWtf9SdYz/UnWM/3ui
- vf9Yc4T/QnGU/yEUMf8sM1H/LDNR/zEwXf8xMF3/MTBd/zEwXf8xMF3/MTBd/zEwXf8xMF3/MS9d/zEv
- Xf8xL13/MS9d/zEsWv8xLFr/KSRH/xgUIf9EYpv/WobW/1qG1v9EYpv/bX+y/zFFjP/n9///5/f//6a3
- xP9ibIX/YmyF/yEkSv8hHDH/LClT/zEwY/8xMGP/NjlX/zY5V/8YDCn/c5a1/1J1jP9SdYz/e6K9/1hz
- hP9CcZT/IRQx/ywzUf8sM1H/MTBj/zEwY/8xMGP/MTBj/zEwY/8xMGP/MTBj/zEwY/8xL13/MS9d/zEv
- Xf8xLWD/MSxa/ykkR/8gHDT/GBQh/1qG1v9ahtb/WobW/0Rim/9tf7L/q73Z/+f3///n9///5////+f/
- //9ibIX/YmyF/yEcMf8mI0H/LClT/zEwY/82OVf/NjlX/xgMKf9zlrX/UnWM/1J1jP+Eosb/XnOK/0Jx
- lP8hFDn/LDNX/ywzV/8xMGb/MTBm/zEwZv8xMGb/MS9o/zEvaP8xL2j/MS9o/zEwY/8xMGP/MTBj/yko
- Vf8hIDn/ISA5/yEgOf80QGr/c4bO/3OGzv9zhs7/c4bO/5Wiuf+Vorn/UVVv/1FVb/+msLz/5/f3/+f3
- 9/9iZ33/YmiQ/ykoWv8pKFr/KSha/zY5X/82OV//GAwx/3OWvf9SeZT/UnmU/4Sixv9ec4r/QnGU/yEU
- Of8sM1f/LDNX/zEwaP8xMGj/MTBo/zEwaP8xMGv/MTBr/zEwa/8xMGv/MTBj/zEwY/8pKFX/KShV/yEg
- Of8hIDn/NEBq/1qCzv9zhs7/c4bO/3OGzv+Wqt7/laK5/5Wiuf9RVW//EAwp/yEgQv9iZ33/5/f3/+f3
- 9/9iaJD/KSha/ykoWv8pKFr/Njlf/zY5X/8YDDH/c5a9/1J5lP9SeZT/hKLG/15ziv9CcZT/IRQ5/ywz
- V/8sM1f/MTBr/zEwa/8xMGv/MTBr/zEwa/8xMGv/MTBr/zEwa/8xMGP/KShV/ykoVf8gIEf/ISA5/yEg
- Of9ags7/WoLO/3OGzv9zhs7/lqre/97z///W6///laK5/5Wiuf8QDCn/ISBC/yEgQv9iZ33/5/f3/52r
- yf8pKFr/KSha/ykoWv82OV//Njlf/xgMMf9zlr3/UnmU/1J5lP+Eosb/XnOK/0JxlP8hFDn/LDNX/ywz
- V/8xMGv/MTBr/zEwa/8xMGv/MTBr/zEwa/8xMGv/MS1m/ykoVf8pKFX/ICBH/xgYOf8hIDn/WoLO/1qC
- zv9ags7/c4bO/7vP7//e8///3vP//9br///W6///1uv//1FVb/8hIEL/ISBC/yEgQv9iZ33/1uv//yko
- Wv8pKFr/KSha/zY5X/82OV//GAwx/3OWvf9SeZT/UnmU/4Smxv9ed4r/QnGc/yEUQv8sM2D/LDNg/zEw
- c/8xMHP/MTBz/zEwc/8xMGv/MTBr/zEwa/8pJ1j/ISA5/yEgOf8hIDn/ISA5/2uO1v9rjtb/a47W/2uO
- 1v+ou8n/3vv//977///e+///c3Gc/xgQUv8YEFL/NjBq/y4tbv8uLW7/Li1u/ykoUv9KSWP/NDBz/zQw
- c/80MHP/Njlk/zY5ZP8YDDn/c5a9/2OOrf9IZ3n/hKbG/153iv9CcZz/IRRC/ywzYP8sM2D/MTBz/zEw
- c/8xMHP/MTBz/zEwa/8xMGv/KSdY/yknWP8hIDn/ISA5/yEgOf9jmt7/a47W/2uO1v9rjtb/s9fy/977
- ///e+///3vv//zk4Wv82MGr/NjBq/zYwav82MGr/MTB7/zEwe/8xMHv/MTB7/zQwc/80MHP/NDBz/zQw
- c/82OWT/Njlk/xgMOf9zlr3/Y46t/0hnef+Epsb/XneK/0JxnP8hFEL/LDNg/ywzYP8xMHP/MTBz/zEw
- c/8uLW7/MTBr/yknWP8pJ1j/IB1E/yEgOf83SG//Y5re/2Oa3v9rjtb/a47W/7PX8v/W+///3vv//977
- //85OFr/OTha/zYwav82MGr/NjBq/zYwav8xMHv/MTB7/zEwe/8xMHv/NDBz/zQwc/80MHP/NDBz/zY5
- ZP82OWT/GAw5/3OWvf9jjq3/SGd5/4Smxv9ed4r/QnGc/yEUQv8sM2D/LDNg/zEwc/8xMHP/Li1u/yko
- Y/8pJ1j/IB1E/yAdRP8YFDH/N0hv/2Oa3v9jmt7/Y5re/46y4/+z1/L/1vv//9b7//+ou8n/OTha/zk4
- Wv85OFr/NjBq/zYwav82MGr/NjBq/zEwe/8xMHv/MTB7/zEwe/80MHP/NDBz/zQwc/80MHP/Njlk/zY5
- ZP8YDDn/c5a9/2OOrf9IZ3n/c5at/3OWrf9CcZz/IRRK/ywzZf8sM2X/MTx1/zE8df8hHEr/IRxK/xgU
- Kf8YFCn/GBQp/0pxo/97qu//e6rv/3uq7/97qu//oLzJ/9b////W////oLzJ/ykkSv8sKV3/Li9x/zE0
- hP8xNIH/MTSB/zE0gf8xNIH/MTSB/zE0gf8xNIH/MTSB/zE0gf8xNIH/MTSB/zE0gf82O3P/Njtz/xgM
- Sv9zmsb/a5K1/01pf/9zlq3/c5at/0JxnP8hFEr/LDNl/ywzZf8xPHX/MTx1/yEcSv8hHEr/GBQp/zFB
- ZP9jnt7/Y57e/3uq7/97qu//e6rv/5bG9P/W////1v///6C8yf8xNFr/LCld/zE0hP8xNIT/MTSE/zE0
- gf8xNIH/MTSB/zE0gf8xNIH/MTSB/zE0gf8xNIH/MTSB/zE0gf8xNIH/MTSB/zY7c/82O3P/GAxK/3Oa
- xv9rkrX/TWl//3OWrf9zlq3/QnGc/yEUSv8sM2X/LDNl/zE8df8hHEr/IRxK/yEcSv9KcaP/Y57e/2Oe
- 3v9jnt7/e6rv/3uq7/+WxvT/zv///9b////W////MTRa/zE0Wv8xNIT/MTSE/zE0hP8xNIT/MTSG/zE0
- hv8xNIb/MTSG/zE0hv8xNIb/MTSG/zE0hv8xNIb/MTSG/zE0hv8xNIb/Njtz/zY7c/8YDEr/c5rG/2uS
- tf9NaX//c5at/3OWrf9CcZz/IRRK/ywzZf8sM2X/MTx1/yEcSv8xPHX/Un3O/2Oe3v9jnt7/Y57e/2Oe
- 3v97qu//lsb0/87////O////1v///zE0Wv8xNFr/MTRa/zE0hP8xNIT/MTSE/zE0hP8xNIb/MTSG/zE0
- hv8xNIb/MTSG/zE0hv8xNIb/MTSG/zE0hv8xNIb/MTSG/zE0hv82O3P/Njtz/xgMSv9zmsb/a5K1/01p
- f/9zmrX/c5q1/0Jxpf8hGFL/LDVt/yw1bf85PW//IQwx/2ui7/9rou//WpLv/4Cz9P+As/T/gLP0/5q+
- yf/O////zv///87///9KVYT/KSSE/zQ0hP80NIT/MTSM/zE0jP8xNIz/MTSM/zE0jP8xNIz/MTSM/zE0
- jP8xNIz/MTSM/zE0jP8xNIz/MTSM/zE0jP8xNIz/MTSM/zY7eP82O3j/GAxS/3Oaxv9rlr3/TWuE/3Oa
- tf9zmrX/QnGl/yEYUv8sNW3/LDVt/zk9b/8hDDH/a6Lv/2ui7/+As/T/gLP0/6jW+v+o1vr/zv///87/
- ///O////ZXmQ/ykkhP80NIT/NDSE/zQ0hP8xNI//MTSP/zE0j/8xNI//MTSP/zE0j/8xNI//MTSP/zE0
- j/8xNI//MTSP/zE0j/8xNI//MTSP/zE0j/8xNI//Njt4/zY7eP8YDFL/c5rG/2uWvf9Na4T/c5q1/3Oa
- tf9CcaX/IRhS/yw1bf8sNW3/OT1v/yEMMf9rou//a6Lv/6jW+v+o1vr/qNb6/873///O////zv///5q+
- yf8xOFr/NDSE/zQ0hP80NIT/NDSE/zE0kf8xNJH/MTSR/zE0kf8xNJH/MTSR/zE0kf8xNJH/MTSR/zE0
- kf8xNJH/MTSR/zE0kf8xNJH/MTSR/zE0kf82O3j/Njt4/xgMUv9zmsb/a5a9/01rhP9zmrX/c5q1/0Jx
- pf8hGFL/LDVt/yw1bf85PW//IQwx/2ui7/9rou//zvf//873///O9///zvf//87////O////MTha/zE4
- Wv80NIT/NDSE/zQ0hP80NIT/MTSU/zE0lP8xNJT/MTSU/zE0lP8xNJT/MTSU/zE0lP8xNJT/MTSU/zE0
- lP8xNJT/MTSU/zE0lP8xNJT/MTSU/zY7eP82O3j/GAxS/3Oaxv9rlr3/TWuE/3uatf97mrX/QnGl/ykY
- Wv8xNXP/MTVz/zEse/8xLHv/q7rU/+f/////////////////////////7//v/290p/8xMIT/MTCE/zQ0
- l/80NJf/NDSX/zQ0l/80NJf/NDSX/zQ0l/80NJf/NDSX/zQ0l/80NJf/NDSX/zQ0l/80NJf/NDSX/zQ0
- l/80NJf/NDSX/zQ0l/80NJf/ODt9/zg7ff8YDFr/e5rG/3Oavf9TboT/e5q1/3uatf9CcaX/KRha/zE1
- c/8xNXP/MSx7/zEse/+rutT/q7rU/7m60f+5utH/ubrR/7m60f+xu8z/MTCE/zEwhP8xMIT/NjSZ/zY0
- mf82NJn/NjSZ/zY0mf82NJn/NjSZ/zY0mf82NJn/NjSZ/zY0mf82NJn/NjSZ/zY0mf82NJn/NjSZ/zY0
- mf82NJn/NjSZ/zY0mf84O33/ODt9/xgMWv97msb/c5q9/1NuhP97mrX/e5q1/0Jxpf8pGFr/MTVz/zE1
- c/8xLHv/MSx7/zEse/8xLHv/KSxz/yksc/8pLHP/KSxz/zEwhP8xMIT/MTCE/zEwhP85NJz/OTSc/zk0
- nP85NJz/OTSc/zk0nP85NJz/OTSc/zk0nP85NJz/OTSc/zk0nP85NJz/OTSc/zk0nP85NJz/OTSc/zk0
- nP85NJz/OTSc/zg7ff84O33/GAxa/3uaxv9zmr3/U26E/3uatf97mrX/QnGl/ykYWv8xNXP/MTVz/zEs
- e/8xLHv/MSx7/zEse/8pLHP/KSxz/yksc/8pLHP/MTCE/zEwhP8xMIT/MTCE/zk0nP85NJz/OTSc/zk0
- nP85NJz/OTSc/zk0nP85NJz/OTSc/zk0nP85NJz/OTSc/zk0nP85NJz/OTSc/zk0nP85NJz/OTSc/zk0
- nP85NJz/ODt9/zg7ff8YDFr/e5rG/3Oavf9TboT/e561/3uetf86Y5j/GBQ5/yg7Z/8oO2f/JjJ2/yYy
- dv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYy
- dv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYy
- dv8uPGr/Ljxq/xAQQv9rlr3/c5q9/1NuhP97nrX/e561/zpjmP8YFDn/KDtn/yg7Z/8mMnb/JjJ2/yYy
- dv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYy
- dv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/y48
- av8uPGr/EBBC/2uWvf9zmr3/U26E/3uetf97nrX/OmOY/xgUOf8YFDn/GBQ5/yEMKf8hDCn/IQwp/yEM
- Kf8hDCn/IQwp/yEMKf8hDCn/IQwp/yEMKf8hDCn/IQwp/yEMKf8hDCn/IQwp/yEMKf8hDCn/IQwp/yEM
- Kf8hDCn/IQwp/yEMKf8hDCn/IQwp/yEMKf8hDCn/IQwp/yEMKf8hDCn/IQwp/yEMKf8hDCn/EBBC/xAQ
- Qv8QEEL/a5a9/3Oavf9TboT/e561/3uetf9Kisb/OmOY/yg7Z/8oO2f/KUWc/ylFnP8pRZz/KUWc/ylF
- nP8pRZz/KUWc/ylFnP8pRZz/KUWc/ylFnP8pRZz/KUWc/ylFnP8pRZz/KUWc/ylFnP8pRZz/KUWc/ylF
- nP8pRZz/KUWc/ylFnP8pRZz/KUWc/ylFnP8pRZz/KUWc/ylFnP8pRZz/KUWc/ylFnP8uPGr/Ljxq/01q
- lf9rlr3/c5q9/1NuhP9porH/aaKx/26ksf9upLH/bqSx/26ksf9uorH/bqKx/26isf9uorH/bqKx/26i
- sf9uorH/bqKx/26ksf9upLH/bqSx/26ksf9upLH/bqSx/26ksf9upLH/bqKx/26isf9uorH/bqKx/26i
- sf9uorH/bqKx/26isf9upLH/bqSx/26ksf9upLH/bqSx/26ksf9upLH/bqSx/26ksf9upLH/bqSx/26k
- sf9plKv/aZSr/5Tn//+U5///nOv//5zr//+c6///nOv//5zn//+c5///nOf//5zn//+c5///nOf//5zn
- //+c5///nOv//5zr//+c6///nOv//5zr//+c6///nOv//5zr//+c5///nOf//5zn//+c5///nOf//5zn
- //+c5///nOf//5zr//+c6///nOv//5zr//+c6///nOv//5zr//+c6///nOv//5zr//+c6///nOv//5TT
- 9/9plKv/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
-
-
-
- 587, 17
-
-
- 274, 17
-
-
- 274, 17
-
-
- 434, 17
-
-
- 434, 17
-
-
- 677, 17
-
-
-
- AAABAAEALCwAAAEAIADIHwAAFgAAACgAAAAsAAAAWAAAAAEAIAAAAAAAQB4AABMLAAATCwAAAAAAAAAA
- AAA8XXT/PF10/ylEW/8pRFv/KURb/ylEW/8pRFv/KURb/ylEW/8pRFv/KURb/ylEW/8pRFv/KURb/ylE
- W/8pRFv/KURb/ylEW/8pRFv/KURb/ylEW/8pRFv/KURb/ylEW/8pRFv/KURb/ylEW/8pRFv/KURb/ylE
- W/8pRFv/KURb/ylEW/8pRFv/KURb/ylEW/8pRFv/KURb/ylEW/8pRFv/KURb/ylEW/8hRF7/IURe/1KC
- pf88XXT/OWGE/zlhhP85YYT/OWGE/zlhhP85YYT/OWGE/zlhhP85YYT/OWGE/zlhhP85YYT/OWGE/zlh
- hP85YYT/OWGE/zlhhP85YYT/OWGE/zlhhP85YYT/OWGE/zlhhP85YYT/OWGE/zlhhP85YYT/OWGE/zlh
- hP85YYT/OWGE/zlhhP85YYT/OWGE/zlhhP85YYT/OWGE/zlhhP85YYT/OWGE/yldhP8pXYT/c5q9/1Nu
- hP+M2/f/jNv3/4zb9/+M2/f/jOv//4zr//+M6///jOv//4zr//+M6///jOv//4zr//+M6///jOv//4zr
- //+M6///jOv//4zr//+M6///jOv//4zr//+M6///jOv//4zr//+M6///jOv//4zr//+M6///jOv//4zr
- //+M6///jOv//4zr//+M6///jOv//4zr//+M4///jOP//4zj//+M4///QmmE/0JphP9zmr3/U26E/2yf
- tv8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykk
- Mf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykk
- Mf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykgKf8pICn/KSAp/4zj//9CaYT/QmmE/3Oavf9TboT/SWBy/ykk
- Mf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykk
- Mf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykk
- Mf8pJDH/KSQx/ykkMf8pJDH/KSAp/ykgKf8pICn/bKO5/0JphP9CaYT/c5q9/1NuhP9JYHL/KSQx/ykk
- Mf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykk
- Mf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykk
- Mf8pJDH/KSQx/ykkMf8pICn/KSAp/ykgKf9so7n/QmmE/0JphP97mrX/WG5//0JtjP8hECH/LC9E/ywv
- RP8xLEL/MSxC/zEsQv8xLEL/MSxC/zEsQv8xLEL/MSxC/zEsQv8xLEL/MSxC/zEsQv8uK0T/LitE/y4r
- RP8sKT//ISAx/yEgMf8hIDH/ISAx/yMlOv8jJTr/KSxC/yksQv8hICn/ISAp/yEgKf8hICn/KSQ5/ykk
- Of8pJDn/KSQ5/zY3TP82N0z/GAgY/3OWtf9KbYz/Sm2M/3uatf9Ybn//Qm2M/yEQIf8sL0T/LC9E/zEs
- R/8xLEf/MSxH/zEsR/8xLEf/MSxH/zEsR/8xLEf/MSxH/zEsR/8xLEf/MSxH/zEsSv8xLEr/LitE/y4r
- RP8hIDH/ISAx/yEgMf8hIDH/Hh8x/yMlOv8jJTr/IyU6/yEgKf8hICn/ISAp/yEgKf8pJDn/KSQ5/ykk
- Of8pJDn/NjdM/zY3TP8YCBj/c5a1/0ptjP9KbYz/e5q1/1huf/9CbYz/IRAh/ywvRP8sL0T/MSxH/zEs
- R/8xLEf/MSxH/zEsR/8xLEf/MSxH/zEsR/8xLEf/MSxH/zEsR/8xLEf/MSxK/zEsSv8uK0T/KSg5/yEg
- Mf8hIDH/ISAx/yEgMf8YGCn/Hh8x/x4fMf8eHzH/ISAp/yEgKf9zrtb/WH+d/ykkOf8pJDn/KSQ5/ykk
- Of82N0z/NjdM/xgIGP9zlrX/Sm2M/0ptjP97mrX/WG5//0JtjP8hECH/LC9E/ywvRP8xLEr/MSxK/zEs
- Sv8xLEr/MSxK/zEsSv8xLEr/MSxK/zEsSv8xLEr/MSxK/zEsSv8xLEr/MSxK/zEsSv8pKDn/TW+E/01v
- hP9jlq3/Y5at/x4fMf8YGCn/Hh8x/x4fMf8hICn/ISAp/3Ou1v9zrtb/Y5K9/ykkOf8pJDn/KSQ5/zY3
- TP82N0z/GAgY/3OWtf9KbYz/Sm2M/3uevf9YcYT/QnGU/yEQIf8sMEf/LDBH/zEtT/8xLU//MS1P/zEt
- T/8xLU//MS1P/zEtT/8xLU//MS1P/zEtT/8xLU//MS1P/y4tTf8uLU3/Li1N/ykoQv9UYm//krG5/5Kx
- uf+Ssbn/h6+5/xgcKf8YHCn/GBwp/wgYMf9DW3X/Q1t1/4Kgu/+SrL7/XWd6/ykkOf8pJDn/NjdS/zY3
- Uv8YCCH/c5a1/0pxjP9KcYz/e569/1hxhP9CcZT/IRAh/ywwR/8sMEf/MS1P/zEtT/8xLU//MS1P/zEt
- T/8xLU//MS1P/zEtT/8xLU//MS1P/zEtT/8xLU//Li1N/y4tTf8uLU3/LCtH/xgYKf9UYm//zvv//877
- //+Hr7n/h6+5/xgcKf8YHCn/gqC7/4Kgu/+CoLv/veP//8bv//+SrL7/XWd6/ykkOf82N1L/NjdS/xgI
- If9zlrX/SnGM/0pxjP97nr3/WHGE/0JxlP8hECH/LDBH/ywwR/8xLU//MS1P/zEtT/8xLU//MS1P/zEt
- T/8xLU//MS1P/zEtT/8xLU//MS1P/zEtT/8uLU3/Li1N/y4tTf8sK0f/GBgp/xgYKf9UYm//zvv//733
- //+Hr7n/h6+5/4evuf+CoLv/gqC7/73j//+94///XWd6/ykkOf9dZ3r/KSQ5/zY3Uv82N1L/GAgh/3OW
- tf9KcYz/SnGM/3uevf9YcYT/QnGU/yEQIf8sMEf/LDBH/zEtT/8xLU//MS1P/zEtT/8xLU//MS1P/zEt
- T/8xLU//MS1P/zEtT/8xLU//MS1P/zEwUv8xMFL/Li1N/ywrR/8YGCn/GBgp/xgYKf9UYm//h6+5/4ev
- uf+Hr7n/h6+5/4Kgu/+94///veP//0Nbdf8pJDn/KSQ5/ykkOf8pJDn/NjdS/zY3Uv8YCCH/c5a1/0px
- jP9KcYz/e6K9/1hzhP9CcZT/IRQx/ywzUf8sM1H/MTBa/zEwWv8xMFr/MTBa/zEwWv8xMFr/MTBa/zEw
- Wv8xL13/MS9d/zEvXf8xL13/MSxa/zEsWv8xLFr/KSRH/xgYIf8YGCH/GBgh/xgYIf+rvdn/q73Z/6u9
- 2f+rvdn/prfE/6a3xP8hJEr/ISRK/yYjQf8sKVP/LClT/zEwY/82OVf/NjlX/xgMKf9zlrX/UnWM/1J1
- jP97or3/WHOE/0JxlP8hFDH/LDNR/ywzUf8xMFr/MTBa/zEwWv8xMFr/MTBa/zEwWv8xMFr/MTBa/zEv
- Xf8xL13/MS9d/zEvXf8xLFr/MSxa/ykkR/8gHDT/RGKb/0Rim/8YGCH/GBgh/zFFjP9tf7L/q73Z/6u9
- 2f9ibIX/YmyF/yEkSv8hJEr/JiNB/ywpU/8sKVP/MTBj/zY5V/82OVf/GAwp/3OWtf9SdYz/UnWM/3ui
- vf9Yc4T/QnGU/yEUMf8sM1H/LDNR/zEwXf8xMF3/MTBd/zEwXf8xMF3/MTBd/zEwXf8xMF3/MS9d/zEv
- Xf8xL13/MS9d/zEsWv8xLFr/KSRH/xgUIf9EYpv/WobW/1qG1v9EYpv/bX+y/zFFjP/n9///5/f//6a3
- xP9ibIX/YmyF/yEkSv8hHDH/LClT/zEwY/8xMGP/NjlX/zY5V/8YDCn/c5a1/1J1jP9SdYz/e6K9/1hz
- hP9CcZT/IRQx/ywzUf8sM1H/MTBj/zEwY/8xMGP/MTBj/zEwY/8xMGP/MTBj/zEwY/8xL13/MS9d/zEv
- Xf8xLWD/MSxa/ykkR/8gHDT/GBQh/1qG1v9ahtb/WobW/0Rim/9tf7L/q73Z/+f3///n9///5////+f/
- //9ibIX/YmyF/yEcMf8mI0H/LClT/zEwY/82OVf/NjlX/xgMKf9zlrX/UnWM/1J1jP+Eosb/XnOK/0Jx
- lP8hFDn/LDNX/ywzV/8xMGb/MTBm/zEwZv8xMGb/MS9o/zEvaP8xL2j/MS9o/zEwY/8xMGP/MTBj/yko
- Vf8hIDn/ISA5/yEgOf80QGr/c4bO/3OGzv9zhs7/c4bO/5Wiuf+Vorn/UVVv/1FVb/+msLz/5/f3/+f3
- 9/9iZ33/YmiQ/ykoWv8pKFr/KSha/zY5X/82OV//GAwx/3OWvf9SeZT/UnmU/4Sixv9ec4r/QnGU/yEU
- Of8sM1f/LDNX/zEwaP8xMGj/MTBo/zEwaP8xMGv/MTBr/zEwa/8xMGv/MTBj/zEwY/8pKFX/KShV/yEg
- Of8hIDn/NEBq/1qCzv9zhs7/c4bO/3OGzv+Wqt7/laK5/5Wiuf9RVW//EAwp/yEgQv9iZ33/5/f3/+f3
- 9/9iaJD/KSha/ykoWv8pKFr/Njlf/zY5X/8YDDH/c5a9/1J5lP9SeZT/hKLG/15ziv9CcZT/IRQ5/ywz
- V/8sM1f/MTBr/zEwa/8xMGv/MTBr/zEwa/8xMGv/MTBr/zEwa/8xMGP/KShV/ykoVf8gIEf/ISA5/yEg
- Of9ags7/WoLO/3OGzv9zhs7/lqre/97z///W6///laK5/5Wiuf8QDCn/ISBC/yEgQv9iZ33/5/f3/52r
- yf8pKFr/KSha/ykoWv82OV//Njlf/xgMMf9zlr3/UnmU/1J5lP+Eosb/XnOK/0JxlP8hFDn/LDNX/ywz
- V/8xMGv/MTBr/zEwa/8xMGv/MTBr/zEwa/8xMGv/MS1m/ykoVf8pKFX/ICBH/xgYOf8hIDn/WoLO/1qC
- zv9ags7/c4bO/7vP7//e8///3vP//9br///W6///1uv//1FVb/8hIEL/ISBC/yEgQv9iZ33/1uv//yko
- Wv8pKFr/KSha/zY5X/82OV//GAwx/3OWvf9SeZT/UnmU/4Smxv9ed4r/QnGc/yEUQv8sM2D/LDNg/zEw
- c/8xMHP/MTBz/zEwc/8xMGv/MTBr/zEwa/8pJ1j/ISA5/yEgOf8hIDn/ISA5/2uO1v9rjtb/a47W/2uO
- 1v+ou8n/3vv//977///e+///c3Gc/xgQUv8YEFL/NjBq/y4tbv8uLW7/Li1u/ykoUv9KSWP/NDBz/zQw
- c/80MHP/Njlk/zY5ZP8YDDn/c5a9/2OOrf9IZ3n/hKbG/153iv9CcZz/IRRC/ywzYP8sM2D/MTBz/zEw
- c/8xMHP/MTBz/zEwa/8xMGv/KSdY/yknWP8hIDn/ISA5/yEgOf9jmt7/a47W/2uO1v9rjtb/s9fy/977
- ///e+///3vv//zk4Wv82MGr/NjBq/zYwav82MGr/MTB7/zEwe/8xMHv/MTB7/zQwc/80MHP/NDBz/zQw
- c/82OWT/Njlk/xgMOf9zlr3/Y46t/0hnef+Epsb/XneK/0JxnP8hFEL/LDNg/ywzYP8xMHP/MTBz/zEw
- c/8uLW7/MTBr/yknWP8pJ1j/IB1E/yEgOf83SG//Y5re/2Oa3v9rjtb/a47W/7PX8v/W+///3vv//977
- //85OFr/OTha/zYwav82MGr/NjBq/zYwav8xMHv/MTB7/zEwe/8xMHv/NDBz/zQwc/80MHP/NDBz/zY5
- ZP82OWT/GAw5/3OWvf9jjq3/SGd5/4Smxv9ed4r/QnGc/yEUQv8sM2D/LDNg/zEwc/8xMHP/Li1u/yko
- Y/8pJ1j/IB1E/yAdRP8YFDH/N0hv/2Oa3v9jmt7/Y5re/46y4/+z1/L/1vv//9b7//+ou8n/OTha/zk4
- Wv85OFr/NjBq/zYwav82MGr/NjBq/zEwe/8xMHv/MTB7/zEwe/80MHP/NDBz/zQwc/80MHP/Njlk/zY5
- ZP8YDDn/c5a9/2OOrf9IZ3n/c5at/3OWrf9CcZz/IRRK/ywzZf8sM2X/MTx1/zE8df8hHEr/IRxK/xgU
- Kf8YFCn/GBQp/0pxo/97qu//e6rv/3uq7/97qu//oLzJ/9b////W////oLzJ/ykkSv8sKV3/Li9x/zE0
- hP8xNIH/MTSB/zE0gf8xNIH/MTSB/zE0gf8xNIH/MTSB/zE0gf8xNIH/MTSB/zE0gf82O3P/Njtz/xgM
- Sv9zmsb/a5K1/01pf/9zlq3/c5at/0JxnP8hFEr/LDNl/ywzZf8xPHX/MTx1/yEcSv8hHEr/GBQp/zFB
- ZP9jnt7/Y57e/3uq7/97qu//e6rv/5bG9P/W////1v///6C8yf8xNFr/LCld/zE0hP8xNIT/MTSE/zE0
- gf8xNIH/MTSB/zE0gf8xNIH/MTSB/zE0gf8xNIH/MTSB/zE0gf8xNIH/MTSB/zY7c/82O3P/GAxK/3Oa
- xv9rkrX/TWl//3OWrf9zlq3/QnGc/yEUSv8sM2X/LDNl/zE8df8hHEr/IRxK/yEcSv9KcaP/Y57e/2Oe
- 3v9jnt7/e6rv/3uq7/+WxvT/zv///9b////W////MTRa/zE0Wv8xNIT/MTSE/zE0hP8xNIT/MTSG/zE0
- hv8xNIb/MTSG/zE0hv8xNIb/MTSG/zE0hv8xNIb/MTSG/zE0hv8xNIb/Njtz/zY7c/8YDEr/c5rG/2uS
- tf9NaX//c5at/3OWrf9CcZz/IRRK/ywzZf8sM2X/MTx1/yEcSv8xPHX/Un3O/2Oe3v9jnt7/Y57e/2Oe
- 3v97qu//lsb0/87////O////1v///zE0Wv8xNFr/MTRa/zE0hP8xNIT/MTSE/zE0hP8xNIb/MTSG/zE0
- hv8xNIb/MTSG/zE0hv8xNIb/MTSG/zE0hv8xNIb/MTSG/zE0hv82O3P/Njtz/xgMSv9zmsb/a5K1/01p
- f/9zmrX/c5q1/0Jxpf8hGFL/LDVt/yw1bf85PW//IQwx/2ui7/9rou//WpLv/4Cz9P+As/T/gLP0/5q+
- yf/O////zv///87///9KVYT/KSSE/zQ0hP80NIT/MTSM/zE0jP8xNIz/MTSM/zE0jP8xNIz/MTSM/zE0
- jP8xNIz/MTSM/zE0jP8xNIz/MTSM/zE0jP8xNIz/MTSM/zY7eP82O3j/GAxS/3Oaxv9rlr3/TWuE/3Oa
- tf9zmrX/QnGl/yEYUv8sNW3/LDVt/zk9b/8hDDH/a6Lv/2ui7/+As/T/gLP0/6jW+v+o1vr/zv///87/
- ///O////ZXmQ/ykkhP80NIT/NDSE/zQ0hP8xNI//MTSP/zE0j/8xNI//MTSP/zE0j/8xNI//MTSP/zE0
- j/8xNI//MTSP/zE0j/8xNI//MTSP/zE0j/8xNI//Njt4/zY7eP8YDFL/c5rG/2uWvf9Na4T/c5q1/3Oa
- tf9CcaX/IRhS/yw1bf8sNW3/OT1v/yEMMf9rou//a6Lv/6jW+v+o1vr/qNb6/873///O////zv///5q+
- yf8xOFr/NDSE/zQ0hP80NIT/NDSE/zE0kf8xNJH/MTSR/zE0kf8xNJH/MTSR/zE0kf8xNJH/MTSR/zE0
- kf8xNJH/MTSR/zE0kf8xNJH/MTSR/zE0kf82O3j/Njt4/xgMUv9zmsb/a5a9/01rhP9zmrX/c5q1/0Jx
- pf8hGFL/LDVt/yw1bf85PW//IQwx/2ui7/9rou//zvf//873///O9///zvf//87////O////MTha/zE4
- Wv80NIT/NDSE/zQ0hP80NIT/MTSU/zE0lP8xNJT/MTSU/zE0lP8xNJT/MTSU/zE0lP8xNJT/MTSU/zE0
- lP8xNJT/MTSU/zE0lP8xNJT/MTSU/zY7eP82O3j/GAxS/3Oaxv9rlr3/TWuE/3uatf97mrX/QnGl/ykY
- Wv8xNXP/MTVz/zEse/8xLHv/q7rU/+f/////////////////////////7//v/290p/8xMIT/MTCE/zQ0
- l/80NJf/NDSX/zQ0l/80NJf/NDSX/zQ0l/80NJf/NDSX/zQ0l/80NJf/NDSX/zQ0l/80NJf/NDSX/zQ0
- l/80NJf/NDSX/zQ0l/80NJf/ODt9/zg7ff8YDFr/e5rG/3Oavf9TboT/e5q1/3uatf9CcaX/KRha/zE1
- c/8xNXP/MSx7/zEse/+rutT/q7rU/7m60f+5utH/ubrR/7m60f+xu8z/MTCE/zEwhP8xMIT/NjSZ/zY0
- mf82NJn/NjSZ/zY0mf82NJn/NjSZ/zY0mf82NJn/NjSZ/zY0mf82NJn/NjSZ/zY0mf82NJn/NjSZ/zY0
- mf82NJn/NjSZ/zY0mf84O33/ODt9/xgMWv97msb/c5q9/1NuhP97mrX/e5q1/0Jxpf8pGFr/MTVz/zE1
- c/8xLHv/MSx7/zEse/8xLHv/KSxz/yksc/8pLHP/KSxz/zEwhP8xMIT/MTCE/zEwhP85NJz/OTSc/zk0
- nP85NJz/OTSc/zk0nP85NJz/OTSc/zk0nP85NJz/OTSc/zk0nP85NJz/OTSc/zk0nP85NJz/OTSc/zk0
- nP85NJz/OTSc/zg7ff84O33/GAxa/3uaxv9zmr3/U26E/3uatf97mrX/QnGl/ykYWv8xNXP/MTVz/zEs
- e/8xLHv/MSx7/zEse/8pLHP/KSxz/yksc/8pLHP/MTCE/zEwhP8xMIT/MTCE/zk0nP85NJz/OTSc/zk0
- nP85NJz/OTSc/zk0nP85NJz/OTSc/zk0nP85NJz/OTSc/zk0nP85NJz/OTSc/zk0nP85NJz/OTSc/zk0
- nP85NJz/ODt9/zg7ff8YDFr/e5rG/3Oavf9TboT/e561/3uetf86Y5j/GBQ5/yg7Z/8oO2f/JjJ2/yYy
- dv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYy
- dv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYy
- dv8uPGr/Ljxq/xAQQv9rlr3/c5q9/1NuhP97nrX/e561/zpjmP8YFDn/KDtn/yg7Z/8mMnb/JjJ2/yYy
- dv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYy
- dv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/y48
- av8uPGr/EBBC/2uWvf9zmr3/U26E/3uetf97nrX/OmOY/xgUOf8YFDn/GBQ5/yEMKf8hDCn/IQwp/yEM
- Kf8hDCn/IQwp/yEMKf8hDCn/IQwp/yEMKf8hDCn/IQwp/yEMKf8hDCn/IQwp/yEMKf8hDCn/IQwp/yEM
- Kf8hDCn/IQwp/yEMKf8hDCn/IQwp/yEMKf8hDCn/IQwp/yEMKf8hDCn/IQwp/yEMKf8hDCn/EBBC/xAQ
- Qv8QEEL/a5a9/3Oavf9TboT/e561/3uetf9Kisb/OmOY/yg7Z/8oO2f/KUWc/ylFnP8pRZz/KUWc/ylF
- nP8pRZz/KUWc/ylFnP8pRZz/KUWc/ylFnP8pRZz/KUWc/ylFnP8pRZz/KUWc/ylFnP8pRZz/KUWc/ylF
- nP8pRZz/KUWc/ylFnP8pRZz/KUWc/ylFnP8pRZz/KUWc/ylFnP8pRZz/KUWc/ylFnP8uPGr/Ljxq/01q
- lf9rlr3/c5q9/1NuhP9porH/aaKx/26ksf9upLH/bqSx/26ksf9uorH/bqKx/26isf9uorH/bqKx/26i
- sf9uorH/bqKx/26ksf9upLH/bqSx/26ksf9upLH/bqSx/26ksf9upLH/bqKx/26isf9uorH/bqKx/26i
- sf9uorH/bqKx/26isf9upLH/bqSx/26ksf9upLH/bqSx/26ksf9upLH/bqSx/26ksf9upLH/bqSx/26k
- sf9plKv/aZSr/5Tn//+U5///nOv//5zr//+c6///nOv//5zn//+c5///nOf//5zn//+c5///nOf//5zn
- //+c5///nOv//5zr//+c6///nOv//5zr//+c6///nOv//5zr//+c5///nOf//5zn//+c5///nOf//5zn
- //+c5///nOf//5zr//+c6///nOv//5zr//+c6///nOv//5zr//+c6///nOv//5zr//+c6///nOv//5TT
- 9/9plKv/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+ 123, 17
+
+
+
+
+ AAABAAEALCwAAAEAIADIHwAAFgAAACgAAAAsAAAAWAAAAAEAIAAAAAAAQB4AABMLAAATCwAAAAAAAAAA
+ AAA8XXT/PF10/ylEW/8pRFv/KURb/ylEW/8pRFv/KURb/ylEW/8pRFv/KURb/ylEW/8pRFv/KURb/ylE
+ W/8pRFv/KURb/ylEW/8pRFv/KURb/ylEW/8pRFv/KURb/ylEW/8pRFv/KURb/ylEW/8pRFv/KURb/ylE
+ W/8pRFv/KURb/ylEW/8pRFv/KURb/ylEW/8pRFv/KURb/ylEW/8pRFv/KURb/ylEW/8hRF7/IURe/1KC
+ pf88XXT/OWGE/zlhhP85YYT/OWGE/zlhhP85YYT/OWGE/zlhhP85YYT/OWGE/zlhhP85YYT/OWGE/zlh
+ hP85YYT/OWGE/zlhhP85YYT/OWGE/zlhhP85YYT/OWGE/zlhhP85YYT/OWGE/zlhhP85YYT/OWGE/zlh
+ hP85YYT/OWGE/zlhhP85YYT/OWGE/zlhhP85YYT/OWGE/zlhhP85YYT/OWGE/yldhP8pXYT/c5q9/1Nu
+ hP+M2/f/jNv3/4zb9/+M2/f/jOv//4zr//+M6///jOv//4zr//+M6///jOv//4zr//+M6///jOv//4zr
+ //+M6///jOv//4zr//+M6///jOv//4zr//+M6///jOv//4zr//+M6///jOv//4zr//+M6///jOv//4zr
+ //+M6///jOv//4zr//+M6///jOv//4zr//+M4///jOP//4zj//+M4///QmmE/0JphP9zmr3/U26E/2yf
+ tv8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykk
+ Mf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykk
+ Mf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykgKf8pICn/KSAp/4zj//9CaYT/QmmE/3Oavf9TboT/SWBy/ykk
+ Mf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykk
+ Mf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykk
+ Mf8pJDH/KSQx/ykkMf8pJDH/KSAp/ykgKf8pICn/bKO5/0JphP9CaYT/c5q9/1NuhP9JYHL/KSQx/ykk
+ Mf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykk
+ Mf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykk
+ Mf8pJDH/KSQx/ykkMf8pICn/KSAp/ykgKf9so7n/QmmE/0JphP97mrX/WG5//0JtjP8hECH/LC9E/ywv
+ RP8xLEL/MSxC/zEsQv8xLEL/MSxC/zEsQv8xLEL/MSxC/zEsQv8xLEL/MSxC/zEsQv8uK0T/LitE/y4r
+ RP8sKT//ISAx/yEgMf8hIDH/ISAx/yMlOv8jJTr/KSxC/yksQv8hICn/ISAp/yEgKf8hICn/KSQ5/ykk
+ Of8pJDn/KSQ5/zY3TP82N0z/GAgY/3OWtf9KbYz/Sm2M/3uatf9Ybn//Qm2M/yEQIf8sL0T/LC9E/zEs
+ R/8xLEf/MSxH/zEsR/8xLEf/MSxH/zEsR/8xLEf/MSxH/zEsR/8xLEf/MSxH/zEsSv8xLEr/LitE/y4r
+ RP8hIDH/ISAx/yEgMf8hIDH/Hh8x/yMlOv8jJTr/IyU6/yEgKf8hICn/ISAp/yEgKf8pJDn/KSQ5/ykk
+ Of8pJDn/NjdM/zY3TP8YCBj/c5a1/0ptjP9KbYz/e5q1/1huf/9CbYz/IRAh/ywvRP8sL0T/MSxH/zEs
+ R/8xLEf/MSxH/zEsR/8xLEf/MSxH/zEsR/8xLEf/MSxH/zEsR/8xLEf/MSxK/zEsSv8uK0T/KSg5/yEg
+ Mf8hIDH/ISAx/yEgMf8YGCn/Hh8x/x4fMf8eHzH/ISAp/yEgKf9zrtb/WH+d/ykkOf8pJDn/KSQ5/ykk
+ Of82N0z/NjdM/xgIGP9zlrX/Sm2M/0ptjP97mrX/WG5//0JtjP8hECH/LC9E/ywvRP8xLEr/MSxK/zEs
+ Sv8xLEr/MSxK/zEsSv8xLEr/MSxK/zEsSv8xLEr/MSxK/zEsSv8xLEr/MSxK/zEsSv8pKDn/TW+E/01v
+ hP9jlq3/Y5at/x4fMf8YGCn/Hh8x/x4fMf8hICn/ISAp/3Ou1v9zrtb/Y5K9/ykkOf8pJDn/KSQ5/zY3
+ TP82N0z/GAgY/3OWtf9KbYz/Sm2M/3uevf9YcYT/QnGU/yEQIf8sMEf/LDBH/zEtT/8xLU//MS1P/zEt
+ T/8xLU//MS1P/zEtT/8xLU//MS1P/zEtT/8xLU//MS1P/y4tTf8uLU3/Li1N/ykoQv9UYm//krG5/5Kx
+ uf+Ssbn/h6+5/xgcKf8YHCn/GBwp/wgYMf9DW3X/Q1t1/4Kgu/+SrL7/XWd6/ykkOf8pJDn/NjdS/zY3
+ Uv8YCCH/c5a1/0pxjP9KcYz/e569/1hxhP9CcZT/IRAh/ywwR/8sMEf/MS1P/zEtT/8xLU//MS1P/zEt
+ T/8xLU//MS1P/zEtT/8xLU//MS1P/zEtT/8xLU//Li1N/y4tTf8uLU3/LCtH/xgYKf9UYm//zvv//877
+ //+Hr7n/h6+5/xgcKf8YHCn/gqC7/4Kgu/+CoLv/veP//8bv//+SrL7/XWd6/ykkOf82N1L/NjdS/xgI
+ If9zlrX/SnGM/0pxjP97nr3/WHGE/0JxlP8hECH/LDBH/ywwR/8xLU//MS1P/zEtT/8xLU//MS1P/zEt
+ T/8xLU//MS1P/zEtT/8xLU//MS1P/zEtT/8uLU3/Li1N/y4tTf8sK0f/GBgp/xgYKf9UYm//zvv//733
+ //+Hr7n/h6+5/4evuf+CoLv/gqC7/73j//+94///XWd6/ykkOf9dZ3r/KSQ5/zY3Uv82N1L/GAgh/3OW
+ tf9KcYz/SnGM/3uevf9YcYT/QnGU/yEQIf8sMEf/LDBH/zEtT/8xLU//MS1P/zEtT/8xLU//MS1P/zEt
+ T/8xLU//MS1P/zEtT/8xLU//MS1P/zEwUv8xMFL/Li1N/ywrR/8YGCn/GBgp/xgYKf9UYm//h6+5/4ev
+ uf+Hr7n/h6+5/4Kgu/+94///veP//0Nbdf8pJDn/KSQ5/ykkOf8pJDn/NjdS/zY3Uv8YCCH/c5a1/0px
+ jP9KcYz/e6K9/1hzhP9CcZT/IRQx/ywzUf8sM1H/MTBa/zEwWv8xMFr/MTBa/zEwWv8xMFr/MTBa/zEw
+ Wv8xL13/MS9d/zEvXf8xL13/MSxa/zEsWv8xLFr/KSRH/xgYIf8YGCH/GBgh/xgYIf+rvdn/q73Z/6u9
+ 2f+rvdn/prfE/6a3xP8hJEr/ISRK/yYjQf8sKVP/LClT/zEwY/82OVf/NjlX/xgMKf9zlrX/UnWM/1J1
+ jP97or3/WHOE/0JxlP8hFDH/LDNR/ywzUf8xMFr/MTBa/zEwWv8xMFr/MTBa/zEwWv8xMFr/MTBa/zEv
+ Xf8xL13/MS9d/zEvXf8xLFr/MSxa/ykkR/8gHDT/RGKb/0Rim/8YGCH/GBgh/zFFjP9tf7L/q73Z/6u9
+ 2f9ibIX/YmyF/yEkSv8hJEr/JiNB/ywpU/8sKVP/MTBj/zY5V/82OVf/GAwp/3OWtf9SdYz/UnWM/3ui
+ vf9Yc4T/QnGU/yEUMf8sM1H/LDNR/zEwXf8xMF3/MTBd/zEwXf8xMF3/MTBd/zEwXf8xMF3/MS9d/zEv
+ Xf8xL13/MS9d/zEsWv8xLFr/KSRH/xgUIf9EYpv/WobW/1qG1v9EYpv/bX+y/zFFjP/n9///5/f//6a3
+ xP9ibIX/YmyF/yEkSv8hHDH/LClT/zEwY/8xMGP/NjlX/zY5V/8YDCn/c5a1/1J1jP9SdYz/e6K9/1hz
+ hP9CcZT/IRQx/ywzUf8sM1H/MTBj/zEwY/8xMGP/MTBj/zEwY/8xMGP/MTBj/zEwY/8xL13/MS9d/zEv
+ Xf8xLWD/MSxa/ykkR/8gHDT/GBQh/1qG1v9ahtb/WobW/0Rim/9tf7L/q73Z/+f3///n9///5////+f/
+ //9ibIX/YmyF/yEcMf8mI0H/LClT/zEwY/82OVf/NjlX/xgMKf9zlrX/UnWM/1J1jP+Eosb/XnOK/0Jx
+ lP8hFDn/LDNX/ywzV/8xMGb/MTBm/zEwZv8xMGb/MS9o/zEvaP8xL2j/MS9o/zEwY/8xMGP/MTBj/yko
+ Vf8hIDn/ISA5/yEgOf80QGr/c4bO/3OGzv9zhs7/c4bO/5Wiuf+Vorn/UVVv/1FVb/+msLz/5/f3/+f3
+ 9/9iZ33/YmiQ/ykoWv8pKFr/KSha/zY5X/82OV//GAwx/3OWvf9SeZT/UnmU/4Sixv9ec4r/QnGU/yEU
+ Of8sM1f/LDNX/zEwaP8xMGj/MTBo/zEwaP8xMGv/MTBr/zEwa/8xMGv/MTBj/zEwY/8pKFX/KShV/yEg
+ Of8hIDn/NEBq/1qCzv9zhs7/c4bO/3OGzv+Wqt7/laK5/5Wiuf9RVW//EAwp/yEgQv9iZ33/5/f3/+f3
+ 9/9iaJD/KSha/ykoWv8pKFr/Njlf/zY5X/8YDDH/c5a9/1J5lP9SeZT/hKLG/15ziv9CcZT/IRQ5/ywz
+ V/8sM1f/MTBr/zEwa/8xMGv/MTBr/zEwa/8xMGv/MTBr/zEwa/8xMGP/KShV/ykoVf8gIEf/ISA5/yEg
+ Of9ags7/WoLO/3OGzv9zhs7/lqre/97z///W6///laK5/5Wiuf8QDCn/ISBC/yEgQv9iZ33/5/f3/52r
+ yf8pKFr/KSha/ykoWv82OV//Njlf/xgMMf9zlr3/UnmU/1J5lP+Eosb/XnOK/0JxlP8hFDn/LDNX/ywz
+ V/8xMGv/MTBr/zEwa/8xMGv/MTBr/zEwa/8xMGv/MS1m/ykoVf8pKFX/ICBH/xgYOf8hIDn/WoLO/1qC
+ zv9ags7/c4bO/7vP7//e8///3vP//9br///W6///1uv//1FVb/8hIEL/ISBC/yEgQv9iZ33/1uv//yko
+ Wv8pKFr/KSha/zY5X/82OV//GAwx/3OWvf9SeZT/UnmU/4Smxv9ed4r/QnGc/yEUQv8sM2D/LDNg/zEw
+ c/8xMHP/MTBz/zEwc/8xMGv/MTBr/zEwa/8pJ1j/ISA5/yEgOf8hIDn/ISA5/2uO1v9rjtb/a47W/2uO
+ 1v+ou8n/3vv//977///e+///c3Gc/xgQUv8YEFL/NjBq/y4tbv8uLW7/Li1u/ykoUv9KSWP/NDBz/zQw
+ c/80MHP/Njlk/zY5ZP8YDDn/c5a9/2OOrf9IZ3n/hKbG/153iv9CcZz/IRRC/ywzYP8sM2D/MTBz/zEw
+ c/8xMHP/MTBz/zEwa/8xMGv/KSdY/yknWP8hIDn/ISA5/yEgOf9jmt7/a47W/2uO1v9rjtb/s9fy/977
+ ///e+///3vv//zk4Wv82MGr/NjBq/zYwav82MGr/MTB7/zEwe/8xMHv/MTB7/zQwc/80MHP/NDBz/zQw
+ c/82OWT/Njlk/xgMOf9zlr3/Y46t/0hnef+Epsb/XneK/0JxnP8hFEL/LDNg/ywzYP8xMHP/MTBz/zEw
+ c/8uLW7/MTBr/yknWP8pJ1j/IB1E/yEgOf83SG//Y5re/2Oa3v9rjtb/a47W/7PX8v/W+///3vv//977
+ //85OFr/OTha/zYwav82MGr/NjBq/zYwav8xMHv/MTB7/zEwe/8xMHv/NDBz/zQwc/80MHP/NDBz/zY5
+ ZP82OWT/GAw5/3OWvf9jjq3/SGd5/4Smxv9ed4r/QnGc/yEUQv8sM2D/LDNg/zEwc/8xMHP/Li1u/yko
+ Y/8pJ1j/IB1E/yAdRP8YFDH/N0hv/2Oa3v9jmt7/Y5re/46y4/+z1/L/1vv//9b7//+ou8n/OTha/zk4
+ Wv85OFr/NjBq/zYwav82MGr/NjBq/zEwe/8xMHv/MTB7/zEwe/80MHP/NDBz/zQwc/80MHP/Njlk/zY5
+ ZP8YDDn/c5a9/2OOrf9IZ3n/c5at/3OWrf9CcZz/IRRK/ywzZf8sM2X/MTx1/zE8df8hHEr/IRxK/xgU
+ Kf8YFCn/GBQp/0pxo/97qu//e6rv/3uq7/97qu//oLzJ/9b////W////oLzJ/ykkSv8sKV3/Li9x/zE0
+ hP8xNIH/MTSB/zE0gf8xNIH/MTSB/zE0gf8xNIH/MTSB/zE0gf8xNIH/MTSB/zE0gf82O3P/Njtz/xgM
+ Sv9zmsb/a5K1/01pf/9zlq3/c5at/0JxnP8hFEr/LDNl/ywzZf8xPHX/MTx1/yEcSv8hHEr/GBQp/zFB
+ ZP9jnt7/Y57e/3uq7/97qu//e6rv/5bG9P/W////1v///6C8yf8xNFr/LCld/zE0hP8xNIT/MTSE/zE0
+ gf8xNIH/MTSB/zE0gf8xNIH/MTSB/zE0gf8xNIH/MTSB/zE0gf8xNIH/MTSB/zY7c/82O3P/GAxK/3Oa
+ xv9rkrX/TWl//3OWrf9zlq3/QnGc/yEUSv8sM2X/LDNl/zE8df8hHEr/IRxK/yEcSv9KcaP/Y57e/2Oe
+ 3v9jnt7/e6rv/3uq7/+WxvT/zv///9b////W////MTRa/zE0Wv8xNIT/MTSE/zE0hP8xNIT/MTSG/zE0
+ hv8xNIb/MTSG/zE0hv8xNIb/MTSG/zE0hv8xNIb/MTSG/zE0hv8xNIb/Njtz/zY7c/8YDEr/c5rG/2uS
+ tf9NaX//c5at/3OWrf9CcZz/IRRK/ywzZf8sM2X/MTx1/yEcSv8xPHX/Un3O/2Oe3v9jnt7/Y57e/2Oe
+ 3v97qu//lsb0/87////O////1v///zE0Wv8xNFr/MTRa/zE0hP8xNIT/MTSE/zE0hP8xNIb/MTSG/zE0
+ hv8xNIb/MTSG/zE0hv8xNIb/MTSG/zE0hv8xNIb/MTSG/zE0hv82O3P/Njtz/xgMSv9zmsb/a5K1/01p
+ f/9zmrX/c5q1/0Jxpf8hGFL/LDVt/yw1bf85PW//IQwx/2ui7/9rou//WpLv/4Cz9P+As/T/gLP0/5q+
+ yf/O////zv///87///9KVYT/KSSE/zQ0hP80NIT/MTSM/zE0jP8xNIz/MTSM/zE0jP8xNIz/MTSM/zE0
+ jP8xNIz/MTSM/zE0jP8xNIz/MTSM/zE0jP8xNIz/MTSM/zY7eP82O3j/GAxS/3Oaxv9rlr3/TWuE/3Oa
+ tf9zmrX/QnGl/yEYUv8sNW3/LDVt/zk9b/8hDDH/a6Lv/2ui7/+As/T/gLP0/6jW+v+o1vr/zv///87/
+ ///O////ZXmQ/ykkhP80NIT/NDSE/zQ0hP8xNI//MTSP/zE0j/8xNI//MTSP/zE0j/8xNI//MTSP/zE0
+ j/8xNI//MTSP/zE0j/8xNI//MTSP/zE0j/8xNI//Njt4/zY7eP8YDFL/c5rG/2uWvf9Na4T/c5q1/3Oa
+ tf9CcaX/IRhS/yw1bf8sNW3/OT1v/yEMMf9rou//a6Lv/6jW+v+o1vr/qNb6/873///O////zv///5q+
+ yf8xOFr/NDSE/zQ0hP80NIT/NDSE/zE0kf8xNJH/MTSR/zE0kf8xNJH/MTSR/zE0kf8xNJH/MTSR/zE0
+ kf8xNJH/MTSR/zE0kf8xNJH/MTSR/zE0kf82O3j/Njt4/xgMUv9zmsb/a5a9/01rhP9zmrX/c5q1/0Jx
+ pf8hGFL/LDVt/yw1bf85PW//IQwx/2ui7/9rou//zvf//873///O9///zvf//87////O////MTha/zE4
+ Wv80NIT/NDSE/zQ0hP80NIT/MTSU/zE0lP8xNJT/MTSU/zE0lP8xNJT/MTSU/zE0lP8xNJT/MTSU/zE0
+ lP8xNJT/MTSU/zE0lP8xNJT/MTSU/zY7eP82O3j/GAxS/3Oaxv9rlr3/TWuE/3uatf97mrX/QnGl/ykY
+ Wv8xNXP/MTVz/zEse/8xLHv/q7rU/+f/////////////////////////7//v/290p/8xMIT/MTCE/zQ0
+ l/80NJf/NDSX/zQ0l/80NJf/NDSX/zQ0l/80NJf/NDSX/zQ0l/80NJf/NDSX/zQ0l/80NJf/NDSX/zQ0
+ l/80NJf/NDSX/zQ0l/80NJf/ODt9/zg7ff8YDFr/e5rG/3Oavf9TboT/e5q1/3uatf9CcaX/KRha/zE1
+ c/8xNXP/MSx7/zEse/+rutT/q7rU/7m60f+5utH/ubrR/7m60f+xu8z/MTCE/zEwhP8xMIT/NjSZ/zY0
+ mf82NJn/NjSZ/zY0mf82NJn/NjSZ/zY0mf82NJn/NjSZ/zY0mf82NJn/NjSZ/zY0mf82NJn/NjSZ/zY0
+ mf82NJn/NjSZ/zY0mf84O33/ODt9/xgMWv97msb/c5q9/1NuhP97mrX/e5q1/0Jxpf8pGFr/MTVz/zE1
+ c/8xLHv/MSx7/zEse/8xLHv/KSxz/yksc/8pLHP/KSxz/zEwhP8xMIT/MTCE/zEwhP85NJz/OTSc/zk0
+ nP85NJz/OTSc/zk0nP85NJz/OTSc/zk0nP85NJz/OTSc/zk0nP85NJz/OTSc/zk0nP85NJz/OTSc/zk0
+ nP85NJz/OTSc/zg7ff84O33/GAxa/3uaxv9zmr3/U26E/3uatf97mrX/QnGl/ykYWv8xNXP/MTVz/zEs
+ e/8xLHv/MSx7/zEse/8pLHP/KSxz/yksc/8pLHP/MTCE/zEwhP8xMIT/MTCE/zk0nP85NJz/OTSc/zk0
+ nP85NJz/OTSc/zk0nP85NJz/OTSc/zk0nP85NJz/OTSc/zk0nP85NJz/OTSc/zk0nP85NJz/OTSc/zk0
+ nP85NJz/ODt9/zg7ff8YDFr/e5rG/3Oavf9TboT/e561/3uetf86Y5j/GBQ5/yg7Z/8oO2f/JjJ2/yYy
+ dv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYy
+ dv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYy
+ dv8uPGr/Ljxq/xAQQv9rlr3/c5q9/1NuhP97nrX/e561/zpjmP8YFDn/KDtn/yg7Z/8mMnb/JjJ2/yYy
+ dv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYy
+ dv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/y48
+ av8uPGr/EBBC/2uWvf9zmr3/U26E/3uetf97nrX/OmOY/xgUOf8YFDn/GBQ5/yEMKf8hDCn/IQwp/yEM
+ Kf8hDCn/IQwp/yEMKf8hDCn/IQwp/yEMKf8hDCn/IQwp/yEMKf8hDCn/IQwp/yEMKf8hDCn/IQwp/yEM
+ Kf8hDCn/IQwp/yEMKf8hDCn/IQwp/yEMKf8hDCn/IQwp/yEMKf8hDCn/IQwp/yEMKf8hDCn/EBBC/xAQ
+ Qv8QEEL/a5a9/3Oavf9TboT/e561/3uetf9Kisb/OmOY/yg7Z/8oO2f/KUWc/ylFnP8pRZz/KUWc/ylF
+ nP8pRZz/KUWc/ylFnP8pRZz/KUWc/ylFnP8pRZz/KUWc/ylFnP8pRZz/KUWc/ylFnP8pRZz/KUWc/ylF
+ nP8pRZz/KUWc/ylFnP8pRZz/KUWc/ylFnP8pRZz/KUWc/ylFnP8pRZz/KUWc/ylFnP8uPGr/Ljxq/01q
+ lf9rlr3/c5q9/1NuhP9porH/aaKx/26ksf9upLH/bqSx/26ksf9uorH/bqKx/26isf9uorH/bqKx/26i
+ sf9uorH/bqKx/26ksf9upLH/bqSx/26ksf9upLH/bqSx/26ksf9upLH/bqKx/26isf9uorH/bqKx/26i
+ sf9uorH/bqKx/26isf9upLH/bqSx/26ksf9upLH/bqSx/26ksf9upLH/bqSx/26ksf9upLH/bqSx/26k
+ sf9plKv/aZSr/5Tn//+U5///nOv//5zr//+c6///nOv//5zn//+c5///nOf//5zn//+c5///nOf//5zn
+ //+c5///nOv//5zr//+c6///nOv//5zr//+c6///nOv//5zr//+c5///nOf//5zn//+c5///nOf//5zn
+ //+c5///nOf//5zr//+c6///nOv//5zr//+c6///nOv//5zr//+c6///nOv//5zr//+c6///nOv//5TT
+ 9/9plKv/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
+
+
+
+ 506, 17
+
+
+ 이 기능을 활성화하면 임무/돌발 찾기 도우미는 지정한 URL로
+"status", "info"와 "id"를 포함한 POST HTTP Request를 보냅니다.
+"status"에는 "duty-matched" 또는 "fate-occured"라는 String이 포함되어 보내집니다.
+"info"에는 매칭된 임무나 발생한 돌발임무 이름이 포함되어 보내집니다.
+
+이 기능은 앞으로 추가적인 개선이 예정되어 있습니다.
+
+
+ 274, 17
+
+
+ 274, 17
+
+
+ 390, 17
+
+
+ 390, 17
+
+
+
+ AAABAAEALCwAAAEAIADIHwAAFgAAACgAAAAsAAAAWAAAAAEAIAAAAAAAQB4AABMLAAATCwAAAAAAAAAA
+ AAA8XXT/PF10/ylEW/8pRFv/KURb/ylEW/8pRFv/KURb/ylEW/8pRFv/KURb/ylEW/8pRFv/KURb/ylE
+ W/8pRFv/KURb/ylEW/8pRFv/KURb/ylEW/8pRFv/KURb/ylEW/8pRFv/KURb/ylEW/8pRFv/KURb/ylE
+ W/8pRFv/KURb/ylEW/8pRFv/KURb/ylEW/8pRFv/KURb/ylEW/8pRFv/KURb/ylEW/8hRF7/IURe/1KC
+ pf88XXT/OWGE/zlhhP85YYT/OWGE/zlhhP85YYT/OWGE/zlhhP85YYT/OWGE/zlhhP85YYT/OWGE/zlh
+ hP85YYT/OWGE/zlhhP85YYT/OWGE/zlhhP85YYT/OWGE/zlhhP85YYT/OWGE/zlhhP85YYT/OWGE/zlh
+ hP85YYT/OWGE/zlhhP85YYT/OWGE/zlhhP85YYT/OWGE/zlhhP85YYT/OWGE/yldhP8pXYT/c5q9/1Nu
+ hP+M2/f/jNv3/4zb9/+M2/f/jOv//4zr//+M6///jOv//4zr//+M6///jOv//4zr//+M6///jOv//4zr
+ //+M6///jOv//4zr//+M6///jOv//4zr//+M6///jOv//4zr//+M6///jOv//4zr//+M6///jOv//4zr
+ //+M6///jOv//4zr//+M6///jOv//4zr//+M4///jOP//4zj//+M4///QmmE/0JphP9zmr3/U26E/2yf
+ tv8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykk
+ Mf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykk
+ Mf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykgKf8pICn/KSAp/4zj//9CaYT/QmmE/3Oavf9TboT/SWBy/ykk
+ Mf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykk
+ Mf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykk
+ Mf8pJDH/KSQx/ykkMf8pJDH/KSAp/ykgKf8pICn/bKO5/0JphP9CaYT/c5q9/1NuhP9JYHL/KSQx/ykk
+ Mf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykk
+ Mf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykkMf8pJDH/KSQx/ykk
+ Mf8pJDH/KSQx/ykkMf8pICn/KSAp/ykgKf9so7n/QmmE/0JphP97mrX/WG5//0JtjP8hECH/LC9E/ywv
+ RP8xLEL/MSxC/zEsQv8xLEL/MSxC/zEsQv8xLEL/MSxC/zEsQv8xLEL/MSxC/zEsQv8uK0T/LitE/y4r
+ RP8sKT//ISAx/yEgMf8hIDH/ISAx/yMlOv8jJTr/KSxC/yksQv8hICn/ISAp/yEgKf8hICn/KSQ5/ykk
+ Of8pJDn/KSQ5/zY3TP82N0z/GAgY/3OWtf9KbYz/Sm2M/3uatf9Ybn//Qm2M/yEQIf8sL0T/LC9E/zEs
+ R/8xLEf/MSxH/zEsR/8xLEf/MSxH/zEsR/8xLEf/MSxH/zEsR/8xLEf/MSxH/zEsSv8xLEr/LitE/y4r
+ RP8hIDH/ISAx/yEgMf8hIDH/Hh8x/yMlOv8jJTr/IyU6/yEgKf8hICn/ISAp/yEgKf8pJDn/KSQ5/ykk
+ Of8pJDn/NjdM/zY3TP8YCBj/c5a1/0ptjP9KbYz/e5q1/1huf/9CbYz/IRAh/ywvRP8sL0T/MSxH/zEs
+ R/8xLEf/MSxH/zEsR/8xLEf/MSxH/zEsR/8xLEf/MSxH/zEsR/8xLEf/MSxK/zEsSv8uK0T/KSg5/yEg
+ Mf8hIDH/ISAx/yEgMf8YGCn/Hh8x/x4fMf8eHzH/ISAp/yEgKf9zrtb/WH+d/ykkOf8pJDn/KSQ5/ykk
+ Of82N0z/NjdM/xgIGP9zlrX/Sm2M/0ptjP97mrX/WG5//0JtjP8hECH/LC9E/ywvRP8xLEr/MSxK/zEs
+ Sv8xLEr/MSxK/zEsSv8xLEr/MSxK/zEsSv8xLEr/MSxK/zEsSv8xLEr/MSxK/zEsSv8pKDn/TW+E/01v
+ hP9jlq3/Y5at/x4fMf8YGCn/Hh8x/x4fMf8hICn/ISAp/3Ou1v9zrtb/Y5K9/ykkOf8pJDn/KSQ5/zY3
+ TP82N0z/GAgY/3OWtf9KbYz/Sm2M/3uevf9YcYT/QnGU/yEQIf8sMEf/LDBH/zEtT/8xLU//MS1P/zEt
+ T/8xLU//MS1P/zEtT/8xLU//MS1P/zEtT/8xLU//MS1P/y4tTf8uLU3/Li1N/ykoQv9UYm//krG5/5Kx
+ uf+Ssbn/h6+5/xgcKf8YHCn/GBwp/wgYMf9DW3X/Q1t1/4Kgu/+SrL7/XWd6/ykkOf8pJDn/NjdS/zY3
+ Uv8YCCH/c5a1/0pxjP9KcYz/e569/1hxhP9CcZT/IRAh/ywwR/8sMEf/MS1P/zEtT/8xLU//MS1P/zEt
+ T/8xLU//MS1P/zEtT/8xLU//MS1P/zEtT/8xLU//Li1N/y4tTf8uLU3/LCtH/xgYKf9UYm//zvv//877
+ //+Hr7n/h6+5/xgcKf8YHCn/gqC7/4Kgu/+CoLv/veP//8bv//+SrL7/XWd6/ykkOf82N1L/NjdS/xgI
+ If9zlrX/SnGM/0pxjP97nr3/WHGE/0JxlP8hECH/LDBH/ywwR/8xLU//MS1P/zEtT/8xLU//MS1P/zEt
+ T/8xLU//MS1P/zEtT/8xLU//MS1P/zEtT/8uLU3/Li1N/y4tTf8sK0f/GBgp/xgYKf9UYm//zvv//733
+ //+Hr7n/h6+5/4evuf+CoLv/gqC7/73j//+94///XWd6/ykkOf9dZ3r/KSQ5/zY3Uv82N1L/GAgh/3OW
+ tf9KcYz/SnGM/3uevf9YcYT/QnGU/yEQIf8sMEf/LDBH/zEtT/8xLU//MS1P/zEtT/8xLU//MS1P/zEt
+ T/8xLU//MS1P/zEtT/8xLU//MS1P/zEwUv8xMFL/Li1N/ywrR/8YGCn/GBgp/xgYKf9UYm//h6+5/4ev
+ uf+Hr7n/h6+5/4Kgu/+94///veP//0Nbdf8pJDn/KSQ5/ykkOf8pJDn/NjdS/zY3Uv8YCCH/c5a1/0px
+ jP9KcYz/e6K9/1hzhP9CcZT/IRQx/ywzUf8sM1H/MTBa/zEwWv8xMFr/MTBa/zEwWv8xMFr/MTBa/zEw
+ Wv8xL13/MS9d/zEvXf8xL13/MSxa/zEsWv8xLFr/KSRH/xgYIf8YGCH/GBgh/xgYIf+rvdn/q73Z/6u9
+ 2f+rvdn/prfE/6a3xP8hJEr/ISRK/yYjQf8sKVP/LClT/zEwY/82OVf/NjlX/xgMKf9zlrX/UnWM/1J1
+ jP97or3/WHOE/0JxlP8hFDH/LDNR/ywzUf8xMFr/MTBa/zEwWv8xMFr/MTBa/zEwWv8xMFr/MTBa/zEv
+ Xf8xL13/MS9d/zEvXf8xLFr/MSxa/ykkR/8gHDT/RGKb/0Rim/8YGCH/GBgh/zFFjP9tf7L/q73Z/6u9
+ 2f9ibIX/YmyF/yEkSv8hJEr/JiNB/ywpU/8sKVP/MTBj/zY5V/82OVf/GAwp/3OWtf9SdYz/UnWM/3ui
+ vf9Yc4T/QnGU/yEUMf8sM1H/LDNR/zEwXf8xMF3/MTBd/zEwXf8xMF3/MTBd/zEwXf8xMF3/MS9d/zEv
+ Xf8xL13/MS9d/zEsWv8xLFr/KSRH/xgUIf9EYpv/WobW/1qG1v9EYpv/bX+y/zFFjP/n9///5/f//6a3
+ xP9ibIX/YmyF/yEkSv8hHDH/LClT/zEwY/8xMGP/NjlX/zY5V/8YDCn/c5a1/1J1jP9SdYz/e6K9/1hz
+ hP9CcZT/IRQx/ywzUf8sM1H/MTBj/zEwY/8xMGP/MTBj/zEwY/8xMGP/MTBj/zEwY/8xL13/MS9d/zEv
+ Xf8xLWD/MSxa/ykkR/8gHDT/GBQh/1qG1v9ahtb/WobW/0Rim/9tf7L/q73Z/+f3///n9///5////+f/
+ //9ibIX/YmyF/yEcMf8mI0H/LClT/zEwY/82OVf/NjlX/xgMKf9zlrX/UnWM/1J1jP+Eosb/XnOK/0Jx
+ lP8hFDn/LDNX/ywzV/8xMGb/MTBm/zEwZv8xMGb/MS9o/zEvaP8xL2j/MS9o/zEwY/8xMGP/MTBj/yko
+ Vf8hIDn/ISA5/yEgOf80QGr/c4bO/3OGzv9zhs7/c4bO/5Wiuf+Vorn/UVVv/1FVb/+msLz/5/f3/+f3
+ 9/9iZ33/YmiQ/ykoWv8pKFr/KSha/zY5X/82OV//GAwx/3OWvf9SeZT/UnmU/4Sixv9ec4r/QnGU/yEU
+ Of8sM1f/LDNX/zEwaP8xMGj/MTBo/zEwaP8xMGv/MTBr/zEwa/8xMGv/MTBj/zEwY/8pKFX/KShV/yEg
+ Of8hIDn/NEBq/1qCzv9zhs7/c4bO/3OGzv+Wqt7/laK5/5Wiuf9RVW//EAwp/yEgQv9iZ33/5/f3/+f3
+ 9/9iaJD/KSha/ykoWv8pKFr/Njlf/zY5X/8YDDH/c5a9/1J5lP9SeZT/hKLG/15ziv9CcZT/IRQ5/ywz
+ V/8sM1f/MTBr/zEwa/8xMGv/MTBr/zEwa/8xMGv/MTBr/zEwa/8xMGP/KShV/ykoVf8gIEf/ISA5/yEg
+ Of9ags7/WoLO/3OGzv9zhs7/lqre/97z///W6///laK5/5Wiuf8QDCn/ISBC/yEgQv9iZ33/5/f3/52r
+ yf8pKFr/KSha/ykoWv82OV//Njlf/xgMMf9zlr3/UnmU/1J5lP+Eosb/XnOK/0JxlP8hFDn/LDNX/ywz
+ V/8xMGv/MTBr/zEwa/8xMGv/MTBr/zEwa/8xMGv/MS1m/ykoVf8pKFX/ICBH/xgYOf8hIDn/WoLO/1qC
+ zv9ags7/c4bO/7vP7//e8///3vP//9br///W6///1uv//1FVb/8hIEL/ISBC/yEgQv9iZ33/1uv//yko
+ Wv8pKFr/KSha/zY5X/82OV//GAwx/3OWvf9SeZT/UnmU/4Smxv9ed4r/QnGc/yEUQv8sM2D/LDNg/zEw
+ c/8xMHP/MTBz/zEwc/8xMGv/MTBr/zEwa/8pJ1j/ISA5/yEgOf8hIDn/ISA5/2uO1v9rjtb/a47W/2uO
+ 1v+ou8n/3vv//977///e+///c3Gc/xgQUv8YEFL/NjBq/y4tbv8uLW7/Li1u/ykoUv9KSWP/NDBz/zQw
+ c/80MHP/Njlk/zY5ZP8YDDn/c5a9/2OOrf9IZ3n/hKbG/153iv9CcZz/IRRC/ywzYP8sM2D/MTBz/zEw
+ c/8xMHP/MTBz/zEwa/8xMGv/KSdY/yknWP8hIDn/ISA5/yEgOf9jmt7/a47W/2uO1v9rjtb/s9fy/977
+ ///e+///3vv//zk4Wv82MGr/NjBq/zYwav82MGr/MTB7/zEwe/8xMHv/MTB7/zQwc/80MHP/NDBz/zQw
+ c/82OWT/Njlk/xgMOf9zlr3/Y46t/0hnef+Epsb/XneK/0JxnP8hFEL/LDNg/ywzYP8xMHP/MTBz/zEw
+ c/8uLW7/MTBr/yknWP8pJ1j/IB1E/yEgOf83SG//Y5re/2Oa3v9rjtb/a47W/7PX8v/W+///3vv//977
+ //85OFr/OTha/zYwav82MGr/NjBq/zYwav8xMHv/MTB7/zEwe/8xMHv/NDBz/zQwc/80MHP/NDBz/zY5
+ ZP82OWT/GAw5/3OWvf9jjq3/SGd5/4Smxv9ed4r/QnGc/yEUQv8sM2D/LDNg/zEwc/8xMHP/Li1u/yko
+ Y/8pJ1j/IB1E/yAdRP8YFDH/N0hv/2Oa3v9jmt7/Y5re/46y4/+z1/L/1vv//9b7//+ou8n/OTha/zk4
+ Wv85OFr/NjBq/zYwav82MGr/NjBq/zEwe/8xMHv/MTB7/zEwe/80MHP/NDBz/zQwc/80MHP/Njlk/zY5
+ ZP8YDDn/c5a9/2OOrf9IZ3n/c5at/3OWrf9CcZz/IRRK/ywzZf8sM2X/MTx1/zE8df8hHEr/IRxK/xgU
+ Kf8YFCn/GBQp/0pxo/97qu//e6rv/3uq7/97qu//oLzJ/9b////W////oLzJ/ykkSv8sKV3/Li9x/zE0
+ hP8xNIH/MTSB/zE0gf8xNIH/MTSB/zE0gf8xNIH/MTSB/zE0gf8xNIH/MTSB/zE0gf82O3P/Njtz/xgM
+ Sv9zmsb/a5K1/01pf/9zlq3/c5at/0JxnP8hFEr/LDNl/ywzZf8xPHX/MTx1/yEcSv8hHEr/GBQp/zFB
+ ZP9jnt7/Y57e/3uq7/97qu//e6rv/5bG9P/W////1v///6C8yf8xNFr/LCld/zE0hP8xNIT/MTSE/zE0
+ gf8xNIH/MTSB/zE0gf8xNIH/MTSB/zE0gf8xNIH/MTSB/zE0gf8xNIH/MTSB/zY7c/82O3P/GAxK/3Oa
+ xv9rkrX/TWl//3OWrf9zlq3/QnGc/yEUSv8sM2X/LDNl/zE8df8hHEr/IRxK/yEcSv9KcaP/Y57e/2Oe
+ 3v9jnt7/e6rv/3uq7/+WxvT/zv///9b////W////MTRa/zE0Wv8xNIT/MTSE/zE0hP8xNIT/MTSG/zE0
+ hv8xNIb/MTSG/zE0hv8xNIb/MTSG/zE0hv8xNIb/MTSG/zE0hv8xNIb/Njtz/zY7c/8YDEr/c5rG/2uS
+ tf9NaX//c5at/3OWrf9CcZz/IRRK/ywzZf8sM2X/MTx1/yEcSv8xPHX/Un3O/2Oe3v9jnt7/Y57e/2Oe
+ 3v97qu//lsb0/87////O////1v///zE0Wv8xNFr/MTRa/zE0hP8xNIT/MTSE/zE0hP8xNIb/MTSG/zE0
+ hv8xNIb/MTSG/zE0hv8xNIb/MTSG/zE0hv8xNIb/MTSG/zE0hv82O3P/Njtz/xgMSv9zmsb/a5K1/01p
+ f/9zmrX/c5q1/0Jxpf8hGFL/LDVt/yw1bf85PW//IQwx/2ui7/9rou//WpLv/4Cz9P+As/T/gLP0/5q+
+ yf/O////zv///87///9KVYT/KSSE/zQ0hP80NIT/MTSM/zE0jP8xNIz/MTSM/zE0jP8xNIz/MTSM/zE0
+ jP8xNIz/MTSM/zE0jP8xNIz/MTSM/zE0jP8xNIz/MTSM/zY7eP82O3j/GAxS/3Oaxv9rlr3/TWuE/3Oa
+ tf9zmrX/QnGl/yEYUv8sNW3/LDVt/zk9b/8hDDH/a6Lv/2ui7/+As/T/gLP0/6jW+v+o1vr/zv///87/
+ ///O////ZXmQ/ykkhP80NIT/NDSE/zQ0hP8xNI//MTSP/zE0j/8xNI//MTSP/zE0j/8xNI//MTSP/zE0
+ j/8xNI//MTSP/zE0j/8xNI//MTSP/zE0j/8xNI//Njt4/zY7eP8YDFL/c5rG/2uWvf9Na4T/c5q1/3Oa
+ tf9CcaX/IRhS/yw1bf8sNW3/OT1v/yEMMf9rou//a6Lv/6jW+v+o1vr/qNb6/873///O////zv///5q+
+ yf8xOFr/NDSE/zQ0hP80NIT/NDSE/zE0kf8xNJH/MTSR/zE0kf8xNJH/MTSR/zE0kf8xNJH/MTSR/zE0
+ kf8xNJH/MTSR/zE0kf8xNJH/MTSR/zE0kf82O3j/Njt4/xgMUv9zmsb/a5a9/01rhP9zmrX/c5q1/0Jx
+ pf8hGFL/LDVt/yw1bf85PW//IQwx/2ui7/9rou//zvf//873///O9///zvf//87////O////MTha/zE4
+ Wv80NIT/NDSE/zQ0hP80NIT/MTSU/zE0lP8xNJT/MTSU/zE0lP8xNJT/MTSU/zE0lP8xNJT/MTSU/zE0
+ lP8xNJT/MTSU/zE0lP8xNJT/MTSU/zY7eP82O3j/GAxS/3Oaxv9rlr3/TWuE/3uatf97mrX/QnGl/ykY
+ Wv8xNXP/MTVz/zEse/8xLHv/q7rU/+f/////////////////////////7//v/290p/8xMIT/MTCE/zQ0
+ l/80NJf/NDSX/zQ0l/80NJf/NDSX/zQ0l/80NJf/NDSX/zQ0l/80NJf/NDSX/zQ0l/80NJf/NDSX/zQ0
+ l/80NJf/NDSX/zQ0l/80NJf/ODt9/zg7ff8YDFr/e5rG/3Oavf9TboT/e5q1/3uatf9CcaX/KRha/zE1
+ c/8xNXP/MSx7/zEse/+rutT/q7rU/7m60f+5utH/ubrR/7m60f+xu8z/MTCE/zEwhP8xMIT/NjSZ/zY0
+ mf82NJn/NjSZ/zY0mf82NJn/NjSZ/zY0mf82NJn/NjSZ/zY0mf82NJn/NjSZ/zY0mf82NJn/NjSZ/zY0
+ mf82NJn/NjSZ/zY0mf84O33/ODt9/xgMWv97msb/c5q9/1NuhP97mrX/e5q1/0Jxpf8pGFr/MTVz/zE1
+ c/8xLHv/MSx7/zEse/8xLHv/KSxz/yksc/8pLHP/KSxz/zEwhP8xMIT/MTCE/zEwhP85NJz/OTSc/zk0
+ nP85NJz/OTSc/zk0nP85NJz/OTSc/zk0nP85NJz/OTSc/zk0nP85NJz/OTSc/zk0nP85NJz/OTSc/zk0
+ nP85NJz/OTSc/zg7ff84O33/GAxa/3uaxv9zmr3/U26E/3uatf97mrX/QnGl/ykYWv8xNXP/MTVz/zEs
+ e/8xLHv/MSx7/zEse/8pLHP/KSxz/yksc/8pLHP/MTCE/zEwhP8xMIT/MTCE/zk0nP85NJz/OTSc/zk0
+ nP85NJz/OTSc/zk0nP85NJz/OTSc/zk0nP85NJz/OTSc/zk0nP85NJz/OTSc/zk0nP85NJz/OTSc/zk0
+ nP85NJz/ODt9/zg7ff8YDFr/e5rG/3Oavf9TboT/e561/3uetf86Y5j/GBQ5/yg7Z/8oO2f/JjJ2/yYy
+ dv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYy
+ dv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYy
+ dv8uPGr/Ljxq/xAQQv9rlr3/c5q9/1NuhP97nrX/e561/zpjmP8YFDn/KDtn/yg7Z/8mMnb/JjJ2/yYy
+ dv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYy
+ dv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/yYydv8mMnb/JjJ2/y48
+ av8uPGr/EBBC/2uWvf9zmr3/U26E/3uetf97nrX/OmOY/xgUOf8YFDn/GBQ5/yEMKf8hDCn/IQwp/yEM
+ Kf8hDCn/IQwp/yEMKf8hDCn/IQwp/yEMKf8hDCn/IQwp/yEMKf8hDCn/IQwp/yEMKf8hDCn/IQwp/yEM
+ Kf8hDCn/IQwp/yEMKf8hDCn/IQwp/yEMKf8hDCn/IQwp/yEMKf8hDCn/IQwp/yEMKf8hDCn/EBBC/xAQ
+ Qv8QEEL/a5a9/3Oavf9TboT/e561/3uetf9Kisb/OmOY/yg7Z/8oO2f/KUWc/ylFnP8pRZz/KUWc/ylF
+ nP8pRZz/KUWc/ylFnP8pRZz/KUWc/ylFnP8pRZz/KUWc/ylFnP8pRZz/KUWc/ylFnP8pRZz/KUWc/ylF
+ nP8pRZz/KUWc/ylFnP8pRZz/KUWc/ylFnP8pRZz/KUWc/ylFnP8pRZz/KUWc/ylFnP8uPGr/Ljxq/01q
+ lf9rlr3/c5q9/1NuhP9porH/aaKx/26ksf9upLH/bqSx/26ksf9uorH/bqKx/26isf9uorH/bqKx/26i
+ sf9uorH/bqKx/26ksf9upLH/bqSx/26ksf9upLH/bqSx/26ksf9upLH/bqKx/26isf9uorH/bqKx/26i
+ sf9uorH/bqKx/26isf9upLH/bqSx/26ksf9upLH/bqSx/26ksf9upLH/bqSx/26ksf9upLH/bqSx/26k
+ sf9plKv/aZSr/5Tn//+U5///nOv//5zr//+c6///nOv//5zn//+c5///nOf//5zn//+c5///nOf//5zn
+ //+c5///nOv//5zr//+c6///nOv//5zr//+c6///nOv//5zr//+c5///nOf//5zn//+c5///nOf//5zn
+ //+c5///nOf//5zr//+c6///nOv//5zr//+c6///nOv//5zr//+c6///nOv//5zr//+c6///nOv//5TT
+ 9/9plKv/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
+
+
\ No newline at end of file
diff --git a/App/Form/OverlayForm.Designer.cs b/App/Form/OverlayForm.Designer.cs
index b7b975d..59def08 100644
--- a/App/Form/OverlayForm.Designer.cs
+++ b/App/Form/OverlayForm.Designer.cs
@@ -35,10 +35,10 @@ private void InitializeComponent()
//
// label_DutyCount
//
- this.label_DutyCount.Font = new System.Drawing.Font("Malgun Gothic", 8.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
- this.label_DutyCount.Location = new System.Drawing.Point(1, 2);
+ this.label_DutyCount.Font = new System.Drawing.Font("맑은 고딕", 8.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+ this.label_DutyCount.Location = new System.Drawing.Point(1, 3);
this.label_DutyCount.Name = "label_DutyCount";
- this.label_DutyCount.Size = new System.Drawing.Size(259, 15);
+ this.label_DutyCount.Size = new System.Drawing.Size(258, 15);
this.label_DutyCount.TabIndex = 1;
this.label_DutyCount.Text = "총 1개 임무 매칭중";
this.label_DutyCount.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
@@ -46,10 +46,10 @@ private void InitializeComponent()
// label_DutyName
//
this.label_DutyName.AutoEllipsis = true;
- this.label_DutyName.Font = new System.Drawing.Font("Malgun Gothic", 11.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
- this.label_DutyName.Location = new System.Drawing.Point(1, 17);
+ this.label_DutyName.Font = new System.Drawing.Font("맑은 고딕", 11.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+ this.label_DutyName.Location = new System.Drawing.Point(1, 18);
this.label_DutyName.Name = "label_DutyName";
- this.label_DutyName.Size = new System.Drawing.Size(259, 25);
+ this.label_DutyName.Size = new System.Drawing.Size(258, 22);
this.label_DutyName.TabIndex = 2;
this.label_DutyName.Text = "대미궁 바하무트: 진성편 4";
this.label_DutyName.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
@@ -57,10 +57,10 @@ private void InitializeComponent()
// label_DutyStatus
//
this.label_DutyStatus.AutoEllipsis = true;
- this.label_DutyStatus.Font = new System.Drawing.Font("Malgun Gothic", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
- this.label_DutyStatus.Location = new System.Drawing.Point(1, 43);
+ this.label_DutyStatus.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+ this.label_DutyStatus.Location = new System.Drawing.Point(1, 40);
this.label_DutyStatus.Name = "label_DutyStatus";
- this.label_DutyStatus.Size = new System.Drawing.Size(259, 17);
+ this.label_DutyStatus.Size = new System.Drawing.Size(258, 15);
this.label_DutyStatus.TabIndex = 3;
this.label_DutyStatus.Text = "1/2 1/2 4/4";
this.label_DutyStatus.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
@@ -73,11 +73,11 @@ private void InitializeComponent()
this.BackColor = System.Drawing.Color.Black;
this.ClientSize = new System.Drawing.Size(260, 60);
this.ControlBox = false;
- this.Controls.Add(this.label_DutyCount);
this.Controls.Add(this.label_DutyStatus);
this.Controls.Add(this.label_DutyName);
+ this.Controls.Add(this.label_DutyCount);
this.Cursor = System.Windows.Forms.Cursors.Default;
- this.Font = new System.Drawing.Font("Malgun Gothic", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+ this.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.ForeColor = System.Drawing.Color.White;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Name = "OverlayForm";
diff --git a/App/Form/OverlayForm.cs b/App/Form/OverlayForm.cs
index 2fe544c..a95637e 100644
--- a/App/Form/OverlayForm.cs
+++ b/App/Form/OverlayForm.cs
@@ -2,6 +2,7 @@
using System.Drawing;
using System.Runtime.InteropServices;
using System.Windows.Forms;
+using System.Threading.Tasks;
namespace App
{
@@ -139,6 +140,30 @@ internal void SetDutyCount(int dutyCount)
});
}
+ internal void SetDutyStatus(byte order)
+ {
+ isMatched = false;
+ memberCount = null;
+ this.Invoke(() =>
+ {
+ label_DutyCount.SetLocalizedText("overlay-roulette");
+ if (order == 0) // 순번 대기
+ {
+ label_DutyStatus.SetLocalizedText("overlay-queue-waiting");
+ }
+ else // TODO: 순번이 1번일 때?
+ {
+ label_DutyStatus.SetLocalizedText("overlay-queue-order", order);
+ if (!isRoulette)
+ {
+ Roulette roulette = new Roulette();
+ roulette = Data.GetRoulette(0);
+ label_DutyName.Text = roulette.Name;
+ }
+ }
+ });
+ }
+
internal void SetDutyStatus(Instance instance, byte tank, byte dps, byte healer)
{
isMatched = false;
@@ -157,17 +182,17 @@ internal void SetDutyStatus(Instance instance, byte tank, byte dps, byte healer)
label_DutyStatus.SetLocalizedText("overlay-queue-waiting");
}
}
- else if (isRoulette)
+ /* else if (isRoulette)
{
- if (tank == 255) // 순번 대기
+ if (tank == 0) // 순번 대기
{
label_DutyStatus.SetLocalizedText("overlay-queue-waiting");
}
else // TODO: 순번이 1번일 때?
{
- label_DutyStatus.SetLocalizedText("overlay-queue-order", tank + 1);
+ label_DutyStatus.SetLocalizedText("overlay-queue-order", tank);
}
- }
+ } */
else
{
label_DutyName.Text = instance.Name;
@@ -176,6 +201,18 @@ internal void SetDutyStatus(Instance instance, byte tank, byte dps, byte healer)
});
}
+ internal void SetDutyStatus(byte tank, byte tankMax, byte dps, byte dpsMax, byte healer, byte healerMax) // v5.1
+ {
+ isMatched = false;
+ memberCount = null;
+ this.Invoke(() =>
+ {
+ label_DutyName.SetLocalizedText("overlay-queue-waiting");
+ label_DutyStatus.Text = $@"{tank}/{tankMax} {healer}/{healerMax} {dps}/{dpsMax}";
+ });
+ }
+
+
internal void SetRoulleteDuty(Roulette roulette)
{
isMatched = false;
@@ -202,6 +239,15 @@ internal void SetDutyAsMatched(Instance instance)
});
}
+ internal void SetDutyAsMatching()
+ {
+ this.Invoke(() =>
+ {
+ label_DutyName.SetLocalizedText("overlay-duty-count-unknown");
+ label_DutyStatus.SetLocalizedText("overlay-queue-waiting");
+ });
+ }
+
internal void SetMemberCount(byte tank, byte dps, byte healer)
{
memberCount = new byte[] { tank, dps, healer };
@@ -238,6 +284,9 @@ internal void SetFATEAsOccured(FATE fate)
internal void CancelDutyFinder()
{
this.Invoke(CancelDutyFinderSync);
+
+ if (Settings.autoHideOverlay)
+ this.Hide();
}
internal void CancelDutyFinderSync()
@@ -245,7 +294,7 @@ internal void CancelDutyFinderSync()
isMatched = true;
StopBlink();
- label_DutyCount.Text = Settings.ShowAnnouncement ? Localization.GetText("overlay-announcement") : "";
+ label_DutyCount.Text = "";
label_DutyName.SetLocalizedText("overlay-not-queuing");
label_DutyStatus.Text = "";
}
@@ -270,11 +319,34 @@ internal void StopBlink()
{
accentColor = Color.Black;
+ // 오버레이 자동 숨기기 옵션에 숨겨주고
+ if(Settings.autoHideOverlay)
+ this.Hide();
+
// 내용을 비움
CancelDutyFinder();
}
}
+ internal void instances_callback(int code)
+ {
+ if (Settings.copyMacro)
+ {
+ Task.Factory.StartNew(() =>
+ {
+ var instance = Data.GetInstance(code);
+ if (instance.Macro != null)
+ {
+ var respond = LMessageBox.Dialog(Localization.GetText("ui-settings-copymacro-dialog-text", instance.Name), Localization.GetText("ui-settings-copymacro-dialog-title"), MessageBoxButtons.YesNo, MessageBoxIcon.None, MessageBoxDefaultButton.Button1);
+ if (respond == DialogResult.Yes)
+ {
+ this.Invoke(() => { Clipboard.SetDataObject(instance.Macro, true); });
+ }
+ }
+ });
+ }
+ }
+
protected override void OnFormClosed(FormClosedEventArgs e)
{
base.OnFormClosed(e);
diff --git a/App/Global.cs b/App/Global.cs
index 4be0e1f..b6f4faf 100644
--- a/App/Global.cs
+++ b/App/Global.cs
@@ -2,16 +2,18 @@
{
internal class Global
{
- public const string VERSION = "v20170928.2";
+ public const string VERSION = "v20191104.1";
public const string APPNAME = "DFAssist";
public const string SETTINGS_FILEPATH = @"config.ini";
public const string UPDATE_TEMP_DIRPATH = @"Updates\";
- public const string GITHUB_REPO = @"devunt/DFAssist";
- public const string RAVEN_DSN = @"http://1ef7c7a5d0004eaea1815b200c2db6ba:a531662520b5493685a1789e0760e3ec@s.devunt.kr/4";
+ public const string GITHUB_REPO = @"Jaehyuk-Lee/DFAssist";
- public const string API_ENDPOINT = @"http://df.devunt.kr/";
+ public const string API_ENDPOINT = @"https://dfassist-api-node.herokuapp.com/";
+ public const string LOCALIZATION = @"https://transifex.com/dfassist/public/";
+ public const string DISCORD_INVITE = @"https://discord.gg/RqesxtS";
+ public const string TELEGRAM_BOT = @"https://telegram.me/DFAssist_Notify_Bot";
public const int BLINK_COUNT = 100;
public const int BLINK_INTERVAL = 200;
diff --git a/App/Network/Network.Analyser.cs b/App/Network/Network.Analyser.cs
index 466a973..8c074e2 100644
--- a/App/Network/Network.Analyser.cs
+++ b/App/Network/Network.Analyser.cs
@@ -3,15 +3,21 @@
using System.IO;
using System.IO.Compression;
using System.Linq;
-using System.Text;
+using System.Media;
namespace App
{
internal partial class Network
{
+ private byte rouletteCode;
private State state = State.IDLE;
private int lastMember = 0;
-
+ private int lastOrder = 0;
+ private ushort lastCode = 0;
+ internal SoundPlayer notificationPlayer;
+ private SoundPlayer fatePlayer;
+ private System.IO.Stream str = Properties.Resources.FFXIV_FATE_Start;
+
private void AnalyseFFXIVPacket(byte[] payload)
{
try {
@@ -142,7 +148,22 @@ private void HandleMessage(byte[] message)
opcode != 0x006F &&
opcode != 0x0121 &&
opcode != 0x0143 &&
- opcode != 0x022F)
+ opcode != 0x022F &&
+ // v5.1
+ opcode != 0x008F &&
+ opcode != 0x00AE &&
+ opcode != 0x00B3 &&
+ opcode != 0x015E &&
+ opcode != 0x0121 &&
+ opcode != 0x0304 &&
+ // v5.11
+ opcode != 0x0164 &&
+ opcode != 0x032D &&
+ opcode != 0x03CF &&
+ opcode != 0x02A8 &&
+ opcode != 0x032F &&
+ opcode != 0x0339 &&
+ opcode != 0x0002)
return;
#endif
@@ -153,8 +174,6 @@ private void HandleMessage(byte[] message)
var code = BitConverter.ToInt16(data, 4);
var type = data[8];
- Log.B(data);
-
if (type == 0x0B)
{
Log.I("l-field-instance-entered", Data.GetInstance(code).Name);
@@ -164,7 +183,7 @@ private void HandleMessage(byte[] message)
Log.I("l-field-instance-left");
}
- if (Settings.ShowOverlay && Settings.AutoOverlayHide)
+ /*if (Settings.ShowOverlay && Settings.AutoOverlayHide)
{
mainForm.overlayForm.Invoke(() =>
{
@@ -177,7 +196,7 @@ private void HandleMessage(byte[] message)
mainForm.overlayForm.Show();
}
});
- }
+ }*/
}
else if (opcode == 0x0143)
{
@@ -218,31 +237,47 @@ private void HandleMessage(byte[] message)
if (Settings.FATEs.Contains(code))
{
mainForm.overlayForm.SetFATEAsOccured(fate);
+ if(Settings.ShowOverlay)
+ mainForm.overlayForm.Show();
Log.I("l-fate-occured-info", fate.Name);
+ if(Settings.FateSound)
+ {
+ fatePlayer = new SoundPlayer(str);
+ fatePlayer.Stream.Position = 0; // fatePlayer가 Play()를 끝내기 전에 다시 Play()를 할 때 (한 번에 여러 돌발이 나타날 때) 버그 방지를 위해 필요한 코드
+ fatePlayer.Play();
+ }
+ else if (Settings.CustomSound)
+ {
+ notificationPlayer.Play();
+ }
+ if (!Settings.ShowOverlay)
+ {
+ mainForm.ShowNotification("notification-fate-occured", fate.Name);
+ }
+
if (Settings.FlashWindow)
{
WinApi.FlashWindow(mainForm.FFXIVProcess);
}
- if (Settings.TwitterEnabled)
+ if (Settings.TelegramEnabled)
{
- WebApi.Tweet("tweet-fate-occured", fate.Name);
+ WebApi.Request("telegram", "fate-occured", fate.Name);
+ }
+
+ if (Settings.DiscordEnabled)
+ {
+ WebApi.Request("discord", "fate-occured", fate.Name);
+ }
+
+ if (Settings.customHttpRequest && Settings.requestOnFateOccured)
+ {
+ WebApi.customHttpRequest("fate-occured", fate.Name);
}
}
}
}
- /*else if (opcode == 0x006C) // 3.5 cross-world 파티 참가하면 문제가 발생하는 부분.
- {
- var code = BitConverter.ToUInt16(data, 192);
-
- var instance = Data.GetInstance(code);
-
- state = State.QUEUED;
- mainForm.overlayForm.SetDutyCount(1);
-
- Log.I("l-queue-started-general", instance.Name);
- }*/
else if (opcode == 0x0078)
{
var status = data[0];
@@ -252,7 +287,10 @@ private void HandleMessage(byte[] message)
{
state = State.QUEUED;
- var rouletteCode = data[20];
+ rouletteCode = data[20];
+
+ if(Settings.ShowOverlay)
+ mainForm.overlayForm.Show();
if (rouletteCode != 0 && (data[15] == 0 || data[15] == 64)) //무작위 임무 신청, 한국서버/글로벌 서버
{
@@ -262,6 +300,7 @@ private void HandleMessage(byte[] message)
}
else //특정 임무 신청
{
+ rouletteCode = 0;
var instances = new List();
for (int i = 0; i < 5; i++)
@@ -298,6 +337,7 @@ private void HandleMessage(byte[] message)
mainForm.overlayForm.CancelDutyFinder();
Log.I("l-queue-entered");
+ mainForm.overlayForm.instances_callback(lastCode);
}
else if (status == 4) //글섭에서 매칭 잡혔을 때 출력
{
@@ -305,7 +345,10 @@ private void HandleMessage(byte[] message)
var code = BitConverter.ToUInt16(data, 22);
Instance instance;
-
+ if (Settings.CustomSound)
+ {
+ notificationPlayer.Play();
+ }
if (!Settings.CheatRoulette && roulette != 0)
{
instance = new Instance { Name = Data.GetRoulette(roulette).Name };
@@ -322,24 +365,121 @@ private void HandleMessage(byte[] message)
{
WinApi.FlashWindow(mainForm.FFXIVProcess);
}
- if (Settings.PlaySound && Settings.SoundLocation != "" && System.IO.File.Exists(Settings.SoundLocation))
- {
- System.Media.SoundPlayer player = new System.Media.SoundPlayer(Settings.SoundLocation);
- player.Play();
- }
+
if (!Settings.ShowOverlay)
{
mainForm.ShowNotification("notification-queue-matched", instance.Name);
}
- if (Settings.TwitterEnabled)
+ if (Settings.TelegramEnabled)
+ {
+ WebApi.Request("telegram", "duty-matched", instance.Name);
+ }
+
+ if (Settings.DiscordEnabled)
+ {
+ WebApi.Request("discord", "duty-matched", instance.Name);
+ }
+
+ if (Settings.customHttpRequest && Settings.requestOnDutyMatched)
{
- WebApi.Tweet("tweet-queue-matched", instance.Name);
+ WebApi.customHttpRequest("duty-matched", instance.Name);
}
Log.S("l-queue-matched", instance.Name);
}
}
+ else if (opcode == 0x008F || opcode == 0x0164) // v5.1, v5.11 (enroll duty)
+ {
+ var status = data[0];
+ var reason = data[4];
+
+ state = State.QUEUED;
+
+ // rouletteCode = data[20];
+ rouletteCode = data[8];
+
+ if (Settings.ShowOverlay)
+ mainForm.overlayForm.Show();
+ if (rouletteCode != 0 && (data[15] == 0 || data[15] == 64)) //무작위 임무 신청, 한국서버/글로벌 서버
+ {
+ var roulette = Data.GetRoulette(rouletteCode);
+ mainForm.overlayForm.SetRoulleteDuty(roulette);
+ Log.I("l-queue-started-roulette", roulette.Name);
+ }
+ else //특정 임무 신청
+ {
+ rouletteCode = 0;
+ var instances = new List();
+
+ for (int i = 0; i < 5; i++)
+ {
+ var code = BitConverter.ToUInt16(data, 12 + (i * 4));
+ if (code == 0)
+ {
+ break;
+ }
+ instances.Add(Data.GetInstance(code));
+ }
+ if (!instances.Any())
+ {
+ return;
+ }
+ mainForm.overlayForm.SetDutyCount(instances.Count);
+ mainForm.overlayForm.SetDutyAsMatching();
+ Log.I("l-queue-started-general",
+ string.Join(", ", instances.Select(x => x.Name).ToArray()));
+ }
+ }
+ else if (opcode == 0x00B3 || opcode == 0x032D) // v5.1, v5.11 (duty matched)
+ {
+ var roulette = rouletteCode;
+ var code = BitConverter.ToUInt16(data, 20);
+
+ Instance instance;
+ if (Settings.CustomSound)
+ {
+ notificationPlayer.Play();
+ }
+ if (!Settings.CheatRoulette && roulette != 0)
+ {
+ instance = new Instance { Name = Data.GetRoulette(roulette).Name };
+ }
+ else
+ {
+ instance = Data.GetInstance(code);
+ }
+
+ state = State.MATCHED;
+ mainForm.overlayForm.SetDutyAsMatched(instance);
+
+ if (Settings.FlashWindow)
+ {
+ WinApi.FlashWindow(mainForm.FFXIVProcess);
+ }
+
+ if (!Settings.ShowOverlay)
+ {
+ mainForm.ShowNotification("notification-queue-matched", instance.Name);
+ }
+
+ if (Settings.TelegramEnabled)
+ {
+ WebApi.Request("telegram", "duty-matched", instance.Name);
+ }
+
+ if (Settings.DiscordEnabled)
+ {
+ WebApi.Request("discord", "duty-matched", instance.Name);
+ }
+
+ if (Settings.customHttpRequest && Settings.requestOnDutyMatched)
+ {
+ WebApi.customHttpRequest("duty-matched", instance.Name);
+ }
+
+ Log.S("l-queue-matched", instance.Name);
+ }
else if (opcode == 0x006F)
{
var status = data[0];
@@ -356,7 +496,17 @@ private void HandleMessage(byte[] message)
mainForm.overlayForm.StopBlink();
}
}
- else if (opcode == 0x0121) //글로벌 서버
+ else if (opcode == 0x015E) // cancel duty
+ {
+ if (data[3] == 0 || data[3] == 8) // v5.1에서 8로 바뀌었다고 들음
+ {
+ state = State.IDLE;
+ mainForm.overlayForm.CancelDutyFinder();
+
+ Log.E("l-queue-stopped");
+ }
+ }
+ else if (opcode == 0x0121) // v5.1 commence duty
{
var status = data[5];
@@ -366,13 +516,27 @@ private void HandleMessage(byte[] message)
mainForm.overlayForm.StopBlink();
}
}
+ else if (opcode == 0x03CF) // v5.11 cancel duty
+ {
+ var status = data[0];
+
+ if (status == 0x73) // 매칭 취소
+ {
+ state = State.IDLE;
+ mainForm.overlayForm.CancelDutyFinder();
+
+ Log.D("v5.11");
+ Log.E("l-queue-stopped");
+ }
+ }
else if (opcode == 0x0079)
{
var code = BitConverter.ToUInt16(data, 0);
- var status = data[4];
- var tank = data[5];
- var dps = data[6];
- var healer = data[7];
+ var status = data[8];
+ var tank = data[9];
+ var dps = data[10];
+ var healer = data[11];
+ var order = data[4];
var instance = Data.GetInstance(code);
@@ -392,14 +556,43 @@ private void HandleMessage(byte[] message)
// 프로그램이 매칭 중간에 켜짐
state = State.QUEUED;
mainForm.overlayForm.SetDutyCount(-1); // 알 수 없음으로 설정함 (TODO: 알아낼 방법 있으면 정확히 나오게 수정하기)
- mainForm.overlayForm.SetDutyStatus(instance, tank, dps, healer);
+ if (rouletteCode > 0 || (tank == 0 && dps == 0 && healer == 0))
+ {
+ mainForm.overlayForm.SetDutyStatus(order);
+ }
+ else
+ {
+ mainForm.overlayForm.SetDutyStatus(instance, tank, dps, healer);
+ }
}
else if (state == State.QUEUED)
{
- mainForm.overlayForm.SetDutyStatus(instance, tank, dps, healer);
+ if (rouletteCode > 0 || (tank == 0 && dps == 0 && healer == 0))
+ {
+ mainForm.overlayForm.SetDutyStatus(order);
+ }
+ else
+ {
+ mainForm.overlayForm.SetDutyStatus(instance, tank, dps, healer);
+ }
+ }
+
+ // 직전 맴버 구성과 같은 상황이면 알림주지 않음
+ if (Settings.TelegramEnabled && Settings.TelegramQueueStatusEnabled)
+ {
+ if (rouletteCode == 0 && lastMember != member || !(tank == 0 && dps == 0 && healer == 0)) // 무작위 임무가 아님 (Not roulette duty)
+ {
+ WebApi.Request("telegram", "duty-status", $"{instance.Name}, {tank}/{instance.Tank}, {healer}/{instance.Healer}, {dps}/{instance.DPS}");
+ }
+ else if (order != 0 && lastOrder != order) // 매칭 현황을 받아오는 중이면 제외 (except 'retrieving information')
+ {
+ var roulette = Data.GetRoulette(rouletteCode);
+ WebApi.Request("telegram", "duty-status-roulette", $"{roulette.Name} - #{order}");
+ }
}
lastMember = member;
+ lastOrder = order;
}
else if (status == 2)
{
@@ -413,16 +606,113 @@ private void HandleMessage(byte[] message)
// 매칭 뒤 참가자 확인 현황 패킷
mainForm.overlayForm.SetConfirmStatus(instance, tank, dps, healer);
}
+ lastCode = code;
Log.I("l-queue-updated", instance.Name, status, tank, instance.Tank, healer, instance.Healer, dps,
instance.DPS);
}
+ else if (opcode == 0x0304)
+ {
+ //var code = BitConverter.ToUInt16(data, 0); // 이제 던전 안알려줌. 대신 max 인원 알려줌.
+ //var status = data[8];
+ var order = data[6];
+ var waitTime = data[7];
+ var tank = data[8];
+ var tankMax = data[9];
+ var healer = data[10];
+ var healerMax = data[11];
+ var dps = data[12];
+ var dpsMax = data[13];
+
+ //var instance = Data.GetInstance(code);
+
+ //if (status == 1)
+ //{
+ // 인원 현황 패킷
+ var member = tank * 10000 + dps * 100 + healer;
+
+ if (state == State.MATCHED && lastMember != member)
+ {
+ // 매칭도중일 때 인원 현황 패킷이 오고 마지막 인원 정보와 다른 경우에 누군가에 의해 큐가 취소된 경우.
+ state = State.QUEUED;
+ mainForm.overlayForm.CancelDutyFinder();
+ }
+ else if (state == State.IDLE)
+ {
+ // 프로그램이 매칭 중간에 켜짐
+ state = State.QUEUED;
+ mainForm.overlayForm.SetDutyCount(-1); // 알 수 없음으로 설정함 (TODO: 알아낼 방법 있으면 정확히 나오게 수정하기)
+ if (rouletteCode > 0)
+ {
+ mainForm.overlayForm.SetDutyStatus(order);
+ }
+ else
+ {
+ mainForm.overlayForm.SetDutyStatus(tank, tankMax, dps, dpsMax, healer, healerMax);
+ }
+ }
+ else if (state == State.QUEUED)
+ {
+ if (rouletteCode > 0)
+ {
+ mainForm.overlayForm.SetDutyStatus(order);
+ }
+ else
+ {
+ mainForm.overlayForm.SetDutyStatus(tank, tankMax, dps, dpsMax, healer, healerMax);
+ }
+ }
+
+ // 직전 맴버 구성과 같은 상황이면 알림주지 않음
+ if (Settings.TelegramEnabled && Settings.TelegramQueueStatusEnabled)
+ {
+ if (rouletteCode == 0 && lastMember != member || !(tank == 0 && dps == 0 && healer == 0)) // 무작위 임무가 아님 (Not roulette duty)
+ {
+ WebApi.Request("telegram", "duty-status", $"{tank}/{tankMax}, {healer}/{healerMax}, {dps}/{dpsMax}");
+ }
+ else if (order != 0 && lastOrder != order) // 매칭 현황을 받아오는 중이면 제외 (except 'retrieving information')
+ {
+ var roulette = Data.GetRoulette(rouletteCode);
+ WebApi.Request("telegram", "duty-status-roulette", $"{roulette.Name} - #{order}");
+ }
+ }
+
+ lastMember = member;
+ lastOrder = order;
+ //}
+ /*else if (status == 2)
+ {
+ // 현재 매칭된 파티의 역할별 인원 수 정보
+ // 조율 해제 상태여도 역할별로 정확히 날아옴
+ mainForm.overlayForm.SetMemberCount(tank, dps, healer);
+ return;
+ }*/
+ Log.I("l-queue-updated", "", /*status*/1, tank, tankMax, healer, healerMax, dps, dpsMax);
+ }
+ else if (opcode == 0x00AE || opcode == 0x032F) // v5.1, v5.11 매칭 뒤 참가자 확인 현황 패킷
+ {
+ var code = BitConverter.ToUInt16(data, 8);
+ var tank = data[12];
+ var healer = data[14];
+ var dps = data[16];
+
+ var instance = Data.GetInstance(code);
+
+ mainForm.overlayForm.SetConfirmStatus(instance, tank, dps, healer);
+
+ lastCode = code;
+ Log.I("l-queue-updated", instance.Name, 4, tank, instance.Tank, healer, instance.Healer, dps,
+ instance.DPS);
+ }
else if (opcode == 0x0080)
{
var roulette = data[2];
var code = BitConverter.ToUInt16(data, 4);
Instance instance;
-
+ if (Settings.CustomSound)
+ {
+ notificationPlayer.Play();
+ }
if (!Settings.CheatRoulette && roulette != 0)
{
instance = new Instance { Name = Data.GetRoulette(roulette).Name };
@@ -445,9 +735,19 @@ private void HandleMessage(byte[] message)
mainForm.ShowNotification("notification-queue-matched", instance.Name);
}
- if (Settings.TwitterEnabled)
+ if (Settings.TelegramEnabled)
+ {
+ WebApi.Request("telegram", "duty-matched", instance.Name);
+ }
+
+ if (Settings.DiscordEnabled)
+ {
+ WebApi.Request("discord", "duty-matched", instance.Name);
+ }
+
+ if (Settings.customHttpRequest && Settings.requestOnDutyMatched)
{
- WebApi.Tweet("tweet-queue-matched", instance.Name);
+ WebApi.customHttpRequest("duty-matched", instance.Name);
}
Log.S("l-queue-matched", instance.Name);
diff --git a/App/Network/Network.cs b/App/Network/Network.cs
index be02559..d1f2216 100644
--- a/App/Network/Network.cs
+++ b/App/Network/Network.cs
@@ -146,6 +146,8 @@ internal void UpdateGameConnections(Process process)
connections = currentConnections.Where(x => !x.remoteEndPoint.Equals(lobbyEndPoint)).ToList();
+ mainForm.overlayForm.SetStatus(true);
+
foreach (var connection in connections)
{
Log.I("l-network-detected-connection", connection.ToString());
@@ -358,8 +360,8 @@ private List GetConnections(Process process)
{
var local = new IPEndPoint(row.localAddr, (ushort)IPAddress.NetworkToHostOrder((short)row.localPort));
var remote = new IPEndPoint(row.remoteAddr, (ushort)IPAddress.NetworkToHostOrder((short)row.remotePort));
-
- connections.Add(new Connection() { localEndPoint = local, remoteEndPoint = remote });
+ if(!remote.Address.Equals(IPAddress.Parse("127.0.0.1")) || Settings.useVPN) // 원격 IP가 127.0.0.1(자기 컴퓨터)이면 커넥션 목록에 추가하지 않음
+ connections.Add(new Connection() { localEndPoint = local, remoteEndPoint = remote });
}
rowPtr = new IntPtr(rowPtr.ToInt64() + Marshal.SizeOf(typeof(TcpRow)));
diff --git a/App/Program.cs b/App/Program.cs
index 7b66ade..053757f 100644
--- a/App/Program.cs
+++ b/App/Program.cs
@@ -29,9 +29,6 @@ private static void Main()
private static void AppStart()
{
-#if !DEBUG
- Sentry.Initialise();
-#endif
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
diff --git a/App/Properties/AssemblyInfo.cs b/App/Properties/AssemblyInfo.cs
index 5db4dc0..9c6d9b2 100644
--- a/App/Properties/AssemblyInfo.cs
+++ b/App/Properties/AssemblyInfo.cs
@@ -9,7 +9,7 @@
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("")]
-[assembly: AssemblyCopyright("Copyright © 2017")]
+[assembly: AssemblyCopyright("Copyright © 2018")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
diff --git a/App/Properties/Resources.Designer.cs b/App/Properties/Resources.Designer.cs
index 864b750..1299f90 100644
--- a/App/Properties/Resources.Designer.cs
+++ b/App/Properties/Resources.Designer.cs
@@ -1,10 +1,10 @@
//------------------------------------------------------------------------------
//
-// This code was generated by a tool.
-// Runtime Version:4.0.30319.42000
+// 이 코드는 도구를 사용하여 생성되었습니다.
+// 런타임 버전:4.0.30319.42000
//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
+// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
+// 이러한 변경 내용이 손실됩니다.
//
//------------------------------------------------------------------------------
@@ -13,13 +13,13 @@ namespace App.Properties {
///
- /// A strongly-typed resource class, for looking up localized strings, etc.
+ /// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다.
///
- // This class was auto-generated by the StronglyTypedResourceBuilder
- // class via a tool like ResGen or Visual Studio.
- // To add or remove a member, edit your .ResX file then rerun ResGen
- // with the /str option, or rebuild your VS project.
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
+ // 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder
+ // 클래스에서 자동으로 생성되었습니다.
+ // 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을
+ // 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
@@ -33,7 +33,7 @@ internal Resources() {
}
///
- /// Returns the cached ResourceManager instance used by this class.
+ /// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다.
///
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
@@ -47,8 +47,8 @@ internal Resources() {
}
///
- /// Overrides the current thread's CurrentUICulture property for all
- /// resource lookups using this strongly typed resource class.
+ /// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을
+ /// 재정의합니다.
///
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
@@ -61,34 +61,70 @@ internal Resources() {
}
///
- /// Looks up a localized string similar to {
+ /// {
/// // Version
- /// "version": "20170905.1",
+ /// "version": "20191030.1",
///
/// // Duty
/// "instances": {
/// // 2.0 A Realm Reborn
/// // 2.0 Dungeons
- /// "157": {
+ /// "4": {
/// "name": "Sastasha",
/// "tank": "1",
/// "healer": "1",
/// "dps": "2"
/// },
- /// "158": {
+ /// "8": {
+ /// "name": "Brüllvolx' Langrast",
+ /// "tank": "1",
+ /// "healer": "1",
+ /// "dps": "2"
+ /// },
+ /// "10": {
+ /// "name": "Palast des Wanderers",
+ /// "tank": "1",
+ /// "healer": "1",
+ /// "dps": "2"
+ /// },
+ /// "3": {
+ /// "name": "Kupferglocken-Mi[나머지 문자열은 잘림]";과(와) 유사한 지역화된 문자열을 찾습니다.
+ ///
+ internal static string Data_DE_DE {
+ get {
+ return ResourceManager.GetString("Data_DE_DE", resourceCulture);
+ }
+ }
+
+ ///
+ /// {
+ /// // Version
+ /// "version": "20191030.1",
+ ///
+ /// // Duty
+ /// "instances": {
+ /// // 2.0 A Realm Reborn
+ /// // 2.0 Dungeons
+ /// "4": {
+ /// "name": "Sastasha",
+ /// "tank": "1",
+ /// "healer": "1",
+ /// "dps": "2"
+ /// },
+ /// "8": {
/// "name": "Brayflox's Longstop",
/// "tank": "1",
/// "healer": "1",
/// "dps": "2"
/// },
- /// "159": {
+ /// "10": {
/// "name": "The Wanderer's Palace",
/// "tank": "1",
/// "healer": "1",
/// "dps": "2"
/// },
- /// "161": {
- /// "name": "Copperbe [rest of string was truncated]";.
+ /// "3": {
+ /// "name": "Copperbell Mine[나머지 문자열은 잘림]";과(와) 유사한 지역화된 문자열을 찾습니다.
///
internal static string Data_EN_US {
get {
@@ -97,34 +133,34 @@ internal static string Data_EN_US {
}
///
- /// Looks up a localized string similar to {
+ /// {
/// // Version
- /// "version": "20170906.1",
+ /// "version": "20191030.1",
///
/// // Duty
/// "instances": {
/// // 2.0 A Realm Reborn
/// // 2.0 Dungeons
- /// "157": {
+ /// "4": {
/// "name": "Sastasha",
/// "tank": "1",
/// "healer": "1",
/// "dps": "2"
/// },
- /// "158": {
+ /// "8": {
/// "name": "le Bivouac de Brayflox",
/// "tank": "1",
/// "healer": "1",
/// "dps": "2"
/// },
- /// "159": {
+ /// "10": {
/// "name": "le Palais du Vagabond",
/// "tank": "1",
/// "healer": "1",
/// "dps": "2"
/// },
- /// "161": {
- /// "name": "les M [rest of string was truncated]";.
+ /// "3": {
+ /// "name": "les Mines de[나머지 문자열은 잘림]";과(와) 유사한 지역화된 문자열을 찾습니다.
///
internal static string Data_FR_FR {
get {
@@ -135,32 +171,33 @@ internal static string Data_FR_FR {
///
/// {
/// // Version
- /// "version": "20170905.1",
+ /// "version": "20191030.1",
///
/// // Duty
/// "instances": {
/// // 2.0 A Realm Reborn
/// // 2.0 Dungeons
- /// "157": {
- /// "name": "Sastasha",
+ /// "4": {
+ /// "name": "天然要害 サスタシャ浸食洞",
/// "tank": "1",
/// "healer": "1",
/// "dps": "2"
/// },
- /// "158": {
- /// "name": "Brayflox's Longstop",
+ /// "8": {
+ /// "name": "奪還支援 ブレイフロクスの野営地",
/// "tank": "1",
/// "healer": "1",
/// "dps": "2"
/// },
- /// "159": {
- /// "name": "The Wanderer's Palace",
+ /// "10": {
+ /// "name": "旅神聖域 ワンダラーパレス",
/// "tank": "1",
/// "healer": "1",
/// "dps": "2"
/// },
- /// "161": {
- /// "name": "Copperbe [残りの文字列は切り詰められました]"; に類似しているローカライズされた文字列を検索します。
+ /// "3": {
+ /// "name": "封鎖坑道 カッパーベル銅山",
+ /// [나머지 문자열은 잘림]";과(와) 유사한 지역화된 문자열을 찾습니다.
///
internal static string Data_JA_JP {
get {
@@ -171,34 +208,35 @@ internal static string Data_JA_JP {
///
/// {
/// // 버전
- /// "version": "20170905.1",
+ /// "version": "20191030.1",
///
/// // 임무
/// "instances": {
/// // 2.0 신생 에오르제아
/// // 2.0 던전
- /// "157": {
+ /// "4": {
/// "name": "사스타샤 침식 동굴",
/// "tank": "1",
/// "healer": "1",
/// "dps": "2"
/// },
- /// "158": {
+ /// "8": {
/// "name": "브레이플록스의 야영지",
/// "tank": "1",
/// "healer": "1",
/// "dps": "2"
/// },
- /// "159": {
+ /// "10": {
/// "name": "방랑자의 궁전",
/// "tank": "1",
/// "healer": "1",
/// "dps": "2"
/// },
- /// "161": {
+ /// "3": {
/// "name": "구리종 광산",
/// "tank": "1",
- /// "healer": " [rest of string was truncated]";.
+ /// "healer": "1",
+ /// [나머지 문자열은 잘림]";과(와) 유사한 지역화된 문자열을 찾습니다.
///
internal static string Data_KO_KR {
get {
@@ -207,8 +245,52 @@ internal static string Data_KO_KR {
}
///
- /// Looks up a localized string similar to {
- /// "app-name": "Duty/FATE Notificator",
+ /// System.IO.MemoryStream과(와) 유사한 System.IO.UnmanagedMemoryStream 형식의 지역화된 리소스를 찾습니다.
+ ///
+ internal static System.IO.UnmanagedMemoryStream FFXIV_FATE_Start {
+ get {
+ return ResourceManager.GetStream("FFXIV_FATE_Start", resourceCulture);
+ }
+ }
+
+ ///
+ /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
+ ///
+ internal static System.Drawing.Bitmap language2 {
+ get {
+ object obj = ResourceManager.GetObject("language2", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// {
+ /// "app-name": "Duty/FATE-Assistent",
+ ///
+ ///
+ /// "unknown-instance": "Unbekannter Inhalt ({0})",
+ /// "unknown-roulette": "Unbekannter Zufallsinhalt ({0})",
+ /// "unknown-area": "Unbekannter Bereich ({0})",
+ /// "unknown-fate": "Unbekanntes FATE ({0})",
+ ///
+ ///
+ /// "notification-app-updated": "Auf Version {0} aktualisiert",
+ /// "notification-queue-matched": "Gruppe für < {0} > gefunden!",
+ /// "notification-fate-occured": "FATE < {0} > erschienen!",
+ ///
+ ///
+ /// "fate-occured": "< {0} > FATE erschienen!",
+ /// "queue-matched": "< [나머지 문자열은 잘림]";과(와) 유사한 지역화된 문자열을 찾습니다.
+ ///
+ internal static string Localization_DE_DE {
+ get {
+ return ResourceManager.GetString("Localization_DE_DE", resourceCulture);
+ }
+ }
+
+ ///
+ /// {
+ /// "app-name": "Duty/FATE Notifier",
///
///
/// "unknown-instance": "Unknown Duty ({0})",
@@ -219,14 +301,14 @@ internal static string Data_KO_KR {
///
/// "notification-app-updated": "Version {0} Updated",
/// "notification-queue-matched": "< {0} > Matched!",
+ /// "notification-fate-occured": "< {0} > Occured!",
///
///
- /// "tweet-fate-occured": "< {0} > FATE Occured!",
- /// "tweet-queue-matched": "< {0} > Matched!",
+ /// "fate-occured": "< {0} > FATE spawned!",
+ /// "queue-matched": "< {0} > Duty matched!",
///
///
- /// "fate-preset-animus-SkyfireI": "Book of Skyfire I",
- /// "fate-preset-anim [rest of string was truncated]";.
+ /// "fate-preset-animus-SkyfireI":[나머지 문자열은 잘림]";과(와) 유사한 지역화된 문자열을 찾습니다.
///
internal static string Localization_EN_US {
get {
@@ -235,7 +317,7 @@ internal static string Localization_EN_US {
}
///
- /// Looks up a localized string similar to {
+ /// {
/// "app-name": "Notificateur Mission/ALEA",
///
///
@@ -247,13 +329,14 @@ internal static string Localization_EN_US {
///
/// "notification-app-updated": "Mise à jour version {0}",
/// "notification-queue-matched": "< {0} > disponible!",
+ /// "notification-fate-occured": "< {0} > en cours!",
///
///
- /// "tweet-fate-occured": "ALEA < {0} > en cours!",
- /// "tweet-queue-matched": "< {0} > disponible!",
+ /// "fate-occured": "ALEA < {0} > en cours!",
+ /// "queue-matched": "< {0} > disponible!",
///
///
- /// "fate-preset-animus-SkyfireI": "Book of Sk [rest of string was truncated]";.
+ /// "[나머지 문자열은 잘림]";과(와) 유사한 지역화된 문자열을 찾습니다.
///
internal static string Localization_FR_FR {
get {
@@ -263,26 +346,26 @@ internal static string Localization_FR_FR {
///
/// {
- /// "app-name": "Duty/FATE Notificator",
+ /// "app-name": "Duty/FATE Notifier",
///
///
- /// "unknown-instance": "不明なコンテンツ ({0})",
- /// "unknown-roulette": "不明なルーレット ({0})",
- /// "unknown-area": "不明なエリア ({0})",
- /// "unknown-fate": "不明なFATE ({0})",
+ /// "unknown-instance": "不明なコンテンツ ({0})",
+ /// "unknown-roulette": "不明なルーレット ({0})",
+ /// "unknown-area": "不明なエリア ({0})",
+ /// "unknown-fate": "不明なFATE ({0})",
///
///
- /// "notification-app-updated": "バージョン {0} に更新されました",
- /// "notification-queue-matched": "< {0} > 突入準備完了!",
+ /// "notification-app-updated": "バージョン {0} に更新されました",
+ /// "notification-queue-matched": "< {0} > 突入準備完了!",
+ /// "notification-fate-occured": "< {0} > 発生!",
///
///
- /// "tweet-fate-occured": "< {0} > FATE 発生!",
- /// "tweet-queue-matched": "< {0} > 突入準備完了!",
+ /// "fate-occured": "< {0} > FATE発生!",
+ /// "queue-matched": "< {0} > 突入準備完了!",
///
///
- /// "fate-preset-animus-SkyfireI": "Book of Skyfire I",
- /// "fate-preset-animus-SkyfireII": "Book of Skyfire II",
- /// "fa [残りの文字列は切り詰められました]"; に類似しているローカライズされた文字列を検索します。
+ /// "fate-preset-animus-SkyfireI": "炎天一巻",
+ /// "fate-preset-animus-SkyfireII"[나머지 문자열은 잘림]";과(와) 유사한 지역화된 문자열을 찾습니다.
///
internal static string Localization_JA_JP {
get {
@@ -303,20 +386,78 @@ internal static string Localization_JA_JP {
///
/// "notification-app-updated": "버전 {0} 업데이트됨",
/// "notification-queue-matched": "< {0} > 매칭!",
+ /// "notification-fate-occured": "< {0} > 발생!",
///
///
- /// "tweet-fate-occured": "< {0} > 돌발 발생!",
- /// "tweet-queue-matched": "< {0} > 매칭!",
- ///
+ /// "fate-occured": "< {0} > 돌발 발생!",
+ /// "queue-matched": "< {0} > 매칭!",
///
+ ///
/// "fate-preset-animus-SkyfireI": "불의 서 1권",
- /// "fate-preset-animus-SkyfireII": "불의 서 2권",
- /// "fate-preset-animus-Nether [rest of string was truncated]";.
+ /// "fate-preset-animus-SkyfireII": "불의[나머지 문자열은 잘림]";과(와) 유사한 지역화된 문자열을 찾습니다.
///
internal static string Localization_KO_KR {
get {
return ResourceManager.GetString("Localization_KO_KR", resourceCulture);
}
}
+
+ ///
+ /// {
+ /// "app-name": "Duty/FATE Notifier",
+ ///
+ ///
+ /// "unknown-instance": "Неизвестный Duty ({0})",
+ /// "unknown-roulette": "Неизвестная Рулетка ({0})",
+ /// "unknown-area": "Неизвестная Область ({0})",
+ /// "unknown-fate": "Неизвестный FATE ({0})",
+ ///
+ ///
+ /// "notification-app-updated": "Версия {0} Обновлена",
+ /// "notification-queue-matched": "< {0} > Собрана!",
+ /// "notification-fate-occured": "< {0} > Состоялся!",
+ ///
+ ///
+ /// "fate-occured": "< {0} > FATE Заспавнился!",
+ /// "queue-matched": "< {0} > Duty подобран!",
+ ///
+ ///
+ /// "fat[나머지 문자열은 잘림]";과(와) 유사한 지역화된 문자열을 찾습니다.
+ ///
+ internal static string Localization_RU_RU {
+ get {
+ return ResourceManager.GetString("Localization_RU_RU", resourceCulture);
+ }
+ }
+
+ ///
+ /// {
+ /// "app-name": "任务/危命通知器",
+ ///
+ ///
+ /// "unknown-instance": "未知任务 ({0})",
+ /// "unknown-roulette": "未知随机任务 ({0})",
+ /// "unknown-area": "未知区域 ({0})",
+ /// "unknown-fate": "未知危命 ({0})",
+ ///
+ ///
+ /// "notification-app-updated": "版本 {0} 已更新",
+ /// "notification-queue-matched": "「{0}」匹配成功!",
+ /// "notification-fate-occured": "「{0}」出现!",
+ ///
+ ///
+ /// "fate-occured": "「{0}」危命已出现!",
+ /// "queue-matched": "「{0}」任务匹配成功!",
+ ///
+ ///
+ /// "fate-preset-animus-SkyfireI": "火天文书 第一卷",
+ /// "fate-preset-animus-SkyfireII": "火天文书 第二卷",
+ /// "fate-preset-animus-NetherfireI": "火狱文书 第一卷"[나머지 문자열은 잘림]";과(와) 유사한 지역화된 문자열을 찾습니다.
+ ///
+ internal static string Localization_ZH_CN {
+ get {
+ return ResourceManager.GetString("Localization_ZH_CN", resourceCulture);
+ }
+ }
}
}
diff --git a/App/Properties/Resources.resx b/App/Properties/Resources.resx
index 1a992b2..fc42302 100644
--- a/App/Properties/Resources.resx
+++ b/App/Properties/Resources.resx
@@ -121,25 +121,43 @@
..\resources\data\en-us.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8
+
+ ..\resources\localization\fr-fr.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8
+
+
+ ..\resources\localization\ko-kr.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8
+
+
+ ..\resources\data\ja-jp.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8
+
+
+ ..\resources\localization\ja-jp.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8
+
..\resources\data\fr-fr.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8
..\resources\data\ko-kr.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8
-
- ..\resources\data\ja-jp.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8
-
..\resources\localization\en-us.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8
-
- ..\resources\localization\fr-fr.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8
+
+ ..\Resources\language2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
- ..\resources\localization\ko-kr.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8
+
+ ..\Resources\FFXIV_FATE_Start.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- ..\resources\localization\ja-jp.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8
+
+ ..\Resources\Data\de-de.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8
+
+
+ ..\Resources\Localization\de-de.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8
+
+
+ ..\Resources\Localization\ru-ru.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8
+
+
+ ..\Resources\Localization\zh-cn.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8
\ No newline at end of file
diff --git a/App/Resources/Data/de-de.json b/App/Resources/Data/de-de.json
new file mode 100644
index 0000000..8d9ecfa
--- /dev/null
+++ b/App/Resources/Data/de-de.json
@@ -0,0 +1,3605 @@
+{
+ // Version
+ "version": "20191030.1",
+
+ // Duty
+ "instances": {
+ // 2.0 A Realm Reborn
+ // 2.0 Dungeons
+ "4": {
+ "name": "Sastasha",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "8": {
+ "name": "Brüllvolx' Langrast",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "10": {
+ "name": "Palast des Wanderers",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "3": {
+ "name": "Kupferglocken-Mine",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "7": {
+ "name": "Halatali",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "9": {
+ "name": "Versunkener Tempel von Qarn",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "2": {
+ "name": "Totenacker Tam-Tara",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "6": {
+ "name": "Haukke-Herrenhaus",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "14": {
+ "name": "Die Ruinen von Amdapor",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "11": {
+ "name": "Steinerne Wacht",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "1": {
+ "name": "Tausend Löcher von Toto-Rak",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "12": {
+ "name": "Sägerschrei",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "13": {
+ "name": "Die Feste Dzemael",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "5": {
+ "name": "Goldklamm",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "15": {
+ "name": "Castrum Meridianum - Außenbereich",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "16": {
+ "name": "Castrum Meridianum - Praetorium",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 2.0 Trials
+ "56": {
+ "name": "Das Grab der Lohe",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "57": {
+ "name": "Der Nabel",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "58": {
+ "name": "Das Tosende Auge",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "59": {
+ "name": "Götterdämmerung - Ifrit",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "60": {
+ "name": "Götterdämmerung - Titan",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "61": {
+ "name": "Götterdämmerung - Garuda",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "62": {
+ "name": "Kap Westwind",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+
+ // 2.1 A Realm Awoken
+ // 2.1 Dungeons
+ "17": {
+ "name": "Pharos Sirius",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "18": {
+ "name": "Kupferglocken-Mine (schwer)",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "19": {
+ "name": "Haukke-Herrenhaus (schwer)",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+
+ // 2.1 Trials
+ "66": {
+ "name": "Königliche Konfrontation (schwer)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "63": {
+ "name": "Zenit der Götter - Ifrit",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "64": {
+ "name": "Zenit der Götter - Titan",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "65": {
+ "name": "Zenit der Götter - Garuda",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "68": {
+ "name": "Heldenlied von Ultima",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ // 2.16 Trials
+ "74": {
+ "name": "Kampf gegen die Dhorme-Chimära",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "75": {
+ "name": "Kampf gegen die Hydra",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 2.1 Raids
+ "92": {
+ "name": "Kristallturm - Das Labyrinth der Alten",
+ "tank": "3",
+ "healer": "6",
+ "dps": "15"
+ },
+ "93": {
+ "name": "Verschlungene Schatten 1",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "94": {
+ "name": "Verschlungene Schatten 2",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "95": {
+ "name": "Verschlungene Schatten 3",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "96": {
+ "name": "Verschlungene Schatten 4",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "97": {
+ "name": "Verschlungene Schatten 5",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+
+ // 2.2 Through the Maelstrom
+ // 2.2 Dungeons
+ "22": {
+ "name": "Historisches Amdapor",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "21": {
+ "name": "Halatali (schwer)",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "20": {
+ "name": "Brüllvolx' Langrast (schwer)",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+
+ // 2.2 Trials
+ "72": {
+ "name": "Götterdämmerung - Leviathan",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "73": {
+ "name": "Zenit der Götter - Leviathan",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "67": {
+ "name": "Königliche Konfrontation (extrem)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "76": {
+ "name": "Duell auf der großen Brücke",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 2.2 Raids
+ "98": {
+ "name": "Verschlungene Schatten 2 - 1",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "99": {
+ "name": "Verschlungene Schatten 2 - 2",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "100": {
+ "name": "Verschlungene Schatten 2 - 3",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "101": {
+ "name": "Verschlungene Schatten 2 - 4",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+
+ // 2.3 Defenders of Eorzea
+ // 2.3 Dungeons
+ "23": {
+ "name": "Schiffbrecher-Insel",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "25": {
+ "name": "Steinerne Wacht (schwer)",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "24": {
+ "name": "Totenacker Tam-Tara (schwer)",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+
+ // 2.3 Trials
+ "77": {
+ "name": "Götterdämmerung - Ramuh",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "78": {
+ "name": "Zenit der Götter - Ramuh",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 2.3 Raids
+ "102": {
+ "name": "Kristallturm - Der Syrcus-Turm",
+ "tank": "3",
+ "healer": "6",
+ "dps": "15"
+ },
+ "103": {
+ "name": "Verschlungene Schatten 2 - 1 (episch)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "104": {
+ "name": "Verschlungene Schatten 2 - 2 (episch)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "105": {
+ "name": "Verschlungene Schatten 2 - 3 (episch)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "106": {
+ "name": "Verschlungene Schatten 2 - 4 (episch)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+
+ // 2.4 Dreams of Ice
+ // 2.4 Dungeons
+ "27": {
+ "name": "Das Schneekleid",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "26": {
+ "name": "Versunkener Tempel von Qarn (schwer)",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "28": {
+ "name": "Sastasha (schwer)",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+
+ // 2.4 Trials
+ "79": {
+ "name": "Götterdämmerung - Shiva",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "80": {
+ "name": "Zenit der Götter - Shiva",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "81": {
+ "name": "Das Drachenhals-Kolosseum",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 2.4 Raids
+ "107": {
+ "name": "Verschlungene Schatten 3 - 1",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "108": {
+ "name": "Verschlungene Schatten 3 - 2",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "109": {
+ "name": "Verschlungene Schatten 3 - 3",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "110": {
+ "name": "Verschlungene Schatten 3 - 4",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+
+ // 2.5 Before the Fall
+ // 2.5 Dungeons
+ "32": {
+ "name": "Hüter des Sees",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "30": {
+ "name": "Palast des Wanderers (schwer)",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "29": {
+ "name": "Die Ruinen von Amdapor (schwer)",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+
+ // 2.5 Trials
+ "84": {
+ "name": "Chrysalis",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "82": {
+ "name": "Jenseits Urths Quelle",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "85": {
+ "name": "Revanche in den Ruinen",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ // 2.55 Trials
+ "83": {
+ "name": "Der Schicksalsweg",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 2.5 Raids
+ "111": {
+ "name": "Die Welt der Dunkelheit",
+ "tank": "3",
+ "healer": "6",
+ "dps": "15"
+ },
+
+
+ // 3.0 Heavensward
+ // 3.0 Dungeons
+ "39": {
+ "name": "Nest des Drachen",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "31": {
+ "name": "Große Gubal-Bibliothek",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "34": {
+ "name": "Erzbasilika",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "35": {
+ "name": "Die Fraktal-Kontinuum",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "36": {
+ "name": "Abendrot-Wacht",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "38": {
+ "name": "Ätherochemisches Forschungslabor",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "37": {
+ "name": "Sohm Al",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "33": {
+ "name": "Nimmerreich",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+
+ // 3.0 Trials
+ "86": {
+ "name": "Götterdämmerung - Ravana",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "88": {
+ "name": "Götterdämmerung - Bismarck",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "90": {
+ "name": "Singularitäts-Reaktor",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "87": {
+ "name": "Zenit der Götter - Ravana",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "89": {
+ "name": "Zenit der Götter - Bismarck",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 3.01 Raids
+ "112": {
+ "name": "Alexander - Faust des Vaters",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "113": {
+ "name": "Alexander - Elle des Vaters",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "114": {
+ "name": "Alexander - Arm des Vaters",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "115": {
+ "name": "Alexander - Last des Vaters",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ // 3.05 Raids
+ "116": {
+ "name": "A - Faust des Vaters (episch)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "117": {
+ "name": "A - Elle des Vaters (episch)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "118": {
+ "name": "A - Arm des Vaters (episch)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "119": {
+ "name": "A - Last des Vaters (episch)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+
+ // 3.1 As Goes Light So Goes Darkness
+ // 3.1 Dungeons
+ "40": {
+ "name": "Pharos Sirius (schwer)",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "41": {
+ "name": "Sankt Mocianne-Arboretum",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+
+ // 3.1 Trials
+ "91": {
+ "name": "Heldenlied von Thordans Fall",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 3.1 Raids
+ "120": {
+ "name": "Die Nichts-Arche",
+ "tank": "3",
+ "healer": "6",
+ "dps": "15"
+ },
+
+ // 3.1 Party Contents
+ "131": {
+ "name": "Diadem (leicht)",
+ "tank": "1",
+ "healer": "2",
+ "dps": "5"
+ },
+ "132": {
+ "name": "Diadem",
+ "tank": "1",
+ "healer": "2",
+ "dps": "5"
+ },
+ "133": {
+ "name": "Diadem (schwer)",
+ "tank": "1",
+ "healer": "2",
+ "dps": "5"
+ },
+
+
+ // 3.2 The Gears of Chance
+ // 3.2 Dungeons
+ "141": {
+ "name": "Antiturm",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "140": {
+ "name": "Historisches Amdapor (schwer)",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+
+ // 3.2 Trials
+ "134": {
+ "name": "Götterdämmerung - Sephirot",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "135": {
+ "name": "Zenit der Götter - Sephirot",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 3.2 Raids
+ "136": {
+ "name": "Alexander - Faust des Sohnes",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "137": {
+ "name": "Alexander - Elle des Sohnes",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "138": {
+ "name": "Alexander - Arm des Sohnes",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "139": {
+ "name": "Alexander - Last des Sohnes",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "147": {
+ "name": "A - Faust des Sohnes (episch)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "148": {
+ "name": "A - Elle des Sohnes (episch)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "149": {
+ "name": "A - Arm des Sohnes (episch)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "150": {
+ "name": "A - Last des Sohnes (episch)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+
+ // 3.3 Revenge of the Horde
+ // 3.3 Dungeons
+ "171": {
+ "name": "Sohr Khai",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "172": {
+ "name": "Schiffbrecher-Insel (schwer)",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+
+ // 3.3 Trials
+ "169": {
+ "name": "Der letzte Schicksalsweg",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "170": {
+ "name": "Das Lied von Nidhoggs letztem Ruf",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 3.3 Raids
+ "168": {
+ "name": "Die Stadt der Tränen",
+ "tank": "3",
+ "healer": "6",
+ "dps": "15"
+ },
+
+ // 3.3 Party Contents
+ "179": {
+ "name": "Aquapolis",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+
+
+ // 3.4 Soul Surrender
+ // 3.4 Dungeons
+ "182": {
+ "name": "Xelphatol",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "196": {
+ "name": "Große Gubal-Bibliothek (schwer)",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+
+ // 3.4 Trials
+ "183": {
+ "name": "Götterdämmerung - Sophia",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "184": {
+ "name": "Zenit der Götter - Sophia",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 3.4 Raids
+ "186": {
+ "name": "Alexander - Augen des Schöpfers",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "187": {
+ "name": "Alexander - Atem des Schöpfers",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "188": {
+ "name": "Alexander - Herz des Schöpfers",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "189": {
+ "name": "Alexander - Seele des Schöpfers",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "190": {
+ "name": "A - Augen des Schöpfers (episch)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "191": {
+ "name": "A - Atem des Schöpfers (episch)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "192": {
+ "name": "A - Herz des Schöpfers (episch)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "193": {
+ "name": "A - Seele des Schöpfers (episch)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+
+ // 3.5 The Far Edge of Fate
+ // 3.5 Dungeons
+ "219": {
+ "name": "Baelsar-Wall",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "221": {
+ "name": "Sohm Al (schwer)",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+
+ // 3.5 Trials
+ "223": {
+ "name": "Götterdämmerung - Zurvan",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "224": {
+ "name": "Zenit der Götter - Zurvan",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 3.5 Raids
+ "220": {
+ "name": "Dun Scaith",
+ "tank": "3",
+ "healer": "6",
+ "dps": "15"
+ },
+
+
+ // 4.0 Stormblood
+ // 4.0 Dungeons
+ "238": {
+ "name": "Sirenen-See",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "235": {
+ "name": "Shisui",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "240": {
+ "name": "Bardams Probe",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "241": {
+ "name": "Burg Doma",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "242": {
+ "name": "Castrum Abania",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "247": {
+ "name": "Ala Mhigo",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "262": {
+ "name": "Schloss Kugane",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "236": {
+ "name": "Tempel der Faust",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+
+ // 4.0 Trials
+ "243": {
+ "name": "Götterdämmerung - Susano",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "244": {
+ "name": "Zenit der Götter - Susano",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "263": {
+ "name": "Götterdämmerung - Lakshmi",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "264": {
+ "name": "Zenit der Götter - Lakshmi",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "239": {
+ "name": "Königliche Menagerie",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 4.01 Raids
+ "252": {
+ "name": "Deltametrie 1.0",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "253": {
+ "name": "Deltametrie 2.0",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "254": {
+ "name": "Deltametrie 3.0",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "255": {
+ "name": "Deltametrie 4.0",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 4.05 Raids
+ "256": {
+ "name": "Deltametrie 1.0 (episch)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "257": {
+ "name": "Deltametrie 2.0 (episch)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "258": {
+ "name": "Deltametrie 3.0 (episch)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "259": {
+ "name": "Deltametrie 4.0 (episch)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ //4.05 Party Contents
+ "268": {
+ "name": "Kanäle von Uznair",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+
+
+ // 4.1 The Legend Returns
+ // 4.1 Dungeon
+ "279": {
+ "name": "Die versunkene Stadt Skalla",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+
+ // 4.1 Trials
+ "278": {
+ "name": "Heldenlied von Shinryu",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 4.1 Raids
+ "281": {
+ "name": "Rabanastre",
+ "tank": "3",
+ "healer": "6",
+ "dps": "15"
+ },
+
+ //4.1 Party Contents
+ "276": {
+ "name": "Vergessene Kanäle von Uznair",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+
+ //4.11 Raids
+ "280": {
+ "name": "Endlose Schatten von Bahamut (fatal)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 4.2 Rise of a New Sun
+ // 4.2 Dungeon
+ "284": {
+ "name": "Höllenspund",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "285": {
+ "name": "Die Fraktal-Kontinuum (schwer)",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+
+ // 4.2 Trials
+ "290": {
+ "name": "Seelentanz - Byakko",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "291": {
+ "name": "Seelensturm - Byakko",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 4.2 Raids
+ "286": {
+ "name": "Sigmametrie 1.0",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "287": {
+ "name": "Sigmametrie 2.0",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "288": {
+ "name": "Sigmametrie 3.0",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "289": {
+ "name": "Sigmametrie 4.0",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "292": {
+ "name": "Sigmametrie 1.0 (episch)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "293": {
+ "name": "Sigmametrie 2.0 (episch)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "294": {
+ "name": "Sigmametrie 3.0 (episch)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "295": {
+ "name": "Sigmametrie 4.0 (episch)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 4.3 Under the MoonLight
+ // 4.3 Dungeon
+ "536": {
+ "name": "Kompass der Schwalbe",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+
+ // 4.3 Trials
+ "537": {
+ "name": "Götterdämmerung - Tsukuyomi",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "538": {
+ "name": "Zenit der Götter - Tsukuyomi",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 4.3 Raids
+ "550": {
+ "name": "Richtfeuer von Ridorana",
+ "tank": "3",
+ "healer": "6",
+ "dps": "15"
+ },
+
+ // 4.31 Raids
+ "539": {
+ "name": "Heldenlied von Ultima (fatal)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ //4.36 Trials
+ "474": {
+ "name": "Jagd auf Rathalos",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "475": {
+ "name": "Jagd auf Rathalos (schwer)",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+
+ // 4.4 Prelude in Violet
+ // 4.4 Dungeon
+ "585": {
+ "name": "Das Kargland",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "584": {
+ "name": "Sankt Mocianne-Arboretum (schwer)",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+
+ // 4.4 Trials
+ "596": {
+ "name": "Seelentanz - Suzaku",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "597": {
+ "name": "Seelensturm - Suzaku",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 4.4 Raids
+
+ "587": {
+ "name": "Alphametrie 1.0",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "588": {
+ "name": "Alphametrie 2.0",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "589": {
+ "name": "Alphametrie 3.0",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "590": {
+ "name": "Alphametrie 4.0",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "591": {
+ "name": "Alphametrie 1.0 (episch)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "592": {
+ "name": "Alphametrie 2.0 (episch)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "593": {
+ "name": "Alphametrie 3.0 (episch)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "594": {
+ "name": "Alphametrie 4.0 (episch)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 4.45
+
+ "595": {
+ "name": "Duell auf der Kugane-Brücke",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 4.5 A Requiem for Heroes
+ // 4.5 Dungeon
+ "611": {
+ "name": "Die Ghimlyt-Finsternis",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+
+ // 4.5 Trials
+ "637": {
+ "name": "Seelentanz - Seiryu",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "638": {
+ "name": "Seelensturm - Seiryu",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 4.5 Raids
+ "636": {
+ "name": "Kloster von Orbonne",
+ "tank": "3",
+ "healer": "6",
+ "dps": "15"
+ },
+
+ // 5.0 Shadowbringers
+ // 5.0 Dungeons
+ "676": {
+ "name": "Holminster",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "649": {
+ "name": "Dohn Mheg",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "651": {
+ "name": "Irrungen der Qitari",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "656": {
+ "name": "Malikahs Brunnen",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "659": {
+ "name": "Der Gulg",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "652": {
+ "name": "Amaurot",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "655": {
+ "name": "Der Kristallzwilling",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "661": {
+ "name": "Akadaemia Anyder",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+
+ // 5.0 Trials
+ "657": {
+ "name": "Offenbarung - Titania",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "658": {
+ "name": "Letzte Läuterung - Titania",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4",
+ "macro": "/p H1 (水 Water) H2
+/p MT
+/p D1 D2
+/p ST
+/p D3 D4
+/p ------ 2連頭割り 2 Split ------
+/p 西 West : MT-H1-D1-D3
+/p 東 East : ST-H2-D2-D4
+/p 時計回りの回転 Clockwise Rotation
+/p ---------- 連鎖 1 Chain 1 ----------
+/p 北西 N/W : Tank Healer | 南東 S/E : DPS
+/p -- Tether テザー : 9時受 (①西 West)】--
+/p ST->D1->D2->D3->-D4->H1
+/p ---------- 連鎖 2 Chain 2 ----------
+/p 北 North : Tank Healer | 南 South : DPS"
+ },
+ "666": {
+ "name": "Offenbarung - Innozenz",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "667": {
+ "name": "Letzte Läuterung - Innozenz",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "687": {
+ "name": "Offenbarung - Hades",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 5.01 Raids
+
+ "653": {
+ "name": "Edens Erwachen - Auferstehung",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "684": {
+ "name": "Edens Erwachen - Niederkunft",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "682": {
+ "name": "Edens Erwachen - Überflutung",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "689": {
+ "name": "Edens Erwachen - Beerdigung",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 5.05 Raids Savage
+
+ "654": {
+ "name": "Edens Erwachen - Auferstehung (episch)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "685": {
+ "name": "Edens Erwachen - Niederkunft (episch)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "683": {
+ "name": "Edens Erwachen - Überflutung (episch)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "690": {
+ "name": "Edens Erwachen - Beerdigung (episch)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 5.1 Patch
+
+ "693": {
+ "name": "Letzte Läuterung - Hades",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ "700": {
+ "name": "Die kopierte Fabrik",
+ "tank": "3",
+ "healer": "6",
+ "dps": "15"
+ },
+
+ "692": {
+ "name": "Chateau Cosmea",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+
+ // Guildhests
+ "43": {
+ "name": "Bockmanns Gefolge",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "46": {
+ "name": "Unkraut jäten",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "47": {
+ "name": "Ins Wespennest stechen",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "42": {
+ "name": "Einer für alle, alle für einen",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "44": {
+ "name": "Sturmkommando",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "45": {
+ "name": "Gil oder Leben",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "49": {
+ "name": "Bombige Goblins",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "48": {
+ "name": "Briaxio ausschalten",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "50": {
+ "name": "Tödliches Rankenspiel",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "51": {
+ "name": "Gefahr aus dem Nichts",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "52": {
+ "name": "Kampf gegen Schatten",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "53": {
+ "name": "Miss Bombastic",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "54": {
+ "name": "Unzertrennlich",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "55": {
+ "name": "Wuchtige Dreifaltigkeit",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // Blue Mage 4.5
+ "610": {
+ "name": "Debüt in der Himmlischen Arena",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "612": {
+ "name": "Pudding nach Art des Hauses",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "613": {
+ "name": "Zipacna - Aller Anfang ist schwer",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "614": {
+ "name": "Kreios - Der Mann aus Stahl",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "615": {
+ "name": "Die Bruderschaft der Kröten",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "616": {
+ "name": "Den Tod im Auge",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "617": {
+ "name": "Heißkalte Schauer",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "618": {
+ "name": "Explosiv - Vorhut in Blau und Rot",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "619": {
+ "name": "Guimauve und die sieben Gesichter des Todes",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "620": {
+ "name": "Crom Dubh - König der Götzen",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "621": {
+ "name": "Explosiv - Die zweite Welle",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "622": {
+ "name": "Hydnora - Der Parasit, der Paras sieht",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "623": {
+ "name": "Carmilla - Prinzessin des Todes",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "624": {
+ "name": "Der Tod kommt süß gekleidet",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "625": {
+ "name": "Die Bestie steckt im System",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "626": {
+ "name": "Tikbalang - Der rechte Arm des Verderbens",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "627": {
+ "name": "Kreios - Neues vom Mann aus Stahl",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "628": {
+ "name": "Explosiv - Revanche mit Wumms",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "629": {
+ "name": "Rebekkha - Verführerische Gerüche",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "630": {
+ "name": "Ultros & Typhon - Zwei wie Rotz und Wasser",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "631": {
+ "name": "Apademak - Die cholerische Chimära",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "632": {
+ "name": "Explosiv - Urgroßbomber lässt es krachen",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "633": {
+ "name": "Kronprinz-Behemoth - Vom Teufel besessen",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "634": {
+ "name": "Epilogi - Das Ende kommt immer zuletzt",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "635": {
+ "name": "Azulmagia - Der Blaumagier des Bösen",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+
+
+ // Novice Training
+ "151": {
+ "name": "Flächenangriffen ausweichen",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "152": {
+ "name": "Mit Kombos Feindseligkeit auf sich ziehen",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "153": {
+ "name": "Kombos im Kampf einsetzen",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "154": {
+ "name": "Feindseligkeit mehrerer Gegner auf sich ziehen",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "155": {
+ "name": "Gegen mehrere Gegner auf einmal kämpfen",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "156": {
+ "name": "Aus der Ferne Feindseligkeit auf sich ziehen",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "157": {
+ "name": "Feindliche Verstärkung aufhalten",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "158": {
+ "name": "Gegner gemeinsam besiegen",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "159": {
+ "name": "Den Gegner eines Verbündeten besiegen",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "160": {
+ "name": "Angriffen ausweichen",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "161": {
+ "name": "Feindliche Verstärkung aufhalten",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "162": {
+ "name": "Mit dem Gelände interagieren",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "163": {
+ "name": "Verbündete heilen",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "164": {
+ "name": "Mehrere Verbündete heilen",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "165": {
+ "name": "Angriffen ausweichen",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "166": {
+ "name": "Letzte Übung",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+
+
+ // PvP
+ "127": {
+ "name": "Äußere Ruinen (Sicherung)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "130": {
+ "name": "Robbenholm (Eroberung)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "145": {
+ "name": "The Feast (4 gegen 4, gewertet)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "228": {
+ "name": "The Feast (4 gegen 4, Übungskampf)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "230": {
+ "name": "The Feast (4 gegen 4, gewertet)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "143": {
+ "name": "The Feast (4 gegen 4, Übungskampf)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "201": {
+ "name": "The Feast (Wolfshöhle: Schaukampf)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "233": {
+ "name": "The Feast (Flechtenhain: Schaukampf)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "476": {
+ "name": "The Feast (Team, gewertet)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "478": {
+ "name": "The Feast (gewertet)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "479": {
+ "name": "The Feast (Übungskampf)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "480": {
+ "name": "The Feast (Kristallturm-Arena: Schaukampf)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "580": {
+ "name": "The Feast (Kristallturm-Arena: Team-Schaukampf)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "180": {
+ "name": "Feld der Ehre (Zersplitterung)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "277": {
+ "name": "Astragalos",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "599": {
+ "name": "Verborgene Schlucht",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+
+
+ // Deep Dungeons
+ // The Palace of the Dead
+ "174": {
+ "name": "Palast der Toten (Ebenen 1-10)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "175": {
+ "name": "Palast der Toten (Ebenen 11-20)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "176": {
+ "name": "Palast der Toten (Ebenen 21-30)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "177": {
+ "name": "Palast der Toten (Ebenen 31-40)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "178": {
+ "name": "Palast der Toten (Ebenen 41-50)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "204": {
+ "name": "Palast der Toten (Ebenen 51 - 60)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "205": {
+ "name": "Palast der Toten (Ebenen 61 - 70)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "206": {
+ "name": "Palast der Toten (Ebenen 71 - 80)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "207": {
+ "name": "Palast der Toten (Ebenen 81 - 90)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "208": {
+ "name": "Palast der Toten (Ebenen 91 - 100)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "209": {
+ "name": "Palast der Toten (Ebenen 101 - 110)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "210": {
+ "name": "Palast der Toten (Ebenen 111 - 120)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "211": {
+ "name": "Palast der Toten (Ebenen 121 - 130)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "212": {
+ "name": "Palast der Toten (Ebenen 131 - 140)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "213": {
+ "name": "Palast der Toten (Ebenen 141 - 150)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "214": {
+ "name": "Palast der Toten (Ebenen 151 - 160)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "215": {
+ "name": "Palast der Toten (Ebenen 161 - 170)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "216": {
+ "name": "Palast der Toten (Ebenen 171 - 180)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "217": {
+ "name": "Palast der Toten (Ebenen 181 - 190)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "218": {
+ "name": "Palast der Toten (Ebenen 191 - 200)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+
+ // Heaven-on-High
+ "540": {
+ "name": "Himmelssäule (Ebenen 1 - 10)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "541": {
+ "name": "Himmelssäule (Ebenen 11 - 20)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "542": {
+ "name": "Himmelssäule (Ebenen 21 - 30)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "543": {
+ "name": "Himmelssäule (Ebenen 31 - 40)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "544": {
+ "name": "Himmelssäule (Ebenen 41 - 50)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "545": {
+ "name": "Himmelssäule (Ebenen 51 - 60)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "546": {
+ "name": "Himmelssäule (Ebenen 61 - 70)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "547": {
+ "name": "Himmelssäule (Ebenen 71 - 80)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "548": {
+ "name": "Himmelssäule (Ebenen 81 - 90)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "549": {
+ "name": "Himmelssäule (Ebenen 91 - 100)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+
+ // The Forbidden Land, Eureka
+ "283": {
+ "name": "Eureka Anemos",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "581": {
+ "name": "Eureka Pagos",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "598": {
+ "name": "Eureka Pyros",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "639": {
+ "name": "Eureka Hydatos",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+
+ // Other things...
+ "437": {
+ "name": "Kartenfieber",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "600": {
+ "name": "Kaktor-Kletterwand",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "601": {
+ "name": "Kaktor-Kletterwand",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "602": {
+ "name": "Kaktor-Kletterwand",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "603": {
+ "name": "Kaktor-Kletterwand",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "604": {
+ "name": "Kaktor-Kletterwand",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "605": {
+ "name": "Kaktor-Kletterwand",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "606": {
+ "name": "Kaktor-Kletterwand",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "607": {
+ "name": "Kaktor-Kletterwand",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "608": {
+ "name": "Kaktor-Kletterwand",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "643": {
+ "name": "Anfänger-Mahjong (gewertet)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "644": {
+ "name": "Fortgeschrittenen-Mahjong (gewertet)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "645": {
+ "name": "4-Spieler-Mahjong (Kuitan aktiviert)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "650": {
+ "name": "4-Spieler-Mahjong (Kuitan deaktiviert)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "640": {
+ "name": "Luftwaffe, Feuer frei!",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "641": {
+ "name": "Luftwaffe, Feuer frei!",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "642": {
+ "name": "Luftwaffe, Feuer frei!",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+
+ //Event Instance
+ "181": {
+ "name": "Das Geisterschloss",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ }
+ },
+
+ // Duty Roulette
+ "roulettes": {
+ "1": "Zufallsinhalt: Stufensteigerung",
+ "2": "Zufallsinhalt: Stufe 50/60/70",
+ "3": "Zufallsinhalt: Hauptszenario",
+ "4": "Zufallsinhalt: Gildengeheiß",
+ "5": "Zufallsinhalt: Experte",
+ "6": "Zufallsinhalt: Prüfung",
+ "7": "Zufallsinhalt: PvP-Front",
+ "8": "Zufallsinhalt: Stufe 80",
+ "9": "Zufallsinhalt: Mentor",
+ "10": "The Feast (4 gegen 4, Übungskampf)",
+ "13": "The Feast (4 gegen 4, gewertet)",
+ "15": "Zufallsinhalt: Allianz-Raid",
+ "17": "Zufallsinhalt: Normaler Raid"
+ },
+
+ // FATEs
+ "areas": {
+ "134": {
+ "name": "Zentrales La Noscea",
+ "fates": {
+ "649": "Nicht ohne meine Eier",
+ "688": "Der schwarze Dämon: Frau Größenwahn",
+ "220": "Aus dir mach ich Suppe",
+ "221": "Schlimmer als Unkraut",
+ "222": "Palastrevolte",
+ "223": "Die harte Schule",
+ "225": "Mulle auf die Stulle",
+ "226": "Übermut tut selten gut",
+ "227": "Unter Schafen",
+ "229": "Es rappelt in der Kiste",
+ "231": "Das große Krabbenpulen",
+ "233": "Schalk und Schakale im Nacken",
+ "235": "Nicht ohne meine Eier",
+ "237": "Gekenterte Existenzen",
+ "238": "Blut geleckt",
+ "239": "Frischer Fisch frisst Fischers Fische",
+ "240": "Salziger Regen"
+ }
+ },
+ "135": {
+ "name": "Unteres La Noscea",
+ "fates": {
+ "257": "Zum Dahinschmelzen",
+ "260": "Blinder Passagier",
+ "261": "Liebe reimt sich auf Hiebe",
+ "262": "Wir müssen draußen bleiben",
+ "264": "Lauter Klabauter",
+ "265": "Dafür gibt's Haue",
+ "333": "Da bist du platt",
+ "245": "Der Albtraumprinz",
+ "246": "Eine Rose ist eine Rose",
+ "249": "Krötenplage",
+ "250": "Fledermäuse mit Biss",
+ "251": "Rätselhafte Galagos"
+ }
+ },
+ "137": {
+ "name": "Östliches La Noscea",
+ "fates": {
+ "267": "Mein Wein bleibt mein Wein ",
+ "268": "Seeräubersommelier in spe",
+ "271": "Frischfleischlieferung",
+ "272": "Wo gesammelt wird, da fliegen Federn",
+ "274": "Mantis Mantis Timpe Te",
+ "278": "Rattige Hausbesetzer",
+ "279": "Kalkreiche Kost",
+ "280": "Was auf die Finger",
+ "282": "Schnippische Schnippler",
+ "286": "Angriff der Geisterpiraten",
+ "287": "Weibchenlos, ledig, jung",
+ "560": "Geld oder Leben",
+ "561": "Geschmack an Wein und Unrecht",
+ "562": "Liebliche Weinblüten",
+ "563": "Glüxi Grün",
+ "564": "Metshaldjas von rechts",
+ "565": "Nach Hause teleportieren",
+ "566": "Straßenverwüster",
+ "334": "Frühlingsnachtstraum",
+ "335": "Krabbe XXL",
+ "690": "Der schwarze Dämon: Frau Größenwahn",
+ "701": "Lustige Eiersuche"
+ }
+ },
+ "138": {
+ "name": "Westliches La Noscea",
+ "fates": {
+ "568": "Aufklärung am Norddamm",
+ "569": "Schlacht am Norddamm",
+ "570": "Aufklärung am Süddamm",
+ "571": "Schlacht am Süddamm",
+ "572": "Voll unter Kontrolle",
+ "574": "Von der Schlange verführt",
+ "575": "Oberschlange",
+ "576": "Totengeleit",
+ "577": "Verhängnisvolle Fracht",
+ "578": "Beschwörer des Herrn der Wogen",
+ "650": "Der kleine Nimmersatt",
+ "289": "Für Nachschub ist gesorgt",
+ "290": "Der kleine Nimmersatt",
+ "291": "Zwischen Ähren liegt Ehre",
+ "295": "Sechs richtige ... Arme",
+ "297": "Steuerprüfung",
+ "298": "Plündernde Schlangen",
+ "303": "Grüße aus der Heimat",
+ "304": "Turtel-Dodos",
+ "306": "Ausgewogene Ernährung",
+ "308": "Geplatzte Verhandlungen",
+ "309": "Der Typ rafft's nicht",
+ "310": "Straßenblockade",
+ "312": "Erst wimmeln, dann wimmern",
+ "336": "Die Botanische Revolution"
+ }
+ },
+ "139": {
+ "name": "Oberes La Noscea",
+ "fates": {
+ "314": "Schrecken der Coeurl",
+ "317": "Schutz und Hilfe",
+ "320": "Heute Freund, morgen Feind",
+ "321": "Schlammschlacht",
+ "322": "Oannes aus dem Grünenden Weiher",
+ "323": "Wehrhafte Delikatesse",
+ "329": "Kind der heißen Quellen",
+ "331": "Tänzer müssen draußen bleiben",
+ "332": "Läufer überm Bronzesee",
+ "703": "Lustige Eiersuche",
+ "451": "Köter gegen Ratten",
+ "452": "Ungebetene Gäste",
+ "453": "Vorsicht bissig",
+ "454": "Büffeln statt Büffel"
+ }
+ },
+ "180": {
+ "name": "Äußeres La Noscea",
+ "fates": {
+ "580": "Basaltblockade",
+ "581": "Für unsere Pioniere ",
+ "583": "Ein prachtvoller Feind",
+ "586": "Riecher für Erz",
+ "587": "Gras grüner, Gestein größer",
+ "588": "Granaten in Sicht",
+ "589": "Auf Wolkenbruch raus",
+ "591": "Ende eines Gerüchts",
+ "593": "Keine Fragen. Renn.",
+ "594": "Fehlschöpfung",
+ "595": "Ladenbesitzer in Not",
+ "597": "Asbest? Nein Danke!",
+ "598": "Schlafende Monster",
+ "599": "Beschwörer des Herrn der Felsen",
+ "700": "Bezwinger des Bezwingers"
+ }
+ },
+ "140": {
+ "name": "Westliches Thanalan",
+ "fates": {
+ "342": "Chaos in Grün",
+ "343": "Knabberspaß",
+ "344": "V wie Vandalen",
+ "345": "Hammerharte Hammerschnäbel",
+ "346": "Der Kern der Sache",
+ "347": "Verdammt und verdorben",
+ "348": "Kaktor Jack",
+ "349": "Wegelagerer",
+ "350": "Gemischte Gefühle",
+ "352": "Orobon Overkill",
+ "353": "Bernie gegen den Rest der Welt",
+ "354": "Krankentransport",
+ "355": "Die Kämpfe dauern fort",
+ "356": "Kobalos-Wanderung",
+ "357": "Die Riesen sind los",
+ "361": "Schnabelweise Vögel",
+ "366": "Opa lässt das Meucheln nicht",
+ "367": "Geisterjäger",
+ "684": "Der schwarze Dämon: Frau Größenwahn",
+ "704": "Lustige Eiersuche"
+ }
+ },
+ "141": {
+ "name": "Zentrales Thanalan",
+ "fates": {
+ "370": "Kräftemessen",
+ "373": "Füttern verboten",
+ "374": "Revolution der Ratten",
+ "375": "Die Würfel sind gefallen",
+ "376": "Windelweich gekocht",
+ "377": "Ein Angler am Haken",
+ "378": "Mein kleiner grüner Kaktor",
+ "379": "Ameisen auf Wohnungssuche",
+ "381": "Identitätsdiebe",
+ "383": "Freie Fahrt für freie Bürger",
+ "385": "Sadistisches Vergnügen",
+ "389": "Einen kühlen Kopf bewahren",
+ "393": "Sein letztes Kommando"
+ }
+ },
+ "145": {
+ "name": "Östliches Thanalan",
+ "fates": {
+ "540": "Dem Quarz zuliebe",
+ "541": "Angst vor dem Unbekannten",
+ "542": "Holder Knabe in lockigem Haar",
+ "543": "Großer Badu, große Gefahr",
+ "394": "Ganz schön bockig",
+ "395": "Wer anderen eine Grube gräbt",
+ "397": "Vormarsch der Amalj'aa",
+ "398": "Ein paar aufs Maul",
+ "400": "Verteidigung des Goldbasars",
+ "401": "Rendezvous mit dem Tod",
+ "402": "Räuber und Gendarm",
+ "406": "Den Spieß umdrehen",
+ "407": "Zum Haare raufen",
+ "409": "Unerwünschtes Unkraut",
+ "412": "Sicherung der Wasserversorgung",
+ "413": "Hörner sind zum Stutzen da",
+ "191": "Schlacht um Hohenbrück: Der Ansturm",
+ "192": "Schlacht um Hohenbrück: Die Verteidigung",
+ "193": "Schlacht um Hohenbrück: Duell mit Zuzuroon",
+ "194": "Schlacht um Hohenbrück: Duell mit Nayokk Roh",
+ "195": "Schlacht um Hohenbrück: Die Entscheidung"
+ }
+ },
+ "146": {
+ "name": "Südliches Thanalan",
+ "fates": {
+ "545": "Zeremonienverderber",
+ "546": "Ifrit nahm sein Leben",
+ "548": "Ifrits Quell der Kraft",
+ "549": "Verwüsten verboten",
+ "550": "Blutige Aussichten",
+ "551": "Kein Glückstag",
+ "552": "Geflüchtet und entführt",
+ "553": "Tumult am ersten Tor",
+ "554": "Schneller Schütze",
+ "555": "Fäulnis mit Stil",
+ "557": "Aufflammende Gewalt",
+ "558": "Beschwörer des Herrn des Infernos",
+ "686": "Der schwarze Dämon: Frau Größenwahn",
+ "706": "Lustige Eiersuche",
+ "419": "Miluda die Schlitzerin",
+ "420": "Gefallene Helden",
+ "421": "Verteidigung von Klein-Ala Mhigo",
+ "422": "Marmor, Stein und Eisen brechen",
+ "423": "Kröte mit eisernem Schild ",
+ "424": "Hauptbrigadier für einen Tag",
+ "427": "Auf der Abschussliste",
+ "429": "Die Kinder der Wüste",
+ "430": "Schwarze Zukunft",
+ "431": "Kein Nachschub für Zanr'ak",
+ "432": "Begleitschutz",
+ "434": "Der Kundschafter und seine unerwünschte Kundschaft",
+ "436": "Der Gift und Galle spuckt",
+ "437": "Mehr Strand als Meer",
+ "441": "Ein Maulkorb für Kampf-Drakons",
+ "455": "Wir sind gewurmt",
+ "456": "Buße sollst du tun"
+ }
+ },
+ "147": {
+ "name": "Nördliches Thanalan",
+ "fates": {
+ "556": "Erdkern für Erdseim",
+ "637": "Spritfresser",
+ "638": "Nur Quarz im Schädel",
+ "639": "Augen auf",
+ "641": "Durstige Dobalosse",
+ "642": "Ehrenwache",
+ "643": "Von Kultisten entführt",
+ "644": "Unkluge Kultisten",
+ "645": "Die Sektenführer",
+ "646": "Ergreifendes Opfer",
+ "647": "Etwas von allem",
+ "446": "Arimaspi-Alarm",
+ "447": "Erdseim geht vor",
+ "449": "Brandschutzmaßnahmen",
+ "450": "Der Erste wird der Letzte sein",
+ "457": "Reverse Engineering"
+ }
+ },
+ "148": {
+ "name": "Tiefer Wald",
+ "fates": {
+ "600": "Wurmige Ernte",
+ "601": "Dosis macht Gift",
+ "602": "Frieden ihrer Seele",
+ "603": "Geheimnis des Lebens",
+ "604": "Schadenfröhlich",
+ "120": "Dein Revier endet hier",
+ "121": "Magische Pilze",
+ "122": "In die weite Welt hinein ",
+ "123": "Wasseranomalie",
+ "124": "Umschwärmt",
+ "125": "Fliegendes Verderben",
+ "126": "Alphatier",
+ "127": "Zorn der Mütter",
+ "128": "Alux eingekerkert",
+ "130": "エバーシェイドの収穫祭",
+ "131": "Auf dem Präsentierteller",
+ "136": "Scharfer Drill",
+ "137": "Blattblutbefall",
+ "138": "Kükenschutz",
+ "139": "Wie neu gestorben",
+ "140": "Ausgangssperre",
+ "141": "Vergebliche Liebesmüh",
+ "142": "Nicht zum Verzehr bestimmt",
+ "707": "Lustige Eiersuche",
+ "196": "Der dunkle Reiter",
+ "197": "Der dunkle Reiter",
+ "208": "Käfer außer Rand und Band",
+ "209": "Essen macht durstig"
+ }
+ },
+ "152": {
+ "name": "Ostwald",
+ "fates": {
+ "607": "Sylphenfreundschaft",
+ "608": "Grenzschutz",
+ "609": "Ein Happen für Cassie",
+ "610": "Schwere Entscheidung",
+ "611": "Mehr ist nicht genug",
+ "612": "Jetzt oder nie",
+ "615": "Milchrausch",
+ "616": "Gar nicht so harmlos",
+ "618": "Traumkröten für den Eigenbedarf",
+ "619": "Sylphenkommandantin",
+ "620": "Ende der Pilzsaison",
+ "622": "Ramuh-Früherziehung",
+ "143": "Imp gegen Imme",
+ "144": "Nase zu und durch",
+ "145": "戦場までは何マルム?",
+ "148": "Futterneid",
+ "149": "Eingeschleppt",
+ "150": "Affenbande",
+ "151": "リトルブリッジの戦い",
+ "152": "Wirr im Wipfel",
+ "680": "Der schwarze Dämon: Frau Größenwahn",
+ "691": "Prototyp des Grauens",
+ "692": "Jetzt gibt's Keile",
+ "198": "Der dunkle Reiter",
+ "199": "Der dunkle Reiter",
+ "200": "Der dunkle Reiter",
+ "212": "Neunundneunzig Efeuranken",
+ "213": "Von den Sylphen verweht",
+ "214": "Geierschmaus",
+ "217": "Die süße Versuchung",
+ "218": "Undank des Faulen"
+ }
+ },
+ "153": {
+ "name": "Südwald",
+ "fates": {
+ "624": "Nicht versumpfen",
+ "626": "Abgelenkt",
+ "627": "Stinkt zum Himmel",
+ "628": "Grimmiges Beißendes",
+ "153": "Großwildjagd",
+ "154": "Molchminimierung",
+ "158": "Schlichtungsstelle",
+ "159": "Das Nest sprengen",
+ "160": "Das Nest säubern",
+ "161": "Das Nest verteidigen",
+ "162": "Das Nest halten",
+ "163": "Fallenfäller",
+ "164": "Königsklauen stutzen",
+ "166": "Eine Runde aufs Haus",
+ "167": "Ruhig Blut",
+ "168": "Kurzen Prozess",
+ "169": "Schwarzer Freitag",
+ "170": "Mautstelle",
+ "171": "Hinterholz",
+ "172": "Unrecht Gut",
+ "682": "Der schwarze Dämon: Frau Größenwahn",
+ "190": "Kehr zurück in deinen Staub",
+ "708": "Lustige Eiersuche",
+ "201": "Der dunkle Reiter",
+ "202": "Der dunkle Reiter",
+ "203": "Der dunkle Reiter",
+ "204": "Der dunkle Reiter",
+ "215": "Conspiracy Theory"
+ }
+ },
+ "154": {
+ "name": "Nordwald",
+ "fates": {
+ "631": "Versuchter Frevel",
+ "632": "Skandal im Sperrgebiet",
+ "633": "Illegaler Holzexport",
+ "634": "Wie man in den Wald ruft",
+ "174": "Dreh dich nicht um",
+ "178": "In jedem siebten Ei",
+ "179": "Milbenstopp",
+ "180": "Emeth",
+ "183": "Gesegnete Zone",
+ "184": "Verbotene Frucht",
+ "185": "Kleiner Stinker",
+ "187": "Angriff der Ixal",
+ "188": "Ziz will einen Keks ",
+ "189": "Rutschstopp",
+ "205": "Der dunkle Reiter",
+ "206": "Der dunkle Reiter",
+ "207": "Der dunkle Reiter",
+ "216": "Mondgestein"
+ }
+ },
+ "155": {
+ "name": "Zentrales Hochland von Coerthas",
+ "fates": {
+ "460": "Wer fürchtet sich",
+ "463": "Pech für schwarze Schafe",
+ "464": "Gaviator - Tag der Abrechnung",
+ "465": "Hart ist der Winter",
+ "466": "Astrologische Aufzeichnungen",
+ "467": "Domigator-Dompteur",
+ "469": "Wölfe wittern Blut",
+ "470": "Nichts da",
+ "472": "Wertschöpfung",
+ "473": "Irregeleitet",
+ "474": "Drachenbelagerung",
+ "475": "Schluss mit Gargamelle",
+ "479": "Exergoninduzierte Eiszeit",
+ "480": "Schuppe um Schuppe",
+ "482": "Riesenumweg",
+ "483": "Drachenfliegen",
+ "484": "Pilger in Gefahr",
+ "486": "Der Wille von Haillenarte",
+ "487": "Auf der Suche nach Wärme",
+ "489": "Zerstreuung für Pilger",
+ "490": "Kein Sieg für Klythios",
+ "491": "Horoskop für Drachenkopf",
+ "493": "Späte Vergeltung",
+ "494": "Rotgeflügelter Roc",
+ "496": "Auf Ruf der Drachen",
+ "497": "Abtauen",
+ "498": "Gestohlen Gut",
+ "499": "Wilde Schwestern",
+ "500": "Kein Holz für Natalan",
+ "501": "Wettlauf gegen Svara",
+ "502": "Kanone gegen Svara",
+ "503": "Feuer frei auf Svara",
+ "504": "Wehrlos vor Svara",
+ "505": "Der legendäre Behemoth",
+ "506": "Kein Weg zurück",
+ "507": "Mehr Augen, mehr Ärger",
+ "508": "Beschwörer der Herrin der Winde"
+ }
+ },
+ "156": {
+ "name": "Mor Dhona",
+ "fates": {
+ "512": "Aus Kameradschaft",
+ "514": "Großreinemachen im Schlingwald",
+ "516": "Nburus Bitterkeit",
+ "517": "Ausgekeimt",
+ "520": "Wartung aller Waffen",
+ "521": "Nichts geht mehr",
+ "522": "Umkämpfter Kristallturm",
+ "523": "Hände weg von Geisterzoll",
+ "524": "Hippogryhpen greifen an",
+ "525": "Dione muss schweigen",
+ "526": "Die Hapaliten sind los",
+ "527": "Recht gilt auch des Nachts",
+ "529": "Forsch und Forscher",
+ "530": "Hab Vivian satt"
+ }
+ },
+ "397": {
+ "name": "Westliches Hochland von Coerthas",
+ "fates": {
+ "787": "Was gibt's da zu glotzen?",
+ "788": "Ins Bocknäpfchen getreten",
+ "789": "Wasser ist zum Waschen da",
+ "791": "Revierausweitung",
+ "792": "Peluda tobt",
+ "793": "Die Rückkehr des Yeti-Ritters",
+ "794": "Wem Ehre gebührt",
+ "795": "Ich möchte kein Eisbär sein",
+ "796": "Den Mund zu voll genommen",
+ "798": "Wärmflasche wider Willen",
+ "800": "Der Traum ist aus",
+ "801": "Man jätet, was man sieht",
+ "802": "Die Stärke des Rudels",
+ "805": "Das geringere Übel",
+ "807": "Im Auge des Betrachters",
+ "809": "Unliebsame Nichtsgesandtschaft",
+ "810": "Die Hungerspiele",
+ "811": "Kampf gegen die Vorhut",
+ "812": "Kampf gegen die Hauptstreitmacht",
+ "813": "Wettlauf mit dem Tod",
+ "814": "Auf den Geschmack gekommen",
+ "815": "Herzallerwertest",
+ "816": "Nach Hause teleportieren",
+ "817": "Heuchlerische Helden",
+ "908": "Eiskalte Killer",
+ "909": "Der Erzfeind der Vollstrecker"
+ }
+ },
+ "398": {
+ "name": "Dravanisches Vorland",
+ "fates": {
+ "818": "Erfüllung eines Traums",
+ "819": "Retter des Chocobo-Waldes",
+ "820": "Ein Kopf zu groß",
+ "821": "Mit Federn macht man Mäuse",
+ "822": "Der Schrecken der Chocobos",
+ "823": "Bist du zu lax, gibt's keinen Lachs",
+ "824": "Du riechst so gut, ich flieg auf dich",
+ "825": "Das Urteil der Furie",
+ "826": "Wir haben Hunger",
+ "827": "Fanatisch, didaktisch, ungut",
+ "828": "Vorsicht, Bluthochdruck!",
+ "829": "Ein Exempel statuieren",
+ "830": "Entscheidung am Weiland-Fluss",
+ "831": "Der Dracheneierkrieg",
+ "832": "Svarog der Schreckliche",
+ "833": "Der Zorn einer Mutter",
+ "834": "Der Ruf ihrer Stimmen",
+ "835": "Das Mourn-Massaker",
+ "836": "Tödliche Hufe",
+ "837": "Quell des Unfriedens",
+ "838": "Die Hasspredigerin",
+ "902": "Angriff der Königin",
+ "903": "Rückkehr der Königin",
+ "904": "Rückkehr der Königin",
+ "905": "Entmachtung der Königin",
+ "906": "Entmachtung der Königin",
+ "907": "Entmachtung der Königin",
+ "910": "Drachenmaid, hast du heut für mich Zeit"
+ }
+ },
+ "399": {
+ "name": "Dravanisches Hinterland",
+ "fates": {
+ "756": "Die Krawallmetaller",
+ "757": "Rache der Schwermetaller",
+ "758": "Vollmetallalchemisten",
+ "759": "Nicht Spinne, nicht Falke",
+ "760": "Doppelte Schädlingsbekämpfung",
+ "761": "Das ging ins Auge",
+ "762": "Kammerjägerkommando",
+ "763": "Und täglich tropft der Nasenschleim",
+ "764": "Sie kam aus der Luft",
+ "766": "Blaue Hände, blaue Augen",
+ "767": "Satz mit X: Hubbelknix",
+ "768": "Von wegen tolle Wut",
+ "769": "Der Zorn einer Mutter",
+ "770": "Keine Vesper für die Esper",
+ "771": "Das große Stinken",
+ "772": "Melancholie und die unendliche Unersättlichkeit",
+ "773": "Ein Platz an der Sonnenbärspeisetafel",
+ "774": "Krieger, grüß mir die Sonne",
+ "775": "Vögel gegen Bären",
+ "777": "Molchaugen, Unkenzehen",
+ "778": "Jetzt schlägt's drei Zehen",
+ "779": "Wasserschutzpolizei",
+ "780": "Bücher sind für Fische nichts",
+ "781": "Bücherhühner",
+ "782": "Bifericeras müssen weg",
+ "783": "Die Einsamkeit des Poroggo-Familiars",
+ "784": "Er kam von Weitem übers Meer",
+ "785": "Kriech mir aus den Augen",
+ "786": "Ein ganz großer Spinner"
+ }
+ },
+ "400": {
+ "name": "Die Wallenden Nebel",
+ "fates": {
+ "868": "Dunkelschuppe I: Ein Drache dreht auf",
+ "869": "Dunkelschuppe II: Ein Drache dreht ab",
+ "870": "Dunkelschuppe III: Ein Drache gibt den Löffel ab",
+ "871": "Ehrenduell mit dem Weißen",
+ "872": "Aufpassdrachenkind",
+ "873": "Rastabans Rage",
+ "874": "Sadistische Spiele",
+ "725": "Badeausflug",
+ "726": "Dumme Nuss",
+ "727": "Von schwarzem Blut",
+ "728": "Teures Hobby",
+ "731": "Zum Fressen gern",
+ "732": "Vorsicht Hochspannung",
+ "735": "Schlecht gekaut ist halb unverdaut",
+ "736": "Alle Hände voll zu tun",
+ "737": "Vivel la Revolution",
+ "738": "Ich bin der Waugyl",
+ "740": "Tanz mit den Drachen",
+ "741": "Tanz mit den Wolken",
+ "742": "Hindernis auf der Fahrbahn",
+ "744": "Fjalar gegen den Rest der Welt",
+ "746": "Brennt, Wyvern, brennt!",
+ "747": "Tag der Abrechnung",
+ "748": "Meliaden-Marmelade",
+ "751": "Der Angeschwärzte",
+ "752": "Putzkolonnen-Eskorte",
+ "753": "Ein großes Kupowetter",
+ "754": "Sonne gegen Schatten",
+ "755": "Immer auf die Kleinen"
+ }
+ },
+ "401": {
+ "name": "Abalathisches Wolkenmeer",
+ "fates": {
+ "839": "Angriff der Naschkatzen",
+ "840": "Luftverbessernde Maßnahme",
+ "841": "Wir müssen mal reden",
+ "842": "Futterneid",
+ "843": "Eine Frage der Größe",
+ "844": "Früh übt sich, oder auch nicht",
+ "845": "Der Übermut der jungen Gundo",
+ "846": "Ein langer Fall",
+ "847": "Eindruck schinden",
+ "851": "Böses Erwachen",
+ "852": "Der Kern des Problems",
+ "853": "Im Schweiße seiner Hühneraugen",
+ "854": "Ein Vundo lässt nicht locker",
+ "855": "Wider die eigene Natur",
+ "856": "Gebt her euer Leder",
+ "857": "Trimm zwei",
+ "860": "Die Knochenjägerin",
+ "861": "Primae müssen draußen bleiben",
+ "862": "Rache für Kena Vanu",
+ "863": "Der Priester mit dem Vogel",
+ "864": "Erspart uns den Mist",
+ "865": "Wahnsinn vorprogrammiert",
+ "866": "Vanu mit Soße",
+ "867": "Die Traumfresser",
+ "875": "Der Schrecken der Lüfte"
+ }
+ },
+ "402": {
+ "name": "Azys Lla",
+ "fates": {
+ "877": "Ultima: Ein Prototyp tankt auf",
+ "878": "Ultima: Ein Prototyp tankt auf",
+ "879": "Ultima: Ein Prototyp tankt auf",
+ "880": "Lockere Schrauben",
+ "881": "Wir packen unseren Koffer",
+ "882": "Der Fürst und der Richter",
+ "883": "Hungriges Hirn",
+ "884": "Empusen-Epidemie",
+ "885": "Blinde Wut",
+ "886": "Der giftgrüne Daumen",
+ "887": "Wehe, wenn sie alleingelassen",
+ "888": "Das bleibt lieber vergessen",
+ "889": "Alle Klauen voll zu tun",
+ "890": "Der Chef ist sauer",
+ "891": "Vertreibung aus Gamma-Ost",
+ "892": "Vertreibung aus Gamma-West",
+ "893": "Vertreibung aus Gamma-Süd",
+ "894": "Tödliche Unzurechnungsfähigkeit",
+ "895": "Feuer mit Feuer bekämpfen",
+ "897": "Ernter des Todes",
+ "898": "Stheno abschreiben",
+ "899": "Seelenlose Grausamkeit",
+ "900": "Reptilische Rächer",
+ "901": "Der rotierende Turm von Azys Lla"
+ }
+ },
+ "351": {
+ "name": "Diadem",
+ "fates": {
+ "963": "Elementarer Wahnsinn",
+ "964": "Riskante Unternehmungen",
+ "965": "Elementarer Wahnsinn",
+ "966": "Im Schatten von Kerkes",
+ "967": "Im Schatten von Kerkes",
+ "968": "Geheimnis der verschollenen Legende",
+ "969": "Elementarer Wahnsinn",
+ "970": "Ende der verschollenen Legende",
+ "971": "Tödliche Umarmung",
+ "972": "Das Pelikan-Problem",
+ "973": "Elementarer Wahnsinn",
+ "974": "Torama Queen",
+ "975": "Torama Queen",
+ "976": "Riskante Unternehmungen",
+ "977": "Insektenbund",
+ "978": "Elementarer Wahnsinn",
+ "979": "Riskante Unternehmungen",
+ "980": "Regenbogenfresser",
+ "981": "Regenbogenfresser",
+ "982": "Regenbogenfresser",
+ "983": "Elementarer Wahnsinn",
+ "984": "Elementarer Wahnsinn",
+ "985": "Scherbenhaufen",
+ "986": "Scherbenhaufen",
+ "987": "Scherbenhaufen",
+ "988": "Scherbenhaufen",
+ "989": "Scherbenhaufen",
+ "990": "Scherbenhaufen",
+ "991": "Scherbenhaufen",
+ "992": "Scherbenhaufen",
+ "993": "Scherbenhaufen",
+ "994": "Scherbenhaufen",
+ "995": "Scherbenhaufen",
+ "996": "Scherbenhaufen",
+ "997": "Elementarer Wahnsinn",
+ "998": "Unruhige Nächte",
+ "999": "Scherbenhaufen",
+ "1000": "Scherbenhaufen",
+ "1001": "Scherbenhaufen",
+ "1002": "Scherbenhaufen",
+ "1003": "Scherbenhaufen",
+ "1004": "Scherbenhaufen",
+ "1005": "Wurzel des Problems",
+ "1006": "Wurzel des Problems",
+ "1007": "Wurzel des Problems",
+ "1008": "Pirat in Not",
+ "1009": "Elementarer Wahnsinn",
+ "1010": "Blutsauger",
+ "1011": "Mitternachtssnack",
+ "1012": "Mitternachtssnack",
+ "1013": "Einzelgänger",
+ "1014": "Einzelgänger",
+ "1015": "Pirat in Not",
+ "1016": "Stoppt den Souverän",
+ "1017": "Stoppt den Souverän",
+ "1018": "Stoppt den Souverän",
+ "1019": "Hungriger Herensugue",
+ "1020": "Gefräßige Kröten",
+ "1021": "Gefräßige Kröten",
+ "1022": "Gefräßige Kröten",
+ "1023": "Elementarer Wahnsinn",
+ "1024": "Die Endymien sind los",
+ "1025": "Kopfgeldjäger",
+ "1026": "Kopfgeldjäger",
+ "1027": "Gefährliche Jagdgründe",
+ "1028": "Gefährliche Jagdgründe",
+ "1029": "Gefährliche Jagdgründe",
+ "1030": "Gefährliche Jagdgründe",
+ "1031": "Bewölkt bis gefräßig",
+ "1032": "Bewölkt bis gefräßig",
+ "1033": "Bewölkt bis gefräßig",
+ "1034": "Riskante Unternehmungen",
+ "1035": "Aufgebrachte Herde",
+ "1036": "Elementarer Wahnsinn",
+ "1037": "Gefährliche Augenblicke",
+ "1038": "Blutige Rache",
+ "1039": "Blutige Rache",
+ "1040": "Elementarer Wahnsinn",
+ "1041": "Luftverschmutzung",
+ "1042": "Lunantishees in der Luft",
+ "1043": "Lunantishees in der Luft",
+ "1044": "Elementarer Wahnsinn",
+ "1045": "Elementarer Wahnsinn",
+ "1046": "Elementarer Wahnsinn",
+ "1047": "Peitschenschlag",
+ "1048": "Peitschenschlag",
+ "1049": "Elementarer Wahnsinn",
+ "1050": "Sanfte Gewalt",
+ "1051": "Elementarer Wahnsinn",
+ "1052": "Mein Freund, der Baum?",
+ "1053": "Mein Freund, der Baum?",
+ "1054": "Mein Freund, der Baum?",
+ "1055": "Elementarer Wahnsinn",
+ "1056": "Fischersterben",
+ "1057": "Unerwünschte Einwanderer",
+ "1058": "Wilde Jagd",
+ "1059": "Wilde Jagd",
+ "1060": "Elementarer Wahnsinn",
+ "1061": "Elementarer Wahnsinn",
+ "1062": "Riskante Unternehmungen",
+ "1063": "Milbenbefall",
+ "1064": "Milbenbefall",
+ "1065": "Milbenbefall",
+ "1066": "Milbenbefall",
+ "1067": "Wo die Liebe hinfällt",
+ "1068": "Pirat in Not",
+ "1069": "Elementarer Wahnsinn",
+ "1070": "Liebesfrust",
+ "1071": "Liebesfrust",
+ "1072": "Wurzel des Problems",
+ "1073": "Einsamer Tiger",
+ "1074": "Der große Purpurwurm Nimmersatt",
+ "1075": "Elementarer Wahnsinn",
+ "1076": "Achtung, Hornfliegen!",
+ "1077": "Elementarer Wahnsinn",
+ "1078": "Elementarer Wahnsinn",
+ "1079": "Bäume im Rausch des Wahnsinns",
+ "1080": "Bäume im Rausch des Wahnsinns",
+ "1081": "Elementarer Wahnsinn",
+ "1082": "Hungriger Herensugue",
+ "1083": "Elementarer Wahnsinn",
+ "1084": "Frische Fischer",
+ "1085": "Riskante Unternehmungen",
+ "1086": "Elementarer Wahnsinn",
+ "1087": "Luftturbulenzen",
+ "1088": "Tiefes Blau sieht rot",
+ "1089": "Elementarer Wahnsinn",
+ "1090": "Elementarer Wahnsinn",
+ "1091": "Die Würger vom Diadem",
+ "1092": "Die Würger vom Diadem",
+ "1093": "Die Würger vom Diadem",
+ "1094": "Die Schlitzer vom Diadem",
+ "1095": "Fabelwesen in Aufruhr",
+ "1096": "Fabelwesen in Aufruhr",
+ "1097": "Fabelwesen in Aufruhr",
+ "1098": "Unruhige Nächte",
+ "1099": "Lunantishees in der Luft",
+ "1100": "Blutsauger"
+ }
+ },
+ "411": {
+ "name": "Abanisches Grenzland",
+ "fates": {
+ "1112": "Training für Rekruten",
+ "1113": "Training für Unteroffiziere",
+ "1114": "Training für Offiziere",
+ "1115": "Krokomania",
+ "1116": "Die mit den Bären tanzen",
+ "1117": "Pflanzen mit großem Magen",
+ "1118": "Wiedergänger, Wiederkäuer",
+ "1119": "Angriff der Killerkrokos",
+ "1120": "Aushilfsjäger",
+ "1121": "Die Aushilfsjäger jagen wieder",
+ "1122": "Dhara-Derby",
+ "1124": "Völlig gaga",
+ "1125": "Fleischeslüste",
+ "1126": "Ohne Moos mehr los",
+ "1127": "Poststau",
+ "1128": "Dickes Ding",
+ "1129": "Die Saat des Bösen",
+ "1130": "Ich glaub, ich spinne!",
+ "1131": "Ameisenlöwenhunger",
+ "1132": "Der Unnahbare",
+ "1133": "Steinsplitterzeit",
+ "1134": "Finger weg!",
+ "1135": "Hiebe aus Liebe",
+ "1136": "Der Schmuckraub",
+ "1137": "Die dicke Berda",
+ "1138": "Klauen des Grauens",
+ "1139": "Sonne des Schreckens",
+ "1140": "Wer ließ die Hunde frei?",
+ "1141": "Stolze Kriegerinnen"
+ }
+ },
+ "412": {
+ "name": "Die Zinnen",
+ "fates": {
+ "1173": "Der freundliche Nager von nebenan",
+ "1174": "Der unfreundliche Nager von nebenan",
+ "1175": "Genug genagt!",
+ "1176": "Und täglich grüßt das Nagetier",
+ "1177": "Feldmäuse in groß",
+ "1178": "Gefräßiges Chapuli",
+ "1179": "Einfach nur zum Heulen",
+ "1180": "Kinder der Plage",
+ "1181": "Mit dem Kopf durch den Wald",
+ "1182": "Lila Lethargie",
+ "1184": "Waffentruhe zu Waffenruhe",
+ "1185": "Ein flotter Schnitt",
+ "1186": "Federn lassen",
+ "1187": "Alter Falter",
+ "1188": "Der Klotz, der aus der Hölle kam",
+ "1189": "Gern auch Gammelfleisch",
+ "1190": "Wenn der große Hunger kommt",
+ "1191": "Zum Fressen gern",
+ "1193": "Plötzliches Heimweh",
+ "1194": "Hunba, hunba, hunba, tätärä!",
+ "1195": "Vergissmeinnicht",
+ "1196": "Zum Greifen nah",
+ "1197": "Hyperventilation",
+ "1198": "Hals- und Genickbruch",
+ "1199": "Staub, Staub, überall Staub!",
+ "1200": "Feuer ist für Motten nichts",
+ "1201": "Definitionssache",
+ "1202": "Fünf ist Trümpf",
+ "1203": "Und was sich reimt, ist Bhut",
+ "1204": "Fünf nahrhafte Jahre",
+ "1205": "Die grauen Panteras",
+ "1207": "Brennpunkt Reifstein"
+ }
+ },
+ "413": {
+ "name": "Das Fenn",
+ "fates": {
+ "1103": "Höllenross",
+ "1104": "Höllenross",
+ "1105": "Höllenross",
+ "1272": "Dämpfer am Seldsee",
+ "1273": "Der forsche Frosch",
+ "1274": "Die tragische Jungfrau",
+ "1275": "Froschbelästigung",
+ "1276": "Der Duft des Todes",
+ "1277": "Zwei Hohe Berge",
+ "1278": "Kurrea, der abgrundtief Hässliche",
+ "1279": "Wurzelbehandlung mit Blutverlust",
+ "1280": "Der Lehmmann-Schock",
+ "1281": "Brust oder Keule",
+ "1282": "999 Stufen in den Tod",
+ "1283": "Versalzene Ruinen",
+ "1284": "Hauch des Todes",
+ "1285": "Schaltet den Schmerz an, schnell",
+ "1286": "Verrückt vor Schmerz",
+ "1287": "Eine ist keine, zwei sind der Tod",
+ "1288": "Bis zum letzten Tropfen",
+ "1289": "Ich bin ein Phoebad - Holt mich hier raus!",
+ "1290": "Das Seldmonster",
+ "1291": "Nanka-Zanker",
+ "1292": "Chukwas Rache",
+ "1293": "Bienen und Blumen und Saprias",
+ "1294": "Königin Edilas Vermächtnis",
+ "1295": "Vorsicht, bissig",
+ "1296": "Stier mich nicht an!",
+ "1297": "Grab der Könige",
+ "1298": "Schmetterlingseffekt",
+ "1299": "Senklochsauger",
+ "1300": "Mit Kind und Egel",
+ "1301": "Das wandelnde Erdbeben",
+ "1302": "Nachwehen der Katastrophe",
+ "1303": "Respektlose Gäste",
+ "1304": "Verirrte Schatten",
+ "1305": "Auferstehung des Königs"
+ }
+ },
+ "421": {
+ "name": "Rubinsee",
+ "fates": {
+ "1142": "Das Mädchen mit dem nassen Haar",
+ "1143": "Stinkevögel",
+ "1144": "Für immer und immer",
+ "1145": "Langfinger Lang",
+ "1146": "Pool-Party",
+ "1147": "Schnipp-schnapp, Kopf ab!",
+ "1148": "Agnis Philosophie",
+ "1149": "Rubinrote Korallen",
+ "1150": "Überfall auf die Korallentafeln",
+ "1151": "Kriecher aus der Tiefe",
+ "1152": "Kampfrochen",
+ "1153": "Prinzessin Yahiro",
+ "1154": "Unglücksraben",
+ "1155": "Bomber oder Fisch?",
+ "1156": "Kriegsherrin der Rotpanzer",
+ "1157": "Magische Muscheln",
+ "1158": "Vom Nordwind gebracht",
+ "1159": "Ein Berg von einem Gyuki",
+ "1160": "Des Wahnsinns fette Beute",
+ "1161": "Junge, Junge, diese Rotpanzer",
+ "1162": "Schatzsuche",
+ "1163": "Jetzt gibt's Tote",
+ "1164": "Haie im Anflug",
+ "1165": "Sogenbis Sühne",
+ "1166": "Rette die Fische - und die Fischer!",
+ "1167": "Der Samurai aus den Bergen",
+ "1168": "Eingekesselt",
+ "1170": "Einfach mal treiben lassen",
+ "1171": "12½ Rochen",
+ "1172": "Fürstlicher Appetit"
+ }
+ },
+ "422": {
+ "name": "Yanxia",
+ "fates": {
+ "1106": "Fuchsige Dame",
+ "1107": "Fuchsige Dame",
+ "1108": "Fuchsige Dame",
+ "1109": "Ausgefuchst",
+ "1110": "Kinko in Gefahr",
+ "1111": "Ginkos Opfergaben",
+ "1208": "Gyogun im Pech",
+ "1209": "Gyogun im Unglück",
+ "1210": "Gyogun dreht durch",
+ "1211": "Die Wolfskriege",
+ "1212": "Die Wolfskriege II",
+ "1213": "Die Wolfskriege: Letzte Jagd",
+ "1214": "Schnäbelrasseln",
+ "1215": "Nesträuber",
+ "1216": "Wenn Haie Hunger haben",
+ "1217": "Das blutdurstige Wiesel",
+ "1218": "Skandal, sie schnäbeln wieder!",
+ "1219": "Das Auge des Tigers",
+ "1220": "Die nimmersatten Raupen",
+ "1221": "Hörner stutzen",
+ "1222": "Die ganze Affenbande brüllt",
+ "1223": "Lange Hände, lange Finger",
+ "1224": "Sonst setzlingst was!",
+ "1225": "Bauernfrühstück",
+ "1226": "Heiß, heiß, Baby",
+ "1227": "Fürsorgliche Mutter",
+ "1228": "Umweltsünden",
+ "1229": "Hundsgemein",
+ "1230": "Der Schrecken der Sonnenanbeter",
+ "1231": "Albtraumhafte Scheuche",
+ "1232": "Niederträchtige Namazuo",
+ "1233": "Gefallene Wölfe",
+ "1234": "Grimmige Blicke",
+ "1235": "Getrübter Badespaß",
+ "1236": "Von allen guten Geistern verlassen",
+ "1237": "Tiger troll dich",
+ "1238": "Naseweise Namazuo",
+ "1239": "Auf den Hund gekommen",
+ "1240": "Die Geister, die sie riefen",
+ "1241": "Die Geister, die sie riefen"
+ }
+ },
+ "423": {
+ "name": "Azim-Steppe",
+ "fates": {
+ "1242": "Gejagte Jäger",
+ "1243": "Blutrünstiger Narantsetseg ",
+ "1244": "Kalter Nordwind",
+ "1245": "Rivalisierende Jäger",
+ "1246": "Wüstenvogel",
+ "1247": "Lautes Heulen in der Steppe",
+ "1248": "Grasverderber",
+ "1249": "Schlanke Brummer",
+ "1250": "Uneinsichtiger Falschspieler",
+ "1251": "Mammutaufgabe",
+ "1252": "Jagdrudel",
+ "1253": "Gefräßiges Federvieh",
+ "1254": "Königin der Brummer",
+ "1255": "Übers Ohr gehauen",
+ "1256": "Unerträglicher Gestank",
+ "1257": "Der Keimling Undsiig",
+ "1258": "Eine Ausgeburt der Steppe",
+ "1259": "In Stein gemeißelt",
+ "1260": "Gefährliche Kröten",
+ "1261": "Lebensgrundlage der Olkund",
+ "1262": "Feuriger Wüstenwind",
+ "1263": "Fressen und gefressen werden",
+ "1264": "Der Khan der Gulo Gulo",
+ "1265": "Stinker Stinkhaut",
+ "1266": "Steppe in Flammen",
+ "1267": "Tödliche Hauer",
+ "1268": "Die Pflanzenwelt schlägt zurück",
+ "1269": "In der Gewalt der Buduga",
+ "1270": "Schutz vor den Buduga",
+ "1271": "Auf Bardams Probe gestellt",
+ "1306": "Das Leben der Dataq: Nomaden",
+ "1307": "Das Leben der Dataq: Raubtiere",
+ "1308": "Das Leben der Dataq: Schafsmilch",
+ "1309": "Das Leben der Dataq: Dzo-Jagd",
+ "1310": "Das Leben der Dataq: Ausgehungert",
+ "1311": "Das Leben der Dataq: Ugund-Räuber",
+ "1312": "Das Leben der Dataq: Mammuts",
+ "1313": "Das Leben der Dataq: Herdenschutz",
+ "1315": "Das Leben der Dataq: Matanga",
+ "1316": "Das Leben der Dataq: Blutrache",
+ "1318": "Das Leben der Dataq: Verbündete",
+ "1319": "Das Leben der Dataq: Unerbittlich",
+ "1320": "Das Leben der Dataq: Anjana"
+ }
+ },
+ "999": {
+ "name": "Eureka - Anemos",
+ "fates": {
+ "1328": "Herr Kaiser",
+ "1329": "Ein windiger Kerl",
+ "1331": "Schlafende Drachen soll man nicht wecken",
+ "1332": "Schmerzvoller Hüftschwung",
+ "1333": "Zurück zu den Toten",
+ "1334": "Ich will so bleiben wie ich bin",
+ "1335": "Gerippeimpfung empfohlen",
+ "1336": "Den Ball halte flach, den Witz lieber nicht",
+ "1337": "Große Probleme auf kleiner Insel",
+ "1338": "Ein Königreich für kein Lama",
+ "1339": "Wütend wie ein Hurrikan",
+ "1340": "Widerlegte Weisheit",
+ "1341": "Heizkostenreduzierung",
+ "1342": "Futterneid",
+ "1343": "Kopflos",
+ "1344": "Ränkeschmiede",
+ "1345": "Raus aus meinem Revier",
+ "1346": "Vernichtendes Unkraut",
+ "1347": "Zahlenmäßige Überlegenheit",
+ "1348": "Küssen verboten"
+ }
+ },
+ "998": {
+ "name": "Eureka - Pagos",
+ "fates": {
+ "1351": "Eiskalte Königin",
+ "1352": "Mächtig unter Dampf",
+ "1353": "Asche zu Asche",
+ "1354": "Mächtig gewurmt",
+ "1355": "Verheerende Schmelze",
+ "1356": "Stumme Schreie",
+ "1357": "Das wahre Schneekleid trag ich",
+ "1358": "Die Unzertrennlichen",
+ "1359": "Wem die Stunde schlägt",
+ "1360": "Jetzt geht's rund",
+ "1361": "Den Tiger rauslassen",
+ "1362": "Eindeutiges Omen",
+ "1363": "Tränen voll Hass",
+ "1364": "Eisige Klingen",
+ "1365": "Es kann nur eine geben",
+ "1366": "Schau mir in die Augen",
+ "1367": "Bibbernde Glückshasen",
+ "1368": "Gierige Glückshasen",
+ "1369": "Die Leserotte"
+ }
+ },
+ "997": {
+ "name": "Eureka - Pyros",
+ "fates": {
+ "1388": "Leukosia, das eisige Wehklagen",
+ "1389": "Flauros, die grausame Sturmbestie",
+ "1390": "Der Sophist und seine Meute",
+ "1391": "Mörderische Marionetten",
+ "1392": "Askalaphos, tödliche Wissbegier",
+ "1393": "Aus den Tiefen des Abyssus",
+ "1394": "Aetolus, Herr der Blitze",
+ "1395": "Lesath, der Lavaskorpion",
+ "1396": "Eldthurs, der feurige Gigant",
+ "1397": "Die trauernde Sturmschwalbe",
+ "1398": "Wüterix, der Söldner",
+ "1399": "Donnernder Dux",
+ "1400": "Die Axt im Walde",
+ "1401": "Glaukopis und ihre geflügelten Töchter",
+ "1402": "Zwillinge wider Willen",
+ "1403": "Eisiges Wolfsgeheul",
+ "1404": "Penthesilea, Königin der Flammenfeen",
+ "1407": "Glückliche Glückshasen",
+ "1408": "Versteinerte Glückshasen"
+ }
+ },
+ "1004": {
+ "name": "Eureka - Hydatos",
+ "fates": {
+ "1412": "Kalamari, die unheimliche Sepia",
+ "1413": "Knochenschädel Stegodon",
+ "1414": "Tränenkönig Molek",
+ "1415": "Piasa, der Paradiesvogel",
+ "1416": "Frosticore, die Klauenbestie",
+ "1417": "Blutdurst",
+ "1418": "Der Schmiedemeister des Äthers, König Goldemar",
+ "1419": "Vegetarischer Karnivor",
+ "1420": "Baron Feuermähne",
+ "1421": "Ceto, die Gorgonenkönigin",
+ "1422": "Sondereinsatzkommando „Baldesions Arsenal“",
+ "1423": "Der Kristallwächter",
+ "1424": "Ovni, die unerkannte Bedrohung",
+ "1425": "Planschende Glückshasen"
+ }
+ },
+ "501": {
+ "name": "Seenland",
+ "fates": {
+ "1496": "Lauernde Nachtschatten",
+ "1497": "Schleichende Nachtschatten",
+ "1498": "Drakonische Maßnahmen",
+ "1499": "Hinterhältige Warge",
+ "1500": "Er ist Holzfäller und ihm geht's nicht gut",
+ "1501": "Rücksichtslose Nachtschatten",
+ "1502": "Arglistige Nachtschatten",
+ "1503": "Gefährliche Nachtschatten",
+ "1504": "Tödliche Nachtschatten",
+ "1505": "Ein Händler zum Anbeißen",
+ "1506": "Krakeelende Gremlins",
+ "1507": "Bestie in Wolfsgestalt",
+ "1508": "Das kleine Horrortor",
+ "1509": "Anemositäten",
+ "1510": "Knackiges Chamäleon"
+ }
+ },
+ "502": {
+ "name": "Kholusia",
+ "fates": {
+ "1462": "Ein formidabler Kampf: Die Bedrohung",
+ "1463": "Ein formidabler Kampf: Ein finsterer Plan",
+ "1464": "Ein formidabler Kampf: Der Gigant",
+ "1465": "Räuberplage in Stillwasser",
+ "1466": "Räuberplage in Stillwasser",
+ "1467": "Räuberplage in Werfting",
+ "1468": "Räuberplage in Werfting",
+ "1469": "Rallen haben scharfe Krallen",
+ "1470": "Ungebetener Besuch aus der Tiefe",
+ "1471": "Frech und flügge",
+ "1472": "Gefährlicher Beifang",
+ "1473": "Total durchgeklopft",
+ "1474": "Drahtige Dissonanzen",
+ "1475": "Räuberplage in Eintracht",
+ "1476": "Im Land der Donnerwürmer",
+ "1477": "Krieg der Baumeister: Konstruktionsphase",
+ "1478": "Krieg der Baumeister: Testphase",
+ "1479": "Krieg der Baumeister: Duell der Giganten"
+ }
+ },
+ "503": {
+ "name": "Amh Araeng",
+ "fates": {
+ "1511": "Glücksritter auf Abwegen",
+ "1512": "Echsenblockade",
+ "1513": "Ein gigantisches Problem",
+ "1514": "Luftnummer",
+ "1515": "Schurkenehre",
+ "1516": "Übermut ist selten gut",
+ "1517": "Schatzsucher und Kammerjäger",
+ "1518": "Klinge der Ahnen",
+ "1519": "Dornige Liebe auf Wanderschaft",
+ "1520": "Gefährliches Treiben in der Wüstenei",
+ "1521": "Tolba Nr. 1",
+ "1522": "Bayawak, die Sandschuppen-Königin",
+ "1523": "Nacht der Leguane",
+ "1524": "Das ist Amh Araeng!",
+ "1525": "Zwei Räuber, ein Revier",
+ "1526": "Bombige Aussichten",
+ "1527": "Tanzende Schwerter"
+ }
+ },
+ "504": {
+ "name": "Il Mheg",
+ "fates": {
+ "1480": "Lausbubengeschichten: Pixies",
+ "1481": "Lausbubengeschichten: Amaros",
+ "1482": "Lausbubengeschichten: Nu Mou",
+ "1483": "Lausbubengeschichten: Rowan",
+ "1484": "Lausbubengeschichten: Strafe muss sein I",
+ "1485": "Lausbubengeschichten: Strafe muss sein II",
+ "1486": "Lausbubengeschichten: Zwillingstrumpf",
+ "1487": "Lausbubengeschichten: Letzter Streich",
+ "1488": "Wurzelschinderin Jem-Hazar",
+ "1489": "Die Rosenbären sind los!",
+ "1490": "Nicht mehr alle Blumen im Korb",
+ "1491": "Alter Falter!",
+ "1492": "Feentanz: Güldener Blütennektar",
+ "1493": "Nicht jeder Dieb ist ein Verbrecher",
+ "1494": "Feentanz: Pixie-Jäger",
+ "1495": "Feentanz: Pixie in Not",
+ "1531": "Lausbubengeschichten: Amaros",
+ "1532": "Lausbubengeschichten: Nu Mou",
+ "1533": "Lausbubengeschichten: Rowan"
+ }
+ },
+ "505": {
+ "name": "Der Große Wald Rak'tika",
+ "fates": {
+ "1441": "Waldpatrouille: Mysteriöse Echos",
+ "1442": "Waldpatrouille: Abscheuliche Kriecher",
+ "1443": "Waldpatrouille: Federn rupfen ",
+ "1444": "Waldpatrouille: Ende einer langen Wacht",
+ "1445": "Waldpatrouille: 1. Tojilianischer Krieg",
+ "1446": "Waldpatrouille: 2. Tojilianischer Krieg",
+ "1447": "Waldpatrouille: 2. Tojilianischer Krieg",
+ "1448": "Waldpatrouille: 3. Tojilianischer Krieg",
+ "1449": "Waldpatrouille: 3. Tojilianischer Krieg",
+ "1450": "Waldpatrouille: Der Fall Tojils",
+ "1528": "Waldpatrouille: 3. Tojilianischer Krieg",
+ "1529": "Waldpatrouille: 3. Tojilianischer Krieg",
+ "1530": "Waldpatrouille: Der Fall Tojils",
+ "1451": "Zweite Chance für Chantico",
+ "1452": "Gift, Galle und Gekröse",
+ "1453": "Flamingos füttern verboten!",
+ "1454": "In der Not frisst der Raptor Schlangen",
+ "1455": "Düster gegen Dunkel",
+ "1456": "Angriff der Killertomatl",
+ "1457": "Celeno der Zwei Gesichter",
+ "1458": "Nestbau, nein danke!",
+ "1459": "Denkt doch an den Denkmalschutz!",
+ "1460": "Salmet, das Sorgenkind",
+ "1461": "Auge auf Abwegen"
+ }
+ },
+ "506": {
+ "name": "Tempest",
+ "fates": {
+ "1426": "Schrecken der Tiefsee Archaeotania: Die Jagd beginnt",
+ "1427": "Schrecken der Tiefsee Archaeotania: Zumshs Ritual",
+ "1428": "Schrecken der Tiefsee Archaeotania: Luntenschwarm",
+ "1429": "Schrecken der Tiefsee Archaeotania: Dunkle Grotten",
+ "1430": "Schrecken der Tiefsee Archaeotania: Blutkorallen",
+ "1431": "Schrecken der Tiefsee Archaeotania: Köder",
+ "1432": "Schrecken der Tiefsee Archaeotania: Die Bestie",
+ "1433": "Halimede, lumineszente Schönheit",
+ "1434": "Die Farbe der Jugend",
+ "1435": "Der Glanz der Perlen",
+ "1436": "20.000 Yalme unterm Meer",
+ "1437": "Ärger mit den Danbania",
+ "1438": "Der wandelnde Tod im Abyssus",
+ "1439": "Aufstand der Schwalben",
+ "1440": "Baba Ondo Schrimp"
+ }
+ },
+ "1005": {
+ "name": "Events",
+ "fates": {
+
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/App/Resources/Data/en-us.json b/App/Resources/Data/en-us.json
index 0c4635b..d9f9789 100644
--- a/App/Resources/Data/en-us.json
+++ b/App/Resources/Data/en-us.json
@@ -1,102 +1,102 @@
-{
+{
// Version
- "version": "20171029.1",
+ "version": "20191030.1",
// Duty
"instances": {
// 2.0 A Realm Reborn
// 2.0 Dungeons
- "157": {
+ "4": {
"name": "Sastasha",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "158": {
+ "8": {
"name": "Brayflox's Longstop",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "159": {
+ "10": {
"name": "The Wanderer's Palace",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "161": {
+ "3": {
"name": "Copperbell Mines",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "162": {
+ "7": {
"name": "Halatali",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "163": {
+ "9": {
"name": "Sunken Temple of Qarn",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "164": {
+ "2": {
"name": "The Tam-Tara Deepcroft",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "166": {
+ "6": {
"name": "Haukke Manor",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "167": {
+ "14": {
"name": "Amdapor Keep",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "168": {
+ "11": {
"name": "The Stone Vigil",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "169": {
+ "1": {
"name": "The Thousand Maws of Toto-Rak",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "170": {
+ "12": {
"name": "Cutter's Cry",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "171": {
+ "13": {
"name": "Dzemael Darkhold",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "172": {
+ "5": {
"name": "The Aurum Vale",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "217": {
+ "15": {
"name": "Castrum Meridianum",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "224": {
+ "16": {
"name": "The Praetorium",
"tank": "2",
"healer": "2",
@@ -104,43 +104,43 @@
},
// 2.0 Trials
- "202": {
+ "56": {
"name": "The Bowl of Embers",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "206": {
+ "57": {
"name": "The Navel",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "208": {
+ "58": {
"name": "The Howling Eye",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "292": {
+ "59": {
"name": "The Bowl of Embers (Hard)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "293": {
+ "60": {
"name": "The Navel (Hard)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "294": {
+ "61": {
"name": "The Howling Eye (Hard)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "332": {
+ "62": {
"name": "Cape Westwind",
"tank": "2",
"healer": "2",
@@ -150,19 +150,19 @@
// 2.1 A Realm Awoken
// 2.1 Dungeons
- "160": {
+ "17": {
"name": "Pharos Sirius",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "349": {
+ "18": {
"name": "Copperbell Mines (Hard)",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "350": {
+ "19": {
"name": "Haukke Manor (Hard)",
"tank": "1",
"healer": "1",
@@ -170,44 +170,44 @@
},
// 2.1 Trials
- "207": {
- "name": "Thornmarch",
+ "66": {
+ "name": "Thornmarch (Hard)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "295": {
+ "63": {
"name": "The Bowl of Embers (Extreme)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "296": {
+ "64": {
"name": "The Navel (Extreme)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "297": {
+ "65": {
"name": "The Howling Eye (Extreme)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "348": {
+ "68": {
"name": "The Minstrel's Ballad: Ultima's Bane",
"tank": "2",
"healer": "2",
"dps": "4"
},
// 2.16 Trials
- "368": {
+ "74": {
"name": "A Relic Reborn: the Chimera",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "369": {
+ "75": {
"name": "A Relic Reborn: the Hydra",
"tank": "2",
"healer": "2",
@@ -215,37 +215,37 @@
},
// 2.1 Raids
- "174": {
+ "92": {
"name": "The Labyrinth of the Ancients",
- "tank": "6",
+ "tank": "3",
"healer": "6",
- "dps": "12"
+ "dps": "15"
},
- "241": {
+ "93": {
"name": "Binding Coil of Bahamut - T1",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "242": {
+ "94": {
"name": "Binding Coil of Bahamut - T2",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "243": {
+ "95": {
"name": "Binding Coil of Bahamut - T3",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "244": {
+ "96": {
"name": "Binding Coil of Bahamut - T4",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "245": {
+ "97": {
"name": "Binding Coil of Bahamut - T5",
"tank": "2",
"healer": "2",
@@ -255,19 +255,19 @@
// 2.2 Through the Maelstrom
// 2.2 Dungeons
- "363": {
+ "22": {
"name": "The Lost City of Amdapor",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "360": {
+ "21": {
"name": "Halatali (Hard)",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "362": {
+ "20": {
"name": "Brayflox's Longstop (Hard)",
"tank": "1",
"healer": "1",
@@ -275,25 +275,25 @@
},
// 2.2 Trials
- "281": {
- "name": "The Whorleater",
+ "72": {
+ "name": "The Whorleater (Hard)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "359": {
+ "73": {
"name": "The Whorleater (Extreme)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "364": {
+ "67": {
"name": "Thornmarch (Extreme)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "366": {
+ "76": {
"name": "Battle on the Big Bridge",
"tank": "2",
"healer": "2",
@@ -301,25 +301,25 @@
},
// 2.2 Raids
- "355": {
+ "98": {
"name": "Second Coil of Bahamut - T1",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "356": {
+ "99": {
"name": "Second Coil of Bahamut - T2",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "357": {
+ "100": {
"name": "Second Coil of Bahamut - T3",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "358": {
+ "101": {
"name": "Second Coil of Bahamut - T4",
"tank": "2",
"healer": "2",
@@ -329,19 +329,19 @@
// 2.3 Defenders of Eorzea
// 2.3 Dungeons
- "361": {
+ "23": {
"name": "Hullbreaker Isle",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "365": {
+ "25": {
"name": "The Stone Vigil (Hard)",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "373": {
+ "24": {
"name": "The Tam-Tara Deepcroft (Hard)",
"tank": "1",
"healer": "1",
@@ -349,13 +349,13 @@
},
// 2.3 Trials
- "374": {
- "name": "The Striking Tree",
+ "77": {
+ "name": "The Striking Tree (Hard)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "375": {
+ "78": {
"name": "The Striking Tree (Extreme)",
"tank": "2",
"healer": "2",
@@ -363,31 +363,31 @@
},
// 2.3 Raids
- "372": {
+ "102": {
"name": "Syrcus Tower",
"tank": "3",
"healer": "6",
"dps": "15"
},
- "380": {
+ "103": {
"name": "Second Coil of Bahamut S - T1",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "381": {
+ "104": {
"name": "Second Coil of Bahamut S - T2",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "382": {
+ "105": {
"name": "Second Coil of Bahamut S - T3",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "383": {
+ "106": {
"name": "Second Coil of Bahamut S - T4",
"tank": "2",
"healer": "2",
@@ -397,19 +397,19 @@
// 2.4 Dreams of Ice
// 2.4 Dungeons
- "371": {
+ "27": {
"name": "Snowcloak",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "367": {
+ "26": {
"name": "Sunken Temple of Qarn (Hard)",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "387": {
+ "28": {
"name": "Sastasha (Hard)",
"tank": "1",
"healer": "1",
@@ -417,19 +417,19 @@
},
// 2.4 Trials
- "377": {
- "name": "Akh Afah Amphitheatre",
+ "79": {
+ "name": "Akh Afah Amphitheatre (Hard)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "378": {
+ "80": {
"name": "Akh Afah Amphitheatre (Extreme)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "142": {
+ "81": {
"name": "The Dragon's Neck",
"tank": "2",
"healer": "2",
@@ -437,25 +437,25 @@
},
// 2.4 Raids
- "193": {
+ "107": {
"name": "Final Coil of Bahamut - T1",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "194": {
+ "108": {
"name": "Final Coil of Bahamut - T2",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "195": {
+ "109": {
"name": "Final Coil of Bahamut - T3",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "196": {
+ "110": {
"name": "Final Coil of Bahamut - T4",
"tank": "2",
"healer": "2",
@@ -465,19 +465,19 @@
// 2.5 Before the Fall
// 2.5 Dungeons
- "150": {
+ "32": {
"name": "The Keeper of the Lake",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "188": {
+ "30": {
"name": "The Wanderer's Palace (Hard)",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "189": {
+ "29": {
"name": "Amdapor Keep (Hard)",
"tank": "1",
"healer": "1",
@@ -485,26 +485,26 @@
},
// 2.5 Trials
- "426": {
+ "84": {
"name": "The Chrysalis",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "394": {
+ "82": {
"name": "Urth's Fount",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "396": {
+ "85": {
"name": "Battle in the Big Keep",
"tank": "2",
"healer": "2",
"dps": "4"
},
// 2.55 Trials
- "143": {
+ "83": {
"name": "The Steps of Faith",
"tank": "2",
"healer": "2",
@@ -512,7 +512,7 @@
},
// 2.5 Raids
- "151": {
+ "111": {
"name": "The World of Darkness",
"tank": "3",
"healer": "6",
@@ -522,49 +522,49 @@
// 3.0 Heavensward
// 3.0 Dungeons
- "435": {
+ "39": {
"name": "The Aery",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "416": {
+ "31": {
"name": "The Great Gubal Library",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "421": {
+ "34": {
"name": "The Vault",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "430": {
+ "35": {
"name": "The Fractal Continuum",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "434": {
+ "36": {
"name": "The Dusk Vigil",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "438": {
+ "38": {
"name": "Aetherochemical Research Facility",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "441": {
+ "37": {
"name": "Sohm Al",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "420": {
+ "33": {
"name": "Neverreap",
"tank": "1",
"healer": "1",
@@ -572,31 +572,31 @@
},
// 3.0 Trials
- "432": {
- "name": "Thok ast Thok",
+ "86": {
+ "name": "Thok ast Thok (Hard)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "436": {
- "name": "The Limitless Blue",
+ "88": {
+ "name": "The Limitless Blue (Hard)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "437": {
+ "90": {
"name": "The Singularity Reactor",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "446": {
+ "87": {
"name": "Thok ast Thok (Extreme)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "447": {
+ "89": {
"name": "The Limitless Blue (Extreme)",
"tank": "2",
"healer": "2",
@@ -604,50 +604,50 @@
},
// 3.01 Raids
- "442": {
+ "112": {
"name": "A - Fist of the Father",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "443": {
+ "113": {
"name": "A - Cuff of the Father",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "444": {
+ "114": {
"name": "A - Arm of the Father",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "445": {
+ "115": {
"name": "A - Burden of the Father",
"tank": "2",
"healer": "2",
"dps": "4"
},
// 3.05 Raids
- "449": {
+ "116": {
"name": "A - Fist of the Father (Savage)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "450": {
+ "117": {
"name": "A - Cuff of the Father (Savage)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "451": {
+ "118": {
"name": "A - Arm of the Father (Savage)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "452": {
+ "119": {
"name": "A - Burden of the Father (Savage)",
"tank": "2",
"healer": "2",
@@ -657,13 +657,13 @@
// 3.1 As Goes Light So Goes Darkness
// 3.1 Dungeons
- "510": {
+ "40": {
"name": "Pharos Sirius (Hard)",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "511": {
+ "41": {
"name": "Saint Mocianne's Arboretum",
"tank": "1",
"healer": "1",
@@ -671,7 +671,7 @@
},
// 3.1 Trials
- "448": {
+ "91": {
"name": "The Minstrel's Ballad: Thordan's Reign",
"tank": "2",
"healer": "2",
@@ -679,7 +679,7 @@
},
// 3.1 Raids
- "508": {
+ "120": {
"name": "The Void Ark",
"tank": "3",
"healer": "6",
@@ -687,19 +687,19 @@
},
// 3.1 Party Contents
- "512": {
+ "131": {
"name": "The Diadem (Easy)",
"tank": "1",
"healer": "2",
"dps": "5"
},
- "514": {
+ "132": {
"name": "The Diadem",
"tank": "1",
"healer": "2",
"dps": "5"
},
- "515": {
+ "133": {
"name": "The Diadem (Hard)",
"tank": "1",
"healer": "2",
@@ -709,13 +709,13 @@
// 3.2 The Gears of Chance
// 3.2 Dungeons
- "516": {
+ "141": {
"name": "The Antitower",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "519": {
+ "140": {
"name": "Lost City of Amdapor (Hard)",
"tank": "1",
"healer": "1",
@@ -723,13 +723,13 @@
},
// 3.2 Trials
- "517": {
+ "134": {
"name": "Containment Bay S1T7",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "524": {
+ "135": {
"name": "Containment Bay S1T7 (Extreme)",
"tank": "2",
"healer": "2",
@@ -737,49 +737,49 @@
},
// 3.2 Raids
- "520": {
+ "136": {
"name": "A - Fist of the Son",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "521": {
+ "137": {
"name": "A - Cuff of the Son",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "522": {
+ "138": {
"name": "A - Arm of the Son",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "523": {
+ "139": {
"name": "A - Burden of the Son",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "529": {
+ "147": {
"name": "A - Fist of the Son (Savage)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "530": {
+ "148": {
"name": "A - Cuff of the Son (Savage)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "531": {
+ "149": {
"name": "A - Arm of the Son (Savage)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "532": {
+ "150": {
"name": "A - Burden of the Son (Savage)",
"tank": "2",
"healer": "2",
@@ -789,13 +789,13 @@
// 3.3 Revenge of the Horde
// 3.3 Dungeons
- "555": {
+ "171": {
"name": "Sohr Khai",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "557": {
+ "172": {
"name": "Hullbreaker Isle (Hard)",
"tank": "1",
"healer": "1",
@@ -803,13 +803,13 @@
},
// 3.3 Trials
- "559": {
+ "169": {
"name": "The Final Steps of Faith",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "566": {
+ "170": {
"name": "The Minstrel's Ballad: Nidhogg's Rage",
"tank": "2",
"healer": "2",
@@ -817,7 +817,7 @@
},
// 3.3 Raids
- "556": {
+ "168": {
"name": "The Weeping City of Mhach",
"tank": "3",
"healer": "6",
@@ -825,7 +825,7 @@
},
// 3.3 Party Contents
- "558": {
+ "179": {
"name": "The Aquapolis",
"tank": "0",
"healer": "0",
@@ -835,13 +835,13 @@
// 3.4 Soul Surrender
// 3.4 Dungeons
- "572": {
+ "182": {
"name": "Xelphatol",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "578": {
+ "196": {
"name": "The Great Gubal Library (Hard)",
"tank": "1",
"healer": "1",
@@ -849,13 +849,13 @@
},
// 3.4 Trials
- "576": {
+ "183": {
"name": "Containment Bay P1T6",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "577": {
+ "184": {
"name": "Containment Bay P1T6 (Extreme)",
"tank": "2",
"healer": "2",
@@ -863,49 +863,49 @@
},
// 3.4 Raids
- "580": {
+ "186": {
"name": "A - Eyes of the Creator",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "581": {
+ "187": {
"name": "A - Breath of the Creator",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "582": {
+ "188": {
"name": "A - Heart of the Creator",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "583": {
+ "189": {
"name": "A - Soul of the Creator",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "584": {
+ "190": {
"name": "A- Eyes of the Creator (Savage)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "585": {
+ "191": {
"name": "A - Breath of the Creator (Savage)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "586": {
+ "192": {
"name": "A - Heart of the Creator (Savage)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "587": {
+ "193": {
"name": "A - Soul of the Creator (Savage)",
"tank": "2",
"healer": "2",
@@ -915,13 +915,13 @@
// 3.5 The Far Edge of Fate
// 3.5 Dungeons
- "615": {
+ "219": {
"name": "Baelsar's Wall",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "617": {
+ "221": {
"name": "Sohm Al (Hard)",
"tank": "1",
"healer": "1",
@@ -929,13 +929,13 @@
},
// 3.5 Trials
- "637": {
+ "223": {
"name": "Containment Bay Z1T9",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "638": {
+ "224": {
"name": "Containment Bay Z1T9 (Extreme)",
"tank": "2",
"healer": "2",
@@ -943,7 +943,7 @@
},
// 3.5 Raids
- "627": {
+ "220": {
"name": "Dun Scaith",
"tank": "3",
"healer": "6",
@@ -953,49 +953,49 @@
// 4.0 Stormblood
// 4.0 Dungeons
- "626": {
+ "238": {
"name": "The Sirensong Sea",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "616": {
+ "235": {
"name": "Shisui of the Violet Tides",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "623": {
+ "240": {
"name": "Bardam's Mettle",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "660": {
+ "241": {
"name": "Doma Castle",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "661": {
+ "242": {
"name": "Castrum Abania",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "689": {
+ "247": {
"name": "Ala Mhigo",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "662": {
+ "262": {
"name": "Kugane Castle",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "663": {
+ "236": {
"name": "The Temple of the Fist",
"tank": "1",
"healer": "1",
@@ -1003,31 +1003,31 @@
},
// 4.0 Trials
- "674": {
+ "243": {
"name": "The Pool of Tribute",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "677": {
+ "244": {
"name": "The Pool of Tribute (Extreme)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "719": {
+ "263": {
"name": "Emanation",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "720": {
+ "264": {
"name": "Emanation (Extreme)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "679": {
+ "239": {
"name": "The Royal Menagerie",
"tank": "2",
"healer": "2",
@@ -1035,59 +1035,59 @@
},
// 4.01 Raids
- "691": {
+ "252": {
"name": "Deltascape V1.0",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "692": {
+ "253": {
"name": "Deltascape V2.0",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "693": {
+ "254": {
"name": "Deltascape V3.0",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "694": {
+ "255": {
"name": "Deltascape V4.0",
"tank": "2",
"healer": "2",
"dps": "4"
},
-
+
// 4.05 Raids
- "695": {
+ "256": {
"name": "Deltascape V1.0 (Savage)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "696": {
+ "257": {
"name": "Deltascape V2.0 (Savage)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "697": {
+ "258": {
"name": "Deltascape V3.0 (Savage)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "698": {
+ "259": {
"name": "Deltascape V4.0 (Savage)",
"tank": "2",
"healer": "2",
"dps": "4"
},
-
- //4.05 Party Contents
- "712": {
+
+ //4.05 Party Contents
+ "268": {
"name": "The Lost Canals of Uznair",
"tank": "0",
"healer": "0",
@@ -1097,7 +1097,7 @@
// 4.1 The Legend Returns
// 4.1 Dungeon
- "731": {
+ "279": {
"name": "The Drowned City of Skalla",
"tank": "1",
"healer": "1",
@@ -1105,463 +1105,1218 @@
},
// 4.1 Trials
- "730": {
- "name": "The Minstel's Ballad: Shinryu's Domain",
+ "278": {
+ "name": "The Minstrel's Ballad: Shinryu's Domain",
"tank": "2",
"healer": "2",
"dps": "4"
},
// 4.1 Raids
- "734": {
+ "281": {
"name": "The Royal City of Rabanastre",
"tank": "3",
"healer": "6",
"dps": "15"
},
-
- //4.1 Party Contents
- "725": {
+
+ //4.1 Party Contents
+ "276": {
"name": "The Hidden Canals of Uznair",
"tank": "0",
"healer": "0",
"dps": "0"
},
-
- //4.11 Raids
- "733": {
+
+ //4.11 Raids
+ "280": {
"name": "Unending Coil of Bahamut (Ultimate)",
"tank": "2",
"healer": "2",
"dps": "4"
},
-
- // Guildhests
- "190": {
- "name": "Under the Armor",
+ // 4.2 Rise of a New Sun
+ // 4.2 Dungeon
+ "284": {
+ "name": "Hells' Lid",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "191": {
- "name": "Pulling Poison Posies",
+ "285": {
+ "name": "the Fractal Continuum (Hard)",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "192": {
- "name": "Stinging Back",
- "tank": "1",
- "healer": "1",
- "dps": "2"
+
+ // 4.2 Trials
+ "290": {
+ "name": "Jade Stoa",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "214": {
- "name": "Basic Training: Enemy Parties",
- "tank": "1",
- "healer": "1",
- "dps": "2"
+ "291": {
+ "name": "Jade Stoa (Extreme)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "215": {
- "name": "Basic Training: Enemy Strongholds",
- "tank": "1",
- "healer": "1",
- "dps": "2"
+
+ // 4.2 Raids
+ "286": {
+ "name": "Sigmascape V1.0",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "216": {
- "name": "Hero on the Halfshell",
- "tank": "1",
- "healer": "1",
- "dps": "2"
+ "287": {
+ "name": "Sigmascape V2.0",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "219": {
- "name": "Flicking Sticks and Taking Names",
- "tank": "1",
- "healer": "1",
- "dps": "2"
+ "288": {
+ "name": "Sigmascape V3.0",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "220": {
- "name": "All's Well that Ends in the Well",
- "tank": "1",
- "healer": "1",
- "dps": "2"
+ "289": {
+ "name": "Sigmascape V4.0",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "221": {
- "name": "More than a Feeler",
- "tank": "1",
- "healer": "1",
- "dps": "2"
+ "292": {
+ "name": "Sigmascape V1.0 (Savage)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "222": {
- "name": "Annoy the Void",
+ "293": {
+ "name": "Sigmascape V2.0 (Savage)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "294": {
+ "name": "Sigmascape V3.0 (Savage)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "295": {
+ "name": "Sigmascape V4.0 (Savage)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 4.3 Under the MoonLight
+ // 4.3 Dungeon
+ "536": {
+ "name": "The Swallow's Compass",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "223": {
- "name": "Shadow and Claw",
+
+ // 4.3 Trials
+ "537": {
+ "name": "Castrum Fluminis",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "538": {
+ "name": "the Minstrel's Ballad: Tsukuyomi's Pain",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 4.3 Raids
+ "550": {
+ "name": "The Ridorana Lighthouse",
+ "tank": "3",
+ "healer": "6",
+ "dps": "15"
+ },
+
+ // 4.31 Raids
+ "539": {
+ "name": "The Weapon's Refrain (Ultimate)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ //4.36 Trials
+ "474": {
+ "name": "The Great Hunt",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "475": {
+ "name": "The Great Hunt (Extreme)",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "298": {
- "name": "Long Live the Queen",
+
+ // 4.4 Prelude in Violet
+ // 4.4 Dungeon
+ "585": {
+ "name": "The Burn",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "299": {
- "name": "Ward Up",
+ "584": {
+ "name": "Saint Mocianne's Arboretum (Hard)",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "300": {
- "name": "Solemn Trinity",
+
+ // 4.4 Trials
+ "596": {
+ "name": "Hells' Kier",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "597": {
+ "name": "Hells' Kier (Extreme)",
"tank": "2",
"healer": "2",
"dps": "4"
},
+ // 4.4 Raids
- // Novice Training
- "537": {
- "name": "Avoid Area of Effect Attacks",
- "tank": "0",
- "healer": "0",
- "dps": "0"
+ "587": {
+ "name": "Alphascape V1.0",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "538": {
- "name": "Execute a Combo to Increase Enmity",
- "tank": "0",
- "healer": "0",
- "dps": "0"
+ "588": {
+ "name": "Alphascape V2.0",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "539": {
- "name": "Execute a Combo in Battle",
- "tank": "0",
- "healer": "0",
- "dps": "0"
+ "589": {
+ "name": "Alphascape V3.0",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "540": {
- "name": "Accrue Enmity from Multiple Targets",
- "tank": "0",
- "healer": "0",
- "dps": "0"
+ "590": {
+ "name": "Alphascape V4.0",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "541": {
- "name": "Engage Multiple Targets",
- "tank": "0",
+ "591": {
+ "name": "Alphascape V1.0 (Savage)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "592": {
+ "name": "Alphascape V2.0 (Savage)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "593": {
+ "name": "Alphascape V3.0 (Savage)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "594": {
+ "name": "Alphascape V4.0 (Savage)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 4.45
+ "595": {
+ "name": "Kugane Ohashi",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 4.5 A Requiem for Heroes
+ // 4.5 Dungeon
+ "611": {
+ "name": "The Ghimlyt Dark",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+
+ // 4.5 Trials
+ "637": {
+ "name": "The Wreath of Snakes",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "638": {
+ "name": "The Wreath of Snakes (Extreme)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 4.5 Raids
+ "636": {
+ "name": "The Orbonne Monastery",
+ "tank": "3",
+ "healer": "6",
+ "dps": "15"
+ },
+
+ // 5.0 Shadowbringers
+ // 5.0 Dungeons
+ "676": {
+ "name": "Holminster Switch",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "649": {
+ "name": "Dohn Mheg",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "651": {
+ "name": "the Qitana Ravel",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "656": {
+ "name": "Malikah's Well",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "659": {
+ "name": "Mt. Gulg",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "652": {
+ "name": "Amaurot",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "655": {
+ "name": "the Twinning",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "661": {
+ "name": "Akadaemia Anyder",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+
+ // 5.0 Trials
+ "657": {
+ "name": "the Dancing Plague",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "658": {
+ "name": "the Dancing Plague (Extreme)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4",
+ "macro": "/p H1 (水 Water) H2
+/p MT
+/p D1 D2
+/p ST
+/p D3 D4
+/p ------ 2連頭割り 2 Split ------
+/p 西 West : MT-H1-D1-D3
+/p 東 East : ST-H2-D2-D4
+/p 時計回りの回転 Clockwise Rotation
+/p ---------- 連鎖 1 Chain 1 ----------
+/p 北西 N/W : Tank Healer | 南東 S/E : DPS
+/p -- Tether テザー : 9時受 (①西 West)】--
+/p ST->D1->D2->D3->-D4->H1
+/p ---------- 連鎖 2 Chain 2 ----------
+/p 北 North : Tank Healer | 南 South : DPS"
+ },
+ "666": {
+ "name": "the Crown of the Immaculate",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "667": {
+ "name": "the Crown of the Immaculate (Extreme)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "687": {
+ "name": "the Dying Gasp",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 5.01 Raids
+
+ "653": {
+ "name": "Eden's Gate: Resurrection",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "684": {
+ "name": "Eden's Gate: Descent",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "682": {
+ "name": "Eden's Gate: Inundation",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "689": {
+ "name": "Eden's Gate: Sepulture",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 5.05 Raids Savage
+
+ "654": {
+ "name": "Eden's Gate: Resurrection (Savage)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "685": {
+ "name": "Eden's Gate: Descent (Savage)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "683": {
+ "name": "Eden's Gate: Inundation (Savage)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "690": {
+ "name": "Eden's Gate: Sepulture (Savage)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 5.1 Patch
+
+ "693": {
+ "name": "The Minstrel's Ballad: Hades's Elegy",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ "700": {
+ "name": "The Copied Factory",
+ "tank": "3",
+ "healer": "6",
+ "dps": "15"
+ },
+
+ "692": {
+ "name": "The Grand Cosmos",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+
+
+ // Guildhests
+ "43": {
+ "name": "Under the Armor",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "46": {
+ "name": "Pulling Poison Posies",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "47": {
+ "name": "Stinging Back",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "42": {
+ "name": "Basic Training: Enemy Parties",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "44": {
+ "name": "Basic Training: Enemy Strongholds",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "45": {
+ "name": "Hero on the Half Shell",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "49": {
+ "name": "Flicking Sticks and Taking Names",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "48": {
+ "name": "All's Well that Ends in the Well",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "50": {
+ "name": "More than a Feeler",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "51": {
+ "name": "Annoy the Void",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "52": {
+ "name": "Shadow and Claw",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "53": {
+ "name": "Long Live the Queen",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "54": {
+ "name": "Ward Up",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "55": {
+ "name": "Solemn Trinity",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // Blue Mage 4.5
+ "610": {
+ "name": "All's Well That Starts Well",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "612": {
+ "name": "Much Ado About Pudding",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "613": {
+ "name": "Waiting for Golem",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "614": {
+ "name": "Gentlemen Prefer Swords",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "615": {
+ "name": "The Threepenny Turtles",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "616": {
+ "name": "Eye Society",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "617": {
+ "name": "A Chorus Slime",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "618": {
+ "name": "Bomb-edy of Errors",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "619": {
+ "name": "To Kill a Mockingslime",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "620": {
+ "name": "A Little Knight Music",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "621": {
+ "name": "Some Like It Excruciatingly Hot",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "622": {
+ "name": "The Plant-om of the Opera",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "623": {
+ "name": "Beauty and a Beast",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "624": {
+ "name": "Blobs in the Woods",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "625": {
+ "name": "The Me Nobody Nodes",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "626": {
+ "name": "Sunset Bull-evard",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "627": {
+ "name": "The Sword of Music",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "628": {
+ "name": "Midsummer Night's Explosion",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "629": {
+ "name": "On a Clear Day You Can Smell Forever",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "630": {
+ "name": "Miss Typhon",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "631": {
+ "name": "Chimera on a Hot Tin Roof",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "632": {
+ "name": "Here Comes the Boom",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "633": {
+ "name": "Behemoths and Broomsticks",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "634": {
+ "name": "Amazing Technicolor Pit Fiends",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "635": {
+ "name": "Dirty Rotten Azulmagia",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+
+
+ // Novice Training
+ "151": {
+ "name": "Avoid Area of Effect Attacks",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "152": {
+ "name": "Execute a Combo to Increase Enmity",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "153": {
+ "name": "Execute a Combo in Battle",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "154": {
+ "name": "Accrue Enmity from Multiple Targets",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "155": {
+ "name": "Engage Multiple Targets",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "156": {
+ "name": "Execute a Ranged Attack to Increase Enmity",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "157": {
+ "name": "Engage Enemy Reinforcements",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "158": {
+ "name": "Assist Allies in Defeating a Target",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "159": {
+ "name": "Defeat an Occupied Target",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "160": {
+ "name": "Avoid Engaged Targets",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "161": {
+ "name": "Engage Enemy Reinforcements",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "162": {
+ "name": "Interact with the Battlefield",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "163": {
+ "name": "Heal an Ally",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "164": {
+ "name": "Heal Multiple Allies",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "165": {
+ "name": "Avoid Engaged Targets",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "166": {
+ "name": "Final Exercise",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+
+
+ // PvP
+ "127": {
+ "name": "The Borderland Ruins (Secure)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "130": {
+ "name": "Seal Rock (Seize)",
+ "tank": "0",
"healer": "0",
"dps": "0"
},
- "542": {
- "name": "Execute a Ranged Attack to Increase Enmity",
+ "145": {
+ "name": "The Feast (4 on 4 - Ranked)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "543": {
- "name": "Engage Enemy Reinforcements",
+ "228": {
+ "name": "The Feast (4 on 4 - Training)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "544": {
- "name": "Assist Allies in Defeating a Target",
+ "230": {
+ "name": "The Feast (4 on 4 - Ranked)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "545": {
- "name": "Defeat an Occupied Target",
+ "143": {
+ "name": "The Feast (4 on 4 - Training)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "546": {
- "name": "Avoid Engaged Targets",
+ "201": {
+ "name": "The Feast (Custom Match - Feasting Grounds)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "547": {
- "name": "Engage Enemy Reinforcements",
+ "233": {
+ "name": "The Feast (Custom Match - Lichenweed)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "548": {
- "name": "Interact with the Battlefield",
+ "476": {
+ "name": "The Feast (Team Ranked)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "549": {
- "name": "Heal an Ally",
+ "478": {
+ "name": "The Feast (Ranked)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "550": {
- "name": "Heal Multiple Allies",
+ "479": {
+ "name": "The Feast (Training)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "551": {
- "name": "Avoid Engaged Targets",
+ "480": {
+ "name": "The Feast (Custom Match - Crystal Tower)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "552": {
- "name": "Final Exercise",
+ "580": {
+ "name": "The Feast (Team Custom Match - Crystal Tower)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "180": {
+ "name": "The Fields of Glory (Shatter)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "277": {
+ "name": "Astragalos",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "599": {
+ "name": "Hidden Gorge",
"tank": "0",
"healer": "0",
"dps": "0"
},
- // PvP
+ // Deep Dungeons
+ // The Palace of the Dead
+ "174": {
+ "name": "The Palace of the Dead B1~B10",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
"175": {
- "name": "The Fold",
+ "name": "The Palace of the Dead B11~B20",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "336": {
- "name": "The Fold",
+ "176": {
+ "name": "The Palace of the Dead B21~B30",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "337": {
- "name": "The Fold (Matched Party)",
+ "177": {
+ "name": "The Palace of the Dead B31~B40",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "352": {
- "name": "The Fold (Light Party)",
+ "178": {
+ "name": "The Palace of the Dead B41~B50",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "184": {
- "name": "The Fold (Matched Party)",
+ "204": {
+ "name": "The Palace of the Dead B51~B60",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "186": {
- "name": "The Fold (Light Party)",
+ "205": {
+ "name": "The Palace of the Dead B61~B70",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "376": {
- "name": "The Borderland Ruins (Secure)",
+ "206": {
+ "name": "The Palace of the Dead B71~B80",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "422": {
- "name": "The Borderland Ruins (Slaughter)",
+ "207": {
+ "name": "The Palace of the Dead B81~B90",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "431": {
- "name": "Seal Rock (Seize)",
+ "208": {
+ "name": "The Palace of the Dead B91~B100",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "518": {
- "name": "The Feast (8 on 8 - Matched Party)",
+ "209": {
+ "name": "The Palace of the Dead B101~B110",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "525": {
- "name": "The Feast (4 on 4 - Solo)",
+ "210": {
+ "name": "The Palace of the Dead B111~B120",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "526": {
- "name": "The Feast (4 on 4 - Light Party)",
+ "211": {
+ "name": "The Palace of the Dead B121~B130",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "527": {
- "name": "The Feast (4 on 4 - Solo)",
+ "212": {
+ "name": "The Palace of the Dead B131~B140",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "528": {
- "name": "The Feast (4 on 4 - Light Party)",
+ "213": {
+ "name": "The Palace of the Dead B141~B150",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "618": {
- "name": "The Feast (8 on 8 - Custom Match - Feasting Grounds)",
+ "214": {
+ "name": "The Palace of the Dead B151~B160",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "619": {
- "name": "The Feast (4 on 4 - Custom Match - Feasting Grounds)",
+ "215": {
+ "name": "The Palace of the Dead B161~B170",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "554": {
- "name": "The Fields of Glory (Shatter)",
+ "216": {
+ "name": "The Palace of the Dead B171~B180",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "217": {
+ "name": "The Palace of the Dead B181~B190",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "218": {
+ "name": "The Palace of the Dead B191~B200",
"tank": "0",
"healer": "0",
"dps": "0"
},
-
- // Deep Dungeons
- "561": {
- "name": "The Palace of the Dead B1~B10",
+ // Heaven-on-High
+ "540": {
+ "name": "Heaven-on-High (1-10)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "562": {
- "name": "The Palace of the Dead B11~B20",
+ "541": {
+ "name": "Heaven-on-High (11-20)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "563": {
- "name": "The Palace of the Dead B21~B30",
+ "542": {
+ "name": "Heaven-on-High (21-30)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "564": {
- "name": "The Palace of the Dead B31~B40",
+ "543": {
+ "name": "Heaven-on-High (31-40)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "565": {
- "name": "The Palace of the Dead B41~B50",
+ "544": {
+ "name": "Heaven-on-High (41-50)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "593": {
- "name": "The Palace of the Dead B51~B60",
+ "545": {
+ "name": "Heaven-on-High (51-60)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "594": {
- "name": "The Palace of the Dead B61~B70",
+ "546": {
+ "name": "Heaven-on-High (61-70)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "595": {
- "name": "The Palace of the Dead B71~B80",
+ "547": {
+ "name": "Heaven-on-High (71-80)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "596": {
- "name": "The Palace of the Dead B81~B90",
+ "548": {
+ "name": "Heaven-on-High (81-90)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "597": {
- "name": "The Palace of the Dead B91~B100",
+ "549": {
+ "name": "Heaven-on-High (91-100)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+
+ // The Forbidden Land, Eureka
+ "283": {
+ "name": "The Forbidden Land, Eureka Anemos",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "581": {
+ "name": "The Forbidden Land, Eureka Pagos",
"tank": "0",
"healer": "0",
"dps": "0"
},
"598": {
- "name": "The Palace of the Dead B101~B110",
+ "name": "The Forbidden Land, Eureka Pyros",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "599": {
- "name": "The Palace of the Dead B111~B120",
+ "639": {
+ "name": "The Forbidden Land, Eureka Hydatos",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+
+ // Other things...
+ "437": {
+ "name": "Triple Triad",
"tank": "0",
"healer": "0",
"dps": "0"
},
"600": {
- "name": "The Palace of the Dead B121~B130",
+ "name": "Leap of Faith",
"tank": "0",
"healer": "0",
"dps": "0"
},
"601": {
- "name": "The Palace of the Dead B131~B140",
+ "name": "Leap of Faith",
"tank": "0",
"healer": "0",
"dps": "0"
},
"602": {
- "name": "The Palace of the Dead B141~B150",
+ "name": "Leap of Faith",
"tank": "0",
"healer": "0",
"dps": "0"
},
"603": {
- "name": "The Palace of the Dead B151~B160",
+ "name": "Leap of Faith",
"tank": "0",
"healer": "0",
"dps": "0"
},
"604": {
- "name": "The Palace of the Dead B161~B170",
+ "name": "Leap of Faith",
"tank": "0",
"healer": "0",
"dps": "0"
},
"605": {
- "name": "The Palace of the Dead B171~B180",
+ "name": "Leap of Faith",
"tank": "0",
"healer": "0",
"dps": "0"
},
"606": {
- "name": "The Palace of the Dead B181~B190",
+ "name": "Leap of Faith",
"tank": "0",
"healer": "0",
"dps": "0"
},
"607": {
- "name": "The Palace of the Dead B191~B200",
+ "name": "Leap of Faith",
"tank": "0",
"healer": "0",
"dps": "0"
},
-
-
- // Other things...
- "579": {
- "name": "Triple Triad",
+ "608": {
+ "name": "Leap of Faith",
"tank": "0",
"healer": "0",
"dps": "0"
- }
- },
-
- //Event Instance
- "571": {
+ },
+ "643": {
+ "name": "Novice Mahjong (Ranked)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "644": {
+ "name": "Advanced Mahjong (Ranked)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "645": {
+ "name": "Four-player Mahjong (Kuitan Enabled)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "650": {
+ "name": "Four-player Mahjong (Kuitan Disabled)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "640": {
+ "name": "Air Force One",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "641": {
+ "name": "Air Force One",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "642": {
+ "name": "Air Force One",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+
+ //Event Instance
+ "181": {
"name": "Haunted Manor",
"tank": "0",
"healer": "0",
@@ -1572,17 +2327,18 @@
// Duty Roulette
"roulettes": {
"1": "Duty Roulette: Leveling",
- "2": "Duty Roulette: Level 50/60 Dungeons",
+ "2": "Duty Roulette: Level 50/60/70 Dungeons",
"3": "Duty Roulette: Main Scenario",
"4": "Duty Roulette: Guildhests",
"5": "Duty Roulette: Expert",
"6": "Duty Roulette: Trials",
"7": "Duty Roulette: Frontline",
- "8": "Duty Roulette: Level 70 Dungeons",
+ "8": "Duty Roulette: Level 80 Dungeons",
"9": "Duty Roulette: Mentor",
"10": "The Feast (8 on 8) - Training",
"13": "The Feast (4 on 4) - Ranked",
- "15": "Duty Roulette: Alliance Raids"
+ "15": "Duty Roulette: Alliance Raids",
+ "17": "Duty Roulette: Normal Raids"
},
// FATEs
@@ -1590,12 +2346,8 @@
"134": {
"name": "Middle La Noscea",
"fates": {
- "533": "Return of the King",
"649": "Sister Crustacean",
- "687": "Embiggened Spriggans",
"688": "Tower of Power",
- "693": "Stay Frosty",
- "717": "Gloria in Eggcelsis",
"220": "Menuis at Work",
"221": "Overnight Migration",
"222": "Go Wespe",
@@ -1622,12 +2374,7 @@
"262": "Don't Drink the Water",
"264": "Enter Beastman",
"265": "One Pickman Enters",
- "534": "Return of the King",
"333": "Under the Bridge",
- "666": "Brick by Brick",
- "667": "Brick by Stone Brick",
- "694": "Stay Frosty",
- "718": "Gloria in Eggcelsis",
"245": "One Prince",
"246": "Fight the Flower",
"249": "You Call That a Toad",
@@ -1643,7 +2390,6 @@
"271": "Thrill of the Hunt",
"272": "The Pelican Briefing",
"274": "Them",
- "532": "Return of the King",
"278": "Careless Whiskers",
"279": "No Lip",
"280": "Jewels of the Isle",
@@ -1659,13 +2405,6 @@
"566": "Cliff Hanger",
"334": "Consigned, Sealed, and Undelivered",
"335": "It's Not Lupus",
- "913": "The Sarong Song",
- "914": "The Belle of the Beach",
- "915": "Sparking Up the Wrong Beach",
- "916": "It Came from Beneath the Deep",
- "917": "Life's a Beach",
- "918": "Feeling Groggy",
- "689": "Embiggened Spriggans",
"690": "Tower of Power",
"701": "What's Yours Is Mine"
}
@@ -1684,7 +2423,6 @@
"577": "The King's Justice",
"578": "Making Waves",
"650": "Tender Buttons",
- "702": "Eggcelsior",
"289": "Absolutely, Positively",
"290": "Tender Buttons",
"291": "The Killing Fields",
@@ -1712,11 +2450,6 @@
"323": "Giant Enemy Crab",
"329": "Shell Shocked",
"331": "Peeping Ja",
- "332": "Hop, Skip, and a Jump",
- "668": "Brick by Brick",
- "669": "Brick by Stone Brick",
- "670": "Brick by Brick",
- "671": "Brick by Gold Brick",
"703": "What's Yours Is Mine",
"451": "Poor Maid's Mess",
"452": "Poor Maid's Mishap",
@@ -1765,8 +2498,6 @@
"361": "Pound for Pound",
"366": "He's Got Legs",
"367": "Staying Dead",
- "911": "Recurring Bugs",
- "683": "Embiggened Spriggans",
"684": "Tower of Power",
"704": "What's Yours Is Mine"
}
@@ -1774,7 +2505,6 @@
"141": {
"name": "Central Thanalan",
"fates": {
- "535": "Return of the King",
"370": "Something to Prove",
"373": "Like an Eft out of Water",
"374": "Wrecked Rats",
@@ -1787,25 +2517,18 @@
"383": "Big Time",
"385": "Cold-blooded",
"389": "A Warm Welcome",
- "393": "Leaving the Nest",
- "912": "Recurring Bugs",
- "660": "Brick by Brick",
- "661": "Brick by Stone Brick",
- "695": "Stay Frosty",
- "719": "Gloria in Eggcelsis"
+ "393": "Leaving the Nest"
}
},
"145": {
"name": "Eastern Thanalan",
"fates": {
- "536": "Return of the King",
"540": "Quartz Coupling",
"541": "A Man Rides Through",
"542": "Bad Hair Day",
"543": "The Big Bagoly Theory",
"394": "Men Who See Goats",
"395": "License to Quill",
- "652": "Lightning Strikes - Armored Beast",
"397": "Westward Bound",
"398": "Bad Camp",
"400": "Bazaar Blood Triangle",
@@ -1816,14 +2539,11 @@
"409": "Desert Rose",
"412": "Almost Paradise",
"413": "Deep in the Heart of Sagolii",
- "696": "Stay Frosty",
"191": "Attack on Highbridge: Prelude",
"192": "Attack on Highbridge: Act I",
"193": "Attack on Highbridge: Act II",
"194": "Attack on Highbridge: Act III",
- "195": "Attack on Highbridge: Denouement",
- "705": "Eggcelsior",
- "720": "Gloria in Eggcelsis"
+ "195": "Attack on Highbridge: Denouement"
}
},
"146": {
@@ -1841,8 +2561,6 @@
"555": "Fallen Corpses Writhe in Style",
"557": "Quenching the Flame",
"558": "He's a Firestarter",
- "651": "Lightning Strikes - Armored Beast",
- "685": "Embiggened Spriggans",
"686": "Tower of Power",
"706": "What's Yours Is Mine",
"419": "Adventures in Throat Slitting",
@@ -1888,7 +2606,6 @@
"148": {
"name": "Central Shroud",
"fates": {
- "537": "Return of the King",
"600": "The Lindwurm Has Turned",
"601": "What's Your Poison",
"602": "Revenant Things",
@@ -1912,9 +2629,6 @@
"140": "Spirithold Run",
"141": "Love is in the Air",
"142": "There's Something about Lou",
- "672": "Brick by Brick",
- "673": "Brick by Stone Brick",
- "697": "Stay Frosty",
"707": "What's Yours Is Mine",
"196": "Steel Reign",
"197": "Steel Reign",
@@ -1945,7 +2659,6 @@
"150": "Jack of All Trades",
"151": "줄다리 사투",
"152": "Protecting the Patch",
- "679": "Embiggened Spriggans",
"680": "Tower of Power",
"691": "A Wrench in the Works",
"692": "What a Boar",
@@ -1982,7 +2695,6 @@
"170": "To Whom the Toll Goes",
"171": "Eat In, Hide Out",
"172": "Robbin' Goblins",
- "681": "Embiggened Spriggans",
"682": "Tower of Power",
"190": "Where the Stone Rolls",
"708": "What's Yours Is Mine",
@@ -1996,15 +2708,10 @@
"154": {
"name": "North Shroud",
"fates": {
- "538": "Return of the King",
"631": "Don't Disturb This Grove",
"632": "Rude Awakening",
"633": "Air Supply",
"634": "Smells Like Tree Spirit",
- "674": "Brick by Brick",
- "675": "Brick by Stone Brick",
- "676": "Brick by Brick",
- "677": "Brick by Gold Brick",
"174": "No Birds Allowed",
"178": "Dschubba Snacks",
"179": "Now Fall",
@@ -2012,24 +2719,18 @@
"183": "Breaking Bud",
"184": "The Magical Fruit",
"185": "Micromanaging",
- "698": "Stay Frosty",
"187": "The Big Issue",
"188": "It Ziz What It Is",
"189": "Hare Today",
"205": "Steel Reign",
"206": "Steel Reign",
"207": "Steel Reign",
- "722": "Gloria in Eggcelsis",
"216": "Waiting for a Moon to Fall"
}
},
"155": {
"name": "Coerthas Central Highlands",
"fates": {
- "653": "Lightning Strikes - Dread on Arrival",
- "654": "Lightning Strikes - Dread on Arrival",
- "699": "Stay Frosty",
- "709": "Eggcelsior",
"460": "Twelve Ilms of Snow",
"463": "Baa Baa Black Sheep",
"464": "Gavial",
@@ -2085,11 +2786,7 @@
"526": "Home Is Where the Horn Is",
"527": "Gone with the Shadow",
"529": "The Prodigal Son",
- "530": "V for Vinedetta",
- "655": "Lightning Strikes - Anubys Assault",
- "656": "Lightning Strikes - Anubys Assault",
- "657": "Lightning Strikes - On Wings of Chaos",
- "658": "Lightning Strikes - On Wings of Chaos"
+ "530": "V for Vinedetta"
}
},
"397": {
@@ -2159,6 +2856,17 @@
"399": {
"name": "The Dravanian Hinterlands",
"fates": {
+ "756": "Metal Gears Rising",
+ "757": "Metal Gears Revengeance",
+ "758": "Metal Gears Revengeance 2",
+ "759": "Tarantula Hawk, Pro Stinger",
+ "760": "Wild Wilde Death",
+ "761": "Gets the Red Out",
+ "762": "Makes the Very Best...Nests",
+ "763": "Olympus Has Pollen",
+ "764": "Feed Me, See More",
+ "766": "Pop Goes the Whizzle",
+ "767": "Revenge of the Vengeful Revengeance",
"768": "Ratel and Hum",
"769": "Dobharch Did It for the Best",
"770": "Infant Vangob",
@@ -2176,18 +2884,7 @@
"783": "Toad Alone",
"784": "How Do You Feed a Hungry Manlike Monster",
"785": "Out of the Woodwork",
- "786": "Silkworm",
- "756": "Metal Gears Rising",
- "757": "Metal Gears Revengeance",
- "758": "Metal Gears Revengeance 2",
- "759": "Tarantula Hawk, Pro Stinger",
- "760": "Wild Wilde Death",
- "761": "Gets the Red Out",
- "762": "Makes the Very Best...Nests",
- "763": "Olympus Has Pollen",
- "764": "Feed Me, See More",
- "766": "Pop Goes the Whizzle",
- "767": "Revenge of the Vengeful Revengeance"
+ "786": "Silkworm"
}
},
"400": {
@@ -2283,48 +2980,15 @@
"901": "Do Spinners Dream of Electric Rooks"
}
},
- "612": {
- "name": "Stormblood",
+ "351": {
+ "name": "Diadem",
"fates": {
- "932": "Our Favorite Pastime",
- "933": "The Way of the Samurai",
- "934": "Serket Breaker",
- "935": "The Key to Amatsu: Kyori",
- "936": "Pounding Rice, Pounding Hearts",
- "937": "Pounding Rice, Pounding Hearts",
- "938": "Pounding Rice, Pounding Hearts",
- "939": "Pounding Rice, Pounding Hearts",
- "940": "Pounding Rice, Pounding Hearts",
- "941": "Pounding Rice, Pounding Hearts",
- "942": "Eggstract and Eggspedite",
- "943": "Eggstract and Eggspedite",
- "944": "Eggstract and Eggspedite",
- "945": "In Deep Water",
- "946": "Trial by Fire",
- "959": "Pounding More Mochi, Pounding More Hearts",
- "960": "Pounding More Mochi, Pounding More Hearts",
- "963": "Excitable Boys",
"964": "Mad Ventures in Retainer-sitting",
- "965": "Excitable Boys",
- "966": "Prepare for Gory",
- "967": "Prepare for Gory",
- "968": "Secret of the Lost Legend",
- "969": "Excitable Boys",
- "970": "Slaughter of the Lost Legend",
- "971": "Embrace of the Serpent",
- "972": "The Pelican Grief",
- "973": "Excitable Boys",
- "974": "Late Night Torama Queen",
- "975": "Late Night Torama Queen",
"976": "Mad Ventures in Retainer-sitting",
- "977": "Crawllateral Damage",
- "978": "Excitable Boys",
"979": "Mad Ventures in Retainer-sitting",
- "980": "I Can Wring a Rainbow",
- "981": "I Can Wring a Rainbow",
- "982": "I Can Wring a Rainbow",
- "983": "Excitable Boys",
- "984": "Excitable Boys",
+ "1034": "Mad Ventures in Retainer-sitting",
+ "1062": "Mad Ventures in Retainer-sitting",
+ "1085": "Mad Ventures in Retainer-sitting",
"985": "Shard to Get",
"986": "Shard to Get",
"987": "Shard to Get",
@@ -2337,33 +3001,77 @@
"994": "Shard to Get",
"995": "Shard to Get",
"996": "Shard to Get",
- "997": "Excitable Boys",
- "998": "How I Met Your Marid",
"999": "Shard to Get",
"1000": "Shard to Get",
"1001": "Shard to Get",
"1002": "Shard to Get",
"1003": "Shard to Get",
"1004": "Shard to Get",
+ "963": "Excitable Boys",
+ "965": "Excitable Boys",
+ "969": "Excitable Boys",
+ "973": "Excitable Boys",
+ "978": "Excitable Boys",
+ "983": "Excitable Boys",
+ "984": "Excitable Boys",
+ "997": "Excitable Boys",
+ "1009": "Excitable Boys",
+ "1023": "Excitable Boys",
+ "1036": "Excitable Boys",
+ "1040": "Excitable Boys",
+ "1044": "Excitable Boys",
+ "1045": "Excitable Boys",
+ "1046": "Excitable Boys",
+ "1049": "Excitable Boys",
+ "1051": "Excitable Boys",
+ "1055": "Excitable Boys",
+ "1060": "Excitable Boys",
+ "1061": "Excitable Boys",
+ "1069": "Excitable Boys",
+ "1075": "Excitable Boys",
+ "1077": "Excitable Boys",
+ "1078": "Excitable Boys",
+ "1081": "Excitable Boys",
+ "1083": "Excitable Boys",
+ "1086": "Excitable Boys",
+ "1089": "Excitable Boys",
+ "1090": "Excitable Boys",
"1005": "Root of the Problem",
"1006": "Root of the Problem",
"1007": "Root of the Problem",
+ "1072": "Root of the Problem",
+ "980": "I Can Wring a Rainbow",
+ "981": "I Can Wring a Rainbow",
+ "982": "I Can Wring a Rainbow",
+ "1016": "Who'll Stop the Sovereign",
+ "1017": "Who'll Stop the Sovereign",
+ "1018": "Who'll Stop the Sovereign",
+ "998": "How I Met Your Marid",
+ "1098": "How I Met Your Marid",
+ "1073": "Good-bye Solo",
+ "1091": "Who's for Dinner",
+ "1092": "Who's for Dinner",
+ "1093": "Who's for Dinner",
+ "1020": "Battle Toads",
+ "1021": "Battle Toads",
+ "1022": "Battle Toads",
+ "966": "Prepare for Gory",
+ "967": "Prepare for Gory",
+ "968": "Secret of the Lost Legend",
+ "970": "Slaughter of the Lost Legend",
+ "971": "Embrace of the Serpent",
+ "972": "The Pelican Grief",
+ "974": "Late Night Torama Queen",
+ "975": "Late Night Torama Queen",
+ "977": "Crawllateral Damage",
"1008": "Nice Pirates",
- "1009": "Excitable Boys",
"1010": "Pretty Flies",
"1011": "Late-night Snack",
"1012": "Late-night Snack",
"1013": "Any Which Way",
"1014": "Any Which Way",
"1015": "Nice Pirates",
- "1016": "Who'll Stop the Sovereign",
- "1017": "Who'll Stop the Sovereign",
- "1018": "Who'll Stop the Sovereign",
"1019": "Hard of Heren",
- "1020": "Battle Toads",
- "1021": "Battle Toads",
- "1022": "Battle Toads",
- "1023": "Excitable Boys",
"1024": "Loose Endymions",
"1025": "Bounty Hunter",
"1026": "Bounty Hunter",
@@ -2374,82 +3082,50 @@
"1031": "Cloudy with a Chance of...Thal's Balls",
"1032": "Cloudy with a Chance of...Thal's Balls",
"1033": "Cloudy with a Chance of...Thal's Balls",
- "1034": "Mad Ventures in Retainer-sitting",
"1035": "Where's the Beef",
- "1036": "Excitable Boys",
"1037": "Sticking Celphies",
"1038": "Can You Smell the Blood Tonight",
"1039": "Can You Smell the Blood Tonight",
- "1040": "Excitable Boys",
"1041": "Hail to the E",
"1042": "Lunantishee in the Sky",
"1043": "Lunantishee in the Sky",
- "1044": "Excitable Boys",
- "1045": "Excitable Boys",
- "1046": "Excitable Boys",
"1047": "Whiplash",
"1048": "Whiplash",
- "1049": "Excitable Boys",
"1050": "Blood Wings",
- "1051": "Excitable Boys",
"1052": "NOT THE TREES",
"1053": "NOT THE TREES",
"1054": "NOT THE TREES",
- "1055": "Excitable Boys",
"1056": "Tightropen",
"1057": "I'm the Scatman",
"1058": "Wild Hunt",
"1059": "Wild Hunt",
- "1060": "Excitable Boys",
- "1061": "Excitable Boys",
- "1062": "Mad Ventures in Retainer-sitting",
"1063": "(You're) Killing My Mitelings",
"1064": "(You're) Killing My Mitelings",
"1065": "(You're) Killing My Mitelings",
"1066": "(You're) Killing My Mitelings",
"1067": "(You're) Having My Mitelings",
"1068": "Nice Pirates",
- "1069": "Excitable Boys",
"1070": "(You're Not) Having My Mitelings",
"1071": "(You're Not) Having My Mitelings",
- "1072": "Root of the Problem",
- "1073": "Good-bye Solo",
"1074": "Purple Haze",
- "1075": "Excitable Boys",
"1076": "Fly by Day",
- "1077": "Excitable Boys",
- "1078": "Excitable Boys",
"1079": "Forest for the Trees",
"1080": "Forest for the Trees",
- "1081": "Excitable Boys",
"1082": "Hard of Heren",
- "1083": "Excitable Boys",
"1084": "The Other White Meat",
- "1085": "Mad Ventures in Retainer-sitting",
- "1086": "Excitable Boys",
"1087": "Westwhirled",
"1088": "Am I Blue",
- "1089": "Excitable Boys",
- "1090": "Excitable Boys",
- "1091": "Who's for Dinner",
- "1092": "Who's for Dinner",
- "1093": "Who's for Dinner",
"1094": "On the Inside",
"1095": "Blacker than the Foulest Witch",
"1096": "Blacker than the Foulest Witch",
"1097": "Blacker than the Foulest Witch",
- "1098": "How I Met Your Marid",
"1099": "Lunantishee in the Sky",
- "1100": "Pretty Flies",
- "1103": "A Horse Outside",
- "1104": "A Horse Outside",
- "1105": "A Horse Outside",
- "1106": "Foxy Lady",
- "1107": "Foxy Lady",
- "1108": "Foxy Lady",
- "1109": "Outfoxed",
- "1110": "Freedom Flies",
- "1111": "More to Offer",
+ "1100": "Pretty Flies"
+ }
+ },
+ "411": {
+ "name": "The Fringes",
+ "fates": {
"1112": "Showing the Recruits What For",
"1113": "Showing the Officers What For",
"1114": "Showing the Commanders What For",
@@ -2478,37 +3154,12 @@
"1138": "Ananta and Her Sisters",
"1139": "Raisin' Hell",
"1140": "Yes, This Is Dogs",
- "1141": "M Bop",
- "1142": "Wet",
- "1143": "Clean Bill of Health",
- "1144": "Quoth the Raven",
- "1145": "Lay of the Lang",
- "1146": "Pool Party",
- "1147": "Soak Up the Sun",
- "1148": "Agni's Philosophy",
- "1149": "The Coral High Ground",
- "1150": "The Big Banquet Theory",
- "1151": "Uncivil Serpents",
- "1152": "Ray Band",
- "1153": "Princess, Princess",
- "1154": "Kill the Messenger",
- "1155": "The F-bomb",
- "1156": "Raise the Red Flag",
- "1157": "Double Dream Clams",
- "1158": "There Be Dragonflies",
- "1159": "Bilge-hold Jin",
- "1160": "Days of Plunder",
- "1161": "Forever Younglier",
- "1162": "Treasure Island",
- "1163": "Sailor Marooned",
- "1164": "Jumping the Shark",
- "1165": "Red Cliff",
- "1166": "Ranging Bull",
- "1167": "Another One Bites the Dust",
- "1168": "Turtle Power",
- "1170": "Crab Mentality",
- "1171": "Independence Ray",
- "1172": "Never Say Daimyo",
+ "1141": "M Bop"
+ }
+ },
+ "412": {
+ "name": "The Peaks",
+ "fates": {
"1173": "A New Leaf",
"1174": "Salad Days",
"1175": "A Bone to Pick",
@@ -2540,7 +3191,95 @@
"1203": "Das Bhoot",
"1204": "5-year Energy",
"1205": "Mouth for Water",
- "1207": "The Magitek Is Back",
+ "1207": "The Magitek Is Back"
+ }
+ },
+ "413": {
+ "name": "The Lochs",
+ "fates": {
+ "1103": "A Horse Outside",
+ "1104": "A Horse Outside",
+ "1105": "A Horse Outside",
+ "1272": "Off Their Yabby",
+ "1273": "Foul Bachelor Frogamander",
+ "1274": "Old Bucket of Boruta",
+ "1275": "Dusk Till Abaddon",
+ "1276": "The Smell That Leeched Her Heart",
+ "1277": "Tall Tale",
+ "1278": "Taking Kurrea Business",
+ "1279": "Dude, Where's My Karya",
+ "1280": "Sisyphus Cooling",
+ "1281": "Minotaurs on My Mind",
+ "1282": "Dive In",
+ "1283": "Pounding Salt",
+ "1284": "Lalla Land",
+ "1285": "When It Pains It Pours",
+ "1286": "Sob Story",
+ "1287": "Par for the Course",
+ "1288": "Sip When I'm Dead",
+ "1289": "Who's Phoebad",
+ "1290": "Yabby Hunters",
+ "1291": "Enemy Territory",
+ "1292": "One Bad Mother Chukwa",
+ "1293": "Give Bees a Chance",
+ "1294": "About Face",
+ "1295": "No Time Is a Good Time",
+ "1296": "Mazeless Runner",
+ "1297": "Kingsgrave",
+ "1298": "Fate No Morpho",
+ "1299": "I Can Feel the Earth Move",
+ "1300": "To Leech His Own",
+ "1301": "Tellus a Tale",
+ "1302": "OK, Golem",
+ "1303": "Ancelot's Fear",
+ "1304": "Ancelot's Folly",
+ "1305": "Ancelot's Finale"
+ }
+ },
+ "421": {
+ "name": "The Ruby Sea",
+ "fates": {
+ "1142": "Wet",
+ "1143": "Clean Bill of Health",
+ "1144": "Quoth the Raven",
+ "1145": "Lay of the Lang",
+ "1146": "Pool Party",
+ "1147": "Soak Up the Sun",
+ "1148": "Agni's Philosophy",
+ "1149": "The Coral High Ground",
+ "1150": "The Big Banquet Theory",
+ "1151": "Uncivil Serpents",
+ "1152": "Ray Band",
+ "1153": "Princess, Princess",
+ "1154": "Kill the Messenger",
+ "1155": "The F-bomb",
+ "1156": "Raise the Red Flag",
+ "1157": "Double Dream Clams",
+ "1158": "There Be Dragonflies",
+ "1159": "Bilge-hold Jin",
+ "1160": "Days of Plunder",
+ "1161": "Forever Younglier",
+ "1162": "Treasure Island",
+ "1163": "Sailor Marooned",
+ "1164": "Jumping the Shark",
+ "1165": "Red Cliff",
+ "1166": "Ranging Bull",
+ "1167": "Another One Bites the Dust",
+ "1168": "Turtle Power",
+ "1170": "Crab Mentality",
+ "1171": "Independence Ray",
+ "1172": "Never Say Daimyo"
+ }
+ },
+ "422": {
+ "name": "Yanxia",
+ "fates": {
+ "1106": "Foxy Lady",
+ "1107": "Foxy Lady",
+ "1108": "Foxy Lady",
+ "1109": "Outfoxed",
+ "1110": "Freedom Flies",
+ "1111": "More to Offer",
"1208": "A Tisket, A Tasket",
"1209": "A Fish to Fry",
"1210": "Falling Drown",
@@ -2574,7 +3313,12 @@
"1238": "Curiosity Killed the Catfish",
"1239": "The Virgin Homicides",
"1240": "Dead to Rites: Kiyofusa",
- "1241": "Dead to Rites: Koja",
+ "1241": "Dead to Rites: Koja"
+ }
+ },
+ "423": {
+ "name": "The Azim Steppe",
+ "fates": {
"1242": "Don't You Mean Kirata",
"1243": "The State of Reunion",
"1244": "Cold Comes the Wind",
@@ -2605,40 +3349,6 @@
"1269": "They Shall Not Want",
"1270": "A Walk Through the Valley",
"1271": "Live for the Mettle",
- "1272": "Off Their Yabby",
- "1273": "Foul Bachelor Frogamander",
- "1274": "Old Bucket of Boruta",
- "1275": "Dusk Till Abaddon",
- "1276": "The Smell That Leeched Her Heart",
- "1277": "Tall Tale",
- "1278": "Taking Kurrea Business",
- "1279": "Dude, Where's My Karya",
- "1280": "Sisyphus Cooling",
- "1281": "Minotaurs on My Mind",
- "1282": "Dive In",
- "1283": "Pounding Salt",
- "1284": "Lalla Land",
- "1285": "When It Pains It Pours",
- "1286": "Sob Story",
- "1287": "Par for the Course",
- "1288": "Sip When I'm Dead",
- "1289": "Who's Phoebad",
- "1290": "Yabby Hunters",
- "1291": "Enemy Territory",
- "1292": "One Bad Mother Chukwa",
- "1293": "Give Bees a Chance",
- "1294": "About Face",
- "1295": "No Time Is a Good Time",
- "1296": "Mazeless Runner",
- "1297": "Kingsgrave",
- "1298": "Fate No Morpho",
- "1299": "I Can Feel the Earth Move",
- "1300": "To Leech His Own",
- "1301": "Tellus a Tale",
- "1302": "OK, Golem",
- "1303": "Ancelot's Fear",
- "1304": "Ancelot's Folly",
- "1305": "Ancelot's Finale",
"1306": "The Dataqi Chronicles: Departures",
"1307": "The Dataqi Chronicles: Distractions",
"1308": "The Dataqi Chronicles: Duty",
@@ -2651,12 +3361,244 @@
"1316": "The Dataqi Chronicles: Decimation",
"1318": "The Dataqi Chronicles: Divergence",
"1319": "The Dataqi Chronicles: Declarations",
- "1320": "The Dataqi Chronicles: Dominion",
- "1321": "The Summer of Ultros",
- "1322": "To Bait a Baiter",
- "1323": "Snippers Gonna Snip",
- "1324": "Adopt a Beach"
+ "1320": "The Dataqi Chronicles: Dominion"
+ }
+ },
+ "999": {
+ "name": "Eureka - Anemos",
+ "fates": {
+ "1328": "The Swarm Never Sets",
+ "1329": "Wall in the Willows",
+ "1331": "Wine and Honey",
+ "1332": "Unsafety Dance",
+ "1333": "Teles House",
+ "1334": "Prove Your Amemettle",
+ "1335": "Caym What May",
+ "1336": "The Killing of a Sacred Bombardier",
+ "1337": "Sing, Muse",
+ "1338": "Drama Lamashtu",
+ "1339": "Short Serket 2",
+ "1340": "I Amarok",
+ "1341": "To the Mat",
+ "1342": "Simurghasbord",
+ "1343": "When You Ride Alone",
+ "1344": "One Missed Callisto",
+ "1345": "Disinherit the Wind",
+ "1346": "Don't Judge Me, Morbol",
+ "1347": "By Numbers",
+ "1348": "The Shadow over Anemos"
+ }
+ },
+ "998": {
+ "name": "Eureka - Pagos",
+ "fates": {
+ "1351": "Eternity",
+ "1352": "Cows for Concern",
+ "1353": "Ash the Magic Dragon",
+ "1354": "Conqueror Worm",
+ "1355": "Melting Point",
+ "1356": "Disorder in the Court",
+ "1357": "Does It Have to Be a Snowman",
+ "1358": "Brothers",
+ "1359": "Eye of Horus",
+ "1360": "Morte Arthro",
+ "1361": "Apocalypse Cow",
+ "1362": "Third Impact",
+ "1363": "Eye Scream for Ice Cream",
+ "1364": "Louhi on Ice",
+ "1365": "Cassie and the Copycats",
+ "1366": "The Wobbler in Darkness",
+ "1367": "Down the Rabbit Hole",
+ "1368": "Curiouser and Curiouser",
+ "1369": "Cairn Blight 451"
+ }
+ },
+ "997": {
+ "name": "Eureka - Pyros",
+ "fates": {
+ "1388": "Medias Res",
+ "1389": "High Voltage",
+ "1390": "On the Non-existent",
+ "1391": "Creepy Doll",
+ "1392": "Quiet, Please",
+ "1393": "Up and Batym",
+ "1394": "Rondo Aetolus",
+ "1395": "Scorchpion King",
+ "1396": "Burning Hunger",
+ "1397": "Dry Iris",
+ "1398": "Thirty Whacks",
+ "1399": "Put Up Your Dux",
+ "1400": "You Do Know Jack",
+ "1401": "Mister Bright-eyes",
+ "1402": "Haunter of the Dark",
+ "1403": "Heavens' Warg",
+ "1404": "Lost Epic",
+ "1407": "We're All Mad Here",
+ "1408": "Uncommon Nonsense"
+ }
+ },
+ "1004": {
+ "name": "Eureka - Hydatos",
+ "fates": {
+ "1412": "I Ink, Therefore I Am",
+ "1413": "From Tusk till Dawn",
+ "1414": "Bullheaded Berserker",
+ "1415": "Mad, Bad, and Fabulous to Know",
+ "1416": "Fearful Symmetry",
+ "1417": "Crawling Chaos",
+ "1418": "Duty-free",
+ "1419": "Leukewarm Reception",
+ "1420": "Robber Barong",
+ "1421": "Stone-cold Killer",
+ "1422": "The Baldesion Arsenal: Expedition Support",
+ "1423": "Crystalline Provenance",
+ "1424": "I Don't Want to Believe",
+ "1425": "Drink Me"
+ }
+ },
+ "501": {
+ "name": "Lakeland",
+ "fates": {
+ "1496": "Looming Nightshade",
+ "1497": "Creeping Nightshade",
+ "1498": "Draconian Measures",
+ "1499": "Cry Not Wolf",
+ "1500": "Pick-up Sticks",
+ "1501": "Flowering Nightshade",
+ "1502": "Subtle Nightshade",
+ "1503": "Toxic Nightshade",
+ "1504": "Deadly Nightshade",
+ "1505": "Economic Peril",
+ "1506": "Don't Feed the Gremlins",
+ "1507": "A Beast among Men",
+ "1508": "Little Gate of Horrors",
+ "1509": "Behind Anemone Lines",
+ "1510": "Calm a Chameleon"
+ }
+ },
+ "502": {
+ "name": "Kholusia",
+ "fates": {
+ "1462": "Foes Most Formidable",
+ "1463": "A Family Most Formidable",
+ "1464": "A Finale Most Formidable",
+ "1465": "Shadow Over Stilltide",
+ "1466": "Shadow Over Stilltide",
+ "1467": "The Wright Stuff",
+ "1468": "The Wright Stuff",
+ "1469": "Bitter Barley",
+ "1470": "JELL-NO",
+ "1471": "Roadside Dinner",
+ "1472": "One-punch Mantis",
+ "1473": "Knockout",
+ "1474": "Season of Our Discord",
+ "1475": "The Amity Village Horror",
+ "1476": "Not Today",
+ "1477": "Ironbeard Builders - Rebuilt",
+ "1478": "Ironbeard Builders - Resist",
+ "1479": "Ironbeard Builders - Revolt"
+ }
+ },
+ "503": {
+ "name": "Amh Araeng",
+ "fates": {
+ "1511": "Scavengers Hunted",
+ "1512": "Reptilian Roadblock",
+ "1513": "Cactus Makes Perfect",
+ "1514": "Theft from Above",
+ "1515": "Sand and Deliver",
+ "1516": "This Time, It's Personal",
+ "1517": "Armadillo Peccadillo",
+ "1518": "The Elderblade",
+ "1519": "Harbingers of Bloom",
+ "1520": "Pray Destroy the Waking Sands",
+ "1521": "Tolba No. 1",
+ "1522": "Bayawak Attack",
+ "1523": "Bloody Simple",
+ "1524": "Baddie Longlegs",
+ "1525": "The Odd Couple",
+ "1526": "Anti-eruption Measures",
+ "1527": "Let's Dance (with Swords)"
+ }
+ },
+ "504": {
+ "name": "Il Mheg",
+ "fates": {
+ "1480": "Frog Standard",
+ "1481": "Great Daens",
+ "1482": "Fuath of Habit",
+ "1483": "Back and Fuath",
+ "1484": "Brute Fuath",
+ "1485": "Breaking the Fuath Wall",
+ "1486": "Go Fuath a Conqueror",
+ "1487": "Fuath to Be Reckoned With",
+ "1488": "Mad Magic",
+ "1489": "Bear Necessities",
+ "1490": "Weave 'Em and Weep",
+ "1491": "Locus Terribilis",
+ "1492": "Twice Upon a Time",
+ "1493": "Hedge Mazed",
+ "1494": "Thrice Upon a Time",
+ "1495": "Once Upon a Time",
+ "1531": "Great Daens",
+ "1532": "Fuath of Habit",
+ "1533": "Back and Fuath"
+ }
+ },
+ "505": {
+ "name": "The Rak'tika Greatwood",
+ "fates": {
+ "1441": "Barking Mad",
+ "1442": "Creepy Crawlers",
+ "1443": "Pluck of the Draw",
+ "1444": "The End of the Sentry",
+ "1445": "Tojil War",
+ "1446": "Tojil Annihilation",
+ "1447": "Tojil Annihilation",
+ "1448": "Tojil Carnage",
+ "1449": "Tojil Carnage",
+ "1450": "Tojil Eclipse",
+ "1528": "Tojil Carnage",
+ "1529": "Tojil Carnage",
+ "1530": "Tojil Eclipse",
+ "1451": "I'll Be Bark",
+ "1452": "We Are Venom",
+ "1453": "Picking up the Pieces",
+ "1454": "Six Fulm Turkeys",
+ "1455": "Dark Matters",
+ "1456": "Attack of the Killer Tomatl",
+ "1457": "Queen of the Harpies",
+ "1458": "Nest of Kin",
+ "1459": "Monkeying Around",
+ "1460": "Shot Through the Hart",
+ "1461": "Attack the Block"
+ }
+ },
+ "506": {
+ "name": "The Tempest",
+ "fates": {
+ "1426": "Where Has the Dagon",
+ "1427": "Ondo of Blood",
+ "1428": "Lookin' Back on the Track",
+ "1429": "Coral Support",
+ "1430": "Low Coral Fiber",
+ "1431": "Nothing Like a Trappin' Life",
+ "1432": "The Head, the Tail, the Whole Damned Thing",
+ "1433": "The Devil in the Deep Blue Sea",
+ "1434": "The Seashells He Sells",
+ "1435": "Pearls Apart",
+ "1436": "My Friend's Enemy is Anemone of Mine",
+ "1437": "The Nets Best Thing",
+ "1438": "Hydrozoan of the Enders",
+ "1439": "A Lot to Swallow",
+ "1440": "Natural Prawn Killers"
+ }
+ },
+ "1005": {
+ "name": "The Events",
+ "fates": {
+
}
}
}
-}
+}
\ No newline at end of file
diff --git a/App/Resources/Data/fr-fr.json b/App/Resources/Data/fr-fr.json
index 68c49c6..b611157 100644
--- a/App/Resources/Data/fr-fr.json
+++ b/App/Resources/Data/fr-fr.json
@@ -1,102 +1,102 @@
{
// Version
- "version": "20171029.1",
+ "version": "20191030.1",
// Duty
"instances": {
// 2.0 A Realm Reborn
// 2.0 Dungeons
- "157": {
+ "4": {
"name": "Sastasha",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "158": {
+ "8": {
"name": "le Bivouac de Brayflox",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "159": {
+ "10": {
"name": "le Palais du Vagabond",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "161": {
+ "3": {
"name": "les Mines de Clochecuivre",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "162": {
+ "7": {
"name": "Halatali",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "163": {
+ "9": {
"name": "le Temple enseveli de Qarn",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "164": {
+ "2": {
"name": "l'Hypogée de Tam-Tara",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "166": {
+ "6": {
"name": "le Manoir des Haukke",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "167": {
+ "14": {
"name": "le Château d'Amdapor",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "168": {
+ "11": {
"name": "le Vigile de Pierre",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "169": {
+ "1": {
"name": "les Mille Gueules de Toto-Rak",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "170": {
+ "12": {
"name": "le Gouffre hurlant",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "171": {
+ "13": {
"name": "la Forteresse de Dzemael",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "172": {
+ "5": {
"name": "le Val d'Aurum",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "217": {
+ "15": {
"name": "Castrum Meridianum",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "224": {
+ "16": {
"name": "le Praetorium",
"tank": "2",
"healer": "2",
@@ -104,43 +104,43 @@
},
// 2.0 Trials
- "202": {
+ "56": {
"name": "le Cratère des tisons",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "206": {
+ "57": {
"name": "le Nombril",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "208": {
+ "58": {
"name": "Hurlœil",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "292": {
+ "59": {
"name": "le Cratère des tisons (brutal)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "293": {
+ "60": {
"name": "le Nombril (brutal)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "294": {
+ "61": {
"name": "Hurlœil (brutal)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "332": {
+ "62": {
"name": "le Cap Vendouest",
"tank": "2",
"healer": "2",
@@ -150,19 +150,19 @@
// 2.1 A Realm Awoken
// 2.1 Dungeons
- "160": {
+ "17": {
"name": "le Phare de Sirius",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "349": {
+ "18": {
"name": "les Mines de Clochecuivre (brutal)",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "350": {
+ "19": {
"name": "le Manoir des Haukke (brutal)",
"tank": "1",
"healer": "1",
@@ -170,44 +170,44 @@
},
// 2.1 Trials
- "207": {
+ "66": {
"name": "la Lisière de ronces (brutal)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "295": {
+ "63": {
"name": "le Cratère des tisons (extrême)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "296": {
+ "64": {
"name": "le Nombril (extrême)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "297": {
+ "65": {
"name": "Hurlœil (extrême)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "348": {
+ "68": {
"name": "le fléau d'Ultima",
"tank": "2",
"healer": "2",
"dps": "4"
},
// 2.16 Trials
- "368": {
+ "74": {
"name": "la chimère dhorme du Coerthas",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "369": {
+ "75": {
"name": "l'hydre d'Halatali",
"tank": "2",
"healer": "2",
@@ -215,37 +215,37 @@
},
// 2.1 Raids
- "174": {
+ "92": {
"name": "la Tour de Cristal - Dédale antique",
- "tank": "6",
+ "tank": "3",
"healer": "6",
- "dps": "12"
+ "dps": "15"
},
- "241": {
+ "93": {
"name": "le Labyrinthe de Bahamut I",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "242": {
+ "94": {
"name": "le Labyrinthe de Bahamut II",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "243": {
+ "95": {
"name": "le Labyrinthe de Bahamut III",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "244": {
+ "96": {
"name": "le Labyrinthe de Bahamut IV",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "245": {
+ "97": {
"name": "le Labyrinthe de Bahamut V",
"tank": "2",
"healer": "2",
@@ -255,19 +255,19 @@
// 2.2 Through the Maelstrom
// 2.2 Dungeons
- "363": {
+ "22": {
"name": "les Vestiges de la cité d'Amdapor",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "360": {
+ "21": {
"name": "Halatali (brutal)",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "362": {
+ "20": {
"name": "le Bivouac de Brayflox (brutal)",
"tank": "1",
"healer": "1",
@@ -275,25 +275,25 @@
},
// 2.2 Trials
- "281": {
+ "72": {
"name": "le Briseur de marées (brutal)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "359": {
+ "73": {
"name": "le Briseur de marées (extrême)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "364": {
+ "67": {
"name": "la Lisière de ronces (extrême)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "366": {
+ "76": {
"name": "Affrontement sur le grand pont",
"tank": "2",
"healer": "2",
@@ -301,25 +301,25 @@
},
// 2.2 Raids
- "355": {
+ "98": {
"name": "les Méandres de Bahamut I",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "356": {
+ "99": {
"name": "les Méandres de Bahamut II",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "357": {
+ "100": {
"name": "les Méandres de Bahamut III",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "358": {
+ "101": {
"name": "les Méandres de Bahamut IV",
"tank": "2",
"healer": "2",
@@ -329,19 +329,19 @@
// 2.3 Defenders of Eorzea
// 2.3 Dungeons
- "361": {
+ "23": {
"name": "l'Île de Crèvecarène",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "365": {
+ "25": {
"name": "le Vigile de Pierre (brutal)",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "373": {
+ "24": {
"name": "l'Hypogée de Tam-Tara (brutal)",
"tank": "1",
"healer": "1",
@@ -349,13 +349,13 @@
},
// 2.3 Trials
- "374": {
+ "77": {
"name": "l'Arbre du jugement (brutal)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "375": {
+ "78": {
"name": "l'Arbre du jugement (extrême)",
"tank": "2",
"healer": "2",
@@ -363,31 +363,31 @@
},
// 2.3 Raids
- "372": {
+ "102": {
"name": "la Tour de Cristal - Tour de Syrcus",
"tank": "3",
"healer": "6",
"dps": "15"
},
- "380": {
+ "103": {
"name": "les Méandres de Bahamut I (sadique)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "381": {
+ "104": {
"name": "les Méandres de Bahamut II (sadique)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "382": {
+ "105": {
"name": "les Méandres de Bahamut III (sadique)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "383": {
+ "106": {
"name": "les Méandres de Bahamut IV (sadique)",
"tank": "2",
"healer": "2",
@@ -397,19 +397,19 @@
// 2.4 Dreams of Ice
// 2.4 Dungeons
- "371": {
+ "27": {
"name": "Manteneige",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "367": {
+ "26": {
"name": "le Temple enseveli de Qarn (brutal)",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "387": {
+ "28": {
"name": "Sastasha (brutal)",
"tank": "1",
"healer": "1",
@@ -417,19 +417,19 @@
},
// 2.4 Trials
- "377": {
+ "79": {
"name": "l'Amphithéâtre d'Akh Afah (brutal)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "378": {
+ "80": {
"name": "l'Amphithéâtre d'Akh Afah (extrême)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "142": {
+ "81": {
"name": "le Col du dragon",
"tank": "2",
"healer": "2",
@@ -437,25 +437,25 @@
},
// 2.4 Raids
- "193": {
+ "107": {
"name": "l'Abîme de Bahamut I",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "194": {
+ "108": {
"name": "l'Abîme de Bahamut II",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "195": {
+ "109": {
"name": "l'Abîme de Bahamut III",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "196": {
+ "110": {
"name": "l'Abîme de Bahamut IV",
"tank": "2",
"healer": "2",
@@ -465,19 +465,19 @@
// 2.5 Before the Fall
// 2.5 Dungeons
- "150": {
+ "32": {
"name": "le Gardien du lac",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "188": {
+ "30": {
"name": "le Palais du Vagabond (brutal)",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "189": {
+ "29": {
"name": "le Château d'Amdapor (brutal)",
"tank": "1",
"healer": "1",
@@ -485,26 +485,26 @@
},
// 2.5 Trials
- "426": {
+ "84": {
"name": "La Chrysalide",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "394": {
+ "82": {
"name": "la Fontaine d'Urth",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "396": {
+ "85": {
"name": "Revanche au vieux château",
"tank": "2",
"healer": "2",
"dps": "4"
},
// 2.55 Trials
- "143": {
+ "83": {
"name": "le Siège de la sainte Cité d'Ishgard",
"tank": "2",
"healer": "2",
@@ -512,7 +512,7 @@
},
// 2.5 Raids
- "151": {
+ "111": {
"name": "la Tour de Cristal - Monde des Ténèbres",
"tank": "3",
"healer": "6",
@@ -522,49 +522,49 @@
// 3.0 Heavensward
// 3.0 Dungeons
- "435": {
+ "39": {
"name": "L'Aire",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "416": {
+ "31": {
"name": "la Grande bibliothèque de Gubal",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "421": {
+ "34": {
"name": "La Voûte",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "430": {
+ "35": {
"name": "Le Continuum fractal",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "434": {
+ "36": {
"name": "le Vigile du Crépuscule",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "438": {
+ "38": {
"name": "le Laboratoire de magismologie",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "441": {
+ "37": {
"name": "Sohm Al",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "420": {
+ "33": {
"name": "Nalloncques",
"tank": "1",
"healer": "1",
@@ -572,31 +572,31 @@
},
// 3.0 Trials
- "432": {
+ "86": {
"name": "Thok ast Thok (brutal)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "436": {
+ "88": {
"name": "L'Immensité bleue (brutal)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "437": {
+ "90": {
"name": "le Réacteur de singularité",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "446": {
+ "87": {
"name": "Thok ast Thok (extrême)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "447": {
+ "89": {
"name": "L'Immensité bleue (extrême)",
"tank": "2",
"healer": "2",
@@ -604,50 +604,50 @@
},
// 3.01 Raids
- "442": {
+ "112": {
"name": "Alexander - Le Poing du Père",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "443": {
+ "113": {
"name": "Alexander - Le Poignet du Père",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "444": {
+ "114": {
"name": "Alexander - Le Bras du Père",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "445": {
+ "115": {
"name": "Alexander - Le Fardeau du Père",
"tank": "2",
"healer": "2",
"dps": "4"
},
// 3.05 Raids
- "449": {
+ "116": {
"name": "Alexander - Le Poing du Père (sadique)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "450": {
+ "117": {
"name": "Alexander - Le Poignet du Père (sadique)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "451": {
+ "118": {
"name": "Alexander - Le Bras du Père (sadique)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "452": {
+ "119": {
"name": "Alexander - Le Fardeau du Père (sadique)",
"tank": "2",
"healer": "2",
@@ -657,13 +657,13 @@
// 3.1 As Goes Light So Goes Darkness
// 3.1 Dungeons
- "510": {
+ "40": {
"name": "le Phare de Sirius (brutal)",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "511": {
+ "41": {
"name": "l'Arboretum Sainte-Mocianne",
"tank": "1",
"healer": "1",
@@ -671,7 +671,7 @@
},
// 3.1 Trials
- "448": {
+ "91": {
"name": "le règne de Thordan",
"tank": "2",
"healer": "2",
@@ -679,7 +679,7 @@
},
// 3.1 Raids
- "508": {
+ "120": {
"name": "l'Arche du néant",
"tank": "3",
"healer": "6",
@@ -687,19 +687,19 @@
},
// 3.1 Party Contents
- "512": {
- "name": "The Diadem(Easy)",
+ "131": {
+ "name": "The Diadem (Easy)",
"tank": "1",
"healer": "2",
"dps": "5"
},
- "514": {
+ "132": {
"name": "The Diadem",
"tank": "1",
"healer": "2",
"dps": "5"
},
- "515": {
+ "133": {
"name": "The Diadem (Hard)",
"tank": "1",
"healer": "2",
@@ -709,13 +709,13 @@
// 3.2 The Gears of Chance
// 3.2 Dungeons
- "516": {
+ "141": {
"name": "L'Antitour",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "519": {
+ "140": {
"name": "les Vestiges de la cité d'Amdapor (brutal)",
"tank": "1",
"healer": "1",
@@ -723,13 +723,13 @@
},
// 3.2 Trials
- "517": {
+ "134": {
"name": "Unité de contention S1P7",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "524": {
+ "135": {
"name": "Unité de contention S1P7 (extrême)",
"tank": "2",
"healer": "2",
@@ -737,49 +737,49 @@
},
// 3.2 Raids
- "520": {
+ "136": {
"name": "Alexander - Le Poing du Fils",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "521": {
+ "137": {
"name": "Alexander - Le Poignet du Fils",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "522": {
+ "138": {
"name": "Alexander - Le Bras du Fils",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "523": {
+ "139": {
"name": "Alexander - Le Fardeau du Fils",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "529": {
+ "147": {
"name": "Alexander - Le Poing du Fils (sadique)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "530": {
+ "148": {
"name": "Alexander - Le Poignet du Fils (sadique)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "531": {
+ "149": {
"name": "Alexander - Le Bras du Fils (sadique)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "532": {
+ "150": {
"name": "Alexander - Le Fardeau du Fils (sadique)",
"tank": "2",
"healer": "2",
@@ -789,13 +789,13 @@
// 3.3 Revenge of the Horde
// 3.3 Dungeons
- "555": {
+ "171": {
"name": "Sohr Khai",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "557": {
+ "172": {
"name": "l'Île de Crèvecarène (brutal)",
"tank": "1",
"healer": "1",
@@ -803,13 +803,13 @@
},
// 3.3 Trials
- "559": {
+ "169": {
"name": "la Dernière avancée de la Foi",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "566": {
+ "170": {
"name": "l'ire de Nidhogg",
"tank": "2",
"healer": "2",
@@ -817,7 +817,7 @@
},
// 3.3 Raids
- "556": {
+ "168": {
"name": "la Cité défendue de Mhach",
"tank": "3",
"healer": "6",
@@ -825,7 +825,7 @@
},
// 3.3 Party Contents
- "558": {
+ "179": {
"name": "l'Aquapole",
"tank": "0",
"healer": "0",
@@ -835,13 +835,13 @@
// 3.4 Soul Surrender
// 3.4 Dungeons
- "572": {
+ "182": {
"name": "Xelphatol",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "578": {
+ "196": {
"name": "la Grande bibliothèque de Gubal (brutal)",
"tank": "1",
"healer": "1",
@@ -849,13 +849,13 @@
},
// 3.4 Trials
- "576": {
+ "183": {
"name": "Unité de contention P1P6",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "577": {
+ "184": {
"name": "Unité de contention P1P6 (extrême)",
"tank": "2",
"healer": "2",
@@ -863,49 +863,49 @@
},
// 3.4 Raids
- "580": {
+ "186": {
"name": "Alexander - Les Yeux du Créateur",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "581": {
+ "187": {
"name": "Alexander - Le Souffle du Créateur",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "582": {
+ "188": {
"name": "Alexander - Le Cœur du Créateur",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "583": {
+ "189": {
"name": "Alexander - L'Âme du Créateur",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "584": {
+ "190": {
"name": "Alexander - Les Yeux du Créateur (sadique)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "585": {
+ "191": {
"name": "Alexander - Le Souffle du Créateur (sadique)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "586": {
+ "192": {
"name": "Alexander - Le Cœur du Créateur (sadique)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "587": {
+ "193": {
"name": "Alexander - L'Âme du Créateur (sadique)",
"tank": "2",
"healer": "2",
@@ -915,13 +915,13 @@
// 3.5 The Far Edge of Fate
// 3.5 Dungeons
- "615": {
+ "219": {
"name": "la Muraille de Baelsar",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "617": {
+ "221": {
"name": "Sohm Al (brutal)",
"tank": "1",
"healer": "1",
@@ -929,13 +929,13 @@
},
// 3.5 Trials
- "637": {
+ "223": {
"name": "Unité de contention Z1P9",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "638": {
+ "224": {
"name": "Unité de contention Z1P9 (extrême)",
"tank": "2",
"healer": "2",
@@ -943,7 +943,7 @@
},
// 3.5 Raids
- "627": {
+ "220": {
"name": "Dun Scaith",
"tank": "3",
"healer": "6",
@@ -953,49 +953,49 @@
// 4.0 Stormblood
// 4.0 Dungeons
- "626": {
+ "238": {
"name": "la Mer du Chant des sirènes",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "616": {
+ "235": {
"name": "le Palais aux Marées violettes",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "623": {
+ "240": {
"name": "la Force de Bardam",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "660": {
+ "241": {
"name": "le Château de Doma",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "661": {
+ "242": {
"name": "Castrum Abania",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "689": {
+ "247": {
"name": "Ala Mhigo",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "662": {
+ "262": {
"name": "le Château de Kugane",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "663": {
+ "236": {
"name": "le Temple du Poing",
"tank": "1",
"healer": "1",
@@ -1003,31 +1003,31 @@
},
// 4.0 Trials
- "674": {
+ "243": {
"name": "la Crique aux tributs",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "677": {
+ "244": {
"name": "la Crique aux tributs (extrême)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "719": {
+ "263": {
"name": "Émanation",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "720": {
+ "264": {
"name": "Émanation (extrême)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "679": {
+ "239": {
"name": "la Ménagerie royale",
"tank": "2",
"healer": "2",
@@ -1035,59 +1035,59 @@
},
// 4.01 Raids
- "691": {
+ "252": {
"name": "Deltastice v1.0",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "692": {
+ "253": {
"name": "Deltastice v2.0",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "693": {
+ "254": {
"name": "Deltastice v3.0",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "694": {
+ "255": {
"name": "Deltastice v4.0",
"tank": "2",
"healer": "2",
"dps": "4"
},
-
+
// 4.05 Raids
- "695": {
+ "256": {
"name": "Deltastice v1.0 (sadique)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "696": {
+ "257": {
"name": "Deltastice v2.0 (sadique)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "697": {
+ "258": {
"name": "Deltastice v3.0 (sadique)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "698": {
+ "259": {
"name": "Deltastice v4.0 (sadique)",
"tank": "2",
"healer": "2",
"dps": "4"
},
-
- //4.05 Party Contents
- "712": {
+
+ //4.05 Party Contents
+ "268": {
"name": "les Canaux perdus d'Uznair",
"tank": "0",
"healer": "0",
@@ -1097,7 +1097,7 @@
// 4.1 The Legend Returns
// 4.1 Dungeon
- "731": {
+ "279": {
"name": "la Cité engloutie de Skalla",
"tank": "1",
"healer": "1",
@@ -1105,7 +1105,7 @@
},
// 4.1 Trials
- "730": {
+ "278": {
"name": "Le domaine de Shinryu",
"tank": "2",
"healer": "2",
@@ -1113,455 +1113,1215 @@
},
// 4.1 Raids
- "734": {
+ "281": {
"name": "la Cité royale de Rabanastre",
"tank": "3",
"healer": "6",
"dps": "15"
},
-
- //4.1 Party Contents
- "725": {
+
+ //4.1 Party Contents
+ "276": {
"name": "les Canaux cachés d'Uznair",
"tank": "0",
"healer": "0",
"dps": "0"
},
-
- //4.11 Raids
- "733": {
+
+ //4.11 Raids
+ "280": {
"name": "l'Abîme infini de Bahamut (fatal)",
"tank": "2",
"healer": "2",
"dps": "4"
},
-
- // Guildhests
- "190": {
- "name": "Chasse au fantôme fantoche",
+ // 4.2 Rise of a New Sun
+ // 4.2 Dungeon
+ "284": {
+ "name": "Le Couvercle des enfers",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "191": {
- "name": "Opération fleurs du mal",
+ "285": {
+ "name": "Le Continuum fractal (brutal)",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "192": {
- "name": "Expédition punitive contre les Ventrerouge",
- "tank": "1",
- "healer": "1",
- "dps": "2"
+
+ // 4.2 Trials
+ "290": {
+ "name": "La Clairière de Jade",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "214": {
- "name": "Entraînement: groupes d'ennemis",
- "tank": "1",
- "healer": "1",
- "dps": "2"
+ "291": {
+ "name": "La Clairière de Jade (extrême)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "215": {
- "name": "Entraînement: infiltration en base ennemie",
- "tank": "1",
- "healer": "1",
- "dps": "2"
+
+ // 4.2 Raids
+ "286": {
+ "name": "Sigmastice v1.0",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "216": {
- "name": "Reconquête d'une carapace escamotée",
- "tank": "1",
- "healer": "1",
- "dps": "2"
+ "287": {
+ "name": "Sigmastice v2.0",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "219": {
- "name": "Les Gobelins bombardiers",
- "tank": "1",
- "healer": "1",
- "dps": "2"
+ "288": {
+ "name": "Sigmastice v3.0",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "220": {
- "name": "Briaxio à bras raccourcis",
- "tank": "1",
- "healer": "1",
- "dps": "2"
+ "289": {
+ "name": "Sigmastice v4.0",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "221": {
- "name": "Sus au morbol pollueur",
- "tank": "1",
- "healer": "1",
- "dps": "2"
+ "292": {
+ "name": "Sigmastice v1.0 (sadique)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "222": {
- "name": "Buso l'immolateur",
+ "293": {
+ "name": "Sigmastice v2.0 (sadique)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "294": {
+ "name": "Sigmastice v3.0 (sadique)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "295": {
+ "name": "Sigmastice v4.0 (sadique)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 4.3 Under the MoonLight
+ // 4.3 Dungeon
+ "536": {
+ "name": "Le Compas de l'Hirondelle",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "223": {
- "name": "Ombres et griffes",
+
+ // 4.3 Trials
+ "537": {
+ "name": "Castrum Fluminis",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "538": {
+ "name": "Castrum Fluminis (extrême)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 4.3 Raids
+ "550": {
+ "name": "Le Phare de Ridorana",
+ "tank": "3",
+ "healer": "6",
+ "dps": "15"
+ },
+
+ // 4.31 Raids
+ "539": {
+ "name": "La Fantasmagorie d'Ultima (fatal)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ //4.36 Trials
+ "474": {
+ "name": "Chasse au Rathalos",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "475": {
+ "name": "Chasse au Rathalos (extrême)",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "298": {
- "name": "Longue vie à la Reine",
+
+ // 4.4 Prelude in Violet
+ // 4.4 Dungeon
+ "585": {
+ "name": "L'Escarre",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "299": {
- "name": "Quintettes infernaux",
+ "584": {
+ "name": "L'Arboretum Sainte-Mocianne (brutal)",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "300": {
- "name": "Trinité sinistre",
+
+ // 4.4 Trials
+ "596": {
+ "name": "le Nid des Lamentations",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "597": {
+ "name": "le Nid des Lamentations (extrême)",
"tank": "2",
"healer": "2",
"dps": "4"
},
+ // 4.4 Raids
- // Novice Training
- "537": {
- "name": "Éviter les attaques à aire d'effet",
- "tank": "0",
- "healer": "0",
- "dps": "0"
+ "587": {
+ "name": "Alphastice V1.0",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "538": {
- "name": "Générer de l'inimitié avec un combo",
- "tank": "0",
- "healer": "0",
- "dps": "0"
+ "588": {
+ "name": "Alphastice V2.0",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "539": {
- "name": "Effectuer le combo en combat",
- "tank": "0",
- "healer": "0",
- "dps": "0"
+ "589": {
+ "name": "Alphastice V3.0",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "540": {
- "name": "Attirer l'inimitié de plusieurs ennemis sur soi",
- "tank": "0",
- "healer": "0",
- "dps": "0"
+ "590": {
+ "name": "Alphastice V4.0",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "541": {
- "name": "Affronter plusieurs ennemis",
+ "591": {
+ "name": "Alphastice V1.0 (sadique)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "592": {
+ "name": "Alphastice V2.0 (sadique)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "593": {
+ "name": "Alphastice V3.0 (sadique)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "594": {
+ "name": "Alphastice V4.0 (sadique)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 4.45
+ // Read the KR Script.
+
+ "595": {
+ "name": "Kugane Ohashi",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+
+ // 4.5 A Requiem for Heroes
+ // 4.5 Dungeon
+ "611": {
+ "name": "The Ghimlyt Dark",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+
+ // 4.5 Trials
+ "637": {
+ "name": "The Wreath of Snakes",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "638": {
+ "name": "The Wreath of Snakes (Extreme)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 4.5 Raids
+ "636": {
+ "name": "The Orbonne Monastery",
+ "tank": "3",
+ "healer": "6",
+ "dps": "15"
+ },
+
+ // 5.0 Shadowbringers
+ // 5.0 Dungeons
+ "676": {
+ "name": "Holminster",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "649": {
+ "name": "Dohn Mheg",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "651": {
+ "name": "L'Enchevêtrement des Qitari",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "656": {
+ "name": "le Puits de Malikah",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "659": {
+ "name": "le Mont Gulg",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "652": {
+ "name": "Amaurote",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "655": {
+ "name": "la Macle de Syrcus",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "661": {
+ "name": "Akadaemia Anydre",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+
+ // 5.0 Trials
+ "657": {
+ "name": "la Valse du Monarque",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "658": {
+ "name": "la Valse du Monarque (extrême)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4",
+ "macro": "/p H1 (水 Water) H2
+/p MT
+/p D1 D2
+/p ST
+/p D3 D4
+/p ------ 2連頭割り 2 Split ------
+/p 西 West : MT-H1-D1-D3
+/p 東 East : ST-H2-D2-D4
+/p 時計回りの回転 Clockwise Rotation
+/p ---------- 連鎖 1 Chain 1 ----------
+/p 北西 N/W : Tank Healer | 南東 S/E : DPS
+/p -- Tether テザー : 9時受 (①西 West)】--
+/p ST->D1->D2->D3->-D4->H1
+/p ---------- 連鎖 2 Chain 2 ----------
+/p 北 North : Tank Healer | 南 South : DPS"
+ },
+ "666": {
+ "name": "La Couronne de l'Immaculé",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "667": {
+ "name": "La Couronne de l'Immaculé (extrême)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "687": {
+ "name": "Le Râle de l'Agonie",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 5.01 Raids
+
+ "653": {
+ "name": "L'Éveil d'Éden - Résurrection",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "684": {
+ "name": "L'Éveil d'Éden - Descente",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "682": {
+ "name": "L'Éveil d'Éden - Déluge",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "689": {
+ "name": "L'Éveil d'Éden - Inhumation",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 5.05 Raids Savage
+
+ "654": {
+ "name": "L'Éveil d'Éden - Résurrection (sadique)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "685": {
+ "name": "L'Éveil d'Éden - Descente (sadique)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "683": {
+ "name": "L'Éveil d'Éden - Déluge (sadique)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "690": {
+ "name": "L'Éveil d'Éden - Inhumation (sadique)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 5.1 Patch
+
+ "693": {
+ "name": "Le Râle de l'Agonie (extrême)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ "700": {
+ "name": "Réplique de l'usine désaffectée",
+ "tank": "3",
+ "healer": "6",
+ "dps": "15"
+ },
+
+ "692": {
+ "name": "le Cosmos coruscant",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+
+ // Guildhests
+ "43": {
+ "name": "Chasse au fantôme fantoche",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "46": {
+ "name": "Opération fleurs du mal",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "47": {
+ "name": "Expédition punitive contre les Ventrerouge",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "42": {
+ "name": "Entraînement: groupes d'ennemis",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "44": {
+ "name": "Entraînement: infiltration en base ennemie",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "45": {
+ "name": "Reconquête d'une carapace escamotée",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "49": {
+ "name": "Les Gobelins bombardiers",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "48": {
+ "name": "Briaxio à bras raccourcis",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "50": {
+ "name": "Sus au morbol pollueur",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "51": {
+ "name": "Buso l'immolateur",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "52": {
+ "name": "Ombres et griffes",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "53": {
+ "name": "Longue vie à la Reine",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "54": {
+ "name": "Quintettes infernaux",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "55": {
+ "name": "Trinité sinistre",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+
+ // Blue Mage 4.5
+ "610": {
+ "name": "Début du spectacle",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "612": {
+ "name": "Puddings à la mode",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "613": {
+ "name": "Zipacna, le premier obstacle",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "614": {
+ "name": "Kreios, le destructeur d'acier",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "615": {
+ "name": "La fratrie des gilkhélones",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "616": {
+ "name": "Vengeance aveugle",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "617": {
+ "name": "Pure attaque cardiaque",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "618": {
+ "name": "Crocs bleus et crocs rouges",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "619": {
+ "name": "Guimauve, le goût de l'arc-en-ciel",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "620": {
+ "name": "Crom Dubh, roi des idoles",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "621": {
+ "name": "Les courtes mèches",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "622": {
+ "name": "Hydnora, la plante parasite",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "623": {
+ "name": "La mystérieuse Carmilla",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "624": {
+ "name": "La mort n'a pas d'ami",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "625": {
+ "name": "La sphère bestiale, une menace allagoise",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "626": {
+ "name": "Tikbalang, bras tout-puissant",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "627": {
+ "name": "Kreios plie, mais ne rompt pas",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "628": {
+ "name": "Rencontre explosive",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "629": {
+ "name": "Miroir, mon beau miroir",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "630": {
+ "name": "Duo de choc : Orthros et maître Typhon",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "631": {
+ "name": "La chimèrique colère d'Apademak",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "632": {
+ "name": "L'histoire détonante de Papi bombo",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "633": {
+ "name": "Kronprinz béhémoth, le prince héritier",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "634": {
+ "name": "Epilogi, l'étrange marionnettiste",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "635": {
+ "name": "L'abominable Azulmagia",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+
+
+ // Novice Training
+ "151": {
+ "name": "Éviter les attaques à aire d'effet",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "152": {
+ "name": "Générer de l'inimitié avec un combo",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "153": {
+ "name": "Effectuer le combo en combat",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "154": {
+ "name": "Attirer l'inimitié de plusieurs ennemis sur soi",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "155": {
+ "name": "Affronter plusieurs ennemis",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "156": {
+ "name": "Générer de l'inimitié à distance",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "157": {
+ "name": "Faire face à des renforts ennemis",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "158": {
+ "name": "Vaincre un ennemi en assistant des alliés",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "159": {
+ "name": "Vaincre un ennemi occupé par un allié",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "160": {
+ "name": "Combattre en évitant les attaques ennemies",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "161": {
+ "name": "Éliminer les renforts ennemis",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "162": {
+ "name": "Interagir avec le décor en combat",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "163": {
+ "name": "Soigner un allié",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "164": {
+ "name": "Soigner plusieurs alliés",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "165": {
+ "name": "Combattre en évitant les attaques ennemies",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "166": {
+ "name": "Exercice final",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+
+
+ // PvP
+ "127": {
+ "name": "les Ruines frontalières (annexion)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "130": {
+ "name": "le Rocher des tréfonds (invasion)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "145": {
+ "name": "The Feast (4x4/classé)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "542": {
- "name": "Générer de l'inimitié à distance",
+ "228": {
+ "name": "The Feast (4x4/entraînement)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "543": {
- "name": "Faire face à des renforts ennemis",
+ "230": {
+ "name": "The Feast (4x4/classé)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "544": {
- "name": "Vaincre un ennemi en assistant des alliés",
+ "143": {
+ "name": "The Feast (4x4/entraînement)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "545": {
- "name": "Vaincre un ennemi occupé par un allié",
+ "201": {
+ "name": "The Feast (personnalisé/Festin des loups)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "546": {
- "name": "Combattre en évitant les attaques ennemies",
+ "233": {
+ "name": "The Feast (personnalisé/Pré-de-lichen)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "547": {
- "name": "Éliminer les renforts ennemis",
+ "476": {
+ "name": "The Feast (classé/équipe JcJ)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "548": {
- "name": "Interagir avec le décor en combat",
+ "478": {
+ "name": "The Feast (classé)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "549": {
- "name": "Soigner un allié",
+ "479": {
+ "name": "The Feast (entraînement)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "550": {
- "name": "Soigner plusieurs alliés",
+ "480": {
+ "name": "The Feast (personnalisé/Tour de Cristal)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "551": {
- "name": "Combattre en évitant les attaques ennemies",
+ "580": {
+ "name": "The Feast (personnalisé/équipe JcJ/Tour de Cristal)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "552": {
- "name": "Exercice final",
+ "180": {
+ "name": "les Champs de la Gloire (brise-glace)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "277": {
+ "name": "Astragalos (machinerie)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "599": {
+ "name": "Gorge dérobée (machinerie)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- // PvP
+ // Deep Dungeons
+ // The Palace of the Dead
+ "174": {
+ "name": "le Palais des morts (sous-sols 1-10)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
"175": {
- "name": "The Fold",
+ "name": "le Palais des morts (sous-sols 11-20)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "336": {
- "name": "The Fold",
+ "176": {
+ "name": "le Palais des morts (sous-sols 21-30)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "337": {
- "name": "The Fold (Matched Party)",
+ "177": {
+ "name": "le Palais des morts (sous-sols 31-40)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "352": {
- "name": "The Fold (Light Party)",
+ "178": {
+ "name": "le Palais des morts (sous-sols 41-50)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "184": {
- "name": "The Fold (Matched Party)",
+ "204": {
+ "name": "le Palais des morts (sous-sols 51-60)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "186": {
- "name": "The Fold (Light Party)",
+ "205": {
+ "name": "le Palais des morts (sous-sols 61-70)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "376": {
- "name": "les Ruines frontalières (annexion)",
+ "206": {
+ "name": "le Palais des morts (sous-sols 71-80)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "422": {
- "name": "The Borderland Ruins (Slaughter)",
+ "207": {
+ "name": "le Palais des morts (sous-sols 81-90)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "431": {
- "name": "le Rocher des tréfonds (invasion)",
+ "208": {
+ "name": "le Palais des morts (sous-sols 91-100)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "518": {
- "name": "The Feast (8x8/entraînement)",
+ "209": {
+ "name": "le Palais des morts (sous-sols 101-110)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "525": {
- "name": "The Feast (4x4/classé)",
+ "210": {
+ "name": "le Palais des morts (sous-sols 111-120)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "526": {
- "name": "The Feast (4 on 4 - Light Party)",
+ "211": {
+ "name": "le Palais des morts (sous-sols 121-130)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "527": {
- "name": "The Feast (4x4/classé)",
+ "212": {
+ "name": "le Palais des morts (sous-sols 131-140)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "528": {
- "name": "The Feast (4 on 4 - Light Party)",
+ "213": {
+ "name": "le Palais des morts (sous-sols 141-150)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "618": {
- "name": "The Feast (8x8/personnalisé/Festin des loups)",
+ "214": {
+ "name": "le Palais des morts (sous-sols 151-160)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "619": {
- "name": "The Feast (4x4/personnalisé/Festin des loups)",
+ "215": {
+ "name": "le Palais des morts (sous-sols 161-170)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "554": {
- "name": "les Champs de la Gloire (brise-glace)",
+ "216": {
+ "name": "le Palais des morts (sous-sols 171-180)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "217": {
+ "name": "le Palais des morts (sous-sols 181-190)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "218": {
+ "name": "le Palais des morts (sous-sols 191-200)",
"tank": "0",
"healer": "0",
"dps": "0"
},
-
- // Deep Dungeons
- "561": {
- "name": "le Palais des morts (sous-sols 1-10)",
+ // Heaven-on-High
+ "540": {
+ "name": "Pilier des Cieux (1-10)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "562": {
- "name": "le Palais des morts (sous-sols 11-20)",
+ "541": {
+ "name": "Pilier des Cieux (11-20)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "563": {
- "name": "le Palais des morts (sous-sols 21-30)",
+ "542": {
+ "name": "Pilier des Cieux (21-30)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "564": {
- "name": "le Palais des morts (sous-sols 31-40)",
+ "543": {
+ "name": "Pilier des Cieux (31-40)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "565": {
- "name": "le Palais des morts (sous-sols 41-50)",
+ "544": {
+ "name": "Pilier des Cieux (41-50)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "593": {
- "name": "le Palais des morts (sous-sols 51-60)",
+ "545": {
+ "name": "Pilier des Cieux (51-60)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "594": {
- "name": "le Palais des morts (sous-sols 61-70)",
+ "546": {
+ "name": "Pilier des Cieux (61-70)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "595": {
- "name": "le Palais des morts (sous-sols 71-80)",
+ "547": {
+ "name": "Pilier des Cieux (71-80)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "596": {
- "name": "le Palais des morts (sous-sols 81-90)",
+ "548": {
+ "name": "Pilier des Cieux (81-90)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "597": {
- "name": "le Palais des morts (sous-sols 91-100)",
+ "549": {
+ "name": "Pilier des Cieux (91-100)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+
+ // The Forbidden Land, Eureka
+ "283": {
+ "name": "a terre interdite d'Eurêka: Anemos",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "581": {
+ "name": "a terre interdite d'Eurêka: Pagos",
"tank": "0",
"healer": "0",
"dps": "0"
},
"598": {
- "name": "le Palais des morts (sous-sols 101-110)",
+ "name": "a terre interdite d'Eurêka: Pyros",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "599": {
- "name": "le Palais des morts (sous-sols 111-120)",
+ "639": {
+ "name": "a terre interdite d'Eurêka: Hydatos",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+
+
+ // Other things...
+ "437": {
+ "name": "Triple Triad",
"tank": "0",
"healer": "0",
"dps": "0"
},
"600": {
- "name": "le Palais des morts (sous-sols 121-130)",
+ "name": "Haute voltige",
"tank": "0",
"healer": "0",
"dps": "0"
},
"601": {
- "name": "le Palais des morts (sous-sols 131-140)",
+ "name": "Haute voltige",
"tank": "0",
"healer": "0",
"dps": "0"
},
"602": {
- "name": "le Palais des morts (sous-sols 141-150)",
+ "name": "Haute voltige",
"tank": "0",
"healer": "0",
"dps": "0"
},
"603": {
- "name": "le Palais des morts (sous-sols 151-160)",
+ "name": "Haute voltige",
"tank": "0",
"healer": "0",
"dps": "0"
},
"604": {
- "name": "le Palais des morts (sous-sols 161-170)",
+ "name": "Haute voltige",
"tank": "0",
"healer": "0",
"dps": "0"
},
"605": {
- "name": "le Palais des morts (sous-sols 171-180)",
+ "name": "Haute voltige",
"tank": "0",
"healer": "0",
"dps": "0"
},
"606": {
- "name": "le Palais des morts (sous-sols 181-190)",
+ "name": "Haute voltige",
"tank": "0",
"healer": "0",
"dps": "0"
},
"607": {
- "name": "le Palais des morts (sous-sols 191-200)",
+ "name": "Haute voltige",
"tank": "0",
"healer": "0",
"dps": "0"
},
-
-
- // Other things...
- "579": {
- "name": "Triple Triad",
+ "608": {
+ "name": "Haute voltige",
"tank": "0",
"healer": "0",
"dps": "0"
- }
- },
-
- //Event Instance
- "571": {
+ },
+ "643": {
+ "name": "Mahjong domien : tous rangs (classé)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "644": {
+ "name": "Mahjong domien : dan seulement (classé)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "645": {
+ "name": "Mahjong domien : 4 joueurs (avec kuitan)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "650": {
+ "name": "Mahjong domien : 4 joueurs (sans kuitan)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "640": {
+ "name": "As de l'air",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "641": {
+ "name": "As de l'air",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "642": {
+ "name": "As de l'air",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+
+
+ //Event Instance
+ "181": {
"name": "le Manoir hanté",
"tank": "0",
"healer": "0",
@@ -1572,17 +2332,18 @@
// Duty Roulette
"roulettes": {
"1": "Mission aléatorie: gain de niveaux",
- "2": "Mission aléatorie: donjons nv 50/60",
+ "2": "Mission aléatorie: donjons nv 50/60/70",
"3": "Mission aléatorie: épopée",
"4": "Mission aléatorie: opérations de guilde",
"5": "Mission aléatorie: expert",
"6": "Mission aléatorie: défis",
"7": "Mission aléatorie: Front",
- "8": "Mission aléatorie: donjons nv 70",
+ "8": "Mission aléatorie: donjons nv 80",
"9": "Mission aléatorie: Mentor",
"10": "The Feast (8x8/entraînement)",
"13": "The Feast (4x4/classé)",
- "15": "Mission aléatorie: raids en alliance"
+ "15": "Mission aléatorie: raids en alliance",
+ "17": "Mission aléatorie: raids"
},
// FATEs
@@ -1590,12 +2351,8 @@
"134": {
"name": "la Noscea centrale",
"fates": {
- "533": "Le retour d'un roi",
"649": "La famille avant tout",
- "687": "Manigances manifestes: quand la magie fait rage",
"688": "Manigances manifestes: la tour infernale",
- "693": "L'effet boule de neige",
- "717": "La chasse aux Fabulœufs",
"220": "Défi: Menuis le terrible",
"221": "Migration nocturne",
"222": "Ça va piquer",
@@ -1622,12 +2379,7 @@
"262": "Eau non potable",
"264": "L'éveil des bêtes",
"265": "Bonne pioche",
- "534": "Le retour d'un roi",
"333": "Défi: lien brisé",
- "666": "Fort comme une brique: golems",
- "667": "Fort comme une brique: golem de pierre",
- "694": "L'effet boule de neige",
- "718": "La chasse aux Fabulœufs",
"245": "Défi: le prince",
"246": "Dangereux végétaux",
"249": "Problème de nuisibles",
@@ -1643,7 +2395,6 @@
"271": "Peur du vide",
"272": "Appel aux pélicans",
"274": "Microcosme",
- "532": "Le retour d'un roi",
"278": "Maudites moustaches",
"279": "Colibris voleurs",
"280": "Défi: voler aux riches",
@@ -1659,13 +2410,6 @@
"566": "Quand le liège assiège",
"334": "Complainte d'une fille de choix",
"335": "Défi: cancer, le casque de mort",
- "913": "Défi: le regard froid du Mamool Ja",
- "914": "Ce n'est qu'un amour de vacances",
- "915": "Jouer avec le feu",
- "916": "Défi: dressé contre son maître",
- "917": "Dragueurs de bac à sable",
- "918": "Des bouteilles à la mer",
- "689": "Manigances manifestes: quand la magie fait rage",
"690": "Manigances manifestes: la tour infernale",
"701": "Ce qui est à nous est à nous"
}
@@ -1684,7 +2428,6 @@
"577": "Défi: mante à l'eau",
"578": "Défi: le messager des vagues",
"650": "Défi: volatile carnivore",
- "702": "Attention au cholestérol!",
"289": "Livraison de missive",
"290": "Défi: volatile carnivore",
"291": "Sauvagerie animale",
@@ -1713,10 +2456,6 @@
"329": "Défi: prudence avec l'eau chaude...",
"331": "Défi: un baigneur gênant",
"332": "Trop d'œufs, bonjour les dégâts",
- "668": "Fort comme une brique: golems",
- "669": "Fort comme une brique: golem de pierre",
- "670": "Fort comme une brique: golems",
- "671": "Fort comme une brique: golem d'or",
"703": "Ce qui est à nous est à nous",
"451": "Pauvre hameau: des rats qui grignotent",
"452": "Pauvre hameau: des Kobolds qui saccagent",
@@ -1765,8 +2504,6 @@
"361": "Coup sur coup",
"366": "Défi: le monstre aux grandes pattes",
"367": "Retour à la mort",
- "911": "Corriger les bugs",
- "683": "Manigances manifestes: quand la magie fait rage",
"684": "Manigances manifestes: la tour infernale",
"704": "Ce qui est à nous est à nous"
}
@@ -1774,7 +2511,6 @@
"141": {
"name": "Thanalan central",
"fates": {
- "535": "Le retour d'un roi",
"370": "Défi: quelque chose à prouver",
"373": "Comme un triton hors de l'eau",
"374": "Ivres comme des rats",
@@ -1787,25 +2523,18 @@
"383": "Massacre de volatiles",
"385": "Défi: cruelle créature",
"389": "Défi: un accueil brûlant",
- "393": "Défi: sortie du nid",
- "912": "Corriger les bugs",
- "660": "Fort comme une brique: golems",
- "661": "Fort comme une brique: golem de pierre",
- "695": "L'effet boule de neige",
- "719": "La chasse aux Fabulœufs"
+ "393": "Défi: sortie du nid"
}
},
"145": {
"name": "Thanalan oriental",
"fates": {
- "536": "Le retour d'un roi",
"540": "Quitte ou doblyn",
"541": "De l'autre côté du miroir",
"542": "Défi: pelote en colère",
"543": "Défi: se forger des chimères",
"394": "Des chèvres voraces",
"395": "De mortels piquants",
- "652": "Retour d'éclair: créature inconnue",
"397": "En route vers l'ouest",
"398": "Défi: destruction de camp",
"400": "Quel bazar",
@@ -1816,14 +2545,11 @@
"409": "Rose des sables",
"412": "Le prix de l'eau",
"413": "Les longues-cornes se cachent pour mourir",
- "696": "L'effet boule de neige",
"191": "Assaut sur Le Viaduc: prélude",
"192": "Assaut sur Le Viaduc: acte I",
"193": "Assaut sur Le Viaduc: acte II",
"194": "Assaut sur Le Viaduc: acte III",
- "195": "Assaut sur Le Viaduc: dénouement",
- "705": "Attention au cholestérol!",
- "720": "La chasse aux Fabulœufs"
+ "195": "Assaut sur Le Viaduc: dénouement"
}
},
"146": {
@@ -1841,8 +2567,6 @@
"555": "D'élégants morts-vivants",
"557": "L'élite des Crocs",
"558": "Défi: l'attiseur des flammes infernales",
- "651": "Retour d'éclair: créature inconnue",
- "685": "Manigances manifestes: quand la magie fait rage",
"686": "Manigances manifestes: la tour infernale",
"706": "Ce qui est à nous est à nous",
"419": "Défi: mise à mort",
@@ -1888,7 +2612,6 @@
"148": {
"name": "Forêt centrale",
"fates": {
- "537": "Le retour d'un roi",
"600": "Mornes lindwurms",
"601": "Soigner le mal par le mal",
"602": "Départs",
@@ -1912,9 +2635,6 @@
"140": "Les évadés",
"141": "Il y a de l'amour dans l'air",
"142": "Défi: Lou y es-tu?",
- "672": "Fort comme une brique: golems",
- "673": "Fort comme une brique: golem de pierre",
- "697": "L'effet boule de neige",
"707": "Ce qui est à nous est à nous",
"196": "Défi: le Chevalier des ombres",
"197": "Défi: le Chevalier des ombres",
@@ -1945,7 +2665,6 @@
"150": "Défi: les fauteurs de trouble",
"151": "Le petit pont de bois",
"152": "La protection du Massif",
- "679": "Manigances manifestes: quand la magie fait rage",
"680": "Manigances manifestes: la tour infernale",
"691": "Défi: bon pour la ferraille",
"692": "Défi: ben mon cochon!",
@@ -1982,7 +2701,6 @@
"170": "À qui profite le crime",
"171": "Gobelins malhonnêtes",
"172": "Robbin' Goblins",
- "681": "Manigances manifestes: quand la magie fait rage",
"682": "Manigances manifestes: la tour infernale",
"190": "Défi: un grand fracas",
"708": "Ce qui est à nous est à nous",
@@ -1996,15 +2714,10 @@
"154": {
"name": "Forêt du nord",
"fates": {
- "538": "Le retour d'un roi",
"631": "Touche pas à mon arbre !",
"632": "Défi: les morts en marche",
"633": "Raid sur le site de déboisement ixal",
"634": "Défi: chêne déchaîné",
- "674": "Fort comme une brique: golems",
- "675": "Fort comme une brique: golem de pierre",
- "676": "Fort comme une brique: golems",
- "677": "Fort comme une brique: golem d'or",
"174": "Voler dans les plumes",
"178": "Défi: l'élu des acari",
"179": "Protecteur du Radeau",
@@ -2012,24 +2725,18 @@
"183": "Menace simiesque",
"184": "La faim des haricots",
"185": "Défi: un parfum de catastrophe",
- "698": "L'effet boule de neige",
"187": "La caravane passe",
"188": "Un appétit d'oiseau",
"189": "Dangereux xylophages",
"205": "Défi: le Chevalier des ombres",
"206": "Défi: le Chevalier des ombres",
"207": "Défi: le Chevalier des ombres",
- "722": "La chasse aux Fabulœufs",
"216": "Les rejetons de la lune rouge"
}
},
"155": {
"name": "Hautes terres du Coerthas central",
"fates": {
- "653": "Retour d'éclair: cuirassé outrecuidant",
- "654": "Retour d'éclair: cuirassé outrecuidant",
- "699": "L'effet boule de neige",
- "709": "Attention au cholestérol!7",
"460": "Un loup pour l'homme",
"463": "Défi: tondre le mouton noir",
"464": "Défi: cric, crac, croc!",
@@ -2085,11 +2792,7 @@
"526": "Pas les bienvenus",
"527": "Défi: en proie aux ombres",
"529": "Une escorte pour la science",
- "530": "Défi: parfum trompeur",
- "655": "Retour d'éclair: anubis annonciateurs",
- "656": "Retour d'éclair: anubis annonciateurs",
- "657": "Retour d'éclair: le dragon du Chaos",
- "658": "Retour d'éclair: le dragon du Chaos"
+ "530": "Défi: parfum trompeur"
}
},
"397": {
@@ -2159,6 +2862,17 @@
"399": {
"name": "Arrière-pays dravanien",
"fates": {
+ "756": "Bouts de ferraille",
+ "757": "Vengeurs de ferraille",
+ "758": "Défi: vengeurs de ferraille II",
+ "759": "Tarentules en rupture de stock",
+ "760": "D'une pierre deux nuisibles",
+ "761": "Défi: une épitaphe pour Épaphos",
+ "762": "Le bal des demoiselles",
+ "763": "Rhume des narbroois",
+ "764": "Défi: Ruginis à éliminer",
+ "766": "Mécanismes à enrayer",
+ "767": "Défi: Moundrinix le virtuose",
"768": "Ratels au casse-pipe",
"769": "Défi: Dobharch la matriarche",
"770": "Écrabouillage d'Écrabouilleuse",
@@ -2176,18 +2890,7 @@
"783": "Défi: triste Bero Roggo",
"784": "Défi: un poisson bipède et vorace",
"785": "Prendre les gens pour des cocons",
- "786": "Défi: défiler Habetrot",
- "756": "Bouts de ferraille",
- "757": "Vengeurs de ferraille",
- "758": "Défi: vengeurs de ferraille II",
- "759": "Tarentules en rupture de stock",
- "760": "D'une pierre deux nuisibles",
- "761": "Défi: une épitaphe pour Épaphos",
- "762": "Le bal des demoiselles",
- "763": "Rhume des narbroois",
- "764": "Défi: Ruginis à éliminer",
- "766": "Mécanismes à enrayer",
- "767": "Défi: Moundrinix le virtuose"
+ "786": "Défi: défiler Habetrot"
}
},
"400": {
@@ -2283,48 +2986,15 @@
"901": "Défi: les drilles rêvent-ils de meules électriques ?"
}
},
- "612": {
- "name": "Stormblood",
+ "351": {
+ "name": "Diadem",
"fates": {
- "932": "Crabes martyrs",
- "933": "De l'excellence du samouraï",
- "934": "Un scorpion pas si pacifique",
- "935": "Le secret d'Amatsu: Kyôri",
- "936": "Le mochi, ça rend marteau!",
- "937": "Le mochi, ça rend marteau!",
- "938": "Le mochi, ça rend marteau!",
- "939": "Le mochi, ça rend marteau!",
- "940": "Le mochi, ça rend marteau!",
- "941": "Le mochi, ça rend marteau!",
- "942": "Chasse aux Prœufs",
- "943": "Chasse aux Prœufs",
- "944": "Chasse aux Prœufs",
- "945": "Pourvu que les méchants perdent!",
- "946": "Pourvu que les gentils gagnent!",
- "959": "Pour une poignée de mochi",
- "960": "Pour une poignée de mochi",
- "963": "Radiations néfastes",
"964": "Dévouement aveugle",
- "965": "Radiations néfastes",
- "966": "Le parfum enivrant de l'éther",
- "967": "Le parfum enivrant de l'éther",
- "968": "Défi: brachiosaures en famille",
- "969": "Radiations néfastes",
- "970": "Petit, un jour tu ne seras pas grand",
- "971": "Défi: le serpent aux écailles d'argent",
- "972": "La brise de pierre",
- "973": "Radiations néfastes",
- "974": "La nuit du chasseur",
- "975": "La nuit du chasseur",
"976": "Dévouement aveugle",
- "977": "Amitié entomologique",
- "978": "Radiations néfastes",
"979": "Dévouement aveugle",
- "980": "Les dévoreuses de couleurs",
- "981": "Les dévoreuses de couleurs",
- "982": "Les dévoreuses de couleurs",
- "983": "Radiations néfastes",
- "984": "Radiations néfastes",
+ "1034": "Dévouement aveugle",
+ "1062": "Dévouement aveugle",
+ "1085": "Dévouement aveugle",
"985": "Les éléments s'éclatent!",
"986": "Les éléments s'éclatent!",
"987": "Les éléments s'éclatent!",
@@ -2337,33 +3007,77 @@
"994": "Les éléments s'éclatent!",
"995": "Les éléments s'éclatent!",
"996": "Les éléments s'éclatent!",
- "997": "Radiations néfastes",
- "998": "Défi: crise de noctambulisme",
"999": "Les éléments s'éclatent!",
"1000": "Les éléments s'éclatent!",
"1001": "Les éléments s'éclatent!",
"1002": "Les éléments s'éclatent!",
"1003": "Les éléments s'éclatent!",
"1004": "Les éléments s'éclatent!",
+ "963": "Radiations néfastes",
+ "965": "Radiations néfastes",
+ "969": "Radiations néfastes",
+ "973": "Radiations néfastes",
+ "978": "Radiations néfastes",
+ "983": "Radiations néfastes",
+ "984": "Radiations néfastes",
+ "997": "Radiations néfastes",
+ "1009": "Radiations néfastes",
+ "1023": "Radiations néfastes",
+ "1036": "Radiations néfastes",
+ "1040": "Radiations néfastes",
+ "1044": "Radiations néfastes",
+ "1045": "Radiations néfastes",
+ "1046": "Radiations néfastes",
+ "1049": "Radiations néfastes",
+ "1051": "Radiations néfastes",
+ "1055": "Radiations néfastes",
+ "1060": "Radiations néfastes",
+ "1061": "Radiations néfastes",
+ "1069": "Radiations néfastes",
+ "1075": "Radiations néfastes",
+ "1077": "Radiations néfastes",
+ "1078": "Radiations néfastes",
+ "1081": "Radiations néfastes",
+ "1083": "Radiations néfastes",
+ "1086": "Radiations néfastes",
+ "1089": "Radiations néfastes",
+ "1090": "Radiations néfastes",
"1005": "Nécrophagie végétale",
"1006": "Nécrophagie végétale",
"1007": "Nécrophagie végétale",
+ "1072": "Nécrophagie végétale",
+ "980": "Les dévoreuses de couleurs",
+ "981": "Les dévoreuses de couleurs",
+ "982": "Les dévoreuses de couleurs",
+ "1016": "Défi: la vengeance d'un monarque",
+ "1017": "Défi: la vengeance d'un monarque",
+ "1018": "Défi: la vengeance d'un monarque",
+ "998": "Défi: crise de noctambulisme",
+ "1098": "Défi: crise de noctambulisme",
+ "1073": "Défi: le félin ermite",
+ "1091": "Sus aux constricteurs",
+ "1092": "Sus aux constricteurs",
+ "1093": "Sus aux constricteurs",
+ "1020": "Périr le ventre vide",
+ "1021": "Périr le ventre vide",
+ "1022": "Périr le ventre vide",
+ "966": "Le parfum enivrant de l'éther",
+ "967": "Le parfum enivrant de l'éther",
+ "968": "Défi: brachiosaures en famille",
+ "970": "Petit, un jour tu ne seras pas grand",
+ "971": "Défi: le serpent aux écailles d'argent",
+ "972": "La brise de pierre",
+ "974": "La nuit du chasseur",
+ "975": "La nuit du chasseur",
+ "977": "Amitié entomologique",
"1008": "La détresse d'un pirate",
- "1009": "Radiations néfastes",
"1010": "Accros à l'hémoglobine",
"1011": "Gorilles dans les ténèbres",
"1012": "Gorilles dans les ténèbres",
"1013": "Les mauvais garçons",
"1014": "Les mauvais garçons",
"1015": "La détresse d'un pirate",
- "1016": "Défi: la vengeance d'un monarque",
- "1017": "Défi: la vengeance d'un monarque",
- "1018": "Défi: la vengeance d'un monarque",
"1019": "Carnivores des nuages",
- "1020": "Périr le ventre vide",
- "1021": "Périr le ventre vide",
- "1022": "Périr le ventre vide",
- "1023": "Radiations néfastes",
"1024": "Les séducteurs ailés",
"1025": "Défi: la terreur des aéronefs",
"1026": "Défi: la terreur des aéronefs",
@@ -2374,82 +3088,50 @@
"1031": "Les nuages mangeurs d'hommes",
"1032": "Les nuages mangeurs d'hommes",
"1033": "Les nuages mangeurs d'hommes",
- "1034": "Dévouement aveugle",
"1035": "Défi: le bovin mythique",
- "1036": "Radiations néfastes",
"1037": "Un regard très perçant",
"1038": "Rois ou empereurs?",
"1039": "Rois ou empereurs?",
- "1040": "Radiations néfastes",
"1041": "Défi: efflorescence fétide",
"1042": "Entreprise de désodorisation ",
"1043": "Entreprise de désodorisation ",
- "1044": "Radiations néfastes",
- "1045": "Radiations néfastes",
- "1046": "Radiations néfastes",
"1047": "Experts en torture",
"1048": "Experts en torture",
- "1049": "Radiations néfastes",
"1050": "À tire d'aile",
- "1051": "Radiations néfastes",
"1052": "Les géants au feuillage touffu",
"1053": "Les géants au feuillage touffu",
"1054": "Les géants au feuillage touffu",
- "1055": "Radiations néfastes",
"1056": "Défi: pêche au gros",
"1057": "Migration interdite",
"1058": "Les yeux plus gros que le ventre",
"1059": "Les yeux plus gros que le ventre",
- "1060": "Radiations néfastes",
- "1061": "Radiations néfastes",
- "1062": "Dévouement aveugle",
"1063": "Le temps des amours",
"1064": "Le temps des amours",
"1065": "Le temps des amours",
"1066": "Le temps des amours",
"1067": "Lune de miel sans fin",
"1068": "La détresse d'un pirate",
- "1069": "Radiations néfastes",
"1070": "Les malheurs du célibat",
"1071": "Les malheurs du célibat",
- "1072": "Nécrophagie végétale",
- "1073": "Défi: le félin ermite",
"1074": "Défi: un régime à base de calories",
- "1075": "Radiations néfastes",
"1076": "Ça part en vrille!",
- "1077": "Radiations néfastes",
- "1078": "Radiations néfastes",
"1079": "Arbres en folie",
"1080": "Arbres en folie",
- "1081": "Radiations néfastes",
"1082": "Carnivores des nuages",
- "1083": "Radiations néfastes",
"1084": "Empêcheurs de pêcher en rond",
- "1085": "Dévouement aveugle",
- "1086": "Radiations néfastes",
"1087": "Invasion de sanuwas",
"1088": "Le bleu de la Mer de nuages",
- "1089": "Radiations néfastes",
- "1090": "Radiations néfastes",
- "1091": "Sus aux constricteurs",
- "1092": "Sus aux constricteurs",
- "1093": "Sus aux constricteurs",
"1094": "Défi: l'éventreur de l'azur",
"1095": "Les admiratrices du cheval ailé",
"1096": "Les admiratrices du cheval ailé",
"1097": "Les admiratrices du cheval ailé",
- "1098": "Défi: crise de noctambulisme",
"1099": "Entreprise de désodorisation ",
- "1100": "Accros à l'hémoglobine",
- "1103": "Défi: l'étalon survolté",
- "1104": "Défi: l'étalon survolté",
- "1105": "Défi: l'étalon survolté",
- "1106": "Défi: la renarde fait surface",
- "1107": "Défi: la renarde fait surface",
- "1108": "Défi: la renarde fait surface",
- "1109": "Rusera bien qui rusera le dernier",
- "1110": "Prétendants gênants",
- "1111": "Les offrandes de Ginko",
+ "1100": "Accros à l'hémoglobine"
+ }
+ },
+ "411": {
+ "name": "Les Marges",
+ "fates": {
"1112": "Donner la réplique aux soldats",
"1113": "Donner la réplique aux sous-officiers",
"1114": "Donner la réplique aux officiers",
@@ -2478,37 +3160,12 @@
"1138": "Défi: sœurs vengeresses",
"1139": "Défi: la fille du soleil",
"1140": "Honnis soient les canis",
- "1141": "La chasse gardée des M",
- "1142": "Défi: l'eau elle aime ça",
- "1143": "De corvée avec les bucorves",
- "1144": "Défi: à tout jamais",
- "1145": "Défi: on craint gedan",
- "1146": "Vidange pour les Bleus",
- "1147": "Défi: le crabe marche sous la tête",
- "1148": "Défi: la philosophie d'Agni",
- "1149": "Bons comptes à OK corail",
- "1150": "Privés de banquet",
- "1151": "Des serpents dans les îlots",
- "1152": "Lâcher de raies",
- "1153": "Défi: la princesse aux longues dents",
- "1154": "Athlétiques bibao",
- "1155": "Pêche à la bombe",
- "1156": "L'écarlate scélérate",
- "1157": "Mollusque à brusquer",
- "1158": "Les horreurs de l'aurore",
- "1159": "Défi: prendre le clandestin par les cornes",
- "1160": "Le butin, ça va, ça vient",
- "1161": "Défi: le chevalier d'écailles",
- "1162": "Reprendre n'est pas voler",
- "1163": "Maille à partir",
- "1164": "Les vils requins",
- "1165": "Défi: fais tes prières, Sogenbi",
- "1166": "Avant qu'il ne soit taureau tard",
- "1167": "Défi: le samouraï vagabond",
- "1168": "Vagabond contre chasseur",
- "1170": "Casse-toi et marche en crabe",
- "1171": "Enrayer les raies rayées",
- "1172": "Défi: amocher les daimyo",
+ "1141": "La chasse gardée des M"
+ }
+ },
+ "412": {
+ "name": "Les Pics",
+ "fates": {
"1173": "Le Qiqirn végétarien",
"1174": "Le top de la fraîcheur",
"1175": "Défi: le Qiqirn sournois au ventre vide",
@@ -2540,7 +3197,95 @@
"1203": "Le don du repos éternel",
"1204": "Défi: métamorphose en suspens",
"1205": "Guerrière de la tribu des J",
- "1207": "Défi: alarme fatale",
+ "1207": "Défi: alarme fatale"
+ }
+ },
+ "413": {
+ "name": "Les Lacs",
+ "fates": {
+ "1103": "Défi: l'étalon survolté",
+ "1104": "Défi: l'étalon survolté",
+ "1105": "Défi: l'étalon survolté",
+ "1272": "Sélection semi-naturelle",
+ "1273": "Défi: ce pataud de crapaud",
+ "1274": "Défi: la belle est la bête",
+ "1275": "Pollution sonore",
+ "1276": "Défi: le sent-bon de la sangsue",
+ "1277": "Défi: ciel, mon sosie",
+ "1278": "Défi: célibataire enforci",
+ "1279": "Défi: l'arbre carnivore",
+ "1280": "Défi: il faut l'imaginer heureux",
+ "1281": "Défi: les minots ont tort",
+ "1282": "Sans rancune",
+ "1283": "Anilas ah ah ah",
+ "1284": "Défi: l'ami asthme",
+ "1285": "Une dérouillée pour les soblyns",
+ "1286": "Défi: soblyn-minal",
+ "1287": "Vous ne pondrez point",
+ "1288": "Cadavres exquis",
+ "1289": "Rétention d'éther",
+ "1290": "Défi: thalassina thérapie",
+ "1291": "C'est pas ma guerre",
+ "1292": "Défi: c'est toujours pas ma guerre",
+ "1293": "Papillonnez en paix",
+ "1294": "Mimétisme royal",
+ "1295": "Défi: que serra Serra?",
+ "1296": "Tu casses, tu répares",
+ "1297": "La garde meurt, mais ne se rend pas compte qu'elle est morte",
+ "1298": "Butinez en paix",
+ "1299": "Développement dhara-ble",
+ "1300": "Sangsues sans frontières",
+ "1301": "Défi: un petit pas pour le colosse",
+ "1302": "L'argile est agile",
+ "1303": "L'affliction d'Anselot",
+ "1304": "La hantise d'Anselot",
+ "1305": "La dernière volonté d'Anselot"
+ }
+ },
+ "421": {
+ "name": "Mer de Rubis",
+ "fates": {
+ "1142": "Défi: l'eau elle aime ça",
+ "1143": "De corvée avec les bucorves",
+ "1144": "Défi: à tout jamais",
+ "1145": "Défi: on craint gedan",
+ "1146": "Vidange pour les Bleus",
+ "1147": "Défi: le crabe marche sous la tête",
+ "1148": "Défi: la philosophie d'Agni",
+ "1149": "Bons comptes à OK corail",
+ "1150": "Privés de banquet",
+ "1151": "Des serpents dans les îlots",
+ "1152": "Lâcher de raies",
+ "1153": "Défi: la princesse aux longues dents",
+ "1154": "Athlétiques bibao",
+ "1155": "Pêche à la bombe",
+ "1156": "L'écarlate scélérate",
+ "1157": "Mollusque à brusquer",
+ "1158": "Les horreurs de l'aurore",
+ "1159": "Défi: prendre le clandestin par les cornes",
+ "1160": "Le butin, ça va, ça vient",
+ "1161": "Défi: le chevalier d'écailles",
+ "1162": "Reprendre n'est pas voler",
+ "1163": "Maille à partir",
+ "1164": "Les vils requins",
+ "1165": "Défi: fais tes prières, Sogenbi",
+ "1166": "Avant qu'il ne soit taureau tard",
+ "1167": "Défi: le samouraï vagabond",
+ "1168": "Vagabond contre chasseur",
+ "1170": "Casse-toi et marche en crabe",
+ "1171": "Enrayer les raies rayées",
+ "1172": "Défi: amocher les daimyo"
+ }
+ },
+ "422": {
+ "name": "Yanxia",
+ "fates": {
+ "1106": "Défi: la renarde fait surface",
+ "1107": "Défi: la renarde fait surface",
+ "1108": "Défi: la renarde fait surface",
+ "1109": "Rusera bien qui rusera le dernier",
+ "1110": "Prétendants gênants",
+ "1111": "Les offrandes de Ginko",
"1208": "Détrousseurs koja",
"1209": "Détrousseurs namazu",
"1210": "Défi: Gyogun le garde-pêche",
@@ -2574,7 +3319,12 @@
"1238": "Défi: le géant de fer",
"1239": "Chiens de bonne herpe",
"1240": "Cosmologie hingashienne: le shikigami kiyofusa",
- "1241": "Cosmologie hingashienne: le shikigami koja",
+ "1241": "Cosmologie hingashienne: le shikigami koja"
+ }
+ },
+ "423": {
+ "name": "Steppe d'Azim",
+ "fates": {
"1242": "Défi: la proie vengeresse",
"1243": "Défi: silence, ça pousse!",
"1244": "Défi: refroidir le vent glaçant",
@@ -2605,40 +3355,6 @@
"1269": "Je t'ai volé ton lait",
"1270": "Berger, un métier à risque",
"1271": "Défi: où es-tu",
- "1272": "Sélection semi-naturelle",
- "1273": "Défi: ce pataud de crapaud",
- "1274": "Défi: la belle est la bête",
- "1275": "Pollution sonore",
- "1276": "Défi: le sent-bon de la sangsue",
- "1277": "Défi: ciel, mon sosie",
- "1278": "Défi: célibataire enforci",
- "1279": "Défi: l'arbre carnivore",
- "1280": "Défi: il faut l'imaginer heureux",
- "1281": "Défi: les minots ont tort",
- "1282": "Sans rancune",
- "1283": "Anilas ah ah ah",
- "1284": "Défi: l'ami asthme",
- "1285": "Une dérouillée pour les soblyns",
- "1286": "Défi: soblyn-minal",
- "1287": "Vous ne pondrez point",
- "1288": "Cadavres exquis",
- "1289": "Rétention d'éther",
- "1290": "Défi: thalassina thérapie",
- "1291": "C'est pas ma guerre",
- "1292": "Défi: c'est toujours pas ma guerre",
- "1293": "Papillonnez en paix",
- "1294": "Mimétisme royal",
- "1295": "Défi: que serra Serra?",
- "1296": "Tu casses, tu répares",
- "1297": "La garde meurt, mais ne se rend pas compte qu'elle est morte",
- "1298": "Butinez en paix",
- "1299": "Développement dhara-ble",
- "1300": "Sangsues sans frontières",
- "1301": "Défi: un petit pas pour le colosse",
- "1302": "L'argile est agile",
- "1303": "L'affliction d'Anselot",
- "1304": "La hantise d'Anselot",
- "1305": "La dernière volonté d'Anselot",
"1306": "Sur la route des Dataq",
"1307": "Toujours Dataq",
"1308": "La première traite n'attend pas",
@@ -2651,12 +3367,244 @@
"1316": "Rancune d'éléphant",
"1318": "Dataq, Goro, même combat",
"1319": "On prend les matanga et on recommence",
- "1320": "Le roi des matanga",
- "1321": "Y a du soleil et des pieuvres",
- "1322": "Punir l'infâme marchand",
- "1323": "Coquillages et cisailleurs",
- "1324": "Ah, ces touristes..."
+ "1320": "Le roi des matanga"
+ }
+ },
+ "990": {
+ "name": "Anemos",
+ "fates": {
+ "1328": "Défi: l'empereur des bourrasques",
+ "1329": "Défi: le démon des tempêtes",
+ "1331": "Défi: le dragon démentiel",
+ "1332": "Défi: la fleur d'Eurêka",
+ "1333": "Défi: l'ultime soupir de la beauté",
+ "1334": "Défi: le dévoreur",
+ "1335": "Défi: la bête humaine",
+ "1336": "Défi: le sage putréfié",
+ "1337": "Défi: le géant légendaire",
+ "1338": "Défi: la reine infernale",
+ "1339": "Défi: le scorpion mythique",
+ "1340": "Défi: l'insatiable cerbère",
+ "1341": "Défi: douche froide pour le hazmat roi",
+ "1342": "Défi: colère aviaire",
+ "1343": "Défi: on m'appelle le cavalier blanc",
+ "1344": "Défi: un cadavre tout sauf exquis",
+ "1345": "Défi: tempête sur Eurêka",
+ "1346": "Défi: le jugement de Julika",
+ "1347": "Défi: régler son compte à Number",
+ "1348": "Défi: le Seigneur de la terre interdite"
+ }
+ },
+ "991": {
+ "name": "Pagos",
+ "fates": {
+ "1351": "Défi: neige écarlate",
+ "1352": "Défi: les chèvres à lait",
+ "1353": "Défi: des cendres aux cendres",
+ "1354": "Défi: la mort vient d'en bas",
+ "1355": "Défi: cycle thermodynamique",
+ "1356": "Défi: ni chair ni poisson",
+ "1357": "Défi: malhomme de neige",
+ "1358": "Défi: les deux frères",
+ "1359": "Défi: du jour à la nuit",
+ "1360": "Défi: le retour du roi",
+ "1361": "Défi: oh, la vache!",
+ "1362": "Défi: un cri dans la tempête",
+ "1363": "Défi: mon œil!",
+ "1364": "Défi: lames glacées",
+ "1365": "Défi: morbole de neige",
+ "1366": "Défi: les yeux dans les yeux dans les yeux",
+ "1367": "Défi: petits bonds dans la neige",
+ "1368": "Défi: lapereaux apeurés",
+ "1369": "Défi: zombie-bliophile"
+ }
+ },
+ "992": {
+ "name": "Pyros",
+ "fates": {
+ "1388": "Défi: la blanche créature",
+ "1389": "Défi: les foudres de Flauros",
+ "1390": "Défi: monstres sophistiqués",
+ "1391": "Défi: une méchante griffe",
+ "1392": "Défi: livrez les irrévérents!",
+ "1393": "Défi: les cousins de Machin",
+ "1394": "Défi: les éclairs de génie d'Aetolos",
+ "1395": "Défi: chaud comme la braise",
+ "1396": "Défi: un peu gluantes, mais appétissantes!",
+ "1397": "Défi: ses larmes n'y pourront rien changer",
+ "1398": "Défi: la détresse des mots qu'ils envoient",
+ "1399": "Défi: coup de foudre à Eurêka Pyros",
+ "1400": "Défi: rencontre de deux sales types",
+ "1401": "Défi: les yeux qui brillent",
+ "1402": "Défi: frères ennemis",
+ "1403": "Défi: Sköll, offenses-tu?",
+ "1404": "Défi: papillons de la reine",
+ "1407": "Défi: les coraux de la colère",
+ "1408": "Défi: roches porte-bonheur"
+ }
+ },
+ "1004": {
+ "name": "Hydatos",
+ "fates": {
+ "1412": "Saison seiche",
+ "1413": "Défi: Gros comme un Stegodon",
+ "1414": "Défi: Va te faire cuire un œuf",
+ "1415": "Défi: Petits oiseaux, si vous n'avez pas d'ailes",
+ "1416": "Défi: Tigre et Crinière-de-givre",
+ "1417": "Défi: Les lauriers de la colère",
+ "1418": "Défi: Retourne d'où tu viens",
+ "1419": "Défi: Une plante d'enfer",
+ "1420": "Défi: Rugir de déplaisir",
+ "1421": "Défi: La reine des langues de vipère",
+ "1422": "Eurêka et son arsenal",
+ "1423": "Défi: Provenance indéfinie",
+ "1424": "Défi: La vérité est à Hydatos",
+ "1425": "Rien que de l'eau"
+ }
+ },
+ "501": {
+ "name": "Grand-Lac",
+ "fates": {
+ "1496": "La menace des Fanes pourpres: un repaire convoité",
+ "1497": "La menace des Fanes pourpres: un repaire investi",
+ "1498": "Défi: Ophion, le reptile sanguinaire",
+ "1499": "La trahison des wargs",
+ "1500": "Dur dur d'être un bûcheron",
+ "1501": "La menace des Fanes pourpres: le bûcheron attaqué",
+ "1502": "La menace des Fanes pourpres: un vil piège",
+ "1503": "La menace des Fanes pourpres: l'insurrection",
+ "1504": "La menace des Fanes pourpres: les wargs s'en mêlent",
+ "1505": "Pour le salut du petit commerce",
+ "1506": "Pas venu ici pour souffrir",
+ "1507": "Défi: le noble Lugarhoo",
+ "1508": "La petite porte des horreurs",
+ "1509": "Il est frais, mon poisson",
+ "1510": "Défi: le Casse-noisette excédé"
+ }
+ },
+ "502": {
+ "name": "Kholusia",
+ "fates": {
+ "1462": "Formidable: la menace",
+ "1463": "Formidable: la filature",
+ "1464": "Formidable: l'arme secrète",
+ "1465": "Défendre Douceonde",
+ "1466": "Défendre Douceonde",
+ "1467": "Des chenapans à Cherpant",
+ "1468": "Des chenapans à Cherpant",
+ "1469": "Orgie d'orge organisée",
+ "1470": "La menace née-des-vents",
+ "1471": "Les vilains petits tragopans",
+ "1472": "Crever les crevettes",
+ "1473": "Frapper les frappeurs",
+ "1474": "Les cris de la discorde",
+ "1475": "Par amitié pour Amistie",
+ "1476": "Défi: Mort à Mort rampante!",
+ "1477": "Bataille d'ingénieurs: automate en construction",
+ "1478": "Bataille d'ingénieurs: dernière mise au point",
+ "1479": "Bataille d'ingénieurs: la lutte finale"
+ }
+ },
+ "503": {
+ "name": "Amh Araeng",
+ "fates": {
+ "1511": "Course au trésor: mandibules sécatrices",
+ "1512": "Course au trésor: y a trop de lézards",
+ "1513": "Course au trésor: une très grosse épine",
+ "1514": "Course au trésor: au volatile voleur!",
+ "1515": "Appel à l'aide: bandits en bande",
+ "1516": "Appel à l'aide: débander les bandits",
+ "1517": "Appel à l'aide: fouilles aux ruines",
+ "1518": "Appel à l'aide: l'épée de l'ancien",
+ "1519": "Un guet-apens piquant",
+ "1520": "Gare aux sables mouvants!",
+ "1521": "Touchez pas à ma truffe!",
+ "1522": "Bayawak, la reine des lézards",
+ "1523": "Des iguanes assoiffés de sang!",
+ "1524": "Ça casse pas trois pattes à un phorusrhacos",
+ "1525": "Kurukadi et Mumba, duo de choc",
+ "1526": "Exploser la gueule des huldus explosifs",
+ "1527": "Un dernier tango armé"
+ }
+ },
+ "504": {
+ "name": "Il Mheg",
+ "fates": {
+ "1480": "Les frères Daen: Pixie en vue!",
+ "1481": "Les frères Daen: amaro en vue!",
+ "1482": "Les frères Daen: Nu Mou en vue!",
+ "1483": "Les frères Daen: riposte arborescente",
+ "1484": "Les frères Daen: rétribution",
+ "1485": "Les frères Daen: partie remise",
+ "1486": "Les frères Daen: Fusion!",
+ "1487": "Les frères Daen: la bataille finale",
+ "1488": "Défi: Samyaza",
+ "1489": "Ours sur un lit de rose",
+ "1490": "Floraison virulente",
+ "1491": "Défi: Nécropsychée",
+ "1492": "La Pixie butineuse et les abeilles tueuses",
+ "1493": "Amis pour la vie",
+ "1494": "La Pixie butineuse et la bête à plumes",
+ "1495": "La Pixie butineuse et l'or liquide",
+ "1531": "Les frères Daen: amaro en vue!",
+ "1532": "Les frères Daen: Nu Mou en vue!",
+ "1533": "Les frères Daen: riposte arborescente"
+ }
+ },
+ "505": {
+ "name": "Rak'tika",
+ "fates": {
+ "1441": "Patrouille de Myalna: la maladie de l'écho",
+ "1442": "Patrouille de Myalna: les chenilles infectées",
+ "1443": "Patrouille de Myalna: en manque de plumes",
+ "1444": "Patrouille de Myalna: l'escorte du gardien ancien",
+ "1445": "Chasse de Myalna: Opération Tojil",
+ "1446": "Chasse de Myalna: à la poursuite du Tojil",
+ "1447": "Chasse de Myalna: à la poursuite du Tojil",
+ "1448": "Chasse de Myalna: un Tojil courroucé",
+ "1449": "Chasse de Myalna: un Tojil courroucé",
+ "1450": "Chasse de Myalna: l'élimination du Tojil",
+ "1528": "Chasse de Myalna: un Tojil courroucé",
+ "1529": "Chasse de Myalna: un Tojil courroucé",
+ "1530": "Chasse de Myalna: l'élimination du Tojil",
+ "1451": "Défi: le tréant apyre",
+ "1452": "Arachnophobie",
+ "1453": "Flamants empoisonnés",
+ "1454": "Cuisine raptorienne",
+ "1455": "Amour et Mort",
+ "1456": "L'attaque du tomatl tueur",
+ "1457": "Défi: l'oiseau de l'ombre de la mort",
+ "1458": "Quand l'instinct se réveille",
+ "1459": "Le début d'une légende",
+ "1460": "Quilmet et Salmet",
+ "1461": "Défi: L'œil du dieu de feu"
+ }
+ },
+ "506": {
+ "name": "Tempest",
+ "fates": {
+ "1426": "L'annonciatrice du chaos: l'ouverture de la chasse",
+ "1427": "L'annonciatrice du chaos: Zumshs la terreur des abysses",
+ "1428": "L'annonciatrice du chaos: oléofurors furax",
+ "1429": "L'annonciatrice du chaos: expédition spéléologique",
+ "1430": "L'annonciatrice du chaos: pêche aux coraux",
+ "1431": "L'annonciatrice du chaos: les rets de Zumshs",
+ "1432": "L'annonciatrice du chaos: bataille au sommet des fonds",
+ "1433": "Défi: La belle des abysses",
+ "1434": "Une histoire de coquillages",
+ "1435": "Les perles éternelles",
+ "1436": "Adieu, anémones",
+ "1437": "Filets de dambanha en tranches",
+ "1438": "Hydrozoaires protozoaires",
+ "1439": "Oiseaux de malheur",
+ "1440": "Une histoire de crustacés"
+ }
+ },
+ "1005": {
+ "name": "Events",
+ "fates": {
+
}
}
}
-}
+}
\ No newline at end of file
diff --git a/App/Resources/Data/ja-jp.json b/App/Resources/Data/ja-jp.json
index 8d0ccce..cbaae8b 100644
--- a/App/Resources/Data/ja-jp.json
+++ b/App/Resources/Data/ja-jp.json
@@ -1,102 +1,102 @@
{
// Version
- "version": "20171029.1",
+ "version": "20191030.1",
// Duty
"instances": {
// 2.0 A Realm Reborn
// 2.0 Dungeons
- "157": {
+ "4": {
"name": "天然要害 サスタシャ浸食洞",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "158": {
+ "8": {
"name": "奪還支援 ブレイフロクスの野営地",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "159": {
+ "10": {
"name": "旅神聖域 ワンダラーパレス",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "161": {
+ "3": {
"name": "封鎖坑道 カッパーベル銅山",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "162": {
+ "7": {
"name": "魔獣領域 ハラタリ修練所",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "163": {
+ "9": {
"name": "遺跡探索 カルン埋没寺院",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "164": {
+ "2": {
"name": "地下霊殿 タムタラの墓所",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "166": {
+ "6": {
"name": "名門屋敷 ハウケタ御用邸",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "167": {
+ "14": {
"name": "邪教排撃 古城アムダプール",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "168": {
+ "11": {
"name": "城塞攻略 ストーンヴィジル",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "169": {
+ "1": {
"name": "監獄廃墟 トトラクの千獄",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "170": {
+ "12": {
"name": "流砂迷宮 カッターズクライ",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "171": {
+ "13": {
"name": "掃討作戦 ゼーメル要塞",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "172": {
+ "5": {
"name": "霧中行軍 オーラムヴェイル",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "217": {
+ "15": {
"name": "外郭攻略 カストルム・メリディアヌム",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "224": {
+ "16": {
"name": "最終決戦 魔導城プラエトリウム",
"tank": "2",
"healer": "2",
@@ -104,43 +104,43 @@
},
// 2.0 Trials
- "202": {
+ "56": {
"name": "イフリート討伐戦",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "206": {
+ "57": {
"name": "タイタン討伐戦",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "208": {
+ "58": {
"name": "ガルーダ討伐戦",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "292": {
+ "59": {
"name": "真イフリート討滅戦",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "293": {
+ "60": {
"name": "真タイタン討滅戦",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "294": {
+ "61": {
"name": "真ガルーダ討滅戦",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "332": {
+ "62": {
"name": "リットアティン強襲戦",
"tank": "2",
"healer": "2",
@@ -150,19 +150,19 @@
// 2.1 A Realm Awoken
// 2.1 Dungeons
- "160": {
+ "17": {
"name": "怪鳥巨塔 シリウス大灯台",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "349": {
+ "18": {
"name": "封鎖坑道 カッパーベル銅山 (Hard)",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "350": {
+ "19": {
"name": "名門屋敷 ハウケタ御用邸 (Hard)",
"tank": "1",
"healer": "1",
@@ -170,44 +170,44 @@
},
// 2.1 Trials
- "207": {
+ "66": {
"name": "善王モグル・モグXII世討滅戦",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "295": {
+ "63": {
"name": "極イフリート討滅戦",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "296": {
+ "64": {
"name": "極タイタン討滅戦",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "297": {
+ "65": {
"name": "極ガルーダ討滅戦",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "348": {
+ "68": {
"name": "究極幻想 アルテマウェポン破壊作戦",
"tank": "2",
"healer": "2",
"dps": "4"
},
// 2.16 Trials
- "368": {
+ "74": {
"name": "ドルムキマイラ討伐戦",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "369": {
+ "75": {
"name": "ハイドラ討伐戦",
"tank": "2",
"healer": "2",
@@ -215,37 +215,37 @@
},
// 2.1 Raids
- "174": {
+ "92": {
"name": "クリスタルタワー:古代の民の迷宮",
- "tank": "6",
+ "tank": "3",
"healer": "6",
- "dps": "12"
+ "dps": "15"
},
- "241": {
+ "93": {
"name": "大迷宮バハムート:邂逅編1",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "242": {
+ "94": {
"name": "大迷宮バハムート:邂逅編2",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "243": {
+ "95": {
"name": "大迷宮バハムート:邂逅編3",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "244": {
+ "96": {
"name": "大迷宮バハムート:邂逅編4",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "245": {
+ "97": {
"name": "大迷宮バハムート:邂逅編5",
"tank": "2",
"healer": "2",
@@ -255,19 +255,19 @@
// 2.2 Through the Maelstrom
// 2.2 Dungeons
- "363": {
+ "22": {
"name": "腐敗遺跡 古アムダプール市街",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "360": {
+ "21": {
"name": "魔獣領域 ハラタリ修練所 (Hard)",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "362": {
+ "20": {
"name": "奪還支援 ブレイフロクスの野営地 (Hard)",
"tank": "1",
"healer": "1",
@@ -275,25 +275,25 @@
},
// 2.2 Trials
- "281": {
+ "72": {
"name": "真リヴァイアサン討滅戦",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "359": {
+ "73": {
"name": "真リヴァイアサン討滅戦",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "364": {
+ "67": {
"name": "極王モグル・モグXII世討滅戦",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "366": {
+ "76": {
"name": "ギルガメッシュ討伐戦",
"tank": "2",
"healer": "2",
@@ -301,25 +301,25 @@
},
// 2.2 Raids
- "355": {
+ "98": {
"name": "大迷宮バハムート:侵攻編1",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "356": {
+ "99": {
"name": "大迷宮バハムート:侵攻編2",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "357": {
+ "100": {
"name": "大迷宮バハムート:侵攻編3",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "358": {
+ "101": {
"name": "大迷宮バハムート:侵攻編4",
"tank": "2",
"healer": "2",
@@ -329,19 +329,19 @@
// 2.3 Defenders of Eorzea
// 2.3 Dungeons
- "361": {
+ "23": {
"name": "財宝伝説 ハルブレーカー・アイル",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "365": {
+ "25": {
"name": "城塞攻略 ストーンヴィジル (Hard)",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "373": {
+ "24": {
"name": "地下霊殿 タムタラの墓所 (Hard)",
"tank": "1",
"healer": "1",
@@ -349,13 +349,13 @@
},
// 2.3 Trials
- "374": {
+ "77": {
"name": "真ラムウ討滅戦",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "375": {
+ "78": {
"name": "極ラムウ討滅戦",
"tank": "2",
"healer": "2",
@@ -363,31 +363,31 @@
},
// 2.3 Raids
- "372": {
+ "102": {
"name": "クリスタルタワー:シルクスの塔",
"tank": "3",
"healer": "6",
"dps": "15"
},
- "380": {
+ "103": {
"name": "大迷宮バハムート零式:侵攻編1",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "381": {
+ "104": {
"name": "大迷宮バハムート零式:侵攻編2",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "382": {
+ "105": {
"name": "大迷宮バハムート零式:侵攻編3",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "383": {
+ "106": {
"name": "大迷宮バハムート零式:侵攻編4",
"tank": "2",
"healer": "2",
@@ -397,19 +397,19 @@
// 2.4 Dreams of Ice
// 2.4 Dungeons
- "371": {
+ "27": {
"name": "氷結潜窟 スノークローク大氷壁",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "367": {
+ "26": {
"name": "遺跡救援 カルン埋没寺院 (Hard)",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "387": {
+ "28": {
"name": "天然要害 サスタシャ浸食洞 (Hard)",
"tank": "1",
"healer": "1",
@@ -417,19 +417,19 @@
},
// 2.4 Trials
- "377": {
+ "79": {
"name": "真シヴァ討滅戦",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "378": {
+ "80": {
"name": "極シヴァ討滅戦",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "142": {
+ "81": {
"name": "アマジナ杯闘技会決勝戦",
"tank": "2",
"healer": "2",
@@ -437,25 +437,25 @@
},
// 2.4 Raids
- "193": {
+ "107": {
"name": "大迷宮バハムート:真成編1",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "194": {
+ "108": {
"name": "大迷宮バハムート:真成編2",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "195": {
+ "109": {
"name": "大迷宮バハムート:真成編3",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "196": {
+ "110": {
"name": "大迷宮バハムート:真成編4",
"tank": "2",
"healer": "2",
@@ -465,19 +465,19 @@
// 2.5 Before the Fall
// 2.5 Dungeons
- "150": {
+ "32": {
"name": "幻龍残骸 黙約の塔",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "188": {
+ "30": {
"name": "旅神聖域 ワンダラーパレス (Hard)",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "189": {
+ "29": {
"name": "邪教排撃 古城アムダプール (Hard)",
"tank": "1",
"healer": "1",
@@ -485,26 +485,26 @@
},
// 2.5 Trials
- "426": {
+ "84": {
"name": "アシエン・ナプリアレス討伐戦",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "394": {
+ "82": {
"name": "闘神オーディン討滅戦",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "396": {
+ "85": {
"name": "真ギルガメッシュ討滅戦",
"tank": "2",
"healer": "2",
"dps": "4"
},
// 2.55 Trials
- "143": {
+ "83": {
"name": "皇都イシュガルド防衛戦",
"tank": "2",
"healer": "2",
@@ -512,7 +512,7 @@
},
// 2.5 Raids
- "151": {
+ "111": {
"name": "クリスタルタワー:闇の世界",
"tank": "3",
"healer": "6",
@@ -522,49 +522,49 @@
// 3.0 Heavensward
// 3.0 Dungeons
- "435": {
+ "39": {
"name": "邪竜血戦 ドラゴンズエアリー",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "416": {
+ "31": {
"name": "禁書回収 グブラ幻想図書館",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "421": {
+ "34": {
"name": "強硬突入 イシュガルド教皇庁",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "430": {
+ "35": {
"name": "博物戦艦 フラクタル・コンティニアム",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "434": {
+ "36": {
"name": "廃砦捜索 ダスクヴィジル",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "438": {
+ "38": {
"name": "蒼天聖戦 魔科学研究所",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "441": {
+ "37": {
"name": "霊峰踏破 ソーム・アル",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "420": {
+ "33": {
"name": "神域浮島 ネバーリープ",
"tank": "1",
"healer": "1",
@@ -572,31 +572,31 @@
},
// 3.0 Trials
- "432": {
+ "86": {
"name": "真ラーヴァナ討滅戦",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "436": {
+ "88": {
"name": "真ビスマルク討滅戦",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "437": {
+ "90": {
"name": "ナイツ・オブ・ラウンド討滅戦",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "446": {
+ "87": {
"name": "極ラーヴァナ討滅戦",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "447": {
+ "89": {
"name": "極ビスマルク討滅戦",
"tank": "2",
"healer": "2",
@@ -604,50 +604,50 @@
},
// 3.01 Raids
- "442": {
+ "112": {
"name": "機工城アレキサンダー:起動編1",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "443": {
+ "113": {
"name": "機工城アレキサンダー:起動編2",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "444": {
+ "114": {
"name": "機工城アレキサンダー:起動編3",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "445": {
+ "115": {
"name": "機工城アレキサンダー:起動編4",
"tank": "2",
"healer": "2",
"dps": "4"
},
// 3.05 Raids
- "449": {
+ "116": {
"name": "機工城アレキサンダー零式:起動編1",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "450": {
+ "117": {
"name": "機工城アレキサンダー零式:起動編2",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "451": {
+ "118": {
"name": "機工城アレキサンダー零式:起動編3",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "452": {
+ "119": {
"name": "機工城アレキサンダー零式:起動編4",
"tank": "2",
"healer": "2",
@@ -657,13 +657,13 @@
// 3.1 As Goes Light So Goes Darkness
// 3.1 Dungeons
- "510": {
+ "40": {
"name": "怪鳥巨塔 シリウス大灯台 (Hard)",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "511": {
+ "41": {
"name": "草木庭園 聖モシャーヌ植物園",
"tank": "1",
"healer": "1",
@@ -671,7 +671,7 @@
},
// 3.1 Trials
- "448": {
+ "91": {
"name": "蒼天幻想 ナイツ・オブ・ラウンド討滅戦",
"tank": "2",
"healer": "2",
@@ -679,7 +679,7 @@
},
// 3.1 Raids
- "508": {
+ "120": {
"name": "魔航船ヴォイドアーク",
"tank": "3",
"healer": "6",
@@ -687,20 +687,20 @@
},
// 3.1 Party Contents
- "512": {
- "name": "The Diadem(Easy)",
+ "131": {
+ "name": "ディアデム諸島(Easy)",
"tank": "1",
"healer": "2",
"dps": "5"
},
- "514": {
- "name": "The Diadem",
+ "132": {
+ "name": "ディアデム諸島",
"tank": "1",
"healer": "2",
"dps": "5"
},
- "515": {
- "name": "The Diadem (Hard)",
+ "133": {
+ "name": "ディアデム諸島 (Hard)",
"tank": "1",
"healer": "2",
"dps": "5"
@@ -709,13 +709,13 @@
// 3.2 The Gears of Chance
// 3.2 Dungeons
- "516": {
+ "141": {
"name": "星海観測 逆さの塔",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "519": {
+ "140": {
"name": "神聖遺跡 古アムダプール市街 (Hard)",
"tank": "1",
"healer": "1",
@@ -723,13 +723,13 @@
},
// 3.2 Trials
- "517": {
+ "134": {
"name": "魔神セフィロト討滅戦",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "524": {
+ "135": {
"name": "極魔神セフィロト討滅戦",
"tank": "2",
"healer": "2",
@@ -737,49 +737,49 @@
},
// 3.2 Raids
- "520": {
+ "136": {
"name": "機工城アレキサンダー:律動編1",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "521": {
+ "137": {
"name": "機工城アレキサンダー:律動編2",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "522": {
+ "138": {
"name": "機工城アレキサンダー:律動編3",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "523": {
+ "139": {
"name": "機工城アレキサンダー:律動編4",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "529": {
+ "147": {
"name": "機工城アレキサンダー零式:律動編1",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "530": {
+ "148": {
"name": "機工城アレキサンダー零式:律動編2",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "531": {
+ "149": {
"name": "機工城アレキサンダー零式:律動編3",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "532": {
+ "150": {
"name": "機工城アレキサンダー零式:律動編4",
"tank": "2",
"healer": "2",
@@ -789,13 +789,13 @@
// 3.3 Revenge of the Horde
// 3.3 Dungeons
- "555": {
+ "171": {
"name": "天竜宮殿 ソール・カイ",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "557": {
+ "172": {
"name": "財宝伝説 ハルブレーカー・アイル (Hard)",
"tank": "1",
"healer": "1",
@@ -803,13 +803,13 @@
},
// 3.3 Trials
- "559": {
+ "169": {
"name": "ニーズヘッグ征竜戦",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "566": {
+ "170": {
"name": "極ニーズヘッグ征竜戦",
"tank": "2",
"healer": "2",
@@ -817,7 +817,7 @@
},
// 3.3 Raids
- "556": {
+ "168": {
"name": "禁忌都市マハ",
"tank": "3",
"healer": "6",
@@ -825,7 +825,7 @@
},
// 3.3 Party Contents
- "558": {
+ "179": {
"name": "宝物庫 アクアポリス",
"tank": "0",
"healer": "0",
@@ -835,13 +835,13 @@
// 3.4 Soul Surrender
// 3.4 Dungeons
- "572": {
+ "182": {
"name": "峻厳渓谷 ゼルファトル",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "578": {
+ "196": {
"name": "禁書回収 グブラ幻想図書館 (Hard)",
"tank": "1",
"healer": "1",
@@ -849,13 +849,13 @@
},
// 3.4 Trials
- "576": {
+ "183": {
"name": "女神ソフィア討滅戦",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "577": {
+ "184": {
"name": "極女神ソフィア討滅戦",
"tank": "2",
"healer": "2",
@@ -863,49 +863,49 @@
},
// 3.4 Raids
- "580": {
+ "186": {
"name": "機工城アレキサンダー:天動編1",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "581": {
+ "187": {
"name": "機工城アレキサンダー:天動編2",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "582": {
+ "188": {
"name": "機工城アレキサンダー:天動編3",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "583": {
+ "189": {
"name": "機工城アレキサンダー:天動編4",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "584": {
+ "190": {
"name": "機工城アレキサンダー零式:天動編1",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "585": {
+ "191": {
"name": "機工城アレキサンダー零式:天動編2",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "586": {
+ "192": {
"name": "機工城アレキサンダー零式:天動編3",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "587": {
+ "193": {
"name": "機工城アレキサンダー零式:天動編4",
"tank": "2",
"healer": "2",
@@ -915,13 +915,13 @@
// 3.5 The Far Edge of Fate
// 3.5 Dungeons
- "615": {
+ "219": {
"name": "巨大防壁 バエサルの長城",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "617": {
+ "221": {
"name": "霊峰踏破 ソーム・アル (Hard)",
"tank": "1",
"healer": "1",
@@ -929,13 +929,13 @@
},
// 3.5 Trials
- "637": {
+ "223": {
"name": "鬼神ズルワーン討滅戦",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "638": {
+ "224": {
"name": "極鬼神ズルワーン討滅戦",
"tank": "2",
"healer": "2",
@@ -943,7 +943,7 @@
},
// 3.5 Raids
- "627": {
+ "220": {
"name": "影の国ダン・スカー",
"tank": "3",
"healer": "6",
@@ -953,49 +953,49 @@
// 4.0 Stormblood
// 4.0 Dungeons
- "626": {
+ "238": {
"name": "漂流海域 セイレーン海",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "616": {
+ "235": {
"name": "海底宮殿 紫水宮",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "623": {
+ "240": {
"name": "伝統試練 バルダム覇道",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "660": {
+ "241": {
"name": "解放決戦 ドマ城",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "661": {
+ "242": {
"name": "巨砲要塞 カストルム・アバニア",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "689": {
+ "247": {
"name": "紅蓮決戦 アラミゴ",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "662": {
+ "262": {
"name": "悪党成敗 クガネ城",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "663": {
+ "236": {
"name": "壊神修行 星導山寺院",
"tank": "1",
"healer": "1",
@@ -1003,31 +1003,31 @@
},
// 4.0 Trials
- "674": {
+ "243": {
"name": "スサノオ討滅戦",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "677": {
+ "244": {
"name": "極スサノオ討滅戦",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "719": {
+ "263": {
"name": "ラクシュミ討滅戦",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "720": {
+ "264": {
"name": "極ラクシュミ討滅戦",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "679": {
+ "239": {
"name": "神龍討滅戦",
"tank": "2",
"healer": "2",
@@ -1035,59 +1035,59 @@
},
// 4.01 Raids
- "691": {
+ "252": {
"name": "次元の狭間オメガ:デルタ編1",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "692": {
+ "253": {
"name": "次元の狭間オメガ:デルタ編2",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "693": {
+ "254": {
"name": "次元の狭間オメガ:デルタ編3",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "694": {
+ "255": {
"name": "次元の狭間オメガ:デルタ編4",
"tank": "2",
"healer": "2",
"dps": "4"
},
-
+
// 4.05 Raids
- "695": {
- "name": "次元の狭間オメガ:デルタ編1 (Savage)",
+ "256": {
+ "name": "次元の狭間オメガ零式:デルタ編1",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "696": {
- "name": "次元の狭間オメガ:デルタ編2 (Savage)",
+ "257": {
+ "name": "次元の狭間オメガ零式:デルタ編2",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "697": {
- "name": "次元の狭間オメガ:デルタ編3 (Savage)",
+ "258": {
+ "name": "次元の狭間オメガ零式:デルタ編3",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "698": {
- "name": "次元の狭間オメガ:デルタ編4 (Savage)",
+ "259": {
+ "name": "次元の狭間オメガ零式:デルタ編4",
"tank": "2",
"healer": "2",
"dps": "4"
},
- //4.05 Party Contents
- "712": {
+ //4.05 Party Contents
+ "268": {
"name": "宝物庫 ウズネアカナル",
"tank": "0",
"healer": "0",
@@ -1095,9 +1095,9 @@
},
- // 4.1 The Legend Returns
+ // 4.1 英雄の歸還
// 4.1 Dungeon
- "731": {
+ "279": {
"name": "水没遺構 スカラ",
"tank": "1",
"healer": "1",
@@ -1105,7 +1105,7 @@
},
// 4.1 Trials
- "730": {
+ "278": {
"name": "極神龍討滅戦",
"tank": "2",
"healer": "2",
@@ -1113,7 +1113,7 @@
},
// 4.1 Raids
- "734": {
+ "281": {
"name": "失われた都 ラバナスタ",
"tank": "3",
"healer": "6",
@@ -1121,201 +1121,817 @@
},
//4.1 Party Contents
- "725": {
+ "276": {
"name": "宝物庫 ウズネアカナル深層",
"tank": "0",
"healer": "0",
"dps": "0"
},
-
- //4.11 Raids
- "733": {
+
+ //4.11 Raids
+ "280": {
"name": "絶バハムート討滅戦",
"tank": "2",
"healer": "2",
"dps": "4"
},
-
- // Guildhests
- "190": {
- "name": "彷徨う死霊を討て!",
+ // 4.2 曉光の刻
+ // 4.2 Dungeon
+ "284": {
+ "name": "紅玉火山 獄之蓋",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "191": {
- "name": "有毒妖花を駆除せよ!",
+ "285": {
+ "name": "博物戦艦 フラクタル・コンティニアム (Hard)",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "192": {
- "name": "無法者「似我蜂団」を撃滅せよ!",
- "tank": "1",
- "healer": "1",
- "dps": "2"
+
+ // 4.2 Trials
+ "290": {
+ "name": "白虎精魂戰",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "214": {
- "name": "集団戦訓練をくぐり抜けろ!",
- "tank": "1",
- "healer": "1",
- "dps": "2"
+ "291": {
+ "name": "極白虎精魂戰",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "215": {
- "name": "全関門を突破し、最深部の敵を討て!",
- "tank": "1",
- "healer": "1",
- "dps": "2"
+
+ // 4.2 Raids
+ "286": {
+ "name": "次元の狭間オメガ:シグマ編1",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "216": {
- "name": "ギルガメを捕獲せよ!",
- "tank": "1",
- "healer": "1",
- "dps": "2"
+ "287": {
+ "name": "次元の狭間オメガ:シグマ編2",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "219": {
- "name": "爆弾魔ゴブリン軍団を撃滅せよ!",
- "tank": "1",
- "healer": "1",
- "dps": "2"
+ "288": {
+ "name": "次元の狭間オメガ:シグマ編3",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "220": {
- "name": "夢幻のブラキシオを討て!",
- "tank": "1",
- "healer": "1",
- "dps": "2"
+ "289": {
+ "name": "次元の狭間オメガ:シグマ編4",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "221": {
- "name": "汚染源モルボルを討て!",
- "tank": "1",
- "healer": "1",
- "dps": "2"
+ "292": {
+ "name": "次元の狭間オメガ零式:シグマ編1",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "222": {
- "name": "坑道に現れた妖異ブソを討て!",
+ "293": {
+ "name": "次元の狭間オメガ零式:シグマ編2",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "294": {
+ "name": "次元の狭間オメガ零式:シグマ編3",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "295": {
+ "name": "次元の狭間オメガ零式:シグマ編4",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 4.3 月下の華
+ // 4.3 Dungeon
+ "536": {
+ "name": "風水霊殿 ガンエン廟",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "223": {
- "name": "無敵の眷属を従えし、大型妖異を討て!",
+
+ // 4.3 Trials
+ "537": {
+ "name": "ツクヨミ討滅戦",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "538": {
+ "name": "極ツクヨミ討滅戦",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 4.3 Raids
+ "550": {
+ "name": "封じられた聖塔 リドルアナ",
+ "tank": "3",
+ "healer": "6",
+ "dps": "15"
+ },
+
+ // 4.31 Raids
+ "539": {
+ "name": "絶アルテマウェポン破壊作戦",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ //4.36 Trials
+ "474": {
+ "name": "リオレウス狩猟戦",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "475": {
+ "name": "極リオレウス狩猟戦",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "298": {
- "name": "ボムを率いる「ボムクイーン」を討て!",
+
+ // 4.4 狂亂の前奏曲
+ // 4.4 Dungeon
+ "585": {
+ "name": "永久焦土 ザ・バーン",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "299": {
- "name": "不気味な陣形を組む妖異をせん滅せよ!",
+ "584": {
+ "name": "草木汚染 聖モシャーヌ植物園 (Hard)",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "300": {
- "name": "三つ巴の巨人族を制し、遺物を守れ!",
+
+ // 4.4 Trials
+ "596": {
+ "name": "朱雀征魂戦",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "597": {
+ "name": "極朱雀征魂戦",
"tank": "2",
"healer": "2",
"dps": "4"
},
+ // 4.4 Raids
- // Novice Training
- "537": {
- "name": "範囲攻撃を避けよう!",
- "tank": "0",
- "healer": "0",
- "dps": "0"
+ "587": {
+ "name": "次元の狭間オメガ:アルファ編1",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "538": {
- "name": "コンボで敵視を集めよう!",
- "tank": "0",
- "healer": "0",
- "dps": "0"
+ "588": {
+ "name": "次元の狭間オメガ:アルファ編2",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "539": {
- "name": "実戦でコンボに挑戦しよう!",
- "tank": "0",
- "healer": "0",
- "dps": "0"
+ "589": {
+ "name": "次元の狭間オメガ:アルファ編3",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "540": {
- "name": "複数の敵から敵視を集めよう!",
- "tank": "0",
- "healer": "0",
- "dps": "0"
+ "590": {
+ "name": "次元の狭間オメガ:アルファ編4",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "541": {
- "name": "実戦で複数の敵と戦ってみよう!",
- "tank": "0",
- "healer": "0",
+ "591": {
+ "name": "次元の狭間オメガ零式:アルファ編1",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "592": {
+ "name": "次元の狭間オメガ零式:アルファ編2",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "593": {
+ "name": "次元の狭間オメガ零式:アルファ編3",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "594": {
+ "name": "次元の狭間オメガ零式:アルファ編4",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 4.45
+
+ "595": {
+ "name": "真ヨウジンボウ討滅戦",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 4.5 A Requiem for Heroes
+ // 4.5 Dungeon
+ "611": {
+ "name": "境界戦線 ギムリトダーク",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+
+ // 4.5 Trials
+ "637": {
+ "name": "靑龍征魂戦",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "638": {
+ "name": "極靑龍征魂戦",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 4.5 Raids
+ "636": {
+ "name": "楽欲の僧院 オーボンヌ",
+ "tank": "3",
+ "healer": "6",
+ "dps": "15"
+ },
+
+ // 5.0 Shadowbringers
+ // 5.0 Dungeons
+ "676": {
+ "name": "殺戮郷村 ホルミンスター",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "649": {
+ "name": "水妖幻園 ドォーヌ・メグ",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "651": {
+ "name": "古跡探索 キタンナ神影洞",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "656": {
+ "name": "爽涼離宮 マリカの大井戸",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "659": {
+ "name": "偽造天界 グルグ火山",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "652": {
+ "name": "終末幻想 アーモロート",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "655": {
+ "name": "異界遺構 シルクス・ツイニング",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "661": {
+ "name": "創造機関 アナイダアカデミア",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+
+ // 5.0 Trials
+ "657": {
+ "name": "ティターニア討滅戦",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "658": {
+ "name": "極ティターニア討滅戦",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4",
+ "macro": "/p H1 (水 Water) H2
+/p MT
+/p D1 D2
+/p ST
+/p D3 D4
+/p ------ 2連頭割り 2 Split ------
+/p 西 West : MT-H1-D1-D3
+/p 東 East : ST-H2-D2-D4
+/p 時計回りの回転 Clockwise Rotation
+/p ---------- 連鎖 1 Chain 1 ----------
+/p 北西 N/W : Tank Healer | 南東 S/E : DPS
+/p -- Tether テザー : 9時受 (①西 West)】--
+/p ST->D1->D2->D3->-D4->H1
+/p ---------- 連鎖 2 Chain 2 ----------
+/p 北 North : Tank Healer | 南 South : DPS"
+ },
+ "666": {
+ "name": "イノセンス討滅戦",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "667": {
+ "name": "極イノセンス討滅戦",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "687": {
+ "name": "ハーデス討滅戦",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 5.01 Raids
+
+ "653": {
+ "name": "希望の園エデン:覚醒編1",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "684": {
+ "name": "希望の園エデン:覚醒編2",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "682": {
+ "name": "希望の園エデン:覚醒編3",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "689": {
+ "name": "希望の園エデン:覚醒編4",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 5.05 Raids Savage
+
+ "654": {
+ "name": "希望の園エデン零式:覚醒編1",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4",
+ "macro": "/p 【デルタアタック】 ¦ 【ピュアレイ】
+/p D3 D4 ¦ D3 MT D4
+/p MT ST ¦
+/p ボス ¦ D1 ボス D2
+/p D1 D2 ¦
+/p H1 H2 ¦ H1 ST H2
+/p ※DPSAOEは時計周りズレ¦※ロスト誘導=H1H2D3D4
+/p -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+/p 【ヴァイス(2人割)】 ¦【ピュアレイ誘導】
+/p MT/D3 ST/D4 ¦ H1
+/p ボス ¦ D3 ボス D4
+/p H1/D1 H2/D2 ¦ H2
+/p -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+/p 【ヴァイス(頭割り)】西:MTD1D3H1 東:STD2D4H2
+/p 【ヴァイス(マーキング)】H1→MT(後半D3)、H2→ST(後半D4)"
+ },
+ "685": {
+ "name": "希望の園エデン零式:覚醒編2",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4",
+ "macro": "/p 【クリーバー】|【罪と罰(白黒)】
+/p D3 MT D4 | MT/D3
+/p H1 ● H2 |H1/D1 ● H2/D4
+/p D1 ST D2 | ST/D2
+/p -------------------------------------------------
+/p 【ペイン床】 |【フレア】
+/p D3 D4 | TANK
+/p MT |
+/p D1 ● D2 | ●
+/p ST |
+/p H1 H2 |HEALER DPS"
+ },
+ "683": {
+ "name": "希望の園エデン零式:覚醒編3",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4",
+ "macro": "/p p ●基本散開
+/p MT ST
+/p D1 D2
+/p D3 D4
+/p H1 H2
+/p ●大時化 北西スタート
+/p ●大海嘯②
+/p 西:MTヒラ強圧DPS
+/p 東:ST他のDPS
+/p ●ブラックスモーカー
+/p 遠隔誘導 近接→ヒラ→近接→遠隔"
+ },
+ "690": {
+ "name": "希望の園エデン零式:覚醒編4",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 5.1 Patch
+
+ "693": {
+ "name": "極ハーデス討滅戦",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ "700": {
+ "name": "複製サレタ工場廃墟",
+ "tank": "3",
+ "healer": "6",
+ "dps": "15"
+ },
+
+ "692": {
+ "name": "魔法宮殿 グラン・コスモス",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+
+ // Guildhests
+ "43": {
+ "name": "彷徨う死霊を討て!",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "46": {
+ "name": "有毒妖花を駆除せよ!",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "47": {
+ "name": "無法者「似我蜂団」を撃滅せよ!",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "42": {
+ "name": "集団戦訓練をくぐり抜けろ!",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "44": {
+ "name": "全関門を突破し、最深部の敵を討て!",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "45": {
+ "name": "ギルガメを捕獲せよ!",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "49": {
+ "name": "爆弾魔ゴブリン軍団を撃滅せよ!",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "48": {
+ "name": "夢幻のブラキシオを討て!",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "50": {
+ "name": "汚染源モルボルを討て!",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "51": {
+ "name": "坑道に現れた妖異ブソを討て!",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "52": {
+ "name": "無敵の眷属を従えし、大型妖異を討て!",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "53": {
+ "name": "ボムを率いる「ボムクイーン」を討て!",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "54": {
+ "name": "不気味な陣形を組む妖異をせん滅せよ!",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "55": {
+ "name": "三つ巴の巨人族を制し、遺物を守れ!",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+
+ // Blue Mage 4.5
+ "610": {
+ "name": "デビューマッチ",
+ "tank": "0",
+ "healer": "0",
"dps": "0"
},
- "542": {
+ "612": {
+ "name": "プリン・アラモード",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "613": {
+ "name": "最初の岩壁「シパクナー」",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "614": {
+ "name": "怪力の鉄巨人「クレイオス」",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "615": {
+ "name": "ギルガメブラザーズ",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "616": {
+ "name": "ブラインド・フューリー",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "617": {
+ "name": "シアーハートアタック",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "618": {
+ "name": "青い牙、赤い牙",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "619": {
+ "name": "七色の甘味「ギモーヴ」",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "620": {
+ "name": "首無し王者「クロムドゥーブ」",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "621": {
+ "name": "爆ボム・ファーストアタック",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "622": {
+ "name": "寄生植物「ヒドノラ」",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "623": {
+ "name": "紅の死妖姫「カーミラ」",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "624": {
+ "name": "死なばもろともーッ!",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "625": {
+ "name": "アラグの脅威「闘獣システム」",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "626": {
+ "name": "豪腕の獣王「ティクバラン」",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "627": {
+ "name": "剛柔の鉄巨人「クレイオス改」",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "628": {
+ "name": "爆破デスマッチ",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "629": {
+ "name": "魅惑の芳香「アロマティック・アムーシャ」",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "630": {
+ "name": "名コンビ「オルトロス&テュポーン」",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "631": {
+ "name": "憤怒の合成獣「アペデマク」",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "632": {
+ "name": "爆発の対消滅「グランパボム」",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "633": {
+ "name": "魔獣の皇太子「クロンプリンツ・ベヒーモス」",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "634": {
+ "name": "異形の人形師「エペロギ」",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "635": {
+ "name": "悪の青魔道士「アポカリョープス」",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+
+
+ // Novice Training
+ "151": {
+ "name": "範囲攻撃を避けよう!",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "152": {
+ "name": "コンボで敵視を集めよう!",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "153": {
+ "name": "実戦でコンボに挑戦しよう!",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "154": {
+ "name": "複数の敵から敵視を集めよう!",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "155": {
+ "name": "実戦で複数の敵と戦ってみよう!",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "156": {
"name": "遠距離から敵視を集めよう!",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "543": {
+ "157": {
"name": "敵の増援に対応しよう!",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "544": {
+ "158": {
"name": "味方と協力して敵を倒そう!",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "545": {
+ "159": {
"name": "味方が引きつけている敵を倒そう!",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "546": {
+ "160": {
"name": "敵の攻撃を避けながら戦おう!",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "547": {
+ "161": {
"name": "敵の増援に対応しよう!",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "548": {
+ "162": {
"name": "ギミックを活用して戦おう!",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "549": {
+ "163": {
"name": "味方を回復しよう!",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "550": {
+ "164": {
"name": "複数の味方を回復しよう!",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "551": {
+ "165": {
"name": "敵の攻撃を避けながら戦おう!",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "552": {
+ "166": {
"name": "最終訓練!",
"tank": "0",
"healer": "0",
@@ -1324,104 +1940,98 @@
// PvP
- "175": {
- "name": "The Fold",
- "tank": "0",
- "healer": "0",
- "dps": "0"
- },
- "336": {
- "name": "The Fold",
+ "127": {
+ "name": "外縁遺跡群 (制圧戦)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "337": {
- "name": "The Fold (Matched Party)",
+ "130": {
+ "name": "シールロック (争奪戦)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "352": {
- "name": "The Fold (Light Party)",
+ "145": {
+ "name": "ザ・フィースト (4対4 / ランクマッチ)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "184": {
- "name": "The Fold (Matched Party)",
+ "228": {
+ "name": "ザ・フィースト (4対4 / カジュアルマッチ)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "186": {
- "name": "The Fold (Light Party)",
+ "230": {
+ "name": "ザ・フィースト (4対4 / ランクマッチ)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "376": {
- "name": "外縁遺跡群 (制圧戦)",
+ "143": {
+ "name": "ザ・フィースト (4対4 / カジュアルマッチ)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "422": {
- "name": "外縁遺跡群 (殲滅戦)",
+ "201": {
+ "name": "ザ・フィースト (ウルヴズジェイル演習場:カスタムマッチ)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "431": {
- "name": "シールロック (争奪戦),
+ "233": {
+ "name": "ザ・フィースト (ライケンウィード演習場:カスタムマッチ)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "518": {
- "name": "The Feast (8 on 8 - Matched Party)",
+ "476": {
+ "name": "ザ・フィースト (チーム用ランクマッチ)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "525": {
- "name": "The Feast (4 on 4 - Solo)",
+ "478": {
+ "name": "ザ・フィースト (ランクマッチ)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "526": {
- "name": "The Feast (4 on 4 - Light Party)",
+ "479": {
+ "name": "ザ・フィースト (カジュアルマッチ)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "527": {
- "name": "The Feast (4 on 4 - Solo)",
+ "480": {
+ "name": "ザ・フィースト (クリスタルタワー演習場:カスタムマッチ)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "528": {
- "name": "The Feast (4 on 4 - Light Party)",
+ "580": {
+ "name": "ザ・フィースト (クリスタルタワー演習場:チーム用カスタムマッチ)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "618": {
- "name": "ザ・フィースト (8対8 / カスタムマッチ専用 / ウルヴズジェイル演習場)",
+ "180": {
+ "name": "フィールド・オブ・グローリー (砕氷戦)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "619": {
- "name": "ザ・フィースト (4対4 / カスタムマッチ専用 / ウルヴズジェイル演習場)",
+ "277": {
+ "name": "アストラガロス (機工戦)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "554": {
- "name": "フィールド・オブ・グローリー (砕氷戦)",
+ "599": {
+ "name": "ヒドゥンゴージ(機工戦)",
"tank": "0",
"healer": "0",
"dps": "0"
@@ -1429,139 +2039,323 @@
// Deep Dungeons
- "561": {
+ // The Palace of the Dead
+ "174": {
"name": "死者の宮殿 B1~B10",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "562": {
+ "175": {
"name": "死者の宮殿 B11~B20",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "563": {
+ "176": {
"name": "死者の宮殿 B21~B30",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "564": {
+ "177": {
"name": "死者の宮殿 B31~B40",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "565": {
+ "178": {
"name": "死者の宮殿 B41~B50",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "593": {
+ "204": {
"name": "死者の宮殿 B51~B60",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "594": {
+ "205": {
"name": "死者の宮殿 B61~B70",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "595": {
+ "206": {
"name": "死者の宮殿 B71~B80",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "596": {
+ "207": {
"name": "死者の宮殿 B81~B90",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "597": {
+ "208": {
"name": "死者の宮殿 B91~B100",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "598": {
+ "209": {
"name": "死者の宮殿 B101~B110",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "599": {
+ "210": {
"name": "死者の宮殿 B111~B120",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "600": {
+ "211": {
"name": "死者の宮殿 B121~B130",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "601": {
+ "212": {
"name": "死者の宮殿 B131~B140",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "602": {
+ "213": {
"name": "死者の宮殿 B141~B150",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "603": {
+ "214": {
"name": "死者の宮殿 B151~B160",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "604": {
+ "215": {
"name": "死者の宮殿 B161~B170",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "605": {
+ "216": {
"name": "死者の宮殿 B171~B180",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "606": {
+ "217": {
"name": "死者の宮殿 B181~B190",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "607": {
+ "218": {
"name": "死者の宮殿 B191~B200",
"tank": "0",
"healer": "0",
"dps": "0"
},
+ // アメノミハシラ
+ "540": {
+ "name": "アメノミハシラ (1-10)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "541": {
+ "name": "アメノミハシラ (11-20)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "542": {
+ "name": "アメノミハシラ (21-30)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "543": {
+ "name": "アメノミハシラ (31-40)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "544": {
+ "name": "アメノミハシラ (41-50)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "545": {
+ "name": "アメノミハシラ (51-60)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "546": {
+ "name": "アメノミハシラ (61-70)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "547": {
+ "name": "アメノミハシラ (71-80)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "548": {
+ "name": "アメノミハシラ (81-90)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "549": {
+ "name": "アメノミハシラ (91-100)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+
+ // The Forbidden Land, Eureka
+ "283": {
+ "name": "禁断の地 エウレカ:アネモス編",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "581": {
+ "name": "禁断の地 エウレカ:パゴス編",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "598": {
+ "name": "禁断の地 エウレカ:ピューロス編",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "639": {
+ "name": "禁断の地 エウレカ:ヒュダトス編",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+
// Other things...
- "579": {
+ "437": {
"name": "トリプルトライアド",
"tank": "0",
"healer": "0",
"dps": "0"
- }
- },
-
- //Event Instance
- "571": {
+ },
+ "600": {
+ "name": "挑戦! ジャンピングアスレチック",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "601": {
+ "name": "挑戦! ジャンピングアスレチック",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "602": {
+ "name": "挑戦! ジャンピングアスレチック",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "603": {
+ "name": "挑戦! ジャンピングアスレチック",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "604": {
+ "name": "挑戦! ジャンピングアスレチック",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "605": {
+ "name": "挑戦! ジャンピングアスレチック",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "606": {
+ "name": "挑戦! ジャンピングアスレチック",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "607": {
+ "name": "挑戦! ジャンピングアスレチック",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "608": {
+ "name": "挑戦! ジャンピングアスレチック",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "643": {
+ "name": "ドマ式麻雀:一般卓(段位変動有り)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "644": {
+ "name": "ドマ式麻雀:有段卓(段位変動有り)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "645": {
+ "name": "ドマ式麻雀:4人セット卓(クイタン有り)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "650": {
+ "name": "ドマ式麻雀:4人セット卓(クイタン無し)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "640": {
+ "name": "出撃! エアフォースパイロット",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "641": {
+ "name": "出撃! エアフォースパイロット",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "642": {
+ "name": "出撃! エアフォースパイロット",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+
+ //Event Instance
+ "181": {
"name": "亡霊屋敷 ホーンテッドマナー",
"tank": "0",
"healer": "0",
@@ -1572,1090 +2366,1278 @@
// Duty Roulette
"roulettes": {
"1": "コンテンツルーレット: レベリング",
- "2": "コンテンツルーレット: レベル50・60ダンジョン",
+ "2": "コンテンツルーレット: レベル50・60・70ダンジョン",
"3": "コンテンツルーレット: メインクエスト",
"4": "コンテンツルーレット: ギルドオーダー",
"5": "コンテンツルーレット: エキスパート",
"6": "コンテンツルーレット: 討伐・討滅戦",
"7": "コンテンツルーレット: フロントライン",
- "8": "コンテンツルーレット: レベル70ダンジョン",
+ "8": "コンテンツルーレット: レベル80ダンジョン",
"9": "コンテンツルーレット: メンター",
"10": "ザ・フィースト (8対8 / カジュアルマッチ)",
"13": "ザ・フィースト (4対4 / ランクマッチ)",
- "15": "コンテンツルーレット: アライアンスレイド"
+ "15": "コンテンツルーレット: アライアンスレイド",
+ "17": "コンテンツルーレット: レイド"
},
// FATEs
"areas": {
"134": {
- "name": "Middle La Noscea",
+ "name": "中央ラノシア",
"fates": {
- "533": "Return of the King",
- "649": "Sister Crustacean",
- "687": "Embiggened Spriggans",
- "688": "Tower of Power",
- "693": "Stay Frosty",
- "717": "Gloria in Eggcelsis",
- "220": "Menuis at Work",
- "221": "Overnight Migration",
- "222": "Go Wespe",
- "223": "A Mad, Mad, Mad Sergeant",
- "225": "Thwack-a-Mole",
- "226": "Yellow-bellied Greenbacks",
- "227": "On the Lamb",
- "229": "The Orange Boxes",
- "231": "Shearing Is Caring",
- "233": "The Boy Who Cried Jackal",
- "235": "Sister Crustacean",
- "237": "Hello, Work",
- "238": "The Truth Is out There",
- "239": "Taking It to the Streams",
- "240": "Crying over Spilled Salt"
+ "649": "その水棲動物を見よ",
+ "688": "黒い悪魔:過激な淑女",
+ "220": "巨躯の猛牛「メヌイス」",
+ "221": "サマーフォードの怪",
+ "222": "ヴェスパとイエロージャケット",
+ "223": "デネベール関門防衛訓練",
+ "225": "果てなきモグラ叩き",
+ "226": "海軍式の通過儀礼",
+ "227": "羊たちの騒乱",
+ "229": "上には上がある",
+ "231": "切断狂「シアリング・シェリダン」",
+ "233": "追う者と追われる者",
+ "235": "その水棲動物を見よ",
+ "237": "農場にかける橋",
+ "238": "血濡れの猛犬「チュパカブラ」",
+ "239": "麗しのローグ川",
+ "240": "クラゲが飛んだ日"
}
},
"135": {
- "name": "Lower La Noscea",
+ "name": "低地ラノシア",
"fates": {
- "257": "I Melt with You",
- "260": "Away in a Bilge Hold",
- "261": "In the Name of Love",
- "262": "Don't Drink the Water",
- "264": "Enter Beastman",
- "265": "One Pickman Enters",
- "534": "Return of the King",
- "333": "Under the Bridge",
- "666": "Brick by Brick",
- "667": "Brick by Stone Brick",
- "694": "Stay Frosty",
- "718": "Gloria in Eggcelsis",
- "245": "One Prince",
- "246": "Fight the Flower",
- "249": "You Call That a Toad",
- "250": "Caving In",
- "251": "Man of the Flour"
+ "257": "浮かぶ胃袋「クアハック」",
+ "260": "迷惑千万「密航のアクトシュティム」",
+ "261": "俺たちゃ海賊",
+ "262": "水場の争い",
+ "264": "シダーウッドの戦い",
+ "265": "精強なる山師「ピックマン426 ブ・ガ」",
+ "333": "豪然たる魔犬「パッドフット」",
+ "245": "不吉なる王子「マンドラプリンス」",
+ "246": "危ない野良仕事",
+ "249": "蛙の子は蛙",
+ "250": "黒い翼",
+ "251": "小麦粉戦争"
}
},
"137": {
- "name": "Eastern La Noscea",
+ "name": "東ラノシア",
"fates": {
- "267": "Finding Wine",
- "268": "The Thirst",
- "271": "Thrill of the Hunt",
- "272": "The Pelican Briefing",
- "274": "Them",
- "532": "Return of the King",
- "278": "Careless Whiskers",
- "279": "No Lip",
- "280": "Jewels of the Isle",
- "282": "Crab and Go",
- "286": "Follow the Light",
- "287": "Just a Matter of Rut",
- "560": "9 to 5",
- "561": "Closing Time",
- "562": "Sweeter than Honey",
- "563": "Ho Ho Ho",
- "564": "Say My Name",
- "565": "Long Way Home",
- "566": "Cliff Hanger",
- "334": "Consigned, Sealed, and Undelivered",
- "335": "It's Not Lupus",
- "913": "The Sarong Song",
- "914": "The Belle of the Beach",
- "915": "Sparking Up the Wrong Beach",
- "916": "It Came from Beneath the Deep",
- "917": "Life's a Beach",
- "918": "Feeling Groggy",
- "689": "Embiggened Spriggans",
- "690": "Tower of Power",
- "701": "What's Yours Is Mine"
+ "267": "ワインよこせ!",
+ "268": "ワイン飲みてぇ!",
+ "271": "新鮮な生肉",
+ "272": "エッグモンスター",
+ "274": "ミクロの決死隊",
+ "278": "白い巨塔",
+ "279": "コリブリたちの食卓",
+ "280": "彷徨の業師「弾指のココルン」",
+ "282": "海辺のスニッパー",
+ "286": "死者の代弁者",
+ "287": "愛はさだめ、さだめは死",
+ "560": "野蛮な餓えた傭兵の反乱",
+ "561": "酒飲み魔獣「セクメト」",
+ "562": "蜜蜂誘う甘い蜜",
+ "563": "深緑の巨獣「ジョリーグリーン」",
+ "564": "不吉な球根「メツハルジャス」",
+ "565": "お家に帰ろう",
+ "566": "球根つぶし",
+ "334": "夏への扉",
+ "335": "死顔の簒奪者「キャンサー」",
+ "690": "黒い悪魔:過激な淑女",
+ "701": "狂乱のエッグハント"
}
},
"138": {
- "name": "Western La Noscea",
+ "name": "西ラノシア",
"fates": {
- "568": "Gauging North Tidegate",
- "569": "Breaching North Tidegate",
- "570": "Gauging South Tidegate",
- "571": "Breaching South Tidegate",
- "572": "Sharknado",
- "574": "Tail of a Whale",
- "575": "Watch Your Tongue",
- "576": "Dead Man's Rest",
- "577": "The King's Justice",
- "578": "Making Waves",
- "650": "Tender Buttons",
- "702": "Eggcelsior",
- "289": "Absolutely, Positively",
- "290": "Tender Buttons",
- "291": "The Killing Fields",
- "295": "(I Just) Died in Six Arms Tonight",
- "297": "Iron Contra Affair",
- "298": "Don't Call Him a Fishback",
- "303": "Letters from Tidegate",
- "304": "The Last Straw",
- "306": "Barometz Soup",
- "308": "Goblin Chain",
- "309": "Tryp Fantastic",
- "310": "Between Aurochs",
- "312": "In the Sac",
- "336": "The Mandragoras"
+ "568": "北防波壁の戦い:威力偵察",
+ "569": "北防波壁の戦い:本隊強襲",
+ "570": "南防波壁の戦い:威力偵察",
+ "571": "南防波壁の戦い:本隊強襲",
+ "572": "冷徹なる戦略家「鮫肌のヴォル」",
+ "574": "海蛇の末路",
+ "575": "海蛇の船長「刻印のエルムスイス」",
+ "576": "死の行進",
+ "577": "異国の魔蟲「マンティスキング」",
+ "578": "水神呼びし者「水鬼のヤァル」",
+ "650": "暴食の怪鳥「グルタナスガーティ」",
+ "289": "補給線を支えろ",
+ "290": "暴食の怪鳥「グルタナスガーティ」",
+ "291": "小麦畑でつかまえて",
+ "295": "古強者「オールドシックスアームズ」",
+ "297": "税関公社の強制捜査",
+ "298": "敵は海賊・海蛇の舌",
+ "303": "故郷からの手紙",
+ "304": "ドードーの巣破壊命令",
+ "306": "死活の罠「バロメッツ」",
+ "308": "交渉決裂",
+ "309": "愚鈍な用心棒「間抜のトリップティックス」",
+ "310": "決闘デネベール街道",
+ "312": "昆虫軍団現わる",
+ "336": "野菜革命「マンドラーズ」"
}
},
"139": {
- "name": "Upper La Noscea",
+ "name": "高地ラノシア",
"fates": {
- "314": "Simurgh Is the Word",
- "317": "Surprise",
- "320": "The Road More Traveled",
- "321": "Nine-ilm Snails",
- "322": "Truth in Faerie Tales",
- "323": "Giant Enemy Crab",
- "329": "Shell Shocked",
- "331": "Peeping Ja",
- "332": "Hop, Skip, and a Jump",
- "668": "Brick by Brick",
- "669": "Brick by Stone Brick",
- "670": "Brick by Brick",
- "671": "Brick by Gold Brick",
- "703": "What's Yours Is Mine",
- "451": "Poor Maid's Mess",
- "452": "Poor Maid's Mishap",
- "453": "Poor Maid's Misfortune",
- "454": "Poor Maid's Misadventure"
+ "314": "豹喰いの妖鳥「シームルグ」",
+ "317": "輸送部隊防衛命令",
+ "320": "昨日の友は今日の敵",
+ "321": "湯煙温泉殺貝事件",
+ "322": "石緑湖の主「オアンネス」",
+ "323": "脅威の元食材「カルキノス」",
+ "329": "温泉の申し子「ゾレドナイト」",
+ "331": "悲運の傭兵「美男のブガージャ」",
+ "332": "湖面を駆けろ!",
+ "703": "狂乱のエッグハント",
+ "451": "プアメイドミル復興:食料防衛",
+ "452": "プアメイドミル復興:ゲ・ブ排撃",
+ "453": "プアメイドミル復興:クァール討伐",
+ "454": "プアメイドミル復興:野牛討伐"
}
},
"180": {
- "name": "Outer La Noscea",
+ "name": "外地ラノシア",
"fates": {
- "580": "The Only Way Is Up",
- "581": "By a Whisker",
- "583": "When the Coeurl's Away",
- "586": "The Miner in the Mirror",
- "587": "Schism",
- "588": "Fire in the Hole",
- "589": "Make It Rain",
- "591": "Peryton, Perhaps",
- "593": "Restless in O'Ghomoro",
- "594": "I'm a Rock, Not a Number",
- "595": "Overlooking the Obvious",
- "597": "Full Metal Alchemist",
- "598": "Spandy Balidet",
- "599": "Stopping the Shakes",
- "700": "Making the Rounds"
+ "580": "ザ・ロード",
+ "581": "黒渦団の仇敵「オセ」",
+ "583": "豹よ、豹よ!",
+ "586": "土竜の山師「ピックマン59 ベ・ゼ」",
+ "587": "試掘地強襲作戦",
+ "588": "ファイア・イン・ザ・ホール",
+ "589": "雷雨呼ぶ者「ブラウンガー」",
+ "591": "伝説の巨竜「ペリュトン」",
+ "593": "狂気の山脈",
+ "594": "廃棄された実験体「ナンバー128」",
+ "595": "補給部隊救出命令",
+ "597": "鋼虫の養殖者「ビーズマン59 ビ・ゴ」",
+ "598": "目覚めし石像「バリデト」",
+ "599": "岩神呼びし者「ペイトリアーク05 ゼ・ブ」",
+ "700": "妖異殺し「ラウンズマン59 ゲ・ガ」"
}
},
"140": {
- "name": "Western Thanalan",
+ "name": "西ザナラーン",
"fates": {
- "342": "Needles to Slay",
- "343": "Things that Make You Go Home",
- "344": "Deface the Facts",
- "345": "Please Hammers",
- "346": "The Cores",
- "347": "Doomed",
- "348": "The Villain",
- "349": "Copied Peistes",
- "350": "Dog Eat Dog",
- "352": "Bigger Fish to Fry",
- "353": "Bubble Trouble",
- "354": "Tripped up by the Fruit of Another",
- "355": "Juggernaut Down",
- "356": "A Matter of Rust",
- "357": "There Might Be Giants",
- "361": "Pound for Pound",
- "366": "He's Got Legs",
- "367": "Staying Dead",
- "911": "Recurring Bugs",
- "683": "Embiggened Spriggans",
- "684": "Tower of Power",
- "704": "What's Yours Is Mine"
+ "342": "緊急停止",
+ "343": "強制立ち退き",
+ "344": "階級的怒りの鉄槌",
+ "345": "大地のハンマー",
+ "346": "ミッション・アース",
+ "347": "謎の巨大生物「ドゥーム・ギガントード」",
+ "348": "砂漠の覇王「カクター・ジャック」",
+ "349": "荒野の用心棒",
+ "350": "野良犬たちの挽歌",
+ "352": "罪のない残虐",
+ "353": "飽食の大蟹「バブリーバーニー」",
+ "354": "負傷者を護送せよ",
+ "355": "戦いは、なおも続いた",
+ "356": "コブラン族の大移動",
+ "357": "黄金兜の大巨人「悲嘆のブリアレオス」",
+ "361": "ハンマーチャンス",
+ "366": "足長おやじ「ダディーロングレッグ」",
+ "367": "ゴーストバスター",
+ "684": "黒い悪魔:過激な淑女",
+ "704": "狂乱のエッグハント"
}
},
"141": {
- "name": "Central Thanalan",
+ "name": "中央ザナラーン",
"fates": {
- "535": "Return of the King",
- "370": "Something to Prove",
- "373": "Like an Eft out of Water",
- "374": "Wrecked Rats",
- "375": "Survivor Rats",
- "376": "Cracked",
- "377": "Orobon Part Two: The Spawning",
- "378": "Let them Eat Cactus",
- "379": "For the Queen",
- "381": "A Few Arrows Short of a Quiver",
- "383": "Big Time",
- "385": "Cold-blooded",
- "389": "A Warm Welcome",
- "393": "Leaving the Nest",
- "912": "Recurring Bugs",
- "660": "Brick by Brick",
- "661": "Brick by Stone Brick",
- "695": "Stay Frosty",
- "719": "Gloria in Eggcelsis"
+ "370": "粗野な勝負師「無頼のグリスヒルド」",
+ "373": "夕飯を渡すな!",
+ "374": "底無の酒豪「飲んべえググルン」",
+ "375": "コッファー与えず、コフィンに送れ",
+ "376": "半熟英雄「半熟のババルン」",
+ "377": "殺人魚スポーニングキラー",
+ "378": "サボテンサラダ",
+ "379": "アリだー!",
+ "381": "キヴロン家の住人",
+ "383": "街道をゆく",
+ "385": "不浄なる大蝦蟇「ヴォジャノーイ」",
+ "389": "怒れる宝主「スピットファイア」",
+ "393": "砂城の猛将「ネストコマンダー」"
}
},
"145": {
- "name": "Eastern Thanalan",
+ "name": "東ザナラーン",
"fates": {
- "536": "Return of the King",
- "540": "Quartz Coupling",
- "541": "A Man Rides Through",
- "542": "Bad Hair Day",
- "543": "The Big Bagoly Theory",
- "394": "Men Who See Goats",
- "395": "License to Quill",
- "652": "Lightning Strikes - Armored Beast",
- "397": "Westward Bound",
- "398": "Bad Camp",
- "400": "Bazaar Blood Triangle",
- "401": "Grim Undertakings",
- "402": "Simple Minds",
- "406": "Manifest Destiny",
- "407": "Spare the Hair",
- "409": "Desert Rose",
- "412": "Almost Paradise",
- "413": "Deep in the Heart of Sagolii",
- "696": "Stay Frosty",
- "191": "Attack on Highbridge: Prelude",
- "192": "Attack on Highbridge: Act I",
- "193": "Attack on Highbridge: Act II",
- "194": "Attack on Highbridge: Act III",
- "195": "Attack on Highbridge: Denouement",
- "705": "Eggcelsior",
- "720": "Gloria in Eggcelsis"
+ "540": "ワサワサドブラン",
+ "541": "鏡像の騎士",
+ "542": "金髪の貴公子「アイエテス」",
+ "543": "醜悪なる合成獣「バドゥ」",
+ "394": "野獣死すべし",
+ "395": "その硬さ、鋼の如し",
+ "397": "アマルジャ軍迎撃作戦",
+ "398": "侵攻作戦を阻止せよ",
+ "400": "ゴールドバザー防衛戦",
+ "401": "煉獄の墓掘人「アンダーテイカー」",
+ "402": "盗賊もどきの成敗",
+ "406": "東部戦線異状なし",
+ "407": "毛髪の簒奪者「ゴッサマー」",
+ "409": "妖花前線",
+ "412": "楽園の泉",
+ "413": "長角の古老「エルダー・ロングホーン」",
+ "191": "ハイブリッジの死闘:前哨戦",
+ "192": "ハイブリッジの死闘:防衛戦",
+ "193": "ハイブリッジの死闘:ズズルン排撃",
+ "194": "ハイブリッジの死闘:ナヨク・ロー排撃",
+ "195": "ハイブリッジの死闘:市民奪還作戦",
}
},
"146": {
- "name": "Southern Thanalan",
+ "name": "南ザナラーン",
"fates": {
- "545": "Call Me, Mayhaps",
- "546": "Book of Pride",
- "548": "Tempered, Tempered",
- "549": "Full of Rigor Mortis",
- "550": "An Inconvenient Truth",
- "551": "Future Shock",
- "552": "Taken",
- "553": "Gyve Talk",
- "554": "Spark off the Bench",
- "555": "Fallen Corpses Writhe in Style",
- "557": "Quenching the Flame",
- "558": "He's a Firestarter",
- "651": "Lightning Strikes - Armored Beast",
- "685": "Embiggened Spriggans",
- "686": "Tower of Power",
- "706": "What's Yours Is Mine",
- "419": "Adventures in Throat Slitting",
- "420": "The Corpse Bribe",
- "421": "Downwind",
- "422": "Soul Man",
- "423": "Bigger than Life",
- "424": "Heroes of the 2nd",
- "427": "Diamond in the Rough",
- "429": "Children of the Sands",
- "430": "Return to Cinder",
- "431": "Hunters and the Hunted",
- "432": "From Point A",
- "434": "Run Like a Flame",
- "436": "Blood, Augur, Hex, Magicks",
- "437": "Fish out of Water",
- "441": "Harder, Bigger, Faster, Stronger",
- "455": "Revenge of the Worms",
- "456": "Bump and Grind"
+ "545": "荒野の消火活動",
+ "546": "哀しき闘士「純鉄のビビレゼ」",
+ "548": "正義についての話をしよう",
+ "549": "甲羅を蹴飛ばせ!",
+ "550": "精鋭部隊「ゴアホード」",
+ "551": "今日の運勢",
+ "552": "友と、家族と",
+ "553": "第一関門攻略戦",
+ "554": "速射の名手「火打のハプグ・ロー」",
+ "555": "砂の上の足あと",
+ "557": "アマルジャ軍特殊部隊「炎牙衆」",
+ "558": "焔神呼びし者「火印のアファジ・コー」",
+ "686": "黒い悪魔:過激な淑女",
+ "706": "狂乱のエッグハント",
+ "419": "骸の頭目「流転のミルウーダ」",
+ "420": "スープに肉を入れるため",
+ "421": "リトルアラミゴ防衛戦",
+ "422": "真理を解き明かせ",
+ "423": "大らかな圧殺者「アスピドケロン」",
+ "424": "我ら第二戦闘大隊",
+ "427": "怒濤の怪力「金剛のネゼド・ガー」",
+ "429": "砂漠の子供たち",
+ "430": "運命の代弁者「黒煙のペグジ・チャー」",
+ "431": "狩る者と狩られる者",
+ "432": "工神ビエルゴの守護者",
+ "434": "偵察兵の仕事",
+ "436": "無道の暗殺者「呪言のマラド・チャー」",
+ "437": "流れる砂の海",
+ "441": "まるで我が子の様に",
+ "455": "砂漠の神皇帝「ウルハドシ」",
+ "456": "持たざる者「破戒のギスフリッド」"
}
},
"147": {
- "name": "Northern Thanalan",
+ "name": "北ザナラーン",
"fates": {
- "556": "Core Blimey",
- "637": "The Red Baron",
- "638": "Just a Sip",
- "639": "East Meets Worst",
- "641": "Twinkle, Twinkle Little Trap",
- "642": "The Ceruleum Road",
- "643": "Dark Devices - The Plea",
- "644": "Devices - The Bait",
- "645": "Dark Devices - The Switch",
- "646": "Dark Devices - The End",
- "647": "Go, Go, Gorgimera",
- "446": "With One Eye Open",
- "447": "Under the Nails",
- "449": "Boom Goes the Ceruleum",
- "450": "Knock on Steel",
- "457": "Reverse Engineering"
+ "556": "青燐精製所のお手伝い",
+ "637": "灼熱の男爵「ボムバロン」",
+ "638": "ゴクゴクドブラン",
+ "639": "監視者の影",
+ "641": "鋼虫の罠",
+ "642": "セルリウムロード",
+ "643": "救世神の生贄:誘拐編",
+ "644": "救世神の生贄:待伏編",
+ "645": "救世神の生贄:誅殺編",
+ "646": "救世神の生贄:妖異編",
+ "647": "荒れ狂う巨獣「ゴーキマイラ」",
+ "446": "虚像の眼「アリマスピ」",
+ "447": "爪切り",
+ "449": "火の用心",
+ "450": "新装甲採用機「魔導ヴァンガード試験型」",
+ "457": "リバースエンジニアリング"
}
},
"148": {
- "name": "Central Shroud",
+ "name": "黒衣森中央森林",
"fates": {
- "537": "Return of the King",
- "600": "The Lindwurm Has Turned",
- "601": "What's Your Poison",
- "602": "Revenant Things",
- "603": "If I Only Had a Soul",
- "604": "In Spite of It All",
- "120": "Clever Girls",
- "121": "One Enchanted Eve",
- "122": "Sprig Cleaning",
- "123": "Something in the Water",
- "124": "The Sting",
- "125": "Asipatra Attacks",
- "126": "Leader of the Pack",
- "127": "A Mother Scorned",
- "128": "Alux of the Draw",
- "130": "영원그늘 수확제",
- "131": "Lethe on My Mind",
- "136": "Training Day",
- "137": "Bleeding Green",
- "138": "Tastes Like Chick",
- "139": "Sleep Tight",
- "140": "Spirithold Run",
- "141": "Love is in the Air",
- "142": "There's Something about Lou",
- "672": "Brick by Brick",
- "673": "Brick by Stone Brick",
- "697": "Stay Frosty",
- "707": "What's Yours Is Mine",
- "196": "Steel Reign",
- "197": "Steel Reign",
- "208": "Lady Killer",
- "209": "My Baby Green"
+ "600": "強襲リンドヴルム",
+ "601": "とても楽しいキノコ狩り",
+ "602": "送り火と",
+ "603": "真理を求めて",
+ "604": "陰険なる魔物「スパイトフル」",
+ "120": "森駆けるスプリンター",
+ "121": "楽しいキノコ狩り",
+ "122": "スプリガンのお引っ越し",
+ "123": "淀みの奔流「スタグナントスプライト」",
+ "124": "虫刺されにご用心",
+ "125": "人喰いの怪鳥「アシパトラ」",
+ "126": "健脚の暴君「アルファ・アノール」",
+ "127": "怒りの猪突猛進",
+ "128": "強大なる小鬼「アルシュ」",
+ "130": "エバーシェイドの収穫祭",
+ "131": "忘れ得ぬ地神の忘却",
+ "136": "怒れる教官「激高のミロードン」",
+ "137": "病毒の妖花「マタガイガイ」",
+ "138": "チョコチョコチョコチョコボ",
+ "139": "あなたの魂に安らぎあれ",
+ "140": "大脱走",
+ "141": "ガルヴァンス監視哨の援軍要請",
+ "142": "軟体の大食漢「ル・カルコル」",
+ "707": "狂乱のエッグハント",
+ "196": "古の闘神「オーディン」",
+ "197": "古の闘神「オーディン」",
+ "208": "レディキラー",
+ "209": "水源の破壊者「ジェイデッド・ジョディ」"
}
},
"152": {
- "name": "East Shroud",
+ "name": "黒衣森東部森林",
"fates": {
- "607": "Collecting Keepsakes",
- "608": "All Vine and No Popotoes",
- "609": "The Squirrel Trapper's Wife",
- "610": "The Enemy of My Enemy",
- "611": "The Enmity of My Enemy",
- "612": "Below His Station",
- "615": "Got Milkroot",
- "616": "Breaking Dawn",
- "618": "Handful of Dreams",
- "619": "Bush Blade",
- "620": "Everything's Better",
- "622": "The Gale that Rocks the Cradle",
- "143": "Now I See Bees I Won",
- "144": "Royal Rumble",
- "145": "전장까지 앞으로 몇 말름?",
- "148": "What a Bee Wants",
- "149": "Stopping the Spread",
- "150": "Jack of All Trades",
- "151": "줄다리 사투",
- "152": "Protecting the Patch",
- "679": "Embiggened Spriggans",
- "680": "Tower of Power",
- "691": "A Wrench in the Works",
- "692": "What a Boar",
- "198": "Steel Reign",
- "199": "Steel Reign",
- "200": "Steel Reign",
- "212": "Ivy League",
- "213": "Thunderstruck",
- "214": "Carrion Baggage",
- "217": "What Have You Done for Mead Lately",
- "218": "Lazy for You"
+ "607": "過ぎ去りし日々の光",
+ "608": "オチュー狩り",
+ "609": "気まぐれ婦人「カプリシャス・キャシー」",
+ "610": "ラークスコール遭遇戦",
+ "611": "続ラークスコール遭遇戦",
+ "612": "千人隊長「アウルス・レム・ヴルソ」",
+ "615": "ミルク・クラッシュ",
+ "616": "幽谷の薬師「覚醒のダキシオ」",
+ "618": "ビューティフル・ドリーマー",
+ "619": "幽谷の衛士「葉刃のヴォルキシア」",
+ "620": "とてとて楽しいキノコ狩り",
+ "622": "敬虔なる養育者「風狂のプルシオ」",
+ "143": "蜂蜜戦争",
+ "144": "悪疫散布器「プリンス・オブ・ペスト」",
+ "145": "戦場までは何マルム?",
+ "148": "秘密の花園",
+ "149": "繁殖期の終わり",
+ "150": "若き魔猿「ジャッカネイプス」",
+ "151": "リトルブリッジの戦い",
+ "152": "狂える守護者たち",
+ "680": "黒い悪魔:過激な淑女",
+ "691": "高機動試作機「プロトアーマー」",
+ "692": "狂乱の闘猪「カフレ」",
+ "198": "古の闘神「オーディン」",
+ "199": "古の闘神「オーディン」",
+ "200": "古の闘神「オーディン」",
+ "212": "ナインティナインアイビー",
+ "213": "シルフと共に去りぬ",
+ "214": "禿鷲の饗宴",
+ "217": "甘い香りの運び人",
+ "218": "非情な収穫者「レジー・ローレンス」"
}
},
"153": {
- "name": "South Shroud",
+ "name": "黒衣森南部森林",
"fates": {
- "624": "Rogue on the Water",
- "626": "To Train a Tortoise",
- "627": "Fate Is a Fecal Mistress",
- "628": "What Gored Before",
- "153": "The Hunted",
- "154": "Eft for Dead",
- "158": "The Negotiators",
- "159": "Breaching the Hive",
- "160": "Clearing the Hive",
- "161": "Defending the Hive",
- "162": "Keeping the Hive",
- "163": "Kickin' It with the Kedtraps",
- "164": "The Coeurl King",
- "166": "Another Round",
- "167": "Stag Parting",
- "168": "Hide and Seek",
- "169": "A Tale of Two-tails",
- "170": "To Whom the Toll Goes",
- "171": "Eat In, Hide Out",
- "172": "Robbin' Goblins",
- "681": "Embiggened Spriggans",
- "682": "Tower of Power",
- "190": "Where the Stone Rolls",
- "708": "What's Yours Is Mine",
- "201": "Steel Reign",
- "202": "Steel Reign",
- "203": "Steel Reign",
- "204": "Steel Reign",
- "215": "Conspiracy Theory"
+ "624": "液状化現象",
+ "626": "カメェェェッー!",
+ "627": "臭い物にはフタをしろ",
+ "628": "最後の闘猪王「パイア」",
+ "153": "神速の羚羊「シロッコ」",
+ "154": "根を渡って沼地を越えて",
+ "158": "密猟売買両成敗",
+ "159": "レッドベリー砦の戦い:攻略戦",
+ "160": "レッドベリー砦の戦い:占領戦",
+ "161": "レッドベリー砦の戦い:防衛戦",
+ "162": "レッドベリー砦の戦い:迎撃戦",
+ "163": "最後の一葉",
+ "164": "秀麗なる無法者「密猟王クァールクロウ」",
+ "166": "酒房の常連「酔客のスペンサー」",
+ "167": "愛に時間を",
+ "168": "動かぬ証拠",
+ "169": "闇市の元締「双尾のヤビ・カータポ」",
+ "170": "通行料の支払いは刃で",
+ "171": "立ち退き要求",
+ "172": "失われた品を求めて",
+ "682": "黒い悪魔:過激な淑女",
+ "190": "孤独なる石兵「ヌニュヌウィ」",
+ "708": "狂乱のエッグハント",
+ "201": "古の闘神「オーディン」",
+ "202": "古の闘神「オーディン」",
+ "203": "古の闘神「オーディン」",
+ "204": "古の闘神「オーディン」",
+ "215": "飛んで火に入る似我蜂団"
}
},
"154": {
- "name": "North Shroud",
+ "name": "黒衣森北部森林",
"fates": {
- "538": "Return of the King",
- "631": "Don't Disturb This Grove",
- "632": "Rude Awakening",
- "633": "Air Supply",
- "634": "Smells Like Tree Spirit",
- "674": "Brick by Brick",
- "675": "Brick by Stone Brick",
- "676": "Brick by Brick",
- "677": "Brick by Gold Brick",
- "174": "No Birds Allowed",
- "178": "Dschubba Snacks",
- "179": "Now Fall",
- "180": "That Which Binds Us",
- "183": "Breaking Bud",
- "184": "The Magical Fruit",
- "185": "Micromanaging",
- "698": "Stay Frosty",
- "187": "The Big Issue",
- "188": "It Ziz What It Is",
- "189": "Hare Today",
- "205": "Steel Reign",
- "206": "Steel Reign",
- "207": "Steel Reign",
- "722": "Gloria in Eggcelsis",
- "216": "Waiting for a Moon to Fall"
+ "631": "伐採部隊迎撃戦",
+ "632": "遺跡の亡霊騎士「ダイダロス」",
+ "633": "イクサル軍伐採所強襲作戦",
+ "634": "怒れる守護者「グレートオーク」",
+ "174": "烏合の衆",
+ "178": "赤王の幼生「ジュバ」",
+ "179": "フォールゴウドの守り手",
+ "180": "山師の願い",
+ "183": "猿の惑乱",
+ "184": "みんな大好きムントゥイ豆",
+ "185": "幻惑の芳香「クルピラ」",
+ "187": "イクサル族強襲部隊の迎撃",
+ "188": "餓えたるジズが求めるもの",
+ "189": "アルダースプリングスの清掃",
+ "205": "古の闘神「オーディン」",
+ "206": "古の闘神「オーディン」",
+ "207": "古の闘神「オーディン」",
+ "216": "月の反逆者"
}
},
"155": {
- "name": "Coerthas Central Highlands",
+ "name": "クルザス中央高地",
"fates": {
- "653": "Lightning Strikes - Dread on Arrival",
- "654": "Lightning Strikes - Dread on Arrival",
- "699": "Stay Frosty",
- "709": "Eggcelsior",
- "460": "Twelve Ilms of Snow",
- "463": "Baa Baa Black Sheep",
- "464": "Gavial",
- "465": "Whiteout",
- "466": "A Log Up",
- "467": "Croc-y Road",
- "469": "The Grey",
- "470": "Simply Red",
- "472": "Spring Forward, Fall Back",
- "473": "Fire in the Distance",
- "474": "Coming to a Head",
- "475": "Bellyful",
- "479": "A Freeze Is Coming",
- "480": "Giant Seps",
- "482": "Riddle Me This",
- "483": "Judge, Jury, and Executioner",
- "484": "In the Saint's Wake",
- "486": "Tower of Power",
- "487": "Turn Off Your Hearthlight",
- "489": "What's on Your Mind",
- "490": "The Bigger They Are",
- "491": "Wish Upon a Star",
- "493": "The Taste of Fear",
- "494": "Roc of Ages",
- "496": "Front and Center",
- "497": "If This Wall Could Talk",
- "498": "Does Anyone Hear It",
- "499": "The Four Winds",
- "500": "Inspector Hatchet",
- "501": "Svara's Flight",
- "502": "Svara's Fear",
- "503": "Svara's Fall",
- "504": "Svara's Fury",
- "505": "Behold Now Behemoth",
- "506": "He Taketh It with His Eyes",
- "507": "The Eyes Have It",
- "508": "The Storm Caller"
+ "460": "白狼たちの戦旗",
+ "463": "黒き弾丸「ダウニーダンスタン」",
+ "464": "川辺の復讐者「ガビアル」",
+ "465": "冬物語",
+ "466": "星に願いを",
+ "467": "ワイルドダイルダンディー",
+ "469": "クルザスの白狼",
+ "470": "動く要塞",
+ "472": "流れよ我が涙",
+ "473": "歓喜、慚愧、猛吹雪",
+ "474": "エイビスキラー",
+ "475": "大口の悪鬼「ガルガメル」",
+ "479": "凍てつく波動「リュタン」",
+ "480": "騎兵の天敵「セプス」",
+ "482": "血と肉の街道舗装",
+ "483": "引き起こされた戦争",
+ "484": "骨貪る者「ロンジュール」",
+ "486": "アインハルトの意地",
+ "487": "暖を求めて",
+ "489": "巡礼の道",
+ "490": "愚鈍なる勇者「クリュティオス」",
+ "491": "星の光、今は遠く",
+ "493": "雪山の襲撃者「セベク」",
+ "494": "赤い翼「ロック」",
+ "496": "それは竜の意思!",
+ "497": "氷づけになるがいい!",
+ "498": "入植を阻止せよ",
+ "499": "烈風の勇士「フェロック四姉妹」",
+ "500": "匠の技「工匠のゴゾル・イツカン」",
+ "501": "スヴァラ迎撃作戦:工兵護送",
+ "502": "スヴァラ迎撃作戦:砲撃準備",
+ "503": "スヴァラ迎撃作戦:砲撃応戦",
+ "504": "スヴァラ迎撃作戦:人海戦術",
+ "505": "伝説の魔獣「ベヒーモス」",
+ "506": "手負いの魔獣「ベヒーモス」",
+ "507": "帰ってきた男「ステロペス」",
+ "508": "嵐神呼びし者「風標のコゾル・ノモトル」"
}
},
"156": {
- "name": "Mor Dhona",
+ "name": "モードゥナ",
"fates": {
- "512": "Toll Collector",
- "514": "Mud about You",
- "516": "Black and Nburu",
- "517": "Good to Be Bud",
- "520": "Standing Guard",
- "521": "Another Notch on the Torch",
- "522": "One Giant Leap",
- "523": "Among Giants",
- "524": "Another Day, Another Demon",
- "525": "That's What Adventurers Are For",
- "526": "Home Is Where the Horn Is",
- "527": "Gone with the Shadow",
- "529": "The Prodigal Son",
- "530": "V for Vinedetta",
- "655": "Lightning Strikes - Anubys Assault",
- "656": "Lightning Strikes - Anubys Assault",
- "657": "Lightning Strikes - On Wings of Chaos",
- "658": "Lightning Strikes - On Wings of Chaos"
+ "512": "失われた風景",
+ "514": "タングル湿林の大掃除",
+ "516": "湿林の怨念「ンブル」",
+ "517": "モルボル怒りの大増殖",
+ "520": "統合整備計画",
+ "521": "残忍なる悪鬼「ポリュス」",
+ "522": "聖地巡礼",
+ "523": "巨漢の地上げ屋",
+ "524": "ヒッポグリフの晩餐会",
+ "525": "乱れ髪「銀髪のディオネ」",
+ "526": "銀泪湖ガラガラドッカン",
+ "527": "夜襲の魔獣「グウィルギ」",
+ "529": "旅の仲間",
+ "530": "甘い誘惑「ボラプチュア・ビビアン」"
}
},
"397": {
- "name": "Coerthas Western Highlands",
+ "name": "クルザス西部高地",
"fates": {
- "787": "Eye in the Sky",
- "788": "A Dung Deal",
- "789": "Land of the Freeze",
- "791": "Dawn of the Mylodons",
- "792": "Don of the Mylodons",
- "793": "We Fought a Dzu",
- "794": "True Convictions",
- "795": "The Polar Express",
- "796": "Apparent Trap",
- "798": "Abominable Me",
- "800": "Requiem for a Dragon",
- "801": "Follow the Sleet",
- "802": "Sick Pack",
- "805": "In Command",
- "807": "What You See Is What You Get",
- "809": "Panic Rheum",
- "810": "Sugar, Sugar",
- "811": "Unsilent Vigil",
- "812": "Pico de Gallows",
- "813": "Run, Riders, Run",
- "814": "One Whiskey, One Goat, One Spear",
- "815": "No Ifs, Ands, or Butts",
- "816": "Null and Void",
- "817": "Dishonored",
- "908": "Sphenopalatine Ganglioneuralgia",
- "909": "A Stihi Situation"
+ "787": "誰か見てるぞ!",
+ "788": "巡礼の騎士",
+ "789": "凍結スリップ注意!",
+ "791": "黒鉄橋の戦い",
+ "792": "剛毛の白獣「ペルダ」",
+ "793": "ヤク喰い巨人「ズウティ」",
+ "794": "栄光の聖フィネア連隊",
+ "795": "熊出没注意",
+ "796": "雪男の天敵「イエティトラップ」",
+ "798": "獣人雪男",
+ "800": "臥竜島の戦い",
+ "801": "凍った花",
+ "802": "ダスクの銀狼",
+ "805": "コマンダー!",
+ "807": "幻惑の視線「ビホルダー」",
+ "809": "スノーホワイト",
+ "810": "人喰い氷菓「タルトゥフォ&ホワイトトリュフ」",
+ "811": "竜の眷属を討て",
+ "812": "鳥竜の大王「ピコラトン」",
+ "813": "氷上の狼",
+ "814": "酒浸り野獣「ヘイズルーン」",
+ "815": "若き竜騎士「鋭槍のアランベール」",
+ "816": "ファルコンネストの脅威",
+ "817": "功績泥棒「卑怯者のウェルナー」",
+ "908": "アイスクリーム頭痛",
+ "909": "冷酷なる氷竜「スティヒ」"
}
},
"398": {
- "name": "The Dravanian Forelands",
+ "name": "高地ドラヴァニア",
"fates": {
- "818": "By the Horns",
- "819": "Ladies First",
- "820": "Run, Run Away",
- "821": "Birds of a Feather",
- "822": "Glawackus On, Glawackus Off",
- "823": "Bear Apparent",
- "824": "Who's the Moss",
- "825": "The Rite Stuff",
- "826": "Dead Meat",
- "827": "The Whole Truth",
- "828": "Nothing but the Truth",
- "829": "Drone Under",
- "830": "El Miacid",
- "831": "Cerf's Up",
- "832": "Elephant in the Brume",
- "833": "The Migas Touch",
- "834": "Hearing Voices",
- "835": "The Mourning After",
- "836": "Stamp the Yard",
- "837": "Come to My Arms",
- "838": "Special Tarasque Force",
- "902": "Long Live the Coeurl",
- "903": "Coeurls Chase Boys",
- "904": "Coeurls Chase Boys",
- "905": "Coeurls Chase Boys Chase Coeurls",
- "906": "Coeurls Chase Boys Chase Coeurls",
- "907": "Coeurls Chase Boys Chase Coeurls",
- "910": "Ware the Maiden Fair"
+ "818": "伝説の馬鳥「ブルチョコボ」",
+ "819": "チョコボの森の番人",
+ "820": "巧妙なる狩人「ヨーウィ」",
+ "821": "アンブロークン・アロー",
+ "822": "孤高の猛獣「グラワッカス」",
+ "823": "サーモン戦争",
+ "824": "美しく複雑なアロマ",
+ "825": "異形の巡礼者",
+ "826": "いかにも肉って肉",
+ "827": "敵の敵も敵",
+ "828": "異端の扇動者「熱狂のウベルティアン」",
+ "829": "戦いを終わらせるもの",
+ "830": "境界の川",
+ "831": "卵をめぐる竜の戦争",
+ "832": "雲霧街の虐殺者「スヴァローグ」",
+ "833": "怒れる母「ミガス」",
+ "834": "地底の足音",
+ "835": "下克上の眷属「竜人のロベルラン」",
+ "836": "殺しが五月蠅くやって来る",
+ "837": "竜虎の争い",
+ "838": "爆着の甲竜「タラスク」",
+ "902": "雷獣の女王「クァールレギナ」",
+ "903": "逆襲の女王「クァールレギナ」",
+ "904": "逆襲の女王「クァールレギナ」",
+ "905": "幻影の女王「クァールレギナ」",
+ "906": "幻影の女王「クァールレギナ」",
+ "907": "幻影の女王「クァールレギナ」",
+ "910": "変貌せし乙女「ドラゴンメイデン」"
}
},
"399": {
- "name": "The Dravanian Hinterlands",
+ "name": "低地ドラヴァニア",
"fates": {
- "768": "Ratel and Hum",
- "769": "Dobharch Did It for the Best",
- "770": "Infant Vangob",
- "771": "Morbol Man",
- "772": "On Melancholic Hill",
- "773": "Sun Bear, Sun Bear, What Do You Eat",
- "774": "The Bear Up There",
- "775": "The Birds and the Bears",
- "777": "Poroggo Stuck",
- "778": "Frog Days of Summer",
- "779": "Toss 'Em Back",
- "780": "Tome Raider",
- "781": "Cockatrice Block",
- "782": "Come Shells or High Water",
- "783": "Toad Alone",
- "784": "How Do You Feed a Hungry Manlike Monster",
- "785": "Out of the Woodwork",
- "786": "Silkworm",
- "756": "Metal Gears Rising",
- "757": "Metal Gears Revengeance",
- "758": "Metal Gears Revengeance 2",
- "759": "Tarantula Hawk, Pro Stinger",
- "760": "Wild Wilde Death",
- "761": "Gets the Red Out",
- "762": "Makes the Very Best...Nests",
- "763": "Olympus Has Pollen",
- "764": "Feed Me, See More",
- "766": "Pop Goes the Whizzle",
- "767": "Revenge of the Vengeful Revengeance"
+ "756": "悪魔の機械",
+ "757": "リベンジャーズ",
+ "758": "全面改修機「III号ゴブリガードJ型」",
+ "759": "タランチュラホークの襲撃",
+ "760": "ワイルドでいこう!",
+ "761": "巨眼の魔牛「エパポス」",
+ "762": "図書館清掃",
+ "763": "花粉前線異常アリ",
+ "764": "吸血の浮遊草「ルギニス」",
+ "766": "ゴブゴブ紛争",
+ "767": "熟練の戦闘指揮官「八丁のマウンドリンクス」",
+ "768": "尻尾を立てろ!",
+ "769": "野獣の家長「ダルウフー」",
+ "770": "西方電撃戦",
+ "771": "モルボルをブッコろせ",
+ "772": "憂鬱なる令嬢「メランコリック・モイラ」",
+ "773": "イディルシャイア猟友会",
+ "774": "血濡れの暴君「ドゥーベ」",
+ "775": "悲しみのベアー",
+ "777": "使い魔はつらいよ",
+ "778": "蛙のために弔鐘は鳴る",
+ "779": "シャーレアンの影",
+ "780": "ビブロフィリアの憂鬱",
+ "781": "コカトリスの思い出",
+ "782": "果しなき流れの果てで",
+ "783": "主を待つ者「孤独のベロ・ロッゴ」",
+ "784": "魚喰いの魚人「オプロケプロン」",
+ "785": "クロウラーの巣",
+ "786": "糸紡ぎ巧者「ハベロット」"
}
},
"400": {
- "name": "The Churning Mists",
+ "name": "ドラヴァニア雲海",
"fates": {
- "868": "Darkscale Descendeth",
- "869": "Darkscale Disappeareth",
- "870": "Darkscale Devoureth",
- "871": "Vedrfolnir Devoteth",
- "872": "End of the Rainbow",
- "873": "Rastaban Vibration",
- "874": "Mogicide",
- "725": "Wave Good-bye",
- "726": "The Nuts",
- "727": "Glycon Air",
- "728": "Coin Toss",
- "731": "Supper Time",
- "732": "Sprite Club",
- "735": "Whole Food",
- "736": "Say it Tulihand",
- "737": "Vouivre Believre",
- "738": "Waugyl Waugyl Waugyl",
- "740": "How to Cane Your Dragon",
- "741": "Aevis Has Left the Building",
- "742": "Asah, I Came, I Conquered",
- "744": "Waiting for Fjalar to Stall",
- "746": "Don't Know Wyvern",
- "747": "From Dusk Till",
- "748": "Treehouse of the Spirits",
- "751": "As the World Burns",
- "752": "It's the Moogle, Reinvented",
- "753": "Corporal Pomishment",
- "754": "Infamous",
- "755": "Ain't Misbehaving"
+ "868": "ダークスケール征討戦:白竜支援",
+ "869": "ダークスケール征討戦:追撃作戦",
+ "870": "ダークスケール征討戦:総力決戦",
+ "871": "蒼天の白竜「ヴェズルフェルニル」",
+ "872": "白亜の宮殿防衛戦:子竜救援",
+ "873": "白亜の宮殿防衛戦:猛竜討伐",
+ "874": "白亜の宮殿防衛戦:モーグリ救援",
+ "725": "キャッチ・アンド・リリース",
+ "726": "さよならアルケオダイノス",
+ "727": "黒竜の使徒「グリコン」",
+ "728": "モーグリ金融道",
+ "731": "失われた世界",
+ "732": "雲海に轟く雷鳴",
+ "735": "飽食の恐竜「アベリスク」",
+ "736": "トゥリヘンド・スクランブル",
+ "737": "トゥリヘンド・ベロシティ",
+ "738": "遺跡の番人「ウォーギル」",
+ "740": "竜との舞踏",
+ "741": "続・竜との舞踏",
+ "742": "甲鱗の猛竜「クエレブレ」",
+ "744": "夜と霧",
+ "746": "燃えよワイバーン",
+ "747": "薄暮の飛竜「ミナルジャ」",
+ "748": "来たのは誰だ",
+ "751": "猛炎の焔竜「クシェドレ」",
+ "752": "吸引力は変わらない",
+ "753": "雲海の問題児「悪童のモグーシ」",
+ "754": "聖と邪の交わるひずみ",
+ "755": "愚行の問題児「悪童のモグーシ」"
}
},
"401": {
- "name": "The Sea of Clouds",
+ "name": "アバラシア雲海",
"fates": {
- "839": "Mint Condition",
- "840": "Saved the Nests for Last",
- "841": "One Turned Over the Cloudkin's Nest",
- "842": "Food Fight",
- "843": "Leech the Sky",
- "844": "Anzu Trois",
- "845": "Youth Must Be Severed",
- "846": "A Long Way Down",
- "847": "This Is How We Gundu",
- "851": "Come to My Window",
- "852": "Obey their Thirst",
- "853": "The Fugitive",
- "854": "Zuns on the Run",
- "855": "On Dangerous Ground",
- "856": "Leather and Mace",
- "857": "Hearts Like Steel, Fists Like Thunder",
- "860": "Bones",
- "861": "The Limitless Blueing Time",
- "862": "Let There Be Acolytes",
- "863": "A Disturbing Lack of Faith",
- "864": "Guano a Mano",
- "865": "The Sound of Madness",
- "866": "You Eat What You Aren't",
- "867": "A Dream, Perchance to Eat",
- "875": "Rebel Yehl"
+ "839": "猫まっしぐら",
+ "840": "ガストルニスの巣破壊命令",
+ "841": "鮮やかなる丸鳥「ディアトリマ」",
+ "842": "雲海の大乱闘",
+ "843": "薔薇の血を吸いたくて",
+ "844": "黒い鳥",
+ "845": "若気の至り",
+ "846": "不法投棄者「アポタムキン」",
+ "847": "雲海の戦士",
+ "851": "素晴らしい新世界",
+ "852": "空の上の雲",
+ "853": "逃亡者",
+ "854": "追跡者",
+ "855": "暴食の岩人形「グランズイーター」",
+ "856": "補給線を断て",
+ "857": "招かれざる客",
+ "860": "恐怖の対象「積乱のオヌバリ」",
+ "861": "雲神の司祭「入道のケナバヌ」",
+ "862": "ケナバヌの弟子たち",
+ "863": "復讐の司祭「入道のケナバヌ」",
+ "864": "絨毯爆撃",
+ "865": "狂気の歌声「ポダルゲー」",
+ "866": "雲海の狂風「アケク」",
+ "867": "不吉な鳥は雲の彼方へ飛ぶ",
+ "875": "大嘴の怪鳥「イェル」"
}
},
"402": {
- "name": "Azys Lla",
+ "name": "魔大陸アジス・ラー",
"fates": {
- "877": "Prey Online",
- "878": "Prey Online",
- "879": "Prey Online",
- "880": "A Bug's Death",
- "881": "The Late Escape",
- "882": "Still Ticking",
- "883": "Life of Brain",
- "884": "The Monster Mass",
- "885": "Pet, Smart",
- "886": "The Root of Evil",
- "887": "The Mystery Machine",
- "888": "Rampant Speculation",
- "889": "Put the Knives Down",
- "890": "Scared Sylla",
- "891": "Phi Slamma Gamma East",
- "892": "Phi Slamma Gamma West",
- "893": "Phi Slamma Gamma South",
- "894": "Yak it Up",
- "895": "No Greater Goryshche",
- "897": "Harvest Moon",
- "898": "Out of Sight, Out of Mind",
- "899": "A Room Without Books",
- "900": "Curiously Strong Things",
- "901": "Do Spinners Dream of Electric Rooks"
+ "877": "太古の脅威:ノクチルカ撃滅戦",
+ "878": "太古の脅威:ノクチルカ撃滅戦",
+ "879": "太古の脅威:ノクチルカ撃滅戦",
+ "880": "バグ報告ナンバー壱九九",
+ "881": "輪廻の蛇",
+ "882": "アラグ脅威のメカニズム",
+ "883": "狡知の魔獣「キマイラブレイン」",
+ "884": "魔獣狩り",
+ "885": "忠義の妖王「ムチャリンダ」",
+ "886": "ミュータントフラワーズ",
+ "887": "スチールシティ",
+ "888": "ロストテクノロジー",
+ "889": "全自動手作業",
+ "890": "魔導技師長「シラ・マル・アルビヌス」",
+ "891": "ガンマ戦線バースト:東部",
+ "892": "ガンマ戦線バースト:西部",
+ "893": "ガンマ戦線バースト:南部",
+ "894": "無知性化の嵐",
+ "895": "人造多頭竜「ゴリシュチェ」",
+ "897": "大量誤発注事件",
+ "898": "不吉なる実験体「ステンノー」",
+ "899": "魂なき肉体のごとし",
+ "900": "ハイアラガンユーザー",
+ "901": "夢見る無人機「リックスピナー」"
}
},
- "612": {
- "name": "Stormblood",
+ "351": {
+ "name": "Diadem",
+ "fates": {
+ "964": "無謀すぎた探索",
+ "976": "無謀すぎた探索",
+ "979": "無謀すぎた探索",
+ "1034": "無謀すぎた探索",
+ "1062": "無謀すぎた探索",
+ "1085": "無謀すぎた探索",
+ "985": "放属性シャードの回収",
+ "986": "放属性シャードの回収",
+ "987": "放属性シャードの回収",
+ "988": "放属性シャードの回収",
+ "989": "放属性シャードの回収",
+ "990": "放属性シャードの回収",
+ "991": "放属性シャードの回収",
+ "992": "放属性シャードの回収",
+ "993": "放属性シャードの回収",
+ "994": "放属性シャードの回収",
+ "995": "放属性シャードの回収",
+ "996": "放属性シャードの回収",
+ "999": "放属性シャードの回収",
+ "1000": "放属性シャードの回収",
+ "1001": "放属性シャードの回収",
+ "1002": "放属性シャードの回収",
+ "1003": "放属性シャードの回収",
+ "1004": "放属性シャードの回収",
+ "963": "放属性シャードの悪影響",
+ "965": "放属性シャードの悪影響",
+ "969": "放属性シャードの悪影響",
+ "973": "放属性シャードの悪影響",
+ "978": "放属性シャードの悪影響",
+ "983": "放属性シャードの悪影響",
+ "984": "放属性シャードの悪影響",
+ "997": "放属性シャードの悪影響",
+ "1009": "放属性シャードの悪影響",
+ "1023": "放属性シャードの悪影響",
+ "1036": "放属性シャードの悪影響",
+ "1040": "放属性シャードの悪影響",
+ "1044": "放属性シャードの悪影響",
+ "1045": "放属性シャードの悪影響",
+ "1046": "放属性シャードの悪影響",
+ "1049": "放属性シャードの悪影響",
+ "1051": "放属性シャードの悪影響",
+ "1055": "放属性シャードの悪影響",
+ "1060": "放属性シャードの悪影響",
+ "1061": "放属性シャードの悪影響",
+ "1069": "放属性シャードの悪影響",
+ "1075": "放属性シャードの悪影響",
+ "1077": "放属性シャードの悪影響",
+ "1078": "放属性シャードの悪影響",
+ "1081": "放属性シャードの悪影響",
+ "1083": "放属性シャードの悪影響",
+ "1086": "放属性シャードの悪影響",
+ "1089": "放属性シャードの悪影響",
+ "1090": "放属性シャードの悪影響",
+ "1005": "死に花を咲かせよ",
+ "1006": "死に花を咲かせよ",
+ "1007": "死に花を咲かせよ",
+ "1072": "死に花を咲かせよ",
+ "980": "虹を喰う者たち",
+ "981": "虹を喰う者たち",
+ "982": "虹を喰う者たち",
+ "1016": "復讐の猿人王「キングウフィティ」",
+ "1017": "復讐の猿人王「キングウフィティ」",
+ "1018": "復讐の猿人王「キングウフィティ」",
+ "998": "夢遊の長老「イリズイマ」",
+ "1098": "夢遊の長老「イリズイマ」",
+ "1073": "孤高の剣虎「ガージス」",
+ "1091": "叫び声さえ呑み込まれる",
+ "1092": "叫び声さえ呑み込まれる",
+ "1093": "叫び声さえ呑み込まれる",
+ "1020": "食べる前に殺す",
+ "1021": "食べる前に殺す",
+ "1022": "食べる前に殺す",
+ "966": "大雲海を行く渡り鳥",
+ "967": "大雲海を行く渡り鳥",
+ "968": "星呼の古代獣「ブラキオレイドス」",
+ "970": "恐竜伝説ベイビー",
+ "971": "銀鱗の雲海蛇「バシロサウルス」",
+ "972": "石の夜風",
+ "974": "狩人の夜",
+ "975": "狩人の夜",
+ "977": "雲海最大のヒモ",
+ "1008": "ある空賊の受難",
+ "1010": "虫沸きぬ",
+ "1011": "闇夜のギガントピテクス",
+ "1012": "闇夜のギガントピテクス",
+ "1013": "ダーティファイター",
+ "1014": "ダーティファイター",
+ "1015": "ある空賊の受難",
+ "1019": "失われた雲海",
+ "1024": "北洋の人拐い",
+ "1025": "雲海の撃墜王「ホイタ」",
+ "1026": "雲海の撃墜王「ホイタ」",
+ "1027": "ワスプストライク",
+ "1028": "ワスプストライク",
+ "1029": "ワスプストライク",
+ "1030": "ワスプストライク",
+ "1031": "沸き立つ雲のように",
+ "1032": "沸き立つ雲のように",
+ "1033": "沸き立つ雲のように",
+ "1035": "古の巨獣「フォゴットン・ウィセント」",
+ "1037": "魔眼の光",
+ "1038": "大帝か王か",
+ "1039": "大帝か王か",
+ "1041": "異臭の華族「エクセントリック・イヴ」",
+ "1042": "消臭力尽く",
+ "1043": "消臭力尽く",
+ "1047": "ムチとムチ",
+ "1048": "ムチとムチ",
+ "1050": "翼をさずける",
+ "1052": "根も葉もある噂",
+ "1053": "根も葉もある噂",
+ "1054": "根も葉もある噂",
+ "1056": "ヌシを超える者「ローペン」",
+ "1057": "営巣を阻止せよ",
+ "1058": "ワイルドハント",
+ "1059": "ワイルドハント",
+ "1063": "バルーニングの季節",
+ "1064": "バルーニングの季節",
+ "1065": "バルーニングの季節",
+ "1066": "バルーニングの季節",
+ "1067": "ダイアマイト・ウェディングパーティー",
+ "1068": "ある空賊の受難",
+ "1070": "ダイアマイト・バチェラーパーティー",
+ "1071": "ダイアマイト・バチェラーパーティー",
+ "1074": "偏食の地底王「パープルウォーム」",
+ "1076": "飛ぶ飛空艇を落とす勢い",
+ "1079": "ディアデムの森",
+ "1080": "ディアデムの森",
+ "1082": "失われた雲海",
+ "1084": "生まれ出ずる悩み",
+ "1087": "大空のサヌワ",
+ "1088": "不幸せの青い雲",
+ "1094": "美食の凶鳥「ガルピュデス」",
+ "1095": "翼をください",
+ "1096": "翼をください",
+ "1097": "翼をください",
+ "1099": "消臭力尽く",
+ "1100": "虫沸きぬ"
+ }
+ },
+ "411": {
+ "name": "ギラバニア辺境地帯",
+ "fates": {
+ "1112": "ブートキャンプ:兵卒編",
+ "1113": "ブートキャンプ:下士編",
+ "1114": "ブートキャンプ:士官編",
+ "1115": "ワニワニ、ワニっす!",
+ "1116": "熊と踊れ",
+ "1117": "チルドレン・オブ・ザ・サプリア",
+ "1118": "混交林の大熊「シャープアイ・グリズリー」",
+ "1119": "悲劇の変異体「ギガゲイター」",
+ "1120": "辺境パトロール",
+ "1121": "続・辺境パトロール",
+ "1122": "次の岩に続く",
+ "1124": "チョコボではない",
+ "1125": "トンボ身重く横たわる",
+ "1126": "実はモス生まれ",
+ "1127": "果しなき河よ我を誘え",
+ "1128": "グゥレイト!",
+ "1129": "樹人の長老「キルニス」",
+ "1130": "人喰い大蜘蛛「アンカブート」",
+ "1131": "アントリオンは大人しいんだ",
+ "1132": "大角の脱走兵「ケラチラノス」",
+ "1133": "新石器時代",
+ "1134": "所有せざる人々",
+ "1135": "暴走の巨象「ランページング・マーリド」",
+ "1136": "血をわけた姉妹",
+ "1137": "白銀の人拐い「ベルダ」",
+ "1138": "鱗斬りの鉤爪「ジャターユ」",
+ "1139": "太陽の娘「ドリサナ」",
+ "1140": "野良犬",
+ "1141": "高い村の女"
+ }
+ },
+ "412": {
+ "name": "ギラバニア山岳地帯",
+ "fates": {
+ "1173": "完全菜食主義",
+ "1174": "精進料理",
+ "1175": "空腹の詐欺師「肉食のミミルン」",
+ "1176": "死ぬのは奴らだ",
+ "1177": "血の収穫",
+ "1178": "農民の悪夢「スパーナル・チャプリ」",
+ "1179": "ブラッドミュージック",
+ "1180": "チャプリの移民",
+ "1181": "沈黙の木樵「ランバージャック」",
+ "1182": "魔蝶の王妃「エーディン」",
+ "1184": "アラガーナ防衛線",
+ "1185": "伝説の藪医者「ブルータルバーバー」",
+ "1186": "グリフィンの物語",
+ "1187": "胡蝶の夢",
+ "1188": "凶悪なる骰子「クラッブス」",
+ "1189": "拷問者の影",
+ "1190": "ハイランダー悪魔の虫",
+ "1191": "不浄なる獣「ティンダロス」",
+ "1193": "エルカ探検隊の大冒険",
+ "1194": "豪腕の襲撃者「フンババ」",
+ "1195": "待ってたんだ!",
+ "1196": "血より生まれし",
+ "1197": "暴風の元凶「ウェントゥス」",
+ "1198": "執行人の家系「ネックブリーカー」",
+ "1199": "風と共に来たる",
+ "1200": "優雅なる放火魔「イグナモス」",
+ "1201": "チャプリの勇敢",
+ "1202": "復讐の寡男「ネナウニル」",
+ "1203": "エクソシスト",
+ "1204": "幸運なる大食漢「エナジェティック・エルカ」",
+ "1205": "ジャ族の戦士",
+ "1207": "暴走最終兵器「リーサルウェポン」"
+ }
+ },
+ "413": {
+ "name": "ギラバニア湖畔地帯",
+ "fates": {
+ "1103": "伝説の雷馬「イクシオン」",
+ "1104": "伝説の雷馬「イクシオン」",
+ "1105": "伝説の雷馬「イクシオン」",
+ "1272": "ロッホ・セル湖畔の戦い",
+ "1273": "不動の大蝦蟇「フロガマンダー」",
+ "1274": "悲恋の乙女「ボルータ」",
+ "1275": "騒音アバドン",
+ "1276": "死の芳香「アロマ・リーチ」",
+ "1277": "白色大顔面「トール・マウンテン」",
+ "1278": "不人気の怪物「クレア」",
+ "1279": "虚ろなる老木「カリュアー」",
+ "1280": "剥落せし岩獣「シーシュポス」",
+ "1281": "雷光の魔牛「アステリオス」",
+ "1282": "断頭台への招待",
+ "1283": "過ぎ去りし日々の風",
+ "1284": "死病の運び手「ラッラミラ」",
+ "1285": "死を告げる白虫",
+ "1286": "狂気の鉱虫「クレイジーソブラン」",
+ "1287": "濡れた魚",
+ "1288": "死人に口なし",
+ "1289": "塩の恋人",
+ "1290": "純白の鉄鋏「ロッホロッホ」",
+ "1291": "ナンカ移動時代",
+ "1292": "白き侵略者「チュクワ」",
+ "1293": "花粉戦争",
+ "1294": "草の女王",
+ "1295": "塩湖の金鋸「セラ」",
+ "1296": "ミノタウロスのお皿",
+ "1297": "キングズガード",
+ "1298": "バタフライエフェクト",
+ "1299": "ミリオンダラ・ソルティ",
+ "1300": "薬用リーチ",
+ "1301": "動く震源地「テルース」",
+ "1302": "マウンテン",
+ "1303": "アンセロットの嘆き",
+ "1304": "アンセロットの恐れ",
+ "1305": "アンセロットの願い"
+ }
+ },
+ "421": {
+ "name": "紅玉海",
+ "fates": {
+ "1142": "牛鬼の使い「ヌレオンナ」",
+ "1143": "迷惑な落とし物",
+ "1144": "不吉な怪鳥「イツマデ」",
+ "1145": "漁村の脅威「ケイボクロウ」",
+ "1146": "青い紅玉",
+ "1147": "敗戦の大兜「ミシルシ」",
+ "1148": "炎纏う者「アグニ」",
+ "1149": "赤い珊瑚礁",
+ "1150": "紅甲羅関所破り",
+ "1151": "海からの侵略生物",
+ "1152": "紅甲羅あばれ凧",
+ "1153": "飛鮫の姫君「ヤヒロノワニ」",
+ "1154": "渇きの海",
+ "1155": "指きり拳万",
+ "1156": "紅甲羅海を渡る",
+ "1157": "夢の丘",
+ "1158": "北風のうしろ",
+ "1159": "無礼なる牛鬼「ジンリンキ」",
+ "1160": "されど修羅ゆく君は",
+ "1161": "激流の亀忍者「十代のカタビラ」",
+ "1162": "紅甲羅千両首",
+ "1163": "知らぬが仏",
+ "1164": "スカイシャークズ",
+ "1165": "不徳の僧侶「ソウゲンビ」",
+ "1166": "牛鬼泥棒",
+ "1167": "兵法修行人「一刀のセンバン」",
+ "1168": "紅甲羅逆手斬り",
+ "1170": "兜割",
+ "1171": "海の貴婦人",
+ "1172": "夢見る大名「ダイミョウユメミ」"
+ }
+ },
+ "422": {
+ "name": "ヤンサ",
+ "fates": {
+ "1106": "九尾の妖狐「玉藻御前」",
+ "1107": "九尾の妖狐「玉藻御前」",
+ "1108": "九尾の妖狐「玉藻御前」",
+ "1109": "その名はミクズメ",
+ "1110": "キンコの願い",
+ "1111": "ギンコの願い",
+ "1208": "ギョグンの不運",
+ "1209": "ギョグンの非運",
+ "1210": "痺れる激情「豊漁のギョグン」",
+ "1211": "人狼:紅い足跡",
+ "1212": "人狼:鋼鉄の猟犬",
+ "1213": "紅い甲羅「刀狩のワキザシ」",
+ "1214": "ベニツノ凶鳥狩り",
+ "1215": "鯰狙いの大蛇「ニュ・ワー」",
+ "1216": "戦慄の血飛沫",
+ "1217": "扶持の狩手「フチカリ」",
+ "1218": "遮二無二",
+ "1219": "虎のゆりかご",
+ "1220": "怪しい虫",
+ "1221": "狩って兜の緒を締めよ",
+ "1222": "猿の大軍団",
+ "1223": "テナガおじさん",
+ "1224": "稲生物怪録",
+ "1225": "ベニツノの卵は誰のもの",
+ "1226": "田園の怪火「ツルベビ」",
+ "1227": "紅色の役者「ショウシ」",
+ "1228": "汚水の精「アプサラス」",
+ "1229": "青黒の妖犬「リンチュアン」",
+ "1230": "日食の巨鳥「タイホウ」",
+ "1231": "狂える案山子「クエビコ」",
+ "1232": "ナマズオどうしよう",
+ "1233": "人狼の野武士",
+ "1234": "烈士伝",
+ "1235": "トラ、トラ、トラ!",
+ "1236": "巨頭の暴君「ラゴウ」",
+ "1237": "精強なる老虎「ヘイカン」",
+ "1238": "逆心の巨兵「キドウ丸」",
+ "1239": "妖犬伝説",
+ "1240": "陰陽師:清房ノ巻",
+ "1241": "陰陽師:鼓子ノ巻"
+ }
+ },
+ "423": {
+ "name": "アジムステップ",
+ "fates": {
+ "1242": "狩人を狩る者「キラタ」",
+ "1243": "再会を阻む者「ナランツェツェグ」",
+ "1244": "北部の女傑「寒風のクァトゥン」",
+ "1245": "密猟者たち",
+ "1246": "大空の誘拐者「サムパティ」",
+ "1247": "叫声の野人「ルドラ」",
+ "1248": "除草の達人「ブオチュー」",
+ "1249": "ザ・フライ",
+ "1250": "沈黙の制裁",
+ "1251": "マンモスと暮らすには",
+ "1252": "草原の赤いイナズマ",
+ "1253": "鳥",
+ "1254": "多産の王妃「ステップ・ハタン」",
+ "1255": "時には懺悔を",
+ "1256": "プルプルプル",
+ "1257": "飢えたる根人「フン・ウンデス」",
+ "1258": "大草原の怪物「マンガス」",
+ "1259": "石人の英雄「ゲルゲイ・チョロー」",
+ "1260": "亀がアウラに言ったこと",
+ "1261": "家路につく牛飼いの少女",
+ "1262": "赤い砂漠",
+ "1263": "野獣狩り",
+ "1264": "残虐な覇者「グログロハーン」",
+ "1265": "這い寄る悪臭「スティンクスキン」",
+ "1266": "野火",
+ "1267": "長牙の圧殺者「マヒシャスラ」",
+ "1268": "優しき雑草の反抗",
+ "1269": "つかのまの悪夢",
+ "1270": "よみがえる悪夢",
+ "1271": "覇道の帰還者「マニカンタ」",
+ "1306": "ダタクの旅:バズフライ遭遇",
+ "1307": "ダタクの旅:ガーダン襲撃",
+ "1308": "ダタクの旅:羊乳搾り",
+ "1309": "ダタクの旅:ケナガウシ狩り",
+ "1310": "ダタクの旅:ガーダン再襲撃",
+ "1311": "ダタクの旅:ウグンド強襲",
+ "1312": "ダタクの旅:狩人救出",
+ "1313": "ダタクの旅:グログロ討伐",
+ "1315": "ダタクの旅:マタンガ強襲",
+ "1316": "ダタクの旅:マタンガ遭遇",
+ "1318": "ダタクの旅:ゴロ族救出",
+ "1319": "ダタクの旅:マタンガ逆襲",
+ "1320": "ダタクの旅:大王出陣"
+ }
+ },
+ "990": {
+ "name": "アネモス",
+ "fates": {
+ "1328": "疾風の帝王「アネモス・エンペラー」",
+ "1329": "暴風の魔王「パズズ」",
+ "1331": "狂乱の暗竜「ファヴニル」",
+ "1332": "舞踏の大花「サボテンダー・コリード」",
+ "1333": "最後の美声「テレス」",
+ "1334": "貪り喰らう者「アメミット」",
+ "1335": "獣脚の怪人「カイム」",
+ "1336": "腐臭の賢者「ボンバディール」",
+ "1337": "高名なる巨人「ポリュペモス」",
+ "1338": "魔の王妃「ラマシュトゥ」",
+ "1339": "幻の魔蠍「セルケト」",
+ "1340": "異界の魔犬「アマロック」",
+ "1341": "燃える大王「キング・ハズマット」",
+ "1342": "憤怒の怪鳥「シームルグ・ストライダー」",
+ "1343": "勝利の騎士「ホワイトライダー」",
+ "1344": "蠢く死体「カリスト」",
+ "1345": "強風の妖精「ジャハンナム」",
+ "1346": "種まき「ジャッジメンタル・ジュリカ」",
+ "1347": "主なき人形「ナンバーズ」",
+ "1348": "大蛸の王者「ロード・オブ・アネモス」"
+ }
+ },
+ "991": {
+ "name": "パゴス",
+ "fates": {
+ "1351": "白き支配者「雪の女王」",
+ "1352": "家畜の慈母「スラビー」",
+ "1353": "灰殻の鱗王「アッシュドラゴン」",
+ "1354": "地殻変動の謎「グラヴォイド」",
+ "1355": "雪解けの化身「アナポ」",
+ "1356": "硬質の病魔「アサグ」",
+ "1357": "動く雪洞「キングイグルー」",
+ "1358": "唇亡びて歯寒し",
+ "1359": "太陽の使者「ホルス」",
+ "1360": "円卓の霧王「キングアースロ」",
+ "1361": "野牛の救い主「エウレカの聖牛」",
+ "1362": "雷雲の魔獣「ハダヨッシュ」",
+ "1363": "闇眼王「アーチ・アンラ・マンユ」",
+ "1364": "蒼き氷刃「ロウヒ」",
+ "1365": "模倣犯「コピーキャット・キャシー」",
+ "1366": "五行眼の主「ハクタク」",
+ "1367": "雪上のしあわせうさぎ",
+ "1368": "宝石狙いのしあわせうさぎ",
+ "1369": "腐れる読書家「タキシム」"
+ }
+ },
+ "992": {
+ "name": "ピューロス",
+ "fates": {
+ "1388": "白き叫声「レウコシアー」",
+ "1389": "獰猛なる雷獣「フラウロス」",
+ "1390": "妖異の弁論家「ソフィスト」",
+ "1391": "恐怖の人形「グラッフアカーネ」",
+ "1392": "書の守護者「アスカラポス」",
+ "1393": "深淵の大公「グランドデューク・バティム」",
+ "1394": "稲妻の指揮者「アイトロス」",
+ "1395": "灼熱の突剣「レサト」",
+ "1396": "炎熱の巨人「エルドスルス」",
+ "1397": "落涙の海燕「イリス」",
+ "1398": "奇跡の生還者「傭兵のレイムプリクス」",
+ "1399": "電影将軍「ライトニング・ドゥクス」",
+ "1400": "ランバージャック・デスマッチ",
+ "1401": "知恵と戦の母「グラウコピス」",
+ "1402": "相反する双子「イン・ヤン」",
+ "1403": "嘲りの月狼「スコル」",
+ "1404": "炎蝶の女王「ペンテシレイア」",
+ "1407": "珊瑚狙いのしあわせうさぎ",
+ "1408": "岩封じのしあわせうさぎ"
+ }
+ },
+ "1004": {
+ "name": "ヒュダトス",
+ "fates": {
+ "1412": "奇怪なる烏賊「カラマリ」",
+ "1413": "暴虐の魔獣「ステゴドン」",
+ "1414": "落涙の君主「モレク」",
+ "1415": "極彩色の怪鳥「ピアサ」",
+ "1416": "孤高の狩人「フロストメーン」",
+ "1417": "血濡れの妖妃「ダフネ」",
+ "1418": "異界の鍛冶王「キング・ゴルデマール」",
+ "1419": "食妖植物「レウケー」",
+ "1420": "業炎の獅子王「バロン」",
+ "1421": "魔蛇の女王「ケートー」",
+ "1422": "「バルデシオンアーセナル」調査支援",
+ "1423": "水晶の龍「プロヴェナンス・ウォッチャー」",
+ "1424": "未知なる脅威「オヴニ」",
+ "1425": "水遊びのしあわせうさぎ"
+ }
+ },
+ "501": {
+ "name": "レイクランド",
+ "fates": {
+ "1496": "紫葉団との戦い:アジト設営",
+ "1497": "紫葉団との戦い:アジト構築",
+ "1498": "鮮血の偽竜「オピオン」",
+ "1499": "狼は泣かず",
+ "1500": "木こり歌の事",
+ "1501": "紫葉団との戦い:木こり襲撃",
+ "1502": "紫葉団との戦い:卑劣な罠",
+ "1503": "紫葉団との戦い:一斉蜂起",
+ "1504": "紫葉団との戦い:ワーグ参戦",
+ "1505": "汚れた血め!",
+ "1506": "あれってまさか、グレムリン?",
+ "1507": "高貴なる狼男「ルガルー」",
+ "1508": "リトル・ゲート・オブ・ホラーズ",
+ "1509": "ハイエボリューション",
+ "1510": "激憤の大物「ヌスクナッカー」"
+ }
+ },
+ "502": {
+ "name": "コルシア島",
+ "fates": {
+ "1462": "激闘フォーミダブル:迫る脅威",
+ "1463": "激闘動フォーミダブル:新たな情報",
+ "1464": "激闘フォーミダブル:切り札起動",
+ "1465": "スティルタイドを覆う影",
+ "1466": "スティルタイドを覆う影",
+ "1467": "ライト村を覆う影",
+ "1468": "ライト村を覆う影",
+ "1469": "大麦若葉にレイルにゴーヤ",
+ "1470": "クラゲシネ",
+ "1471": "ひよこ倶楽部",
+ "1472": "シャコボクサー",
+ "1473": "ノッカー・アップ",
+ "1474": "ディスコード!",
+ "1475": "アミティーを覆う影",
+ "1476": "激震の巨虫「クローリングデス」",
+ "1477": "ビルドウォリアーズ:オートマトン製作",
+ "1478": "ビルドウォリアーズ:試作品実戦テスト",
+ "1479": "ビルドウォリアーズ:没収試合"
+ }
+ },
+ "503": {
+ "name": "アム・アレーン",
+ "fates": {
+ "1511": "拾う者たち:シザージョウの罠",
+ "1512": "拾う者たち:シムーンの背骨",
+ "1513": "拾う者たち:クイジャテンダー",
+ "1514": "拾う者たち:ウェイストピッカー",
+ "1515": "求める者たち:強盗遭遇",
+ "1516": "求める者たち:強盗逆襲",
+ "1517": "求める者たち:遺跡探索",
+ "1518": "求める者たち:大老の剣",
+ "1519": "サボテンが花をつけている",
+ "1520": "流砂の砂漠",
+ "1521": "トルバNo. 1",
+ "1522": "砂鱗の女王「バヤワク」",
+ "1523": "イグアナの夜",
+ "1524": "ロングレッグ・オーバーライド",
+ "1525": "異種の僚友「クルカディとムンバ」",
+ "1526": "エクスプロージョン!",
+ "1527": "海老ではない"
+ }
+ },
+ "504": {
+ "name": "イル・メグ",
+ "fates": {
+ "1480": "悪童ダエン兄弟:ピクシーが標的!",
+ "1481": "悪童ダエン兄弟:アマロが標的!",
+ "1482": "悪童ダエン兄弟:ン・モゥが標的!",
+ "1483": "悪童ダエン兄弟:幻惑のローワン",
+ "1484": "悪童ダエン兄弟:決闘の時",
+ "1485": "悪童ダエン兄弟:再戦の時",
+ "1486": "悪童ダエン兄弟:双子の切り札",
+ "1487": "悪童ダエン兄弟:最後の戦い",
+ "1488": "根を断つ者「シェムハザ」",
+ "1489": "がんばれ、ローズベアーズ",
+ "1490": "バスケットケース",
+ "1491": "蜜吸の死蝶「ネクロプシュケ」",
+ "1492": "ピクシーテイル:黄金色の花蜜",
+ "1493": "マイ・フレンド・フォーエバー",
+ "1494": "ピクシーテイル:妖精の天敵",
+ "1495": "ピクシーテイル:魔物包囲網",
+ "1531": "悪童ダエン兄弟:アマロが標的!",
+ "1532": "悪童ダエン兄弟:ン・モゥが標的!",
+ "1533": "悪童ダエン兄弟:幻惑のローワン"
+ }
+ },
+ "505": {
+ "name": "ラケティカ大森林",
+ "fates": {
+ "1441": "ミャルナの巡察:病毒のエコー",
+ "1442": "ミャルナの巡察:病原のクロウラー",
+ "1443": "ミャルナの巡察:矢の補充",
+ "1444": "ミャルナの巡察:古き護人の護衛",
+ "1445": "ミャルナの狩猟:トヒル発見",
+ "1446": "ミャルナの狩猟:トヒル追撃",
+ "1447": "ミャルナの狩猟:トヒル追撃",
+ "1448": "ミャルナの狩猟:トヒル猛追撃",
+ "1449": "ミャルナの狩猟:トヒル猛追撃",
+ "1450": "ミャルナの狩猟:トヒル討伐",
+ "1528": "ミャルナの狩猟:トヒル猛追撃",
+ "1529": "ミャルナの狩猟:トヒル猛追撃",
+ "1530": "ミャルナの狩猟:トヒル討伐",
+ "1451": "不燃の怪樹「チャンティコ」",
+ "1452": "スパイダー!",
+ "1453": "ピンク・フラミンゴ",
+ "1454": "ラプトルのキッチン",
+ "1455": "愛と死",
+ "1456": "アタック・オブ・ザ・キラートマトル",
+ "1457": "死相の陸鳥「ケライノー」",
+ "1458": "本能が目を覚ます",
+ "1459": "伝説が生まれる",
+ "1460": "キルメとサルメ",
+ "1461": "火神の眼「ガトルアイ」"
+ }
+ },
+ "506": {
+ "name": "テンペスト",
+ "fates": {
+ "1426": "厄災のアルケオタニア:追跡開始",
+ "1427": "厄災のアルケオタニア:ズムスィー登場",
+ "1428": "厄災のアルケオタニア:テウスィー防衛",
+ "1429": "厄災のアルケオタニア:テウスィー護衛",
+ "1430": "厄災のアルケオタニア:紅血珊瑚の収集",
+ "1431": "厄災のアルケオタニア:決戦の下準備",
+ "1432": "厄災のアルケオタニア:深海の討伐戦",
+ "1433": "深海の美女「ハリメデ」",
+ "1434": "貝汁物語",
+ "1435": "パールは永遠の輝き",
+ "1436": "ディープシー20000匹",
+ "1437": "ダンバニアファミリー",
+ "1438": "黒風海産ヒドロ虫類",
+ "1439": "スワローズ・ライジング",
+ "1440": "バハ・オンド・シュリンプ"
+ }
+ },
+ "1005": {
+ "name": "イベント",
"fates": {
- "932": "Our Favorite Pastime",
- "933": "The Way of the Samurai",
- "934": "Serket Breaker",
- "935": "The Key to Amatsu: Kyori",
- "936": "Pounding Rice, Pounding Hearts",
- "937": "Pounding Rice, Pounding Hearts",
- "938": "Pounding Rice, Pounding Hearts",
- "939": "Pounding Rice, Pounding Hearts",
- "940": "Pounding Rice, Pounding Hearts",
- "941": "Pounding Rice, Pounding Hearts",
- "942": "Eggstract and Eggspedite",
- "943": "Eggstract and Eggspedite",
- "944": "Eggstract and Eggspedite",
- "945": "In Deep Water",
- "946": "Trial by Fire",
- "959": "Pounding More Mochi, Pounding More Hearts",
- "960": "Pounding More Mochi, Pounding More Hearts",
- "963": "Excitable Boys",
- "964": "Mad Ventures in Retainer-sitting",
- "965": "Excitable Boys",
- "966": "Prepare for Gory",
- "967": "Prepare for Gory",
- "968": "Secret of the Lost Legend",
- "969": "Excitable Boys",
- "970": "Slaughter of the Lost Legend",
- "971": "Embrace of the Serpent",
- "972": "The Pelican Grief",
- "973": "Excitable Boys",
- "974": "Late Night Torama Queen",
- "975": "Late Night Torama Queen",
- "976": "Mad Ventures in Retainer-sitting",
- "977": "Crawllateral Damage",
- "978": "Excitable Boys",
- "979": "Mad Ventures in Retainer-sitting",
- "980": "I Can Wring a Rainbow",
- "981": "I Can Wring a Rainbow",
- "982": "I Can Wring a Rainbow",
- "983": "Excitable Boys",
- "984": "Excitable Boys",
- "985": "Shard to Get",
- "986": "Shard to Get",
- "987": "Shard to Get",
- "988": "Shard to Get",
- "989": "Shard to Get",
- "990": "Shard to Get",
- "991": "Shard to Get",
- "992": "Shard to Get",
- "993": "Shard to Get",
- "994": "Shard to Get",
- "995": "Shard to Get",
- "996": "Shard to Get",
- "997": "Excitable Boys",
- "998": "How I Met Your Marid",
- "999": "Shard to Get",
- "1000": "Shard to Get",
- "1001": "Shard to Get",
- "1002": "Shard to Get",
- "1003": "Shard to Get",
- "1004": "Shard to Get",
- "1005": "Root of the Problem",
- "1006": "Root of the Problem",
- "1007": "Root of the Problem",
- "1008": "Nice Pirates",
- "1009": "Excitable Boys",
- "1010": "Pretty Flies",
- "1011": "Late-night Snack",
- "1012": "Late-night Snack",
- "1013": "Any Which Way",
- "1014": "Any Which Way",
- "1015": "Nice Pirates",
- "1016": "Who'll Stop the Sovereign",
- "1017": "Who'll Stop the Sovereign",
- "1018": "Who'll Stop the Sovereign",
- "1019": "Hard of Heren",
- "1020": "Battle Toads",
- "1021": "Battle Toads",
- "1022": "Battle Toads",
- "1023": "Excitable Boys",
- "1024": "Loose Endymions",
- "1025": "Bounty Hunter",
- "1026": "Bounty Hunter",
- "1027": "Lords of the Sting",
- "1028": "Lords of the Sting",
- "1029": "Lords of the Sting",
- "1030": "Lords of the Sting",
- "1031": "Cloudy with a Chance of...Thal's Balls",
- "1032": "Cloudy with a Chance of...Thal's Balls",
- "1033": "Cloudy with a Chance of...Thal's Balls",
- "1034": "Mad Ventures in Retainer-sitting",
- "1035": "Where's the Beef",
- "1036": "Excitable Boys",
- "1037": "Sticking Celphies",
- "1038": "Can You Smell the Blood Tonight",
- "1039": "Can You Smell the Blood Tonight",
- "1040": "Excitable Boys",
- "1041": "Hail to the E",
- "1042": "Lunantishee in the Sky",
- "1043": "Lunantishee in the Sky",
- "1044": "Excitable Boys",
- "1045": "Excitable Boys",
- "1046": "Excitable Boys",
- "1047": "Whiplash",
- "1048": "Whiplash",
- "1049": "Excitable Boys",
- "1050": "Blood Wings",
- "1051": "Excitable Boys",
- "1052": "NOT THE TREES",
- "1053": "NOT THE TREES",
- "1054": "NOT THE TREES",
- "1055": "Excitable Boys",
- "1056": "Tightropen",
- "1057": "I'm the Scatman",
- "1058": "Wild Hunt",
- "1059": "Wild Hunt",
- "1060": "Excitable Boys",
- "1061": "Excitable Boys",
- "1062": "Mad Ventures in Retainer-sitting",
- "1063": "(You're) Killing My Mitelings",
- "1064": "(You're) Killing My Mitelings",
- "1065": "(You're) Killing My Mitelings",
- "1066": "(You're) Killing My Mitelings",
- "1067": "(You're) Having My Mitelings",
- "1068": "Nice Pirates",
- "1069": "Excitable Boys",
- "1070": "(You're Not) Having My Mitelings",
- "1071": "(You're Not) Having My Mitelings",
- "1072": "Root of the Problem",
- "1073": "Good-bye Solo",
- "1074": "Purple Haze",
- "1075": "Excitable Boys",
- "1076": "Fly by Day",
- "1077": "Excitable Boys",
- "1078": "Excitable Boys",
- "1079": "Forest for the Trees",
- "1080": "Forest for the Trees",
- "1081": "Excitable Boys",
- "1082": "Hard of Heren",
- "1083": "Excitable Boys",
- "1084": "The Other White Meat",
- "1085": "Mad Ventures in Retainer-sitting",
- "1086": "Excitable Boys",
- "1087": "Westwhirled",
- "1088": "Am I Blue",
- "1089": "Excitable Boys",
- "1090": "Excitable Boys",
- "1091": "Who's for Dinner",
- "1092": "Who's for Dinner",
- "1093": "Who's for Dinner",
- "1094": "On the Inside",
- "1095": "Blacker than the Foulest Witch",
- "1096": "Blacker than the Foulest Witch",
- "1097": "Blacker than the Foulest Witch",
- "1098": "How I Met Your Marid",
- "1099": "Lunantishee in the Sky",
- "1100": "Pretty Flies",
- "1103": "A Horse Outside",
- "1104": "A Horse Outside",
- "1105": "A Horse Outside",
- "1106": "Foxy Lady",
- "1107": "Foxy Lady",
- "1108": "Foxy Lady",
- "1109": "Outfoxed",
- "1110": "Freedom Flies",
- "1111": "More to Offer",
- "1112": "Showing the Recruits What For",
- "1113": "Showing the Officers What For",
- "1114": "Showing the Commanders What For",
- "1115": "Death Beckons",
- "1116": "Unbearable",
- "1117": "The Secret Life of Plants",
- "1118": "Dizzy Miss Grizzly",
- "1119": "Roid Rage",
- "1120": "Keeping the Peace",
- "1121": "Keeping More Peace",
- "1122": "Double Dhara",
- "1124": "Bold This Way",
- "1125": "The Morning After",
- "1126": "Thank You for Not Mossling",
- "1127": "The Mail Must Get Through",
- "1128": "Diakka Round",
- "1129": "The Evil Seed",
- "1130": "The Spiderweb Chronicles",
- "1131": "The Antlion's Share",
- "1132": "Really Don't Keratyrannos",
- "1133": "Get Sharp",
- "1134": "The Tele-tale Hunt",
- "1135": "Pop the Trunk",
- "1136": "A Pain in the Neck",
- "1137": "Flappy Berda",
- "1138": "Ananta and Her Sisters",
- "1139": "Raisin' Hell",
- "1140": "Yes, This Is Dogs",
- "1141": "M Bop",
- "1142": "Wet",
- "1143": "Clean Bill of Health",
- "1144": "Quoth the Raven",
- "1145": "Lay of the Lang",
- "1146": "Pool Party",
- "1147": "Soak Up the Sun",
- "1148": "Agni's Philosophy",
- "1149": "The Coral High Ground",
- "1150": "The Big Banquet Theory",
- "1151": "Uncivil Serpents",
- "1152": "Ray Band",
- "1153": "Princess, Princess",
- "1154": "Kill the Messenger",
- "1155": "The F-bomb",
- "1156": "Raise the Red Flag",
- "1157": "Double Dream Clams",
- "1158": "There Be Dragonflies",
- "1159": "Bilge-hold Jin",
- "1160": "Days of Plunder",
- "1161": "Forever Younglier",
- "1162": "Treasure Island",
- "1163": "Sailor Marooned",
- "1164": "Jumping the Shark",
- "1165": "Red Cliff",
- "1166": "Ranging Bull",
- "1167": "Another One Bites the Dust",
- "1168": "Turtle Power",
- "1170": "Crab Mentality",
- "1171": "Independence Ray",
- "1172": "Never Say Daimyo",
- "1173": "A New Leaf",
- "1174": "Salad Days",
- "1175": "A Bone to Pick",
- "1176": "And the Bandits Played On",
- "1177": "Of Mice and Men",
- "1178": "Churlish Chapuli",
- "1179": "Down with the Sickness",
- "1180": "Child's Plague",
- "1181": "You Don't Know Jack",
- "1182": "Winging It",
- "1184": "Beat Boxes",
- "1185": "Barbershoppe",
- "1186": "Fletching Returns",
- "1187": "Days of Fluturini Past",
- "1188": "Diceman Cometh",
- "1189": "Stuck in the Muud",
- "1190": "Eat Big or Go Home",
- "1191": "Love Me, Tindalos",
- "1193": "Home on the Range",
- "1194": "Rattle and Humbaba",
- "1195": "Forget-me-not",
- "1196": "The Day of the Griffins",
- "1197": "Venting",
- "1198": "Breakneck",
- "1199": "Attack of the Groans",
- "1200": "Moth to a Flame",
- "1201": "Resist, Die, Repeat",
- "1202": "Slaughterwife-five",
- "1203": "Das Bhoot",
- "1204": "5-year Energy",
- "1205": "Mouth for Water",
- "1207": "The Magitek Is Back",
- "1208": "A Tisket, A Tasket",
- "1209": "A Fish to Fry",
- "1210": "Falling Drown",
- "1211": "Scared Straightheart",
- "1212": "Wolves of a Feather",
- "1213": "Goodwill Hunterling",
- "1214": "Stay of Eggsecution",
- "1215": "Get Ready for a Nu Wave",
- "1216": "Deep Red Sea",
- "1217": "To Catch a Weasel",
- "1218": "Footing the Bills",
- "1219": "Tiger Need",
- "1220": "Leave the Meters Running",
- "1221": "The Long and Rhino Road",
- "1222": "Raze the Red Lantern",
- "1223": "Long Hands, Long Fingers",
- "1224": "Rice and Shine",
- "1225": "In One Basket",
- "1226": "Tsurubebi Snugly",
- "1227": "Motherly Love",
- "1228": "Killer Apsaras",
- "1229": "Linquan Continental",
- "1230": "This Is a Da, This Is a Peng",
- "1231": "Oneblade Wonder",
- "1232": "Mister Whiskers",
- "1233": "Crying Wolves",
- "1234": "Mada's Ilk",
- "1235": "Tora Tora Tora",
- "1236": "Ragoh to Extremes",
- "1237": "Très Bian",
- "1238": "Curiosity Killed the Catfish",
- "1239": "The Virgin Homicides",
- "1240": "Dead to Rites: Kiyofusa",
- "1241": "Dead to Rites: Koja",
- "1242": "Don't You Mean Kirata",
- "1243": "The State of Reunion",
- "1244": "Cold Comes the Wind",
- "1245": "A Tall Order",
- "1246": "Duck and Cover",
- "1247": "Feel the Noise",
- "1248": "Get Out the Vochu",
- "1249": "Buzzkill",
- "1250": "A Good Day to Die",
- "1251": "Wooly Boys",
- "1252": "Razing the Baras",
- "1253": "The Fangover",
- "1254": "Hat's Off",
- "1255": "Rock for Food",
- "1256": "Purbol Reign",
- "1257": "Eat You Better",
- "1258": "Man to Mangas",
- "1259": "Not Just a Tribute",
- "1260": "Good Day to Mate",
- "1261": "Killing Dzo",
- "1262": "Burn After Evening",
- "1263": "Hey, Manzasiri",
- "1264": "Khan Artist",
- "1265": "Hook, Like, and Stinker",
- "1266": "Fired",
- "1267": "Wham, Bam, Thank You, Mammoth",
- "1268": "More than You Chaochu",
- "1269": "They Shall Not Want",
- "1270": "A Walk Through the Valley",
- "1271": "Live for the Mettle",
- "1272": "Off Their Yabby",
- "1273": "Foul Bachelor Frogamander",
- "1274": "Old Bucket of Boruta",
- "1275": "Dusk Till Abaddon",
- "1276": "The Smell That Leeched Her Heart",
- "1277": "Tall Tale",
- "1278": "Taking Kurrea Business",
- "1279": "Dude, Where's My Karya",
- "1280": "Sisyphus Cooling",
- "1281": "Minotaurs on My Mind",
- "1282": "Dive In",
- "1283": "Pounding Salt",
- "1284": "Lalla Land",
- "1285": "When It Pains It Pours",
- "1286": "Sob Story",
- "1287": "Par for the Course",
- "1288": "Sip When I'm Dead",
- "1289": "Who's Phoebad",
- "1290": "Yabby Hunters",
- "1291": "Enemy Territory",
- "1292": "One Bad Mother Chukwa",
- "1293": "Give Bees a Chance",
- "1294": "About Face",
- "1295": "No Time Is a Good Time",
- "1296": "Mazeless Runner",
- "1297": "Kingsgrave",
- "1298": "Fate No Morpho",
- "1299": "I Can Feel the Earth Move",
- "1300": "To Leech His Own",
- "1301": "Tellus a Tale",
- "1302": "OK, Golem",
- "1303": "Ancelot's Fear",
- "1304": "Ancelot's Folly",
- "1305": "Ancelot's Finale",
- "1306": "The Dataqi Chronicles: Departures",
- "1307": "The Dataqi Chronicles: Distractions",
- "1308": "The Dataqi Chronicles: Duty",
- "1309": "The Dataqi Chronicles: Deprivation",
- "1310": "The Dataqi Chronicles: Deterrence",
- "1311": "The Dataqi Chronicles: Desperation",
- "1312": "The Dataqi Chronicles: Distress",
- "1313": "The Dataqi Chronicles: Displacement",
- "1315": "The Dataqi Chronicles: Diplomacy",
- "1316": "The Dataqi Chronicles: Decimation",
- "1318": "The Dataqi Chronicles: Divergence",
- "1319": "The Dataqi Chronicles: Declarations",
- "1320": "The Dataqi Chronicles: Dominion",
- "1321": "The Summer of Ultros",
- "1322": "To Bait a Baiter",
- "1323": "Snippers Gonna Snip",
- "1324": "Adopt a Beach"
+
}
}
}
diff --git a/App/Resources/Data/ko-kr.json b/App/Resources/Data/ko-kr.json
index b29b625..6c97abb 100644
--- a/App/Resources/Data/ko-kr.json
+++ b/App/Resources/Data/ko-kr.json
@@ -1,102 +1,102 @@
{
// 버전
- "version": "20171029.1",
+ "version": "20191203.1",
// 임무
"instances": {
// 2.0 신생 에오르제아
// 2.0 던전
- "157": {
+ "4": {
"name": "사스타샤 침식 동굴",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "158": {
+ "8": {
"name": "브레이플록스의 야영지",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "159": {
+ "10": {
"name": "방랑자의 궁전",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "161": {
+ "3": {
"name": "구리종 광산",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "162": {
+ "7": {
"name": "할라탈리 수련장",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "163": {
+ "9": {
"name": "카른의 무너진 사원",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "164": {
+ "2": {
"name": "탐타라 묘소",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "166": {
+ "6": {
"name": "하우케타 별궁",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "167": {
+ "14": {
"name": "옛 암다포르 성",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "168": {
+ "11": {
"name": "돌방패 경계초소",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "169": {
+ "1": {
"name": "토토라크 감옥",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "170": {
+ "12": {
"name": "나무꾼의 비명",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "171": {
+ "13": {
"name": "제멜 요새",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "172": {
+ "5": {
"name": "금빛 골짜기",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "217": {
+ "15": {
"name": "카스트룸 메리디아눔",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "224": {
+ "16": {
"name": "마도성 프라이토리움",
"tank": "2",
"healer": "2",
@@ -104,43 +104,43 @@
},
// 2.0 토벌전
- "202": {
+ "56": {
"name": "이프리트 토벌전",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "206": {
+ "57": {
"name": "타이탄 토벌전",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "208": {
+ "58": {
"name": "가루다 토벌전",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "292": {
+ "59": {
"name": "진 이프리트 토벌전",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "293": {
+ "60": {
"name": "진 타이탄 토벌전",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "294": {
+ "61": {
"name": "진 가루다 토벌전",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "332": {
+ "62": {
"name": "리트아틴 강습전",
"tank": "2",
"healer": "2",
@@ -150,19 +150,19 @@
// 2.1 각성한 자들
// 2.1 던전
- "160": {
+ "17": {
"name": "시리우스 대등대",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "349": {
+ "18": {
"name": "구리종 광산 (어려움)",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "350": {
+ "19": {
"name": "하우케타 별궁 (어려움)",
"tank": "1",
"healer": "1",
@@ -170,44 +170,44 @@
},
// 2.1 토벌전
- "207": {
+ "66": {
"name": "선왕 모그루 모그 XII세 토벌전",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "295": {
+ "63": {
"name": "극 이프리트 토벌전",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "296": {
+ "64": {
"name": "극 타이탄 토벌전",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "297": {
+ "65": {
"name": "극 가루다 토벌전",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "348": {
+ "68": {
"name": "알테마 웨폰 파괴작전",
"tank": "2",
"healer": "2",
"dps": "4"
},
// 2.16 토벌전
- "368": {
+ "74": {
"name": "도름 키마이라 토벌전",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "369": {
+ "75": {
"name": "하이드라 토벌전",
"tank": "2",
"healer": "2",
@@ -215,37 +215,37 @@
},
// 2.1 레이드
- "174": {
+ "92": {
"name": "크리스탈 타워: 고대인의 미궁",
- "tank": "6",
+ "tank": "3",
"healer": "6",
- "dps": "12"
+ "dps": "15"
},
- "241": {
+ "93": {
"name": "대미궁 바하무트: 해후편 1",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "242": {
+ "94": {
"name": "대미궁 바하무트: 해후편 2",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "243": {
+ "95": {
"name": "대미궁 바하무트: 해후편 3",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "244": {
+ "96": {
"name": "대미궁 바하무트: 해후편 4",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "245": {
+ "97": {
"name": "대미궁 바하무트: 해후편 5",
"tank": "2",
"healer": "2",
@@ -255,19 +255,19 @@
// 2.2 혼돈의 소용돌이
// 2.2 던전
- "363": {
+ "22": {
"name": "옛 암다포르 시가지",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "360": {
+ "21": {
"name": "할라탈리 수련장 (어려움)",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "362": {
+ "20": {
"name": "브레이플록스의 야영지 (어려움)",
"tank": "1",
"healer": "1",
@@ -275,25 +275,25 @@
},
// 2.2 토벌전
- "281": {
+ "72": {
"name": "진 리바이어선 토벌전",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "359": {
+ "73": {
"name": "극 리바이어선 토벌전",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "364": {
+ "67": {
"name": "극왕 모그루 모그 XII세 토벌전",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "366": {
+ "76": {
"name": "길가메시 토벌전",
"tank": "2",
"healer": "2",
@@ -301,25 +301,25 @@
},
// 2.2 레이드
- "355": {
+ "98": {
"name": "대미궁 바하무트: 침공편 1",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "356": {
+ "99": {
"name": "대미궁 바하무트: 침공편 2",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "357": {
+ "100": {
"name": "대미궁 바하무트: 침공편 3",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "358": {
+ "101": {
"name": "대미궁 바하무트: 침공편 4",
"tank": "2",
"healer": "2",
@@ -329,19 +329,19 @@
// 2.3 에오르제아의 수호자
// 2.3 던전
- "361": {
+ "23": {
"name": "난파선의 섬",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "365": {
+ "25": {
"name": "돌방패 경계초소 (어려움)",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "373": {
+ "24": {
"name": "탐타라 묘소 (어려움)",
"tank": "1",
"healer": "1",
@@ -349,13 +349,13 @@
},
// 2.3 토벌전
- "374": {
+ "77": {
"name": "진 라무 토벌전",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "375": {
+ "78": {
"name": "극 라무 토벌전",
"tank": "2",
"healer": "2",
@@ -363,31 +363,31 @@
},
// 2.3 레이드
- "372": {
+ "102": {
"name": "크리스탈 타워: 시르쿠스 탑",
"tank": "3",
"healer": "6",
"dps": "15"
},
- "380": {
+ "103": {
"name": "대미궁 바하무트: 침공편 1 (영웅)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "381": {
+ "104": {
"name": "대미궁 바하무트: 침공편 2 (영웅)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "382": {
+ "105": {
"name": "대미궁 바하무트: 침공편 3 (영웅)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "383": {
+ "106": {
"name": "대미궁 바하무트: 침공편 4 (영웅)",
"tank": "2",
"healer": "2",
@@ -397,19 +397,19 @@
// 2.4 빙결의 환상
// 2.4 던전
- "371": {
+ "27": {
"name": "얼음외투 대빙벽",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "367": {
+ "26": {
"name": "카른의 무너진 사원 (어려움)",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "387": {
+ "28": {
"name": "사스타샤 침식 동굴 (어려움)",
"tank": "1",
"healer": "1",
@@ -417,19 +417,19 @@
},
// 2.4 토벌전
- "377": {
+ "79": {
"name": "진 시바 토벌전",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "378": {
+ "80": {
"name": "극 시바 토벌전",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "142": {
+ "81": {
"name": "아마지나배 투기대회 결승전",
"tank": "2",
"healer": "2",
@@ -437,25 +437,25 @@
},
// 2.4 레이드
- "193": {
+ "107": {
"name": "대미궁 바하무트: 진성편 1",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "194": {
+ "108": {
"name": "대미궁 바하무트: 진성편 2",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "195": {
+ "109": {
"name": "대미궁 바하무트: 진성편 3",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "196": {
+ "110": {
"name": "대미궁 바하무트: 진성편 4",
"tank": "2",
"healer": "2",
@@ -465,19 +465,19 @@
// 2.5 희망의 등불
// 2.5 던전
- "150": {
+ "32": {
"name": "묵약의 탑",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "188": {
+ "30": {
"name": "방랑자의 궁전 (어려움)",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "189": {
+ "29": {
"name": "옛 암다포르 성 (어려움)",
"tank": "1",
"healer": "1",
@@ -485,26 +485,26 @@
},
// 2.5 토벌전
- "426": {
+ "84": {
"name": "아씨엔 나브리알레스 토벌전",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "394": {
+ "82": {
"name": "투신 오딘 토벌전",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "396": {
+ "85": {
"name": "진 길가메시 토벌전",
"tank": "2",
"healer": "2",
"dps": "4"
},
// 2.55 토벌전
- "143": {
+ "83": {
"name": "성도 이슈가르드 방어전",
"tank": "2",
"healer": "2",
@@ -512,7 +512,7 @@
},
// 2.5 레이드
- "151": {
+ "111": {
"name": "크리스탈 타워: 어둠의 세계",
"tank": "3",
"healer": "6",
@@ -522,49 +522,49 @@
// 3.0 창천의 이슈가르드
// 3.0 던전
- "435": {
+ "39": {
"name": "용의 둥지",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "416": {
+ "31": {
"name": "구브라 환상도서관",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "421": {
+ "34": {
"name": "이슈가르드 교황청",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "430": {
+ "35": {
"name": "무한연속 박물함",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "434": {
+ "36": {
"name": "어스름 요새",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "438": {
+ "38": {
"name": "마과학 연구소",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "441": {
+ "37": {
"name": "솜 알",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "420": {
+ "33": {
"name": "거두지 않는 섬",
"tank": "1",
"healer": "1",
@@ -572,31 +572,31 @@
},
// 3.0 토벌전
- "432": {
+ "86": {
"name": "진 라바나 토벌전",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "436": {
+ "88": {
"name": "진 비스마르크 토벌전",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "437": {
+ "90": {
"name": "나이츠 오브 라운드 토벌전",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "446": {
+ "87": {
"name": "극 라바나 토벌전",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "447": {
+ "89": {
"name": "극 비스마르크 토벌전",
"tank": "2",
"healer": "2",
@@ -604,50 +604,50 @@
},
// 3.01 레이드
- "442": {
+ "112": {
"name": "기공성 알렉산더: 기동편 1",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "443": {
+ "113": {
"name": "기공성 알렉산더: 기동편 2",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "444": {
+ "114": {
"name": "기공성 알렉산더: 기동편 3",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "445": {
+ "115": {
"name": "기공성 알렉산더: 기동편 4",
"tank": "2",
"healer": "2",
"dps": "4"
},
// 3.05 레이드
- "449": {
+ "116": {
"name": "기공성 알렉산더: 기동편 1 (영웅)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "450": {
+ "117": {
"name": "기공성 알렉산더: 기동편 2 (영웅)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "451": {
+ "118": {
"name": "기공성 알렉산더: 기동편 3 (영웅)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "452": {
+ "119": {
"name": "기공성 알렉산더: 기동편 4 (영웅)",
"tank": "2",
"healer": "2",
@@ -657,13 +657,13 @@
// 3.1 빛과 어둠의 경계
// 3.1 던전
- "510": {
+ "40": {
"name": "시리우스 대등대 (어려움)",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "511": {
+ "41": {
"name": "성 모샨 식물원",
"tank": "1",
"healer": "1",
@@ -671,7 +671,7 @@
},
// 3.1 토벌전
- "448": {
+ "91": {
"name": "극 나이츠 오브 라운드 토벌전",
"tank": "2",
"healer": "2",
@@ -679,7 +679,7 @@
},
// 3.1 레이드
- "508": {
+ "120": {
"name": "보이드의 방주",
"tank": "3",
"healer": "6",
@@ -687,20 +687,20 @@
},
// 3.1 파티 컨텐츠
- "512": {
+ "131": {
"name": "디아뎀 제도(쉬움)",
"tank": "1",
"healer": "2",
"dps": "5"
},
- "514": {
+ "132": {
"name": "디아뎀 제도",
"tank": "1",
"healer": "2",
"dps": "5"
},
- "515": {
- "name": "디아뎀 제도(어려움)",
+ "133": {
+ "name": "디아뎀 제도 (어려움)",
"tank": "1",
"healer": "2",
"dps": "5"
@@ -709,13 +709,13 @@
// 3.2 운명의 톱니바퀴
// 3.2 던전
- "516": {
+ "141": {
"name": "거꾸로 선 탑",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "519": {
+ "140": {
"name": "옛 암다포르 시가지 (어려움)",
"tank": "1",
"healer": "1",
@@ -723,13 +723,13 @@
},
// 3.2 토벌전
- "517": {
+ "134": {
"name": "마신 세피로트 토벌전",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "524": {
+ "135": {
"name": "극 마신 세피로트 토벌전",
"tank": "2",
"healer": "2",
@@ -737,50 +737,50 @@
},
// 3.2 레이드
- "520": {
- "name": "기동성 알렉산더: 율동편 1",
+ "136": {
+ "name": "기공성 알렉산더: 율동편 1",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "521": {
- "name": "기동성 알렉산더: 율동편 2",
+ "137": {
+ "name": "기공성 알렉산더: 율동편 2",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "522": {
- "name": "기동성 알렉산더: 율동편 3",
+ "138": {
+ "name": "기공성 알렉산더: 율동편 3",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "523": {
- "name": "기동성 알렉산더: 율동편 4",
+ "139": {
+ "name": "기공성 알렉산더: 율동편 4",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "529": {
- "name": "기동성 알렉산더: 율동편(영웅) 1",
+ "147": {
+ "name": "기공성 알렉산더: 율동편(영웅) 1",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "530": {
- "name": "기동성 알렉산더: 율동편(영웅) 2",
+ "148": {
+ "name": "기공성 알렉산더: 율동편(영웅) 2",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "531": {
- "name": "기동성 알렉산더: 율동편(영웅) 3",
+ "149": {
+ "name": "기공성 알렉산더: 율동편(영웅) 3",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "532": {
- "name": "기동성 알렉산더: 율동편(영웅) 4",
+ "150": {
+ "name": "기공성 알렉산더: 율동편(영웅) 4",
"tank": "2",
"healer": "2",
"dps": "4"
@@ -789,13 +789,13 @@
// 3.3 최후의 표효
// 3.3 던전
- "555": {
+ "171": {
"name": "소르 카이",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "557": {
+ "172": {
"name": "난파선의 섬 (어려움)",
"tank": "1",
"healer": "1",
@@ -803,13 +803,13 @@
},
// 3.3 토벌전
- "559": {
+ "169": {
"name": "니드호그 토벌전",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "566": {
+ "170": {
"name": "극 니드호그 토벌전",
"tank": "2",
"healer": "2",
@@ -817,7 +817,7 @@
},
// 3.3 레이드
- "556": {
+ "168": {
"name": "금기도시 마하",
"tank": "3",
"healer": "6",
@@ -825,7 +825,7 @@
},
// 3.3 파티 컨텐츠
- "558": {
+ "179": {
"name": "보물고 아쿠아폴리스",
"tank": "0",
"healer": "0",
@@ -835,13 +835,13 @@
// 3.4 혼을 계승하는 자
// 3.4 던전
- "572": {
+ "182": {
"name": "젤파톨",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "578": {
+ "196": {
"name": "구브라 환상도서관 (어려움)",
"tank": "1",
"healer": "1",
@@ -849,13 +849,13 @@
},
// 3.4 토벌전
- "576": {
+ "183": {
"name": "여신 소피아 토벌전",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "577": {
+ "184": {
"name": "극 여신 소피아 토벌전",
"tank": "2",
"healer": "2",
@@ -863,49 +863,49 @@
},
// 3.4 레이드
- "580": {
+ "186": {
"name": "기공성 알렉산더: 천동편 1",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "581": {
+ "187": {
"name": "기공성 알렉산더: 천동편 2",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "582": {
+ "188": {
"name": "기공성 알렉산더: 천동편 3",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "583": {
+ "189": {
"name": "기공성 알렉산더: 천동편 4",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "584": {
+ "190": {
"name": "기공성 알렉산더: 천동편(영웅) 1",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "585": {
+ "191": {
"name": "기공성 알렉산더: 천동편(영웅) 2",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "586": {
+ "192": {
"name": "기공성 알렉산더: 천동편(영웅) 3",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "587": {
+ "193": {
"name": "기공성 알렉산더: 천동편(영웅) 4",
"tank": "2",
"healer": "2",
@@ -915,13 +915,13 @@
// 3.5 숙명의 끝
// 3.5 던전
- "615": {
+ "219": {
"name": "바일사르 장성",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "617": {
+ "221": {
"name": "솜 알 (어려움)",
"tank": "1",
"healer": "1",
@@ -929,13 +929,13 @@
},
// 3.5 토벌전
- "637": {
+ "223": {
"name": "귀신 주르반 토벌전",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "638": {
+ "224": {
"name": "극 귀신 주르반 토벌전",
"tank": "2",
"healer": "2",
@@ -943,7 +943,7 @@
},
// 3.5 레이드
- "627": {
+ "220": {
"name": "둔 스카",
"tank": "3",
"healer": "6",
@@ -953,81 +953,81 @@
// 4.0 홍련의 해방자
// 4.0 던전
- "626": {
+ "238": {
"name": "세이렌 해",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "616": {
- "name": "자수궁",
+ "235": {
+ "name": "시스이 궁",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "623": {
- "name": "바르뎀의 패도",
+ "240": {
+ "name": "바르담 패도",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "660": {
+ "241": {
"name": "도마 성",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "661": {
+ "242": {
"name": "카스트룸 아바니아",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "689": {
+ "247": {
"name": "알라미고",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "662": {
+ "262": {
"name": "쿠가네 성",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "663": {
- "name": "성도 수도원",
+ "236": {
+ "name": "성도산 사원",
"tank": "1",
"healer": "1",
"dps": "2"
},
// 4.0 토벌전
- "674": {
+ "243": {
"name": "스사노오 토벌전",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "677": {
+ "244": {
"name": "극 스사노오 토벌전",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "719": {
+ "263": {
"name": "락슈미 토벌전",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "720": {
+ "264": {
"name": "극 락슈미 토벌전",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "679": {
+ "239": {
"name": "신룡 토벌전",
"tank": "2",
"healer": "2",
@@ -1035,60 +1035,60 @@
},
// 4.01 레이드
- "691": {
+ "252": {
"name": "차원의 틈 오메가: 델타편 1",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "692": {
+ "253": {
"name": "차원의 틈 오메가: 델타편 2",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "693": {
+ "254": {
"name": "차원의 틈 오메가: 델타편 3",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "694": {
+ "255": {
"name": "차원의 틈 오메가: 델타편 4",
"tank": "2",
"healer": "2",
"dps": "4"
},
-
+
// 4.05 레이드
- "695": {
+ "256": {
"name": "오메가: 델타편 1 (영웅)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "696": {
+ "257": {
"name": "오메가: 델타편 2 (영웅)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "697": {
+ "258": {
"name": "오메가: 델타편 3 (영웅)",
"tank": "2",
"healer": "2",
"dps": "4"
},
- "698": {
+ "259": {
"name": "오메가: 델타편 4 (영웅)",
"tank": "2",
"healer": "2",
"dps": "4"
},
-
- //4.05 파티 컨텐츠
- "712": {
- "name": "The Lost Canals of Uznair",
+
+ //4.05 파티 컨텐츠
+ "268": {
+ "name": "보물고 우즈네어 운하",
"tank": "0",
"healer": "0",
"dps": "0"
@@ -1097,15 +1097,15 @@
// 4.1 영웅의 귀환
// 4.1 던전
- "731": {
- "name": "The Drowned City of Skalla",
+ "279": {
+ "name": "스칼라 유적",
"tank": "1",
"healer": "1",
"dps": "2"
},
// 4.1 토벌전
- "730": {
+ "278": {
"name": "극 신룡 토벌전",
"tank": "2",
"healer": "2",
@@ -1113,455 +1113,1279 @@
},
// 4.1 레이드
- "734": {
- "name": "The Royal City of Rabanastre",
+ "281": {
+ "name": "왕도 라바나스터",
"tank": "3",
"healer": "6",
"dps": "15"
},
-
- //4.1 파티 컨텐츠
- "725": {
- "name": "The Hidden Canals of Uznair",
+
+ //4.1 파티 컨텐츠
+ "276": {
+ "name": "보물고 우즈네어 운하 심층",
"tank": "0",
"healer": "0",
"dps": "0"
},
-
- //4.11 레이드
- "733": {
+
+ //4.11 레이드
+ "280": {
"name": "절 바하무트 토벌전",
"tank": "2",
"healer": "2",
"dps": "4"
},
-
- // 길드 작전
- "190": {
- "name": "방황하는 사령을 쓰러뜨려라!",
+ // 4.2 효광의 때
+ // 4.2 던전
+ "284": {
+ "name": "지옥뚜껑",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "191": {
- "name": "독성 요괴꽃을 제거하라!",
+ "285": {
+ "name": "무한연속 박물함 (어려움)",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "192": {
- "name": "무법자 '나나니단'을 섬멸하라!",
- "tank": "1",
- "healer": "1",
- "dps": "2"
+
+ // 4.2 토벌전
+ "290": {
+ "name": "백호 토벌전",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "214": {
- "name": "집단전 훈련을 완수하라!",
- "tank": "1",
- "healer": "1",
- "dps": "2"
+ "291": {
+ "name": "극 백호 토벌전",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "215": {
- "name": "관문을 돌파하고 최심부의 적을 쓰러뜨려라!",
- "tank": "1",
- "healer": "1",
- "dps": "2"
+
+ // 4.2 레이드
+ "286": {
+ "name": "차원의 틈 오메가: 시그마편 1",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "216": {
- "name": "길거북을 사로잡아라!",
- "tank": "1",
- "healer": "1",
- "dps": "2"
+ "287": {
+ "name": "차원의 틈 오메가: 시그마편 2",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "219": {
- "name": "폭탄광 고블린 군단을 섬멸하라!",
- "tank": "1",
- "healer": "1",
- "dps": "2"
+ "288": {
+ "name": "차원의 틈 오메가: 시그마편 3",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "220": {
- "name": "몽환의 브라크시오를 쓰러뜨려라!",
- "tank": "1",
- "healer": "1",
- "dps": "2"
+ "289": {
+ "name": "차원의 틈 오메가: 시그마편 4",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "221": {
- "name": "오염원 몰볼을 쓰러뜨려라!",
- "tank": "1",
- "healer": "1",
- "dps": "2"
+ "292": {
+ "name": "오메가: 시그마편 1 (영웅)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "222": {
- "name": "갱도에 나타난 요마 부소를 쓰러뜨려라!",
+ "293": {
+ "name": "오메가: 시그마편 2 (영웅)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "294": {
+ "name": "오메가: 시그마편 3 (영웅)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "295": {
+ "name": "오메가: 시그마편 4 (영웅)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 4.3 월하의 꽃
+ // 4.3 던전
+ "536": {
+ "name": "강엔 종묘",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "223": {
- "name": "무적의 부하를 조종하는 요마를 쓰러뜨려라!",
+
+ // 4.3 토벌전
+ "537": {
+ "name": "츠쿠요미 토벌전",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "538": {
+ "name": "극 츠쿠요미 토벌전",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 4.3 레이드
+ "550": {
+ "name": "대등대 리도르아나",
+ "tank": "3",
+ "healer": "6",
+ "dps": "15"
+ },
+
+ // 4.31 레이드
+ "539": {
+ "name": "절 알테마 웨폰 파괴 작전",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ //4.36 토벌전
+ "474": {
+ "name": "리오레우스 수렵전",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "475": {
+ "name": "극 리오레우스 수렵전",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "298": {
- "name": "봄을 거느린 '봄 여왕'을 쓰러뜨려라!",
+
+
+ // 4.4 광란의 전주곡
+ // 4.4 던전
+ "585": {
+ "name": "영구 초토지대",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "299": {
- "name": "불길한 진영을 짜는 요마를 섬멸하라!",
+ "584": {
+ "name": "성 모샨 식물원 (어려움)",
"tank": "1",
"healer": "1",
"dps": "2"
},
- "300": {
- "name": "세 거인족을 제압하여 유물을 지켜내라!",
+
+ // 4.4 토벌전
+ "596": {
+ "name": "주작 토벌전",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "597": {
+ "name": "극 주작 토벌전",
"tank": "2",
"healer": "2",
"dps": "4"
},
+ // 4.4 레이드
- // 초보자의 집
- "537": {
- "name": "범위 공격을 피하자!",
- "tank": "0",
- "healer": "0",
- "dps": "0"
+ "587": {
+ "name": "차원의 틈 오메가: 알파편 1",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "538": {
- "name": "콤보를 이어 적개심을 끌자!",
- "tank": "0",
- "healer": "0",
- "dps": "0"
+ "588": {
+ "name": "차원의 틈 오메가: 알파편 2",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "539": {
- "name": "실전에서 콤보를 사용해보자!",
- "tank": "0",
- "healer": "0",
- "dps": "0"
+ "589": {
+ "name": "차원의 틈 오메가: 알파편 3",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "540": {
- "name": "다수의 적에게서 적개심을 끌자!",
- "tank": "0",
- "healer": "0",
- "dps": "0"
+ "590": {
+ "name": "차원의 틈 오메가: 알파편 4",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
},
- "541": {
- "name": "실전에서 다수의 적과 싸워보자!",
- "tank": "0",
+ "591": {
+ "name": "오메가: 알파편 1 (영웅)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4",
+ "macro": "/p Alphascape v 1.0 (savage)
+/p [해일 착탄/추적]
+/p 12시: MT/H1 / 6시: ST/H2
+/p ---------------------------------
+/p [불꽃] l [지진] TH: HP 풀/ DPS: 죽음의 초월
+/p MT/D3 l ●
+/p H1/D1 ● H2/D2 l H1 MT ST H2
+/p ST/D4 l D3 D1 D2 D4 ※ DPS 넉백 후 그자리에서 맞기
+/p ----------------------------------
+/p ■ 흑수정 세로처리법 ■ 흑수정 X처리법
+/p D1/D2(※거리유지) MT ST
+/p ★ D1 D2
+/p MT/ST/H1/H2 ★
+/p D3 D3 D4
+/p D4(※견고마) H1 H2"
+ },
+ "592": {
+ "name": "오메가: 알파편 2 (영웅)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4",
+ "macro":"/p Alphascape v 2.0 savage (2번징 9시쪽)
+/p ---------------------------------
+/p ○+○= 외부이동 ㅣ│+○= 징으로 산개
+/p ○+│= 내부이동 ㅣ│+│= 4층전반 방패옵션 산개
+/p ---------------------------------
+/p [기본 산개] l [징으로 산개]
+/p D3 MT D4 l MT/D3
+/p H1 ★ H2 l H1/D1 ★ H2/D2
+/p D1 ST D2 l ST/D4
+/p ---------------------------------
+/p [마법장벽] ST 습득 후 2번징에서 전달
+/p [번개징] 각자 안겹치게 산개
+/p [엑사플레어&아크몬] - 엑사플레어 첫번째 지점에서 아크몬 맞기
+/p [핫테일] MT- 11시로 이동-가운데-이후 구슬터지면 11시로 이동 핫테일 맞기/본진은 5시에서 중앙 이동- 이후 7시로 이동(구슬터지면 이동)"
+ },
+ "593": {
+ "name": "오메가: 알파편 3 (영웅)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4",
+ "macro": "/p ■화염방사, 레이저■ | ■로켓펀치1■
+/p | ▲ ※세로짝과 같은 색이면
+/p ▲ l 앞사람은 로 이동
+/p | 뒷사람은 로 이동
+/p ※후속화염 회피 시계 | ※다르면 뒤가 앞에 겹침
+/p ■자석■ l l ■ 연쇄망각 ■
+/p 탱힐→북/동 딜러→남/서 l 서쪽 동쪽
+/p ■ 2, 3로켓펀치(대형)■ > 각각 자기주먹 쪽 면의 마커로 이동
+/p ■ 판토크라토르■ >1판토:뒤쪽 집합후 시계로 /2판토:섭탱 무적,
+/p 뒤쪽집합 - 앞쪽으로 4개 깔고 시계/반시계 회전 - 셰어는 뒤에서
+/p ■ 1판토 레이저 ■ 1번째 탱힐(+자)2번째 딜러(×자)
+/p ■ 2판토 레이저 l l 1번째→8시 4시
+/p ■ 거리감쇠 ■└→l ▲ l 6시
+/p └→ 북서(A쪽) l 8시 4시 l 2번째→8시 4시
+/p <산개 보스기준!!> l 6시 l 6시"
+ },
+ "594": {
+ "name": "오메가: 알파편 4 (영웅)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4",
+ "macro": ""
+ },
+
+ // 4.45
+
+ "595": {
+ "name": "진 요우진보 토벌전",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 4.5 영웅을 위한 진혼곡
+ // 4.5 던전
+ "611": {
+ "name": "김리트 황야",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+
+ // 4.5 토벌전
+ "637": {
+ "name": "청룡 토벌전",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "638": {
+ "name": "극 청룡 토벌전",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4",
+ "macro": "/p -----------------------------------------------
+/p ■줄 끊기: ←MT ST→
+/p ■큰 쫄 침묵: 1번째(MT), 2번째(ST)
+/p -----------------------------------------------
+/p 【각자 산개 위치】
+/p A
+/p D1/MT D2/ST
+/p ▲
+/p D3/H1 D4/H2
+/p C
+/p -----------------------------------------------
+/p ■2연속 직선 쉐어징 [A징 기준]
+/p D측면 (서): MT H1 D3 D4
+/p B측면 (동): ST H2 D1 D2
+/p ----------------------------------------------"
+ },
+
+ // 4.5 레이드
+ "636": {
+ "name": "오본느 수도원",
+ "tank": "3",
+ "healer": "6",
+ "dps": "15"
+ },
+
+ // 5.0 칠흑의 반역자
+ // 5.0 던전
+ "676": {
+ "name": "홀민스터 마을",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "649": {
+ "name": "돈 메그",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "651": {
+ "name": "키타나 신영동",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "656": {
+ "name": "마리카 대공동",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "659": {
+ "name": "구르그 화산",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "652": {
+ "name": "아모로트",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "655": {
+ "name": "시르쿠스 쌍둥이 탑",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "661": {
+ "name": "어나이더 아카데미아",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+
+ // 5.0 토벌전
+ "657": {
+ "name": "티타니아 토벌전",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "658": {
+ "name": "극 티타니아 토벌전",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4",
+ "macro": "/p H1 (물 Water) H2
+/p MT
+/p D1 D2
+/p ST
+/p D3 D4
+/p ------ 파티 2개로 분할 ------
+/p 서쪽 : MT-H1-D1-D3
+/p 동쪽 : ST-H2-D2-D4
+/p 시계 방향으로 회전할 것
+/p ---------- 첫 사슬 연결 ----------
+/p 북/서 : 탱커 힐러 | 남동 : 딜러
+/p -- 번개 줄 연결 ー : 9시 (① 서쪽)】--
+/p 순서 > ST->D1->D2->D3->-D4->H1
+/p ---------- 두 번째 사슬 연결 ----------
+/p 북 : 탱커 힐러 | 남쪽 : 딜러"
+ },
+ "666": {
+ "name": "이노센스 토벌전",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "667": {
+ "name": "극 이노센스 토벌전",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "687": {
+ "name": "하데스 토벌전",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 5.01 레이드
+
+ "653": {
+ "name": "희망의 낙원 에덴:각성편 1",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "684": {
+ "name": "희망의 낙원 에덴:각성편 2",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "682": {
+ "name": "희망의 낙원 에덴:각성편 3",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "689": {
+ "name": "희망의 낙원 에덴:각성편 4",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 5.05 Raids Savage
+
+ "654": {
+ "name": "희망의 낙원 에덴 : 각성편 1 (영웅)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "685": {
+ "name": "희망의 낙원 에덴 : 각성편 2 (영웅)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "683": {
+ "name": "희망의 낙원 에덴 : 각성편 3 (영웅)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+ "690": {
+ "name": "희망의 낙원 에덴 : 각성편 4 (영웅)",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ // 5.1 Patch
+
+ "693": {
+ "name": "극 하데스 토벌전",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+ "700": {
+ "name": "복제된 공장 폐허",
+ "tank": "3",
+ "healer": "6",
+ "dps": "15"
+ },
+
+ "692": {
+ "name": "그랑 코스모스",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+
+ // 길드 작전
+ "43": {
+ "name": "방황하는 사령을 쓰러뜨려라!",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "46": {
+ "name": "독성 요괴꽃을 제거하라!",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "47": {
+ "name": "무법자 집단 '나나니단'을 섬멸하라!",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "42": {
+ "name": "집단전 훈련을 완수하라!",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "44": {
+ "name": "관문을 돌파하고 최심부의 적을 쓰러뜨려라!",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "45": {
+ "name": "길거북을 사로잡아라!",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "49": {
+ "name": "폭탄광 고블린 군단을 섬멸하라!",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "48": {
+ "name": "몽환의 브라크시오를 쓰러뜨려라!",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "50": {
+ "name": "오염원 몰볼을 쓰러뜨려라!",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "51": {
+ "name": "갱도에 나타난 요마 부소를 쓰러뜨려라!",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "52": {
+ "name": "무적의 부하를 조종하는 요마를 쓰러뜨려라!",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "53": {
+ "name": "봄을 거느린 '봄 여왕'을 쓰러뜨려라!",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "54": {
+ "name": "불길한 진형을 짜는 요마를 섬멸하라!",
+ "tank": "1",
+ "healer": "1",
+ "dps": "2"
+ },
+ "55": {
+ "name": "세 거인족을 제압하여 유물을 지켜내라!",
+ "tank": "2",
+ "healer": "2",
+ "dps": "4"
+ },
+
+
+ // 4.5 청마도사
+ "610": {
+ "name": "데뷔전",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "612": {
+ "name": "후식은 푸딩으로",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "613": {
+ "name": "최초의 암벽",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "614": {
+ "name": "괴력의 철거인",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "615": {
+ "name": "길거북 형제",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "616": {
+ "name": "눈먼 공포",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "617": {
+ "name": "슬라임 대소동",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "618": {
+ "name": "푸른 이빨, 붉은 이빨",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "619": {
+ "name": "무지개맛 푸딩",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "620": {
+ "name": "비뚤어진 어둠",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "621": {
+ "name": "폭발하는 봄",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "622": {
+ "name": "기생식물",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "623": {
+ "name": "붉은 죽음의 요희",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "624": {
+ "name": "죽어도 같이 죽어",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "625": {
+ "name": "알라그의 위협",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "626": {
+ "name": "완력의 야수왕",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "627": {
+ "name": "강유의 철거인",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "628": {
+ "name": "폭파 데스매치",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "629": {
+ "name": "매혹적인 향기",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "630": {
+ "name": "명콤비",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "631": {
+ "name": "분노한 합성수",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "632": {
+ "name": "쌍소멸 폭발",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "633": {
+ "name": "마수의 황태자",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "634": {
+ "name": "기괴한 인형사",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "635": {
+ "name": "사악한 청마도사",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+
+
+ // 초보자의 집
+ "151": {
+ "name": "범위 공격을 피하자!",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "152": {
+ "name": "콤보를 이어 적개심을 끌자!",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "153": {
+ "name": "실전에서 콤보를 사용해보자!",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "154": {
+ "name": "다수의 적에게서 적개심을 끌자!",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "155": {
+ "name": "실전에서 다수의 적과 싸워보자!",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "156": {
+ "name": "멀리서 적개심을 끌자!",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "157": {
+ "name": "적 지원군에 대처하자!",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "158": {
+ "name": "파티원과 협력하여 적을 물리치자!",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "159": {
+ "name": "파티원과 같은 적을 공격하자!",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "160": {
+ "name": "적의 공격을 피하면서 싸우자!",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "161": {
+ "name": "적 지원군에 대처하자!",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "162": {
+ "name": "특수 장치를 활용하며 싸우자!",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "163": {
+ "name": "파티원을 회복시키자!",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "164": {
+ "name": "다수의 파티원을 회복시키자!",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "165": {
+ "name": "적의 공격을 피하면서 싸우자!",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "166": {
+ "name": "마지막 훈련!",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+
+
+ // PvP
+ "127": {
+ "name": "외곽 유적지대 (제압전)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "130": {
+ "name": "봉인된 바위섬 (쟁탈전)",
+ "tank": "0",
"healer": "0",
"dps": "0"
},
- "542": {
- "name": "멀리서 적개심을 끌자!",
+ "145": {
+ "name": "더 피스트 (4 대 4 / 일반전)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "543": {
- "name": "적 지원군에 대처하자!",
+ "228": {
+ "name": "더 피스트 (4 대 4 / 등급전)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "544": {
- "name": "파티원과 협력하여 적을 물리치자!",
+ "230": {
+ "name": "더 피스트 (4 대 4 / 일반전)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "545": {
- "name": "파티원과 같은 적을 공격하자!",
+ // 228로 바뀌었나?? (칠흑 이후?)
+ "143": {
+ "name": "더 피스트 (4 대 4 / 등급전)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "546": {
- "name": "적의 공격을 피하면서 싸우자!",
+ "201": {
+ "name": "더 피스트 (늑대우리 훈련장: 친선 경기)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "547": {
- "name": "적 지원군에 대처하자!",
+ "233": {
+ "name": "더 피스트 (잡초 훈련장: 친선 경기)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "548": {
- "name": "특수 장치를 활용하며 싸우자!",
+ "476": {
+ "name": "더 피스트 (팀 등급전)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "549": {
- "name": "파티원을 회복시키자!",
+ "478": {
+ "name": "더 피스트 (등급전)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "550": {
- "name": "다수의 파티원을 회복시키자!",
+ "479": {
+ "name": "더 피스트 (일반전)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "551": {
- "name": "적의 공격을 피하면서 싸우자!",
+ "480": {
+ "name": "더 피스트 (크리스탈 타워 훈련장: 친선 경기)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "552": {
- "name": "마지막 훈련!",
+ "580": {
+ "name": "★더 피스트 (4 대 4 / 고정 소규모 파티)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "180": {
+ "name": "영광의 평원 (쇄빙전)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "277": {
+ "name": "아스트라갈로스(기공전)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "599": {
+ "name": "히든 고지",
"tank": "0",
"healer": "0",
"dps": "0"
},
- // PvP
+ // 딥♂ 던전
+ // 창천의 이슈가르드
+ "174": {
+ "name": "망자의 궁전 B1~B10",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
"175": {
- "name": "더 폴드",
+ "name": "망자의 궁전 B11~B20",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "336": {
- "name": "더 폴드",
+ "176": {
+ "name": "망자의 궁전 B21~B30",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "337": {
- "name": "더 폴드 (파티 매칭)",
+ "177": {
+ "name": "망자의 궁전 B31~B40",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "352": {
- "name": "더 폴드 (고정 소규모 파티)",
+ "178": {
+ "name": "망자의 궁전 B41~B50",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "184": {
- "name": "더 폴드 (파티 매칭)",
+ "204": {
+ "name": "망자의 궁전 B51~B60",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "186": {
- "name": "더 폴드 (고정 소규모 파티)",
+ "205": {
+ "name": "망자의 궁전 B61~B70",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "376": {
- "name": "외곽 유적지대 (제압전)",
+ "206": {
+ "name": "망자의 궁전 B71~B80",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "422": {
- "name": "외곽 유적지대 (섬멸전)",
+ "207": {
+ "name": "망자의 궁전 B81~B90",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "431": {
- "name": "봉인된 바위섬 (쟁탈전)",
+ "208": {
+ "name": "망자의 궁전 B91~B100",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "518": {
- "name": "더 피스트 (8 대 8 / 매칭 파티)",
+ "209": {
+ "name": "망자의 궁전 B101~B110",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "525": {
- "name": "더 피스트 (4 대 4 / 개인)",
+ "210": {
+ "name": "망자의 궁전 B111~B120",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "526": {
- "name": "더 피스트 (4 대 4 / 고정 소규모 파티)",
+ "211": {
+ "name": "망자의 궁전 B121~B130",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "527": {
- "name": "더 피스트 (4 대 4 / 개인)",
+ "212": {
+ "name": "망자의 궁전 B131~B140",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "528": {
- "name": "더 피스트 (4 대 4 / 고정 소규모 파티)",
+ "213": {
+ "name": "망자의 궁전 B141~B150",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "618": {
- "name": "더 피스트 (8 대 8 / 친선 경기)",
+ "214": {
+ "name": "망자의 궁전 B151~B160",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "619": {
- "name": "더 피스트 (4 대 4 / 친선 경기)",
+ "215": {
+ "name": "망자의 궁전 B161~B170",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "554": {
- "name": "영광의 평원 (쇄빙전)",
+ "216": {
+ "name": "망자의 궁전 B171~B180",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "217": {
+ "name": "망자의 궁전 B181~B190",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "218": {
+ "name": "망자의 궁전 B191~B200",
"tank": "0",
"healer": "0",
"dps": "0"
},
-
- // 딥♂ 다크♂ 던전
- "561": {
- "name": "망자의 궁전 B1~B10",
+ // 천궁탑
+ "540": {
+ "name": "천궁탑 (1-10)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "562": {
- "name": "망자의 궁전 B11~B20",
+ "541": {
+ "name": "천궁탑 (11-20)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "563": {
- "name": "망자의 궁전 B21~B30",
+ "542": {
+ "name": "천궁탑 (21-30)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "564": {
- "name": "망자의 궁전 B31~B40",
+ "543": {
+ "name": "천궁탑 (31-40)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "565": {
- "name": "망자의 궁전 B41~B50",
+ "544": {
+ "name": "천궁탑 (41-50)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "593": {
- "name": "망자의 궁전 B51~B60",
+ "545": {
+ "name": "천궁탑 (51-60)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "594": {
- "name": "망자의 궁전 B61~B70",
+ "546": {
+ "name": "천궁탑 (61-70)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "595": {
- "name": "망자의 궁전 B71~B80",
+ "547": {
+ "name": "천궁탑 (71-80)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "596": {
- "name": "망자의 궁전 B81~B90",
+ "548": {
+ "name": "천궁탑 (81-90)",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "597": {
- "name": "망자의 궁전 B91~B100",
+ "549": {
+ "name": "천궁탑 (91-100)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+
+ // 홍련의 해방자
+
+ // 에우레카
+ "283": {
+ "name": "금단의 땅 에우레카 : 아네모스",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "581": {
+ "name": "금단의 땅 에우레카 : 파고스",
"tank": "0",
"healer": "0",
"dps": "0"
},
"598": {
- "name": "망자의 궁전 B101~B110",
+ "name": "금단의 땅 에우레카 : 피로스",
"tank": "0",
"healer": "0",
"dps": "0"
},
- "599": {
- "name": "망자의 궁전 B111~B120",
+ "639": {
+ "name": "금단의 땅 에우레카 : 히다토스",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+
+
+ // 기타 이상한 것들...
+ "437": {
+ "name": "도전! 트리플 트라이어드",
"tank": "0",
"healer": "0",
"dps": "0"
},
"600": {
- "name": "망자의 궁전 B121~B130",
+ "name": "뛰어라! 점핑 운동회",
"tank": "0",
"healer": "0",
"dps": "0"
},
"601": {
- "name": "망자의 궁전 B131~B140",
+ "name": "뛰어라! 점핑 운동회",
"tank": "0",
"healer": "0",
"dps": "0"
},
"602": {
- "name": "망자의 궁전 B141~B150",
+ "name": "뛰어라! 점핑 운동회",
"tank": "0",
"healer": "0",
"dps": "0"
},
"603": {
- "name": "망자의 궁전 B151~B160",
+ "name": "뛰어라! 점핑 운동회",
"tank": "0",
"healer": "0",
"dps": "0"
},
"604": {
- "name": "망자의 궁전 B161~B170",
+ "name": "뛰어라! 점핑 운동회",
"tank": "0",
"healer": "0",
"dps": "0"
},
"605": {
- "name": "망자의 궁전 B171~B180",
+ "name": "뛰어라! 점핑 운동회",
"tank": "0",
"healer": "0",
"dps": "0"
},
"606": {
- "name": "망자의 궁전 B181~B190",
+ "name": "뛰어라! 점핑 운동회",
"tank": "0",
"healer": "0",
"dps": "0"
},
"607": {
- "name": "망자의 궁전 B191~B200",
+ "name": "뛰어라! 점핑 운동회",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "608": {
+ "name": "뛰어라! 점핑 운동회",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "640": {
+ "name": "출격! 에어포스 조종사",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "641": {
+ "name": "출격! 에어포스 조종사",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "642": {
+ "name": "출격! 에어포스 조종사",
"tank": "0",
"healer": "0",
"dps": "0"
},
-
- // 기타 이상한 것들...
- "579": {
- "name": "트리플 트라이어드: 카드 대결장",
+ // 작패유희
+ "643": {
+ "name": "작패유희: 일반 탁자 (등급전)",
"tank": "0",
"healer": "0",
"dps": "0"
- }
- },
-
- //이벤트 인스턴스
- "571": {
+ },
+ "644": {
+ "name": "작패유희: 유단자 탁자 (등급전)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "645": {
+ "name": "작패유희: 4인용 탁자 (부르기 단요구 있음)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+ "650": {
+ "name": "작패유희: 4인용 탁자 (부르기 단요구 없음)",
+ "tank": "0",
+ "healer": "0",
+ "dps": "0"
+ },
+
+
+ //이벤트 인스턴스
+ "181": {
"name": "유령의 집",
"tank": "0",
"healer": "0",
@@ -1572,17 +2396,18 @@
// 무작위 임무
"roulettes": {
"1": "무작위 임무: 레벨링",
- "2": "무작위 임무: 레벨 50 던전",
+ "2": "무작위 임무: 레벨 50/60 던전",
"3": "무작위 임무: 주요 퀘스트",
"4": "무작위 임무: 길드 작전",
"5": "무작위 임무: 숙련자",
"6": "무작위 임무: 토벌전",
"7": "무작위 임무: 전장",
- "8": "무작위 임무: 레벨 60 던전",
+ "8": "무작위 임무: 레벨 70 던전",
"9": "무작위 임무: 멘토",
"10": "더 피스트 (8 대 8) - 친선 경기",
"13": "더 피스트 (4 대 4) - 개인",
- "15": "무작위 임무: 24인 레이드"
+ "15": "무작위 임무: 연합 레이드",
+ "17": "무작위 임무: 일반 레이드"
},
// 지역별 돌발
@@ -1590,12 +2415,8 @@
"134": {
"name": "중부 라노시아",
"fates": {
- "533": "돌아온 거대 화염마수",
"649": "그 바다생물을 보라",
- "687": "검은 악마: 실험 결과",
"688": "검은 악마: 과격한 숙녀",
- "693": "별빛축제: 마법 눈사람",
- "717": "거대 알 사냥",
"220": "거대한 들소",
"221": "여름여울의 공포",
"222": "대왕땅벌과 노란셔츠",
@@ -1622,12 +2443,7 @@
"262": "샘터의 싸움",
"264": "삼나무 숲의 전투",
"265": "강인한 산길잡이",
- "534": "돌아온 거대 화염마수",
"333": "기세등등한 마견",
- "666": "신비한 마물 '골렘'",
- "667": "신비한 마물 '벽돌골렘'",
- "694": "별빛축제: 마법 눈사람",
- "718": "거대 알 사냥",
"245": "불길한 왕자",
"246": "위험한 밭일",
"249": "새끼 치는 두꺼비",
@@ -1643,7 +2459,6 @@
"271": "신선한 고기",
"272": "달걀귀신",
"274": "사마귀 퇴치",
- "532": "돌아온 거대 화염마수",
"278": "하얀 거탑",
"279": "콜리브리의 저녁식사",
"280": "떠돌이 소매치기",
@@ -1659,13 +2474,6 @@
"566": "알뿌리 으깨기",
"334": "여름으로 가는 문",
"335": "죽음의 찬탈자",
- "913": "불꽃축제: 미풍양속의 수호자",
- "914": "불꽃축제: 한여름의 열광",
- "915": "불꽃축제: 위험한 불장난",
- "916": "불꽃축제: 바다야수 조련사",
- "917": "불꽃축제: 호색한의 말로",
- "918": "불꽃축제: 해적의 밀주",
- "689": "검은 악마: 실험 결과",
"690": "검은 악마: 과격한 숙녀",
"701": "광란의 알 축제",
"945": "봄바드 습격 경보!",
@@ -1686,7 +2494,6 @@
"577": "이국에서 온 괴물곤충",
"578": "수신을 부르는 자",
"650": "폭식하는 괴물새",
- "702": "현자의 알",
"289": "보급선을 지켜라",
"290": "폭식하는 괴물새",
"291": "밀밭의 파수꾼",
@@ -1715,10 +2522,6 @@
"329": "온천이 키운 조개",
"331": "비운의 용병",
"332": "호수 위를 누벼라!",
- "668": "신비한 마물 '골렘'",
- "669": "신비한 마물 '벽돌골렘'",
- "670": "신비한 마물 '골렘'",
- "671": "신비한 마물 '황금골렘'",
"703": "광란의 달걀 찾기",
"451": "가여운 여인의 제재소 부흥: 식량 방어",
"452": "가여운 여인의 제재소 부흥: 게 브 격퇴",
@@ -1767,8 +2570,6 @@
"361": "망치를 두드려라",
"366": "키다리 아저씨",
"367": "고스트 버스터즈",
- "911": "버그 잡기",
- "683": "검은 악마: 실험 결과",
"684": "검은 악마: 과격한 숙녀",
"704": "광란의 달걀 찾기"
}
@@ -1776,7 +2577,6 @@
"141": {
"name": "중부 다날란",
"fates": {
- "535": "돌아온 거대 화염마수",
"370": "천박한 승부사",
"373": "저녁밥을 사수하라!",
"374": "밑 빠진 독 키키룬",
@@ -1789,25 +2589,18 @@
"383": "가도를 가다",
"385": "부정한 거대 두꺼비",
"389": "성난 보물수호자",
- "393": "모래성의 맹장",
- "912": "버그 잡기",
- "660": "신비한 마물 '골렘'",
- "661": "신비한 마물 '벽돌골렘'",
- "695": "별빛축제: 마법 눈사람",
- "719": "거대 알 사냥"
+ "393": "모래성의 맹장"
}
},
"145": {
"name": "동부 다날란",
"fates": {
- "536": "돌아온 거대 화염마수",
"540": "꿈틀꿈틀 도브란",
"541": "거울의 기사",
"542": "금발의 귀공자",
"543": "추악한 합성수",
"394": "야수를 죽여라",
"395": "강철의 구멍술사",
- "652": "섬광 강림: 거대 마수 요격전",
"397": "아말쟈군 요격 작전",
"398": "침공 작전을 저지하라",
"400": "금 장터 방어전",
@@ -1818,14 +2611,11 @@
"409": "요괴꽃이 피었습니다",
"412": "낙원의 샘",
"413": "뿔이 긴 어르신",
- "696": "별빛축제: 마법 눈사람",
"191": "하늘다리 사투: 전초전",
"192": "하늘다리 사투: 방어전",
"193": "하늘다리 사투: 즈즈룬 격퇴",
"194": "하늘다리 사투: 나요크 로 격퇴",
- "195": "하늘다리 사투: 시민 구출 작전",
- "705": "현자의 알",
- "720": "거대 알 사냥"
+ "195": "하늘다리 사투: 시민 구출 작전"
}
},
"146": {
@@ -1843,8 +2633,6 @@
"555": "모래 위의 발자국",
"557": "아말쟈군 특수부대 '불꽃송곳니회'",
"558": "화염신을 부르는 자",
- "651": "섬광 강림: 거대 마수 요격전",
- "685": "검은 악마: 실험 결과",
"686": "검은 악마: 과격한 숙녀",
"706": "광란의 달걀 찾기",
"419": "해골 두목",
@@ -1890,7 +2678,6 @@
"148": {
"name": "검은장막 숲 중부삼림",
"fates": {
- "537": "돌아온 거대 화염마수",
"600": "린드부름의 습격",
"601": "무지 즐거운 버섯따기",
"602": "굿'바이",
@@ -1914,9 +2701,7 @@
"140": "대탈주",
"141": "갈반스 감시초소 지원",
"142": "물컹한 대식가",
- "672": "신비한 마물 '골렘'",
- "673": "신비한 마물 '벽돌골렘'",
- "697": "별빛축제: 마법 눈사람",
+ "1325": "별빛축제 '숲의 도둑'",
"707": "광란의 달걀 찾기",
"196": "고대의 투신",
"197": "고대의 투신",
@@ -1947,7 +2732,6 @@
"150": "젊은 두목원숭이",
"151": "줄다리 사투",
"152": "광기 어린 수호자들",
- "679": "검은 악마: 실험 결과",
"680": "검은 악마: 과격한 숙녀",
"691": "기동병사 프로토아머",
"692": "광란의 싸움꾼",
@@ -1984,7 +2768,6 @@
"170": "통행료는 주먹으로 내겠다",
"171": "당장 나가주시죠",
"172": "잃어버린 물건을 찾아서",
- "681": "검은 악마: 실험 결과",
"682": "검은 악마: 과격한 숙녀",
"190": "고독한 골렘",
"708": "광란의 달걀 찾기",
@@ -1998,15 +2781,10 @@
"154": {
"name": "검은장막 숲 북부삼림",
"fates": {
- "538": "돌아온 거대 화염마수",
"631": "벌채부대 요격전",
"632": "유적의 망령기사",
"633": "이크살군 벌채장 강습 작전",
"634": "분노한 숲의 수호자",
- "674": "신비한 마물 '골렘'",
- "675": "신비한 마물 '벽돌골렘'",
- "676": "신비한 마물 '골렘'",
- "677": "신비한 마물 '황금골렘'",
"174": "오합지졸",
"178": "붉은 왕이 될 유충",
"179": "가을박 마을 지킴이",
@@ -2014,24 +2792,18 @@
"183": "혼란탈출",
"184": "너도나도 좋아하는 문투이 콩",
"185": "매혹적인 향기",
- "698": "별빛축제: 마법 눈사람",
"187": "이크살족 강습부대 요격",
"188": "굶주린 지즈가 원하는 것",
"189": "오리나무 샘 청소",
"205": "고대의 투신",
"206": "고대의 투신",
"207": "고대의 투신",
- "722": "거대 알 사냥",
"216": "달의 반역자"
}
},
"155": {
"name": "커르다스 중앙고지",
"fates": {
- "653": "섬광 강림: 기계 마수 토벌전",
- "654": "섬광 강림: 기계 마수 토벌전",
- "699": "별빛축제: 마법 눈사람",
- "709": "현자의 알",
"460": "늑대들의 전쟁",
"463": "검은 탄환",
"464": "강가의 복수자",
@@ -2087,11 +2859,7 @@
"526": "하팔릿의 남하",
"527": "마수의 야습",
"529": "여행길의 좋은 친구",
- "530": "달콤한 유혹",
- "655": "섬광 강림: 아누비스 섬멸전",
- "656": "섬광 강림: 아누비스 섬멸전",
- "657": "섬광 강림: 시룡 토벌전",
- "658": "섬광 강림: 시룡 토벌전"
+ "530": "달콤한 유혹"
}
},
"397": {
@@ -2161,6 +2929,17 @@
"399": {
"name": "저지 드라바니아",
"fates": {
+ "756": "악마의 기계",
+ "757": "보복자들",
+ "758": "전면 개조형 기체",
+ "759": "왕대모벌의 습격",
+ "760": "야성의 충돌",
+ "761": "왕눈이 마물 소",
+ "762": "도서관 청소",
+ "763": "꽃가루 전선 이상 있다",
+ "764": "피 빠는 부유초",
+ "766": "고브고브 전쟁",
+ "767": "숙련된 전투 지휘관",
"768": "꼬리를 세워라!",
"769": "야수의 가장",
"770": "서방 전격전",
@@ -2178,18 +2957,7 @@
"783": "주인을 기다리는 자",
"784": "물고기 포식자",
"785": "누에굴",
- "786": "실 뽑는 전문가",
- "756": "악마의 기계",
- "757": "보복자들",
- "758": "전면 개조형 기체",
- "759": "왕대모벌의 습격",
- "760": "야성의 충돌",
- "761": "왕눈이 마물 소",
- "762": "도서관 청소",
- "763": "꽃가루 전선 이상 있다",
- "764": "피 빠는 부유초",
- "766": "고브고브 전쟁",
- "767": "숙련된 전투 지휘관"
+ "786": "실 뽑는 전문가"
}
},
"400": {
@@ -2284,6 +3052,626 @@
"900": "상급 알라그 사용자",
"901": "꿈꾸는 무인기"
}
+ },
+ "351": {
+ "name": "디아뎀",
+ "fates": {
+ "964": "무모한 탐사",
+ "976": "무모한 탐사",
+ "979": "무모한 탐사",
+ "1034": "무모한 탐사",
+ "1062": "무모한 탐사",
+ "1085": "무모한 탐사",
+ "985": "방사성 샤드 회수",
+ "986": "방사성 샤드 회수",
+ "987": "방사성 샤드 회수",
+ "988": "방사성 샤드 회수",
+ "989": "방사성 샤드 회수",
+ "990": "방사성 샤드 회수",
+ "991": "방사성 샤드 회수",
+ "992": "방사성 샤드 회수",
+ "993": "방사성 샤드 회수",
+ "994": "방사성 샤드 회수",
+ "995": "방사성 샤드 회수",
+ "996": "방사성 샤드 회수",
+ "999": "방사성 샤드 회수",
+ "1000": "방사성 샤드 회수",
+ "1001": "방사성 샤드 회수",
+ "1002": "방사성 샤드 회수",
+ "1003": "방사성 샤드 회수",
+ "1004": "방사성 샤드 회수",
+ "963": "방사성 샤드의 악영향",
+ "965": "방사성 샤드의 악영향",
+ "969": "방사성 샤드의 악영향",
+ "973": "방사성 샤드의 악영향",
+ "978": "방사성 샤드의 악영향",
+ "983": "방사성 샤드의 악영향",
+ "984": "방사성 샤드의 악영향",
+ "997": "방사성 샤드의 악영향",
+ "1009": "방사성 샤드의 악영향",
+ "1023": "방사성 샤드의 악영향",
+ "1036": "방사성 샤드의 악영향",
+ "1040": "방사성 샤드의 악영향",
+ "1044": "방사성 샤드의 악영향",
+ "1045": "방사성 샤드의 악영향",
+ "1046": "방사성 샤드의 악영향",
+ "1049": "방사성 샤드의 악영향",
+ "1051": "방사성 샤드의 악영향",
+ "1055": "방사성 샤드의 악영향",
+ "1060": "방사성 샤드의 악영향",
+ "1061": "방사성 샤드의 악영향",
+ "1069": "방사성 샤드의 악영향",
+ "1075": "방사성 샤드의 악영향",
+ "1077": "방사성 샤드의 악영향",
+ "1078": "방사성 샤드의 악영향",
+ "1081": "방사성 샤드의 악영향",
+ "1083": "방사성 샤드의 악영향",
+ "1086": "방사성 샤드의 악영향",
+ "1089": "방사성 샤드의 악영향",
+ "1090": "방사성 샤드의 악영향",
+ "1005": "죽음의 꽃을 피워라",
+ "1006": "죽음의 꽃을 피워라",
+ "1007": "죽음의 꽃을 피워라",
+ "1072": "죽음의 꽃을 피워라",
+ "980": "무지개를 마시는 새",
+ "981": "무지개를 마시는 새",
+ "982": "무지개를 마시는 새",
+ "1016": "복수의 원숭이 왕",
+ "1017": "복수의 원숭이 왕",
+ "1018": "복수의 원숭이 왕",
+ "998": "몽유병 장로",
+ "1098": "몽유병 장로",
+ "1073": "고고한 검치호랑이",
+ "1091": "비명마저 삼키다",
+ "1092": "비명마저 삼키다",
+ "1093": "비명마저 삼키다",
+ "1020": "먹기 전에 죽인다",
+ "1021": "먹기 전에 죽인다",
+ "1022": "먹기 전에 죽인다",
+ "966": "구름바다 철새",
+ "967": "구름바다 철새",
+ "968": "별을 품은 고대 야수",
+ "970": "아기공룡 전설",
+ "971": "은비늘 구름바다뱀",
+ "972": "석화 밤바람",
+ "974": "사냥꾼의 밤",
+ "975": "사냥꾼의 밤",
+ "977": "구름바다에서 가장 큰 식충",
+ "1008": "어느 하늘도적의 수난",
+ "1010": "벌레가 끓다",
+ "1011": "한밤의 기간토피테쿠스",
+ "1012": "한밤의 기간토피테쿠스",
+ "1013": "비열한 투사",
+ "1014": "비열한 투사",
+ "1015": "어느 하늘도적의 수난",
+ "1019": "잃어버린 구름바다",
+ "1024": "북해의 납치범",
+ "1025": "구름바다의 격추왕",
+ "1026": "구름바다의 격추왕",
+ "1027": "해파리 충돌",
+ "1028": "해파리 충돌",
+ "1029": "해파리 충돌",
+ "1030": "해파리 충돌",
+ "1031": "피어오르는 구름처럼",
+ "1032": "피어오르는 구름처럼",
+ "1033": "피어오르는 구름처럼",
+ "1035": "고대의 거대 야수",
+ "1037": "마안의 빛",
+ "1038": "황제냐 왕이냐",
+ "1039": "황제냐 왕이냐",
+ "1041": "특별히 고약한 냄새",
+ "1042": "탈취제가 필요해",
+ "1043": "탈취제가 필요해",
+ "1047": "채찍과 채찍",
+ "1048": "채찍과 채찍",
+ "1050": "날개를 달고",
+ "1052": "가지도 많고 뿌리도 깊은 나무",
+ "1053": "가지도 많고 뿌리도 깊은 나무",
+ "1054": "가지도 많고 뿌리도 깊은 나무",
+ "1056": "터주를 초월한 자",
+ "1057": "번식 방해",
+ "1058": "야생의 사냥",
+ "1059": "야생의 사냥",
+ "1063": "알 까기 좋은 날",
+ "1064": "알 까기 좋은 날",
+ "1065": "알 까기 좋은 날",
+ "1066": "알 까기 좋은 날",
+ "1067": "거미전갈의 결혼식",
+ "1068": "어느 하늘도적의 수난",
+ "1070": "거미전갈의 총각 파티",
+ "1071": "거미전갈의 총각 파티",
+ "1074": "편식하는 지하왕",
+ "1076": "나는 비공정도 떨어뜨릴 기세",
+ "1079": "디아뎀의 숲",
+ "1080": "디아뎀의 숲",
+ "1082": "잃어버린 구름바다",
+ "1084": "떠오르는 고뇌",
+ "1087": "창공의 사누와",
+ "1088": "짙푸른 불행",
+ "1094": "미식가 흉조",
+ "1095": "날개를 주세요",
+ "1096": "날개를 주세요",
+ "1097": "날개를 주세요",
+ "1099": "탈취제가 필요해",
+ "1100": "벌레가 끓다"
+ }
+ },
+ "411": {
+ "name": "기라바니아 변방지대",
+ "fates": {
+ "1112": "동맹군 훈련소: 병사편",
+ "1113": "동맹군 훈련소: 하사편",
+ "1114": "동맹군 훈련소: 장교편",
+ "1115": "악어, 악어, 악어 떼다!",
+ "1116": "곰과 함께 춤을",
+ "1117": "사프리아의 아이들",
+ "1118": "혼합림의 커다란 곰",
+ "1119": "비극의 돌연변이",
+ "1120": "변방 경비",
+ "1121": "변방 경비 외전",
+ "1122": "다음 바위에 계속",
+ "1124": "초코보가 아니야",
+ "1125": "잠자리는 무겁게 짓누른다",
+ "1126": "실은 이끼 출신",
+ "1127": "밀서는 전해져야 한다",
+ "1128": "그레이트!",
+ "1129": "나무인간 장로",
+ "1130": "거대 식인 거미",
+ "1131": "개미귀신은 안 물어요",
+ "1132": "뿔이 큰 탈주 병사",
+ "1133": "신석기시대",
+ "1134": "빼앗긴 자들",
+ "1135": "폭주하는 거대 코끼리",
+ "1136": "피를 나눈 자매",
+ "1137": "백은색 유괴범",
+ "1138": "비늘을 가르는 발톱",
+ "1139": "태양의 딸",
+ "1140": "들개",
+ "1141": "높은 마을의 여자"
+ }
+ },
+ "412": {
+ "name": "기라바니아 산악지대",
+ "fates": {
+ "1173": "완전 채식주의",
+ "1174": "채식요리",
+ "1175": "배고픈 사기꾼",
+ "1176": "집으로 가는 길",
+ "1177": "피의 수확",
+ "1178": "농민의 악몽",
+ "1179": "피의 음악",
+ "1180": "큰메뚜기의 이민",
+ "1181": "말 없는 나무꾼",
+ "1182": "나비의 왕비",
+ "1184": "알라가나 방위선",
+ "1185": "전설적인 돌팔이 의사",
+ "1186": "그리핀 이야기",
+ "1187": "나비의 꿈",
+ "1188": "흉악한 주사위",
+ "1189": "고문관의 그림자",
+ "1190": "고원 악마 벌레",
+ "1191": "부정한 짐승",
+ "1193": "에루카 탐색대의 대모험",
+ "1194": "굵은팔 습격자",
+ "1195": "해충 박멸",
+ "1196": "피로부터 생을 얻노라",
+ "1197": "폭풍의 원흉",
+ "1198": "집행관의 핏줄",
+ "1199": "바람과 함께 나타나다",
+ "1200": "우아한 방화범",
+ "1201": "용감한 큰메뚜기",
+ "1202": "복수심에 불타는 홀아비",
+ "1203": "퇴마사",
+ "1204": "행운의 대식가",
+ "1205": "자씨족 전사",
+ "1207": "폭주하는 최종병기"
+ }
+ },
+ "413": {
+ "name": "기라바니아 호반지대",
+ "fates": {
+ "1103": "전설의 뇌마",
+ "1104": "전설의 뇌마",
+ "1105": "전설의 뇌마",
+ "1272": "로흐 셀 호숫가의 전투",
+ "1273": "비키지 않는 거대 두꺼비",
+ "1274": "비련의 처녀",
+ "1275": "시끄러운 아바돈",
+ "1276": "죽음의 향기",
+ "1277": "하얗고 큰 얼굴",
+ "1278": "인기 없는 괴물",
+ "1279": "공허한 노목",
+ "1280": "떨어져 나온 바위 야수",
+ "1281": "번갯불의 마물 소",
+ "1282": "단두대로의 초대",
+ "1283": "지나간 나날의 바람",
+ "1284": "죽을 병을 옮기는 자",
+ "1285": "죽음을 고하는 하얀 벌레",
+ "1286": "광기 어린 광석 벌레",
+ "1287": "축축한 물고기",
+ "1288": "죽은 자는 말이 없다",
+ "1289": "소금의 연인",
+ "1290": "새하얀 쇠집게",
+ "1291": "낭카 이동 시대",
+ "1292": "하얀 침략자",
+ "1293": "꽃가루 전쟁",
+ "1294": "풀의 여왕",
+ "1295": "염호의 쇠톱",
+ "1296": "미노타우로스의 접시",
+ "1297": "근위대",
+ "1298": "나비 효과",
+ "1299": "지반이 무너져도 솟아날 구멍이 있다",
+ "1300": "약용 거머리",
+ "1301": "움직이는 진원지",
+ "1302": "산",
+ "1303": "안셀롯의 한탄",
+ "1304": "안셀롯의 두려움",
+ "1305": "안셀롯의 소원"
+ }
+ },
+ "421": {
+ "name": "홍옥해",
+ "fates": {
+ "1142": "귀신물범의 심부름꾼",
+ "1143": "매혹적인 유실물",
+ "1144": "불길한 괴조",
+ "1145": "어촌의 위협",
+ "1146": "푸른 홍옥",
+ "1147": "패배한 투구게",
+ "1148": "화염을 두른 자",
+ "1149": "붉은 산호초",
+ "1150": "붉은등의 침입",
+ "1151": "바다에서 온 침략 생물",
+ "1152": "붉은등의 날뛰는 연",
+ "1153": "비행 상어 공주",
+ "1154": "화를 부르는 새",
+ "1155": "해변에서 바늘 찾기",
+ "1156": "붉은등 바다를 건너다",
+ "1157": "꿈의 언덕",
+ "1158": "북풍의 등에서",
+ "1159": "무례한 귀신물범",
+ "1160": "그래도 수라의 길을 걷는 너",
+ "1161": "격류의 거북이 닌자",
+ "1162": "붉은등의 보물",
+ "1163": "모르는 게 약",
+ "1164": "하늘 상어",
+ "1165": "부도덕한 승려",
+ "1166": "도둑 귀신물범",
+ "1167": "병법 수행",
+ "1168": "붉은등 역날베기",
+ "1170": "투구 깨기",
+ "1171": "바다의 귀부인",
+ "1172": "꿈꾸는 장군"
+ }
+ },
+ "422": {
+ "name": "얀샤",
+ "fates": {
+ "1106": "아홉 꼬리 여우 요괴",
+ "1107": "아홉 꼬리 여우 요괴",
+ "1108": "아홉 꼬리 여우 요괴",
+ "1109": "그 이름은 미쿠즈메",
+ "1110": "킨코의 소원",
+ "1111": "긴코의 소원",
+ "1208": "교군의 불행",
+ "1209": "교군의 비운",
+ "1210": "마비된 격정",
+ "1211": "인랑: 붉은 발자국",
+ "1212": "인랑: 강철의 사냥개",
+ "1213": "붉은등 칼 사냥꾼",
+ "1214": "붉은뿔부리 흉조 사냥",
+ "1215": "메기를 노리는 뱀",
+ "1216": "소름끼치는 비산혈",
+ "1217": "음식 사냥꾼",
+ "1218": "마구잡이",
+ "1219": "호랑이 요람",
+ "1220": "괴이한 벌레",
+ "1221": "장수하지 못하리라",
+ "1222": "원숭이 대군단",
+ "1223": "긴팔이 아저씨",
+ "1224": "논메기 모내기",
+ "1225": "붉은뿔부리 알은 누구의 것",
+ "1226": "전원의 도깨비불",
+ "1227": "붉은 배우",
+ "1228": "오염된 물의 정령",
+ "1229": "검푸른 요마견",
+ "1230": "해를 삼키는 새",
+ "1231": "발광하는 허수아비",
+ "1232": "나마즈오 어쩌지",
+ "1233": "인랑족 타락무사",
+ "1234": "열사전",
+ "1235": "목욕탕을 지켜줘!",
+ "1236": "머리 큰 폭군",
+ "1237": "정정한 호랑이",
+ "1238": "반역자 거병",
+ "1239": "요마견 전설",
+ "1240": "음양사: 키요후사",
+ "1241": "음양사: 코자"
+ }
+ },
+ "423": {
+ "name": "아짐 대초원",
+ "fates": {
+ "1242": "사냥꾼을 사냥하는 자",
+ "1243": "재회를 방해하는 자",
+ "1244": "북부의 여장부",
+ "1245": "밀렵꾼들",
+ "1246": "너른 하늘의 유괴범",
+ "1247": "울부짖는 야인",
+ "1248": "김매기 달인",
+ "1249": "윙윙윙",
+ "1250": "조용한 제재",
+ "1251": "매머드와 살려면",
+ "1252": "초원의 붉은 번개",
+ "1253": "새",
+ "1254": "다산의 여왕",
+ "1255": "때로는 참회를",
+ "1256": "냄새가 풀풀",
+ "1257": "굶주린 뿌리인간",
+ "1258": "대초원의 괴물",
+ "1259": "돌인간 영웅",
+ "1260": "거북이가 아우라한테 한 말",
+ "1261": "귀갓길에 오른 소몰이꾼 소녀",
+ "1262": "붉은 사막",
+ "1263": "야수 사냥",
+ "1264": "잔혹한 패자",
+ "1265": "다가오는 악취",
+ "1266": "불놀이야",
+ "1267": "긴엄니 압살자",
+ "1268": "우아한 잡초의 반항",
+ "1269": "순간의 악몽",
+ "1270": "되살아나는 악몽",
+ "1271": "패도로 귀환한 자",
+ "1306": "다타크족의 여행: 윙윙잠자리 조우",
+ "1307": "다타크족의 여행: 거단 습격 ",
+ "1308": "다타크족의 여행: 양젖 짜기",
+ "1309": "다타크족의 여행: 긴털들소 사냥",
+ "1310": "다타크족의 여행: 거단 재습격",
+ "1311": "다타크족의 여행: 우군드 강습",
+ "1312": "다타크족의 여행: 사냥꾼 구출",
+ "1313": "다타크족의 여행: 굴로굴로 토벌",
+ "1315": "다타크족의 여행: 마탕가 강습",
+ "1316": "다타크족의 여행: 마탕가 조우",
+ "1318": "다타크족의 여행: 고로족 구출",
+ "1319": "다타크족의 여행: 마탕가 역습",
+ "1320": "다타크족의 여행: 대왕 출진"
+ }
+ },
+ "999": {
+ "name": "에우레카 아네모스",
+ "fates": {
+ "1328": "질풍의 황제",
+ "1329": "폭풍의 마왕",
+ "1331": "광란의 암룡",
+ "1332": "춤추는 선인장",
+ "1333": "마지막 미성",
+ "1334": "탐식하는 자",
+ "1335": "수각류 괴인",
+ "1336": "썩은내 현자",
+ "1337": "이름 높은 거인",
+ "1338": "마의 왕비",
+ "1339": "환상의 전갈 마물",
+ "1340": "이계의 마견",
+ "1341": "불타는 대왕",
+ "1342": "분노한 괴조",
+ "1343": "승리의 기사",
+ "1344": "꿈틀거리는 사체",
+ "1345": "강풍의 요정",
+ "1346": "씨뿌리기",
+ "1347": "주인 잃은 인형",
+ "1348": "거대 문어의 왕"
+ }
+ },
+ "998": {
+ "name": "에우레카 파고스",
+ "fates": {
+ "1351": "하얀 지배자",
+ "1352": "가축의 어머니",
+ "1353": "잿빛 비늘왕",
+ "1354": "지각 변동의 수수께끼",
+ "1355": "해빙의 화신",
+ "1356": "단단한 병마",
+ "1357": "움직이는 눈 동굴",
+ "1358": "순망치한",
+ "1359": "태양의 사자",
+ "1360": "원탁의 안개왕",
+ "1361": "야생 소의 구세주",
+ "1362": "번개구름의 마수",
+ "1363": "암안왕",
+ "1364": "푸른 얼음 칼날",
+ "1365": "모방범",
+ "1366": "오행안의 주인",
+ "1367": "눈 위의 행운토끼",
+ "1368": "보석을 노리는 행운토끼",
+ "1369": "부패한 독서가"
+ }
+ },
+ "997": {
+ "name": "에우레카 피로스",
+ "fates": {
+ "1388": "하얀 외침",
+ "1389": "사나운 번개야수",
+ "1390": "요마 변론가",
+ "1391": "공포의 인형",
+ "1392": "책의 수호자",
+ "1393": "심연의 대공",
+ "1394": "번개의 지휘자",
+ "1395": "작열하는 검",
+ "1396": "염열의 거인",
+ "1397": "눈물 흘리는 갈매기",
+ "1398": "기적의 생환자",
+ "1399": "전광의 사령관",
+ "1400": "럼버잭 사투",
+ "1401": "지혜와 전쟁의 어머니",
+ "1402": "전혀 다른 쌍둥이",
+ "1403": "비웃는 달의 늑대",
+ "1404": "불나비 여왕",
+ "1407": "산호를 노리는 행운토끼",
+ "1408": "바위에 갇힌 행운토끼"
+ }
+ },
+ "1004": {
+ "name": "에우레카 히다토스",
+ "fates": {
+ "1412": "기괴한 오징어",
+ "1413": "포악한 마수",
+ "1414": "눈물 흘리는 군주",
+ "1415": "화려한 괴조",
+ "1416": "고고한 사냥꾼",
+ "1417": "피에 젖은 요비",
+ "1418": "이계의 대장장이 왕",
+ "1419": "식요식물",
+ "1420": "업화의 사자왕",
+ "1421": "뱀의 여왕",
+ "1422": "발데시온 무기고 조사 지원",
+ "1423": "수정룡",
+ "1424": "미지의 위협",
+ "1425": "물놀이하는 행운토끼"
+ }
+ },
+ "501": {
+ "name": "레이크랜드",
+ "fates": {
+ "1496": "자엽단과의 싸움: 거점 준비",
+ "1497": "자엽단과의 싸움: 거점 구축",
+ "1498": "선혈의 가짜 용",
+ "1499": "늑대는 울지 않는다",
+ "1500": "나무꾼의 노래",
+ "1501": "자엽단과의 싸움: 나무꾼 습격",
+ "1502": "자엽단과의 싸움: 비겁한 함정",
+ "1503": "자엽단과의 싸움: 일제 봉기",
+ "1504": "자엽단과의 싸움: 바르그 참전",
+ "1505": "이 더러운 피!",
+ "1506": "저건 설마 그렘린?",
+ "1507": "고귀한 늑대인간",
+ "1508": "공포의 작은 문",
+ "1509": "바람꽃",
+ "1510": "격분한 거물"
+ }
+ },
+ "502": {
+ "name": "콜루시아 섬",
+ "fates": {
+ "1462": "어마무시한 격투: 다가오는 위협",
+ "1463": "어마무시한 격투: 새로운 정보",
+ "1464": "어마무시한 격투: 비장의 수단",
+ "1465": "멈춘 물결을 뒤덮은 그림자",
+ "1466": "멈춘 물결을 뒤덮은 그림자",
+ "1467": "직공 마을을 뒤덮은 그림자",
+ "1468": "직공 마을을 뒤덮은 그림자",
+ "1469": "뜸부기의 보릿고개",
+ "1470": "죽어라 해파리",
+ "1471": "병아리 유치원",
+ "1472": "집게발 격투가",
+ "1473": "똑똑똑",
+ "1474": "불협화음",
+ "1475": "정다움 마을을 뒤덮은 그림자",
+ "1476": "격진하는 거대 지렁이",
+ "1477": "제작 전사들: 자동인형 제작",
+ "1478": "제작 전사들: 시제품 실전 시험",
+ "1479": "제작 전사들: 몰수 시합"
+ }
+ },
+ "503": {
+ "name": "아므 아렝",
+ "fates": {
+ "1511": "줍는 자들: 가위턱의 덫",
+ "1512": "줍는 자들: 시뮌의 등뼈",
+ "1513": "줍는 자들: 엽단선텐더",
+ "1514": "줍는 자들: 넝마주이의 천적",
+ "1515": "찾는 자들: 강도 조우",
+ "1516": "찾는 자들: 강도 역습",
+ "1517": "찾는 자들: 유적 탐색",
+ "1518": "찾는 자들: 대장로의 검",
+ "1519": "꽃피우는 선인장",
+ "1520": "사막의 수렁",
+ "1521": "톨바 No. 1",
+ "1522": "모래비늘 여왕",
+ "1523": "이구아나의 밤",
+ "1524": "폭주하는 긴다리",
+ "1525": "이종의 동료",
+ "1526": "폭발!",
+ "1527": "황야의 춤꾼"
+ }
+ },
+ "504": {
+ "name": "일 메그",
+ "fates": {
+ "1480": "악동 다엔 형제: 표적은 픽시!",
+ "1481": "악동 다엔 형제: 표적은 아마로!",
+ "1482": "악동 다엔 형제: 표적은 응 모우!",
+ "1483": "악동 다엔 형제: 환혹된 마가목",
+ "1484": "악동 다엔 형제: 결투할 때",
+ "1485": "악동 다엔 형제: 다시 싸울 때",
+ "1486": "악동 다엔 형제: 비장의 수단",
+ "1487": "악동 다엔 형제: 마지막 승부",
+ "1488": "뿌리를 끊는 자",
+ "1489": "힘내라, 장미곰",
+ "1490": "바구니 꽃바구니",
+ "1491": "꿀 빠는 죽음나방",
+ "1492": "픽시 이야기: 황금색 꽃꿀",
+ "1493": "친구여 영원하라",
+ "1494": "픽시 이야기: 요정의 천적",
+ "1495": "픽시 이야기: 마물 포위망",
+ "1531": "악동 다엔 형제: 표적은 아마로!",
+ "1532": "악동 다엔 형제: 표적은 응 모우!",
+ "1533": "악동 다엔 형제: 환혹된 마가목"
+ }
+ },
+ "505": {
+ "name": "라케티카 대우림",
+ "fates": {
+ "1441": "먀르나의 순찰: 병균의 메아리",
+ "1442": "먀르나의 순찰: 병의 근원 누에",
+ "1443": "먀르나의 순찰: 화살 보충",
+ "1444": "먀르나의 순찰: 고대 수호자의 호위",
+ "1445": "먀르나의 수렵: 토힐 발견",
+ "1446": "먀르나의 수렵: 토힐 추격",
+ "1447": "먀르나의 수렵: 토힐 추격",
+ "1448": "먀르나의 수렵: 토힐 맹추격",
+ "1449": "먀르나의 수렵: 토힐 맹추격",
+ "1450": "먀르나의 수렵: 토힐 토벌",
+ "1528": "먀르나의 수렵: 토힐 맹추격",
+ "1529": "먀르나의 수렵: 토힐 맹추격",
+ "1530": "먀르나의 수렵: 토힐 토벌",
+ "1451": "타지 않는 괴물 나무",
+ "1452": "거미!",
+ "1453": "분홍학",
+ "1454": "랍토르의 주방",
+ "1455": "사랑과 죽음",
+ "1456": "살인마 토마틀의 습격",
+ "1457": "죽음의 육지새",
+ "1458": "본능이 눈을 뜨다",
+ "1459": "전설이 태어나다",
+ "1460": "키르메와 사르메",
+ "1461": "불의 신의 눈",
+ }
+ },
+ "506": {
+ "name": "템페스트",
+ "fates": {
+ "1426": "재앙의 아르케오타니아: 추적 개시",
+ "1427": "재앙의 아르케오타니아: 즈무쉬 등장",
+ "1428": "재앙의 아르케오타니아: 테우쉬 보호",
+ "1429": "재앙의 아르케오타니아: 테우쉬 호위",
+ "1430": "재앙의 아르케오타니아: 홍혈 산호 수집",
+ "1431": "재앙의 아르케오타니아: 결전 준비",
+ "1432": "재앙의 아르케오타니아: 심해 토벌전",
+ "1433": "심해의 미녀",
+ "1434": "조개의 제왕",
+ "1435": "진주는 영원히",
+ "1436": "해저 2만 마리",
+ "1437": "단바니아 가족",
+ "1438": "흑풍해산 히드라충류",
+ "1439": "제비의 각성",
+ "1440": "온도, 줄인다, 새우"
+ }
+ },
+ "1005": {
+ "name": "이벤트",
+ "fates": {
+
+ }
}
}
-}
+}
\ No newline at end of file
diff --git a/App/Resources/FFXIV_FATE_Start.wav b/App/Resources/FFXIV_FATE_Start.wav
new file mode 100644
index 0000000..caf7f2a
Binary files /dev/null and b/App/Resources/FFXIV_FATE_Start.wav differ
diff --git a/App/Resources/Localization/de-de.json b/App/Resources/Localization/de-de.json
new file mode 100644
index 0000000..1f6919f
--- /dev/null
+++ b/App/Resources/Localization/de-de.json
@@ -0,0 +1,206 @@
+{
+ "app-name": "Duty/FATE-Assistent",
+
+
+ "unknown-instance": "Unbekannter Inhalt ({0})",
+ "unknown-roulette": "Unbekannter Zufallsinhalt ({0})",
+ "unknown-area": "Unbekannter Bereich ({0})",
+ "unknown-fate": "Unbekanntes FATE ({0})",
+
+
+ "notification-app-updated": "Auf Version {0} aktualisiert",
+ "notification-queue-matched": "Gruppe für < {0} > gefunden!",
+ "notification-fate-occured": "FATE < {0} > erschienen!",
+
+
+ "fate-occured": "< {0} > FATE erschienen!",
+ "queue-matched": "< {0} > Gruppe gefunden!",
+
+
+ "fate-preset-animus-SkyfireI": "Tafel des Himmelsfeuers I",
+ "fate-preset-animus-SkyfireII": "Tafel des Himmelsfeuers II",
+ "fate-preset-animus-NetherfireI": "Tafel des Jenseitsfeuers I",
+ "fate-preset-animus-SkyfallI": "Tafel des Himmelsfalles I",
+ "fate-preset-animus-SkyfallII": "Tafel des Himmelsfalles II",
+ "fate-preset-animus-NetherfallI": "Tafel des Jenseitfalles I",
+ "fate-preset-animus-SkywindI": "Tafel des Himmelswindes I",
+ "fate-preset-animus-SkywindII": "Tafel des Himmelswindes II",
+ "fate-preset-animus-SkyearthI": "Tafel der Himmelserde I",
+ "fate-preset-Ixion": "Ixion (Das Fenn)",
+ "fate-preset-Tamamo": "Tamamo (Yanxia)",
+ "fate-preset-frogMount": "Eisenfrosch-Mount (Kholusia)",
+ "fate-preset-frogSuit": "Froschanzug (Tempest)",
+
+
+ "ui-notifymenustrip-open": "Öffnen",
+ "ui-notifymenustrip-close": "Beenden",
+
+ "ui-topsetting-process": "FFXIV-Prozess-ID",
+ "ui-topsetting-select": "Manuell",
+ "ui-topsetting-reset": "Reset",
+
+ "ui-tabcontrol-settings": "Einstellungen",
+ "ui-tabcontrol-3rdparty": "Mitteilungen",
+ "ui-tabcontrol-advanced": "Fortgeschritten",
+ "ui-tabcontrol-fate": "FATEs",
+ "ui-tabcontrol-logs": "Protokoll",
+ "ui-tabcontrol-info": "Informationen",
+
+ "ui-settings-title": "Grundlegende Einstellungen",
+ "ui-settings-overlay-use": "Zeige Overlay",
+ "ui-settings-overlay-tooltip": "Bewege das Overlay, indem du den farbigen Balken auf der linken Seite ziehst",
+ "ui-settings-overlay-reset": "Reset",
+ "ui-settings-overlay-autohide": "Zeige Overlay nur in Warteschlange/bei Erscheinen eines FATEs",
+ "ui-notification-overlay-autohide": "Diese Einstellung wird erst angewendet, nachdem sich der Status der Warteschlange ändert oder ein neues FATE erscheint.\nNach einem Neustart wird diese Einstellung direkt angewendet.\n\nWährend auf eine Client-Verbindung gewartet wird, wird das Overlay angezeigt.\n(Damit kannst du prüfen, ob das Programm korrekt ausgeführt wird.)",
+ "ui-settings-startupshow": "Öffne Fenster bei Programmstart",
+ "ui-settings-iconflash": "FFXIV-Icon blinkt, wenn Gruppe gefunden wird/FATE erscheint",
+ "ui-settings-cheatroulette": "Zeige den tatsächlichen Inhalt bei einem Zufallsinhalt",
+ "ui-settings-copymacro": "Kopiere Makro für Inhalt automatisch, sobald Gruppe gefunden wurde",
+ "ui-settings-copymacro-dialog-title": "DFA-Makro kopieren",
+ "ui-settings-copymacro-dialog-text": "<{0}>-Makro in die Zwischenablage kopieren?",
+ "ui-settings-usevpn": "Lokale Netzwerkverbindung nicht filtern (VPN, etc.)",
+ "ui-settings-usevpn-alert": "Normalerweise musst du diese Option deaktivieren, um Netzwerk-Pakete zu erfassen.",
+ "ui-settings-fatesound": "Aktiviere FATE-Benachrichtigungston\n(deaktiviert benutzerdefinierten Ton)",
+ "ui-settings-customsound": "Benutzerdefinierter Benachrichtigungston",
+ "ui-settings-getsoundfile": "Datei auswählen",
+ "ui-settings-getfilewav": "WAV-Dateien (*.wav)|*.wav",
+ "ui-notification-customsound-selectfile": "Wähle zuerst eine Sound-Datei aus.",
+ "ui-link-localization": "Teilnahme an der Lokalisierung der DFAssist",
+
+ "ui-3rdparty-telegram-title": "Telegram-Mitteilung",
+ "ui-3rdparty-telegram-activate": "Aktivieren",
+ "ui-3rdparty-telegram-queuestatus": "Warteschlangenstatus senden",
+ "ui-3rdparty-telegram-about": "Sobald eine Gruppe gefunden wird oder ein FATE erscheint, wird eine Nachricht an diesen Telegram-Chat gesendet.\nDu erhältst deine Chat-ID, indem du eine Nachricht an den DFAssist Telegram-Bot sendest.",
+ "ui-3rdparty-discord-title": "Discord-Mitteilung",
+ "ui-3rdparty-discord-activate": "Aktivieren",
+ "ui-3rdparty-discord-numberonly-alert": "Die Discord-ID besteht ausschließlich aus Zahlen.",
+ "ui-3rdparty-discord-about": "Benachrichtigung per Discord-Nachricht, die die obige Discord-ID erwähnt.\nBitte gib deine 15-stellige Discord-ID an.\n\nDiscord-ID bekommen: Sende !id command im #get-discord-id Kanal des DFAssist Discord-Servers. Der DFAssist Bot antwortet mit deiner Discord-ID.\nUm Mitteilungen zu erhalten, musst du im DFAssist Discord-Server sein.",
+
+ "ui-advanced-http": "Benutzerdefinierte HTTP-Anfrage",
+ "ui-advanced-http-enable": "Aktivieren",
+ "ui-advanced-http-duty-matched": "Senden, wenn Gruppe für Inhalt gefunden wird",
+ "ui-advanced-http-fate-occured": "Senden, wenn FATE erscheint",
+ "ui-advanced-http-readme": "Wenn aktiviert, sendet DFAssist eine POST HTTP-Anfrage mit \n\"status\" und \"info\" an die angegebene URL.\n\"status\" enthält einen String namens \"duty-match\" oder \"fate-occured\".\n\"info\" enthält den Namen des gefundenen Inhalts oder des erschienenen FATEs.\n\nEs ist geplant, diese Funktion weiter zu verbessern.",
+
+ "ui-debug": "Debug",
+ "ui-debug-log": "Log Debug logs",
+
+ "ui-fate-selectall": "Alle auswählen",
+ "ui-fate-unselectall": "Alle abwählen",
+ "ui-fate-preset": "Voreinstellungen",
+ "ui-fate-apply": "Anwenden",
+ "ui-fate-about": "Wähle, für welche FATEs du benachrichtigt werden willst und klicke \"Anwenden\".\nDu wirst nur benachrichtigt, wenn du dich im Gebiet des FATEs aufhältst.",
+
+ "ui-logs-copy": "Kopiere Protokoll",
+ "ui-logs-clear": "Leeren",
+
+ "ui-info-about": "[Mitwirkende]\n유채색\nLaiglinne\nHibiyasleep\nAlex00728 (Jaehyuk-Lee)\n[Übersetzer] Linco#0322 (Discord)\n[Urheberrechte]\nAlle Firmen-, Produkt- und Systemnamen sind eingetragene oder nicht eingetragene Warenzeichen ihrer jeweiligen Inhaber.\n(C) 2010 - 2019 SQUARE ENIX CO., LTD All Rights Reserved.\nKorea Published by ACTOZ SOFT.",
+
+ "ui-msgbox-title-info": "DFA-Benachrichtigung",
+ "ui-msgbox-title-warning": "DFA-Warnung",
+ "ui-msgbox-title-error": "DFA-Fehler",
+
+ "ui-language-changed": "Sprache zu Deutsch geändert.\nOverlay-Sprache wird erst angewendet, sobald sich der Status der Warteschlange ändert.\nBitte starte die Anwendung neu, um die Änderungen sofort durchzuführen.",
+
+ "ui-clipboard-copied": "In die Zwischenablage kopiert.",
+
+ "ui-cheat-roulette-confirm": "Diese Funktion ist standardmäßig deaktiviert, um Missbrauch zu verhindern.\nBitte unterlasse das absichtliche Zurückziehen von Inhalten, nur weil du sie nicht magst.\n\nMöchtest du sie trotzdem aktivieren?",
+ "ui-cheat-roulette-enabled": "Aktiviert.\nBitte ziehe dich NICHT absichtlich von Inhalten zurück, nur weil du sie nicht magst.",
+
+ "ui-clear-log-confirm": "Protokoll leeren?",
+
+ "ui-fate-selection-saved": "FATE-Benachrichtigung festgelegt.",
+ "ui-fate-preset-applied": "FATE-Voreinstellung angewendet.",
+
+ "ui-updating": "Aktualisiere Programm...\n{0}",
+
+ "ui-app-crashed": "Anwendung aufgrund eines unbekannten Fehlers beendet.\n\nFehler: {0}",
+
+
+ "overlay-waiting-connection": "Warte auf Client-Verbindung",
+ "overlay-not-queuing": "Nicht auf Inhaltssuche",
+ "overlay-duty-count-unknown": "Auf Inhaltssuche",
+ "overlay-duty-count": "Auf Inhaltssuche für {0} Inhalte",
+ "overlay-queue-waiting-party": "Inhaltssuche: {0} / {1} / {2}",
+ "overlay-queue-waiting": "Rufe Informationen ab...",
+ "overlay-queue-order": "#{0} in Warteschlange für Rolle",
+ "overlay-roulette": "Zufallsinhalt",
+ "overlay-queue-waiting-confirm": "Warte auf deine Bestätigung",
+ "overlay-queue-matched": "Gruppe gefunden!",
+ "overlay-queue-confirming": "Warte auf Bestätigung",
+ "overlay-fate-occured": "FATE erschienen!",
+
+
+ "l-process-set-success": "P: FFXIV-Prozess ausgewählt: {0}",
+ "l-process-set-failed": "P: Auswahl des FFXIV-Prozesses fehlgeschlagen.",
+ "l-process-finding": "P: Suche FFXIV-Prozess...",
+ "l-process-found-nothing": "P: FFXIV-Prozess konnte nicht gefunden werden.",
+ "l-process-found-multiple": "P: Zwei oder mehrere FFXIV-Prozesse sind am Laufen.",
+
+ "l-telegram-failed-request": "R: Beim Anfragen einer Telegram-Nachricht ist ein Fehler aufgetreten",
+ "l-telegram-failed-general": "R: Telegram-Nachricht konnte nicht gesendet werden: {0}",
+ "l-telegram-success": "R: Telegram-Nachricht gesendet!",
+ "l-discord-failed-request": "R: Beim Anfragen einer Discord-Nachricht ist ein Fehler aufgetreten",
+ "l-discord-failed-general": "R: Discord-Nachricht konnte nicht gesendet werden: {0}",
+ "l-discord-success": "R: Discord-Nachricht gesendet!",
+
+ "l-web-request-failed": "W: Beim Anfragen des Webservices ist ein Fehler aufgetreten",
+
+ "l-updater-current-version": "U: Aktuelle Version: {0}",
+ "l-updater-latest-version": "U: Neueste Version: {0}",
+ "l-updater-is-latest": "U: Neueste Version wird genutzt",
+ "l-updater-new-version": "U: Aktualisierung verfügbar",
+ "l-updater-error-general": "U: Beim Aktualisieren der Daten ist ein Fehler aufgetreten",
+ "l-updater-error-data": "U: Beim Aktualisieren der Inhalts-/FATE-Daten ist ein Fehler aufgetreten",
+ "l-updater-error-check": "U: Aktualisierungs-Informationen konnten nicht gefunden werden",
+ "l-updater-error-no-url": "U: Aktualisierungsdatei konnte nicht gefunden werden",
+ "l-updater-error-downloading": "U: Bei der Beschaffung von Aktualisierungsdaten ist ein Fehler aufgetreten",
+
+ "l-data-updated": "D: Inhalts-/FATE-Daten auf Version {0} aktualisiert.",
+ "l-data-is-latest": "D: Neueste Inhalts-/FATE-Daten genutzt (Version {0}).",
+ "l-data-error": "D: Bei der Verarbeitung von Inhalts-/FATE-Daten ist ein Fehler aufgetreten",
+
+ "l-packet-error-ip": "P: Fehler beim IP Packet Parsing",
+ "l-packet-error-tcp": "P: Fehler beim TCP Packet Parsing",
+
+ "l-network-started": "N: Auslesen der FFXIV-Netzwerkpakete gestartet",
+ "l-network-starting": "N: Auslesen der FFXIV-Netzwerkpakete starten...",
+ "l-network-stopped": "N: Auslesen der FFXIV-Netzwerkpakete beendet",
+ "l-network-stopping": "N: Auslesen der FFXIV-Netzwerkpakete beenden...",
+ "l-network-error-starting": "N: Starten fehlgeschlagen",
+ "l-network-error-stopping": "N: Beenden fehlgeschlagen",
+ "l-network-error-already-started": "N: Bereits gestartet",
+ "l-network-error-already-stopped": "N: Bereits beendet",
+ "l-network-error-no-connection": "N: FFXIV-Serververbindung konnte nicht gefunden werden",
+ "l-network-error-receiving-packet": "N: Fehler beim Empfangen des Pakets",
+ "l-network-error-filtering-packet": "N: Fehler beim Filtern des Pakets",
+ "l-network-error-finding-lobby": "N: Fehler beim Empfangen von Informationen des Lobby-Servers",
+ "l-network-detected-connection-closing": "N: Unterbrechung der Verbindung zu FFXIV-Servern erkannt",
+ "l-network-detected-connection": "N: Verbindung zu FFXIV-Servern erkannt: {0}",
+
+ "l-firewall-registered": "FW: Registriert",
+ "l-firewall-error": "FW: Fehler bei der Registrierung",
+
+ "l-wav-error": "S: Ungültige wav-Datei.",
+
+ "l-POST-send": "N: POST-Anfrage URL: {0}, Data: {1}",
+ "l-POST-no-response": "S: Keine POST-Antwort!",
+ "l-POST-failed": "S: POST-Anfrage fehlgeschlagen!",
+ "l-POST-response": "S: POST-Antwort: {0}",
+
+ "l-analyze-error-length": "A: Längenfehler beim Analysieren der Nachricht: {0}, {1}/{2}",
+ "l-analyze-error-general": "A: Fehler beim Analysieren der Nachricht",
+ "l-analyze-error": "A: Fehler beim Bearbeiten der Nachricht",
+
+ "l-queue-started-general": "Q: Inhaltssuche für [{0}] gestartet",
+ "l-queue-started-roulette": "Q: Zufallsinhalt-Suche [{0}] gestartet",
+ "l-queue-stopped": "Q: Inhaltssuche angehalten",
+ "l-queue-entered": "Q: Instanz-Gebiet betreten",
+ "l-queue-matched": "Q: Gruppe für [{0}] gefunden",
+ "l-queue-updated": "Q: Suchstatus aktualisiert [{0}, {1}, {2}/{3}, {4}/{5}, {6}/{7}]",
+
+ "l-fate-occured-info": "F: FATE {0} erschienen!",
+
+ "l-field-instance-entered": "I: Instanz-Gebiet [{0}] betreten",
+ "l-field-instance-left": "I: Instanz-Gebiet verlassen"
+}
\ No newline at end of file
diff --git a/App/Resources/Localization/en-us.json b/App/Resources/Localization/en-us.json
index a674dbc..19ab8e3 100644
--- a/App/Resources/Localization/en-us.json
+++ b/App/Resources/Localization/en-us.json
@@ -1,5 +1,5 @@
-{
- "app-name": "Duty/FATE Assist",
+{
+ "app-name": "Duty/FATE Notifier",
"unknown-instance": "Unknown Duty ({0})",
@@ -8,12 +8,13 @@
"unknown-fate": "Unknown FATE ({0})",
- "notification-app-updated": "Updated to version {0}",
- "notification-queue-matched": "< {0} > matched!",
+ "notification-app-updated": "Version {0} Updated",
+ "notification-queue-matched": "< {0} > Matched!",
+ "notification-fate-occured": "< {0} > Occured!",
- "tweet-fate-occured": "< {0} > FATE spawned!",
- "tweet-queue-matched": "< {0} > Duty matched!",
+ "fate-occured": "< {0} > FATE spawned!",
+ "queue-matched": "< {0} > Duty matched!",
"fate-preset-animus-SkyfireI": "Book of Skyfire I",
@@ -25,138 +26,181 @@
"fate-preset-animus-SkywindI": "Book of Skywind I",
"fate-preset-animus-SkywindII": "Book of Skywind II",
"fate-preset-animus-SkyearthI": "Book of Skyearth I",
+ "fate-preset-Ixion": "Ixion (The Lochs)",
+ "fate-preset-Tamamo": "Tamamo (Yanxia)",
+ "fate-preset-frogMount": "Frog Mount (Kholusia)",
+ "fate-preset-frogSuit": "Frog Suit (Tempest)",
-
+
"ui-notifymenustrip-open": "Open",
"ui-notifymenustrip-close": "Exit",
- "ui-topsetting-process": "FFXIV Process",
+ "ui-topsetting-process": "FFXIV process ID",
"ui-topsetting-select": "Manual",
"ui-topsetting-reset": "Reset",
"ui-tabcontrol-settings": "Setting",
+ "ui-tabcontrol-3rdparty": "3rd-party",
+ "ui-tabcontrol-advanced": "Advanced",
"ui-tabcontrol-fate": "FATE",
"ui-tabcontrol-logs": "Logs",
"ui-tabcontrol-info": "Info",
- "ui-settings-title": "Basic Settings",
+ "ui-settings-title": "Basic setting",
"ui-settings-overlay-use": "Use overlay",
- "ui-settings-overlay-tooltip": "Move the overlay by dragging the green bar on the left.",
+ "ui-settings-overlay-tooltip": "Move the overlay by dragging the colored bar on the left",
"ui-settings-overlay-reset": "Reset",
- "ui-settings-overlay-announcement": "Show announcement on overlay",
- "ui-settings-startupshow": "Show main window when program starts",
- "ui-settings-autohide": "Auto-hide overlay while in Duty",
- "ui-settings-iconflash": "Blink FFXIV Icon when a Duty matches/FATE occurs",
- "ui-settings-tweet-title": "Twitter Alarm",
- "ui-settings-tweet-activate": "Enable",
- "ui-settings-playsound": "Play sound",
- "ui-settings-soundlocation": "Select sound",
- "ui-settings-tweet-about": "When a queue pops or FATE occurs, \nsend a Tweet with a mention to the this Twitter account.\nEnter the Twitter Account except the preceding symbol @.",
-
- "ui-fate-selectall": "Select All",
- "ui-fate-unselectall": "Unselect All",
+ "ui-settings-overlay-autohide": "Show overlay only while in queue or FATE occurs",
+ "ui-notification-overlay-autohide": "This option will be appplied after waiting queue state changes or new FATE occurs.\nRestarting the application also make immediate appliance.\n\nWhile waiting for client connection, overlay is shown.\n(To notice user whether application is working well or not.)",
+ "ui-settings-startupshow": "Show window when program starts",
+ "ui-settings-iconflash": "FFXIV icon blinks when duty matched/FATE occurs",
+ "ui-settings-cheatroulette": "Show actual matched duty when using Duty Roulette",
+ "ui-settings-copymacro": "Automatically copy macro from duty data when duty matched",
+ "ui-settings-copymacro-dialog-title": "DFA Copy macro",
+ "ui-settings-copymacro-dialog-text": "Copy <{0}> macro to clipboard?",
+ "ui-settings-usevpn": "don't Filter local network connection (VPN, etc)",
+ "ui-settings-usevpn-alert": "Normally, you have to turn off this option to capture network packet.",
+ "ui-settings-fatesound": "Enable FATE notification sound\n(disables custom sound)",
+ "ui-settings-customsound": "Custom FATE/Duty notification sound",
+ "ui-settings-getsoundfile": "Select file",
+ "ui-settings-getfilewav": "WAV files (*.wav)|*.wav",
+ "ui-notification-customsound-selectfile": "Select sound file first",
+ "ui-link-localization": "Participate DFAssist Localization",
+
+ "ui-3rdparty-telegram-title": "Telegram Alarm",
+ "ui-3rdparty-telegram-activate": "Enable",
+ "ui-3rdparty-telegram-queuestatus": "Send queue status",
+ "ui-3rdparty-telegram-about": "When a queue pops or FATE occurs, send a message to this Telegram chat room.\nYou can get your Chat ID if you send any message to DFAssist Telegram Bot.",
+ "ui-3rdparty-discord-title": "Discord Alarm",
+ "ui-3rdparty-discord-activate": "Enable",
+ "ui-3rdparty-discord-numberonly-alert": "Discord ID is only number accepted.",
+ "ui-3rdparty-discord-about": "Notify via Discord message with a mention to this Discord ID.\nEnter your over 15-digit number Discord ID.\n\nTo check Discord ID: Enter !id command on #get-discord-id channel in DFAssist Discord Server. DFAssist Bot will reply your Discord ID.\nAlso, you should be in the DFAssist Discord Server to get notification.",
+
+ "ui-advanced-http": "Custom HTTP Request",
+ "ui-advanced-http-enable": "Enable",
+ "ui-advanced-http-duty-matched": "Send when Duty Matched",
+ "ui-advanced-http-fate-occured": "Send when Fate Occured",
+ "ui-advanced-http-readme": "When enabled, DFAssist will send a POST HTTP Request with \n\"status\" and \"info\" to the specified URL.\n\"status\"is sent with a string called \"duty-match\" or \"fate-occured\".\n\"info\" is sent with the Matched Duty Name or Occured FATE Name.\n\nThis feature is scheduled to be updated more.",
+
+ "ui-debug": "Debug",
+ "ui-debug-log": "Log Debug logs",
+
+ "ui-fate-selectall": "Select all",
+ "ui-fate-unselectall": "Unselect all",
"ui-fate-preset": "Preset",
"ui-fate-apply": "Apply",
- "ui-fate-about": "Select an area to receive notifications for, then press the Apply button at the top.\nPlease note: The alert will only work if you are in the selected area.",
+ "ui-fate-about": "Select the FATEs you wish to receive notification for, then press the \"Apply\" button.\nAlerts only function when you are in the zone for those FATEs",
"ui-logs-copy": "Copy Logs",
"ui-logs-clear": "Clear",
- "ui-info-about": "[Contributor]\n유채색\nLaiglinne\nHibiyasleep\nAlex00728\nAida Enna\n\n[Copyright]\nAll company, product, system names are\n registered or unregistered trademarks of their respective owners.\n(C)2010 - 2017 SQUARE ENIX CO., LTD All Rights Reserved.\nKorea Published by EYEDENTITY Entertainment.",
+ "ui-info-about": "[Contributor]\n유채색\nLaiglinne\nHibiyasleep\nAlex00728 (Jaehyuk-Lee)\n[Support] : fpdhs698\n[Copyright]\nAll company, product, system names are\n registered or unregistered trademarks of their respective owners.\n(C)2010 - 2019 SQUARE ENIX CO., LTD All Rights Reserved.\nKorea Published by ACTOZ SOFT.",
"ui-msgbox-title-info": "DFA Notice",
- "ui-msgbox-title-warning": "DFA Warning",
- "ui-msgbox-title-error": "DFA Error",
+ "ui-msgbox-title-warning": "DFA warning",
+ "ui-msgbox-title-error": "DFA error",
+
+ "ui-language-changed": "Language changed to English.\nOverlay language will be applied after queue status changes.\nPlease restart the application for it to fully take effect right away.",
- "ui-language-changed": "Language changed to English.\nYou will need to restart the application\nfor certain changes to take effect.\nPlease do so now.",
+ "ui-clipboard-copied": "Copied to clipboard.",
- "ui-clipboard-copied": "Copied to Clipboard.",
+ "ui-cheat-roulette-confirm": "This function is disabled by default to prevent abuse.\nPlease refrain from deliberately withdrawing from a duty just because you dislike it.\n\nDo you still want to enable it?",
+ "ui-cheat-roulette-enabled": "Enabled.\nPlease DON'T deliberately withdraw from duties because you dislike them.",
- "ui-clear-log-confirm": "This will clear all the logging done so far.\nContinue?",
+ "ui-clear-log-confirm": "Clear logs?",
"ui-fate-selection-saved": "FATE notification set.",
"ui-fate-preset-applied": "FATE preset applied.",
"ui-updating": "Updating Program...\n{0}",
- "ui-app-crashed": "Application exiting due to an unknown issue.\n\nError: {0}",
+ "ui-app-crashed": "Application exited due to unknown issue.\n\nError: {0}",
- "overlay-announcement": "",
- "overlay-waiting-connection": "Waiting for game connection",
- "overlay-not-queuing": "No matching in progress",
- "overlay-duty-count-unknown": "Matching Duty",
+ "overlay-waiting-connection": "Waiting for client connection",
+ "overlay-not-queuing": "Not currently queued for duty",
+ "overlay-duty-count-unknown": "Matching duty",
"overlay-duty-count": "{0} Duty Matching",
- "overlay-queue-waiting-party": "Party Matching: {0} / {1} / {2}",
+ "overlay-queue-waiting-party": "Party matching: {0} / {1} / {2}",
"overlay-queue-waiting": "Retreving information...",
- "overlay-queue-order": "Waiting List Number: {0}",
- "overlay-roulette": "Duty Roulette",
- "overlay-queue-waiting-confirm": "Waiting for you to confirm...",
- "overlay-queue-matched": "Match found!",
- "overlay-queue-confirming": "Checking member status...",
- "overlay-fate-occured": "FATE spawned!",
-
-
- "l-process-set-success": "P: FFXIV Process Selected: {0}",
- "l-process-set-failed": "P: Failed to set FFXIV Process.",
- "l-process-finding": "P: Finding FFXIV Process...",
- "l-process-found-nothing": "P: Could not find FFXIV Process.",
- "l-process-found-multiple": "P: 2 or more FFXIV Processes are running.",
-
- "l-tweet-failed-request": "T: Error occured while requesting tweet",
- "l-tweet-failed-general": "T: Failed to send tweet",
- "l-tweet-success": "T: Tweet sent!",
-
- "l-web-request-failed": "W: Error requesting Web service",
-
- "l-updater-current-version": "U: Current Version: {0}",
- "l-updater-latest-version": "U: Up-to-date Version: {0}",
+ "overlay-queue-order": "#{0} in queue for your role",
+ "overlay-roulette": "Duty roulette",
+ "overlay-queue-waiting-confirm": "Waiting for your confirmation",
+ "overlay-queue-matched": "Matched!",
+ "overlay-queue-confirming": "Waiting for confirmation",
+ "overlay-fate-occured": "FATE occured!",
+
+
+ "l-process-set-success": "P: FFXIV process selected: {0}",
+ "l-process-set-failed": "P: Failed to set FFXIV process.",
+ "l-process-finding": "P: Finding FFXIV process...",
+ "l-process-found-nothing": "P: Could not find FFXIV process.",
+ "l-process-found-multiple": "P: 2 or more FFXIV processes are running.",
+
+ "l-telegram-failed-request": "R: Error occured while requesting telegram message",
+ "l-telegram-failed-general": "R: Failed to send telegram message: {0}",
+ "l-telegram-success": "R: Telegram message sent!",
+ "l-discord-failed-request": "R: Error occured while requesting discord message",
+ "l-discord-failed-general": "R: Failed to send discord message: {0}",
+ "l-discord-success": "R: Discord message sent!",
+
+ "l-web-request-failed": "W: Error requesting web service",
+
+ "l-updater-current-version": "U: Current version: {0}",
+ "l-updater-latest-version": "U: Lastest version: {0}",
"l-updater-is-latest": "U: Using latest version.",
- "l-updater-new-version": "U: Updated version found.",
+ "l-updater-new-version": "U: Update available.",
"l-updater-error-general": "U: Error while updating data",
- "l-updater-error-data": "U: Error while updating D/F Data",
+ "l-updater-error-data": "U: Error while updating duty/FATE Data",
"l-updater-error-check": "U: Could not find update information.",
"l-updater-error-no-url": "U: Could not find update file.",
"l-updater-error-downloading": "U: Error while getting update data",
- "l-data-updated": "D: D/F Data updated to Version {0}.",
- "l-data-is-latest": "D: Using Latest D/F Data (Version {0}).",
- "l-data-error": "D: Error occured while processing D/F Data",
+ "l-data-updated": "D: Duty/FATE data updated to version {0}.",
+ "l-data-is-latest": "D: Using latest duty/FATE data (version {0}).",
+ "l-data-error": "D: Error occured while processing duty/FATE data",
"l-packet-error-ip": "P: IP Packet Parsing Error",
"l-packet-error-tcp": "P: TCP Packet Parsing Error",
- "l-network-started": "N: Started Reading Network Packet",
- "l-network-starting": "N: Starting Network Reading...",
- "l-network-stopped": "N: Stopped Reading Network",
- "l-network-stopping": "N: Requesting for Stop Network Reading...",
- "l-network-error-starting": "N: Failed to Start",
- "l-network-error-stopping": "N: Failed to Stop",
- "l-network-error-already-started": "N: Already Started",
- "l-network-error-already-stopped": "N: Already Stopped",
- "l-network-error-no-connection": "N: Could not find Game Server Connection",
- "l-network-error-receiving-packet": "N: Error while Receiving Packet",
- "l-network-error-filtering-packet": "N: Error while Packet Filtering",
+ "l-network-started": "N: Started reading of FFXIV network packets",
+ "l-network-starting": "N: Starting to read FFXIV packets...",
+ "l-network-stopped": "N: Stopped reading FFXIV network packets",
+ "l-network-stopping": "N: Stopping reading of FFXIV network reading...",
+ "l-network-error-starting": "N: Failed to start",
+ "l-network-error-stopping": "N: Failed to stop",
+ "l-network-error-already-started": "N: Already started",
+ "l-network-error-already-stopped": "N: Already stopped",
+ "l-network-error-no-connection": "N: Could not find FFXIV server connection",
+ "l-network-error-receiving-packet": "N: Error while receiving packet",
+ "l-network-error-filtering-packet": "N: Error while filtering packets",
"l-network-error-finding-lobby": "N: Error while receeving lobby server information",
- "l-network-detected-connection-closing": "N: Detected Game Server Disconnection",
- "l-network-detected-connection": "N: Detected Game Server Connection: {0}",
+ "l-network-detected-connection-closing": "N: Detected disconnect from FFXIV servers",
+ "l-network-detected-connection": "N: Detected connection to FFXIV servers: {0}",
"l-firewall-registered": "FW: Registered",
"l-firewall-error": "FW: Error while registering",
+
+ "l-wav-error": "S: invalid wav file.",
+
+ "l-POST-send": "N: POST Request URL: {0}, Data: {1}",
+ "l-POST-no-response": "S: POST no response!",
+ "l-POST-failed": "S: POST Request failed!",
+ "l-POST-response": "S: POST Response: {0}",
- "l-analyze-error-length": "A: Length Error while analyzing Message: {0}, {1}/{2}",
- "l-analyze-error-general": "A: Error while analyzing Message",
- "l-analyze-error": "A: Error while handling Message",
+ "l-analyze-error-length": "A: Length error while analyzing message: {0}, {1}/{2}",
+ "l-analyze-error-general": "A: Error while analyzing message",
+ "l-analyze-error": "A: Error while handling message",
"l-queue-started-general": "Q: Matching started [{0}]",
- "l-queue-started-roulette": "Q: Duty Roulette Matching Started [{0}]",
- "l-queue-stopped": "Q: Matching Stopped",
- "l-queue-entered": "Q: Entered Instance Area",
+ "l-queue-started-roulette": "Q: Duty Roulette matching started [{0}]",
+ "l-queue-stopped": "Q: matching stopped",
+ "l-queue-entered": "Q: Entered instance area",
"l-queue-matched": "Q: Matched [{0}]",
- "l-queue-updated": "Q: Matching State Updated [{0}, {1}, {2}/{3}, {4}/{5}, {6}/{7}]",
+ "l-queue-updated": "Q: Matching state updated [{0}, {1}, {2}/{3}, {4}/{5}, {6}/{7}]",
- "l-fate-occured-info": "F: {0} FATE spawned!",
+ "l-fate-occured-info": "F: {0} FATE occured!",
- "l-field-instance-entered": "I: Entered Instance Area [{0}]",
- "l-field-instance-left": "I: Left Instance Area"
+ "l-field-instance-entered": "I: Entered instance area [{0}]",
+ "l-field-instance-left": "I: Left instance area"
}
\ No newline at end of file
diff --git a/App/Resources/Localization/fr-fr.json b/App/Resources/Localization/fr-fr.json
index 90eb0a3..1c5b3a0 100644
--- a/App/Resources/Localization/fr-fr.json
+++ b/App/Resources/Localization/fr-fr.json
@@ -10,10 +10,11 @@
"notification-app-updated": "Mise à jour version {0}",
"notification-queue-matched": "< {0} > disponible!",
+ "notification-fate-occured": "< {0} > en cours!",
- "tweet-fate-occured": "ALEA < {0} > en cours!",
- "tweet-queue-matched": "< {0} > disponible!",
+ "fate-occured": "ALEA < {0} > en cours!",
+ "queue-matched": "< {0} > disponible!",
"fate-preset-animus-SkyfireI": "Book of Skyfire I",
@@ -25,6 +26,10 @@
"fate-preset-animus-SkywindI": "Book of Skywind I",
"fate-preset-animus-SkywindII": "Book of Skywind II",
"fate-preset-animus-SkyearthI": "Book of Skyearth I",
+ "fate-preset-Ixion": "Ixion (Les Lacs)",
+ "fate-preset-Tamamo": "Tamamo (Yanxia)",
+ "fate-preset-frogMount": "Frog Mount (Kholusia)",
+ "fate-preset-frogSuit": "Frog Suit (Tempest)",
"ui-notifymenustrip-open": "Ouvrir",
@@ -35,6 +40,8 @@
"ui-topsetting-reset": "Rétablir",
"ui-tabcontrol-settings": "Paramètres",
+ "ui-tabcontrol-3rdparty": "3rd-party",
+ "ui-tabcontrol-advanced": "Advanced",
"ui-tabcontrol-fate": "ALEA",
"ui-tabcontrol-logs": "Logs",
"ui-tabcontrol-info": "Infos",
@@ -43,13 +50,40 @@
"ui-settings-overlay-use": "Utiliser l'overlay",
"ui-settings-overlay-tooltip": "Bouger l'overlay avec la barre gauche",
"ui-settings-overlay-reset": "Rétablir",
- "ui-settings-overlay-announcement": "Show announcement on Overlay",
+ "ui-settings-overlay-autohide": "Affichez la l'overlay seulement lorsqu'il y a une file d'attente ou une ALEA",
+ "ui-notification-overlay-autohide": "Cette option sera appliquée après le changement d'état de la file d'attente ou l'apparition d'un nouvel ALEA.\nLe redémarrage de l'application rend également l'appliance immédiate.\n\nEn attendant la connexion du client, la l'overlay est affichée\n(Noter à l'utilisateur que l'application fonctionne bien ou pas.).",
"ui-settings-startupshow": "Afficher la fenêtre principale au démarrage",
- "ui-settings-autohide": "Cacher automatiquement l'overlay pendant les missions",
"ui-settings-iconflash": "Faire clignorer l'icône de FFXIV en cas d'ALEA/Mission",
- "ui-settings-tweet-title": "Rappel Twiter",
- "ui-settings-tweet-activate": "Activer",
- "ui-settings-tweet-about": "Lorsqu'un ALEA choisi se produir, \nenvoyer un tweet avec mention au compte sélectionné.\nEntrez le nom du compte Twitter sans @.",
+ "ui-settings-cheatroulette": "Montrer la mission en cours d'attente lors des missions aléatoires",
+ "ui-settings-copymacro": "Copier automatiquement les macros à partir des données de mission lorsque le mission correspond.",
+ "ui-settings-copymacro-dialog-title": "DFA Copy macro",
+ "ui-settings-copymacro-dialog-text": "Copiez la <{0}> macro dans le presse-papiers?",
+ "ui-settings-usevpn": "ne pas filtrer la connexion réseau locale (VPN, etc.)",
+ "ui-settings-usevpn-alert": "Normalement, vous devez désactiver cette option pour capturer le paquet réseau.",
+ "ui-settings-fatesound": "Activer le son de notification ALEA \n (Désactiver le son personnalisé sur ALEA)",
+ "ui-settings-customsound": "Personnaliser le son de notification",
+ "ui-settings-getsoundfile": "Choisir",
+ "ui-settings-getfilewav": "WAV fichier (*.wav)|*.wav",
+ "ui-notification-customsound-selectfile": "D'abord, Choisissez un fichier musical.",
+ "ui-link-localization": "Participer à la localisation du DFAssist",
+
+ "ui-3rdparty-telegram-title": "Rappel Telegram",
+ "ui-3rdparty-telegram-activate": "Activer",
+ "ui-3rdparty-telegram-queuestatus": "Envoyer statut de d'attente",
+ "ui-3rdparty-telegram-about": "Lorsque la file d'attente apparaît ou qu'une ALEA choisie se produit, \nenvoyez un message télégramme à la salle de discussion sélectionnée.\nVous pouvez obtenir un ID de Chat si vous envoyez un message à DFAssist Telegram Bot.",
+ "ui-3rdparty-discord-title": "Rappel Discord",
+ "ui-3rdparty-discord-activate": "Activer",
+ "ui-3rdparty-discord-numberonly-alert": "Discord ID est le seul numéro accepté.",
+ "ui-3rdparty-discord-about": "Notifier via le message Discord en mentionnant ce Discord ID.\nEntrez votre numéro d'identification de plus de 15 chiffres.\n\nPour vérifier l'ID discord: Entrez la commande !id sur le canal #get-discord-id de DFAssist Discord Server. DFAsssist Bot vous répondra avec Discord ID.\nVous devez également être sur le serveur DFAssist Discord pour recevoir une notification.",
+
+ "ui-advanced-http": "Demande HTTP personnalisée",
+ "ui-advanced-http-enable": "Permettre",
+ "ui-advanced-http-duty-matched": "Envoyer lorsque le devoir est adapté",
+ "ui-advanced-http-fate-occured": "Envoyer lorsque ALEA est survenu",
+ "ui-advanced-http-readme": "Lorsque cela sera possible, le DFAssist enverra une demande POST HTTP avec \n\"Status\" et \"info\" à l'adresse URL spécifiée.\n\"Status\" est envoyé avec une chaîne appelée \"duty-match\" ou \"fate-occured\".\n\"info\" is sent with the Matched Duty Name or Occured FATE Name.\n\nCette fonctionnalité est prévue pour être mise à jour plus.",
+
+ "ui-debug": "Debug",
+ "ui-debug-log": "Log Debug logs",
"ui-fate-selectall": "Selectionner tout",
"ui-fate-unselectall": "Déselectionner tout",
@@ -60,16 +94,19 @@
"ui-logs-copy": "Copier logs",
"ui-logs-clear": "Vider",
- "ui-info-about": "[Contributor]\n유채색\nLaiglinne\nHibiyasleep\nAlex00728\n\n[Copyright]\nAll company, product, system names are\n registered or unregistered trademarks of their respective owners.\n(C)2010 - 2017 SQUARE ENIX CO., LTD All Rights Reserved.\nKorea Published by EYEDENTITY Entertainment.",
+ "ui-info-about": "[Contributeurs]\n유채색\nLaiglinne\nHibiyasleep\nAlex00728 (Jaehyuk-Lee)\n\n[Copyright]\nAll company, product, system names are\n registered or unregistered trademarks of their respective owners.\n(C)2010 - 2019 SQUARE ENIX CO., LTD All Rights Reserved.\nKorea Published by ACTOZ SOFT.",
"ui-msgbox-title-info": "DFA Notice",
"ui-msgbox-title-warning": "DFA Warning",
"ui-msgbox-title-error": "DFA Error",
- "ui-language-changed": "Langue changée en Français.\nUn redémarrage est nécessaire.\nVeuillez redémarrer l'application.",
+ "ui-language-changed": "Langue changée en Français.\nLe langage de superposition sera appliqué après les changements de statut de la file d'attente.\nVeuillez redémarrer l'application pour qu'elle prenne effet immédiatement.",
"ui-clipboard-copied": "Copié dans le presse-papiers.",
+ "ui-cheat-roulette-confirm": "Cette fonction est désactivée par défaut pour éviter les abus.\nVeuillez vous abstenir de rejeter délibérément un devoir spécifique mission.\n\nVoulez-vous toujours l'activer?",
+ "ui-cheat-roulette-enabled": "Activée.\nS'il vous plaît, ne rejetez pas délibérément un devoir spécifique mission.",
+
"ui-clear-log-confirm": "Vider les logs?",
"ui-fate-selection-saved": "Notifications d'ALEA appliquées.",
@@ -79,8 +116,7 @@
"ui-app-crashed": "L'application a été fermée suite à une erreur inconnue.\n\nErreur: {0}",
-
- "overlay-announcement": "",
+
"overlay-waiting-connection": "En attente de connection au client",
"overlay-not-queuing": "Aucune file d'attente",
"overlay-duty-count-unknown": "Mission trouvée",
@@ -101,9 +137,12 @@
"l-process-found-nothing": "P: Impossible de trouver le processus FFXIV.",
"l-process-found-multiple": "P: 2 ou plus processus FFXIV sont en cours.",
- "l-tweet-failed-request": "T: Une erreur s'est produite lors de la requête du tweet",
- "l-tweet-failed-general": "T: Impossible d'envoyer le tweet",
- "l-tweet-success": "T: Tweet envoyé!",
+ "l-telegram-failed-request": "R: Une erreur s'est produite lors de la requête du Telegram message",
+ "l-telegram-failed-general": "R: Impossible d'envoyer le Telegram message: {0}",
+ "l-telegram-success": "R: Telegram message envoyé!",
+ "l-discord-failed-request": "R: Une erreur s'est produite lors de la requête du Discord message",
+ "l-discord-failed-general": "R: Impossible d'envoyer le Discord message: {0}",
+ "l-discord-success": "R: Discord message envoyé!",
"l-web-request-failed": "W: Erreur de requête web",
@@ -141,6 +180,13 @@
"l-firewall-registered": "Pare-feu: enregistré",
"l-firewall-error": "Pare-feu: erreur d'enregistrement",
+
+ "l-wav-error": "S: Erreur de lecture du son personnalisé: fichier wav invalide. ",
+
+ "l-POST-send": "N: POST demande URL: {0}, Données: {1}",
+ "l-POST-no-response": "S: POST no response!",
+ "l-POST-failed": "S: POST Demande rejetée!",
+ "l-POST-response": "S: POST répondre: {0}",
"l-analyze-error-length": "A: Erreur de longueur lors de l'analyse du message: {0}, {1}/{2}",
"l-analyze-error-general": "A: Erreur d'analyse du message",
@@ -157,4 +203,4 @@
"l-field-instance-entered": "I: Entrée dans la zone instanciée [{0}]",
"l-field-instance-left": "I: Sortie de la zone instanciée"
-}
+}
\ No newline at end of file
diff --git a/App/Resources/Localization/ja-jp.json b/App/Resources/Localization/ja-jp.json
index 7d65749..136c446 100644
--- a/App/Resources/Localization/ja-jp.json
+++ b/App/Resources/Localization/ja-jp.json
@@ -1,5 +1,5 @@
-{
- "app-name": "Duty/FATE Notificator",
+{
+ "app-name": "Duty/FATE Notifier",
"unknown-instance": "不明なコンテンツ ({0})",
@@ -10,10 +10,11 @@
"notification-app-updated": "バージョン {0} に更新されました",
"notification-queue-matched": "< {0} > 突入準備完了!",
+ "notification-fate-occured": "< {0} > 発生!",
- "tweet-fate-occured": "< {0} > FATE発生!",
- "tweet-queue-matched": "< {0} > 突入準備完了!",
+ "fate-occured": "< {0} > FATE発生!",
+ "queue-matched": "< {0} > 突入準備完了!",
"fate-preset-animus-SkyfireI": "炎天一巻",
@@ -25,8 +26,12 @@
"fate-preset-animus-SkywindI": "風天一巻",
"fate-preset-animus-SkywindII": "風天二巻",
"fate-preset-animus-SkyearthI": "土天一巻",
+ "fate-preset-Ixion": "伝説の雷馬「イクシオン」(湖畔地帯)",
+ "fate-preset-Tamamo": "九尾の妖狐「玉藻御前」(ヤンサ)",
+ "fate-preset-frogMount": "カエルマウント(コルシア島)",
+ "fate-preset-frogSuit": "カエル衣服(テンペスト)",
-
+
"ui-notifymenustrip-open": "開く",
"ui-notifymenustrip-close": "終了",
@@ -35,42 +40,74 @@
"ui-topsetting-reset": "初期化",
"ui-tabcontrol-settings": "設定",
+ "ui-tabcontrol-3rdparty": "3rd-party",
+ "ui-tabcontrol-advanced": "上級設定",
"ui-tabcontrol-fate": "FATE",
"ui-tabcontrol-logs": "ログ",
"ui-tabcontrol-info": "情報",
"ui-settings-title": "基本設定",
- "ui-settings-overlay-use": "オーバーレイ",
+ "ui-settings-overlay-use": "オーバーレイを使う",
"ui-settings-overlay-tooltip": "オーバーレイ左側のバーをドラッグすると移動できます。",
"ui-settings-overlay-reset": "初期化",
- "ui-settings-overlay-announcement": "オーバーレイにアナウンスを表示する",
+ "ui-settings-overlay-autohide": "マッチング中でない時にオーバーレイを隠す",
+ "ui-notification-overlay-autohide": "マッチング状況に変化が生じるかFATEが発生してから適用されます。\nアプリケーションを再起動しても適用されます。\n\nクライアントへの接続待機中のときはオーバーレイが表示されます。 \n(プログラムが正しく作動しているか確認できるようにするため)",
"ui-settings-startupshow": "起動時にこのウィンドウを表示する",
- "ui-settings-autohide": "コンテンツ中オーバーレイを非表示にする",
"ui-settings-iconflash": "突入準備完了時FFXIVのアイコンを点滅させる",
- "ui-settings-tweet-title": "Twitterアラーム",
- "ui-settings-tweet-activate": "有効化",
- "ui-settings-tweet-about": "突入準備完了時、FATEが発生した際指定したアカウントに\nツイートを送信します。\nTwitterアカウント名の@以降を入力してください。",
+ "ui-settings-cheatroulette": "コンテンツルーレット参加時に実際の突入先を表示する",
+ "ui-settings-copymacro": "マクロがある場合、自動でマクロをクリップボードにコピー",
+ "ui-settings-copymacro-dialog-title": "DFA マクロコピー",
+ "ui-settings-copymacro-dialog-text": "<{0}> コンテンツのマクロをクリップボードにコピーしますか?",
+ "ui-settings-usevpn": "ローカルネットワーク接続をフィルターしない(VPNなど)",
+ "ui-settings-usevpn-alert": "通常、ネットワークパケットをキャプチャするためにはこのオプションを無効にする必要があります。",
+ "ui-settings-fatesound": "FATE通知音を使う\n(カスタム通知音を無効化)",
+ "ui-settings-customsound": "FATE/コンテンツファインダーのカスタム通知音",
+ "ui-settings-getsoundfile": "選択",
+ "ui-settings-getfilewav": "WAV ファイル (*.wav)|*.wav",
+ "ui-notification-customsound-selectfile": "最初に音声ファイルを選択してください。",
+ "ui-link-localization": "DFAssist翻訳参加",
+
+ "ui-3rdparty-telegram-title": "Telegramアラーム",
+ "ui-3rdparty-telegram-activate": "有効化",
+ "ui-3rdparty-telegram-queuestatus": "マッチング状況も",
+ "ui-3rdparty-telegram-about": "突入準備完了時かFATE発生時に、指定したチャットルームにメッセージを送信します。\nChat IDはDFAssist Telegram Botにメッセージを送ることで確認できます。",
+ "ui-3rdparty-discord-title": "Discordアラーム",
+ "ui-3rdparty-discord-activate": "有効化",
+ "ui-3rdparty-discord-numberonly-alert": "Discord IDは数字のみ入力できます。",
+ "ui-3rdparty-discord-about": "Discordアカウントにメッセージを送って通知します。\nDiscord ID (15桁以上の数字) を入力してください。\n\n※Discord IDを確認する方法: DFAssist Discord Serverの#get-discord-idチャンネルで !id を入力すると確認できます。\nメッセージはDFAssist Discord Serverに参加している時にのみ受信できます。",
+
+ "ui-advanced-http": "カスタムHTTPリクエスト",
+ "ui-advanced-http-enable": "有効化",
+ "ui-advanced-http-duty-matched": "突入準備完了時",
+ "ui-advanced-http-fate-occured": "FATE発生時",
+ "ui-advanced-http-readme": "この機能を有効にすると\"status\"と \"info\"を持つHTTP POSTリクエストを\n設定したURLに送信します。\n\"status\"には\"duty-matched\"または\"fate-occured\"という文字列が含まれます。\n\"info\"には,マッチングしたダンジョンや発生したFATEの名前が含まれます。\n\nこの機能にはアップデートが予定されています。",
+
+ "ui-debug": "デバグ",
+ "ui-debug-log": "デバグログ出力",
"ui-fate-selectall": "すべて選択",
"ui-fate-unselectall": "すべて選択解除",
"ui-fate-preset": "プリセット",
"ui-fate-apply": "適用",
- "ui-fate-about": "通知を受け取りたい物を選んで上の適用ボタンを押してください。\nアラートはキャラクターがFATEエリア内にいる場合のみ動作します。",
+ "ui-fate-about": "通知を受け取りたいFATEを選んで上の適用ボタンを押してください。\nアラートはキャラクターがFATEエリア内にいる場合のみ動作します。",
"ui-logs-copy": "ログをコピー",
"ui-logs-clear": "消去",
- "ui-info-about": "[貢献者]\n유채색\nLaiglinne\nHibiyasleep\nAlex00728\n\n[Copyright]\n記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。\n(C)2010 - 2017 SQUARE ENIX CO., LTD All Rights Reserved.\nKorea Published by EYEDENTITY Entertainment.",
+ "ui-info-about": "[貢献者]\n유채색\nLaiglinne\nHibiyasleep\nAlex00728 (Jaehyuk-Lee)\n\n[Copyright]\n記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。\n(C)2010 - 2019 SQUARE ENIX CO., LTD All Rights Reserved.\nKorea Published by ACTOZ SOFT.",
"ui-msgbox-title-info": "DFA通知",
"ui-msgbox-title-warning": "DFA警告",
"ui-msgbox-title-error": "DFAエラー",
- "ui-language-changed": "言語が日本語に変更されました。\nいくつかの部分は再起動するまで変更されません。\nアプリケーションを再起動してください。",
+ "ui-language-changed": "言語が日本語に変更されました。\nオーバーレイ部分は状態が変化すると適用されます。\n今すぐ適用するにはアプリケーションを再起動してください。",
+
+ "ui-clipboard-copied": "コピーしました。",
- "ui-clipboard-copied": "コピーしましした。",
+ "ui-cheat-roulette-confirm": "悪用防止のため、標準では無効になっている機能です。\n特定の嫌なコンテンツを意図的に避けることはお控えください。\n\n本当に有効にしますか?",
+ "ui-cheat-roulette-enabled": "有効になりました。\n絶対に故意に特定のコンテンツを拒否しないでください。",
- "ui-clear-log-confirm": "ログを消しますか?",
+ "ui-clear-log-confirm": "ログを削除しますか?",
"ui-fate-selection-saved": "FATE通知がセットされました。",
"ui-fate-preset-applied": "FATEプリセットが適用されました。",
@@ -80,9 +117,8 @@
"ui-app-crashed": "不明な問題によりアプリケーションが終了しました\n\nエラー: {0}",
- "overlay-announcement": "",
- "overlay-waiting-connection": "クライアントとの接続を待機しています",
- "overlay-not-queuing": "参加申請していません",
+ "overlay-waiting-connection": "クライアントへの接続待機中",
+ "overlay-not-queuing": "参加申請をしていません",
"overlay-duty-count-unknown": "コンテンツ参加申請中",
"overlay-duty-count": "{0} コンテンツ参加申請中",
"overlay-queue-waiting-party": "パーティ構築中: {0} / {1} / {2}",
@@ -101,9 +137,12 @@
"l-process-found-nothing": "P: FFXIVプロセスが見つかりませんでした。",
"l-process-found-multiple": "P: 2つ以上のFFXIVプロセスが見つかりました。",
- "l-tweet-failed-request": "T: ツイート送信時にエラーが発生しました。",
- "l-tweet-failed-general": "T: ツイート送信に失敗しました。",
- "l-tweet-success": "T: ツイート成功!",
+ "l-telegram-failed-request": "R: Telegramメッセージの送信時にエラーが発生しました。",
+ "l-telegram-failed-general": "R: Telegramメッセージの送信に失敗しました。: {0}",
+ "l-telegram-success": "R: Telegramメッセージ送信完了!",
+ "l-discord-failed-request": "R: Discordメッセージの送信時にエラーが発生しました。",
+ "l-discord-failed-general": "R: Discordメッセージの送信に失敗しました。: {0}",
+ "l-discord-success": "R: Discordメッセージ送信完了!",
"l-web-request-failed": "W: Webサービスでエラーが発生しました。",
@@ -118,7 +157,7 @@
"l-updater-error-downloading": "U: アップデートデータのダウンロード中にエラーが発生しました。",
"l-data-updated": "D: コンテンツデータはバージョン {0} へアップデートされました。",
- "l-data-is-latest": "D: 最深のコンテンツデートを利用しています(バージョン {0})。",
+ "l-data-is-latest": "D: 最新のコンテンツデータを使用しています(バージョン {0})。",
"l-data-error": "D: コンテンツデータを処理中にエラーが発生しました。",
"l-packet-error-ip": "P: IPパケット解析エラー",
@@ -141,6 +180,13 @@
"l-firewall-registered": "FW: 登録済み",
"l-firewall-error": "FW: 登録中にエラーが発生しました",
+
+ "l-wav-error": "S: 音楽ファイルの再生エラー: 正しくないwavファイルです。",
+
+ "l-POST-send": "N: POST リクエスト URL: {0}, データ: {1}",
+ "l-POST-no-response": "S: POST 応答なし!",
+ "l-POST-failed": "S: POST リクエスト失敗!",
+ "l-POST-response": "S: POST 応答: {0}",
"l-analyze-error-length": "A: メッセージ解析中に長さエラーが発生しました: {0}, {1}/{2}",
"l-analyze-error-general": "A: メッセージ解析中にエラーが発生しました",
diff --git a/App/Resources/Localization/ko-kr.json b/App/Resources/Localization/ko-kr.json
index 83952db..3bb5863 100644
--- a/App/Resources/Localization/ko-kr.json
+++ b/App/Resources/Localization/ko-kr.json
@@ -1,4 +1,4 @@
-{
+{
"app-name": "임무/돌발 찾기 도우미",
@@ -10,12 +10,13 @@
"notification-app-updated": "버전 {0} 업데이트됨",
"notification-queue-matched": "< {0} > 매칭!",
+ "notification-fate-occured": "< {0} > 발생!",
- "tweet-fate-occured": "< {0} > 돌발 발생!",
- "tweet-queue-matched": "< {0} > 매칭!",
-
+ "fate-occured": "< {0} > 돌발 발생!",
+ "queue-matched": "< {0} > 매칭!",
+
"fate-preset-animus-SkyfireI": "불의 서 1권",
"fate-preset-animus-SkyfireII": "불의 서 2권",
"fate-preset-animus-NetherfireI": "불의 서 3권",
@@ -25,6 +26,10 @@
"fate-preset-animus-SkywindI": "바람의 서 1권",
"fate-preset-animus-SkywindII": "바람의 서 2권",
"fate-preset-animus-SkyearthI": "땅의 서 1권",
+ "fate-preset-Ixion": "익시온 (호반지대)",
+ "fate-preset-Tamamo": "타마모 (얀샤)",
+ "fate-preset-frogMount": "개구리 탈 것 (콜루시아)",
+ "fate-preset-frogSuit": "개구리 옷 (템페스트)",
"ui-notifymenustrip-open": "열기",
@@ -35,6 +40,8 @@
"ui-topsetting-reset": "재설정",
"ui-tabcontrol-settings": "설정",
+ "ui-tabcontrol-3rdparty": "외부 알림",
+ "ui-tabcontrol-advanced": "고급",
"ui-tabcontrol-fate": "돌발",
"ui-tabcontrol-logs": "로그",
"ui-tabcontrol-info": "정보",
@@ -43,13 +50,40 @@
"ui-settings-overlay-use": "오버레이 사용",
"ui-settings-overlay-tooltip": "오버레이 UI의 좌측 막대를 이용해 드래그 할 수 있습니다.",
"ui-settings-overlay-reset": "위치 초기화",
- "ui-settings-overlay-announcement": "오버레이에 공지사항 보여주기",
+ "ui-settings-overlay-autohide": "임무 매칭 중이 아니거나 돌발이 발생하지 않았을 때, 오버레이 숨기기",
+ "ui-notification-overlay-autohide": "매칭 현황에 변화가 생기거나, 돌발 임무가 발생한 후부터 적용됩니다.\n프로그램을 재시작해도 적용됩니다.\n\n클라이언트 통신 대기 중일 때는 오버레이가 표시됩니다.\n(프로그램이 제대로 작동하는지 확인할 수 있게 하기 위함)",
"ui-settings-startupshow": "프로그램 시작시 이 창 보이기",
- "ui-settings-autohide": "임무 입장시 자동으로 오버레이 숨김",
"ui-settings-iconflash": "매칭/돌발 발생시 파이널판타지14 작업 표시줄 아이콘 깜빡이기",
- "ui-settings-tweet-title": "트위터 알림",
- "ui-settings-tweet-activate": "활성화",
- "ui-settings-tweet-about": "매칭이 됐을 시 입력된 트위터 계정으로 멘션을 보내 해당 사실을 알립니다.\n원하는 돌발이 발생했을 시에도 멘션을 보내 해당 사실을 알립니다.\n계정명 입력시 앞의 @ 표시는 제외하고 순수 계정명만 입력해주세요.",
+ "ui-settings-cheatroulette": "무작위 임무일 경우에도 실제 매칭된 임무 보여주기",
+ "ui-settings-copymacro": "매크로 정보가 있는 경우, 클립보드에 자동으로 매크로 복사",
+ "ui-settings-copymacro-dialog-title": "DFA 매크로 복사",
+ "ui-settings-copymacro-dialog-text": "<{0}> 임무의 매크로를 클립보드에 복사하시겠습니까?",
+ "ui-settings-usevpn": "로컬 네트워크 필터링 해제 (VPN 등)",
+ "ui-settings-usevpn-alert": "보통은 꺼주셔야 네트워크 패킷을 읽을 수 있습니다.",
+ "ui-settings-fatesound": "돌발임무 알림음 활성화\n(돌발임무 알림에서 사용자 알림음 사용 안함)",
+ "ui-settings-customsound": "알림음 사용자 설정",
+ "ui-settings-getsoundfile": "파일 선택",
+ "ui-settings-getfilewav": "WAV 파일 (*.wav)|*.wav",
+ "ui-notification-customsound-selectfile": "음악 파일을 먼저 선택해주세요.",
+ "ui-link-localization": "DFAssist 번역 참여",
+
+ "ui-3rdparty-telegram-title": "텔레그램 알림",
+ "ui-3rdparty-telegram-activate": "활성화",
+ "ui-3rdparty-telegram-queuestatus": "매칭 현황 전송",
+ "ui-3rdparty-telegram-about": "매칭이 되면 입력한 텔레그램 채팅방으로 메시지를 보내 해당 사실을 알립니다.\n원하는 돌발이 발생했을 시에도 메시지를 보내 해당 사실을 알립니다.\n채팅방 ID는 DFAssist Notify Bot에게 아무 메시지나 보내면 확인할 수 있습니다.",
+ "ui-3rdparty-discord-title": "디스코드 알림",
+ "ui-3rdparty-discord-activate": "활성화",
+ "ui-3rdparty-discord-numberonly-alert": "디스코드 ID는 숫자만 입력 가능합니다.",
+ "ui-3rdparty-discord-about": "입력된 디스코드 계정으로도 멘션을 통해 알림을 보냅니다. \n디스코드 ID는 15자리 이상의 숫자입니다. \n\n디스코드 ID는 DFAssist 디스코드 서버에서 #get-discord-id 채널에 !id 를 입력하면 확인할 수 있습니다. \n또한, DFAssist 디스코드 서버에 참여한 상태여야만 알림을 보낼 수 있습니다.",
+
+ "ui-advanced-http": "사용자 지정 HTTP 요청",
+ "ui-advanced-http-enable": "활성화",
+ "ui-advanced-http-duty-matched": "던전 매칭 완료시 보내기",
+ "ui-advanced-http-fate-occured": "돌발 임무 발생시 보내기",
+ "ui-advanced-http-readme": "이 기능을 활성화하면 임무/돌발 찾기 도우미는 지정한 URL로 \n\"status\"와 \"info\"를 포함한 POST HTTP Request를 보냅니다.\n\"status\"에는 \"duty-matched\" 또는 \"fate-occured\"라는 String이 포함되어 보내집니다.\n\"info\"에는 매칭된 임무나 발생한 돌발임무 이름이 포함되어 보내집니다.\n\n이 기능은 앞으로 추가적인 개선이 예정되어 있습니다.",
+
+ "ui-debug": "디버그",
+ "ui-debug-log": "디버그 로그 출력",
"ui-fate-selectall": "모두 선택",
"ui-fate-unselectall": "모두 해제",
@@ -60,16 +94,19 @@
"ui-logs-copy": "로그 복사",
"ui-logs-clear": "로그 삭제",
- "ui-info-about": "[제작 및 문의]\n유채색\n라그린네\n히비야\n윈도ce\n\n[저작권]\n기재되어있는 회사명 · 제품명 · 시스템 이름은\n해당 소유자의 상표 또는 등록 상표입니다.\n(C) 2010 - 2017 SQUARE ENIX CO., LTD All Rights Reserved.\nKorea Published by EYEDENTITY Entertainment.",
+ "ui-info-about": "[제작 및 문의]\n유채색\n라그린네\n히비야\n윈도ce\n[도움] 고먐미\n[저작권]\n기재되어있는 회사명 · 제품명 · 시스템 이름은\n해당 소유자의 상표 또는 등록 상표입니다.\n(C) 2010 - 2019 SQUARE ENIX CO., LTD All Rights Reserved.\nKorea Published by ACTOZ SOFT.",
"ui-msgbox-title-info": "DFA 알림",
"ui-msgbox-title-warning": "DFA 경고",
"ui-msgbox-title-error": "DFA 오류",
- "ui-language-changed": "언어가 한국어로 변경되었습니다.\n일부 부분은 프로그램 재시작을 해야 반영됩니다.\n프로그램을 재시작해주세요.",
+ "ui-language-changed": "언어가 한국어로 변경되었습니다.\n오버레이 부분은 매칭 현황에 변화가 생기면 적용됩니다.\n지금 바로 적용하고 싶다면, 프로그램을 재시작해주세요.",
"ui-clipboard-copied": "클립보드에 복사되었습니다.",
+ "ui-cheat-roulette-confirm": "악용 방지를 위해 기본적으로 비활성화 되어있는 기능입니다.\n특정 비인기 임무를 고의적으로 입장 거부하는 행위 등은 자제해주세요.\n\n그래도 활성화 하시겠습니까?",
+ "ui-cheat-roulette-enabled": "활성화되었습니다.\n특정 비인기 임무를 고의적으로 입장 거부하는 행위 등은 자제해주세요.",
+
"ui-clear-log-confirm": "로그를 지우시겠습니까?",
"ui-fate-selection-saved": "돌발 알림 설정이 적용되었습니다.",
@@ -80,12 +117,11 @@
"ui-app-crashed": "알 수 없는 오류가 발생해 프로그램을 종료합니다.\n\n에러: {0}",
- "overlay-announcement": "페미니즘을 지지하고 연대합니다",
"overlay-waiting-connection": "클라이언트 통신 대기 중",
"overlay-not-queuing": "매칭중인 임무 없음",
"overlay-duty-count-unknown": "임무 매칭 중",
"overlay-duty-count": "총 {0}개 임무 매칭 중",
- "overlay-queue-waiting-party": "파티 매칭 중: {0} / {1} / {2}",
+ "overlay-queue-waiting-party": "PvP 매칭: {0}명 대기 중",
"overlay-queue-waiting": "매칭 대기 중",
"overlay-queue-order": "대기 순번: {0}",
"overlay-roulette": "무작위 임무",
@@ -94,16 +130,19 @@
"overlay-queue-confirming": "입장 확인 중",
"overlay-fate-occured": "돌발 임무 발생!",
-
+
"l-process-set-success": "P: 파이널판타지14 프로세스가 선택되었습니다: {0}",
"l-process-set-failed": "P: 파이널판타지14 프로세스 설정에 실패했습니다.",
"l-process-finding": "P: 파이널판타지14 프로세스를 찾는 중...",
"l-process-found-nothing": "P: 파이널판타지14 프로세스를 찾을 수 없습니다.",
"l-process-found-multiple": "P: 파이널판타지14가 2개 이상 실행중입니다.",
- "l-tweet-failed-request": "T: 트윗 발송 요청중 에러 발생",
- "l-tweet-failed-general": "T: 트윗 발송 실패",
- "l-tweet-success": "T: 트윗을 발송했습니다!",
+ "l-telegram-failed-request": "R: 텔레그램 메시지 발송 요청중 에러 발생",
+ "l-telegram-failed-general": "R: 텔레그램 메시지 발송 실패: {0}",
+ "l-telegram-success": "R: 텔레그램 메시지를 발송했습니다!",
+ "l-discord-failed-request": "R: 디스코드 메시지 발송 요청중 에러 발생",
+ "l-discord-failed-general": "R: 디스코드 메시지 발송 실패: {0}",
+ "l-discord-success": "R: 디스코드 메시지를 발송했습니다!",
"l-web-request-failed": "W: 웹 요청중 에러 발생",
@@ -142,6 +181,13 @@
"l-firewall-registered": "FW: 추가됨",
"l-firewall-error": "FW: 추가중 에러 발생",
+ "l-wav-error": "S: 음악 파일 재생 에러: 잘못된 wav 파일입니다.",
+
+ "l-POST-send": "N: POST 요청 URL: {0}, 데이터: {1}",
+ "l-POST-no-response": "S: POST 요청에 대한 응답이 없습니다.",
+ "l-POST-failed": "S: POST 요청에 실패했습니다!",
+ "l-POST-response": "S: POST 응답: {0}",
+
"l-analyze-error-length": "A: 메시지 분석중 길이 에러 발생함: {0}, {1}/{2}",
"l-analyze-error-general": "A: 메시지 분석중 에러 발생함",
"l-analyze-error": "A: 메시지 처리중 에러 발생함",
diff --git a/App/Resources/Localization/ru-ru.json b/App/Resources/Localization/ru-ru.json
new file mode 100644
index 0000000..3dea634
--- /dev/null
+++ b/App/Resources/Localization/ru-ru.json
@@ -0,0 +1,206 @@
+{
+ "app-name": "Duty/FATE Notifier",
+
+
+ "unknown-instance": "Неизвестный Duty ({0})",
+ "unknown-roulette": "Неизвестная Рулетка ({0})",
+ "unknown-area": "Неизвестная Область ({0})",
+ "unknown-fate": "Неизвестный FATE ({0})",
+
+
+ "notification-app-updated": "Версия {0} Обновлена",
+ "notification-queue-matched": "< {0} > Собрана!",
+ "notification-fate-occured": "< {0} > Состоялся!",
+
+
+ "fate-occured": "< {0} > FATE Заспавнился!",
+ "queue-matched": "< {0} > Duty подобран!",
+
+
+ "fate-preset-animus-SkyfireI": "Book of Skyfire I",
+ "fate-preset-animus-SkyfireII": "Book of Skyfire II",
+ "fate-preset-animus-NetherfireI": "Book of Netherfire I",
+ "fate-preset-animus-SkyfallI": "Book of Skyfall I",
+ "fate-preset-animus-SkyfallII": "Book of Skyfall II",
+ "fate-preset-animus-NetherfallI": "Book of Netherfall I",
+ "fate-preset-animus-SkywindI": "Book of Skywind I",
+ "fate-preset-animus-SkywindII": "Book of Skywind II",
+ "fate-preset-animus-SkyearthI": "Book of Skyearth I",
+ "fate-preset-Ixion": "Ixion (The Lochs)",
+ "fate-preset-Tamamo": "Tamamo (Yanxia)",
+ "fate-preset-frogMount": "Frog Mount (Kholusia)",
+ "fate-preset-frogSuit": "Frog Suit (Tempest)",
+
+
+ "ui-notifymenustrip-open": "Открыть",
+ "ui-notifymenustrip-close": "Выход",
+
+ "ui-topsetting-process": "Процесс FFXIV ",
+ "ui-topsetting-select": " Вручную",
+ "ui-topsetting-reset": "Сброс",
+
+ "ui-tabcontrol-settings": "Настройки",
+ "ui-tabcontrol-3rdparty": "Уведомления",
+ "ui-tabcontrol-advanced": "Продвинутые",
+ "ui-tabcontrol-fate": "FATE",
+ "ui-tabcontrol-logs": "Логи",
+ "ui-tabcontrol-info": "Информация",
+
+ "ui-settings-title": "Базовая настройка",
+ "ui-settings-overlay-use": "Использовать оверлэй",
+ "ui-settings-overlay-tooltip": "Чтобы переместить оверлей зажми цветную полосу слева",
+ "ui-settings-overlay-reset": "Сброс",
+ "ui-settings-overlay-autohide": "Оверлей только в очереди или FATE",
+ "ui-notification-overlay-autohide": "Опция будет применена после изменения состояния очереди или при появлении FATE.\nДля корректного отображения, пожалуйста, перезапустите приложение.\nВ ожидании подключения к клиенту игры, отображается оверлей.\n(Чтобы уведомить о состоянии подключения.)",
+ "ui-settings-startupshow": "Показать окно при запуске программы",
+ "ui-settings-iconflash": "Мигать значком если Duty/FATE найдены",
+ "ui-settings-cheatroulette": "Показывать название Duty в режиме Duty Roulette",
+ "ui-settings-copymacro": "Копировать данные о duty в буфер, когда он будет найден.",
+ "ui-settings-copymacro-dialog-title": "скопировать макрос DFA",
+ "ui-settings-copymacro-dialog-text": "Скопировать <{0}> макрос в буфер обмена?",
+ "ui-settings-usevpn": "Не фильтровать подключение к локальной сети (VPN, и т.д)",
+ "ui-settings-usevpn-alert": "Отключите эту опцию для захвата сетевого пакета.",
+ "ui-settings-fatesound": "Включить звуковое уведомления FATE \n(отключает пользовательский сигнал)",
+ "ui-settings-customsound": "Свой сигнал уведомлений FATE/Duty ",
+ "ui-settings-getsoundfile": "Обзор",
+ "ui-settings-getfilewav": "WAV files (*.wav)|*.wav",
+ "ui-notification-customsound-selectfile": "Сначала выберите звуковой файл",
+ "ui-link-localization": "Прими участие в локализации DFAssist",
+
+ "ui-3rdparty-telegram-title": "Telegram оповещения",
+ "ui-3rdparty-telegram-activate": "Включить",
+ "ui-3rdparty-telegram-queuestatus": "Cтатус очереди",
+ "ui-3rdparty-telegram-about": "Если подбор завершен или появится FATE, отправить сообщение в Telegram.\nПолучить Chat ID, можно у DF Assist Telegram Bot отправив любое сообщение.",
+ "ui-3rdparty-discord-title": "Discord оповещения",
+ "ui-3rdparty-discord-activate": "Включить",
+ "ui-3rdparty-discord-numberonly-alert": "Ваш Discord ID.",
+ "ui-3rdparty-discord-about": "Оповестить в чат Discord упомянув Вас.\nВведите свой 15-значный Discord ID.\n\nУзнать свой Discord ID: введите команду !id в канале #get-discord-id на сервере DFAssist Discord Server. Ответом будет ваш Discord ID.\nЧтобы получить уведомление, вы должны быть на сервере.",
+
+ "ui-advanced-http": "Пользовательский HTTP запрос",
+ "ui-advanced-http-enable": "Включить",
+ "ui-advanced-http-duty-matched": "Отправить когда Duty будет подобран",
+ "ui-advanced-http-fate-occured": "Отправить когда FATE будет обнаружен",
+ "ui-advanced-http-readme": "Если включено, DFAssist будет отсылать POST HTTP запросы \n\"status\" и \"info\" по указанному адресу.\n\"status\" отправляется в случае \"duty-match\" или \"fate-occured\".\n\"info\" отправляется если известен Duty или FATE.\n\nЭта функция будет улучшена в будущем.",
+
+ "ui-debug": "Debug",
+ "ui-debug-log": "Log Debug logs",
+
+ "ui-fate-selectall": "Выбрать всё",
+ "ui-fate-unselectall": "Отменить всё",
+ "ui-fate-preset": "Пресеты",
+ "ui-fate-apply": "Применить",
+ "ui-fate-about": "Выбери FATE чтобы получить уведомление о начале и нажми \"Применить\". Оповещения работают только на локации выбранного FATE",
+
+ "ui-logs-copy": "Копировать Логи",
+ "ui-logs-clear": "Очистить",
+
+ "ui-info-about": "[Участники]\n유채색\nLaiglinne\nHibiyasleep\nAlex00728 (Jaehyuk-Lee)\n[При поддержке] : fpdhs698\n[Copyright]\nВсе названия компаний, продуктов являются зарегистрированными или незарегистрированными товарными знаками соответствующих владельцев\n(C)2010 - 2019 SQUARE ENIX CO., LTD All Rights Reserved.\nKorea Published by ACTOZ SOFT.",
+
+ "ui-msgbox-title-info": "DFA Оповещения ",
+ "ui-msgbox-title-warning": "DFA предупреждения ",
+ "ui-msgbox-title-error": "DFA ошибки",
+
+ "ui-language-changed": "Был выбран русский язык.\nДля корректного отображения, пожалуйста, перезапустите приложение.",
+
+ "ui-clipboard-copied": "Скопировано в буфер",
+
+ "ui-cheat-roulette-confirm": "Эта функция отключена по умолчанию для предотвращения неприятных ситуаций \nПожалуйста, не стоит отказываться от участия в Duty, только потому что оно вам не нравится. \nВы все еще хотите включить ее?",
+ "ui-cheat-roulette-enabled": "Включено. \nПожалуйста, не стоит отказываться от участия в подземелье, только потому что оно вам не нравится. ",
+
+ "ui-clear-log-confirm": "Очистить логи?",
+
+ "ui-fate-selection-saved": "FATE оповещения установлены.",
+ "ui-fate-preset-applied": "FATE пресет принят.",
+
+ "ui-updating": "Обновление программы...\n{0}",
+
+ "ui-app-crashed": "Приложение закрылось из-за неизвестной проблемы.\n\nОшибка: {0}",
+
+
+ "overlay-waiting-connection": "Ожидаем подключения FFXIV ",
+ "overlay-not-queuing": "Поиск очереди не ведётся",
+ "overlay-duty-count-unknown": "Идет подбор",
+ "overlay-duty-count": "{0} Идет подбор",
+ "overlay-queue-waiting-party": "Поиск группы: {0} / {1} / {2}",
+ "overlay-queue-waiting": "Получение информации...",
+ "overlay-queue-order": "#{0} в очереди на вашу роль",
+ "overlay-roulette": "Duty roulette",
+ "overlay-queue-waiting-confirm": "Ожидает вашего подтверждения",
+ "overlay-queue-matched": "Подобран!",
+ "overlay-queue-confirming": "Ждем подтверждения",
+ "overlay-fate-occured": "Начался FATE!",
+
+
+ "l-process-set-success": "P: выбран процесс FFXIV: {0}",
+ "l-process-set-failed": "P: не удалось назначить процесс FFXIV.",
+ "l-process-finding": "P: Поиск процесса FFXIV...",
+ "l-process-found-nothing": "P: Не удалось найти процесс FFXIV.",
+ "l-process-found-multiple": "P: 2 или более FFXIV процесов уже запущено.",
+
+ "l-telegram-failed-request": "R: Произошла ошибка при запросе сообщения в телеграм",
+ "l-telegram-failed-general": "R: Произошла ошибка при отправке сообщения в телеграм: {0}",
+ "l-telegram-success": "R: Сообщение отправлено в Telegram!",
+ "l-discord-failed-request": "R: Произошла ошибка при запросе сообщения Discord",
+ "l-discord-failed-general": "R: Произошла ошибка при отправке сообщения в Discord: {0}",
+ "l-discord-success": "R: Сообщение отправлено в Discord!",
+
+ "l-web-request-failed": "W: W: ошибка запроса веб-службы",
+
+ "l-updater-current-version": "U: Текушая версия: {0}",
+ "l-updater-latest-version": "U: Последняя версия: {0}",
+ "l-updater-is-latest": "U: Используется последняя версия.",
+ "l-updater-new-version": "U: Доступно обновление.",
+ "l-updater-error-general": "U: Ошибка при обновлении данных",
+ "l-updater-error-data": "U: Ошибка при обновлении Duty/FATE ",
+ "l-updater-error-check": "U: Не удалось найти информацию об обновлении.",
+ "l-updater-error-no-url": "U: Не удается найти файл обновления.",
+ "l-updater-error-downloading": "U: Ошибка при получении файла обновления",
+
+ "l-data-updated": "D: Данные Duty/FATE обновлены до весрии {0}.",
+ "l-data-is-latest": "D: Используются последние Duty/FATE данные (version {0}).",
+ "l-data-error": "D: Произошла ошибка при обработке данных Duty/FATE",
+
+ "l-packet-error-ip": "P: Ошибка парсинга IP пакетов",
+ "l-packet-error-tcp": "P: Ошибка парсинга TCP-пакетов",
+
+ "l-network-started": "N: Чтение сетевых пакетов FFXIV начато",
+ "l-network-starting": "N: Начинаю читать сетевые пакеты FFXIV",
+ "l-network-stopped": "N: Чтение сетевых пакетов FFXIV остановлено",
+ "l-network-stopping": "N: Прекращаю читать сетевые пакеты FFXIV",
+ "l-network-error-starting": "N: Не получилось начать",
+ "l-network-error-stopping": "N: Не получилось остановиться",
+ "l-network-error-already-started": "N: Уже начато",
+ "l-network-error-already-stopped": "Уже прекращено",
+ "l-network-error-no-connection": "N: Нет соединения с серверами FFXIV",
+ "l-network-error-receiving-packet": "N: Ошибка получения пакета",
+ "l-network-error-filtering-packet": "N: Ошибка фильтрации пакетов",
+ "l-network-error-finding-lobby": "N: Ошибка получения информации от lobby-сервера",
+ "l-network-detected-connection-closing": "N: Обнаружено отключение от серверов FFXIV",
+ "l-network-detected-connection": "N: Обнаружено подключение к серверам FFXIV: {0}",
+
+ "l-firewall-registered": "FW: Регистрация",
+ "l-firewall-error": "FW: Ошибка регистрация",
+
+ "l-wav-error": "S: неверный wav-файл.",
+
+ "l-POST-send": "N: POST Запрашиваемый URl: {0}, Data: {1}",
+ "l-POST-no-response": "S: POST нет ответа!",
+ "l-POST-failed": "S: POST Запрос не удался!",
+ "l-POST-response": "S: POST Ожидание ответа: {0}",
+
+ "l-analyze-error-length": "A: Ошибка длины в анализируемом сообщении: {0}, {1}/{2}",
+ "l-analyze-error-general": "A: Ошибка анализируемого сообщения",
+ "l-analyze-error": "A: Ошибка обработки сообщения",
+
+ "l-queue-started-general": "Q: Начало подбора [{0}]",
+ "l-queue-started-roulette": "Q: Начало подбора Duty-рулетки [{0}]",
+ "l-queue-stopped": "Q: подбор прекращен",
+ "l-queue-entered": "Q: Входим в подземелье",
+ "l-queue-matched": "Q: Найдено [{0}]",
+ "l-queue-updated": "Q: Обновление статуса поиска [{0}, {1}, {2}/{3}, {4}/{5}, {6}/{7}]",
+
+ "l-fate-occured-info": "F: {0} Начался FATE!",
+
+ "l-field-instance-entered": "I: Подтверждение входа в подземелье [{0}]",
+ "l-field-instance-left": "I: Покидаем подземелье"
+}
\ No newline at end of file
diff --git a/App/Resources/Localization/zh-cn.json b/App/Resources/Localization/zh-cn.json
new file mode 100644
index 0000000..b97e11b
--- /dev/null
+++ b/App/Resources/Localization/zh-cn.json
@@ -0,0 +1,206 @@
+{
+ "app-name": "任务/危命通知器",
+
+
+ "unknown-instance": "未知任务 ({0})",
+ "unknown-roulette": "未知随机任务 ({0})",
+ "unknown-area": "未知区域 ({0})",
+ "unknown-fate": "未知危命 ({0})",
+
+
+ "notification-app-updated": "版本 {0} 已更新",
+ "notification-queue-matched": "「{0}」匹配成功!",
+ "notification-fate-occured": "「{0}」出现!",
+
+
+ "fate-occured": "「{0}」危命已出现!",
+ "queue-matched": "「{0}」任务匹配成功!",
+
+
+ "fate-preset-animus-SkyfireI": "火天文书 第一卷",
+ "fate-preset-animus-SkyfireII": "火天文书 第二卷",
+ "fate-preset-animus-NetherfireI": "火狱文书 第一卷",
+ "fate-preset-animus-SkyfallI": "水天文书 第一卷",
+ "fate-preset-animus-SkyfallII": "水天文书 第二卷",
+ "fate-preset-animus-NetherfallI": "风天文书 第三卷",
+ "fate-preset-animus-SkywindI": "风天文书 第一卷",
+ "fate-preset-animus-SkywindII": "风天文书 第二卷",
+ "fate-preset-animus-SkyearthI": "土天文书 第一卷",
+ "fate-preset-Ixion": "伊克西翁(基拉巴尼亚湖区)",
+ "fate-preset-Tamamo": "玉藻前(延夏)",
+ "fate-preset-frogMount": "畏惧装甲(珂露西亚岛)",
+ "fate-preset-frogSuit": "古塔尼亚(黑风海)",
+
+
+ "ui-notifymenustrip-open": "打开",
+ "ui-notifymenustrip-close": "退出",
+
+ "ui-topsetting-process": "FFXIV 进程 ID",
+ "ui-topsetting-select": "手动选择",
+ "ui-topsetting-reset": "重置",
+
+ "ui-tabcontrol-settings": "设置",
+ "ui-tabcontrol-3rdparty": "第三方",
+ "ui-tabcontrol-advanced": "高级",
+ "ui-tabcontrol-fate": "危命",
+ "ui-tabcontrol-logs": "日志",
+ "ui-tabcontrol-info": "信息",
+
+ "ui-settings-title": "基础设置",
+ "ui-settings-overlay-use": "使用悬浮窗",
+ "ui-settings-overlay-tooltip": "拖动悬浮窗左侧彩色部分以移动该窗口",
+ "ui-settings-overlay-reset": "重置",
+ "ui-settings-overlay-autohide": "仅在队列中或危命出现时显示悬浮窗",
+ "ui-notification-overlay-autohide": "该选项将在队列状态发生改变时或新危命出现时生效。\n重启应用也能使该选项立即生效。\n\n在等待客户端连接时,悬浮窗将一直显示。\n(以通知用户该应用是否正常工作。)",
+ "ui-settings-startupshow": "在应用启动时显示主窗体",
+ "ui-settings-iconflash": "在任务匹配完成或危命出现时使 FFXIV 图标闪烁",
+ "ui-settings-cheatroulette": "显示匹配到的随机任务副本名",
+ "ui-settings-copymacro": "当任务匹配完成时自动从任务数据中复制宏",
+ "ui-settings-copymacro-dialog-title": "DFA 复制宏",
+ "ui-settings-copymacro-dialog-text": "是否将宏 <{0}> 复制到剪贴板?",
+ "ui-settings-usevpn": "不过滤本地网络连接(例如:VPN)",
+ "ui-settings-usevpn-alert": "通常你需要关闭这个选项来抓取网络包",
+ "ui-settings-fatesound": "启动危命通知音效\n(禁用自定义音效)",
+ "ui-settings-customsound": "自定义危命/任务的提示音",
+ "ui-settings-getsoundfile": "选择文件",
+ "ui-settings-getfilewav": "WAV 音频文件 (*.wav) | *.wav",
+ "ui-notification-customsound-selectfile": "请先选择音频文件",
+ "ui-link-localization": "帮助 DFAssist 翻译文本",
+
+ "ui-3rdparty-telegram-title": "Telegram 提示",
+ "ui-3rdparty-telegram-activate": "开启",
+ "ui-3rdparty-telegram-queuestatus": "发送队列状态",
+ "ui-3rdparty-telegram-about": "当队列弹出或新危命出现时,发送一条消息到该 Telegram 聊天室。\n你可以通过向 DFAssist Telegram Bot 发送消息来获取你的 Chat ID。",
+ "ui-3rdparty-discord-title": "Discord 提示",
+ "ui-3rdparty-discord-activate": "开启",
+ "ui-3rdparty-discord-numberonly-alert": "Discord ID 只能输入数字",
+ "ui-3rdparty-discord-about": "以 @ 提及对该 Discord ID 进行通知。\n输入你的 Discord ID(至少 15 位)。\n\n要获取 Discord ID,在 DFAssist Discord Server 中 #get-discord-id 频道中输入 !id 命令,DFAssist Bot 会回复你的 Discord ID。\n同时,你需要加入到 DFAssist Discord Server 中以接受通知。",
+
+ "ui-advanced-http": "自定义 HTTP 请求",
+ "ui-advanced-http-enable": "开启",
+ "ui-advanced-http-duty-matched": "当匹配到任务时发送请求",
+ "ui-advanced-http-fate-occured": "当匹配到危命时发送请求",
+ "ui-advanced-http-readme": "开启时,DFAssist 将发送一个包含 \"status\" 和 \"info\" 的 HTTP POST 请求到指定的 URL。\n\"status\" 为 \"duty-match\" 或 \"fate-occured\"。\n\"info\" 为匹配到的任务名或出现的危命名。\n\n计划中,该选项将被更新更多功能。",
+
+ "ui-debug": "Debug",
+ "ui-debug-log": "Log Debug logs",
+
+ "ui-fate-selectall": "全选",
+ "ui-fate-unselectall": "全不选",
+ "ui-fate-preset": "预置",
+ "ui-fate-apply": "应用",
+ "ui-fate-about": "选择你想接收通知的危命,并按「应用」按钮。\n通知仅在你位于这些危命的区域时工作。",
+
+ "ui-logs-copy": "复制日志",
+ "ui-logs-clear": "清空",
+
+ "ui-info-about": "[贡献者]\n유채색\nLaiglinne\nHibiyasleep\nAlex00728 (Jaehyuk-Lee)\n[支持]:fpdhs698\n[版权信息]\n所有公司,产品,系统名称均为\n其各自所有者的注册或未注册商标。\n(C)2010 - 2019 SQUARE ENIX CO., LTD 保留一切权利。\n韩国版由 ACTOZ SOFT 发布。\n中国版由盛趣游戏发布。\n ",
+
+ "ui-msgbox-title-info": "DFA 提示",
+ "ui-msgbox-title-warning": "DFA 警告",
+ "ui-msgbox-title-error": "DFA 错误",
+
+ "ui-language-changed": "语言切换为中文。\n悬浮窗的语言将在队列状态发送改变时改变。\n若要立即生效,请重启本应用程序。",
+
+ "ui-clipboard-copied": "已复制到剪切版。",
+
+ "ui-cheat-roulette-confirm": "该功能默认被关闭,以避免滥用。\n请不要仅仅因为不喜欢而辞退任务。\n\n仍要启用该功能吗?",
+ "ui-cheat-roulette-enabled": "已启用。\n请再次注意,不要仅仅因为不喜欢而辞退任务。",
+
+ "ui-clear-log-confirm": "清除日志?",
+
+ "ui-fate-selection-saved": "危命通知已设置。",
+ "ui-fate-preset-applied": "危命预置已应用。",
+
+ "ui-updating": "正在更新本程序 ……\n{0}",
+
+ "ui-app-crashed": "由于未知错误,应用已退出。\n\n错误:{0}",
+
+
+ "overlay-waiting-connection": "正在等待客户端连接",
+ "overlay-not-queuing": "当前不在任务搜索队列中",
+ "overlay-duty-count-unknown": "匹配中的任务",
+ "overlay-duty-count": "{0} 任务正在匹配",
+ "overlay-queue-waiting-party": "队员确认情况:{0} / {1} / {2}",
+ "overlay-queue-waiting": "正在获取信息 ……",
+ "overlay-queue-order": "职能等待顺序:${0} ",
+ "overlay-roulette": "随机任务",
+ "overlay-queue-waiting-confirm": "正在等待你的确认",
+ "overlay-queue-matched": "已匹配到任务!",
+ "overlay-queue-confirming": "正在等待确认",
+ "overlay-fate-occured": "危命出现!",
+
+
+ "l-process-set-success": "P: 选择的 FFXIV 进程:{0}",
+ "l-process-set-failed": "P: 设置 FFXIV 进程失败。",
+ "l-process-finding": "P: 正在寻找 FFXIV 进程 ……",
+ "l-process-found-nothing": "P: 寻找 FFXIV 进程失败 ……",
+ "l-process-found-multiple": "P: 2 个或以上的 FFXIV 进程正在运行。",
+
+ "l-telegram-failed-request": "R: 请求 Telegram 消息时出错。",
+ "l-telegram-failed-general": "R: 发送 Telegram 消息失败:{0}。",
+ "l-telegram-success": "R: Telegram 消息已发送!",
+ "l-discord-failed-request": "R: 请求 Discord 消息时出错。",
+ "l-discord-failed-general": "R: 发送 Discord 消息失败:{0}。",
+ "l-discord-success": "R: Discord 消息已发送!",
+
+ "l-web-request-failed": "W: 请求 Web Service 时出错。",
+
+ "l-updater-current-version": "U: 当前版本:{0}",
+ "l-updater-latest-version": "U: 最新版本:{0}",
+ "l-updater-is-latest": "U: 正在使用最新版本。",
+ "l-updater-new-version": "U: 更新可用。",
+ "l-updater-error-general": "U: 更新数据时出错。",
+ "l-updater-error-data": "U: 更新任务/危命数据时出错。",
+ "l-updater-error-check": "U: 无法获取更新信息。",
+ "l-updater-error-no-url": "U: 无法获取更新文件。",
+ "l-updater-error-downloading": "U: 获取更新数据时出错。",
+
+ "l-data-updated": "D: 任务/危命更新到版本 {0}。",
+ "l-data-is-latest": "D: 正在使用最新任务/危命数据(版本 {0})。",
+ "l-data-error": "D: 处理任务/危命数据时出错。",
+
+ "l-packet-error-ip": "P: IP 包解析错误。",
+ "l-packet-error-tcp": "P: TCP 包解析错误。",
+
+ "l-network-started": "N: 已开始读取 FFXIV 网络数据包。",
+ "l-network-starting": "N: 正在开始读取 FFXIV 网络数据包 ……",
+ "l-network-stopped": "N: 已停止读取 FFXIV 网络数据包。",
+ "l-network-stopping": "N: 正在停止读取 FFXIV 网络数据包 ……",
+ "l-network-error-starting": "N: 启动失败。",
+ "l-network-error-stopping": "N: 停止失败。",
+ "l-network-error-already-started": "N: 已启动。",
+ "l-network-error-already-stopped": "N: 已停止。",
+ "l-network-error-no-connection": "N: 无法找到 FFXIV 服务器连接。",
+ "l-network-error-receiving-packet": "N: 接收数据包时出错。",
+ "l-network-error-filtering-packet": "N: 过滤数据包时出错。",
+ "l-network-error-finding-lobby": "N: 获取大厅服务器信息时出错。",
+ "l-network-detected-connection-closing": "N: 检测到从 FFXIV 服务器断开连接。",
+ "l-network-detected-connection": "N: 检测到与 FFXIV 服务器的连接:{0}。",
+
+ "l-firewall-registered": "FW: 已注册。",
+ "l-firewall-error": "FW: 注册时出错。",
+
+ "l-wav-error": "S: 无效的 wav 文件。",
+
+ "l-POST-send": "N: POST 请求 URL:{0},数据:{1}。",
+ "l-POST-no-response": "S: POST 无响应!",
+ "l-POST-failed": "S: POST 请求失败!",
+ "l-POST-response": "S: POST 响应:{0}。",
+
+ "l-analyze-error-length": "A: 分析消息时长度错误:{0},{1}/{2}。",
+ "l-analyze-error-general": "A: 分析消息时出错。",
+ "l-analyze-error": "A: 处理消息时出错。",
+
+ "l-queue-started-general": "Q: 任务匹配开始 [{0}]。",
+ "l-queue-started-roulette": "Q: 随机任务匹配开始 [{0}]。",
+ "l-queue-stopped": "Q: 任务匹配已停止。",
+ "l-queue-entered": "Q: 已进入副本区域。",
+ "l-queue-matched": "Q: 匹配到 [{0}]。",
+ "l-queue-updated": "Q: 匹配状态已更新 [{0}, {1}, {2}/{3}, {4}/{5}, {6}/{7}]。",
+
+ "l-fate-occured-info": "F: {0} 危命出现!",
+
+ "l-field-instance-entered": "I: 已进入副本区域 [{0}]。",
+ "l-field-instance-left": "I: 已离开副本区域。"
+}
\ No newline at end of file
diff --git a/App/Resources/ZoneList.xml b/App/Resources/ZoneList.xml
deleted file mode 100644
index 48454e1..0000000
--- a/App/Resources/ZoneList.xml
+++ /dev/null
@@ -1,1521 +0,0 @@
-
- 20170822.1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
-
- -
-
-
-
-
- -
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
diff --git a/App/Resources/language2.png b/App/Resources/language2.png
new file mode 100644
index 0000000..fb0639a
Binary files /dev/null and b/App/Resources/language2.png differ
diff --git a/App/Settings.cs b/App/Settings.cs
index 8bfe44c..83058e7 100644
--- a/App/Settings.cs
+++ b/App/Settings.cs
@@ -13,16 +13,26 @@ internal class Settings
public static bool ShowOverlay { get; set; } = true;
public static int OverlayX { get; set; } = Global.OVERLAY_XY_UNSET;
public static int OverlayY { get; set; } = Global.OVERLAY_XY_UNSET;
- public static bool ShowAnnouncement { get; set; } = true;
+ public static bool autoHideOverlay { get; set; } = false;
public static bool StartupShowMainForm { get; set; } = true;
- public static bool TwitterEnabled { get; set; } = false;
- public static bool AutoOverlayHide { get; set; } = true;
public static bool FlashWindow { get; set; } = true;
+ public static bool FateSound { get; set; } = false;
+ public static bool CustomSound { get; set; } = false;
+ public static string CustomSoundPath { get; set; } = "";
+ public static bool TelegramEnabled { get; set; } = false;
+ public static bool TelegramQueueStatusEnabled { get; set; } = false;
+ public static string TelegramChatId { get; set; } = "";
+ public static bool DiscordEnabled { get; set; } = false;
+ public static string DiscordAccount { get; set; } = "";
+ public static bool useVPN { get; set; } = false;
public static bool CheatRoulette { get; set; } = false;
- public static string TwitterAccount { get; set; } = "";
- public static bool Updated { get; set; } = true;
- public static bool PlaySound { get; set; } = false;
- public static string SoundLocation { get; set; } = "";
+ public static bool copyMacro { get; set; } = false;
+ public static bool Updated { get; set; } = false;
+ public static bool customHttpRequest { get; set; } = false;
+ public static string customHttpUrl { get; set; } = "";
+ public static bool requestOnDutyMatched { get; set; } = false;
+ public static bool requestOnFateOccured { get; set; } = false;
+ public static bool debugLog { get; set; } = false;
public static HashSet FATEs { get; set; } = new HashSet();
private static void Init()
@@ -42,21 +52,30 @@ public static void Load()
}
else
{
- StartupShowMainForm = iniFile.ReadValue("startup", "show") != "0";
+ StartupShowMainForm = iniFile.ReadValue("startup", "show") == "1";
ShowOverlay = iniFile.ReadValue("overlay", "show") != "0";
- AutoOverlayHide = iniFile.ReadValue("overlay", "autohide") != "0";
OverlayX = int.Parse(iniFile.ReadValue("overlay", "x") ?? "0");
OverlayY = int.Parse(iniFile.ReadValue("overlay", "y") ?? "0");
- ShowAnnouncement = iniFile.ReadValue("overlay", "announcement") != "0";
- TwitterEnabled = iniFile.ReadValue("notification", "twitter") == "1";
- TwitterAccount = iniFile.ReadValue("notification", "twitteraccount") ?? "";
- FlashWindow = iniFile.ReadValue("notification", "flashwindow") != "0";
- // CheatRoulette = iniFile.ReadValue("misc", "cheatroulette") == "1";
- CheatRoulette = false; // 악용 방지를 위한 강제 비활성화
+ autoHideOverlay = iniFile.ReadValue("overlay", "autohideoverlay") == "1";
+ FlashWindow = iniFile.ReadValue("notification", "flashwindow") == "1";
+ FateSound = iniFile.ReadValue("notification", "fatesound") == "1";
+ CustomSound = iniFile.ReadValue("notification", "customsound") == "1";
+ CustomSoundPath = iniFile.ReadValue("notification", "customsoundpath") ?? "";
+ TelegramEnabled = iniFile.ReadValue("notification", "telegram") == "1";
+ TelegramQueueStatusEnabled = iniFile.ReadValue("notification", "telegramqueuestatus") == "1";
+ TelegramChatId = iniFile.ReadValue("notification", "telegramchatid") ?? "";
+ DiscordEnabled = iniFile.ReadValue("notification", "discord") == "1";
+ DiscordAccount = iniFile.ReadValue("notification", "discordaccount") ?? "";
+ useVPN = iniFile.ReadValue("misc", "useVPN") == "1";
+ CheatRoulette = iniFile.ReadValue("misc", "cheatroulette") == "1";
+ copyMacro = iniFile.ReadValue("misc", "copymacro") == "1";
Language = iniFile.ReadValue("misc", "language") ?? "ko-kr";
- Updated = iniFile.ReadValue("internal", "updated") != "0";
- PlaySound = iniFile.ReadValue("notification","playsound") != "0";
- SoundLocation = iniFile.ReadValue("notification", "soundlocation") ?? "";
+ Updated = iniFile.ReadValue("internal", "updated") == "1";
+ customHttpRequest = iniFile.ReadValue("http", "customHttpRequest") == "1";
+ customHttpUrl = iniFile.ReadValue("http", "customHttpUrl") ?? "";
+ requestOnDutyMatched = iniFile.ReadValue("http", "requestOnDutyMatched") == "1";
+ requestOnFateOccured = iniFile.ReadValue("http", "requestOnFateOccured") == "1";
+ debugLog = iniFile.ReadValue("dev", "debuglog") == "1";
var fates = iniFile.ReadValue("fate", "fates");
if (!string.IsNullOrEmpty(fates))
@@ -70,19 +89,29 @@ public static void Save()
{
iniFile.WriteValue("startup", "show", StartupShowMainForm ? "1" : "0");
iniFile.WriteValue("overlay", "show", ShowOverlay ? "1" : "0");
- iniFile.WriteValue("overlay", "autohide", AutoOverlayHide ? "1" : "0");
iniFile.WriteValue("overlay", "x", OverlayX.ToString());
iniFile.WriteValue("overlay", "y", OverlayY.ToString());
- iniFile.WriteValue("overlay", "announcement", ShowAnnouncement ? "1" : "0");
- iniFile.WriteValue("notification", "twitter", TwitterEnabled ? "1" : "0");
- iniFile.WriteValue("notification", "twitteraccount", TwitterAccount);
+ iniFile.WriteValue("overlay", "autohideoverlay", autoHideOverlay ? "1" : "0");
iniFile.WriteValue("notification", "flashwindow", FlashWindow ? "1" : "0");
+ iniFile.WriteValue("notification", "fatesound", FateSound ? "1" : "0");
+ iniFile.WriteValue("notification", "customsound", CustomSound ? "1" : "0");
+ iniFile.WriteValue("notification", "customsoundpath", CustomSoundPath);
+ iniFile.WriteValue("notification", "telegram", TelegramEnabled ? "1" : "0");
+ iniFile.WriteValue("notification", "telegramqueuestatus", TelegramQueueStatusEnabled ? "1" : "0");
+ iniFile.WriteValue("notification", "telegramChatId", TelegramChatId);
+ iniFile.WriteValue("notification", "discord", DiscordEnabled ? "1" : "0");
+ iniFile.WriteValue("notification", "discordaccount", DiscordAccount);
+ iniFile.WriteValue("misc", "useVPN", useVPN ? "1" : "0");
iniFile.WriteValue("misc", "cheatroulette", CheatRoulette ? "1" : "0");
+ iniFile.WriteValue("misc", "copymacro", copyMacro ? "1" : "0");
iniFile.WriteValue("misc", "language", Language);
iniFile.WriteValue("fate", "fates", string.Join(",", FATEs));
iniFile.WriteValue("internal", "updated", Updated ? "1" : "0");
- iniFile.WriteValue("notification", "playsound", PlaySound ? "1" : "0");
- iniFile.WriteValue("notification", "soundlocation", SoundLocation);
+ iniFile.WriteValue("http", "customHttpRequest", customHttpRequest ? "1" : "0");
+ iniFile.WriteValue("http", "customHttpUrl", customHttpUrl);
+ iniFile.WriteValue("http", "requestOnDutyMatched", requestOnDutyMatched ? "1" : "0");
+ iniFile.WriteValue("http", "requestOnFateOccured", requestOnFateOccured ? "1" : "0");
+ iniFile.WriteValue("dev", "debuglog", debugLog ? "1" : "0");
}
}
}
diff --git a/App/Struct/Instance.cs b/App/Struct/Instance.cs
index b45458c..f49fc0b 100644
--- a/App/Struct/Instance.cs
+++ b/App/Struct/Instance.cs
@@ -7,5 +7,6 @@ public class Instance
public byte Healer { get; set; }
public byte DPS { get; set; }
public bool PvP { get; set; }
+ public string Macro { get; set; }
}
}
diff --git a/App/Updater.cs b/App/Updater.cs
index 59503b2..62cdf4b 100644
--- a/App/Updater.cs
+++ b/App/Updater.cs
@@ -78,8 +78,6 @@ internal static void CheckNewVersion(MainForm mainForm)
updaterForm.ShowDialog();
});
- Sentry.Report("Update started");
-
var exepath = Process.GetCurrentProcess().MainModule.FileName;
var stream = GetDownloadStreamByUrl(url);
@@ -137,7 +135,7 @@ internal static void CheckNewVersion(MainForm mainForm)
try
{
var json = WebApi.Request($"https://raw.githubusercontent.com/{Global.GITHUB_REPO}/master/App/Resources/Data/{Settings.Language}.json");
- Data.Fill(json);
+ Data.Fill(json, mainForm);
}
catch (Exception ex)
{
diff --git a/App/Util/INIFile.cs b/App/Util/INIFile.cs
index 9dcb89b..c03f835 100644
--- a/App/Util/INIFile.cs
+++ b/App/Util/INIFile.cs
@@ -53,9 +53,9 @@ public void WriteValue(string Section, string Key, string Value)
///
public string ReadValue(string Section, string Key)
{
- var temp = new StringBuilder(4096);
+ var temp = new StringBuilder(8192);
var i = NativeMethods.GetPrivateProfileString(Section, Key, "", temp,
- 4096, this.path);
+ 8192, this.path);
if (i == 0)
{
return null;
diff --git a/App/Util/LMessageBox.cs b/App/Util/LMessageBox.cs
index 1710cec..0291bf0 100644
--- a/App/Util/LMessageBox.cs
+++ b/App/Util/LMessageBox.cs
@@ -25,6 +25,15 @@ internal static DialogResult E(string bodyKey,
return Show(bodyKey, "ui-msgbox-title-error", buttons, MessageBoxIcon.Error, defaultButton);
}
+ internal static DialogResult Dialog(
+ string body, string title,
+ MessageBoxButtons buttons = MessageBoxButtons.OK,
+ MessageBoxIcon icon = MessageBoxIcon.None,
+ MessageBoxDefaultButton defaultButton = MessageBoxDefaultButton.Button1)
+ {
+ return MessageBox.Show(body, title, buttons, icon, defaultButton);
+ }
+
private static DialogResult Show(
string bodyKey, string titleKey,
MessageBoxButtons buttons = MessageBoxButtons.OK,
diff --git a/App/Util/Localization.cs b/App/Util/Localization.cs
index 9ecd637..3351e30 100644
--- a/App/Util/Localization.cs
+++ b/App/Util/Localization.cs
@@ -26,10 +26,22 @@ internal static void Initialize(string language)
json = Resources.Localization_FR_FR;
break;
+ case "de-de":
+ json = Resources.Localization_DE_DE;
+ break;
+
case "ja-jp":
json = Resources.Localization_JA_JP;
break;
+ case "ru-ru":
+ json = Resources.Localization_RU_RU;
+ break;
+
+ case "zh-cn":
+ json = Resources.Localization_ZH_CN;
+ break;
+
default:
return;
}
diff --git a/App/Util/Log.cs b/App/Util/Log.cs
index df6cf60..6eaa583 100644
--- a/App/Util/Log.cs
+++ b/App/Util/Log.cs
@@ -59,16 +59,15 @@ internal static void Ex(Exception ex, string key, params object[] args)
message = Escape(message);
E($"{format}: {message}", args);
-
- Sentry.ReportAsync(ex, new { LogMessage = string.Format(format.ToString(), args) });
#endif
}
internal static void D(object format, params object[] args)
{
-#if DEBUG
- Write(Color.Gray, format, args);
-#endif
+ if (Settings.debugLog)
+ {
+ Write(Color.Gray, format, args);
+ }
}
internal static void B(byte[] buffer)
diff --git a/App/Util/Sentry.cs b/App/Util/Sentry.cs
deleted file mode 100644
index 5334900..0000000
--- a/App/Util/Sentry.cs
+++ /dev/null
@@ -1,97 +0,0 @@
-using System;
-using System.Threading.Tasks;
-using System.Windows.Forms;
-using SharpRaven;
-using SharpRaven.Data;
-
-namespace App
-{
- internal class Sentry
- {
- private static RavenClient ravenClient;
-
- internal static void Initialise()
- {
- ravenClient = new RavenClient(Global.RAVEN_DSN);
- ravenClient.Release = Global.VERSION;
- ravenClient.Logger = "client";
-
- Application.SetUnhandledExceptionMode(UnhandledExceptionMode.ThrowException);
- AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
- }
-
- internal static void Report(Exception exception, object extra)
- {
- var @event = new SentryEvent(exception);
- @event.Extra = extra;
- Report(@event);
- }
-
- internal static void Report(string message)
- {
- var @event = new SentryEvent(new SentryMessage(message));
- @event.Level = ErrorLevel.Debug;
- Report(@event);
- }
-
- internal static void Report(SentryEvent @event)
- {
-#if !DEBUG
- try
- {
- @event.Tags.Add("Arch", Environment.Is64BitOperatingSystem ? "x64" : "x86");
- @event.Tags.Add("OS", Environment.OSVersion.VersionString);
- @event.Tags.Add("CLR", Environment.Version.ToString());
-
- ravenClient.Capture(@event);
- }
- catch { }
-#endif
- }
-
- internal static void ReportAsync(Exception exception, object extra)
- {
- var @event = new SentryEvent(exception);
- @event.Extra = extra;
- ReportAsync(@event);
- }
-
- internal static void ReportAsync(string message, ErrorLevel level = ErrorLevel.Debug)
- {
- var @event = new SentryEvent(new SentryMessage(message));
- @event.Level = level;
- ReportAsync(@event);
- }
-
- internal static void ReportAsync(SentryEvent @event)
- {
- Task.Factory.StartNew(() =>
- {
- try
- {
- Report(@event);
- }
- catch { }
- });
- }
-
- private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
- {
- try
- {
- var exception = e.ExceptionObject as Exception;
- if (exception == null)
- {
- return;
- }
-
- MessageBox.Show(Localization.GetText("app-crashed", exception.Message), Localization.GetText("msgbox-title-error"), MessageBoxButtons.OK, MessageBoxIcon.Error);
-
- var @event = new SentryEvent(exception);
- @event.Level = ErrorLevel.Fatal;
- Report(@event);
- }
- catch { }
- }
- }
-}
diff --git a/App/app.config b/App/app.config
index fcd0c93..3f26b59 100644
--- a/App/app.config
+++ b/App/app.config
@@ -1,3 +1,12 @@
-
+
-
+
+
+
+
+
+
+
+
+
+
diff --git a/App/packages.config b/App/packages.config
index fa7b98f..b693c53 100644
--- a/App/packages.config
+++ b/App/packages.config
@@ -3,5 +3,4 @@
-
\ No newline at end of file
diff --git a/README.md b/README.md
index b1d2276..b808322 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,10 @@
-Homepage: https://devunt.github.io/DFAssist
+[](https://github.com/Jaehyuk-Lee/DFAssist/graphs/contributors) [](https://github.com/Jaehyuk-Lee/DFAssist/releases) [](https://github.com/Jaehyuk-Lee/DFAssist/issues) [](https://github.com/Jaehyuk-Lee/DFAssist/releases/latest) [](https://twitter.com/intent/follow?screen_name=DFAssist)
+
+## **This fork is no more maintained!**
+SE is changing opcodes in every patches, even in hot-fix patches. They are intentionally bothering maintaining 3rd-party applications. This is why I stopped maintaining this. You might find some other forks working.
+
+## patch 5.2 update
+After v5.2 patch, SE does not send matched duty of roulette. So, there is no 3rd party app which shows you matched duty of roulette.
+
+Homepage: https://jaehyuk-lee.github.io/DFAssist
+Participate Localization: https://www.transifex.com/dfassist/public/
diff --git a/docs/_config.yml b/docs/_config.yml
index dd3069d..5ee7d95 100644
--- a/docs/_config.yml
+++ b/docs/_config.yml
@@ -6,8 +6,8 @@ paginate: 1
# About/contact
author:
- name: devunt
- url: https://github.com/devunt
+ name: Jaehyuk-Lee
+ url: https://github.com/Jaehyuk-Lee
# Gems
gems:
diff --git a/docs/_includes/page-header.html b/docs/_includes/page-header.html
index 0014732..ea8952d 100644
--- a/docs/_includes/page-header.html
+++ b/docs/_includes/page-header.html
@@ -1,10 +1,12 @@
diff --git a/docs/faq.md b/docs/faq.md
new file mode 100644
index 0000000..1609293
--- /dev/null
+++ b/docs/faq.md
@@ -0,0 +1,40 @@
+---
+layout: page
+title: {{ site.name }}
+---
+
+# FAQ
+**DFAssist** 를 사용하면서 자주 발생하는 문제에 대한 해결책을 모아놓았습니다.
+
+## 기초 확인 사항
+- ```Microsoft .NET Framework 4.0``` ([다운로드](https://www.microsoft.com/ko-kr/download/details.aspx?id=17851))가 필수적으로 설치되어 있어야 합니다.
+- 반드시 **관리자 권한**으로 실행해야 합니다.
+- **PC방** 에서는 자체적으로 네트워크 패킷 읽는 프로그램을 막아놓았을 수 있습니다.
+- 가끔씩 프로그램이 자동으로 네트워크 감지를 시작하지 못할 때가 있습니다. 프로세스 재설정 버튼을 누르거나 프로그램 재시작을 해보세요.
+- 프로그램이 네트워크 패킷을 읽기 시작하기까지 길면 20분까지도 소요될 수 있습니다.
+
+## 업데이트가 안돼요.
+v20190102.1부터 해결되었습니다. 프로그램을 다시 받아주세요.
+
+## 게임 클라이언트 연결이 안되는 경우
+만약 프로그램 로그에 127.0.0.1로의 연결이 있다면, v20190104.1 이후의 버전을 사용하면 해결됩니다.
+WTFast VPN과 호환이 안되는 문제는 v20190317.1 이후의 버전을 사용하면 해결됩니다. (로컬 네트워크 필터링 해제)
+
+## 네트워킹 시작 중... 비스무리 한 것들
+
+
+### 해결법
+- 제어판>Windows (Defender) 방화벽> 고급 설정> 인바운드 규칙 > 새 규칙 > 프로그램 선택, DFAssist 선택해서 다음다음다음다음다음 마침
+
+## 문제 해결
+문제 발생시 [이슈 트래커](https://github.com/jaehyuk-lee/DFAssist/issues)에 발생 상황과 결과를 남겨주세요.
+프로그램 창의 로그 기록도 문제 해결에 큰 도움이 됩니다.
+
+## 저작권
+```
+ 기재되어있는 회사명 · 제품명 · 시스템 이름은 해당 소유자의 상표 또는 등록 상표입니다.
+
+ (C) 2010 - 2019 SQUARE ENIX CO., LTD All Rights Reserved. Korea Published by ACTOZ SOFT.
+```
+상단 회사에 저작권이 없는 코드, 리소스, 데이터 등은 모두
+[퍼블릭 도메인](https://ko.wikipedia.org/wiki/%ED%8D%BC%EB%B8%94%EB%A6%AD_%EB%8F%84%EB%A9%94%EC%9D%B8)에 따라 배포됩니다.
diff --git a/docs/index.cn.md b/docs/index.cn.md
new file mode 100644
index 0000000..dc8c999
--- /dev/null
+++ b/docs/index.cn.md
@@ -0,0 +1,88 @@
+---
+layout: page
+title: {{ site.name }}
+---
+
+# 任务搜索器 / 临危受命助手(DFAssist)
+
+**DFAssist** 是一个最终幻想 XIV 任务搜索器 / 临危受命助手软件。
+在等待时做你其他的事情!DFAssist 会给你匹配通知!
+
+## 信息
+
+- 最新版本 ```v20191003.1``` ([下载](https://github.com/jaehyuk-lee/DFAssist/releases/latest))
+- 目标平台版本 ```Microsoft .NET Framework 4.0``` ([Download](https://www.microsoft.com/en-us/download/details.aspx?id=17851))
+- 游戏版本 ```最终幻想 XIV,版本 5.0```
+
+## 使用指南
+
+1. 从上方的下载链接中下载 ``DFAssist.v********.*.zip`` 文件。
+2. 将其解压到任意位置。
+3. 在解压后的文件夹里执行 ``DFAssist.exe``。
+4. 需要以管理员权限运行以读取 FFXIV 网络数据包。
+5. 如果该应用程序无法运行,从上方的下载链接下载并安装 ``Microsoft .NET Framework 4.0``。
+
+## 功能
+
+- 创建一个显示任务搜索器/临危受命的悬浮窗。
+ - 即使最终幻想 XIV 被最小化,也能显示实时的任务搜索信息,并在匹配完成时给出通知。
+ - 使用随机任务时预览真实任务名(需要设置)。
+ - 当选择的临危受命出现时通知(角色需要在危命所在区域)。
+ - 自动复制宏(宏数据需要包含在 D/F 数据中)。
+ - 支持自定义通知音效。
+- 通过 Telegram 消息或带有 @ 提及的 Discord 消息通知。
+ - 要接收 Discord 消息,你需要在 [DFAssist Discord Server](https://discord.gg/RqesxtS) 中。
+- 可通过 POST 请求通知任务搜索完成或危命出现(更多的更新已在计划中)。
+
+## 解决问题
+
+在 [Issue Tracker](https://github.com/jaehyuk-lee/DFAssist/issues) 上汇报问题。
+
+应用程序窗口中的日志能够给问题解决带来很大帮助,强烈推荐在汇报问题时附加日志。
+
+## 截图
+
+### 悬浮窗界面
+
+
+
+
+### 任务搜索信息
+
+
+
+### 匹配到任务
+
+
+
+### 危命出现
+
+
+
+### FFXIV 图标闪烁
+
+
+
+### 预览随机任务的真实任务名
+
+
+
+### 应用程序界面
+
+
+
+
+
+### 托盘图标
+
+
+
+## 版权信息
+
+```
+ 所有公司,产品,系统名称均为其各自所有者的注册或未注册商标。
+
+ (C) 2010 - 2019 SQUARE ENIX CO., LTD 保留一切权利。韩国版由 ACTOZ SOFT 发布。中国版由盛趣游戏发布。
+```
+
+版权不为以上公司所有的全部代码、资源、数据均以[公有领域](https://en.wikipedia.org/wiki/Public_domain)发布。
diff --git a/docs/index.de.md b/docs/index.de.md
new file mode 100644
index 0000000..81d8563
--- /dev/null
+++ b/docs/index.de.md
@@ -0,0 +1,89 @@
+---
+layout: page
+title: {{ site.name }}
+---
+
+# Inhaltssuche/FATE-Assistent (DFAssist)
+
+**DFAssist** ist ein Assistenzprogramm für die Inhaltssuche und FATEs in Final Fantasy XIV.
+Erledige andere Dinge, während du in der Warteschlange bist! DFAssist informiert dich, sobald eine Gruppe gefunden wurde.
+
+## Informationen
+
+- Neueste Version ```v20191003.1``` ([Download](https://github.com/jaehyuk-lee/DFAssist/releases/latest))
+- .NET Framework-Version ```Microsoft .NET Framework 4.0``` ([Download](https://www.microsoft.com/en-us/download/details.aspx?id=17851))
+- Spiel-Version ```Final Fantasy XIV, Version 5.0```
+
+## Anleitung
+
+1. Lade die ``DFAssist.v********.*.zip``-Datei über den obenstehenden Link herunter.
+2. Extrahiere das Archiv an einen beliebigen Ort.
+3. Führe ``DFAssist.exe`` im extrahierten Ordner aus.
+4. Die Anwendung muss als Administrator ausgeführt werden, um die FFXIV-Netzwerkpakete lesen zu können.
+5. Falls sich die Anwendung nicht öffnet, lade ``Microsoft .NET Framework 4.0`` über den obenstehenden Link herunter und installiere es.
+
+## Funktionen
+
+- Richtet ein Overlay ein, welches Informationen zur Inhaltssuche und FATEs enthält.
+ - Echtzeit-Informationen über die Inhaltssuche, während Final Fantasy XIV minimiert ist. Sendet eine Benachrichtigung, sobald eine Gruppe gefunden wurde.
+ - Zeigt den tatsächlich zugewiesenen Inhalt, wenn du einen Zufallsinhalt ausgewählt hast. (Einstellung erforderlich)
+ - Benachrichtigt dich, wenn ausgewählte FATEs stattfinden. (Charakter muss sich im jeweiligen Gebiet des FATEs aufhalten)
+ - Kopiert automatisch ein Strategie-Makro für ausgewählten Inhalt in die Zwischenablage. (Makros sind in Inhalts-/FATE-Daten enthalten)
+ - Unterstützt benutzerdefinierte Benachrichtigungstöne.
+- Benachrichtigungen per Telegram-Nachricht oder Discord-Mitteilung durch @-Erwähnung.
+ - Um Discord-Mitteilungen zu erhalten, musst du dich auf dem [DFAssist Discord-Server](https://discord.gg/RqesxtS) befinden.
+- POST-Anfrage an eine beliebige URL senden, sobald eine Gruppe gefunden wurde oder ein FATE erschienen ist. (weitere Updates sind geplant)
+
+## Problemlösungen
+
+Bitte poste dein Problem hier: [Issue Tracker](https://github.com/jaehyuk-lee/DFAssist/issues).
+
+Das Protokoll innerhalb des Programms ist hilfreich zur Behebung von Problemen. Es wird empfohlen, das Protokoll stets anzuhängen.
+
+## Screenshots
+
+### Overlay-Interface
+
+
+
+
+### Informationen zur Inhaltssuche
+
+
+
+### Gruppe gefunden
+
+
+
+### FATE erschienen
+
+
+
+### FFXIV-Icon blinkt
+
+
+
+### Anzeige des tatsächlichen Inhalts bei Zufallsinhalten
+
+
+
+### Anwendungsinterface
+
+
+
+
+
+### Taskleisten-Symbol
+
+
+
+## Copyright
+
+```
+ All company, product, system names are registered or unregistered trademarks of their respective owners.
+
+ (C) 2010 - 2019 SQUARE ENIX CO., LTD All Rights Reserved. Korea Published by ACTOZ SOFT.
+```
+
+All codes, resources, data, not copyrighted by company above, are
+destributed with [Public Domain](https://de.wikipedia.org/wiki/Gemeinfreiheit).
diff --git a/docs/index.en.md b/docs/index.en.md
index fafd87c..c90e7c6 100644
--- a/docs/index.en.md
+++ b/docs/index.en.md
@@ -1,72 +1,89 @@
----
-layout: page
-title: {{ site.name }}
----
-
-# Duty Finder / F.A.T.E Assist (DFAssist)
-**DFAssist** is FFXIV Duty Finder / F.A.T.E assist software.
-Do other things while in waiting list! DFAssist will give you match notification.
-
-## Information
-- Latest Version ```v20170928.2``` ([Download](https://github.com/devunt/DFAssist/releases/latest))
-- Target Version ```Microsoft .NET Framework 4.0``` ([Download](https://www.microsoft.com/en-us/download/details.aspx?id=17851))
-- Game Version ```Final Fantasy XIV, Version 4.0```
-
-## Instructions
-1. Download ``DFAssist.v********.*.zip`` file from the upper download link's file list.
-2. Extract archieve file wherever you want.
-3. Execute ``DFAssist.exe`` in the extracted folder.
-4. Need to be Run as an Administrator to read FFXIV Network Packet.
-5. If application doesn't execute, download and install ``Microsoft .NET Framework 4.0`` from the upper download link.
-
-## Features
-- Set up an overlay which shows Duty Finder/F.A.T.E.
- - Realtime Duty matching information while Final Fantasy XIV is minimized. Also gives notification when matched.
- - Preview exact matched duty when using duty roulette. (Needs Setting)
- - Notifies when checked F.A.T.E occurs. (Character Need to be in FATE area)
- - Tweet notification support. (with Mention)
-
-### In Development
-- Overlay skin customize feature.
-
-## Problem Solving
-Post problems on [Issue Tracker](https://github.com/devunt/DFAssist/issues).
-
-Logs on application window helps a lot with problem solving. Attaching logs is highly recommanded.
-
-## ScreenShots
-
-### Overlay UI
-
-
-
-### Duty Finding Information
-
-
-### Duty Matched
-
-
-### FATE Occured
-
-
-### FFXIV Icon Blinks
-
-
-### Preview exact Roulette Matched Duty
-
-
-### Application UI
-
-
-
-### Tray Icon
-
-
-## Copyright
-```
- All company, product, system names are registered or unregistered trademarks of their respective owners.
-
- (C) 2010 - 2017 SQUARE ENIX CO., LTD All Rights Reserved. Korea Published by EYEDENTITY ENTERTAINMENT.
-```
-All codes, resources, data, not copyrighted by company above, are
-destributed with [Public Domain](https://en.wikipedia.org/wiki/Public_domain).
+---
+layout: page
+title: {{ site.name }}
+---
+
+# Duty Finder / F.A.T.E Assist (DFAssist)
+
+**DFAssist** is FFXIV Duty Finder / F.A.T.E assist software.
+Do other things while in waiting list! DFAssist will give you match notification.
+
+## Information
+
+- Latest Version ```v20191003.1``` ([Download](https://github.com/jaehyuk-lee/DFAssist/releases/latest))
+- Target Version ```Microsoft .NET Framework 4.0``` ([Download](https://www.microsoft.com/en-us/download/details.aspx?id=17851))
+- Game Version ```Final Fantasy XIV, Version 5.0```
+
+## Instructions
+
+1. Download ``DFAssist.v********.*.zip`` file from the upper download link's file list.
+2. Extract archieve file wherever you want.
+3. Execute ``DFAssist.exe`` in the extracted folder.
+4. Need to be Run as an Administrator to read FFXIV Network Packet.
+5. If application doesn't execute, download and install ``Microsoft .NET Framework 4.0`` from the upper download link.
+
+## Features
+
+- Set up an overlay which shows Duty Finder/F.A.T.E.
+ - Realtime Duty matching information while Final Fantasy XIV is minimized. Also gives notification when matched.
+ - Preview exact matched duty when using duty roulette. (Needs Setting)
+ - Notifies when checked F.A.T.E occurs. (Character Need to be in FATE area)
+ - Automatically copy macro function. (macro data should be included in D/F data)
+ - Custom notification sound support.
+- Alarm via Telegram Message or Discord Message with Mention.
+ - To receive discord message, you should be in the [DFAssist Discord Server](https://discord.gg/RqesxtS).
+- Enable to POST request to wherever user wants when Duty Matched and FATE Occured. (Additional Update is scheduled.)
+
+## Problem Solving
+
+Post problems on [Issue Tracker](https://github.com/jaehyuk-lee/DFAssist/issues).
+
+Logs on application window helps a lot with problem solving. Attaching logs is highly recommanded.
+
+## ScreenShots
+
+### Overlay UI
+
+
+
+
+### Duty Finding Information
+
+
+
+### Duty Matched
+
+
+
+### FATE Occured
+
+
+
+### FFXIV Icon Blinks
+
+
+
+### Preview exact Roulette Matched Duty
+
+
+
+### Application UI
+
+
+
+
+
+### Tray Icon
+
+
+
+## Copyright
+
+```
+ All company, product, system names are registered or unregistered trademarks of their respective owners.
+
+ (C) 2010 - 2019 SQUARE ENIX CO., LTD All Rights Reserved. Korea Published by ACTOZ SOFT.
+```
+
+All codes, resources, data, not copyrighted by company above, are
+destributed with [Public Domain](https://en.wikipedia.org/wiki/Public_domain).
diff --git a/docs/index.ja.md b/docs/index.ja.md
index a23b773..c77ad36 100644
--- a/docs/index.ja.md
+++ b/docs/index.ja.md
@@ -1,18 +1,21 @@
----
+---
layout: page
title: {{ site.name }}
---
# Duty Finder / F.A.T.E Assist (DFAssist)
+
**DFAssist** はFFXIVコンテンツファインダー / F.A.T.Eを支援するソフトです。
もうFFXIVのウィンドウで待つ必要はありません。突入準備が完了したらDFAssistがお知らせします。
## Information
-- 最新バージョン ```v20170928.2``` ([ダウンロード](https://github.com/devunt/DFAssist/releases/latest))
+
+- 最新バージョン ```v20191003.1``` ([ダウンロード](https://github.com/jaehyuk-lee/DFAssist/releases/latest))
- 必要バージョン ```Microsoft .NET Framework 4.0``` ([ダウンロード](https://www.microsoft.com/ja-jp/download/details.aspx?id=17851))
-- ゲームバージョン ```Final Fantasy XIV, バージョン 4.0```
+- ゲームバージョン ```Final Fantasy XIV, バージョン 5.0```
## 導入
+
1. 上のダウンロードリンクから``DFAssist.v********.*.zip``をダウンロードする。
2. ダウンロードしたファイルを使いたいところに解凍する。
3. 解凍したフォルダの中にある``DFAssist.exe``を実行する。
@@ -20,53 +23,67 @@ title: {{ site.name }}
5. もしソフトが起動しない場合は``Microsoft .NET Framework 4.0``を上のリンクからダウンロード・インストールしてください。
## 機能
+
- コンテンツファインダー/F.A.T.Eの状況を表示するオーバーレイ
- FFXIVが最小化されていてもコンテンツ参加申請中の状態をリアルタイムで表示します。突入準備が完了したら通知します。
- - コンテンツルーレットを使用した場合何のコンテンツにマッチングしたかを表示できます (設定が必要です)
+ - コンテンツルーレットを使用した場合に何のコンテンツにマッチングしたかを表示できます。 (設定が必要です)
- F.A.T.Eの発生を通知します。(キャラクターがFATEエリア内にいる必要があります)
- - ツイート通知をサポートしています。(リプライ)
-
-### 開発中
-- オーバーレイスキンのカスタマイズ機能。
+ - マッチングされたコンテンツに該当するマクロ自動コピー機能(マクロデータがコンテンツ/FATEデータに含まれている必要があります。)
+ - カスタム通知音。
+- TelegramやDiscordでアラーム機能
+ - Discordメッセージは、[DFAssist Discord Server](https://discord.gg/RqesxtS)に参加している時にのみ受信できます。
+- 突入準備完了時/FATE発生時にHTTP POSTリクエスト送信機能。 (アップデートが計画されています。)
## 問題が起きたら
-問題を[イシュートラッカー](https://github.com/devunt/DFAssist/issues)へ投稿してください。
+
+問題を[Issue トラッカー](https://github.com/jaehyuk-lee/DFAssist/issues)へ投稿してください。
アプリケーションのログは問題の解決にとても役立ちます。ログを添付することを強くお勧めします。
## スクリーンショット
### オーバーレイUI
-
-
+
+
+
### コンテンツ参加申請中情報
-
+
+
### コンテンツ突入準備完了
-
+
+
### FATE発生
-
+
+
### FFXIVアイコンの点滅
-
+
+
### コンテンツルーレットで選ばれたコンテンツの表示
-
+
+
### アプリケーションUI
-
-
+
+
+
+
### トレイアイコン
-
+
+
## コピーライト
+
```
記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。
- (C) 2010 - 2017 SQUARE ENIX CO., LTD All Rights Reserved. Korea Published by EYEDENTITY ENTERTAINMENT.
+ (C) 2010 - 2019 SQUARE ENIX CO., LTD All Rights Reserved. Korea Published by ACTOZ SOFT.
```
+
すべてのコード、リソース、データは著作権で保護されていません。
-これらは[パブリックドメイン](https://en.wikipedia.org/wiki/Public_domain).で配布されています。
\ No newline at end of file
+これらは[パブリックドメイン](https://ja.wikipedia.org/wiki/%E3%83%91%E3%83%96%E3%83%AA%E3%83%83%E3%82%AF%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3).で配布されています。
diff --git a/docs/index.md b/docs/index.md
index 61d4d95..c063ad4 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -1,72 +1,89 @@
----
+---
layout: page
title: {{ site.name }}
---
# 임무/돌발 찾기 도우미 (DFAssist)
-**DFAssist** 는 파이널판타지14의 임무 찾기 및 돌발 (Duty Finder / F.A.T.E.) 기능을 보조할 수 있는 소프트웨어입니다.
+
+**DFAssist** 는 파이널 판타지 14의 임무 찾기 및 돌발 (Duty Finder / F.A.T.E.) 기능을 보조할 수 있는 소프트웨어입니다.
매칭을 돌려놓고 다른 일을 하다가 매칭 된 줄도 모르고 계속 다른 일을 하느라 확인을 못 누르는 사태를 방지하기 위해 만들었습니다.
## 정보
-- 최신 버전 ```v20170928.2``` ([다운로드](https://github.com/devunt/DFAssist/releases/latest))
-- 타겟 버전 ```Microsoft .NET Framework 4.0``` ([다운로드](https://www.microsoft.com/en-us/download/details.aspx?id=17851))
-- 게임 버전 ```파이널판타지14 한국판, 버전 3.5```
+
+- 최신 버전 ```v20191003.1``` ([다운로드](https://github.com/jaehyuk-lee/DFAssist/releases/latest))
+- 타겟 버전 ```Microsoft .NET Framework 4.0``` ([다운로드](https://www.microsoft.com/ko-kr/download/details.aspx?id=17851))
+- 게임 버전 ```파이널 판타지 14 한국판, 버전 4.5```또는 ```글로벌판, 버전 5.0```
## 사용법
+
1. 상단 다운로드 링크의 파일 목록에서 ``DFAssist.v********.*.zip`` 파일을 내려받습니다.
2. 원하는 경로에 압축을 해제합니다.
3. 해당 경로에서 ``DFAssist.exe`` 파일을 실행합니다.
-4. 파이널판타지14 클라이언트의 패킷을 읽기 위해 관리자 권한이 필요합니다.
+4. 파이널 판타지 14 클라이언트의 패킷을 읽기 위해 관리자 권한이 필요합니다.
5. 실행이 되지 않을 시 상단 ``Microsoft .NET Framework 4.0`` 다운로드 링크에서 파일을 받아 설치합니다.
## 기능
+
- 실시간 임무/돌발 찾기 상태를 볼 수 있는 전용 오버레이 UI
- - 파이널판타지14가 최소화되어 있는 상태에서 현재 매칭 상태를 실시간으로 확인 가능 (오버레이 & 아이콘 깜빡임)
+ - 파이널 판타지 14가 최소화되어 있는 상태에서 현재 매칭 상태를 실시간으로 확인 가능 (오버레이 & 아이콘 깜빡임)
- 무작위 임무가 매칭됐을 시 매칭된 임무가 어떤 임무인지 입장 전 확인 가능 (설정 필요)
- 미리 설정한 돌발 임무가 현재 위치한 맵에 발생했을 경우 알림 가능 (이벤트 돌발, 고대무기 돌발 등)
- - 미리 설정한 트위터 계정으로 임무 매칭시나 돌발 발생시 알림 발송 가능
-
-### 구현 예정 (현재 미구현)
-- 오버레이 스킨 변경 기능
+ - 매칭된 임무에 해당하는 매크로 자동 복사 기능 (매크로 데이터가 임무/돌발 데이터에 포함되어 있어야 합니다.)
+ - 알림음 사용자 지정 가능
+- 텔레그램이나 디스코드로 알림 기능
+ - 디스코드 알림은 [DFAssist 디스코드 서버](https://discord.gg/RqesxtS)에 참여한 상태에만 알림 수신 가능
+- 사용자가 원하는 서버로 임무 매칭 완료 또는 돌발임무 발생 POST 요청 가능 (추가적인 업데이트가 계획되어 있습니다.)
## 문제 해결
-문제 발생시 [이슈 트래커](https://github.com/devunt/DFAssist/issues)에 발생 상황과 결과를 남겨주세요.
+자주 발생하는 문제들은 [FAQ](https://jaehyuk-lee.github.io/DFAssist/faq)에서 확인해볼 수 있습니다.
+그 외에 다른 문제 발생시 [이슈 트래커](https://github.com/jaehyuk-lee/DFAssist/issues)에 발생 상황과 결과를 남겨주세요.
프로그램 창의 로그 기록도 문제 해결에 큰 도움이 됩니다.
## 스크린샷
### 오버레이 UI
-
-
+
+
+
### 임무 찾기 상황
-
+
+
### 임무 찾기 매칭됨
-
+
+
### 돌발 발생함
-
+
+
### 아이콘 깜빡임
-
+
+
### 매칭된 무작위 임무 미리보기
-
+
+
### 프로그램 UI
-
-
+
+
+
+
### 알림창 아이콘
-
+
+
## 저작권
+
```
기재되어있는 회사명 · 제품명 · 시스템 이름은 해당 소유자의 상표 또는 등록 상표입니다.
- (C) 2010 - 2017 SQUARE ENIX CO., LTD All Rights Reserved. Korea Published by EYEDENTITY ENTERTAINMENT.
+ (C) 2010 - 2019 SQUARE ENIX CO., LTD All Rights Reserved. Korea Published by ACTOZ SOFT.
```
+
상단 회사에 저작권이 없는 코드, 리소스, 데이터 등은 모두
[퍼블릭 도메인](https://ko.wikipedia.org/wiki/%ED%8D%BC%EB%B8%94%EB%A6%AD_%EB%8F%84%EB%A9%94%EC%9D%B8)에 따라 배포됩니다.
diff --git a/docs/index.ru.md b/docs/index.ru.md
new file mode 100644
index 0000000..742cd4d
--- /dev/null
+++ b/docs/index.ru.md
@@ -0,0 +1,88 @@
+---
+layout: page
+title: {{ site.name }}
+---
+
+# Duty Finder/FATE Assist (DFAssist)
+
+**DFAssist** - это ПО для облегчения поиска подземелий/FATE в FFXIV.
+Занимайтесь своими делами во время поиска! DFAssist сообщит вам о готовности.
+
+## Информация
+
+- Последняя версия ```v20191003.1``` ([Загрузить](https://github.com/jaehyuk-lee/DFAssist/releases/latest))
+- Требуемая версия ```Microsoft .NET Framework 4.0``` ([Загрузить](https://www.microsoft.com/en-us/download/details.aspx?id=17851))
+- Версия игры ```Final Fantasy XIV, Version 5.0```
+
+## Инструкции
+
+1. Сначала загрузите ``DFAssist.v********.*.zip`` по ссылке, расположенную выше.
+2. Распакуйте архив, куда пожелаете.
+3. Запустите ``DFAssist.exe`` в распакованной папке.
+4. Необходимо запустить от имени администратора, чтобы получить доступ к сетевому пакету FFXIV.
+5. Если приложение не запускается, загрузите и установите ``Microsoft .NET Framework 4.0`` по ссылке выше.
+
+## Особенности
+
+- Подключаемый оверлей, показывающий Duty Finder/FATE
+ - Отслеживание поиска подземелий в реальном времени пока Final Fantasy XIV свернута. Также уведомляет вас при нахождении подземелья.
+ - Предпросмотр найденного подземелья. (Необходимо включить в настройках)
+ - Уведомляет о начале выбранного FATE (Персонаж должен быть в зоне FATE)
+ - Функция автоматического копирования макроса. (Данные должны быть внесены в настройки D/F)
+ - Поддержка пользовательских звуков уведомлений.
+- Уведомление через Telegram или Discord.
+ - Чтобы получать сообщения в Discord, вы должны состоять в [DFAssist Discord Server](https://discord.gg/RqesxtS).
+- Разрешить отправлять сообщения туда, куда выберет пользователь, при нахождении подземелья или начале FATE (Планируются обновления).
+
+## Решение проблем
+
+Пишите о проблемах на [Issue Tracker](https://github.com/jaehyuk-lee/DFAssist/issues).
+
+Логи сильно помогают в решении проблем. Настоятельно рекомендуется прикладывать логи к описанию ошибок.
+
+## Снимки экрана
+
+### Всплывающие окна
+
+
+
+
+### Информация о поиске подземелья
+
+
+
+### Подземелье найдено
+
+
+
+### Появление FATE
+
+
+
+### Мигание иконки FFXIV
+
+
+
+### Предпросмотр найденного подземелья
+
+
+
+### Интерфейс приложения
+
+
+
+
+
+### Иконка в трее
+
+
+
+## Copyright
+
+```
+ Названия компаний, продуктов, систем являются зарегистрированными или незарегистрированными торговым марками их соответствующих владельцев.
+
+ (C) 2010 - 2019 SQUARE ENIX CO., LTD All Rights Reserved. Korea Published by ACTOZ SOFT.
+```
+
+Весь код, ресурсы, данные, не защищенные авторскими правами вышеупомянутой компании, являются общественным достоянием [Public Domain](https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B5_%D0%B4%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D0%B5).