PHP Code:
#include < amxmodx >
#include < nvault >
new lvls[ 33 ][ 3 ]; // 0- lvl, 1- xp, 2- cin
new cvars[ 2 ]; // 0- killxp, 1- max lvl
new others[ 2 ]; // 0- vault, 1- hudmsg
new const cinovi[ ][ ] =
{
{"Beginner", 0},
{"Amateur", 10},
{"Junior", 20},
{"Deathrun Runner", 30},
{"Deathrun Jumper", 40},
{"Deathrun Bhoper", 50},
{"Bhop Wizzard", 60},
{"Deathrun Invader", 90},
{"Deathrun Expert", 100},
{"Deathrun Express", 110}
};
public plugin_init( ) {
register_plugin( "[DR] LvL System", "1.1", "Malli Bojan" );
others[ 0 ] = nvault_open( "[DR] LvL System" );
others[ 1 ] = CreateHudSyncObj( );
cvars[ 0 ] = register_cvar( "dr_xp_for_lvl", "2" );
cvars[ 1 ] = register_cvar( "dr_max_level", "100" );
}
public client_death( napadac, zrtva ) {
if( !is_user_connected( napadac ) || ( napadac == zrtva ) || ( lvls[ napadac ][ 0 ] == get_pcvar_num( cvars[ 1 ] ) ) )
return;
lvls[ napadac ][ 1 ]++;
if( lvls[ napadac ][ 1 ] >= get_pcvar_num( cvars[ 0 ] ) ) {
lvls[ napadac ][ 0 ]++;
lvls[ napadac ][ 1 ] = 0;
}
set_user_fade( napadac );
}
public save_info( id ) {
new szData[ 256 ], szAuthID[ 33 ];
get_user_authid( id, szAuthID, charsmax( szAuthID ) );
formatex( szData, charsmax(szData), "%i %i", lvls[ id ][ 0 ], lvls[ id ][ 1 ] );
nvault_set( others[ 0 ], szAuthID, szData );
}
public load_info( id ) {
new szData[ 256 ], szAuthID[ 33 ], szInfo[ 2 ][ 33 ];
get_user_authid( id, szAuthID, charsmax( szAuthID ) );
nvault_get( others[ 0 ], szAuthID, szData, charsmax( szData ) );
parse( szData, szInfo[ 0 ], charsmax( szInfo[ ] ), szInfo[ 1 ], charsmax( szInfo[ ] ) );
lvls[ id ][ 0 ] = str_to_num( szInfo[ 0 ] );
lvls[ id ][ 1 ] = str_to_num( szInfo[ 1 ] );
}
public client_putinserver( id ) {
set_task( 1.0, "ShowHud", id, _, _, "b" );
load_info( id );
}
public client_disconnect( id )
save_info( id );
public ShowHud( id ) {
switch( lvls[ id ][ 0 ] ) {
case 0..9: lvls[ id ][ 2 ] = 0;
case 10..19: lvls[ id ][ 2 ] = 1;
case 20..29: lvls[ id ][ 2 ] = 2;
case 30..39: lvls[ id ][ 2 ] = 3;
case 40..49: lvls[ id ][ 2 ] = 4;
case 50..59: lvls[ id ][ 2 ] = 5;
case 60..69: lvls[ id ][ 2 ] = 6;
case 70..79: lvls[ id ][ 2 ] = 7;
case 80..89: lvls[ id ][ 2 ] = 8;
case 90..999: lvls[ id ][ 2 ] = 9;
}
set_hudmessage( 120, 60, random_num( 0, 255 ), 0.01, 0.22 );
ShowSyncHudMsg( id, others[ 1 ], "[Level: %d]^n[Exp: %d/%d]^n[Rank: %s]",lvls[ id ][ 0 ], lvls[ id ][ 1 ], get_pcvar_num( cvars[ 0 ] ), cinovi[ lvls[ id ][ 2 ] ] );
}
stock set_user_fade( index ) {
message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "ScreenFade" ), _, index );
write_short( ( 1 << 12 ) * 1 );
write_short( floatround( ( 1 << 12 ) * 0.01 ) );
write_short( 0x0000 );
write_byte( 0 );
write_byte( 170 );
write_byte( 255 );
write_byte( 150 );
message_end( );
}