>
> If I understood the server plugin example correctly, I can only access
> certain features through interfaces. Now I wonder if there's a list of
> interfaces I can use in a server plugin?
Here's some that I've tried (you'll need to include the appropriate .h
file yourself). The commented ones definitely don't work...
enginetrace = (IEngineTrace*)interfaceFactory(INTERFACEVERSION_E
NGINETRACE_SERVER, NULL);
if ( !enginetrace )
Msg("PLUGIN: Unable to load enginetrace, ignoring\n");
else
Msg("PLUGIN: Loaded enginetrace\n");
gamedll = (IServerGameDLL*)gameServerFactory(INTERFACEVERSIO
N_SERVERGAMEDLL, NULL);
if ( !gamedll )
Msg("PLUGIN: Unable to load gamedll, ignoring\n");
else
Msg("PLUGIN: Loaded gamedll\n");
gameents = (IServerGameEnts*)gameServerFactory(INTERFACEVERSI
ON_SERVERGAMEENTS, NULL);
if ( !gameents )
Msg("PLUGIN: Unable to load gameents, ignoring\n");
else
Msg("PLUGIN: Loaded gameents\n");
gameclients = (IServerGameClients*)gameServerFactory(INTERFACEVE
RSION_SERVERGAMECLIENTS, NULL);
if ( !gameclients )
Msg("PLUGIN: Unable to load gameclients, ignoring\n");
else
Msg("PLUGIN: Loaded gameclients\n");
spatialpartition =
(ISpatialPartition*)interfaceFactory(INTERFACEVERS
ION_SPATIALPARTITION, NULL);
if ( !spatialpartition )
Msg("PLUGIN: Unable to load spatialpartition, ignoring\n");
else
Msg("PLUGIN: Loaded spatialpartition\n");
voiceserver = (IVoiceServer*)interfaceFactory(INTERFACEVERSION_V
OICESERVER, NULL);
if ( !voiceserver )
Msg("PLUGIN: Unable to load voiceserver, ignoring\n");
else
Msg("PLUGIN: Loaded voiceserver\n");
staticprops = (IStaticPropMgr*)interfaceFactory(INTERFACEVERSION
_STATICPROPMGR_SERVER, NULL);
if ( !staticprops )
Msg("PLUGIN: Unable to load staticprops, ignoring\n");
else
Msg("PLUGIN: Loaded staticprops\n");
// mapdata = (IMapData*)gameServerFactory(INTERFACEVERSION_MAPD ATA, NULL);
// if ( !mapdata )
// Msg("PLUGIN: Unable to load mapdata, ignoring\n");
// else
// Msg("PLUGIN: Loaded mapdata\n");
// physics = (IPhysics*)gameServerFactory(VPHYSICS_INTERFACE_VE
RSION, NULL);
// if ( !physics )
// Msg("PLUGIN: Unable to load physics, ignoring\n");
// else
// Msg("PLUGIN: Loaded physics\n");
// physicscol = (IPhysicsCollision*)gameServerFactory(VPHYSICS_COL
LISION_INTERFACE_VERSION, NULL);
// if ( !physicscol )
// Msg("PLUGIN: Unable to load physicscol, ignoring\n");
// else
// Msg("PLUGIN: Loaded physicscol\n");
// physicssurfprop =
(IPhysicsSurfaceProps*)gameServerFactory(VPHYSICS_
SURFACEPROPS_INTERFACE_VERSION, NULL);
// if ( !physicssurfprop )
// Msg("PLUGIN: Unable to load physicssurfprop, ignoring\n");
// else
// Msg("PLUGIN: Loaded physicssurfprop\n");
enginesound = (IEngineSound*)interfaceFactory(IENGINESOUND_SERVE
R_INTERFACE_VERSION, NULL);
if ( !enginesound )
Msg("PLUGIN: Unable to load enginesound, ignoring\n");
else
Msg("PLUGIN: Loaded enginesound\n");
enginecache = (IVEngineCache*)interfaceFactory(VENGINE_CACHE_INT
ERFACE_VERSION, NULL);
if ( !enginecache )
Msg("PLUGIN: Unable to load enginecache, ignoring\n");
else
Msg("PLUGIN: Loaded enginecache\n");
modelinfo = (IVModelInfo*)interfaceFactory(VMODELINFO_SERVER_I
NTERFACE_VERSION, NULL);
if ( !modelinfo )
Msg("PLUGIN: Unable to load modelinfo, ignoring\n");
else
Msg("PLUGIN: Loaded modelinfo\n");
> What I'm looking for especially is a good method of disconnecting a
> client. I know that the engine interface has a execute client method,
> but somehow executing a "disconnect" on a client to kick him from a
> server does not feel right. I wonder if I have access to the same
> methods that disconnect a user when I execute an "rcon
> kick" command?
Not, "rcon kick", just issue the "kick" command as a Server Command
(using the player name or player index as the argument to kick). Make
sure to put the "\n" newline at the end of the "kick" command.
> BTW: Does anyone know of a searchable archive of this list?
Try this...
http://www.mail-archive.com/hlcoders%40list.valvesoftware.com/
Jeffrey "botman" Broome
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please
visit:
http://list.valvesoftware.com/mailman/listinfo/hlcoders