Всем привет, подскажите пожалуйста, я начинающий разработчик, делаю уроки по ютуб каналу, наткнулся на проблему, ссылаюсь на то что видео было сделано 3 года назад, и в любом случае были какие то изменения в RAGE MP, Не могу понять, подскажите пожалуйста что не так, и что необходимо изменить?
Ошибка 106 строка: foreach(ItemModel item in itemList.ToList())
inventory.Add(inventoryItem);
}
}
return inventory;
}
Ошибка 222 строка: NAPI.Util.ConsoleOutput(NAPI.Util.ToJson(GetPlayerInventory(player)));
Код:
Value cannot be null. (Parameter 'source')
Exception has been thrown by the target of an invocation.
UNHANDLED EXCEPTION IN COMMAND inventory FOR RESOURCE skyland
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
---> System.ArgumentNullException: Value cannot be null. (Parameter 'source')
at void System.Linq.ThrowHelper.ThrowArgumentNullException(ExceptionArgument argument)
at List<TSource> System.Linq.Enumerable.ToList<TSource>(IEnumerable<TSource> source)
at List<InventoryModel> skyland.Inventory.Inventory.GetPlayerInventory(Player player) in C:/Users/Belcheezy#/Desktop/server-files/backend/skyland/skyland/Inventory/Inventory.cs:line 106
at void skyland.Inventory.Inventory.CMD_inventory(Player player) in C:/Users/Belcheezy#/Desktop/server-files/backend/skyland/skyland/Inventory/Inventory.cs:line 222
--- End of inner exception stack trace ---
at object RuntimeMethodHandle.InvokeMethod(object target, object[] arguments, Signature sig, bool constructor, bool wrapExceptions)
at object System.Reflection.RuntimeMethodInfo.Invoke(object obj, BindingFlags invokeAttr, Binder binder, object[] parameters, CultureInfo culture)
at bool GTANetworkInternals.CommandParser.Parse(Player sender, string cmdRaw, string ourcmd, string[] args)
Ошибка 106 строка: foreach(ItemModel item in itemList.ToList())
Код:
private static List<InventoryModel> GetPlayerInventory(Player player)
{
List<InventoryModel> inventory = new List<InventoryModel>();
Accounts account = player.GetData<Accounts>(Accounts.Account_Key);
int playerId = account.ID;
foreach(ItemModel item in itemList.ToList())
{
if(item != null && item.ownerEntity == "Player" && item.ownerIdentifier == playerId)
{
InventoryModel inventoryItem = new InventoryModel();
Item getItem = Item.GetItemFromItem(item.hash);
inventoryItem.id = item.id;
inventoryItem.hash = item.hash;
inventoryItem.descriptionitem = getItem.descriptionitem;
inventoryItem.type = getItem.type;
inventoryItem.amount = item.amount;
inventory.Add(inventoryItem);
}
}
return inventory;
}
Ошибка 222 строка: NAPI.Util.ConsoleOutput(NAPI.Util.ToJson(GetPlayerInventory(player)));
Код:
[Command("inventory", "/inventory")]
public void CMD_inventory(Player player)
{
NAPI.Util.ConsoleOutput(NAPI.Util.ToJson(GetPlayerInventory(player)));
player.TriggerEvent("showPlayerInventory", NAPI.Util.ToJson(GetPlayerInventory(player)));
}