Fraktionsfahrzeugverkaufsbestätigung eingebaut

This commit is contained in:
VegaZ
2021-04-22 23:31:07 +02:00
parent a59e494753
commit d2486c7815
2 changed files with 34 additions and 20 deletions

View File

@@ -628,10 +628,9 @@ namespace ReallifeGamemode.Server.Events
if(player.GetData<bool>("SellVehicleDecision") == true && player.HasData("VehicleToSell")) if(player.GetData<bool>("SellVehicleDecision") == true && player.HasData("VehicleToSell"))
{ {
InteractionManager.SellPlayerVehicle(player, player.GetData<int>("VehicleToSell")); InteractionManager.SellServerVehicle(player, player.GetData<int>("VehicleToSell"));
player.ResetData("SellVehicleDecision"); player.ResetData("SellVehicleDecision");
player.ResetData("VehicleToSell"); player.ResetData("VehicleToSell");
player.SendNotification("~g~Du hast dein Fahrzeug verkauft");
return; return;
} }

View File

@@ -479,21 +479,39 @@ namespace ReallifeGamemode.Server.Managers
} }
} }
public static void SellPlayerVehicle(Player player, int id) public static void SellServerVehicle(Player player, int id)
{ {
using var dbContext = new DatabaseContext(); using var dbContext = new DatabaseContext();
var user = player.GetUser(dbContext); var user = player.GetUser(dbContext);
var userVehicle = dbContext.UserVehicles.Where(v => v.Id == id && v.UserId == user.Id).FirstOrDefault(); ServerVehicle serverVehicle = dbContext.ServerVehicles.FirstOrDefault(v => v.Id == id);
var vehPrice = userVehicle.Price;
var backPrice = (int)(vehPrice * 0.4); if(serverVehicle is UserVehicle)
GTANetworkAPI.Vehicle veh = VehicleManager.GetVehicleFromServerVehicle(userVehicle); {
user.BankAccount.Balance += backPrice; UserVehicle userVehicle = dbContext.UserVehicles.Where(v => v.Id == id && v.UserId == user.Id).FirstOrDefault();
var vehPrice = userVehicle.Price;
var backPrice = (int)(vehPrice * 0.4);
GTANetworkAPI.Vehicle veh = VehicleManager.GetVehicleFromServerVehicle(userVehicle);
user.BankAccount.Balance += backPrice;
ChatService.SendMessage(player, $"~b~[INFO]~s~ Du hast durch den Autoverkauf ~g~{backPrice.ToMoneyString()}~s~ erhalten."); ChatService.SendMessage(player, $"~b~[INFO]~s~ Du hast durch den Autoverkauf ~g~{backPrice.ToMoneyString()}~s~ erhalten.");
VehicleManager.DeleteVehicle(veh); VehicleManager.DeleteVehicle(veh);
dbContext.UserVehicles.Remove(userVehicle);
player.SendNotification("~g~Du hast dein Fahrzeug verkauft");
}
else if(serverVehicle is FactionVehicle)
{
FactionVehicle factionVehicle = dbContext.FactionVehicles.FirstOrDefault(v => v.Id == id);
var backPrice = (int)(factionVehicle.BuyPrice * 1.5 * 0.4);
user.Faction.BankAccount.Balance += backPrice;
dbContext.UserVehicles.Remove(userVehicle); ChatService.SendMessage(player, $"~b~[INFO]~s~ Die Fraktionskasse hat ~g~{backPrice.ToMoneyString()}~s~ erhalten.");
VehicleManager.DeleteVehicle(VehicleManager.GetVehicleFromServerVehicle(factionVehicle));
dbContext.FactionVehicles.Remove(factionVehicle);
player.SendNotification("~g~Du hast dein Fraktionsfahrzeug verkauft");
}
dbContext.SaveChanges(); dbContext.SaveChanges();
} }
@@ -546,16 +564,13 @@ namespace ReallifeGamemode.Server.Managers
ChatService.ErrorMessage(player, "Das Fahrzeug konnte nicht verkauft werden. Bitte melde dich bei der Leaderverwaltung"); ChatService.ErrorMessage(player, "Das Fahrzeug konnte nicht verkauft werden. Bitte melde dich bei der Leaderverwaltung");
return; return;
} }
var backPrice = (int)(price.Price * 1.5 * 0.4); var backPrice = (int)(price.Price * 1.5 * 0.4);
user.Faction.BankAccount.Balance += backPrice; player.SetData<bool>("SellVehicleDecision", true);
player.SetData<int>("VehicleToSell", id);
ChatService.SendMessage(player, $"~b~[INFO]~s~ Die Fraktionskasse ~g~{backPrice.ToMoneyString()}~s~ erhalten."); ChatService.SendMessage(player, "~s~Möchtes du das Fahrzeug ~y~" + veh.DisplayName + " ~s~wirklich für ~g~$" + backPrice + " ~s~verkaufen? Drücke ~g~J~s~ zum Bestätigen oder ~r~N ~s~zum Abbrechen");
VehicleManager.DeleteVehicle(veh);
dbContext.FactionVehicles.Remove(factionVehicle);
dbContext.SaveChanges();
} }
} }