#include < amxmodx >
#include < fun >
#include < cstrike >
#include < hamsandwich >
/*
abcdefghijklmnopqrstu life 400 + 999 armour speed 320
abcdefghijklmnopqrst life 360 + 250 armour speed 290
bcdefghijklmnopqrst life 310 + 200 armour speed 280
bcdefghijlmnopqrst life 285 + 175 armour speed 270
bcdefghijmnopqrst life 260 + 150 armour speed 260
bcdefghijmnqrst 235 + 150 armour speed 260
bcdefghijmnst life 220 + 150 armour speed 260
bcefijt life 215 + 100 armour speed 260
abegiy life 300 + 200 armour speed 285
z life 150 + 15 armour speed 251
*/
enum AdminData
{
Admin_Flags,
Admin_Health,
Admin_Armor,
Float:Admin_Speed
};
new const g_szAdminFlags[ ][ ] =
{
"abcdefghijklmnopqrstu",
"abcdefghijklmnopqrst",
"bcdefghijklmnopqrst",
"bcdefghijlmnopqrst",
"bcdefghijmnopqrst",
"bcdefghijmnqrst",
"bcdefghijmnst",
"bcefijt",
"abegiy",
"z"
};
#define ADMIN_LEVELS sizeof( g_szAdminFlags )
new g_eAdminData[ ADMIN_LEVELS ][ AdminData ] =
{
// health and armor values are the amount to add, not to set
{ 0, 400, 999, 320.0 },
{ 0, 360, 250, 290.0 },
{ 0, 310, 175, 280.0 },
{ 0, 285, 150, 270.0 },
{ 0, 260, 150, 260.0 },
{ 0, 235, 150, 260.0 },
{ 0, 220, 150, 260.0 },
{ 0, 215, 100, 260.0 },
{ 0, 300, 200, 285.0 },
{ 0, 150, 15, 251.0 }
};
#define MAX_PLAYERS 32
new g_iAdminLevel[ MAX_PLAYERS + 1 ];
public plugin_init( )
{
register_plugin( "Admin Levels", "0.0.1", "Exolent" );
register_event( "CurWeapon", "EventCurWeapon", "be", "1=1" );
RegisterHam( Ham_Spawn, "player", "FwdPlayerSpawnPost", 1 );
for( new i = 0; i < ADMIN_LEVELS; i++ )
{
g_eAdminData[ i ][ Admin_Flags ] = read_flags( g_szAdminFlags[ i ] );
}
}
public EventCurWeapon( iPlayer )
{
new iLevel = g_iAdminLevel[ iPlayer ];
if( iLevel >= 0 )
{
set_user_maxspeed( iPlayer, Float:g_eAdminData[ iLevel ][ Admin_Speed ] );
}
}
public FwdPlayerSpawnPost( iPlayer )
{
if( is_user_alive( iPlayer ) )
{
g_iAdminLevel[ iPlayer ] = -1;
new iFlags = get_user_flags( iPlayer );
for( new i = 0; i < ADMIN_LEVELS; i++ )
{
if( ( iFlags & g_eAdminData[ i ][ Admin_Flags ] ) == g_eAdminData[ i ][ Admin_Flags ] )
{
g_iAdminLevel[ iPlayer ] = i;
new szGiven[ 64 ], iLen, iGivenCount;
new iHealth = g_eAdminData[ i ][ Admin_Health ];
if( iHealth )
{
set_user_health( iPlayer, ( get_user_health( iPlayer ) + iHealth ) );
iLen += formatex( szGiven[ iLen ], charsmax( szGiven ) - iLen, "%i Extra Health", iHealth );
iGivenCount++
}
new iArmor = g_eAdminData[ i ][ Admin_Armor ];
if( iArmor )
{
cs_set_user_armor( iPlayer, iArmor, CS_ARMOR_VESTHELM );
iLen += formatex( szGiven[ iLen ], charsmax( szGiven ) - iLen, "%s%i Armor", iLen ? ", " : "", iArmor );
iGivenCount++
}
new Float:flSpeed = Float:g_eAdminData[ i ][ Admin_Speed ];
set_user_maxspeed( iPlayer, flSpeed );
iLen += formatex( szGiven[ iLen ], charsmax( szGiven ) - iLen, "%s%i Speed", iLen ? ( iGivenCount == 1 ? " and " : ", and " ) : "", floatround( flSpeed ) );
client_print( iPlayer, print_chat, "[AMXX] You were given %s!", szGiven );
break;
}
}
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\ rtf1\ ansi\ deff0{\ fonttbl{\ f0\ fnil Tahoma;}}n\ viewkind4\ uc1\ pard\ lang1033\ f0\ fs16 n\ par }
*/