NoPressF
Умник
Здравствуйте, есть проблема когда игрок открывает инвентарь. Пример: есть у игрока 2 бутылки с водой, но они разного качества. У 1 бутылки с водой качество 1 (Плохое) а у 2 бутылки с водой 4 (Отличное). И когда игрок открывает инвентарь ему показывается только бутылка с водой одного какого то качества.
Инвентарь взял под основу у @oxygenium.
Переменная отвечающая за кол-во предметов в
А за качество
Я знаю почему мне не выводится 2 предмета с разным качеством.
Причина такова, циклfor(new i; i != sizeof iItems; i++) отвечает за последовательный вывод ид предметов (названия). Но никак не за качество каждого предмета.
Вывод: Причина нашёл почему это происходит, а решение Нет.
Инвентарь взял под основу у @oxygenium.
Переменная отвечающая за кол-во предметов в
PHP:
playerItems[MAX_PLAYERS][sizeof iItems];
PHP:
itemQuality[MAX_PLAYERS][sizeof iItems];
PHP:
enum pItems
{
ItemName[MAX_ITEM_NAME_LENGTH],
Float: ItemWeight,
ItemDescription[256],
ItemIsValidValueItem,
ItemModelid
};
new iItems[ITEM_TYPE_COUNT][pItems] =
{
{"Бутылка с грязной водой", 0.60, "Отсутствует", INVALID_VALUE_ITEM, 1486}
}
stock Inventory(playerid)
{
new dialogString[sizeof iItems * (32 + 6) + 20], backpack[58], StringValue[10], playerItemsCount;
for(new i; i != sizeof iItems; i++)
{
if(GetPlayerItemCount(playerid, i) == 0) continue;
playerItemsCount += GetPlayerItemCount(playerid, i);
format(dialogString, sizeof dialogString,
"%s\n%i\t%s %s %s\t%.2f кг\n", dialogString, GetPlayerItemCount(playerid, i), iInfo[playerid][i][ItemStringQuality], iItems[i][ItemName], StringValue, iItems[i][ItemWeight]);
}
if(!playerItemsCount)
return SendError(playerid, "Ваш инвентарь пуст!");
strins(dialogString, "{FFFFFF}Кол\t{FFFFFF}Предмет\t{FFFFFF}Вес 1шт\n", 0);
format(backpack, sizeof(backpack), "{FFFFFF}%s (%d/%d) %s/%.2f кг", dataText[playerid][StringLevelBackpack], playerItemsCount, pInfo[playerid][maxCountItems], stringFullMaxWeight, pInfo[playerid][maxWeightInventory]);
DS(playerid, "DialogInventoryPlayer", DSTH, backpack, dialogString, "Выбрать", "Отмена");
return true;
}
// На самом деле предметов больше чем кажется))
Причина такова, циклfor(new i; i != sizeof iItems; i++) отвечает за последовательный вывод ид предметов (названия). Но никак не за качество каждого предмета.
Вывод: Причина нашёл почему это происходит, а решение Нет.
Последнее редактирование:
