mirror of
https://github.com/alliedmodders/metamod-source.git
synced 2025-02-26 19:54:14 +01:00
committed new callclass code
--HG-- extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/trunk%4045
This commit is contained in:
parent
9ab8eae041
commit
7284445d7e
@ -108,6 +108,8 @@ bool SamplePlugin::Load(PluginId id, ISmmAPI *ismm, factories *list, char *error
|
||||
return false;
|
||||
}
|
||||
|
||||
META_LOG(g_PLAPI, "Starting plugin.\n");
|
||||
|
||||
//We're hooking the following things as POST, in order to seem like Server Plugins.
|
||||
//However, I don't actually know if Valve has done server plugins as POST or not.
|
||||
//Change the last parameter to 'false' in order to change this to PRE.
|
||||
@ -139,6 +141,12 @@ bool SamplePlugin::Load(PluginId id, ISmmAPI *ismm, factories *list, char *error
|
||||
//Hook ClientCommand to our function
|
||||
SH_ADD_HOOK_MEMFUNC(IServerGameClients, ClientCommand, m_ServerClients, &g_SamplePlugin, ClientCommand, false);
|
||||
|
||||
//Get the call class for IVServerEngine so we can safely call functions without
|
||||
// invoking their hooks (when needed).
|
||||
m_Engine_CC = SH_GET_CALLCLASS(m_Engine);
|
||||
|
||||
SH_CALL(m_Engine_CC, &IVEngineServer::LogPrint)("All hooks started!\n");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -159,6 +167,8 @@ bool SamplePlugin::Unload(char *error, size_t maxlen)
|
||||
SH_REMOVE_HOOK_MEMFUNC(IServerGameClients, ClientConnect, m_ServerClients, &g_SamplePlugin, ClientConnect, false);
|
||||
SH_REMOVE_HOOK_MEMFUNC(IServerGameClients, ClientCommand, m_ServerClients, &g_SamplePlugin, ClientCommand, false);
|
||||
|
||||
SH_RELEASE_CALLCLASS(m_Engine_CC);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -12,6 +12,7 @@
|
||||
#define _INCLUDE_SAMPLEPLUGIN_H
|
||||
|
||||
#include <ISmmPlugin.h>
|
||||
#include <sourcehook/sourcehook.h>
|
||||
|
||||
class SamplePlugin : public ISmmPlugin
|
||||
{
|
||||
@ -107,6 +108,7 @@ private:
|
||||
IVEngineServer *m_Engine;
|
||||
IServerGameDLL *m_ServerDll;
|
||||
IServerGameClients *m_ServerClients;
|
||||
SourceHook::CallClass<IVEngineServer> *m_Engine_CC;
|
||||
};
|
||||
|
||||
extern SamplePlugin g_SamplePlugin;
|
||||
|
Loading…
x
Reference in New Issue
Block a user