Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 5 из 5
  1. #1
    Аватар для s1lverfail
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.03.2014
    Сообщений
    11
    Репутация:
    2 ±

    Проблема с циклом

    В общем суть проблемы: мы даем игроку итем в инвентарь GiveInventory(playerid,item,amount), где item - предмет, amount - кол-во. И в общем, не получается сделать так, чтобы если у игрока уже есть такой итем, то кол-во просто приплюсовывалось, а если нет, цикл ищет 0 слот, то есть свободный и дает предмет.
    Сам сток:
    PHP код:
    stock GiveInventory(playeriditemamount)
    {
        for(new 
    k=021k++)
        {
            if(
    InventoryPlayer[playerid][invSlot][k] == item) return InventoryPlayer[playerid][invKol][k] += amount;
            else if(
    InventoryPlayer[playerid][invSlot][k] == 0)
            {
                
    InventoryPlayer[playerid][invSlot][k] = item;
                
    InventoryPlayer[playerid][invKol][k] = amount;
                return 
    true;
            }
        }
        return 
    false;

    С циклами особо не лажу, прошу вашей помощи. В данный момент выдается итем в самый первый слот, и если его оттуда не перемещать, то все в порядке. Но если переместить, допустим, в 5 слот, то опять создатся итем в первом слоте при вызове стока. Помогите пожалуйста.

  2. #2
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Второй цикл нужен перед этим, который будет искать слот с похожим предметом. И если уже не найден такой слот, ставим в первый попавшийся свободный
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  3. #3
    Аватар для s1lverfail
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.03.2014
    Сообщений
    11
    Репутация:
    2 ±
    Не совсем понял, но так и думал что нужен второй цикл. Вот пример, не так?
    PHP код:
    stock GiveInventory(playeriditemamount)
    {
        for(new 
    k=0!= 21k++)
        {
            if(
    InventoryPlayer[playerid][invSlot][k] == item) return InventoryPlayer[playerid][invKol][k] += amount;
        }
        for(new 
    k=0!= 21k++)
        {
            if(
    InventoryPlayer[playerid][invSlot][k] == 0)
            {
                
    InventoryPlayer[playerid][invSlot][k] = item;
                
    InventoryPlayer[playerid][invKol][k] = amount;
                return 
    true;
            }
        }
        return 
    false;


  4. #4
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Типа того. Опробуйте сами, ибо я ваших переменных не знаю :)
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  5. #5
    Аватар для s1lverfail
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.03.2014
    Сообщений
    11
    Репутация:
    2 ±
    Все разобрался, спасибо.

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •