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

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

    Команда /cmd

    Здравствуйте, делаю команду /cmd текст - и затруднила проверка на ввод существующей команды:

    PHP код:
    COMMAND:cmd(playerid,params[])
    {
        
    extract params -> new stringcmd_[32]; else
        {
            return 
    SendClientMessage(playeridCOLOR_WHITE,
                !
    "Введите /cmd [команда]");
        }
        
           for(new 
    icmd_[i] != 0x0i++)
        {
            switch(
    cmd_[i])
            {
                case 
    "ban": return true;
            }
        }

        return 
    true;

    Чтобы не делать 100 проверок через strcmp может есть альтернативы как можно реализовать данную систему, так скажем через switch и т.п?

  2. #2
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Что команда должна делать то?

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

    Статус
    Оффлайн
    Регистрация
    24.08.2015
    Адрес
    Ташкент
    Сообщений
    375
    Репутация:
    97 ±
    Для твоего случае во многих командных процессорах существует обработчик команд.

    PHP код:
    OnPlayerCommandPerformed(playeridcmdtext[], success); //DC_CMD
    OnPlayerCommandPerformed(playeridcmd[], params[], resultflags//Pawn.CMD 
    Примерно так можно реализовать:

    PHP код:
    CMD:cmd(playeridparams[]) 

        if(
    isnull(params))
        {
            return 
    SendClientMessage(playerid, -1, !"Введите /cmd [команда]");
        }

        
    SetPVarInt(playerid, !"check_for_command"1);

        
    DC_CMD(playeridparams); //для DC_CMD
        
    return 1
    }


    public 
    OnPlayerCommandPerformed(playeridcmdtext[], success)
    {
        if(
    GetPVarInt(playerid, !"check_for_command"))
        {
            
    SendClientMessage(playerid, -1
                (
    success) ? (!"Команда существует!") : ("Команда не существует!"));

            
    DeletePVar(playerid, !"check_for_command");
            return 
    0;
        }

        return 
    1;

    Последний раз редактировалось Geebrox; 21.08.2017 в 01:59.

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

    Статус
    Оффлайн
    Регистрация
    25.12.2016
    Сообщений
    31
    Репутация:
    0 ±
    Цитата Сообщение от Geebrox Посмотреть сообщение
    Для твоего случае во многих командных процессорах существует обработчик команд.

    PHP код:
    OnPlayerCommandPerformed(playeridcmdtext[], success); //DC_CMD
    OnPlayerCommandPerformed(playeridcmd[], params[], resultflags//Pawn.CMD 
    Примерно так можно реализовать:

    PHP код:
    CMD:cmd(playeridparams[]) 

        if(
    isnull(params))
        {
            return 
    SendClientMessage(playerid, -1, !"Введите /cmd [команда]");
        }

        
    SetPVarInt(playerid, !"check_for_command"1);

        
    DC_CMD(playeridparams); //для DC_CMD
        
    return 1
    }


    public 
    OnPlayerCommandPerformed(playeridcmdtext[], success)
    {
        if(
    GetPVarInt(playerid, !"check_for_command"))
        {
            
    SendClientMessage(playerid, -1
                (
    success) ? (!"Команда существует!") : ("Команда не существует!"));

            
    DeletePVar(playerid, !"check_for_command");
            return 
    0;
        }

        return 
    1;

    Оо интересненько, спасибо)

 

 

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

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

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

Ваши права

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