Эти функции необходимы например в джамп модах, так как там после прохождения карты наступает событие "финиш" которого изначально в игре нету, но оно важно для сопутствующих для данного мода плагинов, например выдавать веревку после прохождения карты.
Инфо из amxmodx.inc:
/*
* Creates a multi-plugin forward.
* Stop type must be one of the ET_ values in amxconst.inc
* results will be > 0 for success
*/
native CreateMultiForward(const name[], stop_type, ...);
Синтаксис:
CreateMultiForward(const name[], stop_type, ...)
- const name[] - Название создаваемого форварда (функции)
- stop_type - Тип блокировки:
#define ET_IGNORE 0 //ignore return val
Честно говоря не разбирался с этим, использовал готовый вариант от РоманоВа с ET_IGNORE
#define ET_STOP 1 //stop on PLUGIN_HANDLED
#define ET_STOP2 2 //same, except return biggest
#define ET_CONTINUE 3 //no stop, return biggest - ... - Передаваемые типы данных через запятую:
#define FP_CELL 0
#define FP_FLOAT 1
#define FP_STRING 2
#define FP_ARRAY 4
Тип функции:
Native
Пример:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "[amxmodx.inc] CreateMultiForward"
#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_IGNORE, FP_CELL, FP_CELL)
server_print("Forward[%d]",g_fwd_first)
}
Описание:
Как уже говорилось выше, ни чего особого с одной лишь этой функцией не сделаешь, а только лишь можно создать мультифорвард и записать его id.
А для примера вывести его в консоль сервера. Для продолжения изучения создания мультифорварада нужно изучить функцию ExecuteForward, которая можно сказать и вызывает созданное событие и передает необходимые данные.
Чуть позже я напиши и о ней, а дале будет урок об этих функциях в месте.