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

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

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

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

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 8-03-2012, 00:02 Просмотров: 5903

    register_message Регистрирует функцию для обработки сообщения

    С помощью функции register_message можно отловить различные сообщения, такие как TextMsg (текстовое сообщение игроку) или изменение расположения метки заложников на радаре контров и другие сообщения.

    Инфо из messages.inc:
    /* Lets you directly hook a message in the engine!
    * You can overwrite the message before anything happens and either let the message continue
    * or fully block it. Here is how it works:
    * If you hook a message, the message is stored but not sent. You have the opportunity to
    * not only execute code, but to get/set the contents of the message, before you choose to
    * either block it or let it go on its way. The hooked function will be passed a msg_id, msg_dest, and entity index.
    * The return value can be passed to unregister_message() to stop the message from being hooked */
    native register_message(iMsgId, const szFunction[]);


    Синтаксис:
    register_message(iMsgId, const szFunction[])

    • iMsgId - id сообщения
    • const szFunction[] - Функция которая будет вызываться при посылки зарегистрированного сообщения.
    В вызванную функцию будет передано 3 аргумента:
    1. msg_id - Айди сообщения
    2. msg_dest - Кому должно быть доставлено ( всем или только одному и т.п. (возможно ошибаюсь))
    3. entity index - То что нам нужно - индекс объекта кому доставлено, в большинстве случаев использования это айди игрока


    Тип функции:
    Native

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

    #include <amxmodx>
    #include <amxmisc>

    #define PLUGIN "[messages.inc] register_message"
    #define VERSION "1.0"
    #define AUTHOR "Admin"

    public plugin_init() {
        
        register_plugin(PLUGIN, VERSION, AUTHOR)
        
        register_message(get_user_msgid("Money"),"message_money")
        
    }
    public message_money(msg_id,msg_dest,msg_entity){
        
        
        console_print(0,"msg_id[%d]",msg_id)
        console_print(0,"msg_dest[%d]",msg_dest)
        console_print(0,"msg_entity[%d]",msg_entity)
        
    }


    Описание:
    Для примера использования функции я выбрал сообщение о деньгах игрока, это сообщение вызывается каждый раз когда обновляется hud с его наличностью.

    Как уже понятно из синтаксиса, нам нужно взять айди сообщения и назначить функцию, айди события мы получаем с помощью функции get_user_msgid
    get_user_msgid("Money")
    используемую при наступлении такого события называем как хотим message_money

    Далее сама функция message_money, нас в ней интересует только третий аргумент, так как это айди объекта, кому это сообщение было показано.
    Просто запомните, что тут вам нужен только третий аргумент и можно записать так:
    public message_money(n,a,id){
    или написать любые значение которые бы вас не отвлекали.

    Результат будет виден в консоли сервера.
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Наверх

Реклама