From 2c63278aa3e56e6f879eb80ed2318ea89eed2e69 Mon Sep 17 00:00:00 2001 From: VegaZ Date: Wed, 8 May 2019 19:33:12 +0200 Subject: [PATCH] Fix Handmoney | Fix ATM checkin / checkout --- ReallifeGamemode.Client/Gui/handmoney.ts | 18 ++--- .../Interaction/worldinteraction.ts | 20 +----- .../Managers/ATMManager.cs | 71 ++++++++++--------- 3 files changed, 48 insertions(+), 61 deletions(-) diff --git a/ReallifeGamemode.Client/Gui/handmoney.ts b/ReallifeGamemode.Client/Gui/handmoney.ts index 2c112893..4793e49c 100644 --- a/ReallifeGamemode.Client/Gui/handmoney.ts +++ b/ReallifeGamemode.Client/Gui/handmoney.ts @@ -8,16 +8,16 @@ export default function handMoney() { mp.events.add("SERVER:SET_HANDMONEY", (amount) => { difference = currentMoney - amount; if (difference != 0 && currentMoney != null) { - showMoneyChange = 1000; + showMoneyChange = 600; } - currentMoney += amount; + currentMoney = amount; }); mp.events.add("render", () => { if (currentMoney != null) { - var numberFormat = moneyFormat(currentMoney); + var numberFormat = moneyFormat(Math.abs(currentMoney)); if (currentMoney >= 0) { - mp.game.graphics.drawText("+$" + numberFormat, [0.96, 0.1], + mp.game.graphics.drawText("$" + numberFormat, [0.95, 0.1], { font: 7, color: [115, 186, 131, 255], @@ -27,7 +27,7 @@ export default function handMoney() { }) } else { - mp.game.graphics.drawText("-$" + numberFormat, [0.96, 0.1], + mp.game.graphics.drawText("-$" + numberFormat, [0.95, 0.1], { font: 7, color: [255, 0, 45, 255], @@ -39,11 +39,12 @@ export default function handMoney() { if (showMoneyChange > 0) { showMoneyChange--; if (difference > 0) { + var alpha = 255; if (showMoneyChange <= 70) { alpha = (showMoneyChange * (255 / 70)) | 0; } - mp.game.graphics.drawText("- $" + moneyFormat(difference), [0.96, 0.145], { + mp.game.graphics.drawText("-$" + moneyFormat(Math.abs(difference)), [0.95, 0.145], { font: 7, color: [255, 0, 45, alpha], scale: [0.65, 0.65], @@ -51,13 +52,12 @@ export default function handMoney() { centre: true }) - } else { - var nDef = difference * -1; + } else { var alpha = 255; if (showMoneyChange <= 70) { alpha = (showMoneyChange * (255 / 70)) | 0; } - mp.game.graphics.drawText("+ $" + moneyFormat(nDef), [0.96, 0.145], { + mp.game.graphics.drawText("+$" + moneyFormat(Math.abs(difference)), [0.95, 0.145], { font: 7, color: [115, 186, 131, alpha], scale: [0.65, 0.65], diff --git a/ReallifeGamemode.Client/Interaction/worldinteraction.ts b/ReallifeGamemode.Client/Interaction/worldinteraction.ts index bd32aa22..8ebd4939 100644 --- a/ReallifeGamemode.Client/Interaction/worldinteraction.ts +++ b/ReallifeGamemode.Client/Interaction/worldinteraction.ts @@ -22,25 +22,7 @@ mp.events.add("CEF:atmAction", (site, inputField1, inputField2) => { - switch (site) { - //GELD EINZAHLEN in1 - case 0: - mp.events.callRemote("CLIENT:ATM_MANAGER:ATM_ACTION", site, inputField1, inputField2); - break; - - //GELD AUSZAHLEN in1 - case 1: - mp.events.callRemote("CLIENT:ATM_MAN:CHECK_BALANCE", inputField1); - break; - - case 2: - - break; - } - - }); - mp.events.add("SERVER:WORLD_INTERACTION:UPDATE_HANDMONEY", (balance) => { - mp.events.call("SERVER:SET_HANDMONEY", balance); //GEHT NACH HANDMONEY.TS + mp.events.callRemote("CLIENT:ATM_MANAGER:ATM_ACTION", site, inputField1, inputField2); }); mp.events.add("SERVER:WORLD_INTERACTION:ATM_ERROR", (errorId, p2) => { diff --git a/ReallifeGamemode.Server/Managers/ATMManager.cs b/ReallifeGamemode.Server/Managers/ATMManager.cs index 3c7bd028..8d51695a 100644 --- a/ReallifeGamemode.Server/Managers/ATMManager.cs +++ b/ReallifeGamemode.Server/Managers/ATMManager.cs @@ -85,26 +85,7 @@ namespace ReallifeGamemode.Server.Managers { player.TriggerEvent("SERVER:ShowAtmUi", atmId); } - [RemoteEvent("CLIENT:ATM_MAN:CHECK_BALANCE")] - public void CheckATMBalance(Client client, int inputField1) - { - var user = client.GetUser(); - int nearATM = client.GetData("nearATM"); - using (var dbContext = new DatabaseContext()) - { - var checkATM = dbContext.ATMs.FirstOrDefault(a => a.Id == nearATM); - if(checkATM.Balance < inputField1) - { - //TODO im CEFBrowser anzeigen client.SendChatMessage("Nicht genügend Geld im Automaten. Maximal Verfügbar: " + checkATM.Balance); - client.TriggerEvent("SERVER:WORLD_INTERACTION:ATM_ERROR", 0, checkATM.Balance); - } - else - { - AtmAction(client, 1, inputField1, 0); - } - } - } [RemoteEvent("CLIENT:ATM_MANAGER:ATM_ACTION")] public void AtmAction(Client client, int site, int inputField1, int inputField2) { @@ -117,25 +98,49 @@ namespace ReallifeGamemode.Server.Managers { //GELD EINZAHLEN in1 case 0: + var checkPlayer = dbContext.Users.FirstOrDefault(u => u.Id == user.Id); - var updateHandMoneyIn = dbContext.Users.FirstOrDefault(u => u.Id == user.Id); - var updateBankMoneyIn = dbContext.UserBankAccounts.FirstOrDefault(b => b.UserId == user.Id); - var updateATMBalanceIn = dbContext.ATMs.FirstOrDefault(a => a.Id == nearATM); - updateHandMoneyIn.Handmoney -= inputField1; - updateBankMoneyIn.Balance += inputField1; - updateATMBalanceIn.Balance += inputField1; - client.TriggerEvent("SERVER:WORLD_INTERACTION:UPDATE_HANDMONEY", updateHandMoneyIn.Handmoney); + if (checkPlayer.Handmoney < inputField1) + { + //TODO im CEFBrowser anzeigen client.SendChatMessage("Nicht genügend Geld im Automaten. Maximal Verfügbar: " + checkATM.Balance); + //client.TriggerEvent("SERVER:WORLD_INTERACTION:ATM_ERROR", 0, checkATM.Balance); + client.SendNotification("~r~Nicht genügend Geld auf der Hand!"); + } + else + { + var updateHandMoneyIn = dbContext.Users.FirstOrDefault(u => u.Id == user.Id); + var updateBankMoneyIn = dbContext.UserBankAccounts.FirstOrDefault(b => b.UserId == user.Id); + var updateATMBalanceIn = dbContext.ATMs.FirstOrDefault(a => a.Id == nearATM); + updateHandMoneyIn.Handmoney -= inputField1; + updateBankMoneyIn.Balance += inputField1; + updateATMBalanceIn.Balance += inputField1; + client.TriggerEvent("SERVER:SET_HANDMONEY", updateHandMoneyIn.Handmoney); + } break; //GELD AUSZAHLEN in1 case 1: - var updateHandMoneyOut = dbContext.Users.FirstOrDefault(u => u.Id == user.Id); - var updateBankMoneyOut = dbContext.UserBankAccounts.FirstOrDefault(b => b.UserId == user.Id); - var updateATMBalanceOut = dbContext.ATMs.FirstOrDefault(a => a.Id == nearATM); - updateHandMoneyOut.Handmoney += inputField1; - updateBankMoneyOut.Balance -= inputField1; - updateATMBalanceOut.Balance -= inputField1; - client.TriggerEvent("SERVER:WORLD_INTERACTION:UPDATE_HANDMONEY", updateHandMoneyOut.Handmoney); + var checkATM = dbContext.ATMs.FirstOrDefault(a => a.Id == nearATM); + var checkBankAccount = dbContext.UserBankAccounts.FirstOrDefault(b => b.UserId == user.Id); + + if (checkBankAccount.Balance < inputField1) + { + client.SendNotification("~r~Nicht genügend Geld auf dem Bankkonto!"); //TODO Im Automaten anzeigen lassen + } + else if (checkATM.Balance < inputField1) + { + client.SendNotification("~r~Nicht genügend Geld im Automaten vorhanden!"); //TODO Im Automaten anzeigen lassen |||| oder OUT OF ORDER anzeigen wenn leer + } + else + { + var updateHandMoneyOut = dbContext.Users.FirstOrDefault(u => u.Id == user.Id); + var updateBankMoneyOut = dbContext.UserBankAccounts.FirstOrDefault(b => b.UserId == user.Id); + var updateATMBalanceOut = dbContext.ATMs.FirstOrDefault(a => a.Id == nearATM); + updateHandMoneyOut.Handmoney += inputField1; + updateBankMoneyOut.Balance -= inputField1; + updateATMBalanceOut.Balance -= inputField1; + client.TriggerEvent("SERVER:SET_HANDMONEY", updateHandMoneyOut.Handmoney); + } break; //GELD ÜBERWEISEN in1 = Kontonr // in2 = Betrag