mirror of
https://github.com/babalae/better-genshin-impact.git
synced 2026-04-25 22:29:47 +08:00
修复许多问题,增加小脱困
This commit is contained in:
@@ -138,7 +138,7 @@ public class PathExecutor(CancellationTokenSource cts)
|
||||
// 非攀爬状态下,检测是否卡死
|
||||
if (waypoint.MoveMode != MoveModeEnum.Climb.Code)
|
||||
{
|
||||
if ((now - lastPositionRecord).TotalMilliseconds > 1000)
|
||||
if ((now - lastPositionRecord).TotalMilliseconds > 1000 && (DateTime.Now - _lastActionTime).TotalSeconds > 2)
|
||||
{
|
||||
lastPositionRecord = now;
|
||||
prevPositions.Add(position);
|
||||
@@ -161,6 +161,7 @@ public class PathExecutor(CancellationTokenSource cts)
|
||||
_rotateTask.RotateToApproach(targetOrientation, screen);
|
||||
if (_randomAngle != 0)
|
||||
{
|
||||
_randomAngle %= 360;
|
||||
if ((DateTime.Now - _lastActionTime).TotalSeconds > 0.5)
|
||||
_randomAngle = 0;
|
||||
}
|
||||
@@ -192,12 +193,15 @@ public class PathExecutor(CancellationTokenSource cts)
|
||||
await Delay(200, cts);
|
||||
continue;
|
||||
}
|
||||
//设置为非攀爬时进入攀爬,自动脱离
|
||||
if (waypoint.MoveMode != MoveModeEnum.Climb.Code)
|
||||
//设置为非攀爬时进入攀爬,自动脱离(小脱困)
|
||||
if (waypoint.MoveMode != MoveModeEnum.Climb.Code &&
|
||||
waypoint.MoveMode != MoveModeEnum.Fly.Code)
|
||||
if (Bv.GetMotionStatus(screen) == MotionStatus.Climb)
|
||||
{
|
||||
Debug.WriteLine("进入攀爬状态,按下x");
|
||||
Simulation.SendInput.Keyboard.KeyPress(User32.VK.VK_X);
|
||||
_lastActionTime = DateTime.Now;
|
||||
_randomAngle += _ran.Next(15, 30);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -257,7 +261,7 @@ public class PathExecutor(CancellationTokenSource cts)
|
||||
|
||||
private async Task EscapeTrap()
|
||||
{
|
||||
_randomAngle = _ran.Next(-30, 30);
|
||||
_randomAngle += _ran.Next(15, 30);
|
||||
// 脱离攀爬状态
|
||||
Simulation.SendInput.Keyboard.KeyUp(User32.VK.VK_W);
|
||||
await Delay(1500, cts);
|
||||
@@ -267,8 +271,8 @@ public class PathExecutor(CancellationTokenSource cts)
|
||||
await Delay(500, cts);
|
||||
|
||||
TimeSpan timeSinceLastAction = DateTime.Now - _lastActionTime;
|
||||
_lastActionTime = DateTime.Now;
|
||||
if (timeSinceLastAction.TotalSeconds >= 3)
|
||||
|
||||
if (timeSinceLastAction.TotalSeconds >= 5)
|
||||
{
|
||||
// 从零开始
|
||||
_lastActionIndex = 0;
|
||||
@@ -313,6 +317,7 @@ public class PathExecutor(CancellationTokenSource cts)
|
||||
await Delay(500, cts);
|
||||
break;
|
||||
}
|
||||
_lastActionTime = DateTime.Now;
|
||||
}
|
||||
|
||||
private async Task MoveCloseTo(WaypointForTrack waypoint)
|
||||
|
||||
Reference in New Issue
Block a user