Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
                };
            }
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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();
            }
        }
Exemple #6
0
 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);
 }