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

    Всего на сайте: 10
    Гостей: 4
    Пользователи: MiT9
    Роботы: Google AdSense, Mail Ru, Mail Ru, Mail Ru, crawl Bot

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

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

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 3-12-2011, 00:34 Просмотров: 5829

    register_forward Функция регистрирует события происходящие внутри движка HL (отлов событий)

    Функция помогает отлавливать множество игровых событий, таких как касание двух объектов,смерть или появление объекта и множество других.
    Очень часто используется в плагинах для создания собственных функций и изменения геймплея.
    То есть функция помогает сцепить события в дивжке с кодом плагина.

    Инфо из fakemeta.inc:
    /* Registers a forward.
    * Returns an id you can pass to unregister_forward
    */
    native register_forward(_forwardType,const _function[],_post=0);


    Синтаксис:
    register_forward ( forwardType, callback[], [ post = 0 ] )

    • forwardType - Какое событие отлавливать (Forward Function Constants полный список в файле fakemeta_const.inc )
    • callback[] - Какую функцию вызывать при наступлении отлавливаемого события
    • [ post = 0 ] - Если 0 то до наступления события вызовется функция, если 1 то после

    При использовании данной функции будьте предельно внимательны, так как она взаимодействует с самим движком и ошибки в функции могут вызвать падение сервера.

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

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

    #include <amxmodx>
    #include <amxmisc>
    #include <fakemeta>

    #define PLUGIN "[fakemeta.inc] register_forward fW_touch"
    #define VERSION "1.0"
    #define AUTHOR "Admin"


    public plugin_init() {
        register_plugin(PLUGIN, VERSION, AUTHOR)
        register_forward(FM_Touch,"fW_touch",0)
    }
    public fW_touch (entTouched, entOther){
        
        client_print(0,print_chat,"entTouched %d, entOther %d",entTouched, entOther)
        
    }


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

    С помощью данной функции можно организовать проход через других игроков.
    Проверять если коснулись друг друга 2 игрока, то устанавливать константу pev_solid в положение SOLID_NOT, что даст возможность пройти сквозь друг друга. Правда не забудь те потом вернуть состоянии переменной в прежнее значение, иначе так и будут ходить как призраки.
    Новость отредактировал Admin - 19-03-2014, 02:33
    Причина: fakemeta_stocks.inc => fakemeta_const.inc
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
    True_Hacker

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

    Спасибо tongue правдо я есчо новичок в fakemeta,но он лучше engine в раз 100 и поэтому мне кажется лучше изучать чуток engine и большую часть fakemeta
    win32

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

    forwardType - Какое событие отлавливать (Forward Function Constants полный список в файле fakemeta_stocks.inc )

    Поправка, все переменные написаны в
    fakemeta_const.inc

    Информация

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

Реклама