> > 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