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

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

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

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

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 13-02-2012, 01:05 Просмотров: 3810

    callfunc_begin Функция вызывает другую функцию по ее имени в этом или другом плагине.

    Иногда одному плагину необходимо вызвать функцию другого плагина, но использование native функций не представляется возможным, например в моде GunGame преждевременно вызывается голосование за следующую карту, при этом админу сервера не пришлось изменять плагин ротации карт (в моде гангейм учтены самые популярные плагины изменения карт) и реализовано это именно с помощью функции callfunc_begin

    Инфо из amxmodx.inc:
    /* Call a function in this / an another plugin by name.
    * Parameters:
    *  plugin - plugin filename; if "", the caller plugin is used.
    *           If specified, it has to be the exact filename (for example stats.amxx)
    *  func   - function name
    * Return value:
    *   1     - Success
    *   0     - Runtime error
    *  -1     - Plugin not found
    *  -2     - Function not found */
    native callfunc_begin(const func[], const plugin[]="");


    Синтаксис:
    callfunc_begin(const function[], const plugin[]="")

    • const function[] - Вызываемая функция ( имя функции)
    • const plugin[]="" - В каком плагине вызывать
    Функция возвращает один из 4 ответов:
    • 1 - Успешно выполнена
    • 0 - Таймаут
    • -1 - Плагин не найден
    • -2 - Функция не найдена


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

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

    #include <amxmodx>
    #include <amxmisc>

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


    public plugin_init() {
        register_plugin(PLUGIN, VERSION, AUTHOR)
        
        register_concmd("test_cmd","test_function")
        
    }
    public test_function(){
        
        if(callfunc_begin("cmdWho","admincmd.amxx")==1)
            callfunc_end()
            
    }


    Описание:
    Я осмелюсь предположить, что у вас остановлен стандартный набор amxmodx, и там есть плагин admincmd.amxx, так как функцию именно из этого плагина будет вызывать пример выше.

    И так в примере зарегистрирована консольная команда test_cmd, что даст работать в консоли сервера без использования клиента игры.
    Выполнив данную команду, будет вызвана функция cmdWho из плагина admincmd.amxx, и разумеется вы сразу же увидите этот результат.

    Внимание:
    • Имя файла плагина должно быть с расширением, если плагин не определен, то используется текущий
    • Совместной с этой функцией используются следующие: callfunc_end, callfunc_push_float, callfunc_push_floatrf, callfunc_push_int, callfunc_push_intrf, callfunc_push_str
    • Функция callfunc_begin должна быть закончена с помощью callfunc_end прежде, чем будет вызвана снова, и функция должна быть общедоступной
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Наверх

Реклама