Si sa ca atunci cand un player avanseaza cate un rank sa le arate la toti playerii [NUME PLAYER] a avansat la rank-ul [ ... ] adica cel urmator dupa cel precedent . Adica trece un level.. intelegeti voi.
- | Afiseaza codul
#include <amxmodx> #include <hamsandwich> #include <cstrike> #include <nvault> #include <fun> static const PLUGIN[] = "Simple Level Mod", VERSION[] = "2.0", AUTHOR[] = "scosmyn"; #define MAX_LEVELS 22 new const Kills[MAX_LEVELS] = { 0, 50, 100, 160, 220, 290, 370, 420, 500, 580, 640, 690, 760, 810, 850, 900, 950, 1005, 1030, 1070, 1115, 1250 } new const szTag[MAX_LEVELS][] = { "", "*INCEPATOR*", "Silver 2", "Silver 3", "Silver IV", "Silver Elite", "Silver Elite Master", "Gold Nova 1", "Gold Nova 2", "Gold Nova 3", "Gold Nova IV", "Gold Nova Elite", "Gold Nova Elite Master", "Master Guardian 1", "Master Guardian 2", "Master Guardian 3", "Master Guardian IV", "Master Guardian Disthingued", "Legendary Eagle ", "Supreme Master", "LORD [X]", "KING <3" } new Level[33],Kill[33],szName[32],g_vault,g_sync new pcvar_hs,pcvar_kill,pcvar_knife,pcvar_he,pcvar_efect,pcvar_r,pcvar_g,pcvar_b,pcvar_hp_lvl,pcvar_ap_lvl public plugin_init() { register_plugin(PLUGIN,VERSION,AUTHOR) register_event("DeathMsg","ev_msg","a") RegisterHam(Ham_Spawn,"player","player_spawn",1) pcvar_hs = register_cvar("cvar_hs_bonus","2") pcvar_kill = register_cvar("cvar_normal_bonus","1") pcvar_knife = register_cvar("cvar_knife_bonus","2") pcvar_he = register_cvar("cvar_he_bonus","1") pcvar_efect = register_cvar("cvar_effect_lvl","3") pcvar_r = register_cvar("cvar_red","255") pcvar_g = register_cvar("cvar_green","0") pcvar_b = register_cvar("cvar_blue","0") pcvar_hp_lvl = register_cvar("cvar_hp_lvl","0") pcvar_ap_lvl = register_cvar("cvar_ap_lvl","0") g_vault = nvault_open("simple_lvl_mod") g_sync = CreateHudSyncObj() if(g_vault == INVALID_HANDLE) set_fail_state("Eroare la deschiderea bazei de date din vault.") } public player_spawn(id) { if(!is_user_alive(id) || is_user_bot(id)) return HAM_HANDLED if(Level[id] < 1) Level[id] = 1 set_user_health(id,get_user_health(id) + get_pcvar_num(pcvar_hp_lvl) * Level[id]) set_user_armor(id,get_user_armor(id) + get_pcvar_num(pcvar_ap_lvl) * Level[id]) return HAM_HANDLED } public ev_msg( ) { static kiler; kiler = read_data(1) static hs; hs = read_data(3) if(kiler == read_data(2) || !is_user_alive(kiler)) return if(hs) Kill[kiler]+= get_pcvar_num(pcvar_hs) else Kill[kiler]+= get_pcvar_num(pcvar_kill) if(get_user_weapon(kiler) == CSW_KNIFE && !hs) Kill[kiler]+= get_pcvar_num(pcvar_knife) if(get_user_weapon(kiler) == CSW_HEGRENADE && !hs) Kill[kiler]+= get_pcvar_num(pcvar_he) if(Level[kiler] < MAX_LEVELS) { while(Kill[kiler] >= Kills[Level[kiler]]) { Level[kiler]++ color(kiler,"!teamFelicitari,ai ajuns la level %i (!g%s!team).",Level[kiler],szTag[Level[kiler]]) screen_fade(kiler, get_pcvar_num(pcvar_efect), get_pcvar_num(pcvar_r), get_pcvar_num(pcvar_g), get_pcvar_num(pcvar_b), 115) return } } SaveData(kiler) } public client_putinserver(id) { if(!is_user_bot(id)) { LoadData(id) set_task(1.0,"show_hud",id+0x4332,_,_,"b") } } public client_disconnect(id) { remove_task(id+0x4332) SaveData(id) } public show_hud(id) { id-=0x4332 get_user_name(id,szName,charsmax(szName)) if(is_user_alive(id)) { set_hudmessage(0, 255, 0, 0.15, 0.01, 0, 6.0, 12.0) ShowSyncHudMsg(id,g_sync,"Nume: %s^nRank: %d^nStatus: %s^nKilluri: %i/%i.",szName,Level[id],szTag[Level[id]],Kill[id],Kills[Level[id]]) } } public SaveData(id) { new name[32],vaultkey[64],vaultdata[256] get_user_name(id,name,charsmax(name)) formatex(vaultkey,63,"%s-Mod",name) formatex(vaultdata,255,"%i#%i#",Kill[id],Level[id]) nvault_set(g_vault,vaultkey,vaultdata) } public LoadData(id) { new name[32],vaultkey[64],vaultdata[256] get_user_name(id,name,charsmax(name)) formatex(vaultkey,63,"%s-Mod",name) formatex(vaultdata,255,"%i#%i#",Kill[id],Level[id]) nvault_get(g_vault,vaultkey,vaultdata,255) replace_all(vaultdata, 255, "#", " ") new kill[32],level[32] parse(vaultdata, kill, 31, level, 31) Kill[id] = str_to_num(kill) Level[id] = str_to_num(level) } public plugin_end() nvault_close(g_vault) stock screen_fade(id,holdtime,r,g,b,a) { message_begin(MSG_ONE_UNRELIABLE,get_user_msgid("ScreenFade"),{ 0, 0, 0 },id); write_short(seconds_to_units(holdtime)); write_short(seconds_to_units(holdtime)); write_short(0); write_byte(r); write_byte(g); write_byte(b); write_byte(a); message_end(); } stock seconds_to_units(time) { return((1 << 12) * (time)) } stock color( const id, const input[ ], any:... ) { new count = 1, players[ 32 ] static msg[ 191 ] vformat( msg, 190, input, 3 ) replace_all( msg, 190, "!g", "^4" ) //- verde replace_all( msg, 190, "!y", "^1" ) //- galben replace_all( msg, 190, "!team", "^3" ) //- echipa replace_all( msg, 190, "!n", "^0" ) //- normal if( id ) players[ 0 ] = id; else get_players( players, count, "ch" ) { for( new i = 0; i < count; i++ ) { if( is_user_connected( players[ i ] ) ) { message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "SayText" ), _, players[ i ] ) write_byte( players[ i ] ); write_string( msg ); message_end( ); } } } }