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

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

    Прошу помощи с командой.

    Здравствуйте ув. пользователи, при вводе команды /materials, можно использовать команду materials get и deliver.
    В /materials get используется число от 1 - 30, но при вводе команды например /materials get 10, ничего не происходит и пакеты не берутся. Подскажите пожалуйста в чем ошибка.
    PHP код:
    CMD:materials(playeridparams[])
    {
        if(!
    player_is_authorized{playerid})
            return 
    SendClientMessage(playeridCOLOR_GREY, !"Вы не авторизировались.");

        if(
    pInfo[playerid][pJob] != 2)
            return 
    SendClientMessage(playeridCOLOR_GREY, !"Ты не Гандиллер.");

        new 
    materials[15];
        if(
    sscanf(params"s[15]"materials))
            return 
    SendClientMessage(playeridCOLOR_GREY, !"Использование: /materials [get] | [deliver]");

        if(
    strcmp(materials,"get",true) == 0)
        {
            if(!
    IsPlayerInRangeOfPoint(playerid3.01256.4489,242.2705,19.5547))
                return 
    SendClientMessage(playeridCOLOR_GREY, !"Вы не у склада.");
                
            new 
    kolichestvo;
            if(
    sscanf(params"i"kolichestvo))
                return 
    SendClientMessage(playeridCOLOR_GREY, !"Использование: /materials get [Количество].");
                    
            if(
    pInfo[playerid][pGunSkill] >= && pInfo[playerid][pGunSkill] <= 50)
            {
                if(
    kolichestvo || kolichestvo 10)
                    return 
    SendClientMessage(playeridCOLOR_GREY, !"От 1 - до 10.");
            }
            if(
    pInfo[playerid][pGunSkill] >= 51 && pInfo[playerid][pGunSkill] <= 100)
            {
                if(
    kolichestvo || kolichestvo 15)
                    return 
    SendClientMessage(playeridCOLOR_GREY, !"От 1 - до 15.");
            }
            if(
    pInfo[playerid][pGunSkill] >= 101 && pInfo[playerid][pGunSkill] <= 200)
            {
                if(
    kolichestvo || kolichestvo 20)
                    return 
    SendClientMessage(playeridCOLOR_GREY, !"От 1 - до 20.");
            }
            if(
    pInfo[playerid][pGunSkill] >= 201 && pInfo[playerid][pGunSkill] <= 400)
            {
                if(
    kolichestvo || kolichestvo 25)
                    return 
    SendClientMessage(playeridCOLOR_GREY, !"От 1 - до 25.");
            }
            if(
    pInfo[playerid][pGunSkill] >= 401)
            {
                if(
    kolichestvo || kolichestvo 30)
                    return 
    SendClientMessage(playeridCOLOR_GREY, !"От 1 - до 30.");
            }
            if(
    kolichestvo || kolichestvo pInfo[playerid][pPacket])
                return 
    SendClientMessage(playeridCOLOR_GREY, !"У Вас нет столько пакетов.");

            if(
    Packet_Get[playerid] > 0)
                return 
    SendClientMessage(playeridCOLOR_GREY, !"У вас уже есть пакеты, отвезите их.");

            new 
    string[35];
            
    format(stringsizeof string"Вы взяли %d пакетов со склада."kolichestvo);
            
    SendClientMessage(playeridCOLOR_LBLUEstring);
            
    Packet_Get[playerid] += kolichestvo;
            
    pInfo[playerid][pPacket] = pInfo[playerid][pPacket] -= kolichestvo;
            return 
    true;
        }
        if(
    strcmp(materials,"deliver",true) == 0)
        {
            if(!
    IsPlayerInRangeOfPoint(playerid3.0, -2119.8145, -177.786535.3203))
                return 
    SendClientMessage(playeridCOLOR_GREY"Вы не у переработки пакетов.");

            if(
    Packet_Get[playerid] == 0)
                
    SendClientMessage(playeridCOLOR_GREY, !"У вас нету пакетов.");

            new 
    string[50],
                
    mats 50 Packet_Get[playerid];
                
            
    format(stringsizeof string"Вы получили %d материалов, из %d пакетов."matsPacket_Get[playerid]);
            
    SendClientMessage(playeridCOLOR_LBLUEstring);

            
    pInfo[playerid][pMats] += mats;
            
    pInfo[playerid][pGunSkill] += 1;
            
    Packet_Get[playerid] = 0;
        }
        return 
    true;


  2. #2
    Аватар для wAx
    ¯\_(ツ)_/¯

    Статус
    Оффлайн
    Регистрация
    13.12.2013
    Сообщений
    377
    Репутация:
    146 ±
    PHP код:
    CMD:materials(playeridparams[]) 

        if(!
    player_is_authorized{playerid}) 
            return 
    SendClientMessage(playeridCOLOR_GREY, !"Вы не авторизировались."); 

        if(
    pInfo[playerid][pJob] != 2
            return 
    SendClientMessage(playeridCOLOR_GREY, !"Ты не Гандиллер."); 

        new 
    materials[7];;
        if(
    sscanf(params"s[7]"materials)) 
            return 
    SendClientMessage(playeridCOLOR_GREY, !"Использование: /materials [get] | [deliver]"); 

        if(
    strcmp(materials,"get",true) == 0
        { 
            if(!
    IsPlayerInRangeOfPoint(playerid3.01256.4489,242.2705,19.5547)) 
                return 
    SendClientMessage(playeridCOLOR_GREY, !"Вы не у склада."); 
                 
            new 
    kolichestvo
            if(
    sscanf(params"s[7]i"materialskolichestvo)) 
                return 
    SendClientMessage(playeridCOLOR_GREY, !"Использование: /materials get [Количество]."); 
                     
            if(
    pInfo[playerid][pGunSkill] >= && pInfo[playerid][pGunSkill] <= 50
            { 
                if(
    kolichestvo || kolichestvo 10
                    return 
    SendClientMessage(playeridCOLOR_GREY, !"От 1 - до 10."); 
            } 
            if(
    pInfo[playerid][pGunSkill] >= 51 && pInfo[playerid][pGunSkill] <= 100
            { 
                if(
    kolichestvo || kolichestvo 15
                    return 
    SendClientMessage(playeridCOLOR_GREY, !"От 1 - до 15."); 
            } 
            if(
    pInfo[playerid][pGunSkill] >= 101 && pInfo[playerid][pGunSkill] <= 200
            { 
                if(
    kolichestvo || kolichestvo 20
                    return 
    SendClientMessage(playeridCOLOR_GREY, !"От 1 - до 20."); 
            } 
            if(
    pInfo[playerid][pGunSkill] >= 201 && pInfo[playerid][pGunSkill] <= 400
            { 
                if(
    kolichestvo || kolichestvo 25
                    return 
    SendClientMessage(playeridCOLOR_GREY, !"От 1 - до 25."); 
            } 
            if(
    pInfo[playerid][pGunSkill] >= 401
            { 
                if(
    kolichestvo || kolichestvo 30
                    return 
    SendClientMessage(playeridCOLOR_GREY, !"От 1 - до 30."); 
            } 
            if(
    kolichestvo || kolichestvo pInfo[playerid][pPacket]) 
                return 
    SendClientMessage(playeridCOLOR_GREY, !"У Вас нет столько пакетов."); 

            if(
    Packet_Get[playerid] > 0
                return 
    SendClientMessage(playeridCOLOR_GREY, !"У вас уже есть пакеты, отвезите их."); 

            new 
    string[35]; 
            
    format(stringsizeof string"Вы взяли %d пакетов со склада."kolichestvo); 
            
    SendClientMessage(playeridCOLOR_LBLUEstring); 
            
    Packet_Get[playerid] += kolichestvo
            
    pInfo[playerid][pPacket] = pInfo[playerid][pPacket] -= kolichestvo
            return 
    true
        } 
        if(
    strcmp(materials,"deliver",true) == 0
        { 
            if(!
    IsPlayerInRangeOfPoint(playerid3.0, -2119.8145, -177.786535.3203)) 
                return 
    SendClientMessage(playeridCOLOR_GREY"Вы не у переработки пакетов."); 

            if(
    Packet_Get[playerid] == 0
                
    SendClientMessage(playeridCOLOR_GREY, !"У вас нету пакетов."); 

            new 
    string[50], 
                
    mats 50 Packet_Get[playerid]; 
                 
            
    format(stringsizeof string"Вы получили %d материалов, из %d пакетов."matsPacket_Get[playerid]); 
            
    SendClientMessage(playeridCOLOR_LBLUEstring); 

            
    pInfo[playerid][pMats] += mats
            
    pInfo[playerid][pGunSkill] += 1
            
    Packet_Get[playerid] = 0
        } 
        return 
    true

    попробуй так

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Вряд ли сработает вариант выше, ибо для первого sscanf останутся лишние данные (хотя может и всё норм будет).
    В любом случае можно обойтись вызовом одного sscanf
    PHP код:
    CMD:materials(playeridparams[]) 

        if(!
    player_is_authorized{playerid}) 
            return 
    SendClientMessage(playeridCOLOR_GREY, !"Вы не авторизировались."); 

        if(
    pInfo[playerid][pJob] != 2
            return 
    SendClientMessage(playeridCOLOR_GREY, !"Ты не Гандиллер."); 

        new 
    materials[7],
            
    kolichestvo
        if(
    sscanf(params"s[7]I(-1)"materialskolichestvo)) 
            return 
    SendClientMessage(playeridCOLOR_GREY, !"Использование: /materials [get (количество)] | [deliver]"); 

        if(
    strcmp(materials,"get",true) == 0
        { 
            if(!
    IsPlayerInRangeOfPoint(playerid3.01256.4489,242.2705,19.5547)) 
                return 
    SendClientMessage(playeridCOLOR_GREY, !"Вы не у склада."); 

            if(
    kolichestvo == -1
                return 
    SendClientMessage(playeridCOLOR_GREY, !"Использование: /materials get [Количество]."); 
                     
            if(
    pInfo[playerid][pGunSkill] >= && pInfo[playerid][pGunSkill] <= 50
            { 
                if(
    kolichestvo || kolichestvo 10
                    return 
    SendClientMessage(playeridCOLOR_GREY, !"От 1 - до 10."); 
            } 
            if(
    pInfo[playerid][pGunSkill] >= 51 && pInfo[playerid][pGunSkill] <= 100
            { 
                if(
    kolichestvo || kolichestvo 15
                    return 
    SendClientMessage(playeridCOLOR_GREY, !"От 1 - до 15."); 
            } 
            if(
    pInfo[playerid][pGunSkill] >= 101 && pInfo[playerid][pGunSkill] <= 200
            { 
                if(
    kolichestvo || kolichestvo 20
                    return 
    SendClientMessage(playeridCOLOR_GREY, !"От 1 - до 20."); 
            } 
            if(
    pInfo[playerid][pGunSkill] >= 201 && pInfo[playerid][pGunSkill] <= 400
            { 
                if(
    kolichestvo || kolichestvo 25
                    return 
    SendClientMessage(playeridCOLOR_GREY, !"От 1 - до 25."); 
            } 
            if(
    pInfo[playerid][pGunSkill] >= 401
            { 
                if(
    kolichestvo || kolichestvo 30
                    return 
    SendClientMessage(playeridCOLOR_GREY, !"От 1 - до 30."); 
            } 
            if(
    kolichestvo || kolichestvo pInfo[playerid][pPacket]) 
                return 
    SendClientMessage(playeridCOLOR_GREY, !"У Вас нет столько пакетов."); 

            if(
    Packet_Get[playerid] > 0
                return 
    SendClientMessage(playeridCOLOR_GREY, !"У вас уже есть пакеты, отвезите их."); 

            new 
    string[35]; 
            
    format(stringsizeof string"Вы взяли %d пакетов со склада."kolichestvo); 
            
    SendClientMessage(playeridCOLOR_LBLUEstring); 
            
    Packet_Get[playerid] += kolichestvo
            
    pInfo[playerid][pPacket] = pInfo[playerid][pPacket] -= kolichestvo
            return 
    true
        } 
        else if(
    strcmp(materials,"deliver",true) == 0
        { 
            if(!
    IsPlayerInRangeOfPoint(playerid3.0, -2119.8145, -177.786535.3203)) 
                return 
    SendClientMessage(playeridCOLOR_GREY"Вы не у переработки пакетов."); 

            if(
    Packet_Get[playerid] == 0
                
    SendClientMessage(playeridCOLOR_GREY, !"У вас нету пакетов."); 

            new 
    string[50], 
                
    mats 50 Packet_Get[playerid]; 
                 
            
    format(stringsizeof string"Вы получили %d материалов, из %d пакетов."matsPacket_Get[playerid]); 
            
    SendClientMessage(playeridCOLOR_LBLUEstring); 

            
    pInfo[playerid][pMats] += mats
            
    pInfo[playerid][pGunSkill] += 1
            
    Packet_Get[playerid] = 0
        } 
        return 
    true

    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  4. Пользователь сказал cпасибо:
    Skyline (13.05.2017)
  5. #4
    Аватар для Skyline
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.01.2014
    Адрес
    Россия
    Сообщений
    304
    Репутация:
    2 ±
    Спасибо DeimoS) Можно закрывать.

 

 

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

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

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

Ваши права

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