Главная | Комментарии | О проекте
Чтение RSS
Суперсайт
Главная Контакты Карта сайта Добавить в избранное
  • Кто OnLine

    Всего на сайте: 3
    Гостей: 1
    Пользователи: - отсутствуют
    Роботы: crawl Bot, Yandex Bot

    Опрос пользователей

    Для какого мода Вы пишите плагины?

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 13-09-2011, 17:46 Просмотров: 5648

    read_argv Функция возвращает аргументы команды по отдельности

    Если вы читали предыдущие 2 материала, то вы уже умеете получать количество аргументов и всю строку, теперь пришло время научиться получать каждый аргумент по отдельности с помощью функции read_argv

    Инфо из amxmodx.inc:
    /* Gets argument from command. */
    native read_argv(id,output[],len);


    Синтаксис:
    read_argv ( id, output[], len )

    • id - Айди аргумента,начинается с нуля это сама команда, т.е. первый нужный нам аргумент начинается с 1
    • output[] - Массив куда записываем данные аргумента
    • len - Максимальная длинна массива


    Пример:
    /* Plugin generated by AMXX-Studio */

    #include <amxmodx>
    #include <amxmisc>

    #define PLUGIN "Read argv"
    #define VERSION "1.0"
    #define AUTHOR "Admin"

    public plugin_init() {
        
        register_plugin(PLUGIN, VERSION, AUTHOR)
        
        register_clcmd("my_cmd","my_cmd")
    }
    public my_cmd(id){
        
        new arg1[3],arg2[3],arg3[3]
        read_argv(1,arg1,2)
        read_argv(2,arg2,2)
        read_argv(3,arg3,2)
        
        client_print(id,print_console,"Arg1:%s Arg2:%s Arg3:%s",arg1,arg2,arg3)
        
        return PLUGIN_HANDLED
    }


    Описание:
    В данном примере вам мы получим значения наших трех аргументов Arg1,Arg2 и Arg3.
    Для этого надо ввести в консоли команду my_cmd 12 rr er
    В результате работы мы получим:Arg1:12 Arg2:rr Arg3:er

    Теперь подробнее на примере первого аргумента, остальные аналогичны.
    Мы создаем массив arg1[3] - Это означает что в него влезет не более 3 символов,
    далее мы получаем значение первого аргумента read_argv(1,arg1,2), обратите внимание, что максимальную длину мы поставили 2, т.е. если аргумент будет иметь больше чем 2 символа, то лишние просто обрежутся. Поэкспериментируйте в консоли,вы очень быстро вникните в суть!

    Так же обратите внимание, что данные полученные этой функцией не являются числами, а если вам нужно получить число из текста,это вы понимаете что это цифры, а тупенькому компу надо это объяснять что это число, а не текст и делается это с помощью функции str_to_num, но о ней в другой раз.
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
    Doombringer

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    При введении команды в консоль, вызывающий плагин, работающий с аргументами, аргументы будут браться именно из вызывающей команды, я правильно понял? Просто я нигде в этой функции не вижу указаний, откуда "считывать" аргументы.
    Admin

    30.07.2011
    ICQ: 980500
    Публикаций: 507
    Комментариев: 333
    Репутация: -  60  +

    Doombringer,
    Для этого надо ввести в консоли команду my_cmd 12 rr er
    --------------------

    Информация

    Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Наверх

Реклама