Why RemoveItem doesn't work
#1

pawn Код:
When i call function RemoveItem isn't remove

RemoveItem(playerid, "Item1", 1);

stock RemoveItem(playerid,ItemName[],Amount)
{
    for(new item;item<MAX_ITEMS;item++)
    {
        if(!_GetItemAmountPVar(playerid,item))continue;
        if(!strcmp(_GetItemNamePVar(playerid,item),ItemName,true))
        {
            _SetItemAmountPVar(playerid,item,_GetItemAmountPVar(playerid,item)-Amount);
            if(_GetItemAmountPVar(playerid,item)<=0)_SetItemAmountPVar(playerid,item,0);
            if(_GetItemAmountPVar(playerid,item)>MAX_ITEM_STACK)
            {
                _SetItemAmountPVar(playerid,item,MAX_ITEM_STACK);
                return 2;
            }
            return 1;
        }
    }
    return 0;
}
Reply
#2

This might work.

Код:
stock RemoveItem(playerid, ItemName[], Amount)
{
	for(new item; item < MAX_ITEMS; item++)
	{
		if(!_GetItemAmountPVar(playerid, item) || !strcmp(_GetItemNamePVar(playerid, item), ItemName, true)) continue;

		if(_GetItemAmountPVar(playerid, item) <= 0) _SetItemAmountPVar(playerid, item, 0);
		else if(_GetItemAmountPVar(playerid, item) > MAX_ITEM_STACK) _SetItemAmountPVar(playerid, item, MAX_ITEM_STACK);
		else _SetItemAmountPVar(playerid, item, _GetItemAmountPVar(playerid, item) - Amount);
		return 1;
	}
	return 1;
}
Reply
#3

Quote:
Originally Posted by dionisak0s
Посмотреть сообщение
This might work.

Код:
stock RemoveItem(playerid, ItemName[], Amount)
{
	for(new item; item < MAX_ITEMS; item++)
	{
		if(!_GetItemAmountPVar(playerid, item) || !strcmp(_GetItemNamePVar(playerid, item), ItemName, true)) continue;

		if(_GetItemAmountPVar(playerid, item) <= 0) _SetItemAmountPVar(playerid, item, 0);
		else if(_GetItemAmountPVar(playerid, item) > MAX_ITEM_STACK) _SetItemAmountPVar(playerid, item, MAX_ITEM_STACK);
		else _SetItemAmountPVar(playerid, item, _GetItemAmountPVar(playerid, item) - Amount);
		return 1;
	}
	return 1;
}
doesn't work
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)