Re: Speed doesn't work properly
PHP Code:
#include < amxmodx >
#include < fun >
#include < cstrike >
#include < hamsandwich >
enum AdminData
{
Admin_Flags,
Admin_Health,
Admin_Armor,
Float:Admin_Speed
};
new const g_szAdminFlags[ ][ ] =
{
"abcdefghijklmnopqrstu",
"abcdefhijnopqrstu",
"bcdefhijnopqrsu",
"bcdefijnopqrstu",
"bcdefhijnopqru",
"bcdefhijnopqu",
"bcdefhijnopu",
"bcdefhijnu",
"bcdefhiju",
"bcdefhiju",
"bcefhiju",
"bcefhiju",
"bcehiju",
"beiju",
"z"
};
#define ADMIN_LEVELS sizeof( g_szAdminFlags )
new g_eAdminData[ ADMIN_LEVELS ][ AdminData ] =
{
{ 0, 999, 999, 600.0 },
{ 0, 950, 950, 590.0 },
{ 0, 900, 900, 580.0 },
{ 0, 999, 999, 500.0 },
{ 0, 750, 750, 490.0 },
{ 0, 680, 680, 480.0 },
{ 0, 600, 600, 470.0 },
{ 0, 550, 550, 460.0 },
{ 0, 420, 420, 450.0 },
{ 0, 400, 400, 450.0 },
{ 0, 400, 400, 420.0 },
{ 0, 360, 360, 400.0 },
{ 0, 320, 320, 390.0 },
{ 0, 320, 320, 390.0 },
{ 0, 280, 250, 350.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" );
register_logevent("starting_round", 2, "1=Round_Start");
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 starting_round(iPlayer){
set_task(0.1, "FixSpeed")
}
public Fixspeed(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, 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 ? " si " : ", si " ) : "", floatround( flSpeed ) );
client_print( iPlayer, print_chat, "[DeathRun] Ai primit %s!", szGiven );
break;
}
}
}
}
Like this ? It doesn't work :cry:
|