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

Reply via email to