GiveObject(playerid, objectid, kolobject)
#1

делаю выдачу предметов для инвентаря, получилось немного быдловато, т.к хочу сделать так, если предмет есть такой в инвентаре то прибавляется его количество, но почему то не получается, помогите.
PHP код:
stock GiveObject(playerididobjectkolobject)
{
    for(new 
ii<24i++)
    {
        if(
Player[playerid][item_id][i] == idobject)
        {
        
Player[playerid][item_kol][i] += kolobject;
        if( 
kolobject <= 0)
        {
        
Player[playerid][item_id][i] = 0;
        }
        break;
        }
    }
    for(new 
i24i++)
    {
        if(
Player[playerid][item_id][i] == 0)
        {
        
Player[playerid][item_id][i] = idobject;
        
Player[playerid][item_kol][i] = kolobject;
        if( 
kolobject <= 0)
        {
        
Player[playerid][item_id][i] = 0;
        }
        break;
        }
    }

Reply
#2

В обоих случаях нужен return, а не break.
И второй цикл не нужно запускать если kolobject <= 0, если в первом цикле объект не найден, его нельзя удалить во втором.
pawn Код:
GiveObject(playerid, idobject, kolobject) {
    for (new i; i < 24; i++) {
        if (Player[playerid][item_id][i] == idobject) {
            if (kolobject <= 0) {
                Player[playerid][item_id][i] = Player[playerid][item_kol][i] = 0;
            } else {
                Player[playerid][item_kol][i] += kolobject;
            }
            return 1;
        }
    }
    for (new i; i < 24; i++) {
        if (Player[playerid][item_id][i] == 0) {
            Player[playerid][item_id][i] = idobject;
            Player[playerid][item_kol][i] = kolobject;
            return 1;
        }
    }
    return 1;
}
Reply
#3

благодарю.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)