Delay vehicle repair

This commit is contained in:
Sardelka
2022-07-21 22:42:29 +08:00
parent b0a197cd18
commit 44a8445b54
3 changed files with 19 additions and 9 deletions

View File

@ -9,6 +9,8 @@ using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Windows.Forms;
using System.Threading.Tasks;
using System.Threading;
namespace RageCoop.Client
{
@ -391,6 +393,13 @@ namespace RageCoop.Client
lock (QueuedActions) { QueuedActions.Clear(); }
}
public static void Delay(Action a, int time)
{
Task.Run(() =>
{
Thread.Sleep(time);
QueueAction(a);
});
}
}
}

View File

@ -158,7 +158,13 @@ namespace RageCoop.Client
{
if (MainVehicle.IsDead)
{
MainVehicle.Repair();
Main.Delay(() =>
{
if (MainVehicle.IsDead && !IsDead)
{
MainVehicle.Repair();
}
},1000);
}
}
if (MainVehicle.IsOnFire)
@ -341,13 +347,7 @@ namespace RageCoop.Client
{
var current = MainVehicle.Position;
var predicted = Position+Velocity*(SyncParameters.PositioinPredictionDefault+0.001f*LastSyncedStopWatch.ElapsedMilliseconds);
if (current.DistanceTo(Main.PlayerPosition)>50)
{
MainVehicle.Position=predicted;
MainVehicle.Velocity=Velocity;
MainVehicle.Quaternion=Quaternion;
}
else if (current.DistanceTo(Position)<5)
if (current.DistanceTo(Position)<5)
{
MainVehicle.Velocity = Velocity+5*(predicted - current);
if (IsFlipped)

View File

@ -269,6 +269,7 @@ namespace RageCoop.Client
Function.Call(Hash.SET_VEHICLE_FLIGHT_NOZZLE_POSITION, plane, ratio);
}
#endregion
}
}