hanf vielleicht fertig

This commit is contained in:
hydrant
2021-05-27 21:06:20 +02:00
parent 211269d03a
commit 60f55e0eeb
20 changed files with 2996 additions and 56 deletions

View File

@@ -47,7 +47,7 @@ namespace ReallifeGamemode.Server.Managers
public int Amount;
public int ItemId;
public int Weight;
public Vehicle vehicle;
public ushort vehicle;
}
public static void SetBackpackItems(Player player)
@@ -75,9 +75,9 @@ namespace ReallifeGamemode.Server.Managers
player.SetSharedData("backpackItems", JsonConvert.SerializeObject(backpackItems[player].ToArray()));
}
internal static IItem GetItem<T>() where T : IItem
internal static T GetItem<T>() where T : IItem
{
return itemList.Where(i => i.GetType() == typeof(T)).First();
return (T)itemList.Where(i => i.GetType() == typeof(T)).First();
}
[RemoteEvent("CLIENT:getVehicleInventory")]
@@ -86,7 +86,9 @@ namespace ReallifeGamemode.Server.Managers
if (player.IsInVehicle)
{
player.TriggerEvent("Error", "Du kannst deinen Kofferraum gerade nicht öffnen.");
return;
}
Vehicle veh = NAPI.Pools.GetAllVehicles()
.ToList()
.Where(v => v.Position.DistanceTo(player.Position) <= 4)
@@ -131,7 +133,7 @@ namespace ReallifeGamemode.Server.Managers
Amount = i.Amount,
ItemId = i.ItemId,
Weight = GetVehicleInventoryWeight(veh),
vehicle = veh,
vehicle = veh.Handle.Value,
};
vehicleItems[player].Add(newItem);
}
@@ -197,6 +199,10 @@ namespace ReallifeGamemode.Server.Managers
public static void RemoveVehicleItem(ServerVehicle sVeh, VehicleItem item, int amount, Player player)
{
if (item == null)
{
return;
}
using (var dbContext = new DatabaseContext())
{
var vehicleItem = dbContext.VehicleItems.FirstOrDefault(i => i.Id == item.Id);
@@ -327,20 +333,29 @@ namespace ReallifeGamemode.Server.Managers
using (var context = new DatabaseContext())
{
User user = player.GetUser(context);
if (!vehicleItems.ContainsKey(player))
vehicleItems.Add(player, new List<InventoryItem>());
Vehicle veh = null;
if (vehicleItems[player].Count != 0)
veh = vehicleItems[player].FirstOrDefault().vehicle;
veh = new NetHandle(vehicleItems[player].FirstOrDefault().vehicle, EntityType.Vehicle).Entity<Vehicle>();
ServerVehicle serverVehicle = VehicleManager.GetServerVehicleFromVehicle(veh, context);
VehicleItem vehItem = context.VehicleItems.Where(v => v.VehicleId == serverVehicle.Id && v.ItemId == itemID).FirstOrDefault();
if (vehItem == null)
{
player.TriggerEvent("Error", "Transfer nicht möglich.");
return;
}
if (serverVehicle is FactionVehicle factionVehicle)
{
IItem item = GetItemById(itemID);
if (factionVehicle.Model == VehicleHash.Riot && user.Faction?.StateOwned == true)
{
player.TriggerEvent("Error", "Transfer nicht möglich.");
return;
}
}
RemoveVehicleItem(serverVehicle, vehItem, itemAmount, player);
SetVehicleItems(player);