В приведенном примере, можно не реализовывать взаимодействие между плагинами
Основной модуль должен быть в plugins.ini раньше чем плагин Хука... В основном модуле ловить сообщение +hook итп, если чел карту не прошел, то резать сообщение (основной модуль то про это значет), таким образом оно не дойдет до плагина Хука и остальных плагинов, которые ловят эти сообщения...
Но это впринципе не правильный способ, и для ленивых зато не требует постоянного переписывания плагинов, если их автор апдейтит итп ЗЫ что-то я статей про создание native функций не припомню, а там есть что понаписать и поздновато уже (4:40 am)... =)
Add: на примере того что я делал:
создаем jump_framework.inc файл, примерно вот с таким содержанием
Code
#if defined _jump_included
#endinput
#endif
#define _jump_included
#pragma library jump_framework
native zeroBadJump( player ); //функция которую будем экспортировать и использовать в другом плагине
Теперь основной плагин который экспортирует данную функцию
Code
#include "jump_framework"
new jump_badjump_flags[33];
public plugin_natives()
{
register_library("jump_framework");
register_native("zeroBadJump", "native_zero_bad_jump");
}
public native_zero_bad_jump(id, nums)
{
if(nums != 1)
return log_error(AMX_ERR_NATIVE, "Bad native parameters");
return jump_badjump_flags[get_param(1)] = 0; //Обнуляем переменную в основном плагине, и отсылаем вызывающему плагину 0, как подтверждение...
//вообще говоря у меня тут в плагине не константа =) поэтому return и надо ) а так как раз можно отсылать переменную о том прошли карту или нет...
}
Теперь как использовать из другого плагина:
Code
#include "jump_framework"
public client_putinserver(id)
{
if (zeroBadJump(id) == 0) //собственно и используем
{
//делаем свое грязное дело
}
}
ЗЗЫ да кстати проверьте, может я что не верно делаю =) или можно улучшить итп =) если что - сильно не пинайтесь