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

    Всего на сайте: 9
    Гостей: 6
    Пользователи: - отсутствуют
    Роботы: crawl Bot, Google AdSense, Google Bot

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

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

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 31-08-2011, 01:37 Просмотров: 7785

    format Функция для редактирования сообщений (строк)

    Кто играл на Jump серверах знает, что HUD сообщения о рекордах дублируются в консоли игры, мало ли вы не успели разглядеть все цифры.
    Было бы глупо для каждого из вывода делать громоздкие функции , вернее их форматирование, да и код смотрится как то невежественно. Но бывают случаи, когда нужно отредактировать сообщение, подготовить запрос к баз данных и многие другие, где на все случаи жизни не подготовить строки. И для этого в инклюде strinc.inc есть функция format, которая и позволяет нам редактировать строки и записывать их в массив.

    Инфо из strinc.inc:
    /* Fills string with given format and parameters.
    * Function returns number of copied chars.
    * Example: format(dest,"Hello %s. You are %d years old","Tom",17).
    * If any of your input buffers overlap with the destination buffer,
    *  format() falls back to a "copy-back" version as of 1.65.  This is
    *  slower, so you should using a source string that is the same as
    *  the destination.
    */
    native format(output[] ,len ,const format[] , any:...);


    Синтаксис:
    format ( output[], len, const format[], ... )

    • output[] - Массив куда помещаем наше сообщение (строку)
    • len - Размер массива
    • const format[] - Сообщения с подстановкой массивов
    • ... - Массивы для подстановки.


    Пример:

    /* Plugin generated by AMXX-Studio */

    #include <amxmodx>
    #include <amxmisc>

    #define PLUGIN "Message Format"
    #define VERSION "1.0"
    #define AUTHOR "Admin"


    public plugin_init() {
        register_plugin(PLUGIN, VERSION, AUTHOR)
        
        register_clcmd("say /msg","format_msg")
    }

    public format_msg(id){

        new message[128]
        
        new name[32]
        get_user_name(id,name,31)
        
        new hostname[32]
        get_cvar_string("hostname",hostname,31)
        
        format(message, 127, "Hello %s!! You in %s server", name, hostname)
        
        client_print(id,print_chat,message)
        client_print(id,print_console,message)
        client_print(id,print_center,message)

    /*
        //А могло бы быть так:
        client_print(id,print_center,"Hello %s!! You in %s server", name, hostname)
        client_print(id,print_console,"Hello %s!! You in %s server", name, hostname)
        client_print(id,print_center,"Hello %s!! You in %s server", name, hostname)
    */
    }


    Описание:
    Для начала мы зарегистрировали массив message,и парочку других массивов для имени игрока и сервера.
    Получив все нужные данные, принимаемся за форматирование:
    format(message, 127, "Hello %s!! You in %s server", name, hostname)

    После того как массив записан нашими данными, мы просто вставляем наш массив функцию client_print 3 раза подряд, но с разными типами вывода (в чат,в консоль,по центру экрана).

    В данном примере явно видно, как упрощает жизнь данная функция если нужно вывести одно и тоже сообщения разными способами.
    Оценить данную функцию вы сможете как только начнете составлять запросы к базе данных или выводить сложные сообщения, например составляя одно сообщение из нескольких циклов.
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
    format Функция для редактирования сообщений (строк)
    sooqua

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

    Спасибо! Замечательный сайт!!
    Rom4Nk

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

    Согласен) сайт 5+ жалко что людей мало

    Информация

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

Реклама