using GTANetworkAPI; using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Server.Extensions; using ReallifeGamemode.Server.Managers; using ReallifeGamemode.Server.Util; namespace ReallifeGamemode.Server.Events { public class ExitVehicle : Script { [ServerEvent(Event.PlayerExitVehicleAttempt)] public void OnPlayerExitVehicle(Player client, GTANetworkAPI.Vehicle vehicle) { if (client.VehicleSeat != 0) return; if (vehicle.GetServerVehicle() is FactionVehicle veh) { User u = client.GetUser(); if ((u.FactionId != null) && (veh.GetOwners().Contains(u.FactionId ?? 0)) && ((VehicleHash)vehicle.Model == VehicleHash.Burrito3) && vehicle.HasData("weaponDeal") && vehicle.GetData("weaponDeal") == true) { CheckPointHandle.RemovePlayerHandlerFromList(client); client.TriggerEvent("destroyCP"); } else if ((u.FactionId != null) && (veh.GetOwners().Contains(u.FactionId ?? 0)) && ((VehicleHash)vehicle.Model == VehicleHash.Burrito3 || (VehicleHash)vehicle.Model == VehicleHash.Policet) && vehicle.HasData("WeaponDealLoad") && vehicle.GetData("WeaponDealLoad") == true) { client.TriggerEvent("SERVER:setMarkerBehindVehicle", vehicle); } } if (vehicle.GetServerVehicle() is SchoolVehicle vehS) { if (client.HasData("ActiveSchool")) { client.SendNotification("~r~Du hast deine Prüfung unterbrochen!", true); client.ResetData("ActiveSchool"); client.WarpOutOfVehicle(); ServerVehicle sVeh = VehicleManager.GetServerVehicleFromVehicle(vehicle); ServerVehicleExtensions.Spawn(sVeh, vehicle); client.Position = sVeh.Position; CheckPointHandle.DeleteCheckpoints(client); } } } } }