Improved Trade Timer and System
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -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++)
|
||||||
|
|||||||
Reference in New Issue
Block a user