Esempio n. 1
0
        public static void SetPrice(VehicleHash vehicle, int newPrice)
        {
            var edited = _pricesRepeository.GetSingle(x => x.Vehicle == vehicle);

            edited.Price = newPrice;
            _pricesRepeository.Update(edited);
        }
Esempio n. 2
0
        public override bool Run(string[] inputParams)
        {
            VehicleHash vehicleHash = VehicleHash.Adder;

            if (Enum.TryParse <VehicleHash>(inputParams[1], out vehicleHash))
            {
                Program.console.log.AppendLog(inputParams[1] + hashAppend + ((uint)vehicleHash).ToString());
            }
            else
            {
                PedHash pedHash = PedHash.Abigail;
                if (Enum.TryParse <PedHash>(inputParams[1], out pedHash))
                {
                    Program.console.log.AppendLog(inputParams[1] + hashAppend + ((uint)pedHash).ToString());
                }
                else
                {
                    WeaponHash weaponHash = WeaponHash.AdvancedRifle;
                    if (Enum.TryParse <WeaponHash>(inputParams[1], out weaponHash))
                    {
                        Program.console.log.AppendLog(inputParams[1] + hashAppend + ((uint)pedHash).ToString());
                    }
                    else
                    {
                        return(false);
                    }
                }
            }
            return(true);
        }
Esempio n. 3
0
        public static void OpenMenuConcess(Client sender, NetHandle pnj)
        {
            if (!CheckLicenceShop(sender, (string)API.shared.getEntityData(pnj, "Licence")))
            {
                API.shared.sendNotificationToPlayer(sender, "~r~[SHOP]~s~ Vous n'avez pas la licence requise.");
                return;
            }
            if (File.Exists("Vehicles.xml"))
            {
                var           licence = API.shared.getEntityData(sender, "pnj");
                List <string> Actions = new List <string>();
                List <string> label   = new List <string>();
                List <KeyValuePair <VehicleHash, int> > Products = new List <KeyValuePair <VehicleHash, int> >();
                string vclass = API.shared.getEntityData(pnj, "Concess");
                API.shared.setEntityData(sender, "pnj", pnj);

                DataTable result = Mysql.DBVehicles.GetConcessVehicles(vclass);
                if (result.Rows.Count != 0)
                {
                    foreach (DataRow row in result.Rows)
                    {
                        string      name2 = Convert.ToString(row["name"]);
                        VehicleHash hash  = (VehicleHash)Convert.ToInt32(row["vehiclehash"]);
                        string      name  = API.shared.getVehicleDisplayName(hash);
                        int         price = Convert.ToInt32((row["price"]));
                        Products.Add(new KeyValuePair <VehicleHash, int>(hash, price));
                        Actions.Add(name);
                        label.Add("Prix: " + price.ToString() + "$");
                    }
                }

                API.shared.setEntityData(sender, "ProductsOfUsingShop", Products);
                API.shared.triggerClientEvent(sender, "bettermenuManager", 190, "Concessionnaire", "Sélectionner une voiture:", false, Actions, label);
            }
        }
Esempio n. 4
0
        public DecorativeVehicle(VehicleHash hash, Vector3 position, float heading, int entry, bool sirenActive, string doors)
        {
            Position    = position;
            Heading     = heading;
            Model       = hash;
            EntryPoint  = entry;
            SirenActive = sirenActive;

            if (doors[0] == '1')
            {
                OpenDoors.Add(VehicleDoor.FrontLeftDoor);
            }
            if (doors[1] == '1')
            {
                OpenDoors.Add(VehicleDoor.FrontRightDoor);
            }
            if (doors[2] == '1')
            {
                OpenDoors.Add(VehicleDoor.BackLeftDoor);
            }
            if (doors[3] == '1')
            {
                OpenDoors.Add(VehicleDoor.BackRightDoor);
            }
        }
Esempio n. 5
0
    public void SpawnCarCommand(Client sender, VehicleHash model)
    {
        if (BannedVehicles.Contains(model))
        {
            sender.sendChatMessage("The vehicle ~r~" + model.ToString() + "~s~ is ~r~banned~s~!");
            return;
        }

        if (sender.vehicle != null && sender.vehicleSeat == -1)
        {
            NetHandle hv    = sender.vehicle.handle;
            var       owner = getVehicleOwner(hv);
            if (owner != null && VehicleHistory.ContainsKey(owner))
            {
                VehicleHistory[owner].Remove(hv);
            }
            sender.vehicle.delete();
        }

        var veh = API.createVehicle(model, sender.position, new Vector3(0, 0, sender.rotation.Z), 0, 0);

        veh.primaryColor     = Rnd.Next(158);
        veh.secondaryColor   = Rnd.Next(158);
        veh.numberPlate      = getRandomNumberPlate(sender);
        veh.numberPlateStyle = Rnd.Next(6);

        API.setPlayerIntoVehicle(sender, veh, -1);
    }
 public void commandSpawnCar(Client player, string modelname, int colour1 = 131, int colour2 = 131)
 {
     if (getAdminLevel(player) >= 3)
     {
         if (kroma_cnr.Vehicle.vehicle.vehicleNames.Contains(modelname.ToLower()))
         {
             if (colour1 >= 0 && colour1 <= 159 && colour2 >= 0 && colour2 <= 159)
             {
                 VehicleHash vehicle  = API.vehicleNameToModel(modelname);
                 Vector3     spawnPos = API.getEntityPosition(player.handle);
                 Vector3     spawnRot = API.getEntityRotation(player.handle);
                 int         spawnDim = API.getEntityDimension(player.handle);
                 API.sendChatMessageToPlayer(player, String.Format("Your {0} is attempting to spawn.", modelname));
                 kroma_cnr.Vehicle.vehicle.trySpawnNewVehicleForPlayer(player, vehicle, spawnPos, spawnRot, colour1, colour2, spawnDim);
             }
             else
             {
                 API.sendChatMessageToPlayer(player, "~#808080~", "Valid vehicle colour IDs are between 0 and 159.");
             }
         }
         else
         {
             API.sendChatMessageToPlayer(player, "~#808080~", "You have selected an invalid vehicle name.");
         }
     }
     else
     {
         API.sendChatMessageToPlayer(player, "~#808080~", "You must be admin level 3 to use this command.");
     }
 }
Esempio n. 7
0
        /// <summary>
        /// Возвращает грузоподъемность транспорта
        /// </summary>
        internal static int GetCarrying(VehicleHash hash)
        {
            var vehicleClass = (VehicleClass)API.shared.getVehicleClass(hash);

            switch (vehicleClass)
            {
            case VehicleClass.Motorcycles:
                return(100);

            case VehicleClass.Compacts:
            case VehicleClass.Super:
                return(300);

            case VehicleClass.Sports:
            case VehicleClass.Sports2:
                return(400);

            case VehicleClass.Coupes:
            case VehicleClass.Muscle:
            case VehicleClass.Sedans:
                return(500);

            case VehicleClass.OffRoad:
            case VehicleClass.SUVs:
                return(1200);

            case VehicleClass.Vans:
                return(2000);

            default:
                return(0);
            }
        }
Esempio n. 8
0
        public void AllVehicles(Client sender, string vehicle)
        {
            string NewText = vehicle.ToUpper();

            VehicleHash VehicleSpawn = API.vehicleNameToModel(vehicle);
            Vector3     vPos         = API.getEntityPosition(sender.handle);
            Vector3     vRot         = API.getEntityRotation(sender.handle);
            Vehicle     SpawnVehicle = API.createVehicle(VehicleSpawn, vPos, vRot, 1, 0);

            API.setVehicleNumberPlate(SpawnVehicle, sender.name);

            int Class = API.getVehicleClass(VehicleSpawn);


            if (Class == 15 || Class == 16)
            {
                API.setEntitySyncedData(SpawnVehicle, "VehicleType", "Aircraft");
                API.setEntitySyncedData(SpawnVehicle, "Tailnumber", RandomString(4));
                if (NewText == "TULA")
                {
                    API.setVehicleMod(SpawnVehicle, 4, 0);
                }
            }

            API.setPlayerIntoVehicle(sender, SpawnVehicle, -1);
        }
        /// <summary>
        /// Is Vehicle Entity by Hash useable by the user
        /// Info: It Adds additional to the return Value an EnitiyData to the player named "missedLicense" if there are some missing and save missed is true!
        /// </summary>
        /// <param name="player">The User</param>
        /// <param name="hash">The Entity by Hash</param>
        /// <returns></returns>
        public static bool CanUseVehicle(Client player, VehicleHash hash, bool saveMissed = false)
        {
            if ((VehicleClass)API.shared.getVehicleClass(hash) == VehicleClass.Cycles)
            {
                return(true);
            }
            VehicleHash[] faggios = { VehicleHash.Faggio, VehicleHash.Faggio2, VehicleHash.Faggio3 };
            if (Array.IndexOf(faggios, hash) > -1)
            {
                return(true);
            }

            List <ILicense> userLicenses = (List <ILicense>)player.getData("UserLicenses");

            foreach (ILicense lic in userLicenses)
            {
                var memberInfo = lic.GetType().BaseType;
                if (memberInfo != null && memberInfo.Name.Equals("VehicleLicense"))
                {
                    if (((VehicleLicense)lic).IsVehicleCoveredByThisLicense(hash))
                    {
                        return(true);
                    }
                }
            }

            if (saveMissed)
            {
                SetPlayerMissedVehicleLicenses(player, hash);
            }
            return(false);
        }
Esempio n. 10
0
 public MotoShopDecoration(VehicleHash vn, Vector3 pos, float rot)
 {
     VehicleModel = vn;
     Position     = pos;
     Rotation     = new Vector3(3f, 0f, rot);
     RandomColor  = true;
 }
Esempio n. 11
0
        public void addObjectiveVehicle(Mission instance, Vector3 location, VehicleHash type)
        {
            NetHandle veh = API.createVehicle(type, location.Around(5), new Vector3(), 52, 52);

            API.setEntityData(veh, "Mission", instance);
            instance.addVehicle(veh);
        }
Esempio n. 12
0
        public static async void WritePlayerStat(VehicleHash hash, int data)
        {
            string str = encrypt(string.Format("{0}>{1}", (int)hash, data));

            using (var fstream = new FileStream("scripts\\driftstats.stat", FileMode.OpenOrCreate))
            {
                int seekPos = 0;
                byte[] buffer = new byte[24];

                while (seekPos < fstream.Length)
                {
                    fstream.Seek(seekPos, SeekOrigin.Begin);
                    await fstream.ReadAsync(buffer, 0, 24);
                    var line = decrypt(Encoding.ASCII.GetString(buffer));
                    var keyVal = line.Substring(0, line.IndexOf('>'));
                    var value = line.Substring(line.IndexOf('>') + 1);
                    if (keyVal == ((int)hash).ToString())
                    {
                        using (StreamWriter writer = new StreamWriter(fstream))
                        {
                            writer.BaseStream.Seek(seekPos, SeekOrigin.Begin);
                            writer.BaseStream.Write(Encoding.ASCII.GetBytes(str), 0, 24);
                        }
                        return;
                    }
                    seekPos += 24;
                }
            }

            using (StreamWriter writer = File.AppendText("scripts\\driftstats.stat"))
            {
                if (writer.BaseStream.CanWrite)
                    writer.Write(str);
            }
        }
Esempio n. 13
0
        public EnterInVehicle( Vector3 position, VehicleHash vehicleHash )
        {
            this.name = "Enter in Vehicle";

            this.position = position;
            this.vehicleHash = vehicleHash;
        }
Esempio n. 14
0
        public void SpawnVehicle(Client client, VehicleHash carType)
        {
            var vehicle = NAPI.Vehicle.CreateVehicle(carType, client.Position, new Vector3(), 1, 1, "123");

            NAPI.Player.SetPlayerIntoVehicle(client, vehicle, -1);
            NAPI.Notification.SendNotificationToPlayer(client, $"{carType} Spawned!");
        }
Esempio n. 15
0
        public void VehicleSpawn(Client sender, VehicleHash vehicle)
        {
            Vehicle spawnedVehicle = API.createVehicle(vehicle, sender.position, sender.rotation, 0, 0);

            API.setPlayerIntoVehicle(sender, spawnedVehicle, -1);
            API.setVehicleEngineStatus(spawnedVehicle, true);
        }
Esempio n. 16
0
        public EnterInVehicle(Vector3 position, VehicleHash vehicleHash)
        {
            this.name = "Enter in Vehicle";

            this.position    = position;
            this.vehicleHash = vehicleHash;
        }
Esempio n. 17
0
    public void SpawnCarCommand(Client sender, VehicleHash model)
    {
        if (API.isPlayerInAnyVehicle(sender))
        {
            sender.sendChatMessage("~r~Please exit your current vehicle first.");
            return;
        }
        if (BannedVehicles.Contains(model))
        {
            sender.sendChatMessage("The vehicle ~r~" + model.ToString() + "~s~ is ~r~banned~s~!");
            return;
        }

        var veh = API.createVehicle(model, sender.position, new Vector3(0, 0, sender.rotation.Z), 0, 0);

        veh.primaryColor     = Rnd.Next(158);
        veh.secondaryColor   = Rnd.Next(158);
        veh.numberPlate      = getRandomNumberPlate(sender);
        veh.numberPlateStyle = Rnd.Next(6);

        Handle(sender).VehicleHistory.Add(veh);
        if (Handle(sender).VehicleHistory.Count > 2)
        {
            API.deleteEntity(Handle(sender).VehicleHistory[0]);
            Handle(sender).VehicleHistory.RemoveAt(0);
        }

        API.setPlayerIntoVehicle(sender, veh, -1);
    }
Esempio n. 18
0
        private string GetVehicleModel(VehicleHash vehicleHash)
        {
            // Get the price of the vehicle
            CarShopVehicleModel carDealerVehicle = Constants.CARSHOP_VEHICLE_LIST.Where(vehicle => vehicle.hash == vehicleHash).FirstOrDefault();

            return(carDealerVehicle == null ? string.Empty : carDealerVehicle.hash.ToString());
        }
Esempio n. 19
0
 // scenario helpers
 public Vehicle AddParkedVehicle(
     float x, float y, float z, float heading,
     VehicleHash vehicleHash = VehicleHash.Prairie
     )
 {
     return(CreateParkedVehicle(new Vector3(x, y, z), heading, vehicleHash));
 }
Esempio n. 20
0
        public static VehicleD createVehicle(Account owner, string model, Vector3 pos, Vector3 rot)
        {
            if (isTableCreated())
            {
                con             = new MySqlConnection(conString);
                cmd             = con.CreateCommand();
                cmd.CommandText = "INSERT INTO VehicleData (Name,model,color1,color2,spawnX,spawnY,spawnZ,spawnRX,spawnRY,spawnRZ) VALUES (@name,@model,@color1,@color2,@spawnX,@spawnY,@spawnZ,@spawnRX,@spawnRY,@spawnRZ)";
                con.Open();
                cmd.Parameters.AddWithValue("@name", owner.name);
                cmd.Parameters.AddWithValue("@model", model);
                cmd.Parameters.AddWithValue("@color1", 4);
                cmd.Parameters.AddWithValue("@color2", 12);
                cmd.Parameters.AddWithValue("@spawnX", pos.X);
                cmd.Parameters.AddWithValue("@spawnY", pos.Y);
                cmd.Parameters.AddWithValue("@spawnZ", pos.Z);

                cmd.Parameters.AddWithValue("@spawnRX", rot.X);
                cmd.Parameters.AddWithValue("@spawnRY", rot.Y);
                cmd.Parameters.AddWithValue("@spawnRZ", rot.Z);
                VehicleHash vh = API.shared.vehicleNameToModel(model);

                Vehicle v = API.shared.createVehicle(vh, pos, rot, 4, 12);
                v.numberPlate = "LS" + cmd.LastInsertedId.ToString("D4");
                VehicleD vd = new VehicleD(v, owner, cmd.LastInsertedId.ToString());

                cmd.ExecuteNonQuery();
                con.Close();
                return(vd);
            }
            return(null);
        }
Esempio n. 21
0
        public void CatalogoCommand(Client player)
        {
            int carShop = GetClosestCarShop(player);

            if (carShop > -1)
            {
                // We get the vehicle list
                List <CarShopVehicleModel> carList = GetVehicleListInCarShop(carShop);

                // Getting the speed for each vehicle in the list
                foreach (CarShopVehicleModel carShopVehicle in carList)
                {
                    carShopVehicle.model = carShopVehicle.hash.ToString();
                    VehicleHash vehicleHash = NAPI.Util.VehicleNameToModel(carShopVehicle.model);
                    carShopVehicle.speed = (int)Math.Round(NAPI.Vehicle.GetVehicleMaxSpeed(vehicleHash) * 3.6f);
                }

                // We show the catalog
                player.TriggerEvent("showVehicleCatalog", NAPI.Util.ToJson(carList), carShop);
            }
            else
            {
                player.SendChatMessage(Constants.COLOR_ERROR + ErrRes.not_in_carshop);
            }
        }
Esempio n. 22
0
        public static void loadVehicles()
        {
            if (isTableCreated())
            {
                con             = new MySqlConnection(conString);
                cmd             = con.CreateCommand();
                cmd.CommandText = "SELECT * FROM VehicleData";

                con.Open();
                reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    int         id     = reader.GetInt32("id");
                    VehicleHash model  = API.shared.vehicleNameToModel(reader.GetString("model"));
                    Vector3     pos    = new Vector3(reader.GetDouble("spawnX"), reader.GetDouble("spawnY"), reader.GetDouble("spawnZ"));
                    Vector3     rot    = new Vector3(reader.GetDouble("spawnRX"), reader.GetDouble("spawnRY"), reader.GetDouble("spawnRZ"));
                    Account     owner  = methods.getMethods.getAccountByName(reader.GetString("Name"));
                    int         color1 = reader.GetInt32("color1");
                    int         color2 = reader.GetInt32("color2");
                    Vehicle     v      = API.shared.createVehicle(model, pos, rot, color1, color2);
                    v.numberPlate = "LS" + id.ToString("D4");
                    VehicleD vd = new VehicleD(v, owner, id.ToString());
                }
                con.Close();
            }
        }
Esempio n. 23
0
        public void spawnVehicle(Player player, string vehicle)
        {
            Console.WriteLine("spawning");
            VehicleHash veh = NAPI.Util.VehicleNameToModel(vehicle);

            NAPI.Vehicle.CreateVehicle(veh, player.Position, 0, 0, 0, "PLATE_HERE");
        }
 public CarShopVehicleModel(VehicleHash hash, int carShop, int type, int price)
 {
     this.hash    = hash;
     this.carShop = carShop;
     this.type    = type;
     this.price   = price;
 }
Esempio n. 25
0
        /// <summary>
        /// Returns vehicle blip sprite
        /// </summary>
        /// <param name="vehicle"></param>
        /// <returns></returns>
        public static BlipSprite Get(Vehicle vehicle)
        {
            VehicleHash modelHash = (VehicleHash)vehicle.Model.Hash;

            switch ((VehicleClass)Function.Call <int>(Hash.GET_VEHICLE_CLASS, vehicle))
            {
            case VehicleClass.Helicopters:
                return(BlipSprite.HelicopterAnimated);

            case VehicleClass.Planes:
                return(GetPlane(modelHash));

            case VehicleClass.Boats:
                return(BlipSprite.Speedboat);
            }

            switch (modelHash)
            {
            case VehicleHash.Insurgent:
            case VehicleHash.Insurgent2:
            case VehicleHash.Limo2:
                return(BlipSprite.GunCar);

            case VehicleHash.Rhino:
                return(BlipSprite.Tank);
            }

            return(BlipSprite.Standard);
        }
Esempio n. 26
0
        public void SpawnCarCommand(Client sender, VehicleHash model)
        {
            var veh = API.createVehicle(model, sender.position, new Vector3(0, 0, sender.rotation.Z), 0, 0);

            API.setVehicleEngineStatus(veh, false);
            API.setPlayerIntoVehicle(sender, veh, -1);
        }
Esempio n. 27
0
        public void spawnveh_cmd(Player player, VehicleHash model, int color1 = 0, int color2 = 0, int dimension = 0)
        {
            var account = player.GetAccount();

            if (account.AdminLevel < 4)
            {
                return;
            }
            var pos = player.Position;
            var rot = player.Rotation;

            var veh = CreateVehicle(model, pos, rot, "ABC123", 0, GameVehicle.VehTypeTemp, color1, color2, dimension);

            spawn_vehicle(veh);

            NAPI.Player.SetPlayerIntoVehicle(player, veh.Entity, -1);

            if (API.Shared.GetVehicleClass(veh.VehModel) != 13) //If not cycle
            {
                NAPI.Vehicle.SetVehicleEngineStatus(veh.Entity, true);
            }

            NAPI.Chat.SendChatMessageToPlayer(player, "You have spawned a " + model);
            NAPI.Chat.SendChatMessageToPlayer(player, "This vehicle is unsaved and may behave incorrectly.");
        }
Esempio n. 28
0
        public void OnPlayerEnterVehicle(Client player, Vehicle vehicle, sbyte seatId)
        {
            if (vehicle.GetData(EntityData.VEHICLE_FACTION) == Constants.FACTION_DRIVING_SCHOOL)
            {
                VehicleHash vehicleHash = (VehicleHash)vehicle.Model;
                if (player.HasData(EntityData.PLAYER_DRIVING_EXAM) && player.GetData(EntityData.PLAYER_DRIVING_EXAM) == Constants.CAR_DRIVING_PRACTICE)
                {
                    // We check the class of the vehicle
                    if (NAPI.Vehicle.GetVehicleClass(vehicleHash) == Constants.VEHICLE_CLASS_SEDANS)
                    {
                        int checkPoint = player.GetData(EntityData.PLAYER_DRIVING_CHECKPOINT);
                        if (drivingSchoolTimerList.TryGetValue(player.Value, out Timer drivingSchoolTimer) == true)
                        {
                            drivingSchoolTimer.Dispose();
                            drivingSchoolTimerList.Remove(player.Value);
                        }
                        Checkpoint newCheckpoint = NAPI.Checkpoint.CreateCheckpoint(0, Constants.CAR_LICENSE_CHECKPOINTS[checkPoint], Constants.CAR_LICENSE_CHECKPOINTS[checkPoint + 1], 2.5f, new Color(198, 40, 40, 200));
                        player.SetData(EntityData.PLAYER_DRIVING_COLSHAPE, newCheckpoint);
                        player.SetData(EntityData.PLAYER_VEHICLE, vehicle);

                        // We place a mark on the map
                        player.TriggerEvent("showLicenseCheckpoint", Constants.CAR_LICENSE_CHECKPOINTS[checkPoint]);
                    }
                    else
                    {
                        player.WarpOutOfVehicle();
                        player.SendChatMessage(Constants.COLOR_ERROR + ErrRes.vehicle_driving_not_suitable);
                    }
                }
                else if (player.HasData(EntityData.PLAYER_DRIVING_EXAM) && player.GetData(EntityData.PLAYER_DRIVING_EXAM) == Constants.MOTORCYCLE_DRIVING_PRACTICE)
                {
                    // We check the class of the vehicle
                    if (NAPI.Vehicle.GetVehicleClass(vehicleHash) == Constants.VEHICLE_CLASS_MOTORCYCLES)
                    {
                        int checkPoint = player.GetData(EntityData.PLAYER_DRIVING_CHECKPOINT);
                        if (drivingSchoolTimerList.TryGetValue(player.Value, out Timer drivingSchoolTimer) == true)
                        {
                            drivingSchoolTimer.Dispose();
                            drivingSchoolTimerList.Remove(player.Value);
                        }
                        Checkpoint newCheckpoint = NAPI.Checkpoint.CreateCheckpoint(0, Constants.BIKE_LICENSE_CHECKPOINTS[checkPoint], Constants.BIKE_LICENSE_CHECKPOINTS[checkPoint + 1], 2.5f, new Color(198, 40, 40, 200));
                        player.SetData(EntityData.PLAYER_DRIVING_COLSHAPE, newCheckpoint);
                        player.SetData(EntityData.PLAYER_VEHICLE, vehicle);

                        // We place a mark on the map
                        player.TriggerEvent("showLicenseCheckpoint", Constants.BIKE_LICENSE_CHECKPOINTS[checkPoint]);
                    }
                    else
                    {
                        player.WarpOutOfVehicle();
                        player.SendChatMessage(Constants.COLOR_ERROR + ErrRes.vehicle_driving_not_suitable);
                    }
                }
                else
                {
                    player.WarpOutOfVehicle();
                    player.SendChatMessage(Constants.COLOR_ERROR + ErrRes.not_in_car_practice);
                }
            }
        }
Esempio n. 29
0
 public void veh(Client player, VehicleHash model)
 {
     Vector3 pos = API.getEntityPosition(player);
     Vector3 rot = API.getEntityRotation(player);
     Vehicle v   = createVehicleHelper(model, pos, rot, API.getEntityData(player, "CHAR_ID"));
     //API.setVehicleEngineStatus(v, true);
 }
Esempio n. 30
0
        public void v(Client player, string carname)
        {
            VehicleHash vHash = API.vehicleNameToModel(carname);

            if (vHash == 0)
            {
                API.sendChatMessageToPlayer(player, "~r~Error; ~w~This car model doesn't exist.");
                return;
            }
            var pos = API.getEntityPosition(player);
            // var spawnPos = pos; // Car Spawnpoint
            var heading = API.getEntityRotation(player);

            var car = API.createVehicle(vHash, pos, new Vector3(0, 0, heading.Z), 0, 0);

            API.setEntityData(car, "RESPAWNABLE", false);
            API.setEntityData(car, "SPAWN_POS", pos);
            API.setEntityData(car, "SPAWN_ROT", heading);
            API.sendChatMessageToPlayer(player, "Server", "~w~A ~r~" + carname + "~w~ has been spawned for you. Enjoy!");
            API.setPlayerIntoVehicle(player, car, 0);
            CarInfo car2 = new CarInfo(car, player); //make a new object out of it

            Cars.Add(car2);                          //add to object list
            foreach (Player pl in Players)
            {
                if (pl.player == player)
                {
                    pl.carHandle = car;
                }
            }
        }
Esempio n. 31
0
        private int GetVehiclePrice(VehicleHash vehicleHash)
        {
            // Get the price of the vehicle
            CarShopVehicleModel carDealerVehicle = Constants.CARSHOP_VEHICLE_LIST.Where(vehicle => vehicle.hash == vehicleHash).FirstOrDefault();

            return(carDealerVehicle == null ? 0 : carDealerVehicle.price);
        }
        public void OnPlayerEnterVehicle(Client player, Vehicle vehicle, sbyte seatId)
        {
            if (NAPI.Data.GetEntityData(vehicle, EntityData.VEHICLE_FACTION) == Constants.FACTION_DRIVING_SCHOOL)
            {
                VehicleHash vehicleHash = (VehicleHash)NAPI.Entity.GetEntityModel(vehicle);
                if (NAPI.Data.HasEntityData(player, EntityData.PLAYER_DRIVING_EXAM) && NAPI.Data.GetEntityData(player, EntityData.PLAYER_DRIVING_EXAM) == Constants.CAR_DRIVING_PRACTICE)
                {
                    // We check the class of the vehicle
                    if (NAPI.Vehicle.GetVehicleClass(vehicleHash) == Constants.VEHICLE_CLASS_SEDANS)
                    {
                        int checkPoint = NAPI.Data.GetEntityData(player, EntityData.PLAYER_DRIVING_CHECKPOINT);
                        if (drivingSchoolTimerList.TryGetValue(player.Value, out Timer drivingSchoolTimer) == true)
                        {
                            drivingSchoolTimer.Dispose();
                            drivingSchoolTimerList.Remove(player.Value);
                        }
                        Checkpoint newCheckpoint = NAPI.Checkpoint.CreateCheckpoint(0, Constants.CAR_LICENSE_CHECKPOINTS[checkPoint], Constants.CAR_LICENSE_CHECKPOINTS[checkPoint + 1], 2.5f, new Color(198, 40, 40, 200));
                        NAPI.Data.SetEntityData(player, EntityData.PLAYER_DRIVING_COLSHAPE, newCheckpoint);
                        NAPI.Data.SetEntityData(player, EntityData.PLAYER_VEHICLE, vehicle);

                        // We place a mark on the map
                        NAPI.ClientEvent.TriggerClientEvent(player, "showLicenseCheckpoint", Constants.CAR_LICENSE_CHECKPOINTS[checkPoint]);
                    }
                    else
                    {
                        NAPI.Player.WarpPlayerOutOfVehicle(player);
                        NAPI.Chat.SendChatMessageToPlayer(player, Constants.COLOR_ERROR + Messages.ERR_VEHICLE_DRIVING_NOT_SUITABLE);
                    }
                }
                else if (NAPI.Data.HasEntityData(player, EntityData.PLAYER_DRIVING_EXAM) && NAPI.Data.GetEntityData(player, EntityData.PLAYER_DRIVING_EXAM) == Constants.MOTORCYCLE_DRIVING_PRACTICE)
                {
                    // We check the class of the vehicle
                    if (NAPI.Vehicle.GetVehicleClass(vehicleHash) == Constants.VEHICLE_CLASS_MOTORCYCLES)
                    {
                        int checkPoint = NAPI.Data.GetEntityData(player, EntityData.PLAYER_DRIVING_CHECKPOINT);
                        if (drivingSchoolTimerList.TryGetValue(player.Value, out Timer drivingSchoolTimer) == true)
                        {
                            drivingSchoolTimer.Dispose();
                            drivingSchoolTimerList.Remove(player.Value);
                        }
                        Checkpoint newCheckpoint = NAPI.Checkpoint.CreateCheckpoint(0, Constants.BIKE_LICENSE_CHECKPOINTS[checkPoint], Constants.BIKE_LICENSE_CHECKPOINTS[checkPoint + 1], 2.5f, new Color(198, 40, 40, 200));
                        NAPI.Data.SetEntityData(player, EntityData.PLAYER_DRIVING_COLSHAPE, newCheckpoint);
                        NAPI.Data.SetEntityData(player, EntityData.PLAYER_VEHICLE, vehicle);

                        // We place a mark on the map
                        NAPI.ClientEvent.TriggerClientEvent(player, "showLicenseCheckpoint", Constants.BIKE_LICENSE_CHECKPOINTS[checkPoint]);
                    }
                    else
                    {
                        NAPI.Player.WarpPlayerOutOfVehicle(player);
                        NAPI.Chat.SendChatMessageToPlayer(player, Constants.COLOR_ERROR + Messages.ERR_VEHICLE_DRIVING_NOT_SUITABLE);
                    }
                }
                else
                {
                    NAPI.Player.WarpPlayerOutOfVehicle(player);
                    NAPI.Chat.SendChatMessageToPlayer(player, Constants.COLOR_ERROR + Messages.ERR_NOT_IN_CAR_PRACTICE);
                }
            }
        }
Esempio n. 33
0
        public GoToPositionInVehicle( Vector3 position, VehicleHash newVehicleHash, Vector3 newVehiclePosition, Vector3 newVehicleRotation, bool newTeleportPlayerInVehicle )
        {
            this.name = "Go to position in vehicle";

            destination = position;
            vehicleHash = newVehicleHash;
            vehiclePosition = newVehiclePosition;
            vehicleRotation = newVehicleRotation;
            teleportPlayerInVehicle = newTeleportPlayerInVehicle;
        }
Esempio n. 34
0
        public DecorativeVehicle(VehicleHash hash, Vector3 position, float heading, int entry, bool sirenActive, string doors)
        {
            Position = position;
            Heading = heading;
            Model = hash;
            EntryPoint = entry;
            SirenActive = sirenActive;

            if (doors[0] == '1') OpenDoors.Add(VehicleDoor.FrontLeftDoor);
            if (doors[1] == '1') OpenDoors.Add(VehicleDoor.FrontRightDoor);
            if (doors[2] == '1') OpenDoors.Add(VehicleDoor.BackLeftDoor);
            if (doors[3] == '1') OpenDoors.Add(VehicleDoor.BackRightDoor);
        }
Esempio n. 35
0
        public static async Task<int> ReadPlayerStat(VehicleHash hash)
        {
            using (var fstream = new FileStream("scripts\\driftstats.stat", FileMode.OpenOrCreate))
            {
                int seekPos = 0;
                byte[] buffer = new byte[24];

                while (seekPos < fstream.Length)
                {
                    fstream.Seek(seekPos, SeekOrigin.Begin);
                    await fstream.ReadAsync(buffer, 0, 24);
                    var line = decrypt(Encoding.ASCII.GetString(buffer));
                    var keyVal = line.Substring(0, line.IndexOf('>'));
                    var value = line.Substring(line.IndexOf('>') + 1);
                    if (keyVal == ((int)hash).ToString())
                        return Convert.ToInt32(value);
                    seekPos += 24;
                }
                return -1;
            }
        }
Esempio n. 36
0
 public void GiveVehicle(VehicleHash vh)
 {
     Vehicle v = World.CreateVehicle(vh, ped.Position);
     ped.SetIntoVehicle(v, VehicleSeat.Driver);
 }
Esempio n. 37
0
 private Vehicle SpawnCar(VehicleHash vehname, Vector3 pos, float heading)
 {
     //return Function.Call<Vehicle>(Hash.CREATE_VEHICLE, vehname.ToString(), pos.X, pos.Y, pos.Z, heading, nethandle, vehhandle);
     return World.CreateVehicle(((Model)vehname), pos, heading);
 }
Esempio n. 38
0
 public void SpawnCar(VehicleHash vehname, Vector3 pos, float heading)
 {
     Vehicle vehicle = World.CreateVehicle(((Model)vehname), pos, heading);
     vehicle.PlaceOnGround();
     vehicle.MarkAsNoLongerNeeded();
     vehicle.NumberPlate = "YTrainer";
     Game.Player.Character.SetIntoVehicle(vehicle, VehicleSeat.Driver);
     UI.Notify("Spawned ~g~" + vehicle.FriendlyName);
 }
Esempio n. 39
0
 // Vehicle spawner related
 internal static void SpawnVehicle(VehicleHash vehicle)
 {
     Vehicle spawnedVehicle = World.CreateVehicle(vehicle, Game.Player.Character.Position + (Game.Player.Character.ForwardVector * 6.5f), Game.Player.Character.Heading + 90.0f);
     spawnedVehicle.PlaceOnGround();
     spawnedVehicle.EngineRunning = true;
     if (spawnedVehicle.Exists() && IsWarpInSpawnedVehicleEnabled)
     {
         spawnedVehicle.Heading = Game.Player.Character.Heading;
         Game.Player.Character.SetIntoVehicle(spawnedVehicle, VehicleSeat.Driver);
     }
     spawnedVehicle.MarkAsNoLongerNeeded();
 }
Esempio n. 40
0
        private void OnTick(object sender, EventArgs e)
        {
            menuPool.ProcessMenus();
            switch(_selectedCar)
            {
                case 0:
                    selectedCarHash = VehicleHash.Buffalo;
                    break;
                case 1:
                    selectedCarHash = VehicleHash.Bullet;
                    break;
                case 2:
                    selectedCarHash = VehicleHash.Adder;
                    break;
                case 3:
                    selectedCarHash = VehicleHash.Zentorno;
                    break;
                case 4:
                    selectedCarHash = VehicleHash.Banshee;
                    break;
                case 5:
                    selectedCarHash = VehicleHash.BType;
                    break;
                case 6:
                    selectedCarHash = VehicleHash.Bati2;
                    break;
                case 7:
                    selectedCarHash = VehicleHash.EntityXF;
                    break;
            }

            Vector3 playerPos = player.Position;
            if (active1 == true)
            {
                float distance = World.GetDistance(player.Position, new Vector3(custom1x, custom1y, custom1z));

                if (distance <= 19)
                {
                    UI.Notify("Race ~y~Over! ~s~Stay tuned for more!");
                    active1 = false;
                    waypointSet = false;
                }
                if (player.IsInVehicle() == false)
                {
                    UI.ShowSubtitle("~g~Race will start when you enter the EMPTY vehicle.");
                }
                else
                {
                    UI.ShowSubtitle("");
                }
            }
            else
            {
                waypointSet = false;

            }
            if (active2 == true)
            {
                float distance = World.GetDistance(player.Position, new Vector3(custom2x, custom2y, custom2z));

                if (distance <= 19)
                {
                    UI.Notify("Race ~y~Over! ~s~Stay tuned for more!");
                    active2 = false;
                    waypointSet = false;
                }
                if (player.IsInVehicle() == false)
                {
                    UI.ShowSubtitle("~g~Race will start when you enter the EMPTY vehicle.");
                }
                else
                {
                    UI.ShowSubtitle("");
                }
            }
            else
            {
                waypointSet = false;

            }
            if (active3 == true)
            {
                float distance = World.GetDistance(player.Position, new Vector3(custom2x, custom2y, custom2z));

                if (distance <= 19)
                {
                    UI.Notify("Race ~y~Over! ~s~Stay tuned for more!");
                    active3 = false;
                    waypointSet = false;
                }
                if (player.IsInVehicle() == false)
                {
                    UI.ShowSubtitle("~g~Race will start when you enter the EMPTY vehicle.");
                }
                else
                {
                    UI.ShowSubtitle("");
                }
            }
            else
            {
                waypointSet = false;

            }
            if (active4 == true)
            {
                float distance = World.GetDistance(player.Position, dest);

                if (distance <= 19)
                {
                    UI.Notify("Race ~y~Over! ~s~Stay tuned for more!");
                    active4 = false;
                }
                if (player.IsInVehicle() == false)
                {
                    UI.ShowSubtitle("~g~Race will start when you enter the EMPTY vehicle.");
                }
                else
                {
                    UI.ShowSubtitle("");
                }
            }
            else
            {

            }
            if (showCoords)
            {
                UI.ShowSubtitle("X: " + player.Position.X + " Y: " + player.Position.Y + " Z: " + player.Position.Z + " Heading: " + player.Heading);
            }
        }
Esempio n. 41
0
        private void OnTick(object sender, EventArgs e)
        {
            if (UserSettings.ReduceVehicles)
                Function.Call(Hash.SET_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME, 0.3f);

            if (_msgTimer.Enabled && Game.GameTime > _msgTimer.Waiter)
            {
                Function.Call(Hash._REMOVE_NOTIFICATION, msgHandle);
                _msgTimer.Enabled = false;
            }

            if (_scaleformDisplayTimer.Enabled)
            {
                _scaleform.Render2D();

                if (Game.GameTime > _scaleformDisplayTimer.Waiter)
                {
                    _scaleform.CallFunction("TRANSITION_OUT");
                    _scaleformDisplayTimer.Enabled = false;
                    _scaleformFadeTimer.Start();
                }
            }

            if (_scaleformFadeTimer.Enabled)
            {
                _scaleform.Render2D();

                if (Game.GameTime > _scaleformFadeTimer.Waiter)
                {
                    _scaleformFadeTimer.Enabled = false;
                }
            }

            if (Game.Player.Character.IsInVehicle() && Function.Call<bool>(Hash.IS_THIS_MODEL_A_CAR, Game.Player.Character.CurrentVehicle.Model.Hash))
            {
                var player = Game.Player.Character;
                var vehicle = player.CurrentVehicle;
                var hash = (VehicleHash)vehicle.Model.Hash;
                var multiplier = ActiveTextMonitor.Multiplier;

                if (_currentVehicle != hash)
                {
                    _currentVehicle = hash;
                    _currentVehicleStat = PlayerStats.ReadPlayerStat(_currentVehicle).Result;
                }

                if (multiplier > 49 && multiplier == lastMultiplier && multiplier > _currentVehicleStat)
                {
                    _currentVehicleStat = multiplier;
                    PlayerStats.WritePlayerStat(_currentVehicle, _currentVehicleStat);

                    if (UserSettings.HighScoreOverlay)
                    {
                        if (UserSettings.EnableSound)
                        {
                            Function.Call(Hash.PLAY_MISSION_COMPLETE_AUDIO, "MICHAEL_BIG_01");
                            Script.Wait(1550);
                        }

                        _scaleform.CallFunction("SHOW_MISSION_PASSED_MESSAGE", string.Format("x{0} Drift\n~w~{1} * New Record!", multiplier * 100, vehicle.FriendlyName), "", 100, true, 0, true);
                        _scaleformDisplayTimer.Start();
                    }

                    else
                    {
                        if (UserSettings.EnableSound)
                        {
                            Function.Call(Hash.PLAY_SOUND_FRONTEND, -1, "Notification", "Phone_SoundSet_Default", 1);
                        }

                        Function.Call(Hash._SET_NOTIFICATION_TEXT_ENTRY, "STRING");
                        Function.Call(Hash._ADD_TEXT_COMPONENT_STRING, string.Format("~s~Vehicle: ~y~{1}\n~s~Score: ~y~{0}", multiplier * 100, vehicle.FriendlyName));
                        msgHandle = Function.Call<int>(Hash._SET_NOTIFICATION_MESSAGE, "CHAR_ALL_PLAYERS_CONF", "CHAR_ALL_PLAYERS_CONF", false, 4, " Drifting", " ~c~New Record!");
                        Function.Call(Hash._DRAW_NOTIFICATION, false, true);
                        _msgTimer.Start();
                    }
                }

                var forwardVel = Vector3.Dot(vehicle.Velocity, vehicle.ForwardVector);
                var pos = vehicle.Position;

                if (/*Function.Call<bool>(Hash.IS_POINT_ON_ROAD, pos.X, pos.Y, pos.Z) || */
                 //   new string[] {"Fort Zancudo", "Vespucci Beach", "Paleto Cove", "Los Santos International Airport" }.Contains(World.GetZoneName(new Vector2(pos.X, pos.Y))) &&
                    forwardVel > -5.0f)
                {
                    var leftVel = Vector3.Dot(vehicle.Velocity, -vehicle.RightVector);
                    var rightVel = Vector3.Dot(vehicle.Velocity, vehicle.RightVector);

                    if (leftVel > 2f && rightVel < -2.1f || rightVel > 2f && leftVel < -2.1f)
                    {
                        if (!Function.Call<bool>(Hash.HAS_ENTITY_COLLIDED_WITH_ANYTHING, vehicle.Handle) && vehicle.Speed > 0.5f && !vehicle.IsInAir)
                        {
                            if (UserSettings.DriftPhysics)
                            {
                                var scale = UserSettings.DriftIntensity;
                                vehicle.ApplyForce(vehicle.Velocity * 0.01f * scale);
                                vehicle.ApplyForce(vehicle.Velocity * -0.005f * scale);
                           //     vehicle.ApplyForce(vehicle.RightVector * rightVel * 0.005f * scale);
                                vehicle.ApplyForce(vehicle.ForwardVector * forwardVel * 0.001f * scale);
                            }

                            var stringData = GetStringInfoForMultiplier(multiplier);

                            if (multiplier > 19)
                            {
                                if (tempString != stringData.Item1)
                                {
                                    Function.Call(Hash.PLAY_SOUND_FRONTEND, -1, "FocusOut", "HintCamSounds", 1);
                                    tempString = stringData.Item1;
                                }

                                if (UserSettings.EnableSound)
                                {
                                    if (soundFlag < 4) soundFlag++;
                                    if (soundFlag == 4)
                                    {
                                        Function.Call(Hash.PLAY_SOUND_FRONTEND, -1, "TIMER", "HUD_FRONTEND_DEFAULT_SOUNDSET", 1);
                                        soundFlag = 0;
                                    }
                                }

                                var interp = multiplier > 300 ? 1f : multiplier > 200 ? (double)(multiplier - 200) / 100 : 0d;
                                ActiveTextMonitor.AddActiveReward(stringData.Item1, Color.Gold.Interpolate(Color.Red, interp), stringData.Item2, vehicle, true);
                            }

                            else
                            {
                                ActiveTextMonitor.AddActiveReward(stringData.Item1, Color.Gold, stringData.Item2, vehicle, false);
                            }

                        }
                    }
                }

                lastMultiplier = multiplier;
            }
        }
 private VehicleSetting ReadVehicleSettings( VehicleHash vehicle )
 {
     string vehicleStr = vehicle.ToString();
     if ( !this._vehicleModifiers.ContainsKey( vehicleStr ) )
     {
         float incTempMod = this._vehicleSettings.Read( "IncTempModifier", vehicleStr, IncTempModifier );
         float decTempMod = this._vehicleSettings.Read( "DecTempModifier", vehicleStr, DecTempModifier );
         this._vehicleModifiers.Add( vehicleStr, new VehicleSetting( incTempMod, decTempMod, vehicleStr ) );
     }
     return this._vehicleModifiers[ vehicleStr ];
 }
Esempio n. 43
0
 private Vehicle SpawnCar(VehicleHash vehname, Vector3 pos, float heading)
 {
     return World.CreateVehicle(((Model)vehname), pos, heading);
 }