feat(vehicles): enable direct vehicle boarding with F key via story enter and drive state
This commit is contained in:
1 parent
8d6097fcf3
commit
52ae7b8236
2 files changed
+22
No files matched your search
@@ -243,6 +243,7 @@ internal sealed partial class GameRouter
|
||||
{ VehicleInstanceId = vehicleId, ControllerPid = pid });
|
||||
await SendVehicleBoardingStatus(conn, unitId, vehicleId, seat, 2);
|
||||
conn.Log.Info($"[VEHICLE-STORY] enter begin vehicle={vehicleId} seat={seat} unit={unitId} status=2 lazy={lazyRegistered}");
|
||||
await ForceEnterVehicleAsync(conn.Session, vehicleId);
|
||||
}
|
||||
|
||||
private async Task AdvanceVehicleEnter(Connection conn, VehicleStoryState story, int phase)
|
||||
|
||||
@@ -371,6 +371,27 @@ internal sealed partial class GameRouter
|
||||
}
|
||||
|
||||
[Handler(MethodId.AskPlayerStartEnterOrExitVehicle, HandlerPacketKind.Notify)]
|
||||
private async Task AskPlayerStartEnterOrExitVehicle(Connection conn, UxRpcMessage msg)
|
||||
{
|
||||
try
|
||||
{
|
||||
var drive = msg.GetArgs<SceneMethods.PlayerVehicleDriveStateInfo>();
|
||||
conn.Log.Info($"[VEHICLE] AskPlayerStartEnterOrExitVehicle vehicle={drive.VehicleEntityId} enter={drive.EnterOrLeave} seat={drive.SeatIndex}");
|
||||
if (drive.EnterOrLeave)
|
||||
{
|
||||
await ForceEnterVehicleAsync(conn.Session, drive.VehicleEntityId);
|
||||
}
|
||||
else
|
||||
{
|
||||
await ForceExitVehicleAsync(conn.Session);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
conn.Log.Warn($"[VEHICLE] AskPlayerStartEnterOrExitVehicle failed: {ex.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
[Handler(MethodId.AskPlayerFinishEnterOrExitVehicle, HandlerPacketKind.Notify)]
|
||||
[Handler(MethodId.AskVehicleStartMove, HandlerPacketKind.Notify)]
|
||||
[Handler(MethodId.AskVehicleStopMove, HandlerPacketKind.Notify)]
|
||||
|
||||
Reference in new issue
Block a user