From b6bbe59b271db7ec1fc622867fda882aaa9e9eed Mon Sep 17 00:00:00 2001 From: hydrant Date: Mon, 12 Apr 2021 19:54:06 +0200 Subject: [PATCH] [HOTFIX] frakcar verkaufen --- .../Managers/InteractionManager.cs | 64 +++++++++---------- 1 file changed, 29 insertions(+), 35 deletions(-) diff --git a/ReallifeGamemode.Server/Managers/InteractionManager.cs b/ReallifeGamemode.Server/Managers/InteractionManager.cs index 7906e1f2..71a4e92c 100644 --- a/ReallifeGamemode.Server/Managers/InteractionManager.cs +++ b/ReallifeGamemode.Server/Managers/InteractionManager.cs @@ -260,13 +260,13 @@ namespace ReallifeGamemode.Server.Managers UpdateCharacterCloth.LoadCharacterDefaults(targetPlayer); ChatService.SendMessage(targetPlayer, "!{02FCFF}Du wurdest von " + player.Name + " aus der Fraktion geworfen."); FactionHelper.ResetPlayer(targetPlayer, targetUser, dbContext); - } + } Medic.UpdateDutyMedics(); targetUser.FactionRankId = null; targetUser.FactionId = null; targetUser.SetBlipAndNametagColor(); - - ChatService.SendMessage(player, "!{02FCFF}Du hast " + targetUser.Name + " aus der Fraktion geworfen."); + + ChatService.SendMessage(player, "!{02FCFF}Du hast " + targetUser.Name + " aus der Fraktion geworfen."); dbContext.SaveChanges(); } @@ -449,7 +449,7 @@ namespace ReallifeGamemode.Server.Managers [RemoteEvent("CLIENT:InteractionMenu_PlayerVehicleInteraction")] public void PlayerVehicleInteraction(Player player, int id, string selection) { - using var dbContext = new DatabaseContext(true); + using var dbContext = new DatabaseContext(); var user = player.GetUser(dbContext); var userVehicle = dbContext.UserVehicles.Where(v => v.Id == id && v.UserId == user.Id).FirstOrDefault(); @@ -467,7 +467,7 @@ namespace ReallifeGamemode.Server.Managers else if (selection == "Verkaufen") { var vehPrice = userVehicle.Price; - var backPrice = (int)(vehPrice * 0.6); + var backPrice = (int)(vehPrice * 0.4); user.BankAccount.Balance += backPrice; @@ -483,9 +483,25 @@ namespace ReallifeGamemode.Server.Managers [RemoteEvent("CLIENT:InteractionMenu_FactionVehicleInteraction")] public void FactionVehicleInteraction(Player player, int id, string selection) { - using var dbContext = new DatabaseContext(true); + using var dbContext = new DatabaseContext(); var user = player.GetUser(dbContext); + if(user.FactionId == null) + { + return; + } + + if(!user.FactionLeader) + { + return; + } + + if(user.Faction.StateOwned) + { + ChatService.ErrorMessage(player, "Der Fuhrpark der Staatsfraktionen kann über die Leaderverwaltung geändert werden"); + return; + } + var factionVehicle = dbContext.FactionVehicles.ToList().Where(v => v.Id == id && v.GetOwners().Contains(user.FactionId.Value)).FirstOrDefault(); if (factionVehicle == null) { @@ -498,46 +514,24 @@ namespace ReallifeGamemode.Server.Managers { player.TriggerEvent("SERVER:Util_setWaypoint", veh.Position.X, veh.Position.Y); } - } - - [RemoteEvent("CLIENT:InteractionMenu_FactionVehicleInteractionSell")] - public void FactionVehicleInteractionSell(Player player, int id, string selection) - { - using var dbContext = new DatabaseContext(true); - var user = player.GetUser(dbContext); - - var factionVehicle = dbContext.FactionVehicles.ToList().Where(v => v.Id == id && v.GetOwners().Contains(user.FactionId.Value)).FirstOrDefault(); - if (factionVehicle == null) + else if (selection == "Verkaufen") { - ChatService.ErrorMessage(player, "Das Fahrzeug wurde nicht gefunden"); - } - - GTANetworkAPI.Vehicle veh = VehicleManager.GetVehicleFromServerVehicle(factionVehicle); - - if (selection == "Verkaufen") - { - if (dbContext.FactionVehicles.ToList().Where(f => f.GetOwners().Contains(user.FactionId.Value)).Count() <= 6) + var price = dbContext.ShopVehicles.Where(v => v.Model == factionVehicle.Model && v.Active).Select(s => new { s.Price }).FirstOrDefault(); + if (price == null) { - ChatService.ErrorMessage(player, "Die Fraktion muss mindestens 6 Fahrzeuge besitzen"); + ChatService.ErrorMessage(player, "Das Fahrzeug konnte nicht verkauft werden. Bitte melde dich bei der Leaderverwaltung"); return; } - - if (factionVehicle.Model == VehicleHash.Policet || factionVehicle.Model == VehicleHash.Burrito3) - { - ChatService.ErrorMessage(player, "Der WT kann nicht verkauft werden"); - return; - } - - var backPrice = factionVehicle.BuyPrice; + var backPrice = (int)(price.Price * 1.5 * 0.4); user.Faction.BankAccount.Balance += backPrice; - ChatService.SendMessage(player, $"~b~[INFO]~s~ Deine Fraktion hat durch den Autoverkauf ~g~{backPrice.ToMoneyString()}~s~ erhalten."); + ChatService.SendMessage(player, $"~b~[INFO]~s~ Die Fraktionskasse ~g~{backPrice.ToMoneyString()}~s~ erhalten."); dbContext.FactionVehicles.Remove(factionVehicle); dbContext.SaveChanges(); - veh.Delete(); + veh?.Delete(); } }