Merge branch 'main' into d-v3

This commit is contained in:
辉鸭蛋
2025-09-21 14:15:20 +08:00
5 changed files with 40 additions and 51 deletions

View File

@@ -67,7 +67,9 @@ public partial class App : Application
.WriteTo.File(logFile,
outputTemplate:
"[{Timestamp:HH:mm:ss.fff}] [{Level:u3}] {SourceContext}{NewLine}{Message}{NewLine}{Exception}{NewLine}",
rollingInterval: RollingInterval.Day)
rollingInterval: RollingInterval.Day,
retainedFileCountLimit: 31,
retainedFileTimeLimit: TimeSpan.FromDays(21))
.WriteTo.Console(outputTemplate:
"[{Timestamp:HH:mm:ss} {Level:u3}] {Message:lj}{NewLine}{Exception}")
.MinimumLevel.Debug()

View File

@@ -40,6 +40,8 @@ public class AutoFightTask : ISoloTask
private readonly double _dpi = TaskContext.Instance().DpiScale;
public static OtherConfig Config { get; set; } = TaskContext.Instance().Config.OtherConfig;
public static bool FightStatusFlag { get; set; } = false;
private class TaskFightFinishDetectConfig
{
@@ -287,6 +289,8 @@ public class AutoFightTask : ISoloTask
{
try
{
FightStatusFlag = true;
while (!cts2.Token.IsCancellationRequested)
{
// 所有战斗角色都可以被取消
@@ -442,6 +446,7 @@ public class AutoFightTask : ISoloTask
finally
{
Simulation.ReleaseAllKey();
FightStatusFlag = false;
}
}, cts2.Token);

View File

@@ -94,6 +94,7 @@ public class Avatar
NameRect = nameRect;
CombatAvatar = DefaultAutoFightConfig.CombatAvatarMap[name];
ManualSkillCd = manualSkillCd;
AutoFightTask.FightStatusFlag = false;
}
@@ -291,7 +292,7 @@ public class Avatar
private void Offset60Fix(int i)
{
// 3次失败考虑是否偏移出现问题修改偏移位置
if (i <= 2)
if (i <= 2 || AutoFightTask.FightStatusFlag)
{
return;
}
@@ -300,18 +301,18 @@ public class Avatar
{
foreach (var avatar in CombatScenes.GetAvatars())
{
var rect1 = avatar.IndexRect;
rect1.Y += 14;
var originalRect = AutoFightAssets.Instance.AvatarIndexRectList[avatar.Index - 1];
var rect1 = new Rect(originalRect.X, originalRect.Y, originalRect.Width, originalRect.Height);
avatar.IndexRect = rect1;
}
CombatScenes.IndexRectOffset60Fix = false;
}
else
{
foreach (var avatar in CombatScenes.GetAvatars())
{
var rect1 = avatar.IndexRect;
var originalRect = AutoFightAssets.Instance.AvatarIndexRectList[avatar.Index - 1];
var rect1 = new Rect(originalRect.X, originalRect.Y, originalRect.Width, originalRect.Height);
rect1.Y -= 14;
avatar.IndexRect = rect1;
}

View File

@@ -96,15 +96,15 @@ public class CombatScenes : IDisposable
Logger.LogInformation("当前处于联机状态,且在别人世界中,联机人数{Num}人", num);
}
avatarSideIconRectList = AutoFightAssets.Instance.AvatarSideIconRectListMap[$"{p}_{num}"];
avatarIndexRectList = AutoFightAssets.Instance.AvatarIndexRectListMap[$"{p}_{num}"];
avatarSideIconRectList = new List<Rect>(AutoFightAssets.Instance.AvatarSideIconRectListMap[$"{p}_{num}"]);
avatarIndexRectList = new List<Rect>(AutoFightAssets.Instance.AvatarIndexRectListMap[$"{p}_{num}"]);
ExpectedTeamAvatarNum = avatarSideIconRectList.Count;
}
else
{
avatarSideIconRectList = AutoFightAssets.Instance.AvatarSideIconRectList;
avatarIndexRectList = AutoFightAssets.Instance.AvatarIndexRectList;
avatarSideIconRectList = new List<Rect>(AutoFightAssets.Instance.AvatarSideIconRectList);
avatarIndexRectList = new List<Rect>(AutoFightAssets.Instance.AvatarIndexRectList);
}
// 6.0 版本 队伍下的 草露 进度条 导致位置偏移
@@ -158,7 +158,7 @@ public class CombatScenes : IDisposable
{
// 角色序号 左上角 坐标偏移(+2, -5后存在3个白色点则认为存在 草露 进度条
// 存在 草露 进度条时候整体上移 14 个像素
int whitePointCount = 0;
var whitePointCount = 0;
foreach (var rectIndex in avatarIndexRectList)
{
int x = rectIndex.X + 2;
@@ -170,47 +170,28 @@ public class CombatScenes : IDisposable
}
}
if (whitePointCount >= 3)
if (whitePointCount < 3)
{
Logger.LogInformation("检测到右侧队伍上偏移,进行位置偏移");
for (int i = 0; i < avatarSideIconRectList.Count; i++)
{
var rect = avatarSideIconRectList[i];
rect.Y -= 14;
avatarSideIconRectList[i] = rect;
}
for (int i = 0; i < avatarIndexRectList.Count; i++)
{
var rect = avatarIndexRectList[i];
rect.Y -= 14;
avatarIndexRectList[i] = rect;
}
return true;
}
else if (whitePointCount <= 1) //发现有时候识别到一个白点
{
Logger.LogInformation("检测到右侧队伍下偏移,进行位置偏移");
for (int i = 0; i < avatarSideIconRectList.Count; i++)
{
var rect = avatarSideIconRectList[i];
rect.Y += 14;
avatarSideIconRectList[i] = rect;
}
for (int i = 0; i < avatarIndexRectList.Count; i++)
{
var rect = avatarIndexRectList[i];
rect.Y += 14;
avatarIndexRectList[i] = rect;
}
return false;
}
return false;
}
Logger.LogInformation("检测到右侧队伍上偏移,进行位置偏移");
for (var i = 0; i < avatarSideIconRectList.Count; i++)
{
var rect = avatarSideIconRectList[i];
rect.Y -= 14;
avatarSideIconRectList[i] = rect;
}
for (var i = 0; i < avatarIndexRectList.Count; i++)
{
var rect = avatarIndexRectList[i];
rect.Y -= 14;
avatarIndexRectList[i] = rect;
}
return true;
}

View File

@@ -1101,7 +1101,7 @@ public class PathExecutor
return null;
}
var success = avatar.TrySwitch();
var success = avatar.TrySwitch(5);//多切换一次,否则如果切人纠正要等下一个循环
if (success)
{
await Delay(100, ct);