Improved Trade Timer and System
This commit is contained in:
@@ -3,24 +3,23 @@
|
||||
export default function inventory(globalData: GlobalData): void {
|
||||
|
||||
var invBrowser: BrowserMp = null;
|
||||
var handelBrowser: BrowserMp = null;
|
||||
var itemIdArr;
|
||||
var itemAmountArr;
|
||||
var money;
|
||||
|
||||
mp.events.add("openTradeWindow", (money1, itemIdArr1, itemAmountArr1) => {
|
||||
if (!globalData.InMenu) {
|
||||
if (handelBrowser !== null) {
|
||||
if (invBrowser !== null) {
|
||||
try {
|
||||
handelBrowser.destroy()
|
||||
handelBrowser = null;
|
||||
invBrowser.destroy()
|
||||
invBrowser = null;
|
||||
} finally {
|
||||
mp.gui.cursor.show(false, false);
|
||||
}
|
||||
return;
|
||||
}
|
||||
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;
|
||||
itemAmountArr = itemAmountArr1;
|
||||
@@ -54,24 +53,24 @@ export default function inventory(globalData: GlobalData): void {
|
||||
invBrowser.execute(`setItems("${JSON.stringify(itemIdArr)}","${JSON.stringify(itemAmountArr)}");`);
|
||||
});
|
||||
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", () => {
|
||||
if (handelBrowser !== null) {
|
||||
if (invBrowser !== null) {
|
||||
mp.events.callRemote('acceptTrade');
|
||||
handelBrowser.destroy()
|
||||
handelBrowser = null;
|
||||
invBrowser.destroy()
|
||||
invBrowser = null;
|
||||
mp.gui.cursor.show(false, false);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
mp.events.add("CEF:declineTrade", () => {
|
||||
if (handelBrowser !== null) {
|
||||
if (invBrowser !== null) {
|
||||
mp.events.callRemote('declineTrade');
|
||||
handelBrowser.destroy()
|
||||
handelBrowser = null;
|
||||
invBrowser.destroy()
|
||||
invBrowser = null;
|
||||
mp.gui.cursor.show(false, false);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -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++)
|
||||
|
||||
Reference in New Issue
Block a user