lua502/lua/lua502_sdk/plugin.h
2020-02-25 05:09:07 +02:00

57 lines
No EOL
1.6 KiB
C++

#ifndef __PLUGIN_H
#define __PLUGIN_H
#include "glua.h"
#include "networkvar.h"
class CBasePlugin : public ILuaPluginCallbacks
{
public:
CBasePlugin();
virtual bool Load(CreateInterfaceFn,CreateInterfaceFn);
virtual void Unload();
virtual void Pause();
virtual void UnPause();
virtual const char* GetPluginDescription();
virtual void LevelInit(const char*);
virtual void ServerActivate(edict_t*,int,int);
virtual void GameFrame(bool);
virtual void LevelShutdown();
virtual void ClientActive(edict_t*);
virtual void ClientDisconnect(edict_t*);
virtual void ClientPutInServer(edict_t*,const char*);
virtual void SetCommandClient(int);
virtual void ClientSettingsChanged(edict_t*);
virtual PLUGIN_RESULT ClientConnect(bool*,edict_t*,const char*,
const char*,char*,int);
virtual PLUGIN_RESULT ClientCommand(edict_t*);
virtual PLUGIN_RESULT NetworkIDValidated(const char*,
const char*);
virtual bool GlobalInit(ILua502*);
virtual bool LuaInit(lua_State*);
virtual void OnSWEPLuaCreate(lua_State*);
private:
int m_iCommandClientIndex;
static const char* s_pPluginName;
};
#define DECLARE_PLUGIN(dllName) \
class dllName : public CBasePlugin \
{ \
public: \
DECLARE_CLASS(dllName,CBasePlugin);
#define END_PLUGIN(dllName,plugName) \
}; \
const char* CBasePlugin::s_pPluginName = plugName; \
static dllName s_##dllName; \
EXPOSE_SINGLE_INTERFACE_GLOBALVAR(dllName,IServerPluginCallbacks, \
INTERFACEVERSION_ISERVERPLUGINCALLBACKS,s_##dllName)
extern ILua502* g_pLua502;
#endif