diff --git a/BetterGenshinImpact/GameTask/AutoPathing/Model/Enum/ActionEnum.cs b/BetterGenshinImpact/GameTask/AutoPathing/Model/Enum/ActionEnum.cs index c9f8b9c8..26523d6c 100644 --- a/BetterGenshinImpact/GameTask/AutoPathing/Model/Enum/ActionEnum.cs +++ b/BetterGenshinImpact/GameTask/AutoPathing/Model/Enum/ActionEnum.cs @@ -18,6 +18,7 @@ public class ActionEnum(string code, string msg) public static readonly ActionEnum CombatScript = new("combat_script", "战斗策略脚本"); // 这个必须要 action_params 里面有脚本 public static readonly ActionEnum Mining = new("mining", "挖矿"); + public static readonly ActionEnum LogOutput = new("log_output", "输出日志"); // 还有要加入的其他动作 // 滚轮F diff --git a/BetterGenshinImpact/GameTask/AutoPathing/Model/WaypointForTrack.cs b/BetterGenshinImpact/GameTask/AutoPathing/Model/WaypointForTrack.cs index 7c46626e..54db5dd2 100644 --- a/BetterGenshinImpact/GameTask/AutoPathing/Model/WaypointForTrack.cs +++ b/BetterGenshinImpact/GameTask/AutoPathing/Model/WaypointForTrack.cs @@ -2,6 +2,7 @@ using System; using BetterGenshinImpact.GameTask.AutoFight.Script; using BetterGenshinImpact.GameTask.AutoPathing.Model.Enum; +using System.Diagnostics.Eventing.Reader; namespace BetterGenshinImpact.GameTask.AutoPathing.Model; @@ -22,6 +23,7 @@ public class WaypointForTrack : Waypoint /// 存在 combat_script 的 action 的话,这个值会存在 /// public CombatScript? CombatScript { get; set; } + public string? LogInfo { get; set; } public WaypointForTrack(Waypoint waypoint) { @@ -40,5 +42,9 @@ public class WaypointForTrack : Waypoint { CombatScript = CombatScriptParser.ParseContext(str, false); } + if (waypoint.Action == ActionEnum.LogOutput.Code && waypoint.ActionParams is not null) + { + LogInfo = waypoint.ActionParams; + } } } diff --git a/BetterGenshinImpact/GameTask/AutoPathing/PathExecutor.cs b/BetterGenshinImpact/GameTask/AutoPathing/PathExecutor.cs index 20cbfd62..4beff1ef 100644 --- a/BetterGenshinImpact/GameTask/AutoPathing/PathExecutor.cs +++ b/BetterGenshinImpact/GameTask/AutoPathing/PathExecutor.cs @@ -169,6 +169,10 @@ public class PathExecutor CurWaypoint = (waypoints.FindIndex(wps => wps == waypoint), waypoint); TryCloseSkipOtherOperations(); await RecoverWhenLowHp(waypoint); // 低血量恢复 + if (waypoint.Action == ActionEnum.LogOutput.Code) + { + Logger.LogInformation(waypoint.LogInfo); + } if (waypoint.Type == WaypointType.Teleport.Code) { await HandleTeleportWaypoint(waypoint);