Improved Trade Timer and System

This commit is contained in:
Lukas Moungos
2019-07-28 23:23:33 +02:00
parent 4a98213965
commit 0b6debe1b7
2 changed files with 31 additions and 18 deletions

View File

@@ -97,13 +97,14 @@ namespace ReallifeGamemode.Server.Managers
TradeItems[user.Id] = (itemIdArr, itemAmountArr);
TradeValue[user.Id] = value;
target.SetData("tradePartner", user.Id);
target.SetData("trade", user.LogUserId);
target.SetData("trade", client.Name);
SendTradeOffer(target,client);
}
public void SendTradeOffer(Client client, Client sender)
{
client.SetData("inTrade", true);
sender.SetData("inTrade", true);
ChatService.SendMessage(client, $"~b~ Du hast eine Handelsanfrage von {sender.Name} bekommen.");
ChatService.SendMessage(client, $"~b~ Drücke '~w~N~b~' um die Handelsanfrage zu akzeptieren.");
User user = sender.GetUser();
@@ -152,15 +153,16 @@ namespace ReallifeGamemode.Server.Managers
[RemoteEvent("declineTrade")]
public void ServerEvent_declineTrade(Client client)
{
int id = client.GetData("trade");
Client target = ClientService.GetClientByNameOrId(""+id);
string name = client.GetData("trade");
Client target = ClientService.GetClientByNameOrId(name);
if (target == null || !target.IsLoggedIn())
{
ChatService.PlayerNotFound(client);
return;
}
client.SetData("inTrade", false);
target.SetData("inTrade", false);
SendBackToSender(target);
}
public static void OpenTradeAccept(Client client)
@@ -170,17 +172,29 @@ namespace ReallifeGamemode.Server.Managers
(int[] itemIdArr, int[] itemAmountArr) = TradeItems[id];
Timer tradeTimer = TradeTimer[id];
tradeTimer.Stop();
client.SetData("inTrade", false);
tradeTimer.Start();
client.TriggerEvent("openTradeWindow", TradeValue[id], itemIdArr, itemAmountArr);
}
[RemoteEvent("acceptTrade")]
public void ServerEvent_AcceptTrade(Client client)
{
client.SetData("inTrade", false);
User user = client.GetUser();
int id = client.GetData("tradePartner");
(int[] itemIdArr, int[] itemAmountArr) = TradeItems[id];
Timer tradeTimer = TradeTimer[id];
tradeTimer.Stop();
string name = client.GetData("trade");
Client target = ClientService.GetClientByNameOrId(name);
if (target == null || !target.IsLoggedIn())
{
ChatService.PlayerNotFound(client);
return;
}
target.SetData("inTrade", false);
ChatService.SendMessage(target, $"{client.Name} hat deine Anfrage angenommen.");
using (var context = new DatabaseContext())
{
for (int x = 0; x < itemIdArr.Length; x++)