diff --git a/ReallifeGamemode.Client/admin/aspeed.ts b/ReallifeGamemode.Client/admin/aspeed.ts index ccd8ea28..a7295b61 100644 --- a/ReallifeGamemode.Client/admin/aspeed.ts +++ b/ReallifeGamemode.Client/admin/aspeed.ts @@ -7,12 +7,13 @@ export default function () { }); mp.events.add("CLIENT:SetDoorOpen", (door, lose, permanent) => { mp.players.local.vehicle.setDoorOpen(door, lose, permanent); - mp.players.local.vehicle.setIndicatorLights(0, true); - //mp.gui.chat.push(`setDoorOpen(${door}, ${lose}, ${permanent})`); }); mp.events.add("CLIENT:SetDoorShut", (door, permanent) => { mp.players.local.vehicle.setDoorShut(door, permanent); - mp.players.local.vehicle.setIndicatorLights(0, false); - //mp.gui.chat.push(`setDoorShut(${door}, ${permanent})`); + }); + mp.events.add("CLIENT:SetDoorShutDelayed", (door, permanent, time) => { + setTimeout(function () { + mp.players.local.vehicle.setDoorShut(door, permanent); + }, time) }); } \ No newline at end of file diff --git a/ReallifeGamemode.Client/assets/sound/jobs/busfahrer/AbfahrtHaltestelle.mp3 b/ReallifeGamemode.Client/assets/sound/jobs/busfahrer/AbfahrtHaltestelle.mp3 deleted file mode 100644 index de358650..00000000 Binary files a/ReallifeGamemode.Client/assets/sound/jobs/busfahrer/AbfahrtHaltestelle.mp3 and /dev/null differ diff --git a/ReallifeGamemode.Client/assets/sound/jobs/busfahrer/AbfahrtHaltestelleBus.wav b/ReallifeGamemode.Client/assets/sound/jobs/busfahrer/AbfahrtHaltestelleBus.wav new file mode 100644 index 00000000..3cabb26c Binary files /dev/null and b/ReallifeGamemode.Client/assets/sound/jobs/busfahrer/AbfahrtHaltestelleBus.wav differ diff --git a/ReallifeGamemode.Client/assets/sound/jobs/busfahrer/AbfahrtHaltestelleCoach.wav b/ReallifeGamemode.Client/assets/sound/jobs/busfahrer/AbfahrtHaltestelleCoach.wav new file mode 100644 index 00000000..73d0c892 Binary files /dev/null and b/ReallifeGamemode.Client/assets/sound/jobs/busfahrer/AbfahrtHaltestelleCoach.wav differ diff --git a/ReallifeGamemode.Client/assets/sound/jobs/busfahrer/AbfahrtHaltestelleTourbus.wav b/ReallifeGamemode.Client/assets/sound/jobs/busfahrer/AbfahrtHaltestelleTourbus.wav new file mode 100644 index 00000000..ef70010c Binary files /dev/null and b/ReallifeGamemode.Client/assets/sound/jobs/busfahrer/AbfahrtHaltestelleTourbus.wav differ diff --git a/ReallifeGamemode.Server/Util/CheckPointHandle.cs b/ReallifeGamemode.Server/Util/CheckPointHandle.cs index 98d40c65..934c5b91 100644 --- a/ReallifeGamemode.Server/Util/CheckPointHandle.cs +++ b/ReallifeGamemode.Server/Util/CheckPointHandle.cs @@ -50,11 +50,30 @@ namespace ReallifeGamemode.Server.Util { if (user.GetUser().JobId == 4) { + if (!user.IsInVehicle || user.VehicleSeat != 0) return; + Vehicle veh = user.Vehicle; user.TriggerEvent("CLIENT:PlaySound", "jobs/busfahrer/AnfahrtHaltestelle", "wav", 50); - user.TriggerEvent("CLIENT:SetDoorOpen", 0, false, false); - user.TriggerEvent("CLIENT:SetDoorOpen", 1, false, false); - user.TriggerEvent("CLIENT:SetDoorOpen", 2, false, false); - user.TriggerEvent("CLIENT:SetDoorOpen", 3, false, false); + if ((VehicleHash)veh.Model == VehicleHash.Bus) + { + user.TriggerEvent("CLIENT:SetDoorOpen", 0, false, false); + user.TriggerEvent("CLIENT:SetDoorOpen", 1, false, false); + user.TriggerEvent("CLIENT:SetDoorOpen", 2, false, false); + user.TriggerEvent("CLIENT:SetDoorOpen", 3, false, false); + } + if ((VehicleHash)veh.Model == VehicleHash.Coach) + { + user.TriggerEvent("CLIENT:SetDoorOpen", 0, false, false); + } + if ((VehicleHash)veh.Model == VehicleHash.Tourbus) + { + user.TriggerEvent("CLIENT:SetDoorOpen", 2, false, false); + user.TriggerEvent("CLIENT:SetDoorOpen", 3, false, false); + } + if (!(veh.GetData("indicatorData") is IndicatorData data)) data = new IndicatorData(); + data.Left = false; + data.Right = true; + veh.SetData("indicatorData", data); + NAPI.ClientEvent.TriggerClientEventForAll("SERVER:setIndicatorStatus", veh.Handle.Value, data.Left, data.Right); } } @@ -78,12 +97,33 @@ namespace ReallifeGamemode.Server.Util } if (user.GetUser().JobId == 4) { + if (!user.IsInVehicle || user.VehicleSeat != 0) return; + Vehicle veh = user.Vehicle; BusDriverJob.payWage(user, 100); - user.TriggerEvent("CLIENT:PlaySound", "jobs/busfahrer/AbfahrtHaltestelle", "mp3", 25); - user.TriggerEvent("CLIENT:SetDoorShut", 0, false); - user.TriggerEvent("CLIENT:SetDoorShut", 1, false); - user.TriggerEvent("CLIENT:SetDoorShut", 2, false); - user.TriggerEvent("CLIENT:SetDoorShut", 3, false); + if ((VehicleHash)veh.Model == VehicleHash.Bus) + { + user.TriggerEvent("CLIENT:PlaySound", "jobs/busfahrer/AbfahrtHaltestelleBus", "wav", 25); + user.TriggerEvent("CLIENT:SetDoorShutDelayed", 0, false, 1850); + user.TriggerEvent("CLIENT:SetDoorShutDelayed", 1, false, 1850); + user.TriggerEvent("CLIENT:SetDoorShutDelayed", 2, false, 1850); + user.TriggerEvent("CLIENT:SetDoorShutDelayed", 3, false, 1850); + } + if ((VehicleHash)veh.Model == VehicleHash.Coach) + { + user.TriggerEvent("CLIENT:PlaySound", "jobs/busfahrer/AbfahrtHaltestelleCoach", "wav", 35); + user.TriggerEvent("CLIENT:SetDoorShutDelayed", 0, false, 600); + } + if ((VehicleHash)veh.Model == VehicleHash.Tourbus) + { + user.TriggerEvent("CLIENT:PlaySound", "jobs/busfahrer/AbfahrtHaltestelleTourbus", "wav", 25); + user.TriggerEvent("CLIENT:SetDoorShutDelayed", 2, false, 2100); + user.TriggerEvent("CLIENT:SetDoorShutDelayed", 3, false, 2100); + } + if (!(veh.GetData("indicatorData") is IndicatorData data)) data = new IndicatorData(); + data.Left = false; + data.Right = false; + veh.SetData("indicatorData", data); + NAPI.ClientEvent.TriggerClientEventForAll("SERVER:setIndicatorStatus", veh.Handle.Value, data.Left, data.Right); } } else