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

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

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

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

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 11-03-2012, 16:27 Просмотров: 4614

    ExecuteForward Функция вызывает зарегистрированное событие ( forward функцию)

    Прежде чем браться функцию ExecuteForward, необходимо изучить CreateMultiForward. С помощью этих двух функций, мы можем зарегистрировать свое "событие" - forward функцию.
    Если точнее то, сначала зарегстрировать, а в нужном моменте кода вызывать функцию ExecuteForward, которая будет взывать созданный форвард в функции CreateMultiForward. Но не буду особо забегать в перед.

    Инфо из amxmodx.inc:
    /**
    * executes a forward.  returns result in ret.
    * returns 1 for success, 0 for failure.
    */
    native ExecuteForward(forward_handle, &ret, any:...);


    Синтаксис:
    ExecuteForward(forward_handle, &ret, any:...)

    • forward_handle - id зарегистрированного форварда
    • &ret - Получаем результат от функции ( зависит от второго аргумента функции CreateMultiForward)
    • any:... - Переменные с данными, которые нужно отослать в функцию.


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

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

    #include <amxmodx>
    #include <amxmisc>

    #define PLUGIN "[amxmodx.inc] ExecuteForward"
    #define VERSION "1.0"
    #define AUTHOR "Admin"

    new g_fwd_first

    public plugin_init() {
        register_plugin(PLUGIN, VERSION, AUTHOR)
        
        g_fwd_first = CreateMultiForward("my_first_multi_forward", ET_CONTINUE, FP_CELL,FP_CELL)
        server_print("Forward[%d]",g_fwd_first)
    }
    public client_connect(id){

        new num = 5
        new ret
        ExecuteForward(g_fwd_first,ret,id,num)
        
        //Результат будет естественно 0, так как у нас нету
        //Второго плагина с функцией my_first_multi_forward
        server_print("ret[%d]",ret)
    }


    Описание:
    Что бы не выдумывать сложных событий, возьмем и сделаем внутри события client_connect, еще одно свое.
    ( Допустим можно было бы поставит условие, что это событие выполняется только если игрок зашел после 11 вечера, или в обще в любой нужный вам момент кода)

    При регистрации форварда указано что будет 2 параметра ( и оба с типом число), по этому в функции у нас получатся:
        // второе число
        new num = 5
        //переменная куда придет результат
        new ret
        //Вызов форварда
        ExecuteForward(g_fwd_first,ret,id,num)

    Содержание функции:
        //g_fwd_first - id зарегистрированного форварда
        //ret - переменная для получения результата
        //id - айди игрока
        //num - еще одна переменная для наглядности


    Дальше вы спросите как же использовать это в другом плагине, ответ прост - необходимо в вашему плагину рассказать о функции my_first_multi_forward, и использовать ее как другую forward функцию согласно синтаксису. Не понятно? Не переживайте, очень скоро напишу урок, можно сказать третью часть о функциях
    1)CreateMultiForward
    2)ExecuteForward
    3)Использование в других плагинах.
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Наверх

Реклама