diff --git a/ReallifeGamemode.Server/Job/BusDriverJob.cs b/ReallifeGamemode.Server/Job/BusDriverJob.cs index 1008dde3..e8eee500 100644 --- a/ReallifeGamemode.Server/Job/BusDriverJob.cs +++ b/ReallifeGamemode.Server/Job/BusDriverJob.cs @@ -421,9 +421,12 @@ namespace ReallifeGamemode.Server.Job _CHANGING_VEHICLE.Add(player); if (playerVehiclePair.ContainsKey(player)) { + Vehicle previousVehicle = null; if (playerVehiclePair[player] != null) - playerVehiclePair[player].Delete(); + previousVehicle = playerVehiclePair[player]; playerVehiclePair.Remove(player); + + previousVehicle?.Delete(); } playerVehiclePair.Add(player, vehicle); @@ -556,7 +559,7 @@ namespace ReallifeGamemode.Server.Job public override void StartJobEndTimer(Player player) { - if (!playerVehiclePair.ContainsKey(player) || _CHANGING_VEHICLE.Contains(player)) + if (!playerVehiclePair.ContainsKey(player) && _CHANGING_VEHICLE.Contains(player)) { _CHANGING_VEHICLE.Remove(player); return; diff --git a/ReallifeGamemode.Server/Job/PilotJob.cs b/ReallifeGamemode.Server/Job/PilotJob.cs index b40c6e8f..32b8d941 100644 --- a/ReallifeGamemode.Server/Job/PilotJob.cs +++ b/ReallifeGamemode.Server/Job/PilotJob.cs @@ -233,13 +233,15 @@ namespace ReallifeGamemode.Server.Job _CHANGING_VEHICLE.Add(player); if (playerVehiclePair.ContainsKey(player)) { + Vehicle previousVehicle = null; if (playerVehiclePair[player] != null) - playerVehiclePair[player].Delete(); + previousVehicle = playerVehiclePair[player]; playerVehiclePair.Remove(player); + + previousVehicle?.Delete(); } playerVehiclePair.Add(player, vehicle); player.SetIntoVehicle(vehicle.Handle, 0); - _CHANGING_VEHICLE.Remove(player); CheckPointHandle.StartCheckPointRoute(player, selectedRoute, 0, CHECKPOINT_MARKER_ID, 40, 10, true, "PILOT:InCheckpoint"); //6, 23, 25, 26, 27, 28 } @@ -286,7 +288,11 @@ namespace ReallifeGamemode.Server.Job public override void StartJobEndTimer(Player player) { if (!playerVehiclePair.ContainsKey(player) && _CHANGING_VEHICLE.Contains(player)) + { + _CHANGING_VEHICLE.Remove(player); return; + } + if (JobManager.playerTimersJobVehicleRespawn.ContainsKey(player)) {