Lionely
Умник
Доброго времени суток, форумчане проекта Pawno-info.
Разрабатываю инвентарь для своего проекта, в целях своего развития в этой сфере, и у меня не получается вод такая штука...
Коротко об основном:
Если у игрока в инвентаре есть уже такой предмет, просто добавляем ему количество, если нет такого предмета, записываем.
Но у меня работает всё как-то по иному, вызывается всегда первой запись нового объекта.
Если допустим "наручники находятся в свободном слоте для записи" для примера берём первый слот, если там есть наручники, и мы подымаем ещё наручники с пола, то они плюсуются, если же в первом слоте нет наручников, в этот же первый слот записываются наручники.
Хотя я проверяю циклом на слоты и на объект, если такой объект есть, чтобы просто плюсовать к нему количество.
Если нету такого объекта, значит добавляем.
Разрабатываю инвентарь для своего проекта, в целях своего развития в этой сфере, и у меня не получается вод такая штука...
Коротко об основном:
Если у игрока в инвентаре есть уже такой предмет, просто добавляем ему количество, если нет такого предмета, записываем.
Но у меня работает всё как-то по иному, вызывается всегда первой запись нового объекта.
Если допустим "наручники находятся в свободном слоте для записи" для примера берём первый слот, если там есть наручники, и мы подымаем ещё наручники с пола, то они плюсуются, если же в первом слоте нет наручников, в этот же первый слот записываются наручники.
Хотя я проверяю циклом на слоты и на объект, если такой объект есть, чтобы просто плюсовать к нему количество.
Если нету такого объекта, значит добавляем.
PHP:
stock SetItemInv(playerid, itemid, bool:drop, ids,amount) // Функция добавления объекта в инвентарь
{
new full; // Переменная для записи занятых ячеек
for(new j = 5; j < 19; j++) // цикл
{
if(PlayerINV[playerid][pInventory][j] == itemid)// если в инвентаре есть такой предмет
{
PlayerINV[playerid][pKolVoInv][j] += amount;// добавляем количество
print("1");
break;
}
if(DropInfo[ids][DropID] != PlayerINV[playerid][pInventory][j])// если нет такого предмета
{
if(PlayerINV[playerid][pInventory][j] == 0)// если слот пустой
{
PlayerINV[playerid][pInventory][j] = itemid; // Записываем новый предмет
PlayerINV[playerid][pKolVoInv][j] = amount;// записываем количество
print("2");
break;
}else full++;
}
}
if(full == 19) return SCM(playerid,COLOR_ADD,"{2F4F4F}[Inv]: {FFC800}В инвентаре нет места для объекта."); // Если все 20 слотов заняты то пишем текст игроку
if(drop == true) // Если Drop true то...
{
DropInfo[ids][DropX] = 0.0; // Обнуляем координаты объекта X
DropInfo[ids][DropY] = 0.0; // Обнуляем координаты объекта Y
DropInfo[ids][DropZ] = 0.0; // Обнуляем координаты объекта Z
DropInfo[ids][DropModel] = 0; // Обнуляем id модели объекта
DropInfo[ids][DropKol] = 0; // Обнуляем количество
DropInfo[ids][DropID] = -1;// ид объекта
DestroyDynamicObject(DropObject[ids]); // Удаляем сам объект
DestroyDynamic3DTextLabel(DropInfo[ids][DropLabel]); // Удаляем 3dText
}
HideInventory(playerid);
ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 0, 0, 0, 0); // Проигрываем анимацию поднятия предмета
return 1;
}
