diff --git a/Lemegeton/Content/Debugger.cs b/Lemegeton/Content/Debugger.cs index fa1cb47..ac9e111 100644 --- a/Lemegeton/Content/Debugger.cs +++ b/Lemegeton/Content/Debugger.cs @@ -427,6 +427,11 @@ public class EventLogger : Core.ContentItem [AttributeOrderNumber(3003)] public string CurrentLogFilename { get; private set; } = ""; + [AttributeOrderNumber(4000)] + public bool IncludeLocation { get; set; } = false; + [AttributeOrderNumber(4001)] + public bool ResolveNames { get; set; } = false; + private bool _subbed = false; public EventLogger(State state) : base(state) @@ -529,7 +534,42 @@ private bool GoodToLog() private string FormatGameObject(GameObject go) { - return go == null ? "null" : String.Format("{0}({1} - {2}) at {3}", go.ObjectId.ToString("X"), go.Name.ToString(), go.ObjectKind, go.Address.ToString("X")); + if (IncludeLocation == true) + { + return go == null ? "null" : String.Format("{0}({1} - {2}) at {3} pos {4},{5},{6} rot {7}", go.ObjectId.ToString("X"), go.Name.ToString(), go.ObjectKind, go.Address.ToString("X"), + go.Position.X, go.Position.Y, go.Position.Z, go.Rotation + ); + } + else + { + return go == null ? "null" : String.Format("{0}({1} - {2}) at {3}", go.ObjectId.ToString("X"), go.Name.ToString(), go.ObjectKind, go.Address.ToString("X")); + } + } + + private string FormatStatusId(uint statusId) + { + if (ResolveNames == true) + { + string name = _state.plug.GetStatusName(statusId).Trim(); + return String.Format("{0} ({1})", statusId, name.Length > 0 ? name : "(null)"); + } + else + { + return String.Format("{0}", statusId); + } + } + + private string FormatActionId(uint actionId) + { + if (ResolveNames == true) + { + string name = _state.plug.GetActionName(actionId).Trim(); + return String.Format("{0} ({1})", actionId, name.Length > 0 ? name : "(null)"); + } + else + { + return String.Format("{0}", actionId); + } } private void LogEventToFile(string msg) @@ -582,7 +622,7 @@ private void _state_OnEventPlay(uint actorId, uint eventId, ushort scene, uint f string fmt = "InvokeEventPlay: {0:X8} {1} {2} {3} {4} {5} {6} {7}"; if (LogToDalamudLog == true) { - Log(LogLevelEnum.Debug, null, fmt, actor, eventId, scene, flags, param1, param2, param3, param4); + Log(LogLevelEnum.Debug, null, fmt, FormatGameObject(actor), eventId, scene, flags, param1, param2, param3, param4); } if (LogToFile == true) { @@ -640,7 +680,7 @@ private void _state_OnTether(uint src, uint dest, uint tetherId) GameObject dstgo = _state.GetActorById(dest); if (LogToDalamudLog == true) { - Log(LogLevelEnum.Debug, null, fmt, srcgo, dstgo, tetherId); + Log(LogLevelEnum.Debug, null, fmt, FormatGameObject(srcgo), FormatGameObject(dstgo), tetherId); } if (LogToFile == true) { @@ -676,11 +716,11 @@ private void _state_OnStatusChange(uint src, uint dest, uint statusId, bool gain GameObject dstgo = _state.GetActorById(dest); if (LogToDalamudLog == true) { - Log(LogLevelEnum.Debug, null, fmt, srcgo, dstgo, gained == true ? "Gained" : "Lost", statusId, duration, stacks); + Log(LogLevelEnum.Debug, null, fmt, FormatGameObject(srcgo), FormatGameObject(dstgo), gained == true ? "Gained" : "Lost", FormatStatusId(statusId), duration, stacks); } if (LogToFile == true) { - LogEventToFile(String.Format(fmt, FormatGameObject(srcgo), FormatGameObject(dstgo), gained == true ? "Gained" : "Lost", statusId, duration, stacks)); + LogEventToFile(String.Format(fmt, FormatGameObject(srcgo), FormatGameObject(dstgo), gained == true ? "Gained" : "Lost", FormatStatusId(statusId), duration, stacks)); } } @@ -694,7 +734,7 @@ private void _state_OnHeadMarker(uint dest, uint markerId) GameObject dstgo = _state.GetActorById(dest); if (LogToDalamudLog == true) { - Log(LogLevelEnum.Debug, null, fmt, dstgo, markerId); + Log(LogLevelEnum.Debug, null, fmt, FormatGameObject(dstgo), markerId); } if (LogToFile == true) { @@ -725,16 +765,16 @@ private void _state_OnCastBegin(uint src, uint dest, ushort actionId, float cast { return; } - string fmt = "InvokeCastBegin {0} -> {1}: {2} in {3} s (rot {4})"; + string fmt = "InvokeCastBegin {0} -> {1}: {2} in {3} s"; GameObject srcgo = _state.GetActorById(src); GameObject dstgo = _state.GetActorById(dest); if (LogToDalamudLog == true) { - Log(LogLevelEnum.Debug, null, fmt, _state.GetActorById(src), _state.GetActorById(dest), actionId, castTime, rotation); + Log(LogLevelEnum.Debug, null, fmt, FormatGameObject(srcgo), FormatGameObject(dstgo), FormatActionId(actionId), castTime); } if (LogToFile == true) { - LogEventToFile(String.Format(fmt, FormatGameObject(srcgo), FormatGameObject(dstgo), actionId, castTime, rotation)); + LogEventToFile(String.Format(fmt, FormatGameObject(srcgo), FormatGameObject(dstgo), FormatActionId(actionId), castTime)); } } @@ -749,11 +789,11 @@ private void _state_OnAction(uint src, uint dest, ushort actionId) GameObject dstgo = _state.GetActorById(dest); if (LogToDalamudLog == true) { - Log(LogLevelEnum.Debug, null, fmt, _state.GetActorById(src), _state.GetActorById(dest), actionId); + Log(LogLevelEnum.Debug, null, fmt, FormatGameObject(srcgo), FormatGameObject(dstgo), FormatActionId(actionId)); } if (LogToFile == true) { - LogEventToFile(String.Format(fmt, FormatGameObject(srcgo), FormatGameObject(dstgo), actionId)); + LogEventToFile(String.Format(fmt, FormatGameObject(srcgo), FormatGameObject(dstgo), FormatActionId(actionId))); } } @@ -766,7 +806,7 @@ private void _state_OnCombatantAdded(GameObject go) string fmt = "CombatantAdded {0}"; if (LogToDalamudLog == true) { - Log(LogLevelEnum.Debug, null, fmt, go); + Log(LogLevelEnum.Debug, null, fmt, FormatGameObject(go)); } if (LogToFile == true) { diff --git a/Lemegeton/Content/EwCritAloalo.cs b/Lemegeton/Content/EwCritAloalo.cs new file mode 100644 index 0000000..403d0c5 --- /dev/null +++ b/Lemegeton/Content/EwCritAloalo.cs @@ -0,0 +1,755 @@ +using System; +using Lemegeton.Core; +using System.Collections.Generic; +using System.Linq; +using System.Data; +using ImGuiNET; +using Dalamud.Game.ClientState.Objects.Types; +using System.Numerics; +using System.Security.Cryptography; +using Dalamud.Interface.Animation; +using static System.Runtime.InteropServices.JavaScript.JSType; +using static Lemegeton.Content.EwCritAloalo; +using System.Drawing; + +namespace Lemegeton.Content +{ + + internal class EwCritAloalo : Core.Content + { + + public override FeaturesEnum Features => FeaturesEnum.None; + + private const int HeadmarkerLalaCW = 484; + private const int HeadmarkerLalaCCW = 485; + private const int HeadmarkerPlayerCW = 493; + private const int HeadmarkerPlayerCCW = 494; + private const int StatusBackUnseen = 3727; + private const int StatusFrontUnseen = 3726; + private const int StatusLeftUnseen = 3729; + private const int StatusRightUnseen = 3728; + private const int StatusLalaThree = 3938; + private const int StatusLalaFive = 3939; + private const int StatusPlayerThree = 3721; + private const int StatusPlayerFive = 3790; + private const int AbilityArcaneBlightN = 34956; + private const int AbilityArcaneBlightE = 34957; + private const int AbilityArcaneBlightS = 34955; + private const int AbilityArcaneBlightW = 34958; + + private bool ZoneOk = false; + + private SpringCrystal _springCrystal; + private LalaRotation _lalaRotation; + private PlayerRotation _playerRotation; + + #region SpringCrystal + + public class SpringCrystal : Core.ContentItem + { + + public override FeaturesEnum Features => FeaturesEnum.Drawing; + + [AttributeOrderNumber(1000)] + public Vector4 SafeSpotColor { get; set; } = new Vector4(0.0f, 1.0f, 0.0f, 0.2f); + + [DebugOption] + [AttributeOrderNumber(2000)] + public System.Action Test { get; set; } + + internal uint _midCrystalId = 0; + private List _points = new List(); + + public SpringCrystal(State state) : base(state) + { + Enabled = false; + Test = new System.Action(() => TestFunctionality()); + } + + public override void Reset() + { + Log(State.LogLevelEnum.Debug, null, "Reset"); + _midCrystalId = 0; + _points.Clear(); + } + + public void TestFunctionality() + { + if (_midCrystalId > 0) + { + Reset(); + return; + } + _state.InvokeZoneChange(1179); + _midCrystalId = _state.cs.LocalPlayer.ObjectId; + } + + internal void FeedMidCrystal(GameObject go) + { + if (Active == false) + { + return; + } + _midCrystalId = go.ObjectId; + Log(State.LogLevelEnum.Debug, null, "Registered mid crystal {0}", go.ObjectId); + } + + protected override bool ExecutionImplementation() + { + ImDrawListPtr draw; + if (_midCrystalId == 0) + { + return false; + } + if (_state.StartDrawing(out draw) == false) + { + return false; + } + GameObject go = _state.GetActorById(_midCrystalId); + if (go == null) + { + Reset(); + return true; + } + float y = go.Position.Y; + if (_points.Count == 0) + { + if ((float)Math.Abs(go.Rotation) > 0.1f) + { + // east-west + _points.Add(new PointF(-15.0f, go.Position.Z - 5.0f)); + _points.Add(new PointF(-15.0f, go.Position.Z + 5.0f)); + _points.Add(new PointF(15.0f, go.Position.Z - 5.0f)); + _points.Add(new PointF(15.0f, go.Position.Z + 5.0f)); + } + else + { + // north-south + _points.Add(new PointF(go.Position.X - 5.0f, -15.0f)); + _points.Add(new PointF(go.Position.X + 5.0f, -15.0f)); + _points.Add(new PointF(go.Position.X - 5.0f, 15.0f)); + _points.Add(new PointF(go.Position.X + 5.0f, 15.0f)); + } + } + foreach (PointF pt in _points) + { + Vector3 p1 = new Vector3(pt.X - 2.5f, y, pt.Y - 2.5f); + Vector3 p2 = new Vector3(pt.X + 2.5f, y, pt.Y - 2.5f); + Vector3 p3 = new Vector3(pt.X + 2.5f, y, pt.Y + 2.5f); + Vector3 p4 = new Vector3(pt.X - 2.5f, y, pt.Y + 2.5f); + Vector3 t1 = _state.plug._ui.TranslateToScreen(p1.X, p1.Y, p1.Z); + Vector3 t2 = _state.plug._ui.TranslateToScreen(p2.X, p2.Y, p2.Z); + Vector3 t3 = _state.plug._ui.TranslateToScreen(p3.X, p3.Y, p3.Z); + Vector3 t4 = _state.plug._ui.TranslateToScreen(p4.X, p4.Y, p4.Z); + draw.AddQuadFilled( + new Vector2(t1.X, t1.Y), + new Vector2(t2.X, t2.Y), + new Vector2(t3.X, t3.Y), + new Vector2(t4.X, t4.Y), + ImGui.GetColorU32(SafeSpotColor) + ); + } + return true; + } + + } + + #endregion + + #region LalaRotation + + public class LalaRotation : Core.ContentItem + { + + public override FeaturesEnum Features => FeaturesEnum.Drawing; + + [AttributeOrderNumber(1000)] + public Vector4 SafeZoneColor { get; set; } = new Vector4(0.0f, 1.0f, 0.0f, 0.5f); + + [DebugOption] + [AttributeOrderNumber(2000)] + public System.Action Test { get; set; } + + private enum SafeZoneEnum + { + None, + North, + East, + South, + West + } + + private uint _lalaStatus = 0; + private uint _lalaAction = 0; + private uint _lalaHeadmarker = 0; + private uint _lalaId = 0; + + public LalaRotation(State state) : base(state) + { + Enabled = false; + Test = new System.Action(() => TestFunctionality()); + } + + public override void Reset() + { + Log(State.LogLevelEnum.Debug, null, "Reset"); + _lalaStatus = 0; + _lalaHeadmarker = 0; + _lalaAction = 0; + } + + public void TestFunctionality() + { + if (_lalaId > 0) + { + _lalaId = 0; + Reset(); + return; + } + _state.InvokeZoneChange(1179); + Random r = new Random(); + _lalaId = _state.cs.LocalPlayer.ObjectId; + _lalaStatus = (uint)(r.Next(0, 2) == 0 ? StatusLalaThree : StatusLalaFive); + _lalaHeadmarker = (uint)(r.Next(0, 2) == 0 ? HeadmarkerLalaCW : HeadmarkerLalaCCW); + switch (r.Next(0, 4)) + { + case 0: + _lalaAction = AbilityArcaneBlightN; + break; + case 1: + _lalaAction = AbilityArcaneBlightE; + break; + case 2: + _lalaAction = AbilityArcaneBlightS; + break; + case 3: + _lalaAction = AbilityArcaneBlightW; + break; + } + Log(State.LogLevelEnum.Debug, null, "Testing with {0} {1} {2}", _lalaStatus, _lalaAction, _lalaHeadmarker); + } + + internal void FeedStatus(uint statusId, bool gained) + { + if (Active == false) + { + return; + } + Log(State.LogLevelEnum.Debug, null, "Registered status {0} {1} on {2:X}", statusId, gained); + if (gained == true) + { + _lalaStatus = statusId; + } + else + { + _lalaStatus = 0; + _lalaAction = 0; + _lalaHeadmarker = 0; + } + } + + internal void FeedAction(uint actorId, uint actionId) + { + if (Active == false) + { + return; + } + _lalaId = actorId; + _lalaAction = actionId; + } + + internal void FeedHeadmarker(uint actorId, uint headMarkerId) + { + if (Active == false) + { + return; + } + _lalaId = actorId; + _lalaHeadmarker = headMarkerId; + } + + protected override bool ExecutionImplementation() + { + ImDrawListPtr draw; + if (_lalaHeadmarker == 0 || _lalaStatus == 0 || _lalaAction == 0) + { + return false; + } + if (_state.StartDrawing(out draw) == false) + { + return false; + } + SafeZoneEnum sz = SafeZoneEnum.None; + if ( + (_lalaAction == AbilityArcaneBlightE && _lalaHeadmarker == HeadmarkerLalaCW && _lalaStatus == StatusLalaThree) + || + (_lalaAction == AbilityArcaneBlightE && _lalaHeadmarker == HeadmarkerLalaCCW && _lalaStatus == StatusLalaFive) + || + (_lalaAction == AbilityArcaneBlightW && _lalaHeadmarker == HeadmarkerLalaCW && _lalaStatus == StatusLalaFive) + || + (_lalaAction == AbilityArcaneBlightW && _lalaHeadmarker == HeadmarkerLalaCCW && _lalaStatus == StatusLalaThree) + ) + { + sz = SafeZoneEnum.North; + } + if ( + (_lalaAction == AbilityArcaneBlightE && _lalaHeadmarker == HeadmarkerLalaCW && _lalaStatus == StatusLalaFive) + || + (_lalaAction == AbilityArcaneBlightE && _lalaHeadmarker == HeadmarkerLalaCCW && _lalaStatus == StatusLalaThree) + || + (_lalaAction == AbilityArcaneBlightW && _lalaHeadmarker == HeadmarkerLalaCW && _lalaStatus == StatusLalaThree) + || + (_lalaAction == AbilityArcaneBlightW && _lalaHeadmarker == HeadmarkerLalaCCW && _lalaStatus == StatusLalaFive) + ) + { + sz = SafeZoneEnum.South; + } + if ( + (_lalaAction == AbilityArcaneBlightN && _lalaHeadmarker == HeadmarkerLalaCW && _lalaStatus == StatusLalaThree) + || + (_lalaAction == AbilityArcaneBlightN && _lalaHeadmarker == HeadmarkerLalaCCW && _lalaStatus == StatusLalaFive) + || + (_lalaAction == AbilityArcaneBlightS && _lalaHeadmarker == HeadmarkerLalaCW && _lalaStatus == StatusLalaFive) + || + (_lalaAction == AbilityArcaneBlightS && _lalaHeadmarker == HeadmarkerLalaCCW && _lalaStatus == StatusLalaThree) + ) + { + sz = SafeZoneEnum.West; + } + if ( + (_lalaAction == AbilityArcaneBlightN && _lalaHeadmarker == HeadmarkerLalaCW && _lalaStatus == StatusLalaFive) + || + (_lalaAction == AbilityArcaneBlightN && _lalaHeadmarker == HeadmarkerLalaCCW && _lalaStatus == StatusLalaThree) + || + (_lalaAction == AbilityArcaneBlightS && _lalaHeadmarker == HeadmarkerLalaCW && _lalaStatus == StatusLalaThree) + || + (_lalaAction == AbilityArcaneBlightS && _lalaHeadmarker == HeadmarkerLalaCCW && _lalaStatus == StatusLalaFive) + ) + { + sz = SafeZoneEnum.East; + } + if (sz == SafeZoneEnum.None) + { + return true; + } + GameObject go = _state.GetActorById(_lalaId); + Vector3 t1, t2; + Vector3 p1 = go.Position; + Vector3 p2, p3; + switch (sz) + { + case SafeZoneEnum.North: + p2 = new Vector3(p1.X - 10.0f, p1.Y, p1.Z - 10.0f); + p3 = new Vector3(p1.X + 10.0f, p1.Y, p1.Z - 10.0f); + break; + case SafeZoneEnum.South: + p2 = new Vector3(p1.X - 10.0f, p1.Y, p1.Z + 10.0f); + p3 = new Vector3(p1.X + 10.0f, p1.Y, p1.Z + 10.0f); + break; + case SafeZoneEnum.East: + p2 = new Vector3(p1.X + 10.0f, p1.Y, p1.Z - 10.0f); + p3 = new Vector3(p1.X + 10.0f, p1.Y, p1.Z + 10.0f); + break; + case SafeZoneEnum.West: + p2 = new Vector3(p1.X - 10.0f, p1.Y, p1.Z - 10.0f); + p3 = new Vector3(p1.X - 10.0f, p1.Y, p1.Z + 10.0f); + break; + default: + return true; + } + t1 = _state.plug._ui.TranslateToScreen(p1.X, p1.Y, p1.Z); + t2 = _state.plug._ui.TranslateToScreen(p2.X, p2.Y, p2.Z); + draw.AddLine( + new Vector2(t1.X, t1.Y), + new Vector2(t2.X, t2.Y), + ImGui.GetColorU32(SafeZoneColor), + 3.0f + ); + t2 = _state.plug._ui.TranslateToScreen(p3.X, p3.Y, p3.Z); + draw.AddLine( + new Vector2(t1.X, t1.Y), + new Vector2(t2.X, t2.Y), + ImGui.GetColorU32(SafeZoneColor), + 3.0f + ); + return true; + } + + } + + #endregion + + #region PlayerRotation + + public class PlayerRotation : Core.ContentItem + { + + public override FeaturesEnum Features => FeaturesEnum.Drawing; + + [AttributeOrderNumber(1000)] + public Vector4 IndicatorColor { get; set; } = new Vector4(1.0f, 1.0f, 1.0f, 0.5f); + + [DebugOption] + [AttributeOrderNumber(2000)] + public System.Action Test { get; set; } + + private enum DirectionEnum + { + None, + Front, + Left, + Right, + Back + } + + private uint _playerTimes = 0; + private uint _playerUnseen = 0; + private uint _playerHeadmarker = 0; + + public PlayerRotation(State state) : base(state) + { + Enabled = false; + Test = new System.Action(() => TestFunctionality()); + } + + public override void Reset() + { + Log(State.LogLevelEnum.Debug, null, "Reset"); + _playerTimes = 0; + _playerUnseen = 0; + _playerHeadmarker = 0; + } + + public void TestFunctionality() + { + if (_playerUnseen > 0) + { + Reset(); + return; + } + _state.InvokeZoneChange(1179); + Random r = new Random(); + _playerTimes = (uint)(r.Next(0, 2) == 0 ? StatusPlayerThree : StatusPlayerFive); + _playerHeadmarker = (uint)(r.Next(0, 2) == 0 ? HeadmarkerPlayerCW : HeadmarkerPlayerCCW); + switch (r.Next(0, 4)) + { + case 0: + _playerUnseen = StatusFrontUnseen; + break; + case 1: + _playerUnseen = StatusLeftUnseen; + break; + case 2: + _playerUnseen = StatusBackUnseen; + break; + case 3: + _playerUnseen = StatusRightUnseen; + break; + } + Log(State.LogLevelEnum.Debug, null, "Testing with {0} {1} {2}", _playerTimes, _playerUnseen, _playerHeadmarker); + } + + internal void FeedStatus(uint actorId, uint statusId, bool gained) + { + if (Active == false) + { + return; + } + if (actorId != _state.cs.LocalPlayer.ObjectId) + { + return; + } + Log(State.LogLevelEnum.Debug, null, "Registered status {0} {1} on {2:X}", statusId, gained); + if (gained == true) + { + switch (statusId) + { + case StatusFrontUnseen: + case StatusBackUnseen: + case StatusLeftUnseen: + case StatusRightUnseen: + _playerUnseen = statusId; + break; + case StatusPlayerThree: + case StatusPlayerFive: + _playerTimes = statusId; + break; + } + } + else + { + _playerTimes = 0; + _playerUnseen = 0; + _playerHeadmarker = 0; + } + } + + internal void FeedHeadmarker(uint actorId, uint headMarkerId) + { + if (Active == false) + { + return; + } + if (actorId != _state.cs.LocalPlayer.ObjectId) + { + return; + } + _playerHeadmarker = headMarkerId; + } + + protected override bool ExecutionImplementation() + { + ImDrawListPtr draw; + if (_playerHeadmarker == 0 || _playerUnseen == 0 || _playerTimes == 0) + { + return false; + } + if (_state.StartDrawing(out draw) == false) + { + return false; + } + DirectionEnum sz = DirectionEnum.None; + if ( + (_playerUnseen == StatusRightUnseen && _playerHeadmarker == HeadmarkerPlayerCW && _playerTimes == StatusPlayerThree) + || + (_playerUnseen == StatusRightUnseen && _playerHeadmarker == HeadmarkerPlayerCCW && _playerTimes == StatusPlayerFive) + || + (_playerUnseen == StatusLeftUnseen && _playerHeadmarker == HeadmarkerPlayerCW && _playerTimes == StatusPlayerFive) + || + (_playerUnseen == StatusLeftUnseen && _playerHeadmarker == HeadmarkerPlayerCCW && _playerTimes == StatusPlayerThree) + ) + { + sz = DirectionEnum.Front; + } + if ( + (_playerUnseen == StatusRightUnseen && _playerHeadmarker == HeadmarkerPlayerCW && _playerTimes == StatusPlayerFive) + || + (_playerUnseen == StatusRightUnseen && _playerHeadmarker == HeadmarkerPlayerCCW && _playerTimes == StatusPlayerThree) + || + (_playerUnseen == StatusLeftUnseen && _playerHeadmarker == HeadmarkerPlayerCW && _playerTimes == StatusPlayerThree) + || + (_playerUnseen == StatusLeftUnseen && _playerHeadmarker == HeadmarkerPlayerCCW && _playerTimes == StatusPlayerFive) + ) + { + sz = DirectionEnum.Back; + } + if ( + (_playerUnseen == StatusFrontUnseen && _playerHeadmarker == HeadmarkerPlayerCW && _playerTimes == StatusPlayerThree) + || + (_playerUnseen == StatusFrontUnseen && _playerHeadmarker == HeadmarkerPlayerCCW && _playerTimes == StatusPlayerFive) + || + (_playerUnseen == StatusBackUnseen && _playerHeadmarker == HeadmarkerPlayerCW && _playerTimes == StatusPlayerFive) + || + (_playerUnseen == StatusBackUnseen && _playerHeadmarker == HeadmarkerPlayerCCW && _playerTimes == StatusPlayerThree) + ) + { + sz = DirectionEnum.Left; + } + if ( + (_playerUnseen == StatusFrontUnseen && _playerHeadmarker == HeadmarkerPlayerCW && _playerTimes == StatusPlayerFive) + || + (_playerUnseen == StatusFrontUnseen && _playerHeadmarker == HeadmarkerPlayerCCW && _playerTimes == StatusPlayerThree) + || + (_playerUnseen == StatusBackUnseen && _playerHeadmarker == HeadmarkerPlayerCW && _playerTimes == StatusPlayerThree) + || + (_playerUnseen == StatusBackUnseen && _playerHeadmarker == HeadmarkerPlayerCCW && _playerTimes == StatusPlayerFive) + ) + { + sz = DirectionEnum.Right; + } + if (sz == DirectionEnum.None) + { + return true; + } + GameObject go = _state.cs.LocalPlayer; + Vector3 t1, t2; + Vector3 p1 = go.Position; + Vector3 p2, p3, p4; + double heading = (go.Rotation * -1.0f) + (Math.PI / 2.0f); + switch (sz) + { + case DirectionEnum.Front: + break; + case DirectionEnum.Back: + heading += Math.PI; + break; + case DirectionEnum.Left: + heading -= (Math.PI / 2.0f); + break; + case DirectionEnum.Right: + heading += (Math.PI / 2.0f); + break; + default: + return true; + } + float time = (float)(DateTime.Now - DateTime.Today).TotalMilliseconds / 200.0f; + float ang = (float)Math.Abs(Math.Cos(time)); + float ex = 1.0f + (float)(Math.Sin(ang) * 0.5f); + p2 = new Vector3(p1.X + (float)Math.Cos(heading) * ex, p1.Y, p1.Z + (float)Math.Sin(heading) * ex); + p3 = new Vector3(p2.X + (float)Math.Cos(heading + Math.PI / 2.0f) * ex, p2.Y, p2.Z + (float)Math.Sin(heading + Math.PI / 2.0f) * ex); + p4 = new Vector3(p2.X + (float)Math.Cos(heading - Math.PI / 2.0f) * ex, p2.Y, p2.Z + (float)Math.Sin(heading - Math.PI / 2.0f) * ex); + t1 = _state.plug._ui.TranslateToScreen(p3.X, p3.Y, p3.Z); + t2 = _state.plug._ui.TranslateToScreen(p4.X, p4.Y, p4.Z); + draw.AddLine( + new Vector2(t1.X, t1.Y), + new Vector2(t2.X, t2.Y), + ImGui.GetColorU32(IndicatorColor), + 3.0f + ); + ex = 1.3f + (float)(Math.Sin(ang) * 0.5f); + p2 = new Vector3(p1.X + (float)Math.Cos(heading) * ex, p1.Y, p1.Z + (float)Math.Sin(heading) * ex); + p3 = new Vector3(p2.X + (float)Math.Cos(heading + Math.PI / 2.0f) * ex, p2.Y, p2.Z + (float)Math.Sin(heading + Math.PI / 2.0f) * ex); + p4 = new Vector3(p2.X + (float)Math.Cos(heading - Math.PI / 2.0f) * ex, p2.Y, p2.Z + (float)Math.Sin(heading - Math.PI / 2.0f) * ex); + t1 = _state.plug._ui.TranslateToScreen(p3.X, p3.Y, p3.Z); + t2 = _state.plug._ui.TranslateToScreen(p4.X, p4.Y, p4.Z); + draw.AddLine( + new Vector2(t1.X, t1.Y), + new Vector2(t2.X, t2.Y), + ImGui.GetColorU32(IndicatorColor), + 3.0f + ); + return true; + } + + } + + #endregion + + public EwCritAloalo(State st) : base(st) + { + st.OnZoneChange += OnZoneChange; + } + + protected override bool ExecutionImplementation() + { + if (ZoneOk == true) + { + return base.ExecutionImplementation(); + } + return false; + } + + private void SubscribeToEvents() + { + _state.OnHeadMarker += _state_OnHeadMarker; + _state.OnStatusChange += _state_OnStatusChange; + _state.OnCastBegin += _state_OnCastBegin; + _state.OnCombatantAdded += _state_OnCombatantAdded; + _state.OnCombatantRemoved += _state_OnCombatantRemoved; + } + + private void _state_OnCombatantRemoved(uint actorId, nint addr) + { + if (actorId == _springCrystal._midCrystalId) + { + _springCrystal.Reset(); + } + } + + private void _state_OnCombatantAdded(GameObject go) + { + if (go is Character) + { + Character ch = go as Character; + if (ch.NameId == 12606 || ch.NameId == 12607) + { + float x = Math.Abs(go.Position.X); + float z = Math.Abs(go.Position.Z); + if (x >= 4.0 && x <= 6.0 && z >= 4.0 && z <= 6.0) + { + _springCrystal.FeedMidCrystal(go); + } + } + } + } + + private void _state_OnCastBegin(uint src, uint dest, ushort actionId, float castTime, float rotation) + { + switch (actionId) + { + case AbilityArcaneBlightN: + case AbilityArcaneBlightE: + case AbilityArcaneBlightS: + case AbilityArcaneBlightW: + _lalaRotation.FeedAction(src, actionId); + break; + } + } + + private void _state_OnHeadMarker(uint dest, uint markerId) + { + switch (markerId) + { + case HeadmarkerLalaCW: + case HeadmarkerLalaCCW: + _lalaRotation.FeedHeadmarker(dest, markerId); + break; + case HeadmarkerPlayerCW: + case HeadmarkerPlayerCCW: + _playerRotation.FeedHeadmarker(dest, markerId); + break; + } + } + + private void _state_OnStatusChange(uint src, uint dest, uint statusId, bool gained, float duration, int stacks) + { + switch (statusId) + { + case StatusLalaThree: + case StatusLalaFive: + _lalaRotation.FeedStatus(statusId, gained); + break; + case StatusPlayerThree: + case StatusPlayerFive: + case StatusFrontUnseen: + case StatusBackUnseen: + case StatusLeftUnseen: + case StatusRightUnseen: + _playerRotation.FeedStatus(dest, statusId, gained); + break; + } + } + + private void UnsubscribeFromEvents() + { + _state.OnStatusChange -= _state_OnStatusChange; + _state.OnHeadMarker -= _state_OnHeadMarker; + _state.OnCastBegin -= _state_OnCastBegin; + _state.OnCombatantAdded -= _state_OnCombatantAdded; + } + + private void OnCombatChange(bool inCombat) + { + Reset(); + if (inCombat == true) + { + SubscribeToEvents(); + } + else + { + UnsubscribeFromEvents(); + } + } + + private void OnZoneChange(ushort newZone) + { + bool newZoneOk = (newZone == 1179 || newZone == 1180); + if (newZoneOk == true && ZoneOk == false) + { + Log(State.LogLevelEnum.Info, null, "Content available"); + _springCrystal = (SpringCrystal)Items["SpringCrystal"]; + _lalaRotation = (LalaRotation)Items["LalaRotation"]; + _playerRotation = (PlayerRotation)Items["PlayerRotation"]; + _state.OnCombatChange += OnCombatChange; + } + else if (newZoneOk == false && ZoneOk == true) + { + Log(State.LogLevelEnum.Info, null, "Content unavailable"); + _state.OnCombatChange -= OnCombatChange; + } + ZoneOk = newZoneOk; + } + + } + +} diff --git a/Lemegeton/ContentCategory/Criterion.cs b/Lemegeton/ContentCategory/Criterion.cs new file mode 100644 index 0000000..8871179 --- /dev/null +++ b/Lemegeton/ContentCategory/Criterion.cs @@ -0,0 +1,34 @@ +using Lemegeton.Content; +using Lemegeton.Core; +using System.Collections.Generic; + +namespace Lemegeton.ContentCategory +{ + + public class Criterion : Core.ContentCategory + { + + public override FeaturesEnum Features => FeaturesEnum.None; + + public override ContentCategoryTypeEnum ContentCategoryType => ContentCategoryTypeEnum.Content; + + protected override Dictionary InitializeSubcategories(State st) + { + Dictionary items = new Dictionary(); + return items; + } + + protected override Dictionary InitializeContentItems(State st) + { + Dictionary items = new Dictionary(); + items["EwCritAloalo"] = new EwCritAloalo(st); + return items; + } + + public Criterion(State st) : base(st) + { + } + + } + +} diff --git a/Lemegeton/Core/Timeline.cs b/Lemegeton/Core/Timeline.cs index 7ef1fa7..28f3a5a 100644 --- a/Lemegeton/Core/Timeline.cs +++ b/Lemegeton/Core/Timeline.cs @@ -179,6 +179,8 @@ public enum EntryTypeEnum Timed, Ability, Spawn, + StatusGain, + StatusLoss } public class ProfileSettings diff --git a/Lemegeton/Core/TimelineRecorder.cs b/Lemegeton/Core/TimelineRecorder.cs new file mode 100644 index 0000000..49fc088 --- /dev/null +++ b/Lemegeton/Core/TimelineRecorder.cs @@ -0,0 +1,369 @@ +using Dalamud.Game.ClientState.Objects.Types; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using CharacterStruct = FFXIVClientStructs.FFXIV.Client.Game.Character.Character; +using static Lemegeton.Core.State; +using System.Xml.Linq; + +namespace Lemegeton.Core +{ + + internal class TimelineRecorder + { + + private enum RecordingStateEnum + { + Idle, + Recording, + Suspended + } + + [Flags] + internal enum RecordedEventsEnum + { + AutoAttack = 0x0001, + HostileAction = 0x0010, + HostileSpawn = 0x0020, + HostileStatusGain = 0x0040, + HostileStatusLost = 0x0080, + FriendlyAction = 0x0100, + FriendlySpawn = 0x0200, + FriendlyStatusGain = 0x0400, + FriendlyStatusLost = 0x0800, + } + + public RecordedEventsEnum RecordedEvents = RecordedEventsEnum.HostileAction | RecordedEventsEnum.HostileSpawn; + + public bool StartRecordingOnCombat { get; set; } = false; + public bool ResumeRecordingOnTargettable { get; set; } = false; + + public bool SuspendRecordingAfterCombat { get; set; } = false; + public bool SuspendRecordingOnUntargettable { get; set; } = false; + + public bool StopRecordingAfterCombat { get; set; } = false; + public bool StopRecordingOnUntargettable { get; set; } = false; + + private bool _subbed = false; + private DateTime _startTime = DateTime.Now; + private State _state = null; + + internal delegate void RecordingFinishedDelegate(Timeline result); + internal event RecordingFinishedDelegate RecordingFinished; + + private RecordingStateEnum _recState = RecordingStateEnum.Idle; + private RecordingStateEnum recState + { + get + { + return _recState; + } + set + { + _recState = value; + } + } + + private uint _lastActionId = 0; + private DateTime _lastActionTs = DateTime.Now; + private uint _lastSpawnNameId = 0; + private DateTime _lastSpawnTs = DateTime.Now; + + private Timeline _tl = null; + private Timeline.Encounter _enc = null; + + public TimelineRecorder(State state) + { + _state = state; + recState = RecordingStateEnum.Idle; + } + + private void StartRecording() + { + if (recState == RecordingStateEnum.Recording) + { + return; + } + if (recState == RecordingStateEnum.Suspended) + { + _startTime = DateTime.Now; + _state.Log(State.LogLevelEnum.Debug, null, "Resuming timeline recording with next encounter"); + Timeline.Encounter enc = new Timeline.Encounter() { Id = _tl.Encounters.Count + 1 }; + enc.Triggers.Add(new Timeline.Encounter.Trigger() { Type = Timeline.Encounter.Trigger.EventTypeEnum.Start, EventType = Timeline.Encounter.Trigger.TriggerTypeEnum.OnCombatStart }); + enc.Triggers.Add(new Timeline.Encounter.Trigger() { Type = Timeline.Encounter.Trigger.EventTypeEnum.Stop, EventType = Timeline.Encounter.Trigger.TriggerTypeEnum.OnCombatEnd }); + enc.Triggers.Add(new Timeline.Encounter.Trigger() { Type = Timeline.Encounter.Trigger.EventTypeEnum.Select, EventType = Timeline.Encounter.Trigger.TriggerTypeEnum.Default }); + _tl.Encounters.Add(enc); + _enc = enc; + } + else + { + _startTime = DateTime.Now; + _state.Log(State.LogLevelEnum.Debug, null, "Starting new timeline recording"); + _tl = new Timeline(); + _tl.Territory = _state.cs.TerritoryType; + _tl.Description = String.Format("Recorded by TimelineRecorder on {0}", _startTime); + Timeline.Encounter enc = new Timeline.Encounter() { Id = 1 }; + enc.Triggers.Add(new Timeline.Encounter.Trigger() { Type = Timeline.Encounter.Trigger.EventTypeEnum.Start, EventType = Timeline.Encounter.Trigger.TriggerTypeEnum.OnCombatStart }); + enc.Triggers.Add(new Timeline.Encounter.Trigger() { Type = Timeline.Encounter.Trigger.EventTypeEnum.Stop, EventType = Timeline.Encounter.Trigger.TriggerTypeEnum.OnCombatEnd }); + enc.Triggers.Add(new Timeline.Encounter.Trigger() { Type = Timeline.Encounter.Trigger.EventTypeEnum.Select, EventType = Timeline.Encounter.Trigger.TriggerTypeEnum.Default }); + _tl.Encounters.Add(enc); + _enc = enc; + } + recState = RecordingStateEnum.Recording; + } + + private void SuspendRecording() + { + if (recState != RecordingStateEnum.Recording) + { + return; + } + _state.Log(State.LogLevelEnum.Debug, null, "Timeline recording suspended"); + recState = RecordingStateEnum.Suspended; + } + + private void StopRecording() + { + if (recState == RecordingStateEnum.Idle) + { + return; + } + _lastActionId = 0; + _lastActionTs = DateTime.Now; + _lastSpawnNameId = 0; + _lastSpawnTs = DateTime.Now; + if (_tl != null && (_tl.Encounters.Count > 1 || _enc.Entries.Count > 0)) + { + _state.Log(LogLevelEnum.Debug, null, "Finishing recorded timeline"); + RecordingFinished?.Invoke(_tl); + } + else + { + _state.Log(State.LogLevelEnum.Debug, null, "No encounters or events captured, not finishing timeline"); + } + recState = RecordingStateEnum.Idle; + } + + private void SubscribeToEvents() + { + lock (this) + { + if (_subbed == true) + { + return; + } + _subbed = true; + _state.Log(State.LogLevelEnum.Debug, null, "Subscribing to events for timeline recording"); + _state.OnAction += _state_OnAction; + _state.OnCombatChange += _state_OnCombatChange; + _state.OnZoneChange += _state_OnZoneChange; + _state.OnTargettable += _state_OnTargettable; + _state.OnUntargettable += _state_OnUntargettable; + _state.OnCombatantAdded += _state_OnCombatantAdded; + _state.OnStatusChange += _state_OnStatusChange; + } + } + + private void UnsubscribeFromEvents() + { + lock (this) + { + if (_subbed == false) + { + return; + } + _state.Log(State.LogLevelEnum.Debug, null, "Unsubscribing from events for timeline recording"); + _state.OnAction -= _state_OnAction; + _state.OnCombatChange -= _state_OnCombatChange; + _state.OnZoneChange -= _state_OnZoneChange; + _state.OnTargettable -= _state_OnTargettable; + _state.OnUntargettable -= _state_OnUntargettable; + _state.OnCombatantAdded -= _state_OnCombatantAdded; + _state.OnStatusChange -= _state_OnStatusChange; + _subbed = false; + } + } + + private bool IsHostile(uint id) + { + GameObject go = _state.GetActorById(id); + return IsHostile(go); + } + + private bool IsFriendly(uint id) + { + return !IsHostile(id); + } + + private bool IsHostile(GameObject go) + { + if (go is BattleChara) + { + BattleChara bc = (BattleChara)go; + return ((_state.GetStatusFlags(bc) & Dalamud.Game.ClientState.Objects.Enums.StatusFlags.Hostile) != 0); + } + return false; + } + + private bool IsFriendly(GameObject go) + { + return !IsHostile(go); + } + + private void _state_OnStatusChange(uint src, uint dest, uint statusId, bool gained, float duration, int stacks) + { + Timeline.Entry e = new Timeline.Entry(); + e.StartTime = (float)Math.Round((DateTime.Now - _startTime).TotalSeconds, 1); + e.KeyValues.Add(statusId); + e.Type = gained == true ? Timeline.Entry.EntryTypeEnum.StatusGain : Timeline.Entry.EntryTypeEnum.StatusLoss; + e.Description = "todo"; + _enc.Entries.Add(e); + } + + private void _state_OnAction(uint src, uint dest, ushort actionId) + { + if (recState != RecordingStateEnum.Recording) + { + return; + } + if (_lastActionId == actionId && (DateTime.Now - _lastActionTs).TotalMilliseconds < 50.0) + { + return; + } + _lastActionId = actionId; + _lastActionTs = DateTime.Now; + GameObject go = _state.GetActorById(src); + if (go is Character) + { + Character ch = (Character)go; + unsafe + { + CharacterStruct* chs = (CharacterStruct*)ch.Address; + if (chs->CharacterData.ModelCharaId == 0) + { + return; + } + } + } + if (go is BattleChara) + { + BattleChara bc = (BattleChara)go; + if ((_state.GetStatusFlags(bc) & Dalamud.Game.ClientState.Objects.Enums.StatusFlags.Hostile) != 0) + { + Lumina.Excel.GeneratedSheets.Action a = _state.dm.Excel.GetSheet().GetRow(actionId); + if ((RecordedEvents & RecordedEventsEnum.AutoAttack) == 0 && a.ActionCategory.Row == 1) + { + return; + } + string abname = _state.plug.GetActionName(actionId); + if (abname.Trim().Length > 0) + { + Timeline.Entry e = new Timeline.Entry(); + e.StartTime = (float)Math.Round((DateTime.Now - _startTime).TotalSeconds, 1); + e.Type = Timeline.Entry.EntryTypeEnum.Ability; + e.KeyValues.Add(actionId); + e.Description = String.Format("{0} ({1}): {2}", bc.Name, bc.NameId, abname); + _enc.Entries.Add(e); + } + } + } + } + + private void _state_OnCombatChange(bool inCombat) + { + if (inCombat == true && StartRecordingOnCombat == true && recState != RecordingStateEnum.Recording) + { + _state.Log(State.LogLevelEnum.Debug, null, "Combat started, starting timeline recording"); + StartRecording(); + } + if (inCombat == false && recState == RecordingStateEnum.Recording) + { + if (SuspendRecordingAfterCombat == true) + { + _state.Log(State.LogLevelEnum.Debug, null, "Combat ended, suspending timeline recording"); + StopRecording(); + } + else if (StopRecordingAfterCombat == true) + { + _state.Log(State.LogLevelEnum.Debug, null, "Combat ended, stopping timeline recording"); + StopRecording(); + } + } + } + + private void _state_OnZoneChange(ushort newZone) + { + if (recState != RecordingStateEnum.Idle) + { + _state.Log(State.LogLevelEnum.Debug, null, "Zone changed, stopping timeline recording"); + StopRecording(); + } + } + + private void _state_OnTargettable() + { + if (recState == RecordingStateEnum.Suspended && ResumeRecordingOnTargettable == true) + { + _state.Log(State.LogLevelEnum.Debug, null, "Hostiles targettable, resuming timeline recording"); + StartRecording(); + } + } + + private void _state_OnUntargettable() + { + if (recState == RecordingStateEnum.Recording && SuspendRecordingOnUntargettable == true) + { + _state.Log(State.LogLevelEnum.Debug, null, "Hostiles untargettable, suspending timeline recording"); + SuspendRecording(); + } + else if (recState != RecordingStateEnum.Idle && StopRecordingOnUntargettable == true) + { + _state.Log(State.LogLevelEnum.Debug, null, "Hostiles untargettable, stopping timeline recording"); + StopRecording(); + } + } + + private void _state_OnCombatantAdded(GameObject go) + { + if (recState != RecordingStateEnum.Recording || (RecordedEvents & RecordedEventsEnum.HostileSpawn) == 0) + { + return; + } + if (go is Character) + { + Character ch = (Character)go; + unsafe + { + CharacterStruct* chs = (CharacterStruct*)ch.Address; + if (chs->CharacterData.ModelCharaId == 0) + { + return; + } + } + } + if (go is BattleChara) + { + BattleChara bc = (BattleChara)go; + if (_lastSpawnNameId == bc.NameId && (DateTime.Now - _lastSpawnTs).TotalMilliseconds < 50.0) + { + return; + } + _lastSpawnNameId = bc.NameId; + _lastSpawnTs = DateTime.Now; + if ((_state.GetStatusFlags(bc) & Dalamud.Game.ClientState.Objects.Enums.StatusFlags.Hostile) != 0 && bc.MaxHp > 0) + { + Timeline.Entry e = new Timeline.Entry(); + e.StartTime = (float)Math.Round((DateTime.Now - _startTime).TotalSeconds, 1); + e.Type = Timeline.Entry.EntryTypeEnum.Spawn; + e.KeyValues.Add(bc.NameId); + e.Description = String.Format("{0} ({1})", bc.Name, bc.NameId); + _enc.Entries.Add(e); + } + } + } + + } + +} diff --git a/Lemegeton/Language/English.cs b/Lemegeton/Language/English.cs index 3f13017..8020de0 100644 --- a/Lemegeton/Language/English.cs +++ b/Lemegeton/Language/English.cs @@ -14,6 +14,23 @@ internal class English : Core.Language public English(State st) : base(st) { + #region 1.0.2.3 + AddEntry("Content/Criterion", "Criterion Dungeons"); + AddEntry("Content/Criterion/Enabled", "Enabled"); + AddEntry("Content/Criterion/EwCritAloalo", "Another Aloalo Island"); + AddEntry("Content/Criterion/EwCritAloalo/Enabled", "Enabled"); + AddEntry("Content/Criterion/EwCritAloalo/SpringCrystal", "Spring Crystals safe spot indicator"); + AddEntry("Content/Criterion/EwCritAloalo/SpringCrystal/Enabled", "Enabled"); + AddEntry("Content/Criterion/EwCritAloalo/SpringCrystal/SafeSpotColor", "Safe spot indicator color"); + AddEntry("Content/Criterion/EwCritAloalo/SpringCrystal/Test", "Test on player"); + AddEntry("Content/Criterion/EwCritAloalo/LalaRotation", "Lala rotation indicator"); + AddEntry("Content/Criterion/EwCritAloalo/LalaRotation/Enabled", "Enabled"); + AddEntry("Content/Criterion/EwCritAloalo/LalaRotation/SafeZoneColor", "Safe zone indicator color"); + AddEntry("Content/Criterion/EwCritAloalo/LalaRotation/Test", "Test on player with random direction"); + AddEntry("Content/Criterion/EwCritAloalo/PlayerRotation", "Unseen shield rotation indicator"); + AddEntry("Content/Criterion/EwCritAloalo/PlayerRotation/Enabled", "Enabled"); + AddEntry("Content/Criterion/EwCritAloalo/PlayerRotation/IndicatorColor", "Shield indicator color"); + AddEntry("Content/Criterion/EwCritAloalo/PlayerRotation/Test", "Test random direction"); AddEntry("Content/Ultimate/UltUcob/FireballAm", "(P2) Fireball automarker"); AddEntry("Content/Ultimate/UltUcob/FireballAm/Enabled", "Enabled"); AddEntry("Content/Ultimate/UltUcob/FireballAm/SelfMarkOnly", "Self-marking only"); @@ -21,6 +38,9 @@ public English(State st) : base(st) AddEntry("Content/Ultimate/UltUcob/FireballAm/Signs", "Marker configuration"); AddEntry("Content/Ultimate/UltUcob/FireballAm/Signs/FireballTarget", "Fireball target"); AddEntry("Content/Ultimate/UltUcob/FireballAm/Test", "Test random assignment"); + AddEntry("Content/Debug/Debugger/EventLogger/IncludeLocation", "Include location information"); + AddEntry("Content/Debug/Debugger/EventLogger/ResolveNames", "Resolve action and status names"); + #endregion #region 1.0.2.2 AddEntry("Content/Ultimate/UltUcob/GrandOctetAm", "(P3) Grand Octet Twintania Dive automarker"); AddEntry("Content/Ultimate/UltUcob/GrandOctetAm/Enabled", "Enabled"); diff --git a/Lemegeton/Language/Korean.cs b/Lemegeton/Language/Korean.cs index e275be0..1c8f59c 100644 --- a/Lemegeton/Language/Korean.cs +++ b/Lemegeton/Language/Korean.cs @@ -15,180 +15,180 @@ internal class Korean : Core.Language public Korean(State st) : base(st) { #region 1.0.2.2 - //AddEntry("Content/Ultimate/UltUcob/GrandOctetAm", "(P3) Grand Octet Twintania Dive automarker"); - //AddEntry("Content/Ultimate/UltUcob/GrandOctetAm/Enabled", "Enabled"); - //AddEntry("Content/Ultimate/UltUcob/GrandOctetAm/SelfMarkOnly", "Self-marking only"); - //AddEntry("Content/Ultimate/UltUcob/GrandOctetAm/AsSoftmarker", "Show as client-side soft markers"); - //AddEntry("Content/Ultimate/UltUcob/GrandOctetAm/Signs", "Marker configuration"); - //AddEntry("Content/Ultimate/UltUcob/GrandOctetAm/Signs/TwistingDive", "Dive target"); - //AddEntry("Content/Ultimate/UltUcob/GrandOctetAm/Test", "Test random assignment"); + AddEntry("Content/Ultimate/UltUcob/GrandOctetAm", "(3 페이즈) 용들의 8중주/군룡 트윈타니아 오토마커"); + AddEntry("Content/Ultimate/UltUcob/GrandOctetAm/Enabled", "활성화"); + AddEntry("Content/Ultimate/UltUcob/GrandOctetAm/SelfMarkOnly", "나에게만 징 달기"); + AddEntry("Content/Ultimate/UltUcob/GrandOctetAm/AsSoftmarker", "클라이언트 측의 소프트 마커 사용하기"); + AddEntry("Content/Ultimate/UltUcob/GrandOctetAm/Signs", "마커 설정"); + AddEntry("Content/Ultimate/UltUcob/GrandOctetAm/Signs/TwistingDive", "트윈타니아"); + AddEntry("Content/Ultimate/UltUcob/GrandOctetAm/Test", "랜덤 할당 테스트"); #endregion #region 1.0.2.1 - //AddEntry("Job/BLU", "Blue Mage"); - //AddEntry("Content/Ultimate/UltUcob/TenstrikeAm", "(P3) Tenstrike Trio automarker"); - //AddEntry("Content/Ultimate/UltUcob/TenstrikeAm/Enabled", "Enabled"); - //AddEntry("Content/Ultimate/UltUcob/TenstrikeAm/SelfMarkOnly", "Self-marking only"); - //AddEntry("Content/Ultimate/UltUcob/TenstrikeAm/AsSoftmarker", "Show as client-side soft markers"); - //AddEntry("Content/Ultimate/UltUcob/TenstrikeAm/Signs1", "Hatches"); - //AddEntry("Content/Ultimate/UltUcob/TenstrikeAm/Signs1/Hatch1", "Hatch 1"); - //AddEntry("Content/Ultimate/UltUcob/TenstrikeAm/Signs1/Hatch2", "Hatch 2"); - //AddEntry("Content/Ultimate/UltUcob/TenstrikeAm/Signs1/Hatch3", "Hatch 3"); - //AddEntry("Content/Ultimate/UltUcob/TenstrikeAm/Signs1/Nonhatch1", "Non-hatch 1"); - //AddEntry("Content/Ultimate/UltUcob/TenstrikeAm/Signs1/Nonhatch2", "Non-hatch 2"); - //AddEntry("Content/Ultimate/UltUcob/TenstrikeAm/Signs1/Nonhatch3", "Non-hatch 3"); - //AddEntry("Content/Ultimate/UltUcob/TenstrikeAm/Signs2", "Earthshakers"); - //AddEntry("Content/Ultimate/UltUcob/TenstrikeAm/Signs2/Shaker1", "Earthshaker 1"); - //AddEntry("Content/Ultimate/UltUcob/TenstrikeAm/Signs2/Shaker2", "Earthshaker 2"); - //AddEntry("Content/Ultimate/UltUcob/TenstrikeAm/Signs2/Shaker3", "Earthshaker 3"); - //AddEntry("Content/Ultimate/UltUcob/TenstrikeAm/Signs2/Shaker4", "Earthshaker 4"); - //AddEntry("Content/Ultimate/UltUcob/TenstrikeAm/Prio", "Priority configuration"); - //AddEntry("Content/Ultimate/UltUcob/TenstrikeAm/Test", "Test random assignment"); + AddEntry("Job/BLU", "청마도사"); + AddEntry("Content/Ultimate/UltUcob/TenstrikeAm", "(P3) 연격의 삼중주 오토마커"); + AddEntry("Content/Ultimate/UltUcob/TenstrikeAm/Enabled", "활성화"); + AddEntry("Content/Ultimate/UltUcob/TenstrikeAm/SelfMarkOnly", "나에게만 징 달기"); + AddEntry("Content/Ultimate/UltUcob/TenstrikeAm/AsSoftmarker", "클라이언트 측의 소프트 마커 사용하기"); + AddEntry("Content/Ultimate/UltUcob/TenstrikeAm/Signs1", "마력연성"); + AddEntry("Content/Ultimate/UltUcob/TenstrikeAm/Signs1/Hatch1", "마력연성 1"); + AddEntry("Content/Ultimate/UltUcob/TenstrikeAm/Signs1/Hatch2", "마력연성 2"); + AddEntry("Content/Ultimate/UltUcob/TenstrikeAm/Signs1/Hatch3", "마력연성 3"); + AddEntry("Content/Ultimate/UltUcob/TenstrikeAm/Signs1/Nonhatch1", "무징 1"); + AddEntry("Content/Ultimate/UltUcob/TenstrikeAm/Signs1/Nonhatch2", "무징 2"); + AddEntry("Content/Ultimate/UltUcob/TenstrikeAm/Signs1/Nonhatch3", "무징 3"); + AddEntry("Content/Ultimate/UltUcob/TenstrikeAm/Signs2", "어스"); + AddEntry("Content/Ultimate/UltUcob/TenstrikeAm/Signs2/Shaker1", "어스 1"); + AddEntry("Content/Ultimate/UltUcob/TenstrikeAm/Signs2/Shaker2", "어스 2"); + AddEntry("Content/Ultimate/UltUcob/TenstrikeAm/Signs2/Shaker3", "어스 3"); + AddEntry("Content/Ultimate/UltUcob/TenstrikeAm/Signs2/Shaker4", "어스 4"); + AddEntry("Content/Ultimate/UltUcob/TenstrikeAm/Prio", "우선 순위 설정"); + AddEntry("Content/Ultimate/UltUcob/TenstrikeAm/Test", "랜덤 할당 테스트"); #endregion #region 1.0.2.0 - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM", "(P12s) Caloric Theory 1 automarker"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Enabled", "Enabled"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/SelfMarkOnly", "Self-marking only"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/AsSoftmarker", "Show as client-side soft markers"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Signs1", "Initial marker configuration"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Signs1/InitialWind1", "Initial flare 1"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Signs1/InitialWind2", "Initial flare 2"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Signs2", "First fire configuration"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Signs2/Fire1", "Fire stack 1"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Signs2/Fire2", "Fire stack 2"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Signs2/Fire3", "Fire stack 3"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Signs2/Fire4", "Fire stack 4"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Signs2/Wind1", "Wind 1"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Signs2/Wind2", "Wind 2"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Signs2/Wind3", "Wind 3"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Signs2/Wind4", "Wind 4"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Signs3", "Second fire configuration"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Signs3/Fire1", "Fire share 1"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Signs3/Fire2", "Fire share 2"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Signs3/OldFire1", "Fire stack 1"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Signs3/OldFire2", "Fire stack 2"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Prio", "Priority configuration"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Test", "Test random assignment"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory2AM", "(P12s) Caloric Theory 2 automarker"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory2AM/Enabled", "Enabled"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory2AM/SelfMarkOnly", "Self-marking only"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory2AM/AsSoftmarker", "Show as client-side soft markers"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory2AM/Signs", "Marker configuration"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory2AM/Signs/Fire1", "Initial flare"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory2AM/Signs/Wind1", "Wind 1"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory2AM/Signs/Wind2", "Wind 2"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory2AM/Signs/Wind3", "Wind 3"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory2AM/Signs/Wind4", "Wind 4"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory2AM/Signs/Wind5", "Wind 5"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory2AM/Signs/Wind6", "Wind 6"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory2AM/Signs/Wind7", "Wind 7"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory2AM/Prio", "Priority configuration"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory2AM/Test", "Test random assignment"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM", "(천영 4층) 열소설 1 오토마커"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Enabled", "활성화"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/SelfMarkOnly", "나에게만 징 달기"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/AsSoftmarker", "클라이언트 측의 소프트 마커 사용하기"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Signs1", "초기 징 설정"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Signs1/InitialWind1", "첫 번째 불 1"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Signs1/InitialWind2", "첫 번째 불 2"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Signs2", "첫 번째 불 이후"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Signs2/Fire1", "불 1"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Signs2/Fire2", "불 2"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Signs2/Fire3", "불 3"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Signs2/Fire4", "불 4"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Signs2/Wind1", "바람 1"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Signs2/Wind2", "바람 2"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Signs2/Wind3", "바람 3"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Signs2/Wind4", "바람 4"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Signs3", "두 번째 불 이후"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Signs3/Fire1", "불 쉐어 1"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Signs3/Fire2", "불 쉐어 2"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Signs3/OldFire1", "불 1"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Signs3/OldFire2", "불 2"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Prio", "우선 순위 설정"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory1AM/Test", "랜덤 할당 테스트"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory2AM", "(천영 4층) 열소설 2 오토마커"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory2AM/Enabled", "활성화"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory2AM/SelfMarkOnly", "나에게만 징 달기"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory2AM/AsSoftmarker", "클라이언트 측의 소프트 마커 사용하기"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory2AM/Signs", "마커 설정"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory2AM/Signs/Fire1", "첫 불"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory2AM/Signs/Wind1", "바람 1"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory2AM/Signs/Wind2", "바람 2"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory2AM/Signs/Wind3", "바람 3"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory2AM/Signs/Wind4", "바람 4"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory2AM/Signs/Wind5", "바람 5"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory2AM/Signs/Wind6", "바람 6"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory2AM/Signs/Wind7", "바람 7"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory2AM/Prio", "우선 순위 설정"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/CaloricTheory2AM/Test", "랜덤 할당 테스트"); #endregion #region 1.0.1.8 - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/PangenesisAM", "(P12s) Pangenesis automarker"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/PangenesisAM/Enabled", "Enabled"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/PangenesisAM/SelfMarkOnly", "Self-marking only"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/PangenesisAM/AsSoftmarker", "Show as client-side soft markers"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/PangenesisAM/Signs", "Marker configuration"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/PangenesisAM/Signs/LongLight", "Long light"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/PangenesisAM/Signs/ShortLight", "Short light"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/PangenesisAM/Signs/LongDark", "Long dark"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/PangenesisAM/Signs/ShortDark", "Short dark"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/PangenesisAM/Signs/One1", "Single stack 1"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/PangenesisAM/Signs/One2", "Single stack 2"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/PangenesisAM/Signs/Nothing1", "Nothing 1"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/PangenesisAM/Signs/Nothing2", "Nothing 2"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/PangenesisAM/Prio", "Priority configuration"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/PangenesisAM/Test", "Test random assignment"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/PangenesisAM", "(천영 4층) 범생설 오토마커"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/PangenesisAM/Enabled", "활성화"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/PangenesisAM/SelfMarkOnly", "나에게만 징 달기"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/PangenesisAM/AsSoftmarker", "클라이언트 측의 소프트 마커 사용하기"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/PangenesisAM/Signs", "마커 설정"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/PangenesisAM/Signs/LongLight", "긴 빛"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/PangenesisAM/Signs/ShortLight", "짧은 빛"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/PangenesisAM/Signs/LongDark", "긴 어둠"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/PangenesisAM/Signs/ShortDark", "짧은 어둠"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/PangenesisAM/Signs/One1", "1중첩 1"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/PangenesisAM/Signs/One2", "1중첩 2"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/PangenesisAM/Signs/Nothing1", "무징 1"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/PangenesisAM/Signs/Nothing2", "무징 2"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/PangenesisAM/Prio", "우선 순위 설정"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/PangenesisAM/Test", "랜덤 할당 테스트"); #endregion #region 1.0.1.6 - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/LevinballAM", "(P9s) Ball of Levin automarker"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/LevinballAM/Enabled", "Enabled"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/LevinballAM/SelfMarkOnly", "Self-marking only"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/LevinballAM/AsSoftmarker", "Show as client-side soft markers"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/LevinballAM/Signs", "Marker configuration"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/LevinballAM/Signs/LimitCut2", "Number 2"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/LevinballAM/Signs/LimitCut4", "Number 4"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/LevinballAM/Signs/LimitCut6", "Number 6"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/LevinballAM/Signs/LimitCut8", "Number 8"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/LevinballAM/Signs/BlueMarker", "Icemeld (Blue marker)"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/LevinballAM/Test", "Test assignment"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/LevinballAM", "(천영 1층) 주사위 오토마커"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/LevinballAM/Enabled", "활성화"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/LevinballAM/SelfMarkOnly", "나에게만 징 달기"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/LevinballAM/AsSoftmarker", "클라이언트 측의 소프트 마커 사용하기"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/LevinballAM/Signs", "마커 설정"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/LevinballAM/Signs/LimitCut2", "주사위 2번"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/LevinballAM/Signs/LimitCut4", "주사위 4번"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/LevinballAM/Signs/LimitCut6", "주사위 6번"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/LevinballAM/Signs/LimitCut8", "주사위 8번"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/LevinballAM/Signs/BlueMarker", "청옥"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/LevinballAM/Test", "할당 테스트"); #endregion #region 1.0.1.5 - //AddEntry("Content/Miscellaneous/Overlays/DotTracker/DotVisuals", "Tracker visual configuration"); - //AddEntry("Content/Miscellaneous/Overlays/DotTracker/DotVisuals/BarWidth", "Timer bar width"); - //AddEntry("Content/Miscellaneous/Overlays/DotTracker/DotVisuals/ItemHeight", "Tracker item height"); - //AddEntry("Content/Miscellaneous/Overlays/DotTracker/DotVisuals/ShowBar", "Show timer bar"); - //AddEntry("Content/Miscellaneous/Overlays/DotTracker/DotVisuals/ShowIcon", "Show status effect icon"); - //AddEntry("Content/Miscellaneous/Overlays/DotTracker/DotVisuals/ShowTime", "Show timer value"); - //AddEntry("Content/Miscellaneous/Overlays/DotTracker/DotVisuals/ItemOffsetWorld", "Tracker item offset in world coordinates"); - //AddEntry("Content/Miscellaneous/Overlays/DotTracker/DotVisuals/ItemOffsetScreen", "Tracker item offset in screen coordinates"); + AddEntry("Content/Miscellaneous/Overlays/DotTracker/DotVisuals", "트래커 화면 설정"); + AddEntry("Content/Miscellaneous/Overlays/DotTracker/DotVisuals/BarWidth", "트래커 너비"); + AddEntry("Content/Miscellaneous/Overlays/DotTracker/DotVisuals/ItemHeight", "트래커 높이"); + AddEntry("Content/Miscellaneous/Overlays/DotTracker/DotVisuals/ShowBar", "트래커 보기"); + AddEntry("Content/Miscellaneous/Overlays/DotTracker/DotVisuals/ShowIcon", "스킬 아이콘 보기"); + AddEntry("Content/Miscellaneous/Overlays/DotTracker/DotVisuals/ShowTime", "스킬 시간 보기"); + AddEntry("Content/Miscellaneous/Overlays/DotTracker/DotVisuals/ItemOffsetWorld", "게임 내 좌표에서의 트래커 위치"); + AddEntry("Content/Miscellaneous/Overlays/DotTracker/DotVisuals/ItemOffsetScreen", "화면 내 좌표에서의 트래커 위치"); #endregion #region 1.0.1.4 - //AddEntry("Content/Miscellaneous/Overlays", "Overlays"); - //AddEntry("Content/Miscellaneous/Overlays/Enabled", "Aktiviert"); - //AddEntry("Content/Miscellaneous/Overlays/DotTracker", "DoT Tracker"); - //AddEntry("Content/Miscellaneous/Overlays/DotTracker/Enabled", "Aktiviert"); - //AddEntry("Content/Miscellaneous/Overlays/DotTracker/DotSettings", "Tracked damage-over-time statuses"); + AddEntry("Content/Miscellaneous/Overlays", "오버레이"); + AddEntry("Content/Miscellaneous/Overlays/Enabled", "활성화"); + AddEntry("Content/Miscellaneous/Overlays/DotTracker", "DoT 트래커"); + AddEntry("Content/Miscellaneous/Overlays/DotTracker/Enabled", "활성화"); + AddEntry("Content/Miscellaneous/Overlays/DotTracker/DotSettings", "DoT 상태 추적 허용하기"); #endregion #region 1.0.1.3 - //AddEntry("Timelines/ActionTypes/ChatMessage", "Ingame chat message"); - //AddEntry("Timelines/ActionTypes/IngameCommand", "Ingame command"); - //AddEntry("Timelines/ChatMessageText", "Message to print to ingame chat"); - //AddEntry("Timelines/ChatMessageSeverity", "Message severity"); - //AddEntry("Timelines/IngameCommandText", "Command to execute"); - //AddEntry("Timelines/ChatMessageSeverity/Normal", "Normal"); - //AddEntry("Timelines/ChatMessageSeverity/Error", "Error"); + AddEntry("Timelines/ActionTypes/ChatMessage", "게임 내 채팅 메시지"); + AddEntry("Timelines/ActionTypes/IngameCommand", "게임 내 명령어"); + AddEntry("Timelines/ChatMessageText", "게임 내 채팅창에서 메시지 보기"); + AddEntry("Timelines/ChatMessageSeverity", "메시지 중요도"); + AddEntry("Timelines/IngameCommandText", "실행할 명령어"); + AddEntry("Timelines/ChatMessageSeverity/Normal", "보통"); + AddEntry("Timelines/ChatMessageSeverity/Error", "오류"); #endregion #region 1.0.1.1 - //AddEntry("Signs/Attack6", "Attack 6"); - //AddEntry("Signs/Attack7", "Attack 7"); - //AddEntry("Signs/Attack8", "Attack 8"); + AddEntry("Signs/Attack6", "공격 6"); + AddEntry("Signs/Attack7", "공격 7"); + AddEntry("Signs/Attack8", "공격 8"); #endregion #region 1.0.1.0 - //AddEntry("MainMenu/Timelines", "Timelines"); - //AddEntry("Timelines/Timeline", "Timeline"); - //AddEntry("Timelines/Encounter", "Encounter/phase {0}"); - //AddEntry("Timelines/Timeline/None", "(none)"); - //AddEntry("Timelines/ReloadTimeline", "Reload timeline"); - //AddEntry("Timelines/Profile/Default", "(default)"); - //AddEntry("Timelines/Profile", "Profile"); - //AddEntry("Timelines/CreateProfile", "Create a new profile"); - //AddEntry("Timelines/CreateNewProfileAs", "Create new profile as.."); - //AddEntry("Timelines/CloneProfile", "Clone profile"); - //AddEntry("Timelines/CloneProfileAs", "Clone profile as.."); - //AddEntry("Timelines/DeleteProfile", "Delete profile"); - //AddEntry("Timelines/PreviewActive", "While these settings are displayed, your timeline overlay is freely movable and resizable. The timeline overlay will also show you an accelerated preview of your settings, and during this time, normal timeline display will not be available."); - //AddEntry("Timelines/PreviewTestAbilityName", "Ability Name Test"); - //AddEntry("Timelines/Settings/ShowOverlay", "Show timeline overlay when available"); - //AddEntry("Timelines/Settings/BarColor", "Upcoming event bar color"); - //AddEntry("Timelines/Settings/BarSoonColor", "Advance warning bar color"); - //AddEntry("Timelines/Settings/BarActiveColor", "Active event bar color"); - //AddEntry("Timelines/Settings/BarTextColor", "Upcoming event text color"); - //AddEntry("Timelines/Settings/BarSoonTextColor", "Advance warning text color"); - //AddEntry("Timelines/Settings/BarActiveTextColor", "Active event text color"); - //AddEntry("Timelines/Settings/BarBgColor", "Timer bar background color"); - //AddEntry("Timelines/Settings/ShowBarHead", "Highlight bar head"); - //AddEntry("Timelines/Settings/ShowBarName", "Show event name on bar"); - //AddEntry("Timelines/Settings/ShowBarTime", "Show time on bar"); - //AddEntry("Timelines/Settings/ShowBarCaps", "Always show ability name in uppercase"); - //AddEntry("Timelines/Settings/ShowDebug", "Show timeline debug information"); - //AddEntry("Timelines/Settings/BarStyle", "Timer bar display style"); - //AddEntry("Timelines/Settings/BarStyles/Solid", "Solid"); - //AddEntry("Timelines/Settings/BarStyles/Fancy", "Fancy"); - //AddEntry("Timelines/Settings/BarHeight", "Timer bar height"); - //AddEntry("Timelines/Settings/BarTextScale", "Text scale"); - //AddEntry("Timelines/Settings/TimeThreshold", "Event visibility threshold"); - //AddEntry("Timelines/Settings/SoonThreshold", "Advance warning highlight time"); - //AddEntry("Timelines/Settings/PastThreshold", "Past event visibility"); - //AddEntry("Timelines/SpecialTags/Targettable", "Targettable"); - //AddEntry("Timelines/SpecialTags/Untargettable", "Untargettable"); - //AddEntry("MainMenu/Settings/TimelineSettings", "Timeline settings"); - //AddEntry("MainMenu/Settings/TimelineTabVisible", "Timeline tab visible"); - //AddEntry("MainMenu/Settings/TimelineLocalAllowed", "Allow loading local timelines"); - //AddEntry("MainMenu/Settings/TimelineLocalFolder", "Local timeline folder"); - //AddEntry("MainMenu/Settings/TimelineLocalReload", "Reload all local timelines"); - //AddEntry("MainMenu/Settings/TimelineOverlaySettings", "Timeline overlay settings"); + AddEntry("MainMenu/Timelines", "타임라인"); + AddEntry("Timelines/Timeline", "타임라인"); + AddEntry("Timelines/Encounter", "적/페이즈 {0}"); + AddEntry("Timelines/Timeline/None", "(없음)"); + AddEntry("Timelines/ReloadTimeline", "타임라인 다시 불러오기"); + AddEntry("Timelines/Profile/Default", "(디폴트)"); + AddEntry("Timelines/Profile", "프로필"); + AddEntry("Timelines/CreateProfile", "새 프로필 생성"); + AddEntry("Timelines/CreateNewProfileAs", "다른 이름으로 새 프로필 생성"); + AddEntry("Timelines/CloneProfile", "프로필 복사"); + AddEntry("Timelines/CloneProfileAs", "다른 이름으로 프로필 복사"); + AddEntry("Timelines/DeleteProfile", "프로필 삭제"); + AddEntry("Timelines/PreviewActive", "오버레이가 보이는 동안 오버레이의 이동 및 크기 변경이 가능해요. 현재 보고 있는 오버레이는 미리보기로 실제 동작보다 빠르게 동작하고 있어요. 오버레이의 미리보기 중에는 실제 타임라인을 볼 수 없어요."); + AddEntry("Timelines/PreviewTestAbilityName", "스킬 이름 테스트"); + AddEntry("Timelines/Settings/ShowOverlay", "타임라인을 사용할 수 있을 경우 표시하기"); + AddEntry("Timelines/Settings/BarColor", "다음 기믹 배경색"); + AddEntry("Timelines/Settings/BarSoonColor", "경고 기믹 배경색"); + AddEntry("Timelines/Settings/BarActiveColor", "실행 중인 기믹 배경색"); + AddEntry("Timelines/Settings/BarTextColor", "다음 기믹 글자색"); + AddEntry("Timelines/Settings/BarSoonTextColor", "경고 기믹 글자색"); + AddEntry("Timelines/Settings/BarActiveTextColor", "다음 기믹 글자색"); + AddEntry("Timelines/Settings/BarBgColor", "타임라인 배경색"); + AddEntry("Timelines/Settings/ShowBarHead", "타이머 막대 끝 부분 강조하기"); + AddEntry("Timelines/Settings/ShowBarName", "기믹 이름 보기"); + AddEntry("Timelines/Settings/ShowBarTime", "남은 시간 보기"); + AddEntry("Timelines/Settings/ShowBarCaps", "기믹 이름을 항상 대문자로 보기"); + AddEntry("Timelines/Settings/ShowDebug", "타임라인 디버그 정보 보기"); + AddEntry("Timelines/Settings/BarStyle", "타임라인 타이머 막대 스타일"); + AddEntry("Timelines/Settings/BarStyles/Solid", "평면"); + AddEntry("Timelines/Settings/BarStyles/Fancy", "입체"); + AddEntry("Timelines/Settings/BarHeight", "타이머 막대 높이"); + AddEntry("Timelines/Settings/BarTextScale", "글자 크기"); + AddEntry("Timelines/Settings/TimeThreshold", "타임라인을 표시할 시간(초 이하)"); + AddEntry("Timelines/Settings/SoonThreshold", "경고 문구 표시 유지 시간(초)"); + AddEntry("Timelines/Settings/PastThreshold", "완료한 기믹 표시(초)"); + AddEntry("Timelines/SpecialTags/Targettable", "타깃 가능"); + AddEntry("Timelines/SpecialTags/Untargettable", "타깃 불가능"); + AddEntry("MainMenu/Settings/TimelineSettings", "타임라인 설정"); + AddEntry("MainMenu/Settings/TimelineTabVisible", "타임라인 탭 보기"); + AddEntry("MainMenu/Settings/TimelineLocalAllowed", "로컬 타임라인 사용하기"); + AddEntry("MainMenu/Settings/TimelineLocalFolder", "로컬 타임라인 폴더"); + AddEntry("MainMenu/Settings/TimelineLocalReload", "모든 로컬 타임라인 다시 불러오기"); + AddEntry("MainMenu/Settings/TimelineOverlaySettings", "타임라인 오버레이 설정"); //AddEntry("Timelines/ProfileDetails", "Profile settings"); //AddEntry("Timelines/EventDetails", "Timeline events"); //AddEntry("Timelines/Reactions", "Reactions"); @@ -225,24 +225,24 @@ public Korean(State st) : base(st) //AddEntry("Timelines/NotificationTTL", "Notification time-to-live"); //AddEntry("Timelines/NotificationTTS", "Use text-to-speech"); //AddEntry("SoundEffect/None", "No sound effect"); - //AddEntry("MainMenu/Settings/NotificationOverlaySettings", "Notification overlay settings"); - //AddEntry("Notifications/PreviewActive", "While these settings are displayed, your notification overlay is freely movable and resizable. The notification overlay will also show you a preview of your settings, and during this time, normal notification display will not be available."); - //AddEntry("Notifications/Settings/ShowOverlay", "Show notification overlay"); - //AddEntry("Notifications/TestNotification", "Test notification: {0}"); - //AddEntry("Notifications/Settings/TextScale", "Notification text scale"); - //AddEntry("Notifications/Settings/EntryHeight", "Notification entry height"); - //AddEntry("Notifications/Settings/NotificationOrderReverse", "Show new notifications at the bottom instead of at the top"); - //AddEntry("Notifications/Settings/TextAlignments", "Notification text alignment"); - //AddEntry("Notifications/Settings/TextAlignments/Left", "Left aligned"); - //AddEntry("Notifications/Settings/TextAlignments/Center", "Centered"); - //AddEntry("Notifications/Settings/TextAlignments/Right", "Right aligned"); - //AddEntry("Notifications/Settings/CriticalTextColor", "Critical notification text color"); - //AddEntry("Notifications/Settings/CriticalBgColor", "Critical notification background color"); - //AddEntry("Notifications/Settings/ImportantTextColor", "Important notification text color"); - //AddEntry("Notifications/Settings/ImportantBgColor", "Important notification background color"); - //AddEntry("Notifications/Settings/NormalTextColor", "Normal notification text color"); - //AddEntry("Notifications/Settings/NormalBgColor", "Normal notification background color"); - //AddEntry("Notifications/Settings/EntryMargin", "Horizontal text margin"); + AddEntry("MainMenu/Settings/NotificationOverlaySettings", "알림 오버레이 설정"); + AddEntry("Notifications/PreviewActive", "오버레이가 보이는 동안 오버레이의 이동 및 크기 변경이 가능해요. 현재 표시된 오버레이는 미리보기이며, 오버레이의 미리보기 중에는 실제 알림을 볼 수 없어요."); + AddEntry("Notifications/Settings/ShowOverlay", "알림 오버레이 보기"); + AddEntry("Notifications/TestNotification", "테스트 알림: {0}"); + AddEntry("Notifications/Settings/TextScale", "알림 글자 크기"); + AddEntry("Notifications/Settings/EntryHeight", "알림 높이"); + AddEntry("Notifications/Settings/NotificationOrderReverse", "새 알림을 위가 아닌 아래에서 보기"); + AddEntry("Notifications/Settings/TextAlignments", "알림 텍스트 정렬"); + AddEntry("Notifications/Settings/TextAlignments/Left", "왼쪽 정렬"); + AddEntry("Notifications/Settings/TextAlignments/Center", "가운데 정렬"); + AddEntry("Notifications/Settings/TextAlignments/Right", "오른쪽 정렬"); + AddEntry("Notifications/Settings/CriticalTextColor", "심각 등급 알림 글자색"); + AddEntry("Notifications/Settings/CriticalBgColor", "심각 등급 알림 배경색"); + AddEntry("Notifications/Settings/ImportantTextColor", "중요 등급 알림 글자색"); + AddEntry("Notifications/Settings/ImportantBgColor", "중요 등급 알림 배경색"); + AddEntry("Notifications/Settings/NormalTextColor", "보통 등급 알림 글자색"); + AddEntry("Notifications/Settings/NormalBgColor", "보통 등급 알림 배경색"); + AddEntry("Notifications/Settings/EntryMargin", "수직 텍스트 여백"); //AddEntry("Timelines/ReactionSettings/Triggers", "Reaction trigger"); //AddEntry("Timelines/ReactionSettings/Triggers/Timed", "Timed"); //AddEntry("Timelines/ReactionSettings/Triggers/OnCastBegin", "When ability begins casting"); @@ -250,128 +250,128 @@ public Korean(State st) : base(st) //AddEntry("Timelines/ReactionSettings/Triggers/Targettable", "When combatant becomes targettable"); //AddEntry("Timelines/ReactionSettings/Triggers/Untargettable", "When combatant becomes untargettable"); //AddEntry("Timelines/ReactionSettings/Triggers/Spawn", "When combatant spawns"); - //AddEntry("MainMenu/Settings/TtsSettings", "Text-to-speech settings"); - //AddEntry("TextToSpeech/Settings/TTSEnabled", "Enable text-to-speech"); - //AddEntry("TextToSpeech/Settings/TTSAllNotifications", "Use text-to-speech for all notifications automatically"); - //AddEntry("TextToSpeech/Settings/TTSSpeed", "Speech speed"); - //AddEntry("TextToSpeech/Settings/TTSVolume", "Speech volume"); - //AddEntry("Content/Debug/Timelines", "Timelines"); - //AddEntry("Content/Debug/Timelines/Enabled", "Enabled"); - //AddEntry("Content/Debug/Timelines/TimelineRecorder", "Timeline recorder"); - //AddEntry("Content/Debug/Timelines/TimelineRecorder/Enabled", "Enabled"); - //AddEntry("Content/Debug/Timelines/TimelineRecorder/StartRecordingOnCombat", "Start/resume recording automatically when combat starts"); - //AddEntry("Content/Debug/Timelines/TimelineRecorder/SuspendRecordingAfterCombat", "Suspend recording automatically when combat ends, starting a new encounter when it is resumed"); - //AddEntry("Content/Debug/Timelines/TimelineRecorder/StopRecordingAfterCombat", "Stop recording automatically when combat ends, finalizing current recording"); - //AddEntry("Content/Debug/Timelines/TimelineRecorder/ResumeRecordingOnTargettable", "Resume recording when hostiles become targettable"); - //AddEntry("Content/Debug/Timelines/TimelineRecorder/SuspendRecordingOnUntargettable", "Suspend recording when hostiles become untargettable"); - //AddEntry("Content/Debug/Timelines/TimelineRecorder/StopRecordingOnUntargettable", "Stop recording when hostiles become untargettable"); - //AddEntry("Content/Debug/Timelines/TimelineRecorder/TargetFolder", "Timeline target folder"); - //AddEntry("Content/Debug/Timelines/TimelineRecorder/CurrentStatus", "Current recorder status"); - //AddEntry("Content/Debug/Timelines/TimelineRecorder/CurrentTargetFile", "Current recorder target file"); - //AddEntry("Content/Debug/Timelines/TimelineRecorder/StartRecordingAction", "Start/resume recording"); - //AddEntry("Content/Debug/Timelines/TimelineRecorder/SuspendRecordingAction", "Suspend recording"); - //AddEntry("Content/Debug/Timelines/TimelineRecorder/StopRecordingAction", "Stop recording and finalize timeline"); - //AddEntry("Content/Debug/Timelines/TimelineRecorder/IgnoreAutoAttacks", "Ignore auto attacks"); - //AddEntry("Content/Debug/Timelines/TimelineRecorder/IgnoreSpawns", "Ignore new combatant spawns"); - //AddEntry("TimelineRecorder/Idle", "Idle"); - //AddEntry("TimelineRecorder/Recording", "Recording events"); - //AddEntry("TimelineRecorder/Suspended", "Recording suspended"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/DothAM", "(P5) Death of the Heavens automarker"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/DothAM/Enabled", "Enabled"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/DothAM/SelfMarkOnly", "Self-marking only"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/DothAM/AsSoftmarker", "Show as client-side soft markers"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/DothAM/Signs", "Marker configuration"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/DothAM/Signs/Doom1", "Doom 1"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/DothAM/Signs/Doom2", "Doom 2"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/DothAM/Signs/Doom3", "Doom 3"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/DothAM/Signs/Doom4", "Doom 4"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/DothAM/Signs/NonDoom1", "Non-Doom 1"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/DothAM/Signs/NonDoom2", "Non-Doom 2"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/DothAM/Signs/NonDoom3", "Non-Doom 3"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/DothAM/Signs/NonDoom4", "Non-Doom 4"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/DothAM/Prio", "Priority configuration"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/DothAM/Test", "Test assignment (respecting priority)"); + AddEntry("MainMenu/Settings/TtsSettings", "TTS 설정"); + AddEntry("TextToSpeech/Settings/TTSEnabled", "TTS 활성화"); + AddEntry("TextToSpeech/Settings/TTSAllNotifications", "모든 알림에 대해 TTS 자동 변환"); + AddEntry("TextToSpeech/Settings/TTSSpeed", "말하기 속도"); + AddEntry("TextToSpeech/Settings/TTSVolume", "말하기 볼륨"); + AddEntry("Content/Debug/Timelines", "타임라인"); + AddEntry("Content/Debug/Timelines/Enabled", "활성화"); + AddEntry("Content/Debug/Timelines/TimelineRecorder", "타임라인 기록"); + AddEntry("Content/Debug/Timelines/TimelineRecorder/Enabled", "활성화"); + AddEntry("Content/Debug/Timelines/TimelineRecorder/StartRecordingOnCombat", "전투 시작 자동으로 기록 시작/재시작"); + AddEntry("Content/Debug/Timelines/TimelineRecorder/SuspendRecordingAfterCombat", "전투 종료 시 자동으로 기록 일시 중지, 전투 재시작 시 기록 재시작"); + AddEntry("Content/Debug/Timelines/TimelineRecorder/StopRecordingAfterCombat", "전투 종료 시 자동으로 기록 중지, 현재 기록 마무리"); + AddEntry("Content/Debug/Timelines/TimelineRecorder/ResumeRecordingOnTargettable", "적을 타깃할 수 있을 때 기록 재시작"); + AddEntry("Content/Debug/Timelines/TimelineRecorder/SuspendRecordingOnUntargettable", "적을 타깃할 수 없을 때 기록 일시 중지"); + AddEntry("Content/Debug/Timelines/TimelineRecorder/StopRecordingOnUntargettable", "적을 타깃할 수 없을 때 기록 중지"); + AddEntry("Content/Debug/Timelines/TimelineRecorder/TargetFolder", "타임라인 대상 폴더"); + AddEntry("Content/Debug/Timelines/TimelineRecorder/CurrentStatus", "현재 기록 상태"); + AddEntry("Content/Debug/Timelines/TimelineRecorder/CurrentTargetFile", "현재 기록 대상 파일"); + AddEntry("Content/Debug/Timelines/TimelineRecorder/StartRecordingAction", "기록 시작/재시작"); + AddEntry("Content/Debug/Timelines/TimelineRecorder/SuspendRecordingAction", "기록 일시 중지"); + AddEntry("Content/Debug/Timelines/TimelineRecorder/StopRecordingAction", "기록 중지 후 마무리"); + AddEntry("Content/Debug/Timelines/TimelineRecorder/IgnoreAutoAttacks", "자동 공격 무시하기"); + AddEntry("Content/Debug/Timelines/TimelineRecorder/IgnoreSpawns", "새 전투 대상 무시"); + AddEntry("TimelineRecorder/Idle", "중지"); + AddEntry("TimelineRecorder/Recording", "기록 중"); + AddEntry("TimelineRecorder/Suspended", "기록 일시 중지"); + AddEntry("Content/Ultimate/UltDragonsongReprise/DothAM", "(5 페이즈) 지천의 진: 죽음 오토마커"); + AddEntry("Content/Ultimate/UltDragonsongReprise/DothAM/Enabled", "활성화"); + AddEntry("Content/Ultimate/UltDragonsongReprise/DothAM/SelfMarkOnly", "나에게만 징 달기"); + AddEntry("Content/Ultimate/UltDragonsongReprise/DothAM/AsSoftmarker", "클라이언트 측의 소프트 마커 사용하기"); + AddEntry("Content/Ultimate/UltDragonsongReprise/DothAM/Signs", "마커 설정"); + AddEntry("Content/Ultimate/UltDragonsongReprise/DothAM/Signs/Doom1", "죽음의 선고 1"); + AddEntry("Content/Ultimate/UltDragonsongReprise/DothAM/Signs/Doom2", "죽음의 선고 2"); + AddEntry("Content/Ultimate/UltDragonsongReprise/DothAM/Signs/Doom3", "죽음의 선고 3"); + AddEntry("Content/Ultimate/UltDragonsongReprise/DothAM/Signs/Doom4", "죽음의 선고 4"); + AddEntry("Content/Ultimate/UltDragonsongReprise/DothAM/Signs/NonDoom1", "무징 1"); + AddEntry("Content/Ultimate/UltDragonsongReprise/DothAM/Signs/NonDoom2", "무징 2"); + AddEntry("Content/Ultimate/UltDragonsongReprise/DothAM/Signs/NonDoom3", "무징 3"); + AddEntry("Content/Ultimate/UltDragonsongReprise/DothAM/Signs/NonDoom4", "무징 4"); + AddEntry("Content/Ultimate/UltDragonsongReprise/DothAM/Prio", "우선 순위 설정"); + AddEntry("Content/Ultimate/UltDragonsongReprise/DothAM/Test", "할당 테스트 (우선 순위 고려)"); #endregion #region <1.0.1.0 - //AddEntry("Command/QuickToggleAutomarkers/On", "Lemegeton: Automarkers are now enabled."); - //AddEntry("Command/QuickToggleAutomarkers/Off", "Lemegeton: Automarkers are now disabled."); - //AddEntry("Command/QuickToggleOverlays/On", "Lemegeton: Draws and overlays are now enabled."); - //AddEntry("Command/QuickToggleOverlays/Off", "Lemegeton: Draws and overlays are now disabled."); - //AddEntry("Command/QuickToggleSound/On", "Lemegeton: Sound features are now enabled."); - //AddEntry("Command/QuickToggleSound/Off", "Lemegeton: Sound features are now disabled."); - //AddEntry("Command/QuickToggleHacks/On", "Lemegeton: Hacks and game-altering features are now enabled."); - //AddEntry("Command/QuickToggleHacks/Off", "Lemegeton: Hacks and game-altering features are now disabled."); - //AddEntry("Command/QuickToggleAutomation/On", "Lemegeton: Automation features are now enabled."); - //AddEntry("Command/QuickToggleAutomation/Off", "Lemegeton: Automation features are now disabled."); - //AddEntry("Command/AutomarkerSoft/On", "Lemegeton: Client-side soft automarkers are now enabled."); - //AddEntry("Command/AutomarkerSoft/Off", "Lemegeton: Client-side soft automarkers are now disabled."); - //AddEntry("Status/AtAGlance", "At a glance"); - //AddEntry("Status/CurrentlyActive", "Currently active"); - //AddEntry("Status/ImpactToFunctionality", "Impact to functionality"); - //AddEntry("Status/AllIsWell", "Everything should be fine and in working order!"); - //AddEntry("Status/StatusGotOpcodesTrue", "Network opcodes loaded"); - //AddEntry("Status/StatusGotOpcodesFalse", "Couldn't load network opcodes!"); - //AddEntry("Status/StatusMarkingFuncAvailableTrue", "Marking function available"); - //AddEntry("Status/StatusMarkingFuncAvailableFalse", "Couldn't find marking function!"); - //AddEntry("Status/StatusPostCommandAvailableTrue", "Command post function available"); - //AddEntry("Status/StatusPostCommandAvailableFalse", "Couldn't find command post function!"); - //AddEntry("Status/StatusNetworkTrafficUpTrue", "Network traffic to servers seems to be fine"); - //AddEntry("Status/StatusNetworkTrafficUpFalse", "I haven't seen any network traffic to servers in the last minute!"); - //AddEntry("Status/StatusNetworkTrafficDownTrue", "Network traffic from servers seems to be fine"); - //AddEntry("Status/StatusNetworkTrafficDownFalse", "I haven't seen any network traffic from servers in the last minute!"); - //AddEntry("Status/WarnNoOpcodes", "Opcodes are unavailable, so it's not possible to read network traffic and see what's going on in the game. This means that quite a lot of functionality may be broken!"); - //AddEntry("Status/WarnOpcodesVersion", "Opcode information is for a different game version ({0}) than currently running ({1}) - this is likely to happen right after a game update, and it'll need an update fo be fixed. Quite a lot of functionality may be broken!"); - //AddEntry("Status/WarnAutomarkersBroken", "Both marking methods are unavailable, so it's not possible to perform marking. This means that automarkers are broken!"); - //AddEntry("Status/WarnAutomarkersSemibroken", "While the primary marking method is unavailable, a secondary marking method still seems to be available. This means that automarkers should still work, but in case something weird happens, this might be why."); - //AddEntry("Status/WarnCommandPostBroken", "While the primary marking method is available, the secondary marking method is not. This will have no impact on automarkers, but this is just for your information."); - //AddEntry("Status/WarnNoTrafficUp", "When network traffic is not going to the server, you may be disconnecting and your actions may not be registering."); - //AddEntry("Status/WarnNoTrafficDown", "When network traffic is not being received from the server, you may be disconnecting or the plugin is not receiving network data. Either way, without receiving information from the server, a lot of functionality may be broken!"); - //AddEntry("Status/WarnHacksActive", "You have at least one hack or game-altering feature enabled! The effects may be obvious to any viewers, so streaming is not recommended."); - //AddEntry("Status/WarnAutomationsActive", "You have at least one automation feature enabled! The effects may be obvious to any viewers, so streaming is not recommended."); - //AddEntry("Status/WarnDrawsActive", "You have at least one screen drawing feature or overlay enabled! If you plan on streaming, check your capture settings so that overlays are not captured."); - //AddEntry("Status/WarnAutomarkersQuickDisabled", "You have at least one automarker enabled, but automarkers are currently disabled in the settings, under 'Quick toggles'."); - //AddEntry("Status/WarnOverlaysQuickDisabled", "You have at least one screen drawing feature or overlay enabled, but drawing and overlays are currently disabled in the settings, under 'Quick toggles'."); - //AddEntry("Status/WarnSoundQuickDisabled", "You have at least one sound generating feature enabled, but sound output is currently disabled in the settings, under 'Quick toggles'."); + AddEntry("Command/QuickToggleAutomarkers/On", "Lemegeton: 오토마커가 활성화되었습니다."); + AddEntry("Command/QuickToggleAutomarkers/Off", "Lemegeton: 오토마커가 비활성화되었습니다"); + AddEntry("Command/QuickToggleOverlays/On", "Lemegeton: 그리기 및 오버레이가 활성화되었습니다."); + AddEntry("Command/QuickToggleOverlays/Off", "Lemegeton: 그리기 및 오버레이가 비활성화되었습니다."); + AddEntry("Command/QuickToggleSound/On", "Lemegeton: 소리 기능이 활성화되었습니다."); + AddEntry("Command/QuickToggleSound/Off", "Lemegeton: 소리 기능이 비활성화되었습니다."); + AddEntry("Command/QuickToggleHacks/On", "Lemegeton: 핵 및 게임 변경 기능이 활성화되었습니다."); + AddEntry("Command/QuickToggleHacks/Off", "Lemegeton: 핵 및 게임 변경 기능이 비활성화되었습니다."); + AddEntry("Command/QuickToggleAutomation/On", "Lemegeton: 자동화 기능이 활성화되었습니다."); + AddEntry("Command/QuickToggleAutomation/Off", "Lemegeton: 자동화 기능이 비활성화되었습니다."); + AddEntry("Command/AutomarkerSoft/On", "Lemegeton: 클라이언트 측의 소프트 마커가 활성화되었습니다."); + AddEntry("Command/AutomarkerSoft/Off", "Lemegeton: 클라이언트 측의 소프트 마커가 비활성화되었습니다."); + AddEntry("Status/AtAGlance", "한눈에 보기"); + AddEntry("Status/CurrentlyActive", "현재 활성화된 기능"); + AddEntry("Status/ImpactToFunctionality", "기능에 미치는 영향"); + AddEntry("Status/AllIsWell", "모든 기능이 정상적으로 작동할 거예요!"); + AddEntry("Status/StatusGotOpcodesTrue", "네트워크 옵코드 불러오기 완료"); + AddEntry("Status/StatusGotOpcodesFalse", "네트워크 옵코드를 불러올 수 없어요!"); + AddEntry("Status/StatusMarkingFuncAvailableTrue", "마킹 기능 활성화 중"); + AddEntry("Status/StatusMarkingFuncAvailableFalse", "마킹 기능을 찾을 수 없어요!"); + AddEntry("Status/StatusPostCommandAvailableTrue", "커맨드 포스트 기능 활성화 중"); + AddEntry("Status/StatusPostCommandAvailableFalse", "커맨드 포스트 기능을 찾을 수 없어요!"); + AddEntry("Status/StatusNetworkTrafficUpTrue", "서버에 대한 네트워크 트래픽은 정상인 것 같아요"); + AddEntry("Status/StatusNetworkTrafficUpFalse", "지난 일 분 동안 서버에 대한 네트워크 트래픽을 찾지 못했어요!"); + AddEntry("Status/StatusNetworkTrafficDownTrue", "서버의 네트워크 트래픽은 정상인 것 같아요"); + AddEntry("Status/StatusNetworkTrafficDownFalse", "지난 일 분 동안 서버의 네트워크 트래픽을 찾지 못했어요!"); + AddEntry("Status/WarnNoOpcodes", "옵코드를 이용할 수 없네요. 네트워크 트래픽을 읽을 수 없고, 게임 내 이벤트를 확인할 수 없어요. 꽤 많은 기능이 고장났을 가능성이 있어요!"); + AddEntry("Status/WarnOpcodesVersion", "옵코드가 현재 실행 중인 ({1}) 버전과는 다른 게임 버전인 ({0})의 거예요. 이 오류는 게임 업데이트 직후 발생할 수 있고, 수정하려면 업데이트를 해야 해요. 꽤 많은 기능이 고장났을 가능성이 있어요!"); + AddEntry("Status/WarnAutomarkersBroken", "어떠한 마킹 방법도 이용할 수 없어서 오토 마킹을 실행할 수 없어요. 오토마커가 고장났어요!"); + AddEntry("Status/WarnAutomarkersSemibroken", "기본 마킹 방법은 이용할 수 없지만, 보조 마킹 방법은 이용할 수 있는 것 같아요. 오토마커가 정상적으로 이용 가능하지만, 오토마커에 무슨 일이 생긴다면 아마 이 이유 때문일 거예요."); + AddEntry("Status/WarnCommandPostBroken", "기본 마킹 방법은 이용이 가능하지만, 보조 마킹 방법은 이용이 불가능합니다. 오토마커 기능에 영향은 없겠지만, 참고해 주세요."); + AddEntry("Status/WarnNoTrafficUp", "네트워크 트래픽이 서버에 연결되지 않아, 끊겼을 가능성이 있어요. 당신의 액션이 반영되지 않을 수 있어요."); + AddEntry("Status/WarnNoTrafficDown", "네트워크 트래픽이 서버로부터 수신할 수 없어요. 네트워크가 끊어졌거나 플러그인이 네트워크 데이터를 수신하지 않았을 가능성이 있어요. 어느 쪽이든 서버로부터 정보를 받지 못하면 많은 기능이 고장날 수 있어요!"); + AddEntry("Status/WarnHacksActive", "적어도 하나의 핵 및 게임 변경 기능이 활성화되어 있어요. 이 기능은 시청자에게 일목요연하게 보여요. 따라서, 스트리밍은 권장하지 않을게요."); + AddEntry("Status/WarnAutomationsActive", "적어도 하나의 자동화 기능이 활성화되어 있어요. 이 기능은 시청자에게 일목요연하게 보여요. 따라서, 스트리밍은 권장하지 않을게요."); + AddEntry("Status/WarnDrawsActive", "적어도 하나의 그리기 및 오버레이 기능이 활성화되어 있어요. 스트리밍을 할 경우에는 오버레이가 보이지 않도록 캡처 설정을 확인해 주세요."); + AddEntry("Status/WarnAutomarkersQuickDisabled", "적어도 하나의 오토마커가 활성화되어 있지만, 설정의 '퀵 토글'에서 비활성화되어 있어요."); + AddEntry("Status/WarnOverlaysQuickDisabled", "적어도 하나의 그리기 및 오버레이 기능이 활성화되어 있지만, 설정의 '퀵 토글'에서 비활성화되어 있어요."); + AddEntry("Status/WarnSoundQuickDisabled", "적어도 하나의 소리 기능이 활성화되어 있지만, 설정의 '퀵 토글'에서 비활성화되어 있어요."); //AddEntry("Status/WarnHackQuickDisabled", "You have at least one hack or game-altering feature enabled, but hacks and game-altering features are currently disabled in the settings, under 'Quick toggles'."); //AddEntry("Status/WarnAutomationQuickDisabled", "You have at least one automation feature enabled, but automation features are currently disabled in the settings, under 'Quick toggles'."); - //AddEntry("Status/NumFeaturesAutomarker", "automarkers"); - //AddEntry("Status/NumFeaturesDrawing", "draws and overlays"); - //AddEntry("Status/NumFeaturesSound", "sound features"); - //AddEntry("Status/NumFeaturesHack", "hacks and game-altering features"); - //AddEntry("Status/NumFeaturesAutomation", "automation features"); - //AddEntry("SoundEffect/Se1", "Sound Effect 1"); - //AddEntry("SoundEffect/Se2", "Sound Effect 2"); - //AddEntry("SoundEffect/Se3", "Sound Effect 3"); - //AddEntry("SoundEffect/Se4", "Sound Effect 4"); - //AddEntry("SoundEffect/Se5", "Sound Effect 5"); - //AddEntry("SoundEffect/Se6", "Sound Effect 6"); - //AddEntry("SoundEffect/Se7", "Sound Effect 7"); - //AddEntry("SoundEffect/Se8", "Sound Effect 8"); - //AddEntry("SoundEffect/Se9", "Sound Effect 9"); - //AddEntry("SoundEffect/Se10", "Sound Effect 10"); - //AddEntry("SoundEffect/Se11", "Sound Effect 11"); - //AddEntry("SoundEffect/Se12", "Sound Effect 12"); - //AddEntry("SoundEffect/Se13", "Sound Effect 13"); - //AddEntry("SoundEffect/Se14", "Sound Effect 14"); - //AddEntry("SoundEffect/Se15", "Sound Effect 15"); - //AddEntry("SoundEffect/Se16", "Sound Effect 16"); - //AddEntry("ObjectKind/None", "None"); - //AddEntry("ObjectKind/Player", "Player"); - //AddEntry("ObjectKind/BattleNpc", "Enemy/battle NPC"); - //AddEntry("ObjectKind/EventNpc", "Event NPC"); - //AddEntry("ObjectKind/Treasure", "Treasure"); - //AddEntry("ObjectKind/Aetheryte", "Aetheryte"); - //AddEntry("ObjectKind/GatheringPoint", "Gathering point"); - //AddEntry("ObjectKind/EventObj", "Event object"); - //AddEntry("ObjectKind/MountType", "Mount"); - //AddEntry("ObjectKind/Companion", "Minion"); - //AddEntry("ObjectKind/Retainer", "Retainer"); - //AddEntry("ObjectKind/Area", "Area object"); - //AddEntry("ObjectKind/Housing", "Housing object"); - //AddEntry("ObjectKind/Cutscene", "Cutscene object"); - //AddEntry("ObjectKind/CardStand", "Card stand"); - //AddEntry("ObjectKind/Ornament", "Ornament"); - //AddEntry("Misc/None", "(none)"); + AddEntry("Status/NumFeaturesAutomarker", "오토마커"); + AddEntry("Status/NumFeaturesDrawing", "그리기 및 오버레이"); + AddEntry("Status/NumFeaturesSound", "소리 기능"); + AddEntry("Status/NumFeaturesHack", "핵 및 게임 변경 기능"); + AddEntry("Status/NumFeaturesAutomation", "자동화 기능"); + AddEntry("SoundEffect/Se1", "효과음 1"); + AddEntry("SoundEffect/Se2", "효과음 2"); + AddEntry("SoundEffect/Se3", "효과음 3"); + AddEntry("SoundEffect/Se4", "효과음 4"); + AddEntry("SoundEffect/Se5", "효과음 5"); + AddEntry("SoundEffect/Se6", "효과음 6"); + AddEntry("SoundEffect/Se7", "효과음 7"); + AddEntry("SoundEffect/Se8", "효과음 8"); + AddEntry("SoundEffect/Se9", "효과음 9"); + AddEntry("SoundEffect/Se10", "효과음 10"); + AddEntry("SoundEffect/Se11", "효과음 11"); + AddEntry("SoundEffect/Se12", "효과음 12"); + AddEntry("SoundEffect/Se13", "효과음 13"); + AddEntry("SoundEffect/Se14", "효과음 14"); + AddEntry("SoundEffect/Se15", "효과음 15"); + AddEntry("SoundEffect/Se16", "효과음 16"); + AddEntry("ObjectKind/None", "없음"); + AddEntry("ObjectKind/Player", "플레이어"); + AddEntry("ObjectKind/BattleNpc", "적/전투 NPC"); + AddEntry("ObjectKind/EventNpc", "이벤트 NPC"); + AddEntry("ObjectKind/Treasure", "보물상자"); + AddEntry("ObjectKind/Aetheryte", "에테라이트"); + AddEntry("ObjectKind/GatheringPoint", "채집 포인트"); + AddEntry("ObjectKind/EventObj", "이벤트 오브젝트"); + AddEntry("ObjectKind/MountType", "탈것"); + AddEntry("ObjectKind/Companion", "꼬마 친구"); + AddEntry("ObjectKind/Retainer", "리테이너"); + AddEntry("ObjectKind/Area", "지역 오브젝트"); + AddEntry("ObjectKind/Housing", "하우징 오브젝트"); + AddEntry("ObjectKind/Cutscene", "컷신 오브젝트"); + AddEntry("ObjectKind/CardStand", "카드 스탠드"); + AddEntry("ObjectKind/Ornament", "오너먼트"); + AddEntry("Misc/None", "(없음)"); //AddEntry("Misc/HQ", "HQ"); //AddEntry("Misc/SavePreset", "Save preset"); //AddEntry("Misc/SaveNewPresetAs", "Save new preset as.."); @@ -382,63 +382,63 @@ public Korean(State st) : base(st) //AddEntry("Misc/DragToReorderPrio", "Left-click and drag to reorder priority"); //AddEntry("Misc/RiskyFeature", "This is a hack or a game-altering feature, that may modify game data/state beyond what is normally considered possible. The feature is generally safe to use, but streaming with it on is not recommended. Use at your own discretion!"); //AddEntry("Misc/ExperimentalFeature", "This is an experimental feature, and while it has been tested, there may still be some bugs that have not been found. If the feature doesn't work for you, or you notice anything strange, please report it on the Discord server so it can be fixed!"); - //AddEntry("Trinity/Tank", "Tank"); - //AddEntry("Trinity/Healer", "Healer"); - //AddEntry("Trinity/DPS", "DPS"); - //AddEntry("Role/Tank", "Tank"); - //AddEntry("Role/Healer", "Healer"); - //AddEntry("Role/Melee", "Melee"); - //AddEntry("Role/Ranged", "Ranged"); - //AddEntry("Role/Caster", "Caster"); - //AddEntry("Job/PLD", "Paladin"); - //AddEntry("Job/WAR", "Warrior"); - //AddEntry("Job/DRK", "Dark Knight"); - //AddEntry("Job/GNB", "Gunbreaker"); - //AddEntry("Job/WHM", "White Mage"); - //AddEntry("Job/SCH", "Scholar"); - //AddEntry("Job/AST", "Astrologian"); - //AddEntry("Job/SGE", "Sage"); - //AddEntry("Job/MNK", "Monk"); - //AddEntry("Job/DRG", "Dragoon"); - //AddEntry("Job/NIN", "Ninja"); - //AddEntry("Job/SAM", "Samurai"); - //AddEntry("Job/RPR", "Reaper"); - //AddEntry("Job/BRD", "Bard"); - //AddEntry("Job/MCH", "Machinist"); - //AddEntry("Job/DNC", "Dancer"); - //AddEntry("Job/BLM", "Black Mage"); - //AddEntry("Job/SMN", "Summoner"); - //AddEntry("Job/RDM", "Red Mage"); - //AddEntry("Signs/None", "None"); - //AddEntry("Signs/Attack1", "Attack 1"); - //AddEntry("Signs/Attack2", "Attack 2"); - //AddEntry("Signs/Attack3", "Attack 3"); - //AddEntry("Signs/Attack4", "Attack 4"); - //AddEntry("Signs/Attack5", "Attack 5"); - //AddEntry("Signs/Bind1", "Bind 1"); - //AddEntry("Signs/Bind2", "Bind 2"); - //AddEntry("Signs/Bind3", "Bind 3"); - //AddEntry("Signs/Ignore1", "Ignore 1"); - //AddEntry("Signs/Ignore2", "Ignore 2"); - //AddEntry("Signs/Circle", "Circle"); - //AddEntry("Signs/Plus", "Plus"); - //AddEntry("Signs/Square", "Square"); - //AddEntry("Signs/Triangle", "Triangle"); - //AddEntry("Signs/AttackNext", "Next Attack"); - //AddEntry("Signs/BindNext", "Next Bind"); - //AddEntry("Signs/IgnoreNext", "Next Ignore"); - //AddEntry("Automarker/ManualPreset", "Manual"); - //AddEntry("Automarker/PrioType/PartyMember", "Player"); - //AddEntry("Automarker/PrioType/PartyListOrder", "Party list order"); - //AddEntry("Automarker/PrioType/PartyListCustom", "Custom party list priority"); - //AddEntry("Automarker/PrioType/Alphabetic", "Alphabetic"); - //AddEntry("Automarker/PrioType/Trinity", "By trinity"); - //AddEntry("Automarker/PrioType/Role", "By role"); - //AddEntry("Automarker/PrioType/Job", "By job"); + AddEntry("Trinity/Tank", "탱커"); + AddEntry("Trinity/Healer", "힐러"); + AddEntry("Trinity/DPS", "딜러"); + AddEntry("Role/Tank", "탱커"); + AddEntry("Role/Healer", "힐러"); + AddEntry("Role/Melee", "근거리 딜러"); + AddEntry("Role/Ranged", "원거리 딜러"); + AddEntry("Role/Caster", "캐스터"); + AddEntry("Job/PLD", "나이트"); + AddEntry("Job/WAR", "전사"); + AddEntry("Job/DRK", "암흑기사"); + AddEntry("Job/GNB", "건브레이커"); + AddEntry("Job/WHM", "백마도사"); + AddEntry("Job/SCH", "학자"); + AddEntry("Job/AST", "점성술사"); + AddEntry("Job/SGE", "현자"); + AddEntry("Job/MNK", "몽크"); + AddEntry("Job/DRG", "용기사"); + AddEntry("Job/NIN", "닌자"); + AddEntry("Job/SAM", "사무라이"); + AddEntry("Job/RPR", "리퍼"); + AddEntry("Job/BRD", "음유시인"); + AddEntry("Job/MCH", "기공사"); + AddEntry("Job/DNC", "무도가"); + AddEntry("Job/BLM", "흑마도사"); + AddEntry("Job/SMN", "소환사"); + AddEntry("Job/RDM", "적마도사"); + AddEntry("Signs/None", "없음"); + AddEntry("Signs/Attack1", "공격 1"); + AddEntry("Signs/Attack2", "공격 2"); + AddEntry("Signs/Attack3", "공격 3"); + AddEntry("Signs/Attack4", "공격 4"); + AddEntry("Signs/Attack5", "공격 5"); + AddEntry("Signs/Bind1", "속박 1"); + AddEntry("Signs/Bind2", "속박 2"); + AddEntry("Signs/Bind3", "속박 3"); + AddEntry("Signs/Ignore1", "금지 1"); + AddEntry("Signs/Ignore2", "금지 2"); + AddEntry("Signs/Circle", "동그라미"); + AddEntry("Signs/Plus", "십자"); + AddEntry("Signs/Square", "네모"); + AddEntry("Signs/Triangle", "세모"); + AddEntry("Signs/AttackNext", "다음 공격"); + AddEntry("Signs/BindNext", "다음 속박"); + AddEntry("Signs/IgnoreNext", "다음 금지"); + AddEntry("Automarker/ManualPreset", "매뉴얼"); + AddEntry("Automarker/PrioType/PartyMember", "플레이어"); + AddEntry("Automarker/PrioType/PartyListOrder", "파티 목록 기준"); + AddEntry("Automarker/PrioType/PartyListCustom", "커스텀 파티 목록 기준"); + AddEntry("Automarker/PrioType/Alphabetic", "알파벳순"); + AddEntry("Automarker/PrioType/Trinity", "탱딜힐 순서"); + AddEntry("Automarker/PrioType/Role", "역할 순서"); + AddEntry("Automarker/PrioType/Job", "직업 순서"); //AddEntry("Automarker/PrioType/CongaX", "West-east conga line"); //AddEntry("Automarker/PrioType/CongaY", "North-south conga line"); - //AddEntry("Automarker/PrioType/Player", "By player"); - //AddEntry("Automarker/PrioType/Player/FillFromPartyList", "Fill from current party"); + AddEntry("Automarker/PrioType/Player", "플레이어 순서"); + AddEntry("Automarker/PrioType/Player/FillFromPartyList", "현재 파티로 채우기"); //AddEntry("Automarker/PrioType/Player/FillFromCongaLine", "Fill from west-east conga line"); //AddEntry("Automarker/PrioType/PlCustom/FillFromCongaLine", "Fill from west-east conga line"); //AddEntry("Automarker/PrioType/PartyListOrder/Reversed", "Sort bottom-to-top instead of top-to-bottom"); @@ -446,46 +446,46 @@ public Korean(State st) : base(st) //AddEntry("Automarker/PrioType/CongaX/Reversed", "Do a east-west conga line instead of west-east"); //AddEntry("Automarker/PrioType/CongaY/Reversed", "Do a south-north conga line instead of north-south"); //AddEntry("Automarker/TimingType/InheritDesc", "Inherit timing settings from default settings"); - //AddEntry("MainMenu/Settings/QuickToggles", "Quick toggles"); - //AddEntry("MainMenu/Settings/QuickToggles/Info", "These settings allow you to quickly disable features if necessary. All possible sources will be affected, regardless of content and type."); - //AddEntry("MainMenu/Settings/QuickToggles/Automarkers", "Allow automarkers"); - //AddEntry("MainMenu/Settings/QuickToggles/Overlays", "Allow overlays and drawing"); - //AddEntry("MainMenu/Settings/QuickToggles/Sound", "Allow sounds"); - //AddEntry("MainMenu/Settings/QuickToggles/Hacks", "Allow hacks and game-altering features"); - //AddEntry("MainMenu/Settings/QuickToggles/Automation", "Allow automation features"); - //AddEntry("MainMenu/Status", "Status"); - //AddEntry("MainMenu/Content", "Content"); - //AddEntry("MainMenu/Other", "Other"); - //AddEntry("MainMenu/Settings", "Settings"); - //AddEntry("MainMenu/Settings/UiSettings", "User interface settings"); - //AddEntry("MainMenu/Settings/Language", "Language"); - //AddEntry("MainMenu/Settings/AdvancedOptions", "Always show advanced options on content items"); - //AddEntry("MainMenu/Settings/DebugSettings", "Debug settings"); - //AddEntry("MainMenu/Settings/DebugSettings/QueueFramework", "Queue tasks on framework thread"); - //AddEntry("MainMenu/Settings/DebugSettings/DelegateDebug", "Event firing test range"); - //AddEntry("MainMenu/Settings/DebugSettings/Config", "Configuration debug"); - //AddEntry("MainMenu/Settings/DebugSettings/LoadConfig", "Reload configuration from disk"); - //AddEntry("MainMenu/Settings/DebugSettings/SaveConfig", "Save configuration to disk"); - //AddEntry("MainMenu/Settings/DebugSettings/BackupConfig", "Create configuration backup"); - //AddEntry("MainMenu/Settings/DebugSettings/ExportConfig", "Generate configuration snapshot"); - //AddEntry("MainMenu/Settings/DebugSettings/ImportConfig", "Import configuration snapshot"); - //AddEntry("MainMenu/Settings/DebugSettings/CopyToClipboard", "Copy snapshot to clipboard"); - //AddEntry("MainMenu/Settings/DebugSettings/PasteFromClipboard", "Paste snapshot from clipboard"); - //AddEntry("MainMenu/Settings/DebugOnlyLogAutomarkers", "Only log automarkers instead of actually applying them"); - //AddEntry("MainMenu/Settings/ShowShortcut", "Show shortcut when window is closed"); - //AddEntry("MainMenu/Settings/NagAboutStreaming", "Nag about streaming if features with potential visible impact have been enabled"); - //AddEntry("MainMenu/Settings/AutomarkerSettings", "Automarker settings"); - //AddEntry("MainMenu/Settings/AutomarkersSoftDesc", "Soft automarkers are client-side markers that will not be sent to the server, and therefore will also not be visible to other players. The markers themselves are visually the same signs as the ingame signs, although displayed slightly differently."); - //AddEntry("MainMenu/Settings/AutomarkersSoft", "Use soft automarkers"); - //AddEntry("MainMenu/Settings/AutomarkersSoftPermsMissing", "Soft automarkers need permission to draw as they are drawn on your screen as separate markers. Please allow drawing by enabling '{0}' from under '{1}' in '{2}'."); - //AddEntry("MainMenu/Settings/RemoveAutomarkers", "Force remove all marks"); - //AddEntry("MainMenu/Settings/RemoveMarkersAfterCombatEnd", "Remove all marks after combat ends"); - //AddEntry("MainMenu/Settings/RemoveMarkersAfterWipe", "Remove all marks after a wipe"); - //AddEntry("MainMenu/Settings/AutomarkersCommands", "Use older command injection even when marking function is available"); - //AddEntry("MainMenu/Settings/AutomarkersInitialApplicationDelay", "Delay to initial marker application (random within specified range)"); - //AddEntry("MainMenu/Settings/AutomarkersSubsequentApplicationDelay", "Delay between subsequent marker applications (random within specified range)"); - //AddEntry("MainMenu/Settings/AutomarkerSeconds", "second(s)"); - //AddEntry("MainMenu/Settings/SoftmarkerSettings", "Softmarker customization"); + AddEntry("MainMenu/Settings/QuickToggles", "퀵 토글"); + AddEntry("MainMenu/Settings/QuickToggles/Info", "이 설정을 사용하면 해당 기능을 빠르게 비활성화할 수 있어요. 내용 및 유형에 관계없이 가능한 모든 기능이 영향을 받아요."); + AddEntry("MainMenu/Settings/QuickToggles/Automarkers", "오토마커 허용"); + AddEntry("MainMenu/Settings/QuickToggles/Overlays", "그리기 및 오버레이 허용"); + AddEntry("MainMenu/Settings/QuickToggles/Sound", "소리 허용"); + AddEntry("MainMenu/Settings/QuickToggles/Hacks", "핵 및 게임 변경 기능 허용"); + AddEntry("MainMenu/Settings/QuickToggles/Automation", "자동화 기능 허용"); + AddEntry("MainMenu/Status", "상태"); + AddEntry("MainMenu/Content", "콘텐츠"); + AddEntry("MainMenu/Other", "기타"); + AddEntry("MainMenu/Settings", "설정"); + AddEntry("MainMenu/Settings/UiSettings", "UI 설정"); + AddEntry("MainMenu/Settings/Language", "언어"); + AddEntry("MainMenu/Settings/AdvancedOptions", "모든 콘텐츠 항목에서 항상 고급 옵션 보기"); + AddEntry("MainMenu/Settings/DebugSettings", "디버그 설정"); + AddEntry("MainMenu/Settings/DebugSettings/QueueFramework", "프레임워크 스레드의 작업 대기열"); + AddEntry("MainMenu/Settings/DebugSettings/DelegateDebug", "이벤트 발생 테스트 범위"); + AddEntry("MainMenu/Settings/DebugSettings/Config", "구성 디버그"); + AddEntry("MainMenu/Settings/DebugSettings/LoadConfig", "구성을 디스크에서 다시 불러오기"); + AddEntry("MainMenu/Settings/DebugSettings/SaveConfig", "구성을 디스크에 저장"); + AddEntry("MainMenu/Settings/DebugSettings/BackupConfig", "구성 백업 생성"); + AddEntry("MainMenu/Settings/DebugSettings/ExportConfig", "구성 스냅샷 생성"); + AddEntry("MainMenu/Settings/DebugSettings/ImportConfig", "구성 스냅샷 가져오기"); + AddEntry("MainMenu/Settings/DebugSettings/CopyToClipboard", "스냅샷을 클립보드에 복사"); + AddEntry("MainMenu/Settings/DebugSettings/PasteFromClipboard", "클립보드에서 스냅샷 붙여넣기"); + AddEntry("MainMenu/Settings/DebugOnlyLogAutomarkers", "실저로 적용하지 않고 오토마커만 기록"); + AddEntry("MainMenu/Settings/ShowShortcut", "창이 닫힐 때 바로가기 보기"); + AddEntry("MainMenu/Settings/NagAboutStreaming", "가시적인 영향이 있는 기능이 활성화된 경우 스트리밍에 대해 주의하기"); + AddEntry("MainMenu/Settings/AutomarkerSettings", "오토마커 설정"); + AddEntry("MainMenu/Settings/AutomarkersSoftDesc", "소프트 오토마커는 서버로 전송되지 않아 다른 플레이어에게 보이지 않는 클라이언트 측 마커예요. 이 마커들은 시각적으로는 게임 내 징과 동일하지만, 약간 다르게 보여요."); + AddEntry("MainMenu/Settings/AutomarkersSoft", "소프트 오토마커 사용하기"); + AddEntry("MainMenu/Settings/AutomarkersSoftPermsMissing", "소프트 오토마커는 별도의 마커로 화면에 그려지기 때문에 그리기 권한이 필요해요. '{2}'의 '{1}'에서 '{0}' 기능을 활성화하여 그리기 권한을 허용해 주세요."); + AddEntry("MainMenu/Settings/RemoveAutomarkers", "강제적으로 모든 징 지우기"); + AddEntry("MainMenu/Settings/RemoveMarkersAfterCombatEnd", "전투 종료 후 모든 징 지우기"); + AddEntry("MainMenu/Settings/RemoveMarkersAfterWipe", "초기화 이후 모든 징 지우기"); + AddEntry("MainMenu/Settings/AutomarkersCommands", "마킹 기능을 사용할 수 있을 때에도 더 오래된 커맨드 인젝션 사용"); + AddEntry("MainMenu/Settings/AutomarkersInitialApplicationDelay", "초기 마커 적용 지연 (지정된 범위 내 무작위)"); + AddEntry("MainMenu/Settings/AutomarkersSubsequentApplicationDelay", "후속 마커 적용 간격 지연 (지정된 범위 내 무작위)"); + AddEntry("MainMenu/Settings/AutomarkerSeconds", "초"); + AddEntry("MainMenu/Settings/SoftmarkerSettings", "소프트 마커 사용자 정의"); //AddEntry("MainMenu/Settings/SoftmarkerPreviewActive", "While this menu is open, a softmarker preview that rotates through some of the possible markers will be displayed on your character. No other softmarkers will be displayed at this time."); //AddEntry("MainMenu/Settings/SoftmarkerTint", "Marker tint"); //AddEntry("MainMenu/Settings/SoftmarkerBounce", "Bouncing markers"); @@ -493,21 +493,21 @@ public Korean(State st) : base(st) //AddEntry("MainMenu/Settings/SoftmarkerScaling", "Marker scaling factor"); //AddEntry("MainMenu/Settings/SoftmarkerOffsetWorld", "Marker offset in world coordinates"); //AddEntry("MainMenu/Settings/SoftmarkerOffsetScreen", "Marker offset in screen coordinates"); - //AddEntry("MainMenu/Settings/OpcodeSettings", "Opcode settings"); - //AddEntry("MainMenu/Settings/LogUnhandledOpcodes", "Log unhandled opcodes"); - //AddEntry("MainMenu/Settings/OpcodeUrl", "Opcode URL"); - //AddEntry("MainMenu/Settings/OpcodeRegion", "Opcode region"); - //AddEntry("MainMenu/Settings/OpcodeReload", "Reload opcodes"); + AddEntry("MainMenu/Settings/OpcodeSettings", "옵코드 설정"); + AddEntry("MainMenu/Settings/LogUnhandledOpcodes", "처리되지 않은 옵코드 기록"); + AddEntry("MainMenu/Settings/OpcodeUrl", "옵코드 주소"); + AddEntry("MainMenu/Settings/OpcodeRegion", "옵코드 지역"); + AddEntry("MainMenu/Settings/OpcodeReload", "옵코드 다시 불러오기"); //AddEntry("MainMenu/About", "About"); - //AddEntry("Content/missing", "Sorry, this type of content is not available at this time!"); - //AddEntry("Content/Debug", "Debugging and development tools"); - //AddEntry("Content/Debug/Enabled", "Enabled"); - //AddEntry("Content/Debug/Debugger", "Debugger"); - //AddEntry("Content/Debug/Debugger/Enabled", "Enabled"); + AddEntry("Content/missing", "현재 이 유형의 콘텐츠는 이용할 수 없어요!"); + AddEntry("Content/Debug", "디버깅 및 개발 도구"); + AddEntry("Content/Debug/Enabled", "활성화"); + AddEntry("Content/Debug/Debugger", "디버거"); + AddEntry("Content/Debug/Debugger/Enabled", "활성화"); //AddEntry("Content/Miscellaneous/Hack", "Hacks"); - //AddEntry("Content/Miscellaneous/Hack/Enabled", "Enabled"); + AddEntry("Content/Miscellaneous/Hack/Enabled", "활성화"); //AddEntry("Content/Miscellaneous/Hack/Teleporter", "Teleporter"); - //AddEntry("Content/Miscellaneous/Hack/Teleporter/Enabled", "Enabled"); + AddEntry("Content/Miscellaneous/Hack/Teleporter/Enabled", "활성화"); //AddEntry("Content/Miscellaneous/Hack/Teleporter/X", "X"); //AddEntry("Content/Miscellaneous/Hack/Teleporter/Y", "Y"); //AddEntry("Content/Miscellaneous/Hack/Teleporter/Z", "Z"); @@ -516,9 +516,9 @@ public Korean(State st) : base(st) //AddEntry("Content/Miscellaneous/Hack/Teleporter/PlayersNearby", "Players nearby"); //AddEntry("Content/Miscellaneous/Hack/Teleporter/AllowRiskyTeleport", "Allow teleporting even with players nearby"); //AddEntry("Content/Miscellaneous/Automation", "Automation"); - //AddEntry("Content/Miscellaneous/Automation/Enabled", "Enabled"); + AddEntry("Content/Miscellaneous/Automation/Enabled", "활성화"); //AddEntry("Content/Miscellaneous/Automation/FishForever", "Fish on repeat"); - //AddEntry("Content/Miscellaneous/Automation/FishForever/Enabled", "Enabled"); + AddEntry("Content/Miscellaneous/Automation/FishForever/Enabled", "활성화"); //AddEntry("Content/Miscellaneous/Automation/FishForever/IgnoreLight", "Ignore light tugs"); //AddEntry("Content/Miscellaneous/Automation/FishForever/IgnoreMedium", "Ignore medium tugs"); //AddEntry("Content/Miscellaneous/Automation/FishForever/IgnoreHeavy", "Ignore heavy tugs"); @@ -528,251 +528,251 @@ public Korean(State st) : base(st) //AddEntry("Content/Miscellaneous/Automation/FishForever/UseThaliakFavor", "Use Thaliak's Favor"); //AddEntry("Content/Miscellaneous/Automation/FishForever/ReleaseEverything", "Release everything"); //AddEntry("Content/Miscellaneous/Automation/FishForever/Food", "Use food"); - //AddEntry("Content/Miscellaneous/VisualEnhancement", "Visual enhancements"); - //AddEntry("Content/Miscellaneous/VisualEnhancement/Enabled", "Enabled"); - //AddEntry("Content/Miscellaneous/VisualEnhancement/Hitbox", "Hitbox"); - //AddEntry("Content/Miscellaneous/VisualEnhancement/Hitbox/Enabled", "Enabled"); - //AddEntry("Content/Miscellaneous/VisualEnhancement/Hitbox/HitboxColor", "Hitbox highlight color"); - //AddEntry("Content/Miscellaneous/VisualEnhancement/Hitbox/CastColor", "Cast indicator color"); - //AddEntry("Content/Miscellaneous/VisualEnhancement/Hitbox/DrawOnEnemies", "Draw highlight on enemies"); - //AddEntry("Content/Miscellaneous/VisualEnhancement/Hitbox/DrawOnPlayers", "Draw highlight on players"); - //AddEntry("Content/Miscellaneous/VisualEnhancement/Hitbox/OnlyCurrentTarget", "Draw only on current target"); - //AddEntry("Content/Miscellaneous/VisualEnhancement/Hitbox/ShowCasts", "Show casting indicator on hitbox"); - //AddEntry("Content/Debug/Debugger/ObjectMonitor", "Object monitor"); - //AddEntry("Content/Debug/Debugger/ObjectMonitor/Enabled", "Enabled"); - //AddEntry("Content/Debug/Debugger/ObjectMonitor/TextColor", "Tag text color"); - //AddEntry("Content/Debug/Debugger/ObjectMonitor/ShowTextBg", "Show text background"); - //AddEntry("Content/Debug/Debugger/ObjectMonitor/BgColor", "Tag background color"); - //AddEntry("Content/Debug/Debugger/ObjectMonitor/TagPlayers", "Tag players"); - //AddEntry("Content/Debug/Debugger/ObjectMonitor/TagEventObjs", "Tag event objects"); - //AddEntry("Content/Debug/Debugger/ObjectMonitor/TagBattleNpcs", "Tag battle NPCs"); - //AddEntry("Content/Debug/Debugger/ObjectMonitor/TagOthers", "Tag all other unspecified types"); - //AddEntry("Content/Debug/Debugger/ObjectMonitor/OnlyVisible", "Show only visible objects"); - //AddEntry("Content/Debug/Debugger/ObjectMonitor/OnlyTargettable", "Show only targettable objects"); - //AddEntry("Content/Debug/Debugger/EventLogger", "Event logger"); - //AddEntry("Content/Debug/Debugger/EventLogger/Enabled", "Enabled"); - //AddEntry("Content/Debug/Debugger/EventLogger/LogInCombat", "Log when in combat"); - //AddEntry("Content/Debug/Debugger/EventLogger/LogOutsideCombat", "Log outside of combat"); - //AddEntry("Content/Debug/Debugger/EventLogger/LogToDalamudLog", "Output to Dalamud log"); - //AddEntry("Content/Debug/Debugger/EventLogger/LogToFile", "Output to file"); - //AddEntry("Content/Debug/Debugger/EventLogger/LogFilename", "Log filename"); - //AddEntry("Content/Debug/Debugger/EventLogger/CurrentLogFilename", "Current log file"); - //AddEntry("Content/Debug/Debugger/StressTest", "Stress test"); - //AddEntry("Content/Debug/Debugger/StressTest/Enabled", "Enabled"); - //AddEntry("Content/Debug/Debugger/StressTest/TestAutomarkers", "Test automarkers"); - //AddEntry("Content/Debug/Debugger/StressTest/TestAutomarkerRapidfire", "Test automarker rapid set/clear"); - //AddEntry("Content/Debug/Debugger/StressTest/AmFails", "Automarker errors"); - //AddEntry("Content/Miscellaneous", "Miscellaneous"); - //AddEntry("Content/Miscellaneous/Enabled", "Enabled"); - //AddEntry("Content/Miscellaneous/Radar", "Radar"); - //AddEntry("Content/Miscellaneous/Radar/Enabled", "Enabled"); - //AddEntry("Content/Miscellaneous/Radar/DrawEnemies", "Draw enemies"); - //AddEntry("Content/Miscellaneous/Radar/DrawEnemies/Enabled", "Enabled"); - //AddEntry("Content/Miscellaneous/Radar/DrawEnemies/ObjectColor", "Enemy highlight color"); - //AddEntry("Content/Miscellaneous/Radar/DrawEnemies/DrawLine", "Draw line to nearby enemies"); - //AddEntry("Content/Miscellaneous/Radar/DrawEnemies/ShowNames", "Show name tags"); - //AddEntry("Content/Miscellaneous/Radar/DrawEnemies/IncludeDistance", "Include distance on the name tag"); - //AddEntry("Content/Miscellaneous/Radar/DrawEnemies/TextColor", "Name tag text color"); - //AddEntry("Content/Miscellaneous/Radar/DrawEnemies/ShowNameBg", "Show name tag background"); - //AddEntry("Content/Miscellaneous/Radar/DrawEnemies/BgColor", "Name tag background color"); - //AddEntry("Content/Miscellaneous/Radar/DrawPlayers", "Draw players"); - //AddEntry("Content/Miscellaneous/Radar/DrawPlayers/Enabled", "Enabled"); - //AddEntry("Content/Miscellaneous/Radar/DrawPlayers/ObjectColor", "Player highlight color"); - //AddEntry("Content/Miscellaneous/Radar/DrawPlayers/ShowNames", "Show name tags"); - //AddEntry("Content/Miscellaneous/Radar/DrawPlayers/IncludeDistance", "Include distance on the name tag"); - //AddEntry("Content/Miscellaneous/Radar/DrawPlayers/TextColor", "Name tag text color"); - //AddEntry("Content/Miscellaneous/Radar/DrawPlayers/ShowNameBg", "Show name tag background"); - //AddEntry("Content/Miscellaneous/Radar/DrawPlayers/BgColor", "Name tag background color"); - //AddEntry("Content/Miscellaneous/Radar/DrawPlayers/ShowJobIcon", "Show job icon"); - //AddEntry("Content/Miscellaneous/Radar/DrawPlayers/ShowHpBar", "Show HP bar"); - //AddEntry("Content/Miscellaneous/Radar/DrawGatheringPoint", "Draw gathering points"); - //AddEntry("Content/Miscellaneous/Radar/DrawGatheringPoint/Enabled", "Enabled"); - //AddEntry("Content/Miscellaneous/Radar/DrawGatheringPoint/ObjectColor", "Highlight color"); - //AddEntry("Content/Miscellaneous/Radar/DrawGatheringPoint/OnlyOnGatherers", "Show only when on a gathering job"); - //AddEntry("Content/Miscellaneous/Radar/DrawGatheringPoint/ShowNames", "Show name tags"); - //AddEntry("Content/Miscellaneous/Radar/DrawGatheringPoint/IncludeDistance", "Include distance on the name tag"); - //AddEntry("Content/Miscellaneous/Radar/DrawGatheringPoint/TextColor", "Name tag text color"); - //AddEntry("Content/Miscellaneous/Radar/DrawGatheringPoint/ShowNameBg", "Show name tag background"); - //AddEntry("Content/Miscellaneous/Radar/DrawGatheringPoint/BgColor", "Name tag background color"); - //AddEntry("Content/Miscellaneous/Radar/DrawGatheringPoint/ShowHidden", "Show hidden nodes"); - //AddEntry("Content/Miscellaneous/Radar/DrawGatheringPoint/HiddenColor", "Hidden node highlight color"); - //AddEntry("Content/Miscellaneous/Radar/DrawGatheringPoint/ShowNameOnHidden", "Show name tag on hidden nodes"); - //AddEntry("Content/Miscellaneous/Radar/DrawGatheringPoint/ShowNameBgOnHidden", "Show name tag background on hidden nodes"); - //AddEntry("Content/Miscellaneous/Radar/AlertFinder", "Finder"); - //AddEntry("Content/Miscellaneous/Radar/AlertFinder/Enabled", "Enabled"); - //AddEntry("Content/Miscellaneous/Radar/AlertFinder/LookFor", "Objects to look for"); - //AddEntry("Content/Miscellaneous/Radar/AlertFinder/LookFor/AddNew", "Add to list"); - //AddEntry("Content/Miscellaneous/Radar/AlertFinder/LookFor/Remove", "Remove selected"); - //AddEntry("Content/Miscellaneous/Radar/AlertFinder/LookFor/Clear", "Clear all"); - //AddEntry("Content/Miscellaneous/Radar/AlertFinder/IncludeRankS", "Include all S-rank hunts"); - //AddEntry("Content/Miscellaneous/Radar/AlertFinder/IncludeRankA", "Include all A-rank hunts"); - //AddEntry("Content/Miscellaneous/Radar/AlertFinder/IncludeRankB", "Include all B-rank hunts"); - //AddEntry("Content/Miscellaneous/Radar/AlertFinder/IncludeIslandRare", "Include Island Sanctuary rare animals"); - //AddEntry("Content/Miscellaneous/Radar/AlertFinder/SoundAlert", "Play sound effect when something has been found"); - //AddEntry("Content/Miscellaneous/Radar/AlertFinder/ObjectColor", "Object highlight color"); - //AddEntry("Content/Miscellaneous/Radar/AlertFinder/SRankColor", "S-rank highlight color"); - //AddEntry("Content/Miscellaneous/Radar/AlertFinder/ARankColor", "A-rank highlight color"); - //AddEntry("Content/Miscellaneous/Radar/AlertFinder/BRankColor", "B-rank highlight color"); - //AddEntry("Content/Miscellaneous/Radar/AlertFinder/RareAnimalColor", "Rare animal highlight color"); - //AddEntry("Content/Miscellaneous/Radar/AlertFinder/ShowNames", "Show name tags"); - //AddEntry("Content/Miscellaneous/Radar/AlertFinder/IncludeDistance", "Include distance on the name tag"); - //AddEntry("Content/Miscellaneous/Radar/AlertFinder/TextColor", "Name tag text color"); - //AddEntry("Content/Miscellaneous/Radar/AlertFinder/ShowNameBg", "Show name tag background"); - //AddEntry("Content/Miscellaneous/Radar/AlertFinder/BgColor", "Name tag background color"); + AddEntry("Content/Miscellaneous/VisualEnhancement", "시각적 향상"); + AddEntry("Content/Miscellaneous/VisualEnhancement/Enabled", "활성화"); + AddEntry("Content/Miscellaneous/VisualEnhancement/Hitbox", "히트박스"); + AddEntry("Content/Miscellaneous/VisualEnhancement/Hitbox/Enabled", "활성화"); + AddEntry("Content/Miscellaneous/VisualEnhancement/Hitbox/HitboxColor", "히트박스 강조색"); + AddEntry("Content/Miscellaneous/VisualEnhancement/Hitbox/CastColor", "캐스팅 인디케이터 색"); + AddEntry("Content/Miscellaneous/VisualEnhancement/Hitbox/DrawOnEnemies", "적에게 표시하기"); + AddEntry("Content/Miscellaneous/VisualEnhancement/Hitbox/DrawOnPlayers", "플레이어에게 표시하기"); + AddEntry("Content/Miscellaneous/VisualEnhancement/Hitbox/OnlyCurrentTarget", "현재 타깃 대상에게만 표시하기"); + AddEntry("Content/Miscellaneous/VisualEnhancement/Hitbox/ShowCasts", "히트박스에 캐스팅 인디케이터 표시하기"); + AddEntry("Content/Debug/Debugger/ObjectMonitor", "오브젝트 모니터"); + AddEntry("Content/Debug/Debugger/ObjectMonitor/Enabled", "활성화"); + AddEntry("Content/Debug/Debugger/ObjectMonitor/TextColor", "태그 글자색"); + AddEntry("Content/Debug/Debugger/ObjectMonitor/ShowTextBg", "태그 배경 보기"); + AddEntry("Content/Debug/Debugger/ObjectMonitor/BgColor", "태그 배경색"); + AddEntry("Content/Debug/Debugger/ObjectMonitor/TagPlayers", "플레이어 태그 보기"); + AddEntry("Content/Debug/Debugger/ObjectMonitor/TagEventObjs", "이벤트 오브잭트 태그 보기"); + AddEntry("Content/Debug/Debugger/ObjectMonitor/TagBattleNpcs", "전투 NPC 태그 보기"); + AddEntry("Content/Debug/Debugger/ObjectMonitor/TagOthers", "다른 지정되지 않은 유형에 대해 모두 태그 보기"); + AddEntry("Content/Debug/Debugger/ObjectMonitor/OnlyVisible", "보이는 오브젝트만 보기"); + AddEntry("Content/Debug/Debugger/ObjectMonitor/OnlyTargettable", "타깃 가능한 오브젝트만 보기"); + AddEntry("Content/Debug/Debugger/EventLogger", "이벤트 로거"); + AddEntry("Content/Debug/Debugger/EventLogger/Enabled", "활성화"); + AddEntry("Content/Debug/Debugger/EventLogger/LogInCombat", "전투 중인 경우 로그 기록"); + AddEntry("Content/Debug/Debugger/EventLogger/LogOutsideCombat", "비전투 상태에서 로그 기록"); + AddEntry("Content/Debug/Debugger/EventLogger/LogToDalamudLog", "Dalamud 로그로 출력"); + AddEntry("Content/Debug/Debugger/EventLogger/LogToFile", "파일로 출력"); + AddEntry("Content/Debug/Debugger/EventLogger/LogFilename", "로그 파일 이름"); + AddEntry("Content/Debug/Debugger/EventLogger/CurrentLogFilename", "현재 로그 파일"); + AddEntry("Content/Debug/Debugger/StressTest", "스트레스 테스트"); + AddEntry("Content/Debug/Debugger/StressTest/Enabled", "활성화"); + AddEntry("Content/Debug/Debugger/StressTest/TestAutomarkers", "오토마커 테스트"); + AddEntry("Content/Debug/Debugger/StressTest/TestAutomarkerRapidfire", "오토마커 빠른 설정/해제 테스트"); + AddEntry("Content/Debug/Debugger/StressTest/AmFails", "오토마커 오류"); + AddEntry("Content/Miscellaneous", "기타"); + AddEntry("Content/Miscellaneous/Enabled", "활성화"); + AddEntry("Content/Miscellaneous/Radar", "레이더"); + AddEntry("Content/Miscellaneous/Radar/Enabled", "활성화"); + AddEntry("Content/Miscellaneous/Radar/DrawEnemies", "적 강조하기"); + AddEntry("Content/Miscellaneous/Radar/DrawEnemies/Enabled", "활성화"); + AddEntry("Content/Miscellaneous/Radar/DrawEnemies/ObjectColor", "적 강조색"); + AddEntry("Content/Miscellaneous/Radar/DrawEnemies/DrawLine", "가까운 적 강조"); + AddEntry("Content/Miscellaneous/Radar/DrawEnemies/ShowNames", "네임 태그 보기"); + AddEntry("Content/Miscellaneous/Radar/DrawEnemies/IncludeDistance", "네임 태그에서 대상과의 거리 보기"); + AddEntry("Content/Miscellaneous/Radar/DrawEnemies/TextColor", "네임 태그 글자색"); + AddEntry("Content/Miscellaneous/Radar/DrawEnemies/ShowNameBg", "네임 태그 배경 표시"); + AddEntry("Content/Miscellaneous/Radar/DrawEnemies/BgColor", "네임 태그 배경색"); + AddEntry("Content/Miscellaneous/Radar/DrawPlayers", "플레이어 강조하기"); + AddEntry("Content/Miscellaneous/Radar/DrawPlayers/Enabled", "활성화"); + AddEntry("Content/Miscellaneous/Radar/DrawPlayers/ObjectColor", "플레이어 강조색"); + AddEntry("Content/Miscellaneous/Radar/DrawPlayers/ShowNames", "네임 태그 보기"); + AddEntry("Content/Miscellaneous/Radar/DrawPlayers/IncludeDistance", "네임 태그에서 대상과의 거리 보기"); + AddEntry("Content/Miscellaneous/Radar/DrawPlayers/TextColor", "네임 태그 글자색"); + AddEntry("Content/Miscellaneous/Radar/DrawPlayers/ShowNameBg", "네임 태그 배경 표시"); + AddEntry("Content/Miscellaneous/Radar/DrawPlayers/BgColor", "네임 태그 배경색"); + AddEntry("Content/Miscellaneous/Radar/DrawPlayers/ShowJobIcon", "직업 아이콘 보기"); + AddEntry("Content/Miscellaneous/Radar/DrawPlayers/ShowHpBar", "HP 막대 보기"); + AddEntry("Content/Miscellaneous/Radar/DrawGatheringPoint", "채집 포인트 강조하기"); + AddEntry("Content/Miscellaneous/Radar/DrawGatheringPoint/Enabled", "활성화"); + AddEntry("Content/Miscellaneous/Radar/DrawGatheringPoint/ObjectColor", "채집 포인트 강조색"); + AddEntry("Content/Miscellaneous/Radar/DrawGatheringPoint/OnlyOnGatherers", "채집 직업일 때만 보기"); + AddEntry("Content/Miscellaneous/Radar/DrawGatheringPoint/ShowNames", "네임 태그 보기"); + AddEntry("Content/Miscellaneous/Radar/DrawGatheringPoint/IncludeDistance", "네임 태그에서 대상과의 거리 보기"); + AddEntry("Content/Miscellaneous/Radar/DrawGatheringPoint/TextColor", "네임 태그 글자색"); + AddEntry("Content/Miscellaneous/Radar/DrawGatheringPoint/ShowNameBg", "네임 태그 배경 표시"); + AddEntry("Content/Miscellaneous/Radar/DrawGatheringPoint/BgColor", "네임 태그 배경색"); + AddEntry("Content/Miscellaneous/Radar/DrawGatheringPoint/ShowHidden", "숨겨진 노드 보기"); + AddEntry("Content/Miscellaneous/Radar/DrawGatheringPoint/HiddenColor", "숨겨진 노드 강조색"); + AddEntry("Content/Miscellaneous/Radar/DrawGatheringPoint/ShowNameOnHidden", "숨겨진 노드의 네임 태그 보기"); + AddEntry("Content/Miscellaneous/Radar/DrawGatheringPoint/ShowNameBgOnHidden", "숨겨진 노드의 네임 태그 배경 표시"); + AddEntry("Content/Miscellaneous/Radar/AlertFinder", "파인더"); + AddEntry("Content/Miscellaneous/Radar/AlertFinder/Enabled", "활성화"); + AddEntry("Content/Miscellaneous/Radar/AlertFinder/LookFor", "찾을 대상"); + AddEntry("Content/Miscellaneous/Radar/AlertFinder/LookFor/AddNew", "리스트에 추가"); + AddEntry("Content/Miscellaneous/Radar/AlertFinder/LookFor/Remove", "선택 대상 삭제"); + AddEntry("Content/Miscellaneous/Radar/AlertFinder/LookFor/Clear", "모두 삭제"); + AddEntry("Content/Miscellaneous/Radar/AlertFinder/IncludeRankS", "모든 S 랭크 마물 포함"); + AddEntry("Content/Miscellaneous/Radar/AlertFinder/IncludeRankA", "모든 A 랭크 마물 포함"); + AddEntry("Content/Miscellaneous/Radar/AlertFinder/IncludeRankB", "모든 B 랭크 마물 포함"); + AddEntry("Content/Miscellaneous/Radar/AlertFinder/IncludeIslandRare", "모든 무인도의 희귀 동물 포함"); + AddEntry("Content/Miscellaneous/Radar/AlertFinder/SoundAlert", "발견하면 소리로 알림"); + AddEntry("Content/Miscellaneous/Radar/AlertFinder/ObjectColor", "오브젝트 강조색"); + AddEntry("Content/Miscellaneous/Radar/AlertFinder/SRankColor", "S 랭크 강조색"); + AddEntry("Content/Miscellaneous/Radar/AlertFinder/ARankColor", "A 랭크 강조색"); + AddEntry("Content/Miscellaneous/Radar/AlertFinder/BRankColor", "B 랭크 강조색"); + AddEntry("Content/Miscellaneous/Radar/AlertFinder/RareAnimalColor", "희귀 동물 강조색"); + AddEntry("Content/Miscellaneous/Radar/AlertFinder/ShowNames", "네임 태그 표시"); + AddEntry("Content/Miscellaneous/Radar/AlertFinder/IncludeDistance", "네임 태그에 거리 표시"); + AddEntry("Content/Miscellaneous/Radar/AlertFinder/TextColor", "네임 태그 글자색"); + AddEntry("Content/Miscellaneous/Radar/AlertFinder/ShowNameBg", "네임 태그에 배경 표시"); + AddEntry("Content/Miscellaneous/Radar/AlertFinder/BgColor", "네임 태그 배경색"); //AddEntry("Content/Miscellaneous/Radar/AlertFinder/LastSeen", "last seen"); //AddEntry("Content/Miscellaneous/Radar/AlertFinder/Never", "never"); - //AddEntry("Content/DeepDungeon", "Deep Dungeons"); - //AddEntry("Content/DeepDungeon/Enabled", "Enabled"); - //AddEntry("Content/DeepDungeon/AccursedHoard", "Accursed Hoard"); - //AddEntry("Content/DeepDungeon/EurekaOrthos", "Eureka Orthos"); - //AddEntry("Content/DeepDungeon/EurekaOrthos/Enabled", "Enabled"); - //AddEntry("Content/DeepDungeon/EurekaOrthos/DrawEnemies", "Draw enemies"); - //AddEntry("Content/DeepDungeon/EurekaOrthos/DrawEnemies/Enabled", "Enabled"); - //AddEntry("Content/DeepDungeon/EurekaOrthos/DrawEnemies/ObjectColor", "Enemy highlight color"); - //AddEntry("Content/DeepDungeon/EurekaOrthos/DrawEnemies/DrawLine", "Draw line to nearby enemies"); - //AddEntry("Content/DeepDungeon/EurekaOrthos/DrawEnemies/ShowNames", "Show name tags"); - //AddEntry("Content/DeepDungeon/EurekaOrthos/DrawEnemies/IncludeDistance", "Include distance on the name tag"); - //AddEntry("Content/DeepDungeon/EurekaOrthos/DrawEnemies/TextColor", "Name tag text color"); - //AddEntry("Content/DeepDungeon/EurekaOrthos/DrawEnemies/ShowNameBg", "Show name tag background"); - //AddEntry("Content/DeepDungeon/EurekaOrthos/DrawEnemies/BgColor", "Name tag background color"); - //AddEntry("Content/DeepDungeon/EurekaOrthos/DrawPylons", "Draw pylons"); - //AddEntry("Content/DeepDungeon/EurekaOrthos/DrawPylons/Enabled", "Enabled"); - //AddEntry("Content/DeepDungeon/EurekaOrthos/DrawPylons/ObjectColor", "Pylon highlight color"); - //AddEntry("Content/DeepDungeon/EurekaOrthos/DrawPylons/ShowNames", "Show name tags"); - //AddEntry("Content/DeepDungeon/EurekaOrthos/DrawPylons/IncludeDistance", "Include distance on the name tag"); - //AddEntry("Content/DeepDungeon/EurekaOrthos/DrawPylons/TextColor", "Name tag text color"); - //AddEntry("Content/DeepDungeon/EurekaOrthos/DrawPylons/ShowNameBg", "Show name tag background"); - //AddEntry("Content/DeepDungeon/EurekaOrthos/DrawPylons/BgColor", "Name tag background color"); - //AddEntry("Content/DeepDungeon/EurekaOrthos/DrawChests", "Draw chests and Accursed Hoard"); - //AddEntry("Content/DeepDungeon/EurekaOrthos/DrawChests/Enabled", "Enabled"); - //AddEntry("Content/DeepDungeon/EurekaOrthos/DrawChests/GoldColor", "Gold chest color"); - //AddEntry("Content/DeepDungeon/EurekaOrthos/DrawChests/SilverColor", "Silver chest color"); - //AddEntry("Content/DeepDungeon/EurekaOrthos/DrawChests/BronzeColor", "Bronze chest color"); - //AddEntry("Content/DeepDungeon/EurekaOrthos/DrawChests/BandedColor", "Banded chest color"); - //AddEntry("Content/DeepDungeon/EurekaOrthos/DrawChests/HoardColor", "Accursed Hoard color"); - //AddEntry("Content/DeepDungeon/EurekaOrthos/DrawChests/ShowNames", "Show name tags"); - //AddEntry("Content/DeepDungeon/EurekaOrthos/DrawChests/IncludeDistance", "Include distance on the name tag"); - //AddEntry("Content/DeepDungeon/EurekaOrthos/DrawChests/TextColor", "Name tag text color"); - //AddEntry("Content/DeepDungeon/EurekaOrthos/DrawChests/ShowNameBg", "Show name tag background"); - //AddEntry("Content/DeepDungeon/EurekaOrthos/DrawChests/BgColor", "Name tag background color"); - //AddEntry("Content/DeepDungeon/HeavenOnHigh", "Heaven-on-High"); - //AddEntry("Content/DeepDungeon/HeavenOnHigh/Enabled", "Enabled"); - //AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawEnemies", "Draw enemies"); - //AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawEnemies/Enabled", "Enabled"); - //AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawEnemies/ObjectColor", "Enemy highlight color"); - //AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawEnemies/DrawLine", "Draw line to nearby enemies"); - //AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawEnemies/ShowNames", "Show name tags"); - //AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawEnemies/IncludeDistance", "Include distance on the name tag"); - //AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawEnemies/TextColor", "Name tag text color"); - //AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawEnemies/ShowNameBg", "Show name tag background"); - //AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawEnemies/BgColor", "Name tag background color"); - //AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawPylons", "Draw beacons"); - //AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawPylons/Enabled", "Enabled"); - //AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawPylons/ObjectColor", "Beacon highlight color"); - //AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawPylons/ShowNames", "Show name tags"); - //AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawPylons/IncludeDistance", "Include distance on the name tag"); - //AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawPylons/TextColor", "Name tag text color"); - //AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawPylons/ShowNameBg", "Show name tag background"); - //AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawPylons/BgColor", "Name tag background color"); - //AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawChests", "Draw chests and Accursed Hoard"); - //AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawChests/Enabled", "Enabled"); - //AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawChests/GoldColor", "Gold chest color"); - //AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawChests/SilverColor", "Silver chest color"); - //AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawChests/BronzeColor", "Bronze chest color"); - //AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawChests/BandedColor", "Banded chest color"); - //AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawChests/HoardColor", "Accursed Hoard color"); - //AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawChests/ShowNames", "Show name tags"); - //AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawChests/IncludeDistance", "Include distance on the name tag"); - //AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawChests/TextColor", "Name tag text color"); - //AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawChests/ShowNameBg", "Show name tag background"); - //AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawChests/BgColor", "Name tag background color"); - //AddEntry("Content/DeepDungeon/PalaceOfTheDead", "The Palace of the Dead"); - //AddEntry("Content/DeepDungeon/PalaceOfTheDead/Enabled", "Enabled"); - //AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawEnemies", "Draw enemies"); - //AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawEnemies/Enabled", "Enabled"); - //AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawEnemies/ObjectColor", "Enemy highlight color"); - //AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawEnemies/DrawLine", "Draw line to nearby enemies"); - //AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawEnemies/ShowNames", "Show name tags"); - //AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawEnemies/IncludeDistance", "Include distance on the name tag"); - //AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawEnemies/TextColor", "Name tag text color"); - //AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawEnemies/ShowNameBg", "Show name tag background"); - //AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawEnemies/BgColor", "Name tag background color"); - //AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawPylons", "Draw cairns"); - //AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawPylons/Enabled", "Enabled"); - //AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawPylons/ObjectColor", "Cairn highlight color"); - //AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawPylons/ShowNames", "Show name tags"); - //AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawPylons/IncludeDistance", "Include distance on the name tag"); - //AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawPylons/TextColor", "Name tag text color"); - //AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawPylons/ShowNameBg", "Show name tag background"); - //AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawPylons/BgColor", "Name tag background color"); - //AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawChests", "Draw chests and Accursed Hoard"); - //AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawChests/Enabled", "Enabled"); - //AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawChests/GoldColor", "Gold chest color"); - //AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawChests/SilverColor", "Silver chest color"); - //AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawChests/BronzeColor", "Bronze chest color"); - //AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawChests/BandedColor", "Banded chest color"); - //AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawChests/HoardColor", "Accursed Hoard color"); - //AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawChests/ShowNames", "Show name tags"); - //AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawChests/IncludeDistance", "Include distance on the name tag"); - //AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawChests/TextColor", "Name tag text color"); - //AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawChests/ShowNameBg", "Show name tag background"); - //AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawChests/BgColor", "Name tag background color"); - //AddEntry("Content/Raid", "Raids"); - //AddEntry("Content/Raid/Enabled", "Enabled"); - //AddEntry("Content/EndwalkerRaids", "Endwalker (6.x)"); - //AddEntry("Content/EndwalkerRaids/Enabled", "Enabled"); - //AddEntry("Content/EndwalkerRaids/EwRaidAbyssos", "Abyssos (6.2)"); - //AddEntry("Content/EndwalkerRaids/EwRaidAbyssos/Enabled", "Enabled"); - //AddEntry("Content/EndwalkerRaids/EwRaidAbyssos/InviolateAM", "(P7s) Inviolate Bonds/Purgation automarker"); - //AddEntry("Content/EndwalkerRaids/EwRaidAbyssos/InviolateAM/Enabled", "Enabled"); - //AddEntry("Content/EndwalkerRaids/EwRaidAbyssos/InviolateAM/SelfMarkOnly", "Self-marking only"); - //AddEntry("Content/EndwalkerRaids/EwRaidAbyssos/InviolateAM/AsSoftmarker", "Show as client-side soft markers"); - //AddEntry("Content/EndwalkerRaids/EwRaidAbyssos/InviolateAM/Signs", "Marker configuration"); - //AddEntry("Content/EndwalkerRaids/EwRaidAbyssos/InviolateAM/Signs/ShareTarget", "Share target"); - //AddEntry("Content/EndwalkerRaids/EwRaidAbyssos/InviolateAM/Signs/Share1", "Share 1"); - //AddEntry("Content/EndwalkerRaids/EwRaidAbyssos/InviolateAM/Signs/Share2", "Share 2"); - //AddEntry("Content/EndwalkerRaids/EwRaidAbyssos/InviolateAM/Signs/Share3", "Share 3"); - //AddEntry("Content/EndwalkerRaids/EwRaidAbyssos/InviolateAM/Signs/Spread1", "Spread 1"); - //AddEntry("Content/EndwalkerRaids/EwRaidAbyssos/InviolateAM/Signs/Spread2", "Spread 2"); - //AddEntry("Content/EndwalkerRaids/EwRaidAbyssos/InviolateAM/Signs/Spread3", "Spread 3"); - //AddEntry("Content/EndwalkerRaids/EwRaidAbyssos/InviolateAM/Signs/Spread4", "Spread 4"); - //AddEntry("Content/EndwalkerRaids/EwRaidAbyssos/InviolateAM/Prio", "Priority configuration"); - //AddEntry("Content/EndwalkerRaids/EwRaidAbyssos/InviolateAM/Test", "Test assignment (respecting priority)"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios", "Anabaseios (6.4)"); - //AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/Enabled", "Enabled"); + AddEntry("Content/DeepDungeon", "딥 던전"); + AddEntry("Content/DeepDungeon/Enabled", "활성화"); + AddEntry("Content/DeepDungeon/AccursedHoard", "파묻힌 보물"); + AddEntry("Content/DeepDungeon/EurekaOrthos", "에우레카 오르토스"); + AddEntry("Content/DeepDungeon/EurekaOrthos/Enabled", "활성화"); + AddEntry("Content/DeepDungeon/EurekaOrthos/DrawEnemies", "적 강조"); + AddEntry("Content/DeepDungeon/EurekaOrthos/DrawEnemies/Enabled", "활성화"); + AddEntry("Content/DeepDungeon/EurekaOrthos/DrawEnemies/ObjectColor", "적 강조색"); + AddEntry("Content/DeepDungeon/EurekaOrthos/DrawEnemies/DrawLine", "가까운 적 강조"); + AddEntry("Content/DeepDungeon/EurekaOrthos/DrawEnemies/ShowNames", "네임 태그 보기"); + AddEntry("Content/DeepDungeon/EurekaOrthos/DrawEnemies/IncludeDistance", "네임 태그에서 대상과의 거리 보기"); + AddEntry("Content/DeepDungeon/EurekaOrthos/DrawEnemies/TextColor", "네임 태그 글자색"); + AddEntry("Content/DeepDungeon/EurekaOrthos/DrawEnemies/ShowNameBg", "네임 태그 배경 표시"); + AddEntry("Content/DeepDungeon/EurekaOrthos/DrawEnemies/BgColor", "네임 태그 배경색"); + AddEntry("Content/DeepDungeon/EurekaOrthos/DrawPylons", "전송장치 강조"); + AddEntry("Content/DeepDungeon/EurekaOrthos/DrawPylons/Enabled", "활성화"); + AddEntry("Content/DeepDungeon/EurekaOrthos/DrawPylons/ObjectColor", "전송장치 강조색"); + AddEntry("Content/DeepDungeon/EurekaOrthos/DrawPylons/ShowNames", "네임 태그 보기"); + AddEntry("Content/DeepDungeon/EurekaOrthos/DrawPylons/IncludeDistance", "네임 태그에서 대상과의 거리 보기"); + AddEntry("Content/DeepDungeon/EurekaOrthos/DrawPylons/TextColor", "네임 태그 글자색"); + AddEntry("Content/DeepDungeon/EurekaOrthos/DrawPylons/ShowNameBg", "네임 태그 배경 표시"); + AddEntry("Content/DeepDungeon/EurekaOrthos/DrawPylons/BgColor", "네임 태그 배경색"); + AddEntry("Content/DeepDungeon/EurekaOrthos/DrawChests", "상자 및 파묻힌 보물 강조"); + AddEntry("Content/DeepDungeon/EurekaOrthos/DrawChests/Enabled", "활성화"); + AddEntry("Content/DeepDungeon/EurekaOrthos/DrawChests/GoldColor", "금 상자 색"); + AddEntry("Content/DeepDungeon/EurekaOrthos/DrawChests/SilverColor", "은 상자 색"); + AddEntry("Content/DeepDungeon/EurekaOrthos/DrawChests/BronzeColor", "동 상자 색"); + AddEntry("Content/DeepDungeon/EurekaOrthos/DrawChests/BandedColor", "일반 상자 색"); + AddEntry("Content/DeepDungeon/EurekaOrthos/DrawChests/HoardColor", "파묻힌 보물 색"); + AddEntry("Content/DeepDungeon/EurekaOrthos/DrawChests/ShowNames", "네임 태그 보기"); + AddEntry("Content/DeepDungeon/EurekaOrthos/DrawChests/IncludeDistance", "네임 태그에서 대상과의 거리 보기"); + AddEntry("Content/DeepDungeon/EurekaOrthos/DrawChests/TextColor", "네임 태그 글자색"); + AddEntry("Content/DeepDungeon/EurekaOrthos/DrawChests/ShowNameBg", "네임 태그 배경 표시"); + AddEntry("Content/DeepDungeon/EurekaOrthos/DrawChests/BgColor", "네임 태그 배경색"); + AddEntry("Content/DeepDungeon/HeavenOnHigh", "천궁탑"); + AddEntry("Content/DeepDungeon/HeavenOnHigh/Enabled", "활성화"); + AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawEnemies", "적 강조"); + AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawEnemies/Enabled", "활성화"); + AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawEnemies/ObjectColor", "적 강조색"); + AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawEnemies/DrawLine", "가까운 적 강조"); + AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawEnemies/ShowNames", "네임 태그 보기"); + AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawEnemies/IncludeDistance", "네임 태그에서 대상과의 거리 보기"); + AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawEnemies/TextColor", "네임 태그 글자색"); + AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawEnemies/ShowNameBg", "네임 태그 배경 표시"); + AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawEnemies/BgColor", "네임 태그 배경색"); + AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawPylons", "전송 등불 강조"); + AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawPylons/Enabled", "활성화"); + AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawPylons/ObjectColor", "전송 등불 강조색"); + AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawPylons/ShowNames", "네임 태그 보기"); + AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawPylons/IncludeDistance", "네임 태그에서 대상과의 거리 보기"); + AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawPylons/TextColor", "네임 태그 글자색"); + AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawPylons/ShowNameBg", "네임 태그 배경 표시"); + AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawPylons/BgColor", "네임 태그 배경색"); + AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawChests", "상자 및 파묻힌 보물 강조"); + AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawChests/Enabled", "활성화"); + AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawChests/GoldColor", "금 상자 색"); + AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawChests/SilverColor", "은 상자 색"); + AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawChests/BronzeColor", "동 상자 색"); + AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawChests/BandedColor", "일반 상자 색"); + AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawChests/HoardColor", "파묻힌 보물 색"); + AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawChests/ShowNames", "네임 태그 보기"); + AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawChests/IncludeDistance", "네임 태그에서 대상과의 거리 보기"); + AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawChests/TextColor", "네임 태그 글자색"); + AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawChests/ShowNameBg", "네임 태그 배경 표시"); + AddEntry("Content/DeepDungeon/HeavenOnHigh/DrawChests/BgColor", "네임 태그 배경색"); + AddEntry("Content/DeepDungeon/PalaceOfTheDead", "망자의 궁전"); + AddEntry("Content/DeepDungeon/PalaceOfTheDead/Enabled", "활성화"); + AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawEnemies", "적 강조"); + AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawEnemies/Enabled", "활성화"); + AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawEnemies/ObjectColor", "적 강조색"); + AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawEnemies/DrawLine", "가까운 적 강조"); + AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawEnemies/ShowNames", "네임 태그 보기"); + AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawEnemies/IncludeDistance", "네임 태그에서 대상과의 거리 보기"); + AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawEnemies/TextColor", "네임 태그 글자색"); + AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawEnemies/ShowNameBg", "네임 태그 배경 표시"); + AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawEnemies/BgColor", "네임 태그 배경색"); + AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawPylons", "전송장치 강조"); + AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawPylons/Enabled", "활성화"); + AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawPylons/ObjectColor", "전송장치 강조색"); + AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawPylons/ShowNames", "네임 태그 보기"); + AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawPylons/IncludeDistance", "네임 태그에서 대상과의 거리 보기"); + AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawPylons/TextColor", "네임 태그 글자색"); + AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawPylons/ShowNameBg", "네임 태그 배경 표시"); + AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawPylons/BgColor", "네임 태그 배경색"); + AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawChests", "상자 및 파묻힌 보물 강조"); + AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawChests/Enabled", "활성화"); + AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawChests/GoldColor", "금 상자 색"); + AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawChests/SilverColor", "은 상자 색"); + AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawChests/BronzeColor", "동 상자 색"); + AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawChests/BandedColor", "일반 상자 색"); + AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawChests/HoardColor", "파묻힌 보물 색"); + AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawChests/ShowNames", "네임 태그 보기"); + AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawChests/IncludeDistance", "네임 태그에서 대상과의 거리 보기"); + AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawChests/TextColor", "네임 태그 글자색"); + AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawChests/ShowNameBg", "네임 태그 배경 표시"); + AddEntry("Content/DeepDungeon/PalaceOfTheDead/DrawChests/BgColor", "네임 태그 배경색"); + AddEntry("Content/Raid", "레이드"); + AddEntry("Content/Raid/Enabled", "활성화"); + AddEntry("Content/EndwalkerRaids", "효월의 종언 (6.x)"); + AddEntry("Content/EndwalkerRaids/Enabled", "활성화"); + AddEntry("Content/EndwalkerRaids/EwRaidAbyssos", "연옥 (6.2)"); + AddEntry("Content/EndwalkerRaids/EwRaidAbyssos/Enabled", "활성화"); + AddEntry("Content/EndwalkerRaids/EwRaidAbyssos/InviolateAM", "(연영 3층) 마법각인 오토마커"); + AddEntry("Content/EndwalkerRaids/EwRaidAbyssos/InviolateAM/Enabled", "활성화"); + AddEntry("Content/EndwalkerRaids/EwRaidAbyssos/InviolateAM/SelfMarkOnly", "나에게만 징 달기"); + AddEntry("Content/EndwalkerRaids/EwRaidAbyssos/InviolateAM/AsSoftmarker", "클라이언트 측의 소프트 마커 사용하기"); + AddEntry("Content/EndwalkerRaids/EwRaidAbyssos/InviolateAM/Signs", "마커 설정"); + AddEntry("Content/EndwalkerRaids/EwRaidAbyssos/InviolateAM/Signs/ShareTarget", "쉐어 대상"); + AddEntry("Content/EndwalkerRaids/EwRaidAbyssos/InviolateAM/Signs/Share1", "쉐어 1"); + AddEntry("Content/EndwalkerRaids/EwRaidAbyssos/InviolateAM/Signs/Share2", "쉐어 2"); + AddEntry("Content/EndwalkerRaids/EwRaidAbyssos/InviolateAM/Signs/Share3", "쉐어 3"); + AddEntry("Content/EndwalkerRaids/EwRaidAbyssos/InviolateAM/Signs/Spread1", "산개 1"); + AddEntry("Content/EndwalkerRaids/EwRaidAbyssos/InviolateAM/Signs/Spread2", "산개 2"); + AddEntry("Content/EndwalkerRaids/EwRaidAbyssos/InviolateAM/Signs/Spread3", "산개 3"); + AddEntry("Content/EndwalkerRaids/EwRaidAbyssos/InviolateAM/Signs/Spread4", "산개 4"); + AddEntry("Content/EndwalkerRaids/EwRaidAbyssos/InviolateAM/Prio", "우선 순위 설정"); + AddEntry("Content/EndwalkerRaids/EwRaidAbyssos/InviolateAM/Test", "할당 테스트 (우선 순위 고려)"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios", "천옥 (6.4)"); + AddEntry("Content/EndwalkerRaids/EwRaidAnabaseios/Enabled", "활성화"); //AddEntry("Content/Trial", "Trials"); - //AddEntry("Content/Trial/Enabled", "Enabled"); - //AddEntry("Content/Ultimate", "Ultimate Raids"); - //AddEntry("Content/Ultimate/Enabled", "Enabled"); - //AddEntry("Content/Ultimate/UltUcob", "The Unending Coil of Bahamut (Ultimate)"); - //AddEntry("Content/Ultimate/UltUcob/Enabled", "Enabled"); - //AddEntry("Content/Ultimate/UltUcob/ChainLightningAm", "(P2) Chain Lightning automarker"); - //AddEntry("Content/Ultimate/UltUcob/ChainLightningAm/Enabled", "Enabled"); - //AddEntry("Content/Ultimate/UltUcob/ChainLightningAm/SelfMarkOnly", "Self-marking only"); - //AddEntry("Content/Ultimate/UltUcob/ChainLightningAm/AsSoftmarker", "Show as client-side soft markers"); - //AddEntry("Content/Ultimate/UltUcob/ChainLightningAm/Signs", "Marker configuration"); - //AddEntry("Content/Ultimate/UltUcob/ChainLightningAm/Signs/Lightning1", "Lightning 1"); - //AddEntry("Content/Ultimate/UltUcob/ChainLightningAm/Signs/Lightning2", "Lightning 2"); - //AddEntry("Content/Ultimate/UltUcob/ChainLightningAm/Test", "Test assignment (respecting priority)"); - //AddEntry("Content/Ultimate/UltWeaponsRefrain", "The Weapon's Refrain (Ultimate)"); - //AddEntry("Content/Ultimate/UltWeaponsRefrain/Enabled", "Enabled"); - //AddEntry("Content/Ultimate/UltWeaponsRefrain/GaolAM", "(P3) Titan gaol automarker"); - //AddEntry("Content/Ultimate/UltWeaponsRefrain/GaolAM/Enabled", "Enabled"); - //AddEntry("Content/Ultimate/UltWeaponsRefrain/GaolAM/SelfMarkOnly", "Self-marking only"); - //AddEntry("Content/Ultimate/UltWeaponsRefrain/GaolAM/AsSoftmarker", "Show as client-side soft markers"); - //AddEntry("Content/Ultimate/UltWeaponsRefrain/GaolAM/Signs", "Marker configuration"); - //AddEntry("Content/Ultimate/UltWeaponsRefrain/GaolAM/Signs/Gaol1", "Gaol 1"); - //AddEntry("Content/Ultimate/UltWeaponsRefrain/GaolAM/Signs/Gaol2", "Gaol 2"); - //AddEntry("Content/Ultimate/UltWeaponsRefrain/GaolAM/Signs/Gaol3", "Gaol 3"); - //AddEntry("Content/Ultimate/UltWeaponsRefrain/GaolAM/Prio", "Priority configuration"); - //AddEntry("Content/Ultimate/UltWeaponsRefrain/GaolAM/Test", "Test assignment (respecting priority)"); - //AddEntry("Content/Ultimate/UltDragonsongReprise", "Dragonsong's Reprise (Ultimate)"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/Enabled", "Enabled"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/MeteorAM", "(P2) Meteor automarker"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/MeteorAM/Enabled", "Enabled"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/MeteorAM/SelfMarkOnly", "Self-marking only"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/MeteorAM/AsSoftmarker", "Show as client-side soft markers"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/MeteorAM/Signs", "Marker configuration"); + AddEntry("Content/Trial/Enabled", "활성화"); + AddEntry("Content/Ultimate", "절 토벌전"); + AddEntry("Content/Ultimate/Enabled", "활성화"); + AddEntry("Content/Ultimate/UltUcob", "절 바하무트 토벌전"); + AddEntry("Content/Ultimate/UltUcob/Enabled", "활성화"); + AddEntry("Content/Ultimate/UltUcob/ChainLightningAm", "(2 페이즈) 번개 오토마커"); + AddEntry("Content/Ultimate/UltUcob/ChainLightningAm/Enabled", "활성화"); + AddEntry("Content/Ultimate/UltUcob/ChainLightningAm/SelfMarkOnly", "나에게만 징 달기"); + AddEntry("Content/Ultimate/UltUcob/ChainLightningAm/AsSoftmarker", "클라이언트 측의 소프트 마커 사용하기"); + AddEntry("Content/Ultimate/UltUcob/ChainLightningAm/Signs", "마커 설정"); + AddEntry("Content/Ultimate/UltUcob/ChainLightningAm/Signs/Lightning1", "번개 1"); + AddEntry("Content/Ultimate/UltUcob/ChainLightningAm/Signs/Lightning2", "번개 2"); + AddEntry("Content/Ultimate/UltUcob/ChainLightningAm/Test", "할당 테스트 (우선 순위 고려)"); + AddEntry("Content/Ultimate/UltWeaponsRefrain", "절 알테마 웨폰 파괴작전"); + AddEntry("Content/Ultimate/UltWeaponsRefrain/Enabled", "활성화"); + AddEntry("Content/Ultimate/UltWeaponsRefrain/GaolAM", "(3 페이즈) 타이탄 감옥 오토마커"); + AddEntry("Content/Ultimate/UltWeaponsRefrain/GaolAM/Enabled", "활성화"); + AddEntry("Content/Ultimate/UltWeaponsRefrain/GaolAM/SelfMarkOnly", "나에게만 징 달기"); + AddEntry("Content/Ultimate/UltWeaponsRefrain/GaolAM/AsSoftmarker", "클라이언트 측의 소프트 마커 사용하기"); + AddEntry("Content/Ultimate/UltWeaponsRefrain/GaolAM/Signs", "마커 설정"); + AddEntry("Content/Ultimate/UltWeaponsRefrain/GaolAM/Signs/Gaol1", "감옥 1"); + AddEntry("Content/Ultimate/UltWeaponsRefrain/GaolAM/Signs/Gaol2", "감옥 2"); + AddEntry("Content/Ultimate/UltWeaponsRefrain/GaolAM/Signs/Gaol3", "감옥 3"); + AddEntry("Content/Ultimate/UltWeaponsRefrain/GaolAM/Prio", "우선 순위 설정"); + AddEntry("Content/Ultimate/UltWeaponsRefrain/GaolAM/Test", "할당 테스트 (우선 순위 고려)"); + AddEntry("Content/Ultimate/UltDragonsongReprise", "절 용시전쟁"); + AddEntry("Content/Ultimate/UltDragonsongReprise/Enabled", "활성화"); + //AddEntry("Content/Ultimate/UltDragonsongReprise/MeteorAM", "(P2) Meteor Automaker"); + AddEntry("Content/Ultimate/UltDragonsongReprise/MeteorAM/Enabled", "활성화"); + AddEntry("Content/Ultimate/UltDragonsongReprise/MeteorAM/SelfMarkOnly", "나에게만 징 달기"); + AddEntry("Content/Ultimate/UltDragonsongReprise/MeteorAM/AsSoftmarker", "클라이언트 측의 소프트 마커 사용하기"); + AddEntry("Content/Ultimate/UltDragonsongReprise/MeteorAM/Signs", "마커 설정"); //AddEntry("Content/Ultimate/UltDragonsongReprise/MeteorAM/Signs/Meteor1", "Meteor 1"); //AddEntry("Content/Ultimate/UltDragonsongReprise/MeteorAM/Signs/Meteor2", "Meteor 2"); //AddEntry("Content/Ultimate/UltDragonsongReprise/MeteorAM/Signs/MeteorRole1", "Meteor role 1"); @@ -781,181 +781,181 @@ public Korean(State st) : base(st) //AddEntry("Content/Ultimate/UltDragonsongReprise/MeteorAM/Signs/NonMeteor2", "Non-Meteor 2"); //AddEntry("Content/Ultimate/UltDragonsongReprise/MeteorAM/Signs/NonMeteor3", "Non-Meteor 3"); //AddEntry("Content/Ultimate/UltDragonsongReprise/MeteorAM/Signs/NonMeteor4", "Non-Meteor 4"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/MeteorAM/Prio", "Priority configuration"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/MeteorAM/Test", "Test assignment (respecting priority)"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/ChainLightningAm", "(P5) Chain Lightning automarker"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/ChainLightningAm/Enabled", "Enabled"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/ChainLightningAm/SelfMarkOnly", "Self-marking only"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/ChainLightningAm/AsSoftmarker", "Show as client-side soft markers"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/ChainLightningAm/Signs", "Marker configuration"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/ChainLightningAm/Signs/Lightning1", "Lightning 1"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/ChainLightningAm/Signs/Lightning2", "Lightning 2"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/ChainLightningAm/Test", "Test assignment (respecting priority)"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/WrothAM", "(P6) Wroth Flames automarker"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/WrothAM/Enabled", "Enabled"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/WrothAM/SelfMarkOnly", "Self-marking only"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/WrothAM/AsSoftmarker", "Show as client-side soft markers"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/WrothAM/Signs", "Marker configuration"); + AddEntry("Content/Ultimate/UltDragonsongReprise/MeteorAM/Prio", "우선 순위 설정"); + AddEntry("Content/Ultimate/UltDragonsongReprise/MeteorAM/Test", "할당 테스트 (우선 순위 고려)"); + AddEntry("Content/Ultimate/UltDragonsongReprise/ChainLightningAm", "(5 페이즈) 번개 오토마커"); + AddEntry("Content/Ultimate/UltDragonsongReprise/ChainLightningAm/Enabled", "활성화"); + AddEntry("Content/Ultimate/UltDragonsongReprise/ChainLightningAm/SelfMarkOnly", "나에게만 징 달기"); + AddEntry("Content/Ultimate/UltDragonsongReprise/ChainLightningAm/AsSoftmarker", "클라이언트 측의 소프트 마커 사용하기"); + AddEntry("Content/Ultimate/UltDragonsongReprise/ChainLightningAm/Signs", "마커 설정"); + AddEntry("Content/Ultimate/UltDragonsongReprise/ChainLightningAm/Signs/Lightning1", "번개 1"); + AddEntry("Content/Ultimate/UltDragonsongReprise/ChainLightningAm/Signs/Lightning2", "번개 2"); + AddEntry("Content/Ultimate/UltDragonsongReprise/ChainLightningAm/Test", "할당 테스트 (우선 순위 고려)"); + AddEntry("Content/Ultimate/UltDragonsongReprise/WrothAM", "(6 페이즈) 사념의 불꽃 오토마커"); + AddEntry("Content/Ultimate/UltDragonsongReprise/WrothAM/Enabled", "활성화"); + AddEntry("Content/Ultimate/UltDragonsongReprise/WrothAM/SelfMarkOnly", "나에게만 징 달기"); + AddEntry("Content/Ultimate/UltDragonsongReprise/WrothAM/AsSoftmarker", "클라이언트 측의 소프트 마커 사용하기"); + AddEntry("Content/Ultimate/UltDragonsongReprise/WrothAM/Signs", "마커 설정"); //AddEntry("Content/Ultimate/UltDragonsongReprise/WrothAM/Signs/Presets/LPDU", "LPDU"); //AddEntry("Content/Ultimate/UltDragonsongReprise/WrothAM/Signs/Presets/ElementalDC", "Elemental DC"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/WrothAM/Signs/Stack1_1", "Stack 1 (Marked)"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/WrothAM/Signs/Stack1_2", "Stack 1 (Unmarked)"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/WrothAM/Signs/Stack2_1", "Stack 2 (Marked)"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/WrothAM/Signs/Stack2_2", "Stack 2 (Unmarked)"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/WrothAM/Signs/Spread1", "Spread 1"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/WrothAM/Signs/Spread2", "Spread 2"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/WrothAM/Signs/Spread3", "Spread 3"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/WrothAM/Signs/Spread4", "Spread 4"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/WrothAM/Prio", "Priority configuration"); - //AddEntry("Content/Ultimate/UltDragonsongReprise/WrothAM/Test", "Test assignment (respecting priority)"); - //AddEntry("Content/Ultimate/UltOmegaProtocol", "The Omega Protocol (Ultimate)"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/Enabled", "Enabled"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/ChibiOmega", "(P1/P3) Reduce Omega model size"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/ChibiOmega/Enabled", "Enabled"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/ChibiOmega/ApplyP1", "Apply to P1 Beetle Omega"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/ChibiOmega/SizeP1", "P1 Beetle Omega scale:"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/ChibiOmega/ApplyP3", "Apply to P3 Final Omega"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/ChibiOmega/SizeP3", "P3 Final Omega scale:"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/ProgramLoopAM", "(P1) Program Loop automarker"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/ProgramLoopAM/Enabled", "Enabled"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/ProgramLoopAM/SelfMarkOnly", "Self-marking only"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/ProgramLoopAM/AsSoftmarker", "Show as client-side soft markers"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/ProgramLoopAM/Signs", "Marker configuration"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/ProgramLoopAM/Signs/Tower1", "Next tower 1"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/ProgramLoopAM/Signs/Tower2", "Next tower 2"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/ProgramLoopAM/Signs/Tether1", "Next tether 1"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/ProgramLoopAM/Signs/Tether2", "Next tether 2"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/ProgramLoopAM/Prio", "Priority configuration"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/ProgramLoopAM/Test", "Test random assignment"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/PantokratorAM", "(P1) Pantokrator automarker"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/PantokratorAM/Enabled", "Enabled"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/PantokratorAM/SelfMarkOnly", "Self-marking only"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/PantokratorAM/AsSoftmarker", "Show as client-side soft markers"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/PantokratorAM/Signs", "Marker configuration"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/PantokratorAM/Signs/Beam1", "Next beam 1"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/PantokratorAM/Signs/Beam2", "Next beam 2"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/PantokratorAM/Signs/Missile1", "Next missile 1"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/PantokratorAM/Signs/Missile2", "Next missile 2"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/PantokratorAM/Prio", "Priority configuration"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/PantokratorAM/Test", "Test random assignment"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/GlitchTether", "(P2/P5) Glitch tether distance indicator"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/GlitchTether/Enabled", "Enabled"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/GlitchTether/TetherOkColor", "Within safe distance color"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/GlitchTether/TetherSafeColor", "Safe distance color"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/GlitchTether/TetherNokColor", "Wrong distance color"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/GlitchTether/Test", "Test random tether to a nearby combatant"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM", "(P2) Party Synergy automarker"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Enabled", "Enabled"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/SelfMarkOnly", "Self-marking only"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/AsSoftmarker", "Show as client-side soft markers"); + AddEntry("Content/Ultimate/UltDragonsongReprise/WrothAM/Signs/Stack1_1", "쉐어 1 (디버프 있음)"); + AddEntry("Content/Ultimate/UltDragonsongReprise/WrothAM/Signs/Stack1_2", "쉐어 1 (디버프 없음)"); + AddEntry("Content/Ultimate/UltDragonsongReprise/WrothAM/Signs/Stack2_1", "쉐어 2 (디버프 있음)"); + AddEntry("Content/Ultimate/UltDragonsongReprise/WrothAM/Signs/Stack2_2", "쉐어 2 (디버프 없음)"); + AddEntry("Content/Ultimate/UltDragonsongReprise/WrothAM/Signs/Spread1", "산개 1"); + AddEntry("Content/Ultimate/UltDragonsongReprise/WrothAM/Signs/Spread2", "산개 2"); + AddEntry("Content/Ultimate/UltDragonsongReprise/WrothAM/Signs/Spread3", "산개 3"); + AddEntry("Content/Ultimate/UltDragonsongReprise/WrothAM/Signs/Spread4", "산개 4"); + AddEntry("Content/Ultimate/UltDragonsongReprise/WrothAM/Prio", "우선 순위 설정"); + AddEntry("Content/Ultimate/UltDragonsongReprise/WrothAM/Test", "할당 테스트 (우선 순위 고려)"); + AddEntry("Content/Ultimate/UltOmegaProtocol", "절 오메가 검증전"); + AddEntry("Content/Ultimate/UltOmegaProtocol/Enabled", "활성화"); + AddEntry("Content/Ultimate/UltOmegaProtocol/ChibiOmega", "(1 페이즈/3 페이즈) 오메가 크기 줄이기"); + AddEntry("Content/Ultimate/UltOmegaProtocol/ChibiOmega/Enabled", "활성화"); + AddEntry("Content/Ultimate/UltOmegaProtocol/ChibiOmega/ApplyP1", "1 페이즈 오메가에 적용"); + AddEntry("Content/Ultimate/UltOmegaProtocol/ChibiOmega/SizeP1", "1 페이즈 오메가 크기:"); + AddEntry("Content/Ultimate/UltOmegaProtocol/ChibiOmega/ApplyP3", "3 페이즈 오메가에 적용"); + AddEntry("Content/Ultimate/UltOmegaProtocol/ChibiOmega/SizeP3", "3 페이즈 오메가 크기:"); + AddEntry("Content/Ultimate/UltOmegaProtocol/ProgramLoopAM", "(1 페이즈) 순환 프로그램 오토마커"); + AddEntry("Content/Ultimate/UltOmegaProtocol/ProgramLoopAM/Enabled", "활성화"); + AddEntry("Content/Ultimate/UltOmegaProtocol/ProgramLoopAM/SelfMarkOnly", "나에게만 징 달기"); + AddEntry("Content/Ultimate/UltOmegaProtocol/ProgramLoopAM/AsSoftmarker", "클라이언트 측의 소프트 마커 사용하기"); + AddEntry("Content/Ultimate/UltOmegaProtocol/ProgramLoopAM/Signs", "마커 설정"); + AddEntry("Content/Ultimate/UltOmegaProtocol/ProgramLoopAM/Signs/Tower1", "다음 타워 1"); + AddEntry("Content/Ultimate/UltOmegaProtocol/ProgramLoopAM/Signs/Tower2", "다음 타워 2"); + AddEntry("Content/Ultimate/UltOmegaProtocol/ProgramLoopAM/Signs/Tether1", "다음 블래스터 1"); + AddEntry("Content/Ultimate/UltOmegaProtocol/ProgramLoopAM/Signs/Tether2", "다음 블래스터 2"); + AddEntry("Content/Ultimate/UltOmegaProtocol/ProgramLoopAM/Prio", "우선 순위 설정"); + AddEntry("Content/Ultimate/UltOmegaProtocol/ProgramLoopAM/Test", "랜덤 할당 테스트"); + AddEntry("Content/Ultimate/UltOmegaProtocol/PantokratorAM", "(1 페이즈) 전지전능 오토마커"); + AddEntry("Content/Ultimate/UltOmegaProtocol/PantokratorAM/Enabled", "활성화"); + AddEntry("Content/Ultimate/UltOmegaProtocol/PantokratorAM/SelfMarkOnly", "나에게만 징 달기"); + AddEntry("Content/Ultimate/UltOmegaProtocol/PantokratorAM/AsSoftmarker", "클라이언트 측의 소프트 마커 사용하기"); + AddEntry("Content/Ultimate/UltOmegaProtocol/PantokratorAM/Signs", "마커 설정"); + AddEntry("Content/Ultimate/UltOmegaProtocol/PantokratorAM/Signs/Beam1", "다음 파동포 1"); + AddEntry("Content/Ultimate/UltOmegaProtocol/PantokratorAM/Signs/Beam2", "다음 파통포 2"); + AddEntry("Content/Ultimate/UltOmegaProtocol/PantokratorAM/Signs/Missile1", "다음 미사일 1"); + AddEntry("Content/Ultimate/UltOmegaProtocol/PantokratorAM/Signs/Missile2", "다음 미사일 2"); + AddEntry("Content/Ultimate/UltOmegaProtocol/PantokratorAM/Prio", "우선 순위 설정"); + AddEntry("Content/Ultimate/UltOmegaProtocol/PantokratorAM/Test", "랜덤 할당 테스트"); + AddEntry("Content/Ultimate/UltOmegaProtocol/GlitchTether", "(2 페이즈/5 페이즈) 붙어라/멀어져라 거리 인디케이터"); + AddEntry("Content/Ultimate/UltOmegaProtocol/GlitchTether/Enabled", "활성화"); + AddEntry("Content/Ultimate/UltOmegaProtocol/GlitchTether/TetherOkColor", "안전권 내의 색"); + AddEntry("Content/Ultimate/UltOmegaProtocol/GlitchTether/TetherSafeColor", "안전한 거리의 색"); + AddEntry("Content/Ultimate/UltOmegaProtocol/GlitchTether/TetherNokColor", "틀린 거리의 색"); + AddEntry("Content/Ultimate/UltOmegaProtocol/GlitchTether/Test", "가까운 전투 대상에게 랜덤으로 선을 할당하여 테스트"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM", "(2 페이즈) 파티 시너지 오토마커"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Enabled", "활성화"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/SelfMarkOnly", "나에게만 징 달기"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/AsSoftmarker", "클라이언트 측의 소프트 마커 사용하기"); //AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs", "Marker configuration for Remote Glitch"); //AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs/Presets/BPOG - GPOB", "BPOG - GPOB"); //AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs/Presets/BPOG - GOPB", "BPOG - GOPB"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs/CrossL", "Cross (left)"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs/CrossR", "Cross (right)"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs/SquareL", "Square (left)"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs/SquareR", "Square (right)"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs/CircleL", "Circle (left)"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs/CircleR", "Circle (right)"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs/TriangleL", "Triangle (left)"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs/TriangleR", "Triangle (right)"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs/CrossL", "엑스 (왼쪽)"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs/CrossR", "엑스 (오른쪽)"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs/SquareL", "네모 (왼쪽)"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs/SquareR", "네모 (오른쪽)"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs/CircleL", "동그라미 (왼쪽)"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs/CircleR", "동그라미 (오른쪽)"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs/TriangleL", "세모 (왼쪽)"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs/TriangleR", "세모 (오른쪽)"); //AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs2", "Marker configuration for Mid Glitch"); //AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs2/Presets/BPOG - BPOG", "BPOG - BPOG"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs2/CrossL", "Cross (left)"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs2/CrossR", "Cross (right)"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs2/SquareL", "Square (left)"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs2/SquareR", "Square (right)"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs2/CircleL", "Circle (left)"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs2/CircleR", "Circle (right)"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs2/TriangleL", "Triangle (left)"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs2/TriangleR", "Triangle (right)"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Prio", "Priority configuration"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Test", "Test random assignment"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs2/CrossL", "엑스 (왼쪽)"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs2/CrossR", "엑스 (오른쪽)"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs2/SquareL", "네모 (왼쪽)"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs2/SquareR", "네모 (오른쪽)"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs2/CircleL", "동그라미 (왼쪽)"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs2/CircleR", "동그라미 (오른쪽)"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs2/TriangleL", "세모 (왼쪽)"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Signs2/TriangleR", "세모 (오른쪽)"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Prio", "우선 순위 설정"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P2SynergyAM/Test", "랜덤 할당 테스트"); //AddEntry("Content/Ultimate/UltOmegaProtocol/P3TransitionAM", "(P3) Transition automarker"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P3TransitionAM/Enabled", "Enabled"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P3TransitionAM/SelfMarkOnly", "Self-marking only"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P3TransitionAM/AsSoftmarker", "Show as client-side soft markers"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P3TransitionAM/Signs", "Marker configuration"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P3TransitionAM/Signs/Stack1_1", "Stack 1 (marked)"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P3TransitionAM/Signs/Stack1_2", "Stack 1 (unmarked)"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P3TransitionAM/Signs/Stack2_1", "Stack 2 (marked)"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P3TransitionAM/Signs/Stack2_2", "Stack 2 (unmarked)"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P3TransitionAM/Signs/Spread1", "Spread 1"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P3TransitionAM/Signs/Spread2", "Spread 2"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P3TransitionAM/Signs/Spread3", "Spread 3"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P3TransitionAM/Signs/Spread4", "Spread 4"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P3TransitionAM/Prio", "Priority configuration"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P3TransitionAM/Test", "Test random assignment"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P3MonitorAM", "(P3) Monitor automarker"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P3MonitorAM/Enabled", "Enabled"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P3MonitorAM/SelfMarkOnly", "Self-marking only"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P3MonitorAM/AsSoftmarker", "Show as client-side soft markers"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P3MonitorAM/Signs", "Marker configuration"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P3MonitorAM/Signs/Monitor1", "Monitor 1"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P3MonitorAM/Signs/Monitor2", "Monitor 2"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P3MonitorAM/Signs/Monitor3", "Monitor 3"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P3MonitorAM/Signs/None1", "Unmarked 1"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P3MonitorAM/Signs/None2", "Unmarked 2"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P3MonitorAM/Signs/None3", "Unmarked 3"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P3MonitorAM/Signs/None4", "Unmarked 4"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P3MonitorAM/Signs/None5", "Unmarked 5"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P3MonitorAM/Prio", "Priority configuration"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/P3MonitorAM/Test", "Test random assignment"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/HelloWorldDrawBossMonitor", "(P3) Highlight boss monitor"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/HelloWorldDrawBossMonitor/Enabled", "Enabled"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/HelloWorldDrawBossMonitor/HighlightColor", "Highlight color"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/HelloWorldDrawBossMonitor/Test", "Test overlay"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisDeltaAM", "(P5) Run: ****mi* (Delta Version) automarker"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisDeltaAM/Enabled", "Enabled"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisDeltaAM/SelfMarkOnly", "Self-marking only"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisDeltaAM/AsSoftmarker", "Show as client-side soft markers"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisDeltaAM/Signs", "Marker configuration"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P3TransitionAM/Enabled", "활성화"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P3TransitionAM/SelfMarkOnly", "나에게만 징 달기"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P3TransitionAM/AsSoftmarker", "클라이언트 측의 소프트 마커 사용하기"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P3TransitionAM/Signs", "마커 설정"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P3TransitionAM/Signs/Stack1_1", "쉐어 1 (디버프 있음)"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P3TransitionAM/Signs/Stack1_2", "쉐어 1 (디버프 없음)"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P3TransitionAM/Signs/Stack2_1", "쉐어 2 (디버프 있음)"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P3TransitionAM/Signs/Stack2_2", "쉐어 2 (디버프 없음)"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P3TransitionAM/Signs/Spread1", "산개 1"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P3TransitionAM/Signs/Spread2", "산개 2"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P3TransitionAM/Signs/Spread3", "산개 3"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P3TransitionAM/Signs/Spread4", "산개 4"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P3TransitionAM/Prio", "우선 순위 설정"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P3TransitionAM/Test", "랜덤 할당 테스트"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P3MonitorAM", "(3 페이즈) 모니터 오토마커"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P3MonitorAM/Enabled", "활성화"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P3MonitorAM/SelfMarkOnly", "나에게만 징 달기"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P3MonitorAM/AsSoftmarker", "클라이언트 측의 소프트 마커 사용하기"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P3MonitorAM/Signs", "마커 설정"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P3MonitorAM/Signs/Monitor1", "모니터 1"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P3MonitorAM/Signs/Monitor2", "모니터 2"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P3MonitorAM/Signs/Monitor3", "모니터 3"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P3MonitorAM/Signs/None1", "무징 1"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P3MonitorAM/Signs/None2", "무징 2"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P3MonitorAM/Signs/None3", "무징 3"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P3MonitorAM/Signs/None4", "무징 4"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P3MonitorAM/Signs/None5", "무징 5"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P3MonitorAM/Prio", "우선 순위 설정"); + AddEntry("Content/Ultimate/UltOmegaProtocol/P3MonitorAM/Test", "랜덤 할당 테스트"); + AddEntry("Content/Ultimate/UltOmegaProtocol/HelloWorldDrawBossMonitor", "(3 페이즈) 보스 모니터 강조"); + AddEntry("Content/Ultimate/UltOmegaProtocol/HelloWorldDrawBossMonitor/Enabled", "활성화"); + AddEntry("Content/Ultimate/UltOmegaProtocol/HelloWorldDrawBossMonitor/HighlightColor", "강조색"); + AddEntry("Content/Ultimate/UltOmegaProtocol/HelloWorldDrawBossMonitor/Test", "오버레이 테스트"); + AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisDeltaAM", "(5 페이즈) 코드:**미* (델타) 오토마커"); + AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisDeltaAM/Enabled", "활성화"); + AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisDeltaAM/SelfMarkOnly", "나에게만 징 달기"); + AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisDeltaAM/AsSoftmarker", "클라이언트 측의 소프트 마커 사용하기"); + AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisDeltaAM/Signs", "마커 설정"); //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisDeltaAM/Signs/Presets/LPDU", "LPDU / Sausage"); //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisDeltaAM/Signs/Presets/ElementalDC", "Elemental DC"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisDeltaAM/Signs/DistantWorld", "Distant World"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisDeltaAM/Signs/NearWorld", "Near World"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisDeltaAM/Test", "Test random assignment"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisDeltaDrawBossMonitor", "(P5) Run: ****mi* (Delta Version) highlight boss monitor"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisDeltaDrawBossMonitor/Enabled", "Enabled"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisDeltaDrawBossMonitor/HighlightColor", "Highlight color"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisDeltaDrawBossMonitor/Test", "Test overlay"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisSigmaAM", "(P5) Run: ****mi* (Sigma Version) automarker"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisSigmaAM/Enabled", "Enabled"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisSigmaAM/SelfMarkOnly", "Self-marking only"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisSigmaAM/AsSoftmarker", "Show as client-side soft markers"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisSigmaAM/Signs", "Marker configuration"); + AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisDeltaAM/Signs/DistantWorld", "헬로월드: 원거리"); + AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisDeltaAM/Signs/NearWorld", "헬로월드: 근거리"); + AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisDeltaAM/Test", "랜덤 할당 테스트"); + AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisDeltaDrawBossMonitor", "(5 페이즈) 코드:**미* (델타) 보스 모니터 강조"); + AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisDeltaDrawBossMonitor/Enabled", "활성화"); + AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisDeltaDrawBossMonitor/HighlightColor", "강조색"); + AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisDeltaDrawBossMonitor/Test", "오버레이 테스트"); + AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisSigmaAM", "(P5) 코드: **미* (시그마) 오토마커"); + AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisSigmaAM/Enabled", "활성화"); + AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisSigmaAM/SelfMarkOnly", "나에게만 징 달기"); + AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisSigmaAM/AsSoftmarker", "클라이언트 측의 소프트 마커 사용하기"); + AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisSigmaAM/Signs", "마커 설정"); //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisSigmaAM/Signs/Presets/LPDU", "LPDU / Sausage"); //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisSigmaAM/Signs/Presets/ElementalDC", "Elemental DC"); //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisSigmaAM/Signs/Arm1", "Arm Bait 1"); //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisSigmaAM/Signs/Arm2", "Arm Bait 2"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisSigmaAM/Signs/DistantWorld", "Distant World"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisSigmaAM/Signs/NearWorld", "Near World"); + AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisSigmaAM/Signs/DistantWorld", "핼로월드: 원거리"); + AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisSigmaAM/Signs/NearWorld", "핼로월드: 근거리"); //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisSigmaAM/Signs/DistantFarBait", "Distant Far Bait"); //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisSigmaAM/Signs/DistantCloseBait", "Distant Close Bait"); //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisSigmaAM/Signs/NearBait1", "Near World Bait 1"); //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisSigmaAM/Signs/NearBait2", "Near World Bait 2"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisSigmaAM/Prio", "Priority configuration"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisSigmaAM/Test", "Test random assignment"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisOmegaAM", "(P5) Run: ****mi* (Omega Version) automarker"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisOmegaAM/Enabled", "Enabled"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisOmegaAM/SelfMarkOnly", "Self-marking only"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisOmegaAM/AsSoftmarker", "Show as client-side soft markers"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisOmegaAM/Signs", "Marker configuration"); + AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisSigmaAM/Prio", "우선 순위 설정"); + AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisSigmaAM/Test", "랜덤 할당 테스트"); + AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisOmegaAM", "(5 페이즈) 코드: **미* (오메가) 오토마커"); + AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisOmegaAM/Enabled", "활성화"); + AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisOmegaAM/SelfMarkOnly", "나에게만 징 달기"); + AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisOmegaAM/AsSoftmarker", "클라이언트 측의 소프트 마커 사용하기"); + AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisOmegaAM/Signs", "마커 설정"); //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisOmegaAM/Signs/Presets/LPDU", "LPDU / Sausage"); //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisOmegaAM/Signs/Monitor1", "Monitor / Tether 1"); //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisOmegaAM/Signs/Monitor2", "Monitor / Tether 2"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisOmegaAM/Signs/DistantWorld", "Distant World"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisOmegaAM/Signs/NearWorld", "Near World"); + AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisOmegaAM/Signs/DistantWorld", "핼로월드: 원거리"); + AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisOmegaAM/Signs/NearWorld", "핼로월드: 근거리"); //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisOmegaAM/Signs/Bait1", "Bait 1"); //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisOmegaAM/Signs/Bait2", "Bait 2"); //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisOmegaAM/Signs/Bait3", "Bait 3"); //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisOmegaAM/Signs/Bait4", "Bait 4"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisOmegaAM/Prio", "Priority configuration"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisOmegaAM/Test", "Test random assignment"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisOmegaDrawBossMonitor", "(P5) Run: ****mi* (Omega Version) highlight boss monitor"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisOmegaDrawBossMonitor/Enabled", "Enabled"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisOmegaDrawBossMonitor/HighlightColor", "Highlight color"); - //AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisOmegaDrawBossMonitor/Test", "Test overlay"); + AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisOmegaAM/Prio", "우선 순위 설정"); + AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisOmegaAM/Test", "랜덤 할당 테스트"); + AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisOmegaDrawBossMonitor", "(5 페이즈) 코드: **미* (오메가) 보스 모니터 강조"); + AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisOmegaDrawBossMonitor/Enabled", "활성화"); + AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisOmegaDrawBossMonitor/HighlightColor", "강조색"); + AddEntry("Content/Ultimate/UltOmegaProtocol/DynamisOmegaDrawBossMonitor/Test", "오버레이 테스트"); #endregion #region RSV abilities //AddEntry("RSV/Ability_33127", "Front Combination"); @@ -1089,4 +1089,4 @@ public Korean(State st) : base(st) } -} +} \ No newline at end of file diff --git a/Lemegeton/Plugin.cs b/Lemegeton/Plugin.cs index 2346fe1..54c4038 100644 --- a/Lemegeton/Plugin.cs +++ b/Lemegeton/Plugin.cs @@ -54,7 +54,7 @@ public sealed class Plugin : IDalamudPlugin #else public string Name => "Lemegeton"; #endif - public string Version = "1.0.2.2"; + public string Version = "1.0.2.3"; internal class Downloadable { @@ -102,6 +102,8 @@ internal class ActionTypeItem private bool _newNotifications = false; private int _ttsCounter = 1; + private List _lastEncounters = new List(); + private bool _movingShortcut = false; private Vector2 _movingMouse; @@ -1678,6 +1680,17 @@ internal string GetActionName(uint key) return name; } + internal string GetStatusName(uint key) + { + Lumina.Excel.GeneratedSheets.Status a = _state.dm.Excel.GetSheet().GetRow(key); + string name = Capitalize(a.Name); + if (name.Contains("_rsv_") == true) + { + name = I18n.Translate(String.Format("RSV/Status_{0}", key)); + } + return name; + } + private string GetFullNameForTimelineEntry(Timeline.Entry e) { if (e.CachedName == null)