sourcemod/core/smn_player.cpp
David Anderson 80b75f2196 added note for player natives
--HG--
extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%40254
2007-01-01 10:36:29 +00:00

109 lines
2.9 KiB
C++

#include "CPlayerManager.h"
//:TODO: register these and use the same capitalization conventions as the natives
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;
}