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

@@ -3,24 +3,23 @@
export default function inventory(globalData: GlobalData): void { export default function inventory(globalData: GlobalData): void {
var invBrowser: BrowserMp = null; var invBrowser: BrowserMp = null;
var handelBrowser: BrowserMp = null;
var itemIdArr; var itemIdArr;
var itemAmountArr; var itemAmountArr;
var money; var money;
mp.events.add("openTradeWindow", (money1, itemIdArr1, itemAmountArr1) => { mp.events.add("openTradeWindow", (money1, itemIdArr1, itemAmountArr1) => {
if (!globalData.InMenu) { if (!globalData.InMenu) {
if (handelBrowser !== null) { if (invBrowser !== null) {
try { try {
handelBrowser.destroy() invBrowser.destroy()
handelBrowser = null; invBrowser = null;
} finally { } finally {
mp.gui.cursor.show(false, false); mp.gui.cursor.show(false, false);
} }
return; return;
} }
mp.gui.cursor.show(true, true); mp.gui.cursor.show(true, true);
handelBrowser = mp.browsers.new("package://assets/html/inventory/handel/handelakzeptieren.html"); invBrowser = mp.browsers.new("package://assets/html/inventory/handel/handelakzeptieren.html");
itemIdArr = itemIdArr1; itemIdArr = itemIdArr1;
itemAmountArr = itemAmountArr1; itemAmountArr = itemAmountArr1;
@@ -54,24 +53,24 @@ export default function inventory(globalData: GlobalData): void {
invBrowser.execute(`setItems("${JSON.stringify(itemIdArr)}","${JSON.stringify(itemAmountArr)}");`); invBrowser.execute(`setItems("${JSON.stringify(itemIdArr)}","${JSON.stringify(itemAmountArr)}");`);
}); });
mp.events.add("CEF:BrowserLoadedTrade", () => { mp.events.add("CEF:BrowserLoadedTrade", () => {
handelBrowser.execute(`setItems("${JSON.stringify(itemIdArr)}","${JSON.stringify(itemAmountArr)}","${JSON.stringify(money)}");`); invBrowser.execute(`setItems("${JSON.stringify(itemIdArr)}","${JSON.stringify(itemAmountArr)}","${JSON.stringify(money)}");`);
}); });
mp.events.add("CEF:acceptTrade", () => { mp.events.add("CEF:acceptTrade", () => {
if (handelBrowser !== null) { if (invBrowser !== null) {
mp.events.callRemote('acceptTrade'); mp.events.callRemote('acceptTrade');
handelBrowser.destroy() invBrowser.destroy()
handelBrowser = null; invBrowser = null;
mp.gui.cursor.show(false, false); mp.gui.cursor.show(false, false);
} }
}); });
mp.events.add("CEF:declineTrade", () => { mp.events.add("CEF:declineTrade", () => {
if (handelBrowser !== null) { if (invBrowser !== null) {
mp.events.callRemote('declineTrade'); mp.events.callRemote('declineTrade');
handelBrowser.destroy() invBrowser.destroy()
handelBrowser = null; invBrowser = null;
mp.gui.cursor.show(false, false); mp.gui.cursor.show(false, false);
} }
}); });

View File

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