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

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Показано с 1 по 3 из 3

Тема: По SSCANF

  1. #1
    Аватар для Kevin_Patterson
    Пользователь

    Статус
    Оффлайн
    Регистрация
    21.05.2014
    Сообщений
    19
    Репутация:
    0 ±

    По SSCANF

    Здравствуйте, вот решил написать кое-какую сис-му и столкнулся с проблемой.
    Я использую DC_CMD+SSCANF, но возникла такая проблема.
    У меня команда так сказать многоуровневая, приведу в пример систему жучков для FBI, выложенную здесь очень давно...
    PHP код:
    CMD:tipster(playeridparams[])
    {
        if(
    sscanf(params"s[12]"params[0])) return SendClientMessage(playerid, -1"Введите: /tipster [действие]"), SendClientMessage(playeridCOLOR_WHITE"  /tipster get - Взять жучок."), SendClientMessage(playeridCOLOR_WHITE"  /tipsterset - Прикрепить жучок к игроку."), SendClientMessage(playeridCOLOR_WHITE"  /tipster remove - Деактивировать жучок."), SendClientMessage(playeridCOLOR_WHITE"  /tipster listen - Начать прослушивание чата фракции.");
        if(
    strcmp(params[0], "get",true) == 0)
        {
            if(
    PlayerInfo[playerid][pRang] < && PlayerInfo[playerid][pMember] != TEAM_FBI) return SendClientMessage(playerid, -1,"Вам недоступна данная функция!");
             if(
    vehicle >= FBICARS[0] && vehicle <= FBICARS[1]) {}
              else return 
    SendClientMessage(playerid,COLOR_GREY,"Вы должны находиться в автомобиле FBI");
               if(
    tipsterq[playerid]) return SendClientMessage(playerid, -1,"У вас уже есть жучок!");
            
    tipsterq[playerid] = 1;
            
    SendClientMessage(playerid,COLOR_LIGHTGREEN"Вы взяли жучок! Используйте /tipster SET [id].");
            
    format(nsa80,"%s взял жучок из автомобиля"Name(playerid));
            
    ProxDetector(5.0playeridnsaCOLOR_PURPLECOLOR_PURPLECOLOR_PURPLECOLOR_PURPLECOLOR_PURPLE);
        }
        else if(
    strcmp(params[0], "set",true) == 0)
        {
            if(
    PlayerInfo[playerid][pRang] < && PlayerInfo[playerid][pMember] != TEAM_FBI) return SendClientMessage(playerid, -1,"Вам недоступна данная функция!");
            if(!
    tipsterq[playerid]) return SendClientMessage(playerid, -1,"У вас нет жучка!");
            if(!
    ProxDetectorS(2.0playeridparams[1])) return SendClientMessage(playerid, -1,"Игрок далеко от вас!");
            if(
    tipsterw != -1) return SendClientMessage(playeridCOLOR_LIGHTGREEN"Жучок уже прикреплен! Используйте /tipster REMOVE");
             if(!
    PlayerInfo[params[1]][pMember]) return SendClientMessage(playerid, -1,"Игрок не состоит в организации!");
             
    tipsterq[playerid] = 0;
              
    tipsterw PlayerInfo[params[1]][pMember];
            
    tipstere params[1];
             
    format(nsa144,"%s прикрепил жучок к игроку %s. Используйте /tipster LISTEN для прослушивания"Name(playerid),Name(params[1]));
              
    SFM(2COLOR_LIGHTREDnsa);
               
    SendClientMessage(playeridCOLOR_LIGHTGREEN,"Вы прикрепили жучок к игроку! Используйте /tipster LISTEN");
        }
        else if(
    strcmp(params[0], "listen",true) == 0)
        {
            if(
    tipsterw == -1) return SendClientMessage(playerid, -1"Жучок не прикреплен!");
             if(!
    tipsterl[playerid])
              {
                   
    tipsterl[playerid] = 1;
                   
    SendClientMessage(playeridCOLOR_LIGHTGREEN"Вы включили прослушивание!");
               }
            else
            {
                
    tipsterl[playerid] = 0;
                 
    SendClientMessage(playeridCOLOR_LIGHTGREEN"Вы отключили прослушивание!");
            }
        }
        else if(
    strcmp(params[0], "remove",true) == 0)
        {
            if(
    PlayerInfo[playerid][pRang] < && PlayerInfo[playerid][pMember] != TEAM_FBI) return SendClientMessage(playerid, -1"Вам недоступна данная функция!");
             if(
    tipsterw == -1) return SendClientMessage(playerid, -1"Жучок не прикреплен!");
              
    tipsterw = -1;
               
    tipstere = -1;
            
    SendClientMessage(playeridCOLOR_LIGHTGREEN"Вы отключили жучок!");
        }
        return 
    1;

    Дак вот..Меня интересует часть с
    PHP код:
    else if(strcmp(params[0], "set",true) == 0)
        {
            if(
    PlayerInfo[playerid][pRang] < && PlayerInfo[playerid][pMember] != TEAM_FBI) return SendClientMessage(playerid, -1,"Вам недоступна данная функция!");
            if(!
    tipsterq[playerid]) return SendClientMessage(playerid, -1,"У вас нет жучка!");
            if(!
    ProxDetectorS(2.0playeridparams[1])) return SendClientMessage(playerid, -1,"Игрок далеко от вас!");
            if(
    tipsterw != -1) return SendClientMessage(playeridCOLOR_LIGHTGREEN"Жучок уже прикреплен! Используйте /tipster REMOVE");
             if(!
    PlayerInfo[params[1]][pMember]) return SendClientMessage(playerid, -1,"Игрок не состоит в организации!");
             
    tipsterq[playerid] = 0;
              
    tipsterw PlayerInfo[params[1]][pMember];
            
    tipstere params[1];
             
    format(nsa144,"%s прикрепил жучок к игроку %s. Используйте /tipster LISTEN для прослушивания"Name(playerid),Name(params[1]));
              
    SFM(2COLOR_LIGHTREDnsa);
               
    SendClientMessage(playeridCOLOR_LIGHTGREEN,"Вы прикрепили жучок к игроку! Используйте /tipster LISTEN");
        } 
    Команда по идеи должна прописываться так: /tipster set id
    Но как это реализовать?
    Пытался так:
    PHP код:
    else if(strcmp(params[0], "set",true) == 0)
        {
                   if(
    sscanf(params"u"params[0])) return SendClientMessage(playerid, -1"Введите: /tipster set [id]"); 
            if(
    PlayerInfo[playerid][pRang] < && PlayerInfo[playerid][pMember] != TEAM_FBI) return SendClientMessage(playerid, -1,"Вам недоступна данная функция!");
            if(!
    tipsterq[playerid]) return SendClientMessage(playerid, -1,"У вас нет жучка!");
            if(!
    ProxDetectorS(2.0playeridparams[1])) return SendClientMessage(playerid, -1,"Игрок далеко от вас!");
            if(
    tipsterw != -1) return SendClientMessage(playeridCOLOR_LIGHTGREEN"Жучок уже прикреплен! Используйте /tipster REMOVE");
             if(!
    PlayerInfo[params[1]][pMember]) return SendClientMessage(playerid, -1,"Игрок не состоит в организации!");
             
    tipsterq[playerid] = 0;
              
    tipsterw PlayerInfo[params[1]][pMember];
            
    tipstere params[1];
             
    format(nsa144,"%s прикрепил жучок к игроку %s. Используйте /tipster LISTEN для прослушивания"Name(playerid),Name(params[1]));
              
    SFM(2COLOR_LIGHTREDnsa);
               
    SendClientMessage(playeridCOLOR_LIGHTGREEN,"Вы прикрепили жучок к игроку! Используйте /tipster LISTEN");
        } 
    Но безысходно...Надеюсь на вашу помощь, заранее спасибо!

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Как-то так
    PHP код:
    CMD:tipster(playeridparams[])
    {
        new 
    action[13], id;
        
    sscanf(params"s[12]u"actionid);
        if(!
    strlen(action)) return SendClientMessage(playerid, -1"Введите: /tipster [действие]"),
                                                        
    SendClientMessage(playeridCOLOR_WHITE"/tipster get - Взять жучок."),
                                                        
    SendClientMessage(playeridCOLOR_WHITE"/tipster set - Прикрепить жучок к игроку."),
                                                        
    SendClientMessage(playeridCOLOR_WHITE"/tipster remove - Деактивировать жучок."),
                                                        
    SendClientMessage(playeridCOLOR_WHITE"/tipster listen - Начать прослушивание чата фракции.");
        if(
    strcmp(action"get",true) == 0)
        {
            if(
    PlayerInfo[playerid][pRang] < && PlayerInfo[playerid][pMember] != TEAM_FBI) return SendClientMessage(playerid, -1,"Вам недоступна данная функция!");
            if(!(
    vehicle >= FBICARS[0] && vehicle <= FBICARS[1])) return SendClientMessage(playerid,COLOR_GREY,"Вы должны находиться в автомобиле FBI");
            if(
    tipsterq[playerid]) return SendClientMessage(playerid, -1,"У вас уже есть жучок!");
            
    tipsterq[playerid] = 1;
            
    SendClientMessage(playerid,COLOR_LIGHTGREEN"Вы взяли жучок! Используйте /tipster SET [id].");
            
    format(nsa80,"%s взял жучок из автомобиля"Name(playerid));
            
    ProxDetector(5.0playeridnsaCOLOR_PURPLECOLOR_PURPLECOLOR_PURPLECOLOR_PURPLECOLOR_PURPLE);
        }
        else if(
    strcmp(action"set",true) == 0)
        {
            if(
    PlayerInfo[playerid][pRang] < && PlayerInfo[playerid][pMember] != TEAM_FBI) return SendClientMessage(playerid, -1,"Вам недоступна данная функция!");
            if(!
    tipsterq[playerid]) return SendClientMessage(playerid, -1,"У вас нет жучка!");
            if(!
    ProxDetectorS(2.0playeridid)) return SendClientMessage(playerid, -1,"Игрок далеко от вас!");
            if(
    tipsterw != -1) return SendClientMessage(playeridCOLOR_LIGHTGREEN"Жучок уже прикреплен! Используйте /tipster REMOVE");
            if(!
    PlayerInfo[id][pMember]) return SendClientMessage(playerid, -1,"Игрок не состоит в организации!");
            
    tipsterq[playerid] = 0;
            
    tipsterw PlayerInfo[id][pMember];
            
    tipstere id;
            
    format(nsa144,"%s прикрепил жучок к игроку %s. Используйте /tipster LISTEN для прослушивания"Name(playerid),Name(id));
            
    SFM(2COLOR_LIGHTREDnsa);
            
    SendClientMessage(playeridCOLOR_LIGHTGREEN,"Вы прикрепили жучок к игроку! Используйте /tipster LISTEN");
        }
        else if(
    strcmp(action"listen",true) == 0)
        {
            if(
    tipsterw == -1) return SendClientMessage(playerid, -1"Жучок не прикреплен!");
            if(!
    tipsterl[playerid])
            {
                
    tipsterl[playerid] = 1;
                
    SendClientMessage(playeridCOLOR_LIGHTGREEN"Вы включили прослушивание!");
            }
            else
            {
                
    tipsterl[playerid] = 0;
                
    SendClientMessage(playeridCOLOR_LIGHTGREEN"Вы отключили прослушивание!");
            }
        }
        else if(
    strcmp(action"remove",true) == 0)
        {
            if(
    PlayerInfo[playerid][pRang] < && PlayerInfo[playerid][pMember] != TEAM_FBI) return SendClientMessage(playerid, -1"Вам недоступна данная функция!");
            if(
    tipsterw == -1) return SendClientMessage(playerid, -1"Жучок не прикреплен!");
            
    tipsterw = -1;
            
    tipstere = -1;
            
    SendClientMessage(playeridCOLOR_LIGHTGREEN"Вы отключили жучок!");
        }
        return 
    1;

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

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    01.06.2014
    Адрес
    Москва
    Сообщений
    92
    Репутация:
    15 ±
    PHP код:
    CMD:tipster(playeridparams[])
    {
        new 
    id;
        if(
    isnull(params)) return  return SendClientMessage(playerid, -1"Введите: /tipster [действие]"),
                                                        
    SendClientMessage(playeridCOLOR_WHITE"/tipster get - Взять жучок."),
                                                        
    SendClientMessage(playeridCOLOR_WHITE"/tipster set - Прикрепить жучок к игроку."),
                                                        
    SendClientMessage(playeridCOLOR_WHITE"/tipster remove - Деактивировать жучок."),
                                                        
    SendClientMessage(playeridCOLOR_WHITE"/tipster listen - Начать прослушивание чата фракции.");
        if(
    strcmp(params"get",true) == 0)
        {
            if(
    PlayerInfo[playerid][pRang] < && PlayerInfo[playerid][pMember] != TEAM_FBI) return SendClientMessage(playerid, -1,"Вам недоступна данная функция!");
            if(!(
    vehicle >= FBICARS[0] && vehicle <= FBICARS[1])) return SendClientMessage(playerid,COLOR_GREY,"Вы должны находиться в автомобиле FBI");
            if(
    tipsterq[playerid]) return SendClientMessage(playerid, -1,"У вас уже есть жучок!");
            
    tipsterq[playerid] = 1;
            
    SendClientMessage(playerid,COLOR_LIGHTGREEN"Вы взяли жучок! Используйте /tipster SET [id].");
            
    format(nsa80,"%s взял жучок из автомобиля"Name(playerid));
            
    ProxDetector(5.0playeridnsaCOLOR_PURPLECOLOR_PURPLECOLOR_PURPLECOLOR_PURPLECOLOR_PURPLE);
        }
        else if(
    params(action"set",true) == 0)
        {
            if(
    PlayerInfo[playerid][pRang] < && PlayerInfo[playerid][pMember] != TEAM_FBI) return SendClientMessage(playerid, -1,"Вам недоступна данная функция!");
            if(!
    tipsterq[playerid]) return SendClientMessage(playerid, -1,"У вас нет жучка!");
            if(!
    ProxDetectorS(2.0playeridid)) return SendClientMessage(playerid, -1,"Игрок далеко от вас!");
            if(
    tipsterw != -1) return SendClientMessage(playeridCOLOR_LIGHTGREEN"Жучок уже прикреплен! Используйте /tipster REMOVE");
            if(!
    PlayerInfo[id][pMember]) return SendClientMessage(playerid, -1,"Игрок не состоит в организации!");
            
    tipsterq[playerid] = 0;
            
    tipsterw PlayerInfo[id][pMember];
            
    tipstere id;
            
    format(nsa144,"%s прикрепил жучок к игроку %s. Используйте /tipster LISTEN для прослушивания"Name(playerid),Name(id));
            
    SFM(2COLOR_LIGHTREDnsa);
            
    SendClientMessage(playeridCOLOR_LIGHTGREEN,"Вы прикрепили жучок к игроку! Используйте /tipster LISTEN");
        }
        else if(
    strcmp(params"listen",true) == 0)
        {
            if(
    tipsterw == -1) return SendClientMessage(playerid, -1"Жучок не прикреплен!");
            if(!
    tipsterl[playerid])
            {
                
    tipsterl[playerid] = 1;
                
    SendClientMessage(playeridCOLOR_LIGHTGREEN"Вы включили прослушивание!");
            }
            else
            {
                
    tipsterl[playerid] = 0;
                
    SendClientMessage(playeridCOLOR_LIGHTGREEN"Вы отключили прослушивание!");
            }
        }
        else if(
    strcmp(params"remove",true) == 0)
        {
            if(
    PlayerInfo[playerid][pRang] < && PlayerInfo[playerid][pMember] != TEAM_FBI) return SendClientMessage(playerid, -1"Вам недоступна данная функция!");
            if(
    tipsterw == -1) return SendClientMessage(playerid, -1"Жучок не прикреплен!");
            
    tipsterw = -1;
            
    tipstere = -1;
            
    SendClientMessage(playeridCOLOR_LIGHTGREEN"Вы отключили жучок!");
        }
        else return 
    SendClientMessage(playeridCOLOR_LIGHTGREEN"Данного действия нет!");
        return 
    1;

    Последний раз редактировалось Flime; 11.06.2014 в 17:05.

 

 

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

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

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

Ваши права

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