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

@@ -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")
{
InventoryManager.GetUserItems(player);
tradeRequester.TriggerEvent("clearTradeItems");
player.TriggerEvent("showTradeItems", tradeItemArray);
//TODO: Geld abziehen
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);
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
{