diff --git a/RotationSolver.Basic/Actions/BaseAction_ActionInfo.cs b/RotationSolver.Basic/Actions/BaseAction_ActionInfo.cs
index 7b1cf79f5..81c8a177b 100644
--- a/RotationSolver.Basic/Actions/BaseAction_ActionInfo.cs
+++ b/RotationSolver.Basic/Actions/BaseAction_ActionInfo.cs
@@ -116,7 +116,7 @@ public unsafe virtual bool CanUse(out IAction act, CanUseOption option = CanUseO
if (!Service.Config.GetValue(PluginConfigBool.UseResourcesAction) && _option.HasFlag(ActionOption.UseResources)) return false;
- if (ConfigurationHelper.BadStatus.Contains(ActionManager.Instance()->GetActionStatus(ActionType.Spell, AdjustedID)))
+ if (ConfigurationHelper.BadStatus.Contains(ActionManager.Instance()->GetActionStatus(ActionType.Action, AdjustedID)))
return false;
if (!EnoughLevel) return false;
@@ -218,7 +218,7 @@ public unsafe bool Use()
{
var loc = new FFXIVClientStructs.FFXIV.Common.Math.Vector3() { X = Position.X, Y = Position.Y, Z = Position.Z };
- return ActionManager.Instance()->UseActionLocation(ActionType.Spell, ID, Player.Object.ObjectId, &loc);
+ return ActionManager.Instance()->UseActionLocation(ActionType.Action, ID, Player.Object.ObjectId, &loc);
}
else if(Svc.Objects.SearchById(_targetId) == null)
{
@@ -226,7 +226,7 @@ public unsafe bool Use()
}
else
{
- return ActionManager.Instance()->UseAction(ActionType.Spell, adjustId, _targetId);
+ return ActionManager.Instance()->UseAction(ActionType.Action, adjustId, _targetId);
}
}
}
diff --git a/RotationSolver.Basic/Actions/BaseAction_BasicInfo.cs b/RotationSolver.Basic/Actions/BaseAction_BasicInfo.cs
index 225138898..4b1b353ac 100644
--- a/RotationSolver.Basic/Actions/BaseAction_BasicInfo.cs
+++ b/RotationSolver.Basic/Actions/BaseAction_BasicInfo.cs
@@ -152,7 +152,7 @@ public bool IsInCooldown
///
/// Casting time.
///
- public unsafe float CastTime => ActionManager.GetAdjustedCastTime(ActionType.Spell, AdjustedID) / 1000f;
+ public unsafe float CastTime => ActionManager.GetAdjustedCastTime(ActionType.Action, AdjustedID) / 1000f;
///
/// Action Positional.
@@ -176,7 +176,7 @@ public virtual unsafe uint MPNeed
{
get
{
- var mp = (uint)ActionManager.GetActionCost(ActionType.Spell, AdjustedID, 0, 0, 0, 0);
+ var mp = (uint)ActionManager.GetActionCost(ActionType.Action, AdjustedID, 0, 0, 0, 0);
if (mp < 100) return 0;
return mp;
}
diff --git a/RotationSolver.Basic/Actions/BaseAction_Cooldown.cs b/RotationSolver.Basic/Actions/BaseAction_Cooldown.cs
index 3e7bf2938..73468765e 100644
--- a/RotationSolver.Basic/Actions/BaseAction_Cooldown.cs
+++ b/RotationSolver.Basic/Actions/BaseAction_Cooldown.cs
@@ -97,7 +97,7 @@ public bool WillHaveOneCharge(float remain)
///
///
[EditorBrowsable(EditorBrowsableState.Never)]
- public float RecastTimeOneChargeRaw => ActionManager.GetAdjustedRecastTime(ActionType.Spell, AdjustedID) / 1000f;
+ public float RecastTimeOneChargeRaw => ActionManager.GetAdjustedRecastTime(ActionType.Action, AdjustedID) / 1000f;
///
///
diff --git a/RotationSolver.Basic/DataCenter.cs b/RotationSolver.Basic/DataCenter.cs
index 919d19569..072592272 100644
--- a/RotationSolver.Basic/DataCenter.cs
+++ b/RotationSolver.Basic/DataCenter.cs
@@ -369,7 +369,7 @@ internal static unsafe void AddActionRec(Action act)
case ActionCate.Spell:
case ActionCate.WeaponSkill:
LastAction = LastGCD = id;
- if (ActionManager.GetAdjustedCastTime(ActionType.Spell, (uint)id) == 0)
+ if (ActionManager.GetAdjustedCastTime(ActionType.Action, (uint)id) == 0)
{
FetchTime = WeaponElapsed;
}
diff --git a/RotationSolver/Localization/Localization.json b/RotationSolver/Localization/Localization.json
index 85af0724e..56c5c3146 100644
--- a/RotationSolver/Localization/Localization.json
+++ b/RotationSolver/Localization/Localization.json
@@ -421,6 +421,7 @@
"ConfigWindow_About_Macros": "Macros",
"ConfigWindow_About_Links": "Links",
"ConfigWindow_About_Compatibility": "Compatibility",
+ "ConfigWindow_About_Supporters": "Supporters",
"ConfigWindow_About_Compatibility_Description": "Literally, Rotation Solver helps you to choose the target and then click the action. So any plugin that changes these will affect its decision.\n\nHere is a list of known incompatible plugins:",
"ConfigWindow_About_Compatibility_Others": "Please don't relog without closing the game. Crashes may occur.",
"ConfigWindow_About_Compatibility_Mistake": "Can't properly execute the behavior that RS wants to do.",
@@ -528,5 +529,6 @@
"ConfigWindow_Basic_SayHelloToUsersDesc": "It can only be disabled for users, not authors and contributors.\nIf you want to be greeted by other users, please DM ArchiTed in Discord Server with your Hash!",
"ConfigWindow_Basic_JustSayHelloOnce": "Just say hello once to the same user.",
"ConfigWindow_About_Clicking100k": "Well, you must be a lazy player!",
- "ConfigWindow_About_Clicking500k": "You're tiring RS out, give it a break!"
+ "ConfigWindow_About_Clicking500k": "You're tiring RS out, give it a break!",
+ "ConfigWindow_About_ThanksToSupporters": "Many thanks to the sponsors."
}
\ No newline at end of file
diff --git a/RotationSolver/UI/RotationConfigWindow.cs b/RotationSolver/UI/RotationConfigWindow.cs
index 57b52ecaf..2521c8f04 100644
--- a/RotationSolver/UI/RotationConfigWindow.cs
+++ b/RotationSolver/UI/RotationConfigWindow.cs
@@ -1207,7 +1207,7 @@ private static unsafe void DrawActions()
{
#if DEBUG
ImGui.Text("Is Real GCD: " + action.IsRealGCD.ToString());
- ImGui.Text("Status: " + FFXIVClientStructs.FFXIV.Client.Game.ActionManager.Instance()->GetActionStatus(FFXIVClientStructs.FFXIV.Client.Game.ActionType.Spell, action.AdjustedID).ToString());
+ ImGui.Text("Status: " + FFXIVClientStructs.FFXIV.Client.Game.ActionManager.Instance()->GetActionStatus(FFXIVClientStructs.FFXIV.Client.Game.ActionType.Action, action.AdjustedID).ToString());
ImGui.Text("Cast Time: " + action.CastTime.ToString());
ImGui.Text("MP: " + action.MPNeed.ToString());
#endif
diff --git a/RotationSolver/Updaters/ActionUpdater.cs b/RotationSolver/Updaters/ActionUpdater.cs
index 5e0719191..f0129a5c1 100644
--- a/RotationSolver/Updaters/ActionUpdater.cs
+++ b/RotationSolver/Updaters/ActionUpdater.cs
@@ -160,11 +160,11 @@ private static unsafe void UpdateWeaponTime()
var castTotal = player.TotalCastTime;
- var weaponTotal = instance->GetRecastTime(ActionType.Spell, 11);
+ var weaponTotal = instance->GetRecastTime(ActionType.Action, 11);
if (castTotal > 0) castTotal += 0.1f;
if (player.IsCasting) weaponTotal = Math.Max(castTotal, weaponTotal);
- DataCenter.WeaponElapsed = instance->GetRecastTimeElapsed(ActionType.Spell, 11);
+ DataCenter.WeaponElapsed = instance->GetRecastTimeElapsed(ActionType.Action, 11);
DataCenter.WeaponRemain = DataCenter.WeaponElapsed == 0 ? player.TotalCastTime - player.CurrentCastTime
: Math.Max(weaponTotal - DataCenter.WeaponElapsed, player.TotalCastTime - player.CurrentCastTime);
diff --git a/RotationSolver/Updaters/MajorUpdater.cs b/RotationSolver/Updaters/MajorUpdater.cs
index f489f65e1..1445ac52f 100644
--- a/RotationSolver/Updaters/MajorUpdater.cs
+++ b/RotationSolver/Updaters/MajorUpdater.cs
@@ -45,8 +45,8 @@ private unsafe static void FrameworkUpdate(IFramework framework)
{
_showed = true;
- var warning = "Rotation Solver 未进行国服适配并不提供相关支持! 建议使用国服的插件,如";
- Svc.Toasts.ShowError(warning + "AE Assist 2.0");
+ var warning = "Rotation Solver 未进行国服适配并不提供相关支持! 建议使用国服的插件,如:";
+ Svc.Toasts.ShowError(warning + "AE Assist 2.0!");
var seString = new SeString(new TextPayload(warning)
, Svc.PluginInterface.AddChatLinkHandler(2, (id, str) =>
@@ -56,8 +56,11 @@ private unsafe static void FrameworkUpdate(IFramework framework)
Util.OpenLink("http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=EyT0BfZWCVq8v2yiMjSqcb4lEqYuaF_P&authKey=UJFoVZ3OljlBhSilXpeLKIIzofI4ZUjJfjuqCgr%2BiaT3Y6HmQFVbXZ5xBOlSv5yZ&noverify=0&group_code=552689154");
}
}),
+ new UIForegroundPayload(31),
new TextPayload("AE Assist 2.0"),
- RawPayload.LinkTerminator);
+ UIForegroundPayload.UIForegroundOff,
+ RawPayload.LinkTerminator,
+ new TextPayload("!"));
Svc.Chat.Print(new Dalamud.Game.Text.XivChatEntry()
{
@@ -71,7 +74,7 @@ private unsafe static void FrameworkUpdate(IFramework framework)
SocialUpdater.UpdateSocial();
PreviewUpdater.UpdatePreview();
- if (Service.Config.GetValue(PluginConfigBool.TeachingMode) && ActionUpdater.NextAction!= null)
+ if (Service.Config.GetValue(PluginConfigBool.TeachingMode) && ActionUpdater.NextAction != null)
{
//Sprint action id is 3 however the id in hot bar is 4.
var id = ActionUpdater.NextAction.AdjustedID;
@@ -79,7 +82,7 @@ private unsafe static void FrameworkUpdate(IFramework framework)
}
ActionUpdater.UpdateActionInfo();
- var canDoAction = ActionUpdater.CanDoAction();
+ var canDoAction = ActionUpdater.CanDoAction();
MovingUpdater.UpdateCanMove(canDoAction);
if (canDoAction)
{
@@ -93,7 +96,7 @@ private unsafe static void FrameworkUpdate(IFramework framework)
}
catch (Exception ex)
{
- if(_threadException != ex)
+ if (_threadException != ex)
{
_threadException = ex;
Svc.Log.Error(ex, "Main Thread Exception");
diff --git a/RotationSolver/Updaters/MovingUpdater.cs b/RotationSolver/Updaters/MovingUpdater.cs
index 566a1e41c..5289a6526 100644
--- a/RotationSolver/Updaters/MovingUpdater.cs
+++ b/RotationSolver/Updaters/MovingUpdater.cs
@@ -59,7 +59,7 @@ internal unsafe static void UpdateCanMove(bool doNextAction)
? (ActionID)RSCommands._lastActionID
: doNextAction ? (ActionID)(ActionUpdater.NextAction?.AdjustedID ?? 0) : 0;
- var specialActions = ActionManager.GetAdjustedCastTime(ActionType.Spell, (uint)action) > 0
+ var specialActions = ActionManager.GetAdjustedCastTime(ActionType.Action, (uint)action) > 0
|| actionList.Any(id => Service.GetAdjustedActionId(id) == action);
//Status
diff --git a/RotationSolver/Updaters/PreviewUpdater.cs b/RotationSolver/Updaters/PreviewUpdater.cs
index e093af4b2..54ab3fb4a 100644
--- a/RotationSolver/Updaters/PreviewUpdater.cs
+++ b/RotationSolver/Updaters/PreviewUpdater.cs
@@ -15,7 +15,7 @@ internal static class PreviewUpdater
{
internal static void UpdatePreview()
{
- UpdateEntry();
+ //UpdateEntry();
UpdateCancelCast();
}
diff --git a/RotationSolver/Watcher.cs b/RotationSolver/Watcher.cs
index bec4f6091..02dad5153 100644
--- a/RotationSolver/Watcher.cs
+++ b/RotationSolver/Watcher.cs
@@ -80,7 +80,7 @@ private static void ActionFromEnemy(ActionEffectSet set)
}
}
- if (set.Header.ActionType == ActionType.Spell && DataCenter.PartyMembers.Count() >= 4 && set.Action.Cast100ms > 0)
+ if (set.Header.ActionType == ActionType.Action && DataCenter.PartyMembers.Count() >= 4 && set.Action.Cast100ms > 0)
{
var type = set.Action.GetActionCate();
@@ -92,7 +92,7 @@ private static void ActionFromEnemy(ActionEffectSet set)
&& (effect.value > 0 || (effect.param0 & 6) == 6))
== DataCenter.PartyMembers.Count())
{
- if (Service.Config.GetValue(Basic.Configuration.PluginConfigBool.RecordCastingArea))
+ if (Service.Config.GetValue(PluginConfigBool.RecordCastingArea))
{
OtherConfiguration.HostileCastingArea.Add(set.Action.RowId);
OtherConfiguration.SaveHostileCastingArea();
@@ -105,7 +105,7 @@ private static void ActionFromEnemy(ActionEffectSet set)
private static void ActionFromSelf(ActionEffectSet set)
{
if (set.Source.ObjectId != Player.Object.ObjectId) return;
- if (set.Header.ActionType != ActionType.Spell && set.Header.ActionType != ActionType.Item) return;
+ if (set.Header.ActionType != ActionType.Action && set.Header.ActionType != ActionType.Item) return;
if (set.Action == null) return;
if ((ActionCate)set.Action.ActionCategory.Value.RowId == ActionCate.AutoAttack) return;