107 lines
2.8 KiB
C++
107 lines
2.8 KiB
C++
|
#include "CPlayerManager.h"
|
||
|
|
||
|
static cell_t sm_getclientcount(IPluginContext *pCtx, const cell_t *params)
|
||
|
{
|
||
|
if (params[1])
|
||
|
{
|
||
|
return g_PlayerManager.GetPlayerCount();
|
||
|
}
|
||
|
|
||
|
int maxplayers = g_PlayerManager.GetMaxClients();
|
||
|
int count = 0;
|
||
|
for (int i=1; i<=maxplayers; ++i)
|
||
|
{
|
||
|
CPlayer *pPlayer = g_PlayerManager.GetPlayerByIndex(i);
|
||
|
if ((pPlayer->IsPlayerConnected()) && !(pPlayer->IsPlayerInGame()))
|
||
|
{
|
||
|
count++;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return (g_PlayerManager.GetPlayerCount() + count);
|
||
|
}
|
||
|
|
||
|
static cell_t sm_getmaxclients(IPluginContext *pCtx, const cell_t *params)
|
||
|
{
|
||
|
return g_PlayerManager.GetMaxClients();
|
||
|
}
|
||
|
|
||
|
static cell_t sm_getclientname(IPluginContext *pCtx, const cell_t *params)
|
||
|
{
|
||
|
int index = params[1];
|
||
|
if ((index < 1) || (index > g_PlayerManager.GetMaxClients()))
|
||
|
{
|
||
|
//:TODO: runtime error
|
||
|
}
|
||
|
|
||
|
pCtx->StringToLocalUTF8(params[2], static_cast<size_t>(params[3]), g_PlayerManager.GetPlayerByIndex(index)->PlayerName(), NULL);
|
||
|
return 1;
|
||
|
}
|
||
|
|
||
|
static cell_t sm_getclientip(IPluginContext *pCtx, const cell_t *params)
|
||
|
{
|
||
|
int index = params[1];
|
||
|
if ((index < 1) || (index > g_PlayerManager.GetMaxClients()))
|
||
|
{
|
||
|
//:TODO: runtime error
|
||
|
}
|
||
|
|
||
|
pCtx->StringToLocal(params[2], static_cast<size_t>(params[3]), g_PlayerManager.GetPlayerByIndex(index)->PlayerIP());
|
||
|
return 1;
|
||
|
}
|
||
|
|
||
|
static cell_t sm_getclientauthstr(IPluginContext *pCtx, const cell_t *params)
|
||
|
{
|
||
|
int index = params[1];
|
||
|
if ((index < 1) || (index > g_PlayerManager.GetMaxClients()))
|
||
|
{
|
||
|
//:TODO: runtime error
|
||
|
}
|
||
|
|
||
|
pCtx->StringToLocal(params[2], static_cast<size_t>(params[3]), g_PlayerManager.GetPlayerByIndex(index)->PlayerAuthString());
|
||
|
return 1;
|
||
|
}
|
||
|
|
||
|
static cell_t sm_isplayerconnected(IPluginContext *pCtx, const cell_t *params)
|
||
|
{
|
||
|
int index = params[1];
|
||
|
if ((index < 1) || (index > g_PlayerManager.GetMaxClients()))
|
||
|
{
|
||
|
//:TODO: runtime error
|
||
|
}
|
||
|
|
||
|
return (g_PlayerManager.GetPlayerByIndex(index)->IsPlayerConnected()) ? 1 : 0;
|
||
|
}
|
||
|
|
||
|
static cell_t sm_isplayeringame(IPluginContext *pCtx, const cell_t *params)
|
||
|
{
|
||
|
int index = params[1];
|
||
|
if ((index < 1) || (index > g_PlayerManager.GetMaxClients()))
|
||
|
{
|
||
|
//:TODO: runtime error
|
||
|
}
|
||
|
|
||
|
return (g_PlayerManager.GetPlayerByIndex(index)->IsPlayerInGame()) ? 1 : 0;
|
||
|
}
|
||
|
|
||
|
static cell_t sm_isplayerauthorized(IPluginContext *pCtx, const cell_t *params)
|
||
|
{
|
||
|
int index = params[1];
|
||
|
if ((index < 1) || (index > g_PlayerManager.GetMaxClients()))
|
||
|
{
|
||
|
//:TODO: runtime error
|
||
|
}
|
||
|
|
||
|
return (g_PlayerManager.GetPlayerByIndex(index)->IsPlayerAuthorized()) ? 1 : 0;
|
||
|
}
|
||
|
|
||
|
static cell_t sm_isplayerfakeclient(IPluginContext *pCtx, const cell_t *params)
|
||
|
{
|
||
|
int index = params[1];
|
||
|
if ((index < 1) || (index > g_PlayerManager.GetMaxClients()))
|
||
|
{
|
||
|
//:TODO: runtime error
|
||
|
}
|
||
|
|
||
|
return (g_PlayerManager.GetPlayerByIndex(index)->IsPlayerFakeClient()) ? 1 : 0;
|
||
|
}
|