Инфо из 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[]="" - В каком плагине вызывать
- 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 прежде, чем будет вызвана снова, и функция должна быть общедоступной