From 69a4ab5d229be3434bf5269963d77a9f14eb4933 Mon Sep 17 00:00:00 2001 From: hydrant Date: Sat, 4 Apr 2020 11:42:44 +0200 Subject: [PATCH] frakcar kaufen wucherpreis --- ReallifeGamemode.Client/Business/cardealer.ts | 15 ++++- .../Managers/BusinessManager.cs | 58 +++++++++++-------- 2 files changed, 49 insertions(+), 24 deletions(-) diff --git a/ReallifeGamemode.Client/Business/cardealer.ts b/ReallifeGamemode.Client/Business/cardealer.ts index 2862585e..1744e8fa 100644 --- a/ReallifeGamemode.Client/Business/cardealer.ts +++ b/ReallifeGamemode.Client/Business/cardealer.ts @@ -35,7 +35,7 @@ export default function carDealer(globalData: IGlobalData) { var text = label.text.replace("SHOPVEHICLE", realName); label.text = text; } - + mp.events.add('ShopVehicle_OpenMenu', (businessName, price, availableOptions: string[]) => { var veh = mp.players.local.vehicle; @@ -61,6 +61,19 @@ export default function carDealer(globalData: IGlobalData) { var targetItem = new UIMenuListItem("Kaufen für", "Wähle den Besitzer aus", targetsCollection); shopMenu.AddItem(targetItem); + shopMenu.ListChange.on((item, index) => { + if (item == targetItem) { + switch (targetItem.SelectedValue) { + case 'Spieler': + priceItem.SetRightLabel("~g~$~s~ " + moneyFormat(price)); + break; + case 'Fraktion': + priceItem.SetRightLabel("~g~$~s~ " + moneyFormat(price * 3)); + break; + } + } + }) + var saveItem = new UIMenuItem("Kaufen"); saveItem.BackColor = new Color(0, 100, 0); saveItem.HighlightedBackColor = new Color(0, 150, 0); diff --git a/ReallifeGamemode.Server/Managers/BusinessManager.cs b/ReallifeGamemode.Server/Managers/BusinessManager.cs index c5bc4daa..8fe70818 100644 --- a/ReallifeGamemode.Server/Managers/BusinessManager.cs +++ b/ReallifeGamemode.Server/Managers/BusinessManager.cs @@ -12,6 +12,7 @@ using System.Linq; using System.Reflection; using ReallifeGamemode.Database; using ReallifeGamemode.Server.Types; +using Microsoft.EntityFrameworkCore; namespace ReallifeGamemode.Server.Managers { @@ -140,7 +141,7 @@ namespace ReallifeGamemode.Server.Managers }; if (player.GetUser().FactionLeader && !player.GetUser().Faction.StateOwned) availableTargets.Add("Fraktion"); - if (player.GetUser().GroupRank == GroupRank.OWNER) availableTargets.Add("Gruppe"); + //if (player.GetUser().GroupRank == GroupRank.OWNER) availableTargets.Add("Gruppe"); player.TriggerEvent("ShopVehicle_OpenMenu", GetBusiness(shopVehicle.BusinessId).Name, shopVehicle.Price, availableTargets.ToArray()); } @@ -156,21 +157,24 @@ namespace ReallifeGamemode.Server.Managers ShopVehicle shopVehicle = (ShopVehicle)sVeh; int price = shopVehicle.Price; CarDealerBusinessBase business = GetBusiness(shopVehicle.BusinessId) as CarDealerBusinessBase; - TransactionResult result = BankManager.TransferMoney(player.GetUser(dbContext), business, price, "Auto gekauft", dbContext); - if (result == TransactionResult.SENDER_NOT_ENOUGH_MONEY) - { - player.SendNotification("~r~Du hast nicht genug Geld: " + price.ToMoneyString()); - return; - } Vector3 spawnPos = business.CarSpawnPositon.Around(3); player.TriggerEvent("SERVER:Util_setWaypoint", spawnPos.X, spawnPos.Y); + User u = player.GetUser(dbContext); + ServerVehicle newVeh = null; if (target == "Spieler") { + TransactionResult result = BankManager.TransferMoney(u, business, price, "Auto gekauft", dbContext); + if (result == TransactionResult.SENDER_NOT_ENOUGH_MONEY) + { + player.SendNotification("~r~Du hast nicht genug Geld: " + price.ToMoneyString()); + return; + } + newVeh = new UserVehicle { Heading = business.CarSpawnHeading, @@ -188,6 +192,14 @@ namespace ReallifeGamemode.Server.Managers } else if (target == "Fraktion") { + var faction = dbContext.Factions.Include(f => f.BankAccount).Where(f => f.Id == u.FactionId).First(); + TransactionResult result = BankManager.TransferMoney(faction, business, price * 3, "Auto gekauft", dbContext); + if (result == TransactionResult.SENDER_NOT_ENOUGH_MONEY) + { + player.SendNotification("~r~Die Fraktion hat nicht genug Geld: " + price.ToMoneyString()); + return; + } + newVeh = new FactionVehicle { Heading = business.CarSpawnHeading, @@ -202,22 +214,22 @@ namespace ReallifeGamemode.Server.Managers Active = true, }; } - else if (target == "Gruppe") - { - newVeh = new GroupVehicle - { - Heading = business.CarSpawnHeading, - PositionX = spawnPos.X, - PositionY = spawnPos.Y, - PositionZ = spawnPos.Z, - Locked = false, - GroupId = player.GetUser().Group.Id, - Model = shopVehicle.Model, - PrimaryColor = 111, - SecondaryColor = 111, - Active = true, - }; - } + //else if (target == "Gruppe") + //{ + // newVeh = new GroupVehicle + // { + // Heading = business.CarSpawnHeading, + // PositionX = spawnPos.X, + // PositionY = spawnPos.Y, + // PositionZ = spawnPos.Z, + // Locked = false, + // GroupId = player.GetUser().Group.Id, + // Model = shopVehicle.Model, + // PrimaryColor = 111, + // SecondaryColor = 111, + // Active = true, + // }; + //} dbContext.ServerVehicles.Add(newVeh); dbContext.SaveChanges();