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") {
tradeSelection = "decline";
}
mp.events.callRemote('tradeDecision', tradeSelection, JSON.stringify(receivedTradeItems), tradeRequester);
mp.events.callRemote('tradeDecision', tradeSelection, JSON.stringify(receivedTradeItems), tradeRequester, receivedTradePrize);
tradeRequest = false;
receivedTradePrize = null;
mp.gui.cursor.show(false, false);
}
}

View File

@@ -25,26 +25,22 @@
switch (site) {
//GELD EINZAHLEN in1
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);
break;
//GELD AUSZAHLEN in1
case 1:
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;
//GELD ÜBERWEISEN in1 = Kontonr // in2 = Betrag
case 2:
break;
}
});
mp.events.add("SERVER:WORLD_INTERACTION:UPDATE_HANDMONEY", (inputField1) => {
mp.events.call("SERVER:SET_HANDMONEY", inputField1); //GEHT NACH HANDMONEY.TS
mp.events.add("SERVER:WORLD_INTERACTION:UPDATE_HANDMONEY", (balance) => {
mp.events.call("SERVER:SET_HANDMONEY", balance); //GEHT NACH HANDMONEY.TS
});
mp.events.add("SERVER:WORLD_INTERACTION:ATM_ERROR", (errorId, p2) => {

View File

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

View File

@@ -1,10 +1,12 @@
using GTANetworkAPI;
using Newtonsoft.Json;
using ReallifeGamemode.Server.Extensions;
using ReallifeGamemode.Server.Models;
using ReallifeGamemode.Server.Services;
using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
/**
* @overview Life of German Reallife - Managers Interaction (InteractionManager.cs)
@@ -39,16 +41,40 @@ namespace ReallifeGamemode.Server.Managers
}
[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);
Client tradeRequester = ClientService.GetClientByNameOrId(tradeRequesterName);
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);
tradeRequester.TriggerEvent("clearTradeItems");
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
{