ncux0Zz, вызываются ровно в той последовательности, как и в списке выше.
Описания особо то и нет. Более опытные могут посмотреть исходники метамода и все понять. Новички обычно начинают с консольных приложений, а не плагинов к метамоду. Ну, если не вдаваясь в подробности:
GiveFnptrsToDll - В аргументах этой функции передаются указатели на функции движка (
EngineFuncPointers) и на структуру с глобальными переменными (
GlobalVars). Ты можешь сохранить эти указатели в своем коде, что бы позже воспользоваться ими.
Meta_Init - была добавлена на всякий случай. Вдруг, если тебе нужно запустить какой-то код, до вызова функции Meta_Query.
Meta_Query - Цель этой функции предоставить текущую версию апи и получить информацию о твоем плагине. В аргументах передает следующие:
const char* interface_version
- текущая версия API метамода. Ее нужно сравнивать с версией, под которую был написан твой плагин. В случае если например твой плагин был написан под версию апи 5:13, а текущая, установленная версия у пользователя твоего плагина 5:12 (которая передается в аргументах) - нужно вернуть FALSE (то бишь 0) тем самым сообщив метамоду что твой плагин не совместим с текущей версией апи.
MetaPluginInfo** plugin_info
- информация о твоем плагине, которую получит метамод (версия, автор и т.д.). Думаю, тут все понятно.
MetaUtilFuncPointers* util_funcs
- указатель на дополнительные функции, которые реализованы в самом метамоде. Как и в случае с функциями движка, ты можешь сохранить этот указатель что бы позже ими воспользоваться.
Meta_Attach - вот именно ее используют как аналог функции main. Так как к моменту вызова этой функции, уже были проинициализированные базовые переменные (в предыдущих функциях), а так же была проверка версии интерфейса. В аргументах передает следующие:
MetaPluginLoadTime now
- это флаг, обозначающий в какой момент была вызвана функция Meta_Attach. Если твой плагин был загружен метамодом при включении сервера - этот флаг будет равен значению Startup
. Но твой плагин могут подгрузить и другие метамод плагины (посредnвам функций из MetaUtilFuncPointers). В этом случае значение этого флага может быть другим.
MetaHookExportFuncs* export_funcs_table
- таблица с хуками. Адреса твоих callback функций, которые будет вызывать метамод.
MetaGlobals* globals
- указатель на структуру с глобальными переменных метамода.
MetaDllFuncsTables* dll_funcs_tables
- указатель на структуру с функции из gamedll.
Meta_Detach - вызывается когда метемод выгружает плагин. Думаю, тут тоже все должно быть понятно.
И теперь, подозреваю, у тебя появились новые вопросы... Их задавать можно до бесконечности. Если уж хочешь кодить на плюсах, начни все же лучше с консольных приложений. Иначе есть риск, что тебе покажется все это сложным и непонятным, в итоге бросишь все.