feat(vehicles): enable direct vehicle boarding with F key via story enter and drive state

This commit is contained in:
CAtlas0784 committed 2026-09-16 18:35:09 +07:00
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)]