PHP Code:
#include < amxmodx >
#include < amxmisc >
#include < fakemeta >
#include < hamsandwich >
#pragma semicolon 1
#define PLUGIN "Admin Set Score"
#define VERSION "0.0.1"
#define clamp_short(%0) clamp(%0, -32768, 32767)
const m_iTeam = 114;
const m_iDeaths = 444;
public plugin_init()
{
register_plugin( PLUGIN, VERSION, "ConnorMcLeod" );
register_concmd("amx_setscore", "ConCmd_SetScore", ADMIN_LEVEL_A, " - <partialname|@[T|C|A]|#userid|steamid> <frags> <deaths>");
}
public ConCmd_SetScore(id, lvl, cid)
{
if( cmd_access(id, lvl, cid, 4) )
{
new szTarget[32], szFrags[7], szDeaths[7], iFrags, iDeaths, player;
read_argv(1, szTarget, charsmax(szTarget));
read_argv(2, szFrags, charsmax(szFrags));
read_argv(3, szDeaths, charsmax(szDeaths));
iFrags = clamp_short( str_to_num(szFrags) );
iDeaths = clamp_short( str_to_num(szDeaths) );
player = cmd_target(id, szTarget, 0);
if( player )
{
CsSetUserScore(player, iFrags, iDeaths);
}
else if( szTarget[0] == '@' )
{
new players[32], num, team;
get_players(players, num, "h");
switch( szTarget[1] )
{
case 'a','A':
{
team = -1;
}
case 't','T':
{
team = 1;
}
case 'c','C':
{
team = 2;
}
case 's', 'S', 'u', 'U':
{
team = 0;
}
default:
{
return PLUGIN_HANDLED;
}
}
for(new i; i<num; i++)
{
player = players[i];
switch( team )
{
case 0:
{
if( !( 1 <= get_pdata_int(player, m_iTeam) <= 2) )
{
CsSetUserScore(player, iFrags, iDeaths);
}
}
case 1, 2:
{
if( get_pdata_int(player, m_iTeam) == team )
{
CsSetUserScore(player, iFrags, iDeaths);
}
}
default:
{
CsSetUserScore(player, iFrags, iDeaths);
}
}
}
}
}
return PLUGIN_HANDLED;
}
CsSetUserScore(id, frags, deaths)
{
set_pdata_int(id, m_iDeaths, deaths);
ExecuteHam(Ham_AddPoints, id, frags - get_user_frags(id), true);
}