Inventory rework done (WIP)

This commit is contained in:
Lukas Moungos
2019-07-29 00:27:20 +02:00
parent 8aeb47406c
commit e2b3398393
3 changed files with 34 additions and 4 deletions

View File

@@ -422,7 +422,7 @@ function wegwerfen() {
drawToPage(); drawToPage();
drawToHandel(); drawToHandel();
moveItemsInv(); moveItemsInv();
mp.events.callRemote('invThrowItem', playerInventory[currentSelected].itemId); mp.trigger('CEF:invThrowItem', playerInventory[currentSelected].itemId);
} }
} }

View File

@@ -48,6 +48,10 @@ export default function inventory(globalData: GlobalData): void {
itemAmountArr = itemAmountArr1; itemAmountArr = itemAmountArr1;
} }
}); });
mp.events.add("CEF:invThrowItem", (itemId) => {
mp.events.callRemote('invThrowItem', itemId);
});
mp.events.add("CEF:BrowserLoaded", () => { mp.events.add("CEF:BrowserLoaded", () => {
invBrowser.execute(`setItems("${JSON.stringify(itemIdArr)}","${JSON.stringify(itemAmountArr)}");`); invBrowser.execute(`setItems("${JSON.stringify(itemIdArr)}","${JSON.stringify(itemAmountArr)}");`);

View File

@@ -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")] [RemoteEvent("tradeItem")]
public void ServerEvent_tradeItem(Client client, int value, string nameOrId, string itemIdArrStr, string itemAmountArrStr) public void ServerEvent_tradeItem(Client client, int value, string nameOrId, string itemIdArrStr, string itemAmountArrStr)
{ {
User user = client.GetUser(); User user = client.GetUser();
Client target = ClientService.GetClientByNameOrId(nameOrId); Client target = ClientService.GetClientByNameOrId(nameOrId);
if (target == null || !target.IsLoggedIn()) if (target == null || !target.IsLoggedIn() || target == client)
{ {
ChatService.PlayerNotFound(client); ChatService.PlayerNotFound(client);
return; return;
} }
if(client.Position.DistanceTo(target.Position) <= 20) if(client.Position.DistanceTo(target.Position) >= 5)
{ {
ChatService.ErrorMessage(client, "Spieler ist zu weit entfernt."); ChatService.ErrorMessage(client, "Spieler ist zu weit entfernt.");
return; return;
@@ -118,7 +133,7 @@ namespace ReallifeGamemode.Server.Managers
Timer tradeTimer = new Timer(30000); Timer tradeTimer = new Timer(30000);
TradeTimer[user.Id] = tradeTimer; TradeTimer[user.Id] = tradeTimer;
tradeTimer.Start(); 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")] [RemoteEvent("declineTrade")]
public void ServerEvent_declineTrade(Client client) public void ServerEvent_declineTrade(Client client)
{ {
if (!client.GetData("inTrade"))
{
ChatService.ErrorMessage(client, "Das Handelsangebot ist abgelaufen.");
return;
}
string name = client.GetData("trade"); string name = client.GetData("trade");
Client target = ClientService.GetClientByNameOrId(name); Client target = ClientService.GetClientByNameOrId(name);
if (target == null || !target.IsLoggedIn()) if (target == null || !target.IsLoggedIn())
@@ -186,6 +206,12 @@ namespace ReallifeGamemode.Server.Managers
[RemoteEvent("acceptTrade")] [RemoteEvent("acceptTrade")]
public void ServerEvent_AcceptTrade(Client client) public void ServerEvent_AcceptTrade(Client client)
{ {
if (!client.GetData("inTrade"))
{
ChatService.ErrorMessage(client, "Das Handelsangebot ist abgelaufen.");
return;
}
client.SetData("inTrade", false); client.SetData("inTrade", false);
User user = client.GetUser(); User user = client.GetUser();