you can delete the frac veh and add new one here is the commandgood evening, is it possible to share the code for the /changefracveh command?
Код:
[Command("addfracveh")]
public void AddFractionVehicle(ExtPlayer player, int fractionId, string vehicleModel, int rank, int color1, int color2, string numberPlate)
{
try
{
if (!CommandsAccess.CanUseCmd(player, AdminCommands.Addfracveh)) return;
var fractionData = Manager.GetFractionData(fractionId);
if (fractionData == null)
{
Trigger.SendChatMessage(player, "Faction not found.");
return;
}
Vector3 position = NAPI.Entity.GetEntityPosition(player);
Vector3 rotation = NAPI.Entity.GetEntityRotation(player);
if (string.IsNullOrEmpty(numberPlate))
{
Trigger.SendChatMessage(player, "You must specify a number plate for the vehicle.");
return;
}
if (fractionData.Vehicles.ContainsKey(numberPlate))
{
Trigger.SendChatMessage(player, "A vehicle with the specified number plate already exists for this faction.");
return;
}
var vehicleCustomization = new VehicleCustomization();
var fractionVehicleData = new FractionVehicleData(vehicleModel, position, rotation, rank, rank, color1, color2, vehicleCustomization);
fractionData.Vehicles.Add(numberPlate, fractionVehicleData);
int dimension = (int)NAPI.Entity.GetEntityDimension(player);
Trigger.SetTask(async () =>
{
try
{
await using var db = new ServerBD("MainDB");
await db.Fractionvehicles
.Value(v => v.Fraction, fractionData.Id)
.Value(v => v.Number, numberPlate)
.Value(v => v.Model, vehicleModel)
.Value(v => v.Position, JsonConvert.SerializeObject(position))
.Value(v => v.Rotation, JsonConvert.SerializeObject(rotation))
.Value(v => v.Rank, rank)
.Value(v => v.Defaultrank, rank)
.Value(v => v.Colorprim, color1)
.Value(v => v.Colorsec, color2)
.Value(v => v.Components, JsonConvert.SerializeObject(vehicleCustomization))
.Value(v => v.IsDimension, (sbyte)dimension) // Get the player's dimension directly.
.InsertAsync();
}
catch (Exception e)
{
Debugs.Repository.Exception(e);
}
});
var vehicle = NAPI.Vehicle.CreateVehicle(NAPI.Util.GetHashKey(vehicleModel), position, rotation.Z, 0, 0);
var extVehicle = new ExtVehicle(vehicle);
VehicleManager.FracApplyCustomization(extVehicle, fractionData.Id);
// Set the dimension for the created vehicle.
NAPI.Entity.SetEntityDimension(vehicle, (uint)NAPI.Entity.GetEntityDimension(player));
Trigger.SendChatMessage(player, $"A new fraction vehicle has been added for faction {fractionData.Name}.");
}
catch (Exception e)
{
Log.Write($"AddFractionVehicle Exception: {e.ToString()}");
}
}