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

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

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

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

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 26-01-2012, 02:01 Просмотров: 7610

    register_native регистриует другую функцию которую смогут использовать другие плагины

    Для взаимодействия плагинов необходимые разные типы функций, с помощью функции register_native, можно зарегистрировать собственную native функцию, которую смогут использовать другие плагины. Это очень удобно, например в таком случае: Есть большой плагин Jump(конкретнее KZ-ARG) мода, а хочется сделать веревку для тех кто прошел карту или плагин статистики, не пихать же все эти дополнительные плагины и так в огромный мод, автор позаботился о нас и предоставил нам натив функции, из которых мы можем получить всю необходимую информацию.

    Инфо из amxmodx.inc:
    /* Registers a NATIVE.  When a plugin uses your native (you should distribute a .inc),
    * the handler will be called with two parameters: the calling plugin id, and the
    * number of parameters.
    * If you set style=1, the method of parameter passing is a tad more efficient.
    * Instead of "id, numParams", you label the native exactly as how the parameters
    *  should, in theory, be sent.  Then for each byreference parameter, you call
    *  param_convert(num).  This is theoretically more efficient but quite hacky.
    *  The method was discovered by dJeyL, props to him!
    */
    native register_native(const name[], const handler[], style=0);


    Синтаксис:
    register_native ( const name[], const handler[], [ style = 0 ] )

    • const name[] - Имя функции для других плагинов
    • const handler[] - Исполняемая функция
    • [ style = 0 ] - Используйте 1. Это позволит вам передавать параметры как в обычных функциях. А не париться с получением количества параметров и каждого из них по отдельности.


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

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

    #include <amxmodx>
    #include <amxmisc>

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

    public plugin_init() {
        register_plugin(PLUGIN, VERSION, AUTHOR)
            

    }
    public  plugin_natives ( ){

        register_library("my_plugin")
        register_native("get_my_info", "native_get_my_info", 1)

        
    }
    public native_get_my_info(id,param){

        //code

    }


    Описание:
    Для упрощения читаемости кода, многие авторы плагинов, исполняемую натив функцию называют с префиксом native_
    В данном примере мы зарегистрировали библиотеку и нашу функцию, обратите внимание что исполняемая функция обязана существовать!
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
    GranTurismo

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

    Можно описать поподробнее использование натива и показать использование его в других плагинах. Например: Как можно с помощью натива менять в другом плагине true на false? Как использовать нативы в меню?
    Admin

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

    У меня сессия, по этому очень мало времени на статьи.
    Урок по использованию нативов уже в стадии написания, но точных сроков сказать не могу.
    --------------------

    Информация

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

Реклама