Add Money Exchange. Fix Handmoney.ts Event param

This commit is contained in:
VegaZ
2019-05-07 20:01:03 +02:00
parent ecc1c36db7
commit f5fa718d01
4 changed files with 38 additions and 14 deletions

View File

@@ -279,8 +279,9 @@ export default function playerInteraction(globalData: GlobalData) {
} else if (tradeSelectHover === "decline") { } else if (tradeSelectHover === "decline") {
tradeSelection = "decline"; tradeSelection = "decline";
} }
mp.events.callRemote('tradeDecision', tradeSelection, JSON.stringify(receivedTradeItems), tradeRequester); mp.events.callRemote('tradeDecision', tradeSelection, JSON.stringify(receivedTradeItems), tradeRequester, receivedTradePrize);
tradeRequest = false; tradeRequest = false;
receivedTradePrize = null;
mp.gui.cursor.show(false, false); mp.gui.cursor.show(false, false);
} }
} }

View File

@@ -25,26 +25,22 @@
switch (site) { switch (site) {
//GELD EINZAHLEN in1 //GELD EINZAHLEN in1
case 0: case 0:
mp.events.call("SERVER:SET_HANDMONEY", inputField1 * -1); //GEHT NACH HANDMONEY.TS
mp.events.callRemote("CLIENT:ATM_MANAGER:ATM_ACTION", site, inputField1, inputField2); mp.events.callRemote("CLIENT:ATM_MANAGER:ATM_ACTION", site, inputField1, inputField2);
break; break;
//GELD AUSZAHLEN in1 //GELD AUSZAHLEN in1
case 1: case 1:
mp.events.callRemote("CLIENT:ATM_MAN:CHECK_BALANCE", inputField1); mp.events.callRemote("CLIENT:ATM_MAN:CHECK_BALANCE", inputField1);
//mp.events.call("SERVER:SET_HANDMONEY", inputField1); //GEHT NACH HANDMONEY.TS
//mp.events.callRemote("CLIENT:ATM_ACTION", site, inputField1, inputField2)
break; break;
//GELD ÜBERWEISEN in1 = Kontonr // in2 = Betrag
case 2: case 2:
break; break;
} }
}); });
mp.events.add("SERVER:WORLD_INTERACTION:UPDATE_HANDMONEY", (inputField1) => { mp.events.add("SERVER:WORLD_INTERACTION:UPDATE_HANDMONEY", (balance) => {
mp.events.call("SERVER:SET_HANDMONEY", inputField1); //GEHT NACH HANDMONEY.TS mp.events.call("SERVER:SET_HANDMONEY", balance); //GEHT NACH HANDMONEY.TS
}); });
mp.events.add("SERVER:WORLD_INTERACTION:ATM_ERROR", (errorId, p2) => { mp.events.add("SERVER:WORLD_INTERACTION:ATM_ERROR", (errorId, p2) => {

View File

@@ -101,7 +101,6 @@ namespace ReallifeGamemode.Server.Managers
} }
else else
{ {
client.TriggerEvent("SERVER:WORLD_INTERACTION:UPDATE_HANDMONEY", inputField1);
AtmAction(client, 1, inputField1, 0); AtmAction(client, 1, inputField1, 0);
} }
} }
@@ -125,6 +124,7 @@ namespace ReallifeGamemode.Server.Managers
updateHandMoneyIn.Handmoney -= inputField1; updateHandMoneyIn.Handmoney -= inputField1;
updateBankMoneyIn.Balance += inputField1; updateBankMoneyIn.Balance += inputField1;
updateATMBalanceIn.Balance += inputField1; updateATMBalanceIn.Balance += inputField1;
client.TriggerEvent("SERVER:WORLD_INTERACTION:UPDATE_HANDMONEY", updateHandMoneyIn.Handmoney);
break; break;
//GELD AUSZAHLEN in1 //GELD AUSZAHLEN in1
@@ -135,6 +135,7 @@ namespace ReallifeGamemode.Server.Managers
updateHandMoneyOut.Handmoney += inputField1; updateHandMoneyOut.Handmoney += inputField1;
updateBankMoneyOut.Balance -= inputField1; updateBankMoneyOut.Balance -= inputField1;
updateATMBalanceOut.Balance -= inputField1; updateATMBalanceOut.Balance -= inputField1;
client.TriggerEvent("SERVER:WORLD_INTERACTION:UPDATE_HANDMONEY", updateHandMoneyOut.Handmoney);
break; break;
//GELD ÜBERWEISEN in1 = Kontonr // in2 = Betrag //GELD ÜBERWEISEN in1 = Kontonr // in2 = Betrag

View File

@@ -1,10 +1,12 @@
using GTANetworkAPI; using GTANetworkAPI;
using Newtonsoft.Json; using Newtonsoft.Json;
using ReallifeGamemode.Server.Extensions; using ReallifeGamemode.Server.Extensions;
using ReallifeGamemode.Server.Models;
using ReallifeGamemode.Server.Services; using ReallifeGamemode.Server.Services;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
using System.Linq;
/** /**
* @overview Life of German Reallife - Managers Interaction (InteractionManager.cs) * @overview Life of German Reallife - Managers Interaction (InteractionManager.cs)
@@ -39,16 +41,40 @@ namespace ReallifeGamemode.Server.Managers
} }
[RemoteEvent("tradeDecision")] [RemoteEvent("tradeDecision")]
public void TradeDecision(Client player, string tradeSelection, string tradeItemArray, string tradeRequesterName) public void TradeDecision(Client player, string tradeSelection, string tradeItemArray, string tradeRequesterName, int tradePrize)
{ {
var tradeItems = JsonConvert.DeserializeObject<string[][]>(tradeItemArray); var tradeItems = JsonConvert.DeserializeObject<string[][]>(tradeItemArray);
Client tradeRequester = ClientService.GetClientByNameOrId(tradeRequesterName); Client tradeRequester = ClientService.GetClientByNameOrId(tradeRequesterName);
if (tradeSelection == "accept") if (tradeSelection == "accept")
{
if(player.GetUser().Handmoney < tradePrize)
{
tradeRequester.TriggerEvent("unlockTradeItems");
tradeRequester.SendNotification("~y~" + player.Name + " ~r~hat nicht genügend Bargeld! ~s~Handel abgebrochen.");
player.SendNotification("~r~Du hast nicht genügend Bargeld! ~s~Handel abgebrochen.");
}
else
{ {
InventoryManager.GetUserItems(player); InventoryManager.GetUserItems(player);
tradeRequester.TriggerEvent("clearTradeItems"); tradeRequester.TriggerEvent("clearTradeItems");
player.TriggerEvent("showTradeItems", tradeItemArray); player.TriggerEvent("showTradeItems", tradeItemArray);
//TODO: Geld abziehen
using (var dbContext = new DatabaseContext())
{
var playerUserId = player.GetUser().Id;
var tradeRUserId = tradeRequester.GetUser().Id;
var playerUser = dbContext.Users.FirstOrDefault(u => u.Id == playerUserId);
var tradeRequesterUser = dbContext.Users.FirstOrDefault(u => u.Id == tradeRUserId);
playerUser.Handmoney -= tradePrize;
player.TriggerEvent("SERVER:WORLD_INTERACTION:UPDATE_HANDMONEY", tradePrize * -1);
tradeRequesterUser.Handmoney += tradePrize;
tradeRequester.TriggerEvent("SERVER:WORLD_INTERACTION:UPDATE_HANDMONEY", tradePrize);
dbContext.SaveChanges();
}
}
} }
else else
{ {