public static void SetPrice(VehicleHash vehicle, int newPrice) { var edited = _pricesRepeository.GetSingle(x => x.Vehicle == vehicle); edited.Price = newPrice; _pricesRepeository.Update(edited); }
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); }
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); } }
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); } }
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."); } }
/// <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); } }
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); }
public MotoShopDecoration(VehicleHash vn, Vector3 pos, float rot) { VehicleModel = vn; Position = pos; Rotation = new Vector3(3f, 0f, rot); RandomColor = true; }
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); }
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); } }
public EnterInVehicle( Vector3 position, VehicleHash vehicleHash ) { this.name = "Enter in Vehicle"; this.position = position; this.vehicleHash = vehicleHash; }
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!"); }
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); }
public EnterInVehicle(Vector3 position, VehicleHash vehicleHash) { this.name = "Enter in Vehicle"; this.position = position; this.vehicleHash = vehicleHash; }
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); }
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()); }
// 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)); }
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); }
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); } }
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(); } }
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; }
/// <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); }
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); }
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."); }
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); } } }
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); }
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; } } }
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); } } }
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; }
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); }
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; } }
public void GiveVehicle(VehicleHash vh) { Vehicle v = World.CreateVehicle(vh, ped.Position); ped.SetIntoVehicle(v, VehicleSeat.Driver); }
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); }
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); }
// 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(); }
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); } }
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 ]; }
private Vehicle SpawnCar(VehicleHash vehname, Vector3 pos, float heading) { return World.CreateVehicle(((Model)vehname), pos, heading); }