[+] Improved Inventory System based on old Inventory Manager and new GUI. (test version)
This commit is contained in:
70
ReallifeGamemode.Server/Events/Inventory.cs
Normal file
70
ReallifeGamemode.Server/Events/Inventory.cs
Normal file
@@ -0,0 +1,70 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Server.Entities;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Inventory.Interfaces;
|
||||
using ReallifeGamemode.Server.Managers;
|
||||
using ReallifeGamemode.Server.Models;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
|
||||
namespace ReallifeGamemode.Server.Events
|
||||
{
|
||||
public class Inventory : Script
|
||||
{
|
||||
[RemoteEvent("getNearVehicles")]
|
||||
public void SrvEvent_GetNearVehicles(Client client)
|
||||
{
|
||||
var user = client.GetUser();
|
||||
var inventoryWeight = 0;
|
||||
List<VehicleInventory> vehicleInventory = new List<VehicleInventory>();
|
||||
if (!client.IsInVehicle)
|
||||
{
|
||||
using (var context = new DatabaseContext())
|
||||
{
|
||||
foreach (Vehicle veh in NAPI.Pools.GetAllVehicles())
|
||||
{
|
||||
List<string> iName = new List<string>();
|
||||
List<int> iAmount = new List<int>();
|
||||
List<int> iId = new List<int>();
|
||||
inventoryWeight = 0;
|
||||
int vehID = 0;
|
||||
|
||||
if (veh.Position.DistanceTo(client.Position) < 2)
|
||||
{
|
||||
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)
|
||||
{
|
||||
IItem iItem = InventoryManager.GetItemById(vehItem.ItemId);
|
||||
var currentItemWeight = iItem.Gewicht * vehItem.Amount;
|
||||
inventoryWeight += currentItemWeight;
|
||||
|
||||
iName.Add(iItem.Name);
|
||||
iAmount.Add(vehItem.Amount);
|
||||
iId.Add(iItem.Id);
|
||||
vehID = vehItem.VehicleId;
|
||||
}
|
||||
var vehInv = new VehicleInventory
|
||||
{
|
||||
ID = vehID,
|
||||
currentWeight = inventoryWeight,
|
||||
totalWeight = 250,
|
||||
ivehName = iName.ToArray(),
|
||||
ivehAmount = iAmount.ToArray(),
|
||||
ivehId = iId.ToArray()
|
||||
};
|
||||
vehicleInventory.Add(vehInv);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
client.TriggerEvent("setVehiclesInventory", vehicleInventory.ToArray());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user