Add Trading

This commit is contained in:
VegaZ
2018-12-26 22:59:15 +01:00
parent b3e12588cf
commit ec1cc4b237
7 changed files with 829 additions and 144 deletions

View File

@@ -38,7 +38,35 @@ namespace reallife_gamemode.Server.Events
GroundItem.PickUpGroundItem(player);
}
[RemoteEvent("keyPress:E")]
[RemoteEvent("keyPress:LEFT_ARROW")]
public void KeyPressLeftArrow(Client player)
{
if (!player.IsLoggedIn()) return;
List<Client> nearbyPlayers = NAPI.Player.GetPlayersInRadiusOfPlayer(3, player);
if (nearbyPlayers.Count > 0)
{
List<string> nearbyPlayerList = new List<string>();
foreach (Client nearPlayer in nearbyPlayers)
{
if (nearPlayer.Name != player.Name)
{
nearbyPlayerList.Add(nearPlayer.Name);
}
else
{
continue;
}
}
player.TriggerEvent("showPlayerInteraction", JsonConvert.SerializeObject(nearbyPlayerList));
}
else
{
player.SendNotification("~r~Es ist niemand in deiner N\u00e4he!", false);
}
}
[RemoteEvent("keyPress:E")]
public void KeyPressE(Client player)
{
if (!player.IsLoggedIn()) return;

View File

@@ -0,0 +1,57 @@
using GTANetworkAPI;
using Newtonsoft.Json;
using reallife_gamemode.Server.Extensions;
using reallife_gamemode.Server.Services;
using System;
using System.Collections.Generic;
using System.Text;
/**
* @overview Life of German Reallife - Managers Interaction (InteractionManager.cs)
* @author VegaZ
* @copyright (c) 2008 - 2018 Life of German
*/
namespace reallife_gamemode.Server.Managers
{
public class InteractionManager : Script
{
[RemoteEvent("openTradeInventory")]
public void OpenTradeInventory(Client player, string targetPlayer)
{
InventoryManager.GetUserItems(player);
player.TriggerEvent("openTradeMenu", targetPlayer);
}
[RemoteEvent("sendTradeItemsToPartner")]
public void SendTradeItemsToPartner(Client player, string tradeItemArray, int tradePrize, string tradePartnerName)
{
var tradeItems = JsonConvert.DeserializeObject<string[][]>(tradeItemArray);
Client tradePartner = ClientService.GetClientByNameOrId(tradePartnerName);
InventoryManager.GetUserItems(player);
tradePartner.TriggerEvent("showTradeRequest", player.Name, tradeItems, tradePrize);
player.TriggerEvent("startTradeRequestTimer");
//player.TriggerEvent("openTradeMenu", targetPlayer);
}
[RemoteEvent("tradeDecision")]
public void TradeDecision(Client player, string tradeSelection, string tradeItemArray, string tradeRequesterName)
{
var tradeItems = JsonConvert.DeserializeObject<string[][]>(tradeItemArray);
Client tradeRequester = ClientService.GetClientByNameOrId(tradeRequesterName);
//player.SendChatMessage(tradeItemArray);
//player.SendChatMessage(tradeSelection);
if (tradeSelection == "accept")
{
InventoryManager.GetUserItems(player);
tradeRequester.TriggerEvent("clearTradeItems");
player.TriggerEvent("showTradeItems", tradeItemArray);
}
else
{
tradeRequester.TriggerEvent("unlockTradeItems");
}
}
}
}