Added many things I can't recall but it has to do with inventory system and some minor fixes .. it's cool
This commit is contained in:
@@ -9,6 +9,7 @@ using ReallifeGamemode.Server.Entities;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Models;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
|
||||
namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
@@ -24,6 +25,8 @@ namespace ReallifeGamemode.Server.Managers
|
||||
|
||||
List<int> ItemId = new List<int>();
|
||||
List<int> amount = new List<int>();
|
||||
List<int> vehItemId = new List<int>();
|
||||
List<int> vehAmount = new List<int>();
|
||||
using (var context = new DatabaseContext())
|
||||
{
|
||||
List<UserItem> userItems = context.UserItems.ToList().FindAll(i => i.UserId == user.Id);
|
||||
@@ -32,6 +35,26 @@ namespace ReallifeGamemode.Server.Managers
|
||||
ItemId.Add(item.ItemId);
|
||||
amount.Add(item.Amount);
|
||||
}
|
||||
foreach(Vehicle veh in NAPI.Pools.GetAllVehicles())
|
||||
{
|
||||
if(veh.Position.DistanceTo(client.Position) < 1)
|
||||
{
|
||||
if (VehicleStreaming.GetDoorState(veh, DoorID.DoorTrunk) == DoorState.DoorOpen)
|
||||
{
|
||||
ServerVehicle serverVehicle = VehicleManager.GetServerVehicleFromVehicle(veh, context);
|
||||
List<VehicleItem> vehicleItems = context.VehicleItems.ToList().FindAll(i => i.VehicleId == serverVehicle.Id);
|
||||
foreach (var vehItem in vehicleItems)
|
||||
{
|
||||
vehItemId.Add(vehItem.ItemId);
|
||||
vehAmount.Add(vehItem.Amount);
|
||||
}
|
||||
client.TriggerEvent("vehInventoryShow", ItemId.ToArray(), amount.ToArray(), vehItemId.ToArray(), vehAmount.ToArray(), serverVehicle.Id);
|
||||
return;
|
||||
}
|
||||
ChatService.SendMessage(client, "Kofferraum ist zu nigger!");
|
||||
break;
|
||||
}
|
||||
}
|
||||
client.TriggerEvent("inventoryShow", ItemId.ToArray(), amount.ToArray());
|
||||
}
|
||||
}
|
||||
@@ -52,21 +75,109 @@ namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
context.UserItems.Remove(item);
|
||||
}
|
||||
client.SendNotification("Du hast ~g~" + item.Amount + " ~y~" + InventoryManager.GetItemById(itemId).Name + " ~s~ benutzt.", false);
|
||||
|
||||
context.SaveChanges();
|
||||
return;
|
||||
}
|
||||
}
|
||||
[RemoteEvent("saveHelper")]
|
||||
public void ServerEvent_invSaveHelper(Client client, string vehID)
|
||||
{
|
||||
User user = client.GetUser();
|
||||
int serVehID = JsonConvert.DeserializeObject<int>(vehID);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
[RemoteEvent("saveItems")]
|
||||
public void ServerEvent_invSaveItems(Client client, string itemIdArr, string itemAmountArr, string SlotArr)
|
||||
{
|
||||
User user = client.GetUser();
|
||||
|
||||
int itemId = JsonConvert.DeserializeObject<int>(itemIdArr);
|
||||
int itemAmount = JsonConvert.DeserializeObject<int>(itemAmountArr);
|
||||
int Slot = JsonConvert.DeserializeObject<int>(SlotArr);
|
||||
|
||||
using (var context = new DatabaseContext())
|
||||
{
|
||||
if (Slot < 24)
|
||||
{
|
||||
UserItem item = context.UserItems.Where(u => u.UserId == user.Id && u.ItemId == itemId).FirstOrDefault();
|
||||
if (item != null)
|
||||
{
|
||||
item.Amount += itemAmount;
|
||||
}
|
||||
else
|
||||
{
|
||||
var newItem = new UserItem
|
||||
{
|
||||
ItemId = itemId,
|
||||
UserId = user.Id,
|
||||
Amount = itemAmount,
|
||||
Slot = -1
|
||||
};
|
||||
|
||||
context.UserItems.Add(newItem);
|
||||
}
|
||||
|
||||
context.SaveChanges();
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (Vehicle veh in NAPI.Pools.GetAllVehicles())
|
||||
{
|
||||
if (veh.Position.DistanceTo(client.Position) < 1)
|
||||
{
|
||||
if (VehicleStreaming.GetDoorState(veh, DoorID.DoorTrunk) == DoorState.DoorOpen)
|
||||
{
|
||||
ServerVehicle serverVehicle = VehicleManager.GetServerVehicleFromVehicle(veh, context);
|
||||
VehicleItem vehItem = context.VehicleItems.Where(v => v.VehicleId == serverVehicle.Id && v.ItemId == itemId).FirstOrDefault();
|
||||
if (vehItem != null)
|
||||
{
|
||||
vehItem.Amount = itemAmount;
|
||||
}
|
||||
else
|
||||
{
|
||||
var newItem = new VehicleItem
|
||||
{
|
||||
ItemId = itemId,
|
||||
VehicleId = serverVehicle.Id,
|
||||
Amount = itemAmount,
|
||||
Slot = -1
|
||||
};
|
||||
|
||||
context.VehicleItems.Add(newItem);
|
||||
}
|
||||
context.SaveChanges();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
[RemoteEvent("invThrowItem")]
|
||||
public void ServerEvent_invThrowItem(Client client, int itemId)
|
||||
public void ServerEvent_invThrowItem(Client client, int itemId, int amount)
|
||||
{
|
||||
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);
|
||||
if (item.Amount > amount)
|
||||
{
|
||||
item.Amount -= amount;
|
||||
client.SendNotification("Du hast ~g~" + amount + " ~y~" + InventoryManager.GetItemById(itemId).Name + " ~s~weggeworfen.", false);
|
||||
}
|
||||
else
|
||||
{
|
||||
client.SendNotification("Du hast ~g~" + item.Amount + " ~y~" + InventoryManager.GetItemById(itemId).Name + " ~s~weggeworfen.", false);
|
||||
context.UserItems.Remove(item);
|
||||
}
|
||||
context.SaveChanges();
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user