Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Показано с 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
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Второй цикл нужен перед этим, который будет искать слот с похожим предметом. И если уже не найден такой слот, ставим в первый попавшийся свободный
    Связаться со мной можно в личных сообщениях этой группы

    Широко известно, что идеи стоят 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
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Типа того. Опробуйте сами, ибо я ваших переменных не знаю :)
    Связаться со мной можно в личных сообщениях этой группы

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

    Steve Pavlina

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

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

 

 

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

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

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

Ваши права

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