Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Добавление объекта в инвентарь.

Статус
В этой теме нельзя размещать новые ответы.

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;
}
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу