Inventory rework done (WIP)
This commit is contained in:
@@ -422,7 +422,7 @@ function wegwerfen() {
|
||||
drawToPage();
|
||||
drawToHandel();
|
||||
moveItemsInv();
|
||||
mp.events.callRemote('invThrowItem', playerInventory[currentSelected].itemId);
|
||||
mp.trigger('CEF:invThrowItem', playerInventory[currentSelected].itemId);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -48,6 +48,10 @@ export default function inventory(globalData: GlobalData): void {
|
||||
itemAmountArr = itemAmountArr1;
|
||||
}
|
||||
});
|
||||
mp.events.add("CEF:invThrowItem", (itemId) => {
|
||||
mp.events.callRemote('invThrowItem', itemId);
|
||||
});
|
||||
|
||||
|
||||
mp.events.add("CEF:BrowserLoaded", () => {
|
||||
invBrowser.execute(`setItems("${JSON.stringify(itemIdArr)}","${JSON.stringify(itemAmountArr)}");`);
|
||||
|
||||
@@ -59,17 +59,32 @@ namespace ReallifeGamemode.Server.Managers
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
[RemoteEvent("invThrowItem")]
|
||||
public void ServerEvent_invThrowItem(Client client, int itemId)
|
||||
{
|
||||
User user = client.GetUser();
|
||||
|
||||
using (var context = new DatabaseContext())
|
||||
{
|
||||
UserItem item = context.UserItems.Where(u => u.UserId == user.Id && u.ItemId == itemId).FirstOrDefault();
|
||||
context.UserItems.Remove(item);
|
||||
context.SaveChanges();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
[RemoteEvent("tradeItem")]
|
||||
public void ServerEvent_tradeItem(Client client, int value, string nameOrId, string itemIdArrStr, string itemAmountArrStr)
|
||||
{
|
||||
User user = client.GetUser();
|
||||
Client target = ClientService.GetClientByNameOrId(nameOrId);
|
||||
if (target == null || !target.IsLoggedIn())
|
||||
if (target == null || !target.IsLoggedIn() || target == client)
|
||||
{
|
||||
ChatService.PlayerNotFound(client);
|
||||
return;
|
||||
}
|
||||
if(client.Position.DistanceTo(target.Position) <= 20)
|
||||
if(client.Position.DistanceTo(target.Position) >= 5)
|
||||
{
|
||||
ChatService.ErrorMessage(client, "Spieler ist zu weit entfernt.");
|
||||
return;
|
||||
@@ -118,7 +133,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
Timer tradeTimer = new Timer(30000);
|
||||
TradeTimer[user.Id] = tradeTimer;
|
||||
tradeTimer.Start();
|
||||
tradeTimer.Elapsed += (s, e) => { SendBackToSender(sender); client.SetData("inTrade", false); };
|
||||
tradeTimer.Elapsed += (s, e) => { SendBackToSender(sender); client.SetData("inTrade", false); sender.SetData("inTrade", false); };
|
||||
}
|
||||
|
||||
|
||||
@@ -160,6 +175,11 @@ namespace ReallifeGamemode.Server.Managers
|
||||
[RemoteEvent("declineTrade")]
|
||||
public void ServerEvent_declineTrade(Client client)
|
||||
{
|
||||
if (!client.GetData("inTrade"))
|
||||
{
|
||||
ChatService.ErrorMessage(client, "Das Handelsangebot ist abgelaufen.");
|
||||
return;
|
||||
}
|
||||
string name = client.GetData("trade");
|
||||
Client target = ClientService.GetClientByNameOrId(name);
|
||||
if (target == null || !target.IsLoggedIn())
|
||||
@@ -186,6 +206,12 @@ namespace ReallifeGamemode.Server.Managers
|
||||
[RemoteEvent("acceptTrade")]
|
||||
public void ServerEvent_AcceptTrade(Client client)
|
||||
{
|
||||
if (!client.GetData("inTrade"))
|
||||
{
|
||||
ChatService.ErrorMessage(client, "Das Handelsangebot ist abgelaufen.");
|
||||
return;
|
||||
}
|
||||
|
||||
client.SetData("inTrade", false);
|
||||
|
||||
User user = client.GetUser();
|
||||
|
||||
Reference in New Issue
Block a user