public static List <VehicleDefinition> GetAllPersonalVehiclesFromJson(string name) { List <VehicleDefinition> list = new List <VehicleDefinition>(); Directory.CreateDirectory(JsonFolder); string[] jsonFiles = Directory.GetFiles(JsonFolder, "*.json"); foreach (string t in jsonFiles) { //Wait(0); // avoid slowing down gameplay VehicleDefinition thisVehicleDefinition = JsonConvert.DeserializeObject <VehicleDefinition>(File.ReadAllText(t)); if (thisVehicleDefinition.Character != name) { continue; } if (!new Model(thisVehicleDefinition.VehicleName).IsVehicle) { Logger.Log("GetAllPersonalVehiclesFromJson(): " + thisVehicleDefinition.VehicleName + " does not appear to be a valid vehicle, skipping."); continue; } list.Add(thisVehicleDefinition); } Logger.Log("GetAllPersonalVehiclesFromJson(" + name + "): found " + list.Count + " vehicles"); return(list); }
private static void GeneratePersonalVehicleAndBlip(string playerName, VehicleDefinition vehicleDefinition, Vector4 spawnPoint) { Model model = new Model(vehicleDefinition.VehicleName).Hash; model.Request(); while (!model.IsLoaded) { Script.Yield(); } _personalVehicle = World.CreateVehicle(vehicleDefinition.VehicleName, new Vector3(spawnPoint.X, spawnPoint.Y, spawnPoint.Z), spawnPoint.H); if (_personalVehicle == null) { Logger.Log("GeneratePersonalVehicleAndBlip(): World.CreateVehicle() failed to create a vehicle, which should never happen."); return; } _personalVehicle.PlaceOnGround(); ConfigurePersonalVehicle(_personalVehicle, vehicleDefinition); _personalVehicle.LockStatus = VehicleLockStatus.Locked; _personalVehicle.PreviouslyOwnedByPlayer = true; Logger.Log("GeneratePersonalVehicleAndBlip(): placed a " + _personalVehicle.PrimaryColor + " " + (VehicleHash)_personalVehicle.Model.Hash + " at (" + Math.Round(spawnPoint.X, 3) + ", " + Math.Round(spawnPoint.Y, 3) + ", " + Math.Round(spawnPoint.Z, 3) + ")"); _personalVehicleBlip = _personalVehicle.AddBlip(); _personalVehicleBlip.Sprite = BlipSprite.PersonalVehicleCar; _personalVehicleBlip.Name = vehicleDefinition.VehicleName; _personalVehicleBlip.Scale = 0.8888f; PlayerBlipColors colorToUse = (PlayerBlipColors)System.Enum.Parse(typeof(PlayerBlipColors), playerName); Function.Call(Hash.SET_BLIP_COLOUR, _personalVehicleBlip, (int)colorToUse); }
private void AddMenuRequestASpecificVehicle(UIMenu menu) { var subMenu = _menuPool.AddSubMenu(menu, "Request A Specific Vehicle", "Request a specific personal vehicle nearby."); foreach (var vehicleDefinition in PersonalVehicleController.CurrentVehicleDefinitions(CurrentPlayerName)) { var eachItem = new UIMenuItem(vehicleDefinition.VehicleName, vehicleDefinition.Colors.Primary.ToString()); subMenu.AddItem(eachItem); menu.OnItemSelect += (sender, item, index) => { if (item != eachItem) { return; } UI.Notify("Requesting: " + item.Text); VehicleDefinition specificVehicleDefinition = PersonalVehicleController.CurrentVehicleDefinitions(CurrentPlayerName)[index]; PersonalVehicleController.DeployANewPersonalVehicle(CurrentPlayerName, isForDelivery: true, specificVehicleDefinition: specificVehicleDefinition); }; } }
public static void SaveCurrentVehicleToJson(string currentCharacterName) { Vehicle vehicle = Game.Player.Character.CurrentVehicle; // get the vehicle our player is in if (vehicle == null) { return; } Colors vehicleColors = new Colors(vehicle.PrimaryColor, vehicle.SecondaryColor, vehicle.PearlescentColor) { Rim = vehicle.RimColor, Neon = vehicle.NeonLightsColor, TireSmoke = vehicle.TireSmokeColor, Trim = vehicle.TrimColor, Dashboard = vehicle.DashboardColor }; VehicleDefinition vehicleDefinition = new VehicleDefinition(((VehicleHash)vehicle.Model.Hash).ToString(), vehicle.NumberPlate, currentCharacterName) { Colors = vehicleColors, NumberPlateType = vehicle.NumberPlateType, WheelType = vehicle.WheelType, WindowTint = vehicle.WindowTint, CustomTires = Function.Call <bool>(Hash.GET_VEHICLE_MOD_VARIATION, vehicle, 0), Spoilers = vehicle.GetMod(VehicleMod.Spoilers), FrontBumper = vehicle.GetMod(VehicleMod.FrontBumper), RearBumper = vehicle.GetMod(VehicleMod.RearBumper), SideSkirt = vehicle.GetMod(VehicleMod.SideSkirt), Exhaust = vehicle.GetMod(VehicleMod.Exhaust), Frame = vehicle.GetMod(VehicleMod.Frame), Grille = vehicle.GetMod(VehicleMod.Grille), Hood = vehicle.GetMod(VehicleMod.Hood), Fender = vehicle.GetMod(VehicleMod.Fender), RightFender = vehicle.GetMod(VehicleMod.RightFender), Roof = vehicle.GetMod(VehicleMod.Roof), Engine = vehicle.GetMod(VehicleMod.Engine), Brakes = vehicle.GetMod(VehicleMod.Brakes), Transmission = vehicle.GetMod(VehicleMod.Transmission), Horns = vehicle.GetMod(VehicleMod.Horns), Suspension = vehicle.GetMod(VehicleMod.Suspension), Armor = vehicle.GetMod(VehicleMod.Armor), FrontWheel = vehicle.GetMod(VehicleMod.FrontWheels), RearWheel = vehicle.GetMod(VehicleMod.BackWheels), PlateHolder = vehicle.GetMod(VehicleMod.PlateHolder), VanityPlates = vehicle.GetMod(VehicleMod.VanityPlates), TrimDesign = vehicle.GetMod(VehicleMod.TrimDesign), Ornaments = vehicle.GetMod(VehicleMod.Ornaments), Dashboard = vehicle.GetMod(VehicleMod.Dashboard), DialDesign = vehicle.GetMod(VehicleMod.DialDesign), DoorSpeakers = vehicle.GetMod(VehicleMod.DoorSpeakers), Seats = vehicle.GetMod(VehicleMod.Seats), SteeringWheels = vehicle.GetMod(VehicleMod.SteeringWheels), ColumnShifterLevers = vehicle.GetMod(VehicleMod.ColumnShifterLevers), Plaques = vehicle.GetMod(VehicleMod.Plaques), Speakers = vehicle.GetMod(VehicleMod.Speakers), Trunk = vehicle.GetMod(VehicleMod.Trunk), Hydraulics = vehicle.GetMod(VehicleMod.Hydraulics), EngineBlock = vehicle.GetMod(VehicleMod.EngineBlock), AirFilter = vehicle.GetMod(VehicleMod.AirFilter), Struts = vehicle.GetMod(VehicleMod.Struts), ArchCover = vehicle.GetMod(VehicleMod.ArchCover), Aerials = vehicle.GetMod(VehicleMod.Aerials), Trim = vehicle.GetMod(VehicleMod.Trim), Tank = vehicle.GetMod(VehicleMod.Tank), Windows = vehicle.GetMod(VehicleMod.Windows), Livery = vehicle.GetMod(VehicleMod.Livery), Turbo = vehicle.IsToggleModOn(VehicleToggleMod.Turbo), TireSmoke = vehicle.IsToggleModOn(VehicleToggleMod.TireSmoke), XenonHeadlights = vehicle.IsToggleModOn(VehicleToggleMod.XenonHeadlights), CanTiresBurst = vehicle.CanTiresBurst, VehicleExtra01 = vehicle.IsExtraOn(01), VehicleExtra02 = vehicle.IsExtraOn(02), VehicleExtra03 = vehicle.IsExtraOn(03), VehicleExtra04 = vehicle.IsExtraOn(04), VehicleExtra05 = vehicle.IsExtraOn(05), VehicleExtra06 = vehicle.IsExtraOn(06), VehicleExtra07 = vehicle.IsExtraOn(07), VehicleExtra08 = vehicle.IsExtraOn(08), VehicleExtra09 = vehicle.IsExtraOn(09), VehicleExtra10 = vehicle.IsExtraOn(10), VehicleExtra11 = vehicle.IsExtraOn(11), VehicleExtra12 = vehicle.IsExtraOn(12), VehicleExtra13 = vehicle.IsExtraOn(13), VehicleExtra14 = vehicle.IsExtraOn(14) }; string jsonString = JsonConvert.SerializeObject(vehicleDefinition, Formatting.Indented); string vehiclehashcode = GetHash(Md5Hash, jsonString); string fullPath = JsonFolder + currentCharacterName + "_" + vehicleDefinition.VehicleName + "_" + vehiclehashcode + ".json"; if (File.Exists(fullPath)) { Logger.Log(fullPath + " -> vehicle exists, skipping save."); return; } Logger.Log(fullPath + " -> saving vehicle..."); File.WriteAllText(fullPath, jsonString); }
internal static void DeployANewPersonalVehicle(string playerName, bool isForDelivery, VehicleDefinition specificVehicleDefinition = null) { Vector4 spawnPoint; CleanupPersonalVehicleAndBlip(); try { spawnPoint = FindASpawnPoint(isForDelivery); } catch { if (isForDelivery) { UI.Notify("Can't deliver a vehicle, try again later."); } return; } if (specificVehicleDefinition == null) { specificVehicleDefinition = CurrentVehicleDefinitions(playerName).PickRandom(); } GeneratePersonalVehicleAndBlip(playerName, specificVehicleDefinition, spawnPoint); if (isForDelivery) { DeliverPersonalVehicle(); } }
private static void ConfigurePersonalVehicle(Vehicle vehicle, VehicleDefinition vehicleDefinition) { vehicle.NumberPlate = vehicleDefinition.Plate; // for now I'm skipping the custom colors, I'm not actually sure if I can even set those... vehicle.PrimaryColor = vehicleDefinition.Colors.Primary; vehicle.SecondaryColor = vehicleDefinition.Colors.Secondary; vehicle.PearlescentColor = vehicleDefinition.Colors.Pearlescent; vehicle.RimColor = vehicleDefinition.Colors.Rim; vehicle.NeonLightsColor = vehicleDefinition.Colors.Neon; vehicle.TireSmokeColor = vehicleDefinition.Colors.TireSmoke; vehicle.TrimColor = (VehicleColor)vehicleDefinition.Trim; vehicle.DashboardColor = (VehicleColor)vehicleDefinition.Dashboard; vehicle.CanTiresBurst = vehicleDefinition.CanTiresBurst; vehicle.NumberPlateType = vehicleDefinition.NumberPlateType; vehicle.WheelType = vehicleDefinition.WheelType; vehicle.WindowTint = vehicleDefinition.WindowTint; vehicle.InstallModKit(); vehicle.SetMod(VehicleMod.Spoilers, vehicleDefinition.Spoilers, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.FrontBumper, vehicleDefinition.FrontBumper, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.RearBumper, vehicleDefinition.RearBumper, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.SideSkirt, vehicleDefinition.SideSkirt, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.Exhaust, vehicleDefinition.Exhaust, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.Frame, vehicleDefinition.Frame, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.Grille, vehicleDefinition.Grille, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.Hood, vehicleDefinition.Hood, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.Fender, vehicleDefinition.Fender, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.RightFender, vehicleDefinition.RightFender, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.Roof, vehicleDefinition.Roof, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.Engine, vehicleDefinition.Engine, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.Brakes, vehicleDefinition.Brakes, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.Transmission, vehicleDefinition.Transmission, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.Horns, vehicleDefinition.Horns, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.Suspension, vehicleDefinition.Suspension, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.Armor, vehicleDefinition.Armor, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.FrontWheels, vehicleDefinition.FrontWheel, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.BackWheels, vehicleDefinition.RearWheel, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.PlateHolder, vehicleDefinition.PlateHolder, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.VanityPlates, vehicleDefinition.VanityPlates, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.TrimDesign, vehicleDefinition.TrimDesign, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.Ornaments, vehicleDefinition.Ornaments, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.Dashboard, vehicleDefinition.Dashboard, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.DialDesign, vehicleDefinition.DialDesign, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.DoorSpeakers, vehicleDefinition.DoorSpeakers, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.Seats, vehicleDefinition.Seats, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.SteeringWheels, vehicleDefinition.SteeringWheels, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.ColumnShifterLevers, vehicleDefinition.ColumnShifterLevers, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.Plaques, vehicleDefinition.Plaques, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.Speakers, vehicleDefinition.Speakers, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.Trunk, vehicleDefinition.Trunk, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.Hydraulics, vehicleDefinition.Hydraulics, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.EngineBlock, vehicleDefinition.EngineBlock, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.AirFilter, vehicleDefinition.AirFilter, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.Struts, vehicleDefinition.Struts, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.ArchCover, vehicleDefinition.ArchCover, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.Aerials, vehicleDefinition.Aerials, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.Trim, vehicleDefinition.Trim, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.Tank, vehicleDefinition.Tank, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.Windows, vehicleDefinition.Windows, vehicleDefinition.CustomTires); vehicle.SetMod(VehicleMod.Livery, vehicleDefinition.Livery, vehicleDefinition.CustomTires); vehicle.ToggleMod(VehicleToggleMod.Turbo, vehicleDefinition.Turbo); vehicle.ToggleMod(VehicleToggleMod.TireSmoke, vehicleDefinition.TireSmoke); vehicle.ToggleMod(VehicleToggleMod.XenonHeadlights, vehicleDefinition.XenonHeadlights); vehicle.ToggleExtra(01, vehicleDefinition.VehicleExtra01); vehicle.ToggleExtra(02, vehicleDefinition.VehicleExtra02); vehicle.ToggleExtra(03, vehicleDefinition.VehicleExtra03); vehicle.ToggleExtra(04, vehicleDefinition.VehicleExtra04); vehicle.ToggleExtra(05, vehicleDefinition.VehicleExtra05); vehicle.ToggleExtra(06, vehicleDefinition.VehicleExtra06); vehicle.ToggleExtra(07, vehicleDefinition.VehicleExtra07); vehicle.ToggleExtra(08, vehicleDefinition.VehicleExtra08); vehicle.ToggleExtra(09, vehicleDefinition.VehicleExtra09); vehicle.ToggleExtra(10, vehicleDefinition.VehicleExtra10); vehicle.ToggleExtra(11, vehicleDefinition.VehicleExtra11); vehicle.ToggleExtra(12, vehicleDefinition.VehicleExtra12); vehicle.ToggleExtra(13, vehicleDefinition.VehicleExtra13); vehicle.ToggleExtra(14, vehicleDefinition.VehicleExtra14); }