static private Task OnTick() { try { if (ControlHelper.IsControlJustPressed(Control.ReplayShowhotkey, true, ControlModifier.Alt) && Game.PlayerPed.IsInVehicle()) { vehicle = Game.PlayerPed.CurrentVehicle; vehicle.Mods.InstallModKit(); CivilianLights = CivilianCarSirenModeValues[(CivilianCarSirenModeValues.IndexOf(CivilianLights) + 1) % CivilianCarSirenModeValues.Count]; BaseScript.TriggerEvent("Chat.Message", "", "#9999EE", $"Set civilian car lights mode to {CivilianLights.ToString().ToLower()}."); if (CivilianLights == CivilianCarSirenMode.None) { vehicle.Mods.SetNeonLightsOn(VehicleNeonLight.Left, false); vehicle.Mods.SetNeonLightsOn(VehicleNeonLight.Right, false); vehicle.Mods.SetNeonLightsOn(VehicleNeonLight.Front, false); vehicle.Mods.SetNeonLightsOn(VehicleNeonLight.Back, false); } } } catch (Exception ex) { Log.Error($"CivilianCarSirenLights OnTick error: {ex.Message}"); } return(Task.FromResult(0)); }
private int getBasePriceForClass(CitizenFX.Core.Vehicle veh) { int basePrice = 300; switch (veh.ClassType) { case VehicleClass.Commercial: case VehicleClass.Sedans: case VehicleClass.Motorcycles: basePrice = 500; break; case VehicleClass.Sports: case VehicleClass.Super: basePrice = 650; break; case VehicleClass.SUVs: case VehicleClass.OffRoad: case VehicleClass.Coupes: case VehicleClass.Compacts: case VehicleClass.Vans: case VehicleClass.Utility: case VehicleClass.SportsClassics: basePrice = 550; break; } return(basePrice); }
public static void DeleteVeh(int money, int vehicle) { var veh = new CitizenFX.Core.Vehicle(NetToVeh(vehicle)); var vehId = Managers.Vehicle.GetVehicleIdByNumber(GetVehicleNumberPlateText(veh.Handle)); if (Main.GetDistanceToSquared(GetEntityCoords(GetPlayerPed(-1), true), GrSixMenuPos) > 50) { Notification.SendWithTime("~y~Транспорт можно сдать только на базе"); User.SetWaypoint(-42, -664); return; } if (User.CanOpenVehicle(vehId, veh.Handle)) { Notification.SendWithTime("~g~Вы сдали автомобиль "); Coffer.RemoveMoney(4500); Notification.SendWithTime($"~q~Вы окончили маршрут день и заработали: ${money}"); User.AddMoney(money + 4500); Main.FindNearestVehicle().Delete(); Characher.UpdateCloth(false); TriggerServerEvent("ARP:GrSix:ResetMoneyInCar", veh.NetworkId); MoneyInCar = 0; } else { Notification.SendWithTime("Не вы арендовали, не вам сдавать."); return; } }
public static void GetGrabRandomVehicle() { if (Client.Sync.Data.HasLocally(User.GetServerId(), "sellCarTaskName")) { Notification.SendWithTime("~g~Вы уже получили задание, угнать: " + Client.Sync.Data.GetLocally(User.GetServerId(), "sellCarTaskName")); return; } var pos = GetEntityCoords(GetPlayerPed(-1), true); var vehicle = GetRandomVehicleInSphere(pos.X, pos.Y, pos.Z, 300f, 0, 0); var v = new CitizenFX.Core.Vehicle(vehicle); switch (VehInfo.GetClassName(v.Model.Hash)) { case "Emergency": case "Boats": case "Helicopters": case "Planes": GetGrabRandomVehicle(); return; } Notification.SendWithTime("~g~Вам нужно угнать: " + v.DisplayName); Client.Sync.Data.SetLocally(User.GetServerId(), "sellCarTaskHash", v.Model.Hash); Client.Sync.Data.SetLocally(User.GetServerId(), "sellCarTaskName", v.DisplayName); }
public static string PackFromWorld(CitizenFX.Core.Vehicle vehicle) { try { var data = new VehicleMemoryModel(); data.Livery = (int)vehicle.Mods.Livery; data.PrimaryColor = vehicle.Mods.PrimaryColor; data.SecondaryColor = vehicle.Mods.SecondaryColor; data.PearlescentColor = vehicle.Mods.PearlescentColor; data.RimColor = vehicle.Mods.RimColor; data.WheelType = vehicle.Mods.WheelType; foreach (var mod in vehicle.Mods.GetAllMods()) { if (!data.Mods.ContainsKey(mod.ModType)) { data.Mods.Add(mod.ModType, mod.Index); } } data.CustomWheelVariation = API.IsVehicleExtraTurnedOn(vehicle.Handle, (int)VehicleModType.FrontWheel); Enumerable.Range(0, 50).ToList().ForEach(e => { if (API.IsVehicleExtraTurnedOn(vehicle.Handle, e)) { data.Extras[e] = true; } }); return(Pack(data)); } catch (Exception ex) { Log.Error($"VehiclePack PackVehicle Error: {ex.Message}"); return(null); } }
public static async Task <CitizenFX.Core.Vehicle> UnpackToWorld(VehicleMemoryModel vehicleModel, Vector3 Position, float Heading) { try { CitizenFX.Core.Vehicle vehicle = await World.CreateVehicle(vehicleModel.Model, Position, Heading); if (vehicleModel.Livery != null) { vehicle.Mods.Livery = (int)vehicleModel.Livery; } if (vehicleModel.PrimaryColor != null) { vehicle.Mods.PrimaryColor = (VehicleColor)vehicleModel.PrimaryColor; } if (vehicleModel.SecondaryColor != null) { vehicle.Mods.SecondaryColor = (VehicleColor)vehicleModel.SecondaryColor; } if (vehicleModel.PearlescentColor != null) { vehicle.Mods.PearlescentColor = (VehicleColor)vehicleModel.PearlescentColor; } if (vehicleModel.RimColor != null) { vehicle.Mods.RimColor = (VehicleColor)vehicleModel.RimColor; } if (vehicleModel.WheelType != null) { vehicle.Mods.WheelType = (VehicleWheelType)vehicleModel.WheelType; } if (vehicleModel.Mods != null) { vehicleModel.Mods.ToList().ForEach(m => { vehicle.Mods[m.Key].Index = m.Value; }); } if (vehicleModel.CustomWheelVariation != null) { Function.Call(Hash.SET_VEHICLE_EXTRA, vehicle.Handle, VehicleModType.FrontWheel, (bool)(vehicleModel.CustomWheelVariation) ? 0 : -1); } if (vehicleModel.Extras != null) { vehicleModel.Extras.ToList().ForEach(e => { Function.Call(Hash.SET_VEHICLE_EXTRA, vehicle.Handle, e.Key, e.Value ? 0 : -1); }); } //if (vehicleModel.ToggleMods != null) // Only includes like 3 mods; Xenon etc //if (vehicleModel.UnderGlow != null) // Not currently used //if (vehicleModel.NumberPlateStyle != null) // Not currently used return(vehicle); } catch (Exception ex) { Log.Error($"VehicleMemoryModel UnpackToWorld error: {ex.Message}"); } return(null); }
public static void SendNotifTaxi(string phone, int id, string zone, string street, float x, float y, float z) { if (!IsPedInAnyVehicle(PlayerPedId(), true)) { return; } var veh = GetVehiclePedIsUsing(PlayerPedId()); if (GetPedInVehicleSeat(veh, -1) != PlayerPedId()) { return; } var v = new CitizenFX.Core.Vehicle(veh); if (v.Model.Hash != -956048545 && v.Model.Hash != 1208856469 && v.Model.Hash != 1884962369 && v.Model.Hash != 2088999036) { return; } int count = TaskList.Count; ++count; TaskList.Add(count + ". " + phone, id); TaskList2.Add(count + ". " + phone, new Vector3(x, y, z)); Notification.SendPicture($"~y~Район:~s~ {zone}\n~y~Улица:~s~ {street}", "Заказ", phone, "CHAR_TAXI", Notification.TypeChatbox); }
private static void HandleInitialDuty(string serializedDutyDictionary) { try { Dictionary <int, Duty> initialDuty = Helpers.MsgPack.Deserialize <Dictionary <int, Duty> >(serializedDutyDictionary); initialDuty.ToList().ForEach(d => { try { var player = otherPlayerList.Where(p => p.CharID == d.Key).First().Player; CitizenFX.Core.Vehicle dutyVehicle = null; Blip blip = null; if (player.Character.IsInVehicle()) { dutyVehicle = player.Character.CurrentVehicle; blip = dutyVehicle.AttachBlip(); blip.IsShortRange = true; blip.Sprite = DutyConstants[d.Value].Item1; blip.Color = DutyConstants[d.Value].Item2; } duty.Add(d.Key, new Tuple <CitizenFX.Core.Player, Duty, CitizenFX.Core.Vehicle, Blip>(player, d.Value, dutyVehicle, blip)); } catch (Exception ex) { Log.Error($"HandleInitialDuty (inner) Error: {ex.Message}"); } }); } catch (Exception ex) { Log.Error($"DutyManager HandleInitialDuty Error: {ex.Message}"); } }
private static void RefreshMenuItems() { try { _menuItems.Clear(); CitizenFX.Core.Vehicle vehicle = Game.PlayerPed.CurrentVehicle; VehicleDoor[] doors = vehicle.Doors.GetAll(); doors.ToList().ForEach(door => { if (!door.IsBroken) { _menuItems.Add(new MenuItemCheckbox { Title = $"Open {door.Index.ToString().AddSpacesToCamelCase()}", state = door.IsOpen, OnActivate = (state, item) => { if (state) { door.Open(); } else { door.Close(); } } }); } }); DoorMenu.menuItems = _menuItems; DoorMenu.SelectedIndex = DoorMenu.SelectedIndex; } catch (Exception ex) { Log.Error($"DoorManager OnTick Error: {ex.Message}"); } }
public static async void UnloadTrash(CitizenFX.Core.Vehicle vehicle) { var unloadPos = new Vector3(1544.018f, -2132.836f, 77.20142f); if (Main.GetDistanceToSquared(unloadPos, GetEntityCoords(GetPlayerPed(-1), true)) > 20f) { Notification.SendWithTime("~r~Вы слишком далеко"); Managers.Checkpoint.CreateWithMarker(unloadPos, 15f, 15f, Marker.Red.R, Marker.Red.G, Marker.Red.B, Marker.Red.A, "checkpoint:withdelete"); User.SetWaypoint(unloadPos.X, unloadPos.Y); return; } int vId = GetHashKey(Managers.Vehicle.GetVehicleNumber(vehicle.Handle)); if (!await Sync.Data.Has(vId, "Trash")) { Notification.SendWithTime("~r~Транспорт пуст"); return; } int countTrash = (int)await Sync.Data.Get(vId, "Trash"); User.GiveJobMoney(countTrash * 10); Notification.SendWithTime("~g~Вы разгрузили транспорт"); Sync.Data.Reset(vId, "Trash"); }
private void Save() { foreach (Tuple <Type, int> trackedVehicle in this.Tracked) { int vehicleHandle = API.NetToVeh(trackedVehicle.Item2); var citVeh = new CitizenFX.Core.Vehicle(vehicleHandle); int netId = API.NetworkGetNetworkIdFromEntity(citVeh.Handle); //Debug.WriteLine($"Saving Vehicle: {trackedVehicle.Item2} - {citVeh.Position}"); Core.Models.Objects.Vehicles.Vehicle vehicle = (Core.Models.Objects.Vehicles.Vehicle)citVeh; vehicle.TrackingUserId = Client.Instance.Controllers.First <UserController>().User.Id; vehicle.NetId = netId; vehicle.Hash = citVeh.Model.Hash; switch (trackedVehicle.Item1.VehicleType().Name) { case "Car": //Car car = (Car)vehicle; // Add car specific props... //BaseScript.TriggerServerEvent($"igi:{trackedVehicle.Item1.VehicleType().Name}:save", JsonConvert.SerializeObject(car)); Server.Event($"igi:{trackedVehicle.Item1.VehicleType().Name}:save") .Attach(vehicle) .Trigger(); break; default: //BaseScript.TriggerServerEvent($"igi:{trackedVehicle.Item1.VehicleType().Name}:save", JsonConvert.SerializeObject(vehicle, trackedVehicle.Item1, new JsonSerializerSettings())); Server.Event($"igi:{trackedVehicle.Item1.VehicleType().Name}:save") .Attach(vehicle) .Trigger(); break; } } }
public static void SetVehicleLocks(CitizenFX.Core.Vehicle vehicle, LockState lockState) { try { switch (lockState) { case LockState.Locked: Function.Call(Hash.SET_VEHICLE_DOORS_LOCKED_FOR_ALL_PLAYERS, vehicle.Handle, true); vehicle.LockStatus = VehicleLockStatus.Locked; Function.Call(Hash.DECOR_SET_BOOL, vehicle.Handle, "Vehicle.Locked", true); return; case LockState.Unlocked: Function.Call(Hash.SET_VEHICLE_DOORS_LOCKED_FOR_ALL_PLAYERS, vehicle.Handle, false); vehicle.LockStatus = VehicleLockStatus.Unlocked; Function.Call(Hash.DECOR_SET_BOOL, vehicle.Handle, "Vehicle.Locked", false); return; default: return; } } catch (Exception ex) { Log.Error(ex); } }
public EmergencyServicesVehicleMenu(Client client) : base(client) { serviceVehicle = null; VehicleHashValues = VehicleLoadoutPresets.serviceVehicles.Select(v => (VehicleHash)Game.GenerateHash(v)).ToList(); VehicleHashNames = VehicleLoadoutPresets.serviceVehicles.Select(v => v.ToTitleCase().AddSpacesToCamelCase()).ToList(); VehicleColorValues = Enum.GetValues(typeof(VehicleColor)).OfType <VehicleColor>().ToList(); VehicleColorNames = Enum.GetNames(typeof(VehicleColor)).Select(c => c.AddSpacesToCamelCase()).ToList(); VehicleWheelTypeValues = Enum.GetValues(typeof(VehicleWheelType)).OfType <VehicleWheelType>().ToList(); VehicleWheelTypeNames = Enum.GetNames(typeof(VehicleWheelType)).Select(c => c.AddSpacesToCamelCase()).ToList(); currentlySelectedVehicleOnFoot = 0; Menu = new EmergencyVehicleMenu { numVisibleItems = 7 }; Menu.headerTitle = "Vehicle Customization"; Menu.statusTitle = ""; //Menu.Refresh(); //Menu.menuItems = new List<MenuItem>() { new MenuItemStandard { Title = "Populating menu..." } }; // Currently we need at least one item in a menu; could make it work differently, but eh. client.Get <InteractionUI>().RegisterInteractionMenuItem(new MenuItemSubMenu { Title = $"Spawn Service Vehicle", SubMenu = Menu }, () => Client.Instance.Get <JobHandler>().OnDutyAsJob(JobType.Police | JobType.EMS) && isInRangeOfDutyGarage(), 1000); client.RegisterTickHandler(OnTick); client.RegisterEventHandler("Job.SpawnServiceVehicle", new Action <int>(async index => { if (isInRangeOfDutyGarage()) { await EmergencyVehicleMenu.ReplaceCurrentVehicleByIndex(index); } })); }
private static void RefreshMenuItems() { try { if (vehicle != Game.PlayerPed.CurrentVehicle) { windowStates = VehicleWindowValues.ToDictionary(v => v, v => false); vehicle = Game.PlayerPed.CurrentVehicle; } _menuItems.Clear(); VehicleWindowValues.Select((window, index) => new { window, index }).ToList().ForEach(o => { var window = vehicle.Windows[o.window]; //if (window.IsIntact) _menuItems.Add(new MenuItemCheckbox { Title = $"Roll Down {window.Index.ToString().AddSpacesToCamelCase()}", state = windowStates[window.Index], OnActivate = (state, item) => { if (state) { window.RollDown(); } else { window.RollUp(); } windowStates[window.Index] = state; } }); }); WindowMenu.menuItems = _menuItems; WindowMenu.SelectedIndex = WindowMenu.SelectedIndex; } catch (Exception ex) { Log.Error($"VehicleWindowManager OnTick Error: {ex.Message}"); } }
public static void Load() { if (!User.IsDriver()) { Notification.SendWithTime("~r~Вы должны быть за рулём"); return; } var veh = new CitizenFX.Core.Vehicle(User.GetVehicleIsDriver()); if (veh.Model.Hash != -1700801569) { Notification.SendWithTime("~r~Нужно находиться в рабочем транспорте"); return; } var playerPos = GetEntityCoords(GetPlayerPed(-1), true); if (Main.GetDistanceToSquared(LoadPos, playerPos) < 5f) { Sync.Data.SetLocally(VehToNet(veh.Handle), "veh:scrapLoad", true); Notification.SendWithTime("~g~Вы загрузили металлолом"); Managers.Blip.Create(UnLoadPos); Managers.Checkpoint.CreateWithMarker(UnLoadPos, 5f, 5f, Marker.Red.R, Marker.Red.G, Marker.Red.B, Marker.Red.A, "checkpoint:withdelete"); User.SetWaypoint(UnLoadPos.X, UnLoadPos.Y); } else { Notification.SendWithTime("~r~Вы слишком далеко"); Managers.Checkpoint.CreateWithMarker(LoadPos, 5f, 5f, Marker.Red.R, Marker.Red.G, Marker.Red.B, Marker.Red.A, "checkpoint:withdelete"); Managers.Blip.Create(LoadPos); User.SetWaypoint(LoadPos.X, LoadPos.Y); } }
private async Task Save() { foreach (TrackedVehicle trackedVehicle in this.Tracked) { int vehicleHandle = API.NetToVeh(trackedVehicle.NetId); var citVeh = new CitizenFX.Core.Vehicle(vehicleHandle); int netId = API.NetworkGetNetworkIdFromEntity(citVeh.Handle); Core.Models.Objects.Vehicles.Vehicle vehicle = await citVeh.ToVehicle(trackedVehicle.Id); vehicle.TrackingUserId = Client.Instance.Controllers.First <UserController>().User.Id; vehicle.NetId = netId; vehicle.Hash = citVeh.Model.Hash; switch (trackedVehicle.Type.VehicleType().Name) { case "Car": //Car car = (Car)vehicle; // Add car specific props... Server.Event($"igi:{trackedVehicle.Type.VehicleType().Name}:save") .Attach(vehicle) .Trigger(); break; default: Server.Event($"igi:{trackedVehicle.Type.VehicleType().Name}:save") .Attach(vehicle) .Trigger(); break; } } }
private static void refreshMenuItems() { try { if (vehicle != Game.PlayerPed.CurrentVehicle) { windowStates = VehicleWindowValues.ToDictionary(v => v, v => false); vehicle = Game.PlayerPed.CurrentVehicle; } _menuItems.Clear(); _menuItems.Add(new MenuItemCheckbox { Title = "Open all windows", state = AreAllWindowsOpen(VehicleWindowValues, windowStates, vehicle), OnActivate = (state, item) => { VehicleWindowValues.Select((window, index) => new { window, index }).ToList().ForEach(o => { var window = vehicle.Windows[o.window]; if (state) { window.RollDown(); } else { window.RollUp(); } windowStates[window.Index] = state; }); } }); VehicleWindowValues.Select((window, index) => new { window, index }).ToList().ForEach(o => { var window = vehicle.Windows[o.window]; _menuItems.Add(new MenuItemCheckbox { Title = $"Roll Down {window.Index.ToString().AddSpacesToCamelCase()}", state = windowStates[window.Index], OnActivate = (state, item) => { if (state) { window.RollDown(); } else { window.RollUp(); } windowStates[window.Index] = state; } }); }); windowMenu.menuItems = _menuItems; windowMenu.SelectedIndex = windowMenu.SelectedIndex; } catch (Exception ex) { Log.Error(ex); } }
public static async void Wash(CitizenFX.Core.Vehicle veh) { DoScreenFadeOut(500); while (IsScreenFadingOut()) { await Delay(1); } await Delay(500); veh.Wash(); veh.DirtLevel = 0; User.RemoveCashMoney(21); Business.AddMoney(113, 21); await Delay(500); DoScreenFadeIn(500); while (IsScreenFadingIn()) { await Delay(1); } Notification.SendWithTime(Lang.GetTextToPlayer("_lang_47")); }
public static void DropInCar(CitizenFX.Core.Vehicle veh) { if (!Sync.Data.HasLocally(User.GetServerId(), "hlab")) { Notification.SendWithTime("~r~У Вас нет пробы на руках. Нужно её собрать."); return; } if (Sync.Data.HasLocally(VehToNet(veh.Handle), "veh:halbLoad")) { int count = (int)Sync.Data.GetLocally(VehToNet(veh.Handle), "veh:halbLoad"); if (veh.Model.Hash == 121658888 && count >= 20) { Notification.SendWithTime("~r~В машине нет места"); return; } if (veh.Model.Hash == 914654722 && count >= 5) { Notification.SendWithTime("~r~В машине нет места"); return; } Sync.Data.SetLocally(VehToNet(veh.Handle), "veh:halbLoad", ++count); Notification.SendWithTime("~g~Вы положили пробу в транспорт."); } else { Sync.Data.SetLocally(VehToNet(veh.Handle), "veh:halbLoad", 1); Notification.SendWithTime("~g~Вы положили пробу в транспорт."); } Sync.Data.ResetLocally(User.GetServerId(), "hlab"); }
static async Task RegularUpdates() { bool currentRed = true; Color color; while (true) { try { if (vehicle != null) { if (!Game.PlayerPed.IsInVehicle()) { CivilianLights = CivilianCarSirenMode.None; vehicle.Mods.SetNeonLightsOn(VehicleNeonLight.Left, false); vehicle.Mods.SetNeonLightsOn(VehicleNeonLight.Right, false); vehicle.Mods.SetNeonLightsOn(VehicleNeonLight.Front, false); vehicle.Mods.SetNeonLightsOn(VehicleNeonLight.Back, false); vehicle = null; continue; } if (CivilianLights != CivilianCarSirenMode.None) { if (vehicle != Game.PlayerPed.CurrentVehicle) { CivilianLights = CivilianCarSirenMode.None; vehicle.Mods.SetNeonLightsOn(VehicleNeonLight.Left, false); vehicle.Mods.SetNeonLightsOn(VehicleNeonLight.Right, false); vehicle.Mods.SetNeonLightsOn(VehicleNeonLight.Front, false); vehicle.Mods.SetNeonLightsOn(VehicleNeonLight.Back, false); vehicle = Game.PlayerPed.CurrentVehicle; vehicle.Mods.InstallModKit(); } if (currentRed) { color = Color.FromArgb(255, 255, 0, 0); currentRed = false; } else { color = Color.FromArgb(255, 0, 0, 255); currentRed = true; } vehicle.Mods.NeonLightsColor = color; vehicle.Mods.SetNeonLightsOn(VehicleNeonLight.Left, true); vehicle.Mods.SetNeonLightsOn(VehicleNeonLight.Right, true); vehicle.Mods.SetNeonLightsOn(VehicleNeonLight.Front, true); vehicle.Mods.SetNeonLightsOn(VehicleNeonLight.Back, true); } } await BaseScript.Delay((int)CivilianLights); } catch (Exception ex) { Log.Error($"CivilianCarSirenLights error: {ex.Message}"); } } }
public async void StartJob() { currentTowTruck = await CreateJobVehicle(VehicleHash.Flatbed, towDropoffPoint, 0.0f); JobHandler.SetPlayerJob(JobType.Tow); JobHandler.SetDutyState(true); Client.Get <InteractionUI>().RegisterInteractionMenuItem(returnVehicleItem, inRangeOfTowPickup, 500); }
public Train(Vector3 position, bool direction) { int spawnVersion = SpawnableVersions[new Random().Next(SpawnableVersions.Count)]; TrainHandle = (CitizenFX.Core.Vehicle)Entity.FromHandle(Function.Call <int>(Hash.CREATE_MISSION_TRAIN, spawnVersion, position.X, position.Y, position.Z, direction)); TrainHandle.IsPersistent = true; Speed = 0; }
private void FinishDelivery(DeliveryType aDeliveryType, SafeDepositReturn aReturnType) { if (m_delivery_vehicle != null) { /* Remove all vehicle attatchments */ for (int i = 0; i < m_vehicle_attatchments.Count; i++) { m_vehicle_attatchments[i].Detach(); m_vehicle_attatchments[i].Delete(); } m_vehicle_attatchments.Clear(); /* Remove vehicle */ m_delivery_vehicle.Delete(); } m_delivery_state = DELIVERY_STATE.DELIVERY_INACTIVE; m_delivery_vehicle = null; m_delivery_route.Clear(); m_delivery_point_complete.Clear(); if (m_active_blip != null) { m_active_blip.Delete(); } m_active_blip = null; m_active_delivery_point = null; m_active_delivery_type = DeliveryType.NotSelected; if (aReturnType == SafeDepositReturn.YES) { int safe_deposit = DeliveryData.SAFE_DEPOSIT_SCOOTER; if (aDeliveryType == DeliveryType.Van) { safe_deposit = DeliveryData.SAFE_DEPOSIT_VAN; } if (aDeliveryType == DeliveryType.Truck) { safe_deposit = DeliveryData.SAFE_DEPOSIT_TRUCK; } TriggerServerEvent("esx_deliveries:AddBankMoney", safe_deposit); Screen.ShowNotification(DeliveryData._U["SAFE_DEPOSIT_RETURNED"]); } if (aReturnType == SafeDepositReturn.NO) { Screen.ShowNotification(DeliveryData._U["SAFE_DEPOSIT_WITHHELD"]); } LoadDefaultPlayerSkin(); m_active_blip.Delete(); }
private async Task SpawnDeliveryVehicle(DeliveryType aDeliveryType) { try { var rnd = new Random(DateTime.Now.Millisecond); int rs = rnd.Next(0, DeliveryData.ParkingSpawns.Count); Vector3 spawn_location = new Vector3(DeliveryData.ParkingSpawns[rs].X, DeliveryData.ParkingSpawns[rs].Y, DeliveryData.ParkingSpawns[rs].Y); if (aDeliveryType == DeliveryType.Scooter) { m_delivery_vehicle = await World.CreateVehicle(DeliveryData.MODEL_SCOOTER, spawn_location, DeliveryData.ParkingSpawns[rs].W); } if (aDeliveryType == DeliveryType.Truck) { TriggerServerEvent("esx_deliveries:start", "deliveries (Truck)"); m_delivery_vehicle = await World.CreateVehicle(DeliveryData.MODEL_TRUCK, spawn_location, DeliveryData.ParkingSpawns[rs].W); SetVehicleLivery(m_delivery_vehicle.Handle, 2); } if (aDeliveryType == DeliveryType.Van) { TriggerServerEvent("esx_deliveries:start", "deliveries (Van)"); m_delivery_vehicle = await World.CreateVehicle(DeliveryData.MODEL_VAN, spawn_location, DeliveryData.ParkingSpawns[rs].W); SetVehicleExtra(m_delivery_vehicle.Handle, 2, false); } DecorSetInt(m_delivery_vehicle.Handle, "Delivery.Rental", DeliveryData.DecorCode); SetVehicleOnGroundProperly(m_delivery_vehicle.Handle); int rndNr = rnd.Next(1000, 9999); var plate = "DEL " + rndNr; SetVehicleNumberPlateText(m_delivery_vehicle.Handle, plate); TriggerServerEvent("ft_carKeys:createKey", "Jobs", plate); Exports["LegacyFuel"].SetFuel(m_delivery_vehicle.Handle, 100); if (aDeliveryType == DeliveryType.Scooter) { TriggerServerEvent("esx_deliveries:start", "deliveries (Scooter)"); Vector3 spawn_location2 = new Vector3(DeliveryData.ParkingSpawns[rs].X, DeliveryData.ParkingSpawns[rs].Y, DeliveryData.ParkingSpawns[rs].Y); Prop bag_ent = await World.CreateProp("prop_med_bag_01", spawn_location2, false, false); AttachEntityToEntity(bag_ent.Handle, m_delivery_vehicle.Handle, GetEntityBoneIndexByName(Game.PlayerPed.Handle, "misc_a"), 0.0f, -0.55f, 0.45f, 0.0f, 0.0f, 0.0f, true, true, false, true, 0, true); m_vehicle_attatchments.Add(bag_ent); } } catch (Exception e) { CitizenFX.Core.Debug.WriteLine($"{e.Message} : Exception thrown on SpawnDeliveryehicle()"); } }
private void deletePreviewVehicle() { if (previewVehicle != null) { previewVehicle.MarkAsNoLongerNeeded(); previewVehicle.Position = new Vector3(5000, 5000, 5000); Game.PlayerPed.CurrentVehicle.Delete(); previewVehicle = null; } }
public void EndJob() { currentTowTruck?.Delete(); currentTowTruck = null; currentJobVehicle?.AttachedBlips.ToList().ForEach(o => o.Delete()); currentJobVehicle = null; JobHandler.SetDutyState(false); JobHandler.SetPlayerJob(JobType.Civillian); RemoveJobVehicle(); }
static public async Task Draw() { if (CinematicMode.DoHideHud) { return; } if (CitizenFX.Core.Game.PlayerPed.IsInVehicle()) { if (ControlHelper.IsControlJustPressed(Control.MpTextChatTeam, true, ControlModifier.Ctrl)) { locked = !locked; (menuItemLock as MenuItemCheckbox).state = locked; } System.Drawing.Color textColor = System.Drawing.Color.FromArgb(160, 255, 255, 255); CitizenFX.Core.Vehicle vehicle = WorldProbe.GetVehicleInFrontOfPlayer(60.0f); if (!ReferenceEquals(vehicle, null) && !locked) { textColor = System.Drawing.Color.FromArgb(255, 255, 255, 255); modelName = Game.GetGXTEntry(Function.Call <string>(Hash.GET_DISPLAY_NAME_FROM_VEHICLE_MODEL, vehicle.Model)); modelClassName = Game.GetGXTEntry(CitizenFX.Core.Vehicle.GetClassDisplayName((VehicleClass)Function.Call <int>(Hash.GET_VEHICLE_CLASS, vehicle.Handle))); vehiclePlate = Function.Call <string>(Hash.GET_VEHICLE_NUMBER_PLATE_TEXT, vehicle.Handle); vehicleColor = Enum.GetName(typeof(VehicleColor), vehicle.Mods.PrimaryColor).AddSpacesToCamelCase(); vehicleNumOccupants = Function.Call <int>(Hash.GET_VEHICLE_NUMBER_OF_PASSENGERS, vehicle.Handle) + (Function.Call <bool>(Hash.IS_VEHICLE_SEAT_FREE, vehicle.Handle, -1) ? 0 : 1); vehicleSpeed = vehicle.Speed; initialized = true; } if (initialized) { float x = 0.18f; float y = 0.79f; FamilyRP.Roleplay.Client.UI.DrawText($"Speed: {2.24 * vehicleSpeed:0.0} mph / {3.60 * vehicleSpeed:0.0} kph", new Vector2(x, y), textColor, 0.25f); y += 0.02f; FamilyRP.Roleplay.Client.UI.DrawText($"Model: {modelName} ({modelClassName})", new Vector2(x, y), textColor, 0.25f); y += 0.02f; FamilyRP.Roleplay.Client.UI.DrawText($"Color: {vehicleColor}", new Vector2(x, y), textColor, 0.25f); y += 0.02f; FamilyRP.Roleplay.Client.UI.DrawText($"Plate: {vehiclePlate}", new Vector2(x, y), textColor, 0.25f); y += 0.02f; FamilyRP.Roleplay.Client.UI.DrawText($"{unitsMap[vehicleNumOccupants].FirstLetterToUpper()} occupant{(vehicleNumOccupants != 1 ? "s" : "")}", new Vector2(x, y), textColor, 0.25f); y += 0.02f; if (locked) { FamilyRP.Roleplay.Client.UI.DrawText($"RADAR LOCK", new Vector2(x, y), Color.FromArgb(255, 180, 180, 0), 0.25f); } } else { float x = 0.18f; float y = 0.79f; FamilyRP.Roleplay.Client.UI.DrawText($"RADAR ACTIVE", new Vector2(x, y), textColor, 0.25f); } } await Task.FromResult(0); }
static private async void ServiceVehicle(Command command) { try { CitizenFX.Core.Model vehicleModel = null; string vehicleName = ""; int result; if (Int32.TryParse(command.Args.Get(0), out result)) // if the argument is an int { if (result < 1 || result > (PoliceVehicles.Count)) { return; } vehicleName = PoliceVehicles[result - 1]; vehicleModel = new Model(PoliceVehicles[result - 1]); } else if (PoliceVehicles.Contains(command.Args.Get(0).ToLower())) { vehicleName = command.Args.Get(0); vehicleModel = new Model(command.Args.Get(0)); } else { return; } float heading = Game.PlayerPed.Heading + 90; if (heading > 180f) { heading -= 360f; } CitizenFX.Core.Vehicle vehicle = await World.CreateVehicle(vehicleModel, Game.PlayerPed.GetOffsetPosition(new Vector3(0, 2, 0)), heading); await BaseScript.Delay(50); vehicle.Mods.InstallModKit(); ModSettings.ForEach(m => Function.Call(Hash.SET_VEHICLE_MOD, vehicle.Handle, (int)m.modType, m.modIndex, m.modStatus)); if (VehicleSettings.ContainsKey(vehicleName)) { vehicle.Mods.Livery = VehicleSettings[vehicleName].Livery; if (VehicleSettings[vehicleName].Extras?.Count > 0) { VehicleSettings[vehicleName].Extras.ToList().ForEach(e => { Function.Call(Hash.SET_VEHICLE_EXTRA, vehicle.Handle, e.Key, e.Value); }); } } } catch (Exception) { } }
private async Task OnTick() { if (User.Data.job == "GrSix") { int vehicle = GetVehiclePedIsIn(PlayerPedId(), false); var veh = new CitizenFX.Core.Vehicle(vehicle); if (veh.Model.Hash == 1747439474 && IsPedInVehicle(GetPlayerPed(-1), vehicle, true) && Sync.Data.HasLocally(User.GetServerId(), "GrSix:MoneyBag")) { PutMoneyInCar(); } } }
private static async Task SapdRadar() { if (User.IsLogin() && (IsHudPreferenceSwitchedOn() || Screen.Hud.IsVisible)) { if (IsShowRadar) { var veh = GetVehiclePedIsUsing(PlayerPedId()); var v = new CitizenFX.Core.Vehicle(veh); if (!_isFreezeRadar) { var coordA = GetOffsetFromEntityInWorldCoords(veh, 0.0f, 1.0f, 1.0f); var coordB = GetOffsetFromEntityInWorldCoords(veh, 0.0f, 105.0f, 0.0f); var frontcar = StartShapeTestCapsule(coordA.X, coordA.Y, coordA.Z, coordB.X, coordB.Y, coordB.Z, 3.0f, 10, veh, 7); GetShapeTestResult(frontcar, ref _hit1, ref _endCoords1, ref _surfaceNormal1, ref _entityHit1); if (IsEntityAVehicle(_entityHit1)) { _radarInfoFront = $"{Vehicle.GetVehicleNumber(_entityHit1)} | {GetDisplayNameFromVehicleModel((uint) GetEntityModel(_entityHit1))} | {Math.Round(GetEntitySpeed(_entityHit1) * 2.23693629, 0)} MP/H"; } var bcoordB = GetOffsetFromEntityInWorldCoords(veh, 0.0f, -105.0f, 0.0f); var rearcar = StartShapeTestCapsule(coordA.X, coordA.Y, coordA.Z, bcoordB.X, bcoordB.Y, bcoordB.Z, 3.0f, 10, veh, 7); GetShapeTestResult(rearcar, ref _hit2, ref _endCoords2, ref _surfaceNormal2, ref _entityHit2); if (IsEntityAVehicle(_entityHit2)) { _radarInfoBack = $"{Vehicle.GetVehicleNumber(_entityHit2)} | {GetDisplayNameFromVehicleModel((uint) GetEntityModel(_entityHit2))} | {Math.Round(GetEntitySpeed(_entityHit2) * 2.23693629, 0)} MP/H"; } } var tag = User.Data.tag != "" && User.IsGos() ? User.Data.tag.ToUpper() + " | " : ""; DrawRectangle(371, 317, 350, 200, 0, 0, 0, 150, 2, 2); DrawText($"{tag}№{User.Data.id}", 363, 313, 0.6f, 255, 255, 255, 255, 4, 0, false, false, 0, 2, 2); DrawRectangle(371, 317, 350, 50, 3, 169, 244, 150, 2, 2); DrawText($"{VehInfo.GetDisplayName(v.Model.Hash).ToUpper()} | {Vehicle.GetVehicleNumber(veh)} | СИРЕНА: {(IsVehicleSirenOn(veh) ? "ВКЛ" : "ВЫКЛ")} | {_speed} MP/H", 363, 267, 0.4f, 3, 155, 229, 255, 4, 0, false, false, 0, 2, 2); DrawRectangle(371, 267, 350, 30, 2, 119, 189, 150, 2, 2); DrawText("ПЕРЕДНИЙ РАДАР", 363, 234, 0.3f, 255, 255, 255, 150, 4, 0, false, false, 0, 2, 2); DrawText("ЗАДНИЙ РАДАР", 362, 175, 0.3f, 255, 255, 255, 150, 4, 0, false, false, 0, 2, 2); DrawText(_radarInfoFront, 362, 217, 0.5f, 255, 255, 255, 255, 4, 0, false, false, 0, 2, 2); DrawText(_radarInfoBack, 361, 158, 0.5f, 255, 255, 255, 255, 4, 0, false, false, 0, 2, 2); DrawRectangle(361, 180, 330, 1, 255, 255, 255, 255, 2, 2); } if (!IsPedInAnyVehicle(GetPlayerPed(-1), true) && IsShowRadar) { _radarInfoFront = "В ожидании..."; _radarInfoBack = "В ожидании..."; IsShowRadar = false; } } }