- #include <amxmodx> 
- #include <amxmisc> 
- #include <cstrike> 
- #include <csstats> 
-   
- #pragma tabsize 0 
-   
- #define PLUGIN "Rankrendszer (HUD + prefix)" 
- #define VERSION "1.5" 
- #define AUTHOR "6lmasok,qKKKJ;>, RaZ_HU" ///Szerk:. Jucika 
-   
- #define ACCESS_LEVEL ADMIN_CHAT 
- #define ADMIN_LISTEN ADMIN_CHAT 
-   
- #define RANK_SILVER 0 
- #define RANK_SILVER2 1 
- #define RANK_SILVER3 2 
- #define RANK_SILVER4 3 
- #define RANK_SILVERE 4 
- #define RANK_SILVEREM 5 
- #define RANK_NOVA 6 
- #define RANK_NOVA2 7 
- #define RANK_NOVA3 8 
- #define RANK_NOVAM 9 
- #define RANK_AK 10 
- #define RANK_AK2 11 
- #define RANK_DAK 12 
- #define RANK_SHERIFF 13 
- #define RANK_SAS 14 
- #define RANK_SASM 15 
- #define RANK_SUPREME 16 
- #define RANK_GLOBAL 17 
- #define RANK_UBER 18 
-   
- #define MAXRANKS 19 
-   
- new message[192] 
-   
- new strName[191] 
- new strText[191] 
- new sayText 
- new teamInfo 
- new maxPlayers 
- new PlayerRank[33] 
- new bool: g_bHud[ 33 ] 
- new Float:HUD_INTERVAL 
-   
- new static color[10] 
-   
- new const RANKS[MAXRANKS][] = 
- { 
-     "Silver I", 
-     "Silver II", 
-     "Silver III", 
-     "Silver IV", 
-     "Silver Elite", 
-     "Silver Elite Mester", 
-     "Arany Nova I", 
-     "Arany Nova II", 
-     "Arany Nova III", 
-     "Arany Nova Mester", 
-     "AK", 
-     "Koszorus AK", 
-     "Dupla AK", 
-     "Sheriff", 
-     "Sas", 
-     "Sas Mester", 
-     "Supreme", 
-     "Global Elite", 
-     "Legenda" 
- } 
-   
- #define size 18 
-   
- new const szamok[size] = 
- { 
-     50, 
-     100, 
-     200, 
-     300, 
-     450, 
-     650, 
-     800, 
-     1000, 
-     1200, 
-     1400, 
-     1700, 
-     2000, 
-     2500, 
-     3000, 
-     3600, 
-     4500, 
-     5500, 
-     20000 
- } 
-   
- public plugin_init() 
- { 
-     register_plugin(PLUGIN, VERSION, AUTHOR) 
-     register_clcmd("say /rang", "hud") 
-     register_clcmd("say rang", "hud") 
-     register_clcmd( "say /rangok", "cmdRangs" ); 
-     register_clcmd( "say /hud", "cmdHud" ); 
-     register_clcmd ("say", "hook_say") 
-     register_clcmd ("say_team", "hook_teamsay") 
-      
-     register_cvar("sv_rankrendszer","1") // A plugin be- illetve kikapcsolása 
-     register_cvar("sv_rankrendszer_HUD","1") // A HUD-ra való kijelzés be- illetve kikapcsolása 
-     sethudtime() 
-      
-     sayText = get_user_msgid ("SayText") 
-     teamInfo = get_user_msgid ("TeamInfo") 
-     maxPlayers = get_maxplayers() 
-      
-     set_task(160.0, "korUzenet", 0, _, _, "b") 
-      
-     register_message (sayText, "avoid_duplicated") 
- } 
-   
- public cmdRangs( iPlayerId ) 
- { 
-     static iLen = 0, sMotd[ 2048 ], iMotdLen = charsmax( sMotd ); 
-      
-     iLen = formatex( sMotd, iMotdLen, "<meta charset=utf-8><style>table{color:#FFB000;} td,th{border:1px solid #666;text-align:center;}</style><body bgcolor=#000000><center><table width='400'><tr><th>Rang</th><th>Ölés</th><tr>" ); 
-     iLen += formatex( sMotd[ iLen ], iMotdLen - iLen, "<tr><td>%s</td><td>0</td><tr>", RANKS[ 0 ] ); 
-      
-     for ( new i; i < size; ++i ) 
-         iLen += formatex( sMotd[ iLen ], iMotdLen - iLen, "<tr><td>%s</td><td>%d</td><tr>", RANKS[ i + 1 ], szamok[ i ] ); 
-      
-     show_motd( iPlayerId, sMotd, "Rangrendszer info" ); 
- } 
-   
- public cmdHud( iPlayerId ) 
- { 
-     ColorChat( iPlayerId, "^1A hud kijelzõ ^3%skapcsolva^1!", ( g_bHud[ iPlayerId ] ^= true ) ? "be" : "ki" ); 
-      
-     if ( !g_bHud[ iPlayerId ] ) remove_task( iPlayerId ); 
-     else { if ( !task_exists( iPlayerId ) ) set_task( HUD_INTERVAL, "setDisplay", iPlayerId ); } 
- } 
-   
- public sethudtime() 
- { 
-     new refreshtime = register_cvar("sv_rankrendszer_HUDtime","0.9") // A HUD-ra való kijelzés frissítési ideje másodpercben 
-     if (refreshtime == 0.9) 
-     { 
-         HUD_INTERVAL = 0.9 
-     } 
-     else if (refreshtime != 0.9) 
-     { 
-         HUD_INTERVAL = get_pcvar_float(refreshtime) 
-     } 
-      
-     return PLUGIN_CONTINUE 
- } 
-   
- public avoid_duplicated (msgId, msgDest, receiver) 
- { 
-     return PLUGIN_HANDLED 
- } 
-   
- public korUzenet() 
- { 
-     ColorChat( 0, "^3Írd be ^4/rang ^3vagy ^4rang ^3hogy megnézd hány ölés kell a következő ranghoz.") 
-     return PLUGIN_HANDLED; 
- } 
-   
- public hud(id) 
- { 
-     new stats[8] 
-     new bodyhits[8] 
-     get_user_stats(id, stats, bodyhits) 
-      
-     ColorChat( id, "^4Rangod: ^3%s ^1| ^4Ölések: ^3%d",RANKS[PlayerRank[id]], stats[0]) 
-      
-     if(PlayerRank[id] == MAXRANKS-1) 
-     { 
-         //client_print(id, print_chat, "^4Rangod: ^3%s ^1| ^4Ölések: ^3%d ^n^4A következő szinthez kell még: ^3%d",RANKS[PlayerRank[id]], stats[0],szamok[PlayerRank[id]]-stats[0]) 
-         ColorChat( id, "^4Már elérted a legnagyobb ^4rangot.") 
-     } 
-     else 
-     { 
-         //client_print(id, print_chat, "^4Rangod: ^3%s ^1| ^4Ölések: ^3%d ^n^4Már elérted a legnagyobb rangot.",RANKS[PlayerRank[id]], stats[0]) 
-         ColorChat( id, "^4Következő rang: ^3%s ^1| ^4A következő szinthez kell még: ^3%d",RANKS[PlayerRank[id]+1], szamok[PlayerRank[id]]-stats[0]) 
-     } 
- } 
-   
- public hook_say(id) 
- { 
-     read_args (message, 191) 
-     remove_quotes (message) 
-      
-     if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, "")) // Ignores Admin Hud Messages, Admin Slash commands, 
-     return PLUGIN_CONTINUE 
-      
-     new name[32] 
-     get_user_name (id, name, 31) 
-      
-     new isAlive, alive[32] 
-      
-     if (is_user_alive (id)) 
-     { 
-         isAlive = 1 
-         alive = "^1 " 
-     } 
-     else 
-     { 
-         isAlive = 0 
-         alive = "^1*HALOTT* " 
-     } 
-      
-     //static color[10] 
-      
-     if(get_user_flags(id)&ADMIN_CVAR) 
-     { 
-         //get_user_team (id, color, 9) 
-         getTeam(id) 
-         format (strName, 191, "%s^4[TULAJ][%s] ^3%s:", alive, RANKS[PlayerRank[id]], name) 
-         format (strText, 191, "^4%s", message) 
-     }   
-      
-     else if(get_user_flags(id)&ADMIN_MAP) 
-     { 
-         getTeam(id) 
-         format (strName, 191, "%s^4[ADMIN][%s] ^3%s:", alive, RANKS[PlayerRank[id]], name) 
-         format (strText, 191, "^4%s", message) 
-     }     
-      
-     else if(get_user_flags(id)&ADMIN_MENU) 
-     { 
-         getTeam(id) 
-         format (strName, 191, "%s^4[VIP][%s] ^3%s:", alive, RANKS[PlayerRank[id]], name) 
-         format (strText, 191, "^4%s", message) 
-     } 
-      
-     else if(get_user_flags(id)&ADMIN_USER) 
-     { 
-         getTeam(id) 
-         format (strName, 191, "%s^4[%s] ^3%s:",alive, RANKS[PlayerRank[id]], name) 
-         format (strText, 191, "^1%s", message) 
-     } 
-      
-     format (message, 191, "%s ^1%s", strName, strText) 
-     sendMessage (color, isAlive) 
-      
-     return PLUGIN_CONTINUE 
- } 
-   
- public hook_teamsay(id) 
- { 
-     new playerTeam = get_user_team(id) 
-     new playerTeamName[19] 
-      
-     switch (playerTeam) 
-     { 
-         case 1: 
-             copy (playerTeamName, 11, "Terrorista") 
-          
-         case 2: 
-             copy (playerTeamName, 18, "Anti-Terrorista") 
-          
-         default: 
-             copy (playerTeamName, 9, "Néző") 
-     } 
-      
-     read_args (message, 191) 
-     remove_quotes (message) 
-      
-     if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, "")) 
-     return PLUGIN_CONTINUE 
-      
-     new isAlive, alive[32] 
-      
-     if (is_user_alive (id)) 
-     { 
-         isAlive = 1 
-         alive = "^1 " 
-     } 
-     else 
-     { 
-         isAlive = 0 
-         alive = "^1*HALOTT* " 
-     } 
-      
-     new name[32] 
-     get_user_name (id, name, 31) 
-      
-     //static color[10] 
-      
-     if(get_user_flags(id)&ADMIN_CVAR) 
-     { 
-         //get_user_team (id, color, 9) 
-         getTeam(id) 
-         format (strName, 191, "%s(%s)^4[TULAJ][%s] ^3%s:",alive , playerTeamName, RANKS[PlayerRank[id]], name) 
-         format (strText, 191, "^4%s", message) 
-     }   
-      
-     else if(get_user_flags(id)&ADMIN_MAP) 
-     { 
-         getTeam(id) 
-         format (strName, 191, "%s(%s)^4[ADMIN][%s] ^3%s:",alive , playerTeamName, RANKS[PlayerRank[id]], name) 
-         format (strText, 191, "^4%s", message) 
-     }     
-      
-     else if(get_user_flags(id)&ADMIN_MENU) 
-     { 
-         getTeam(id) 
-         format (strName, 191, "%s(%s)^4[VIP][%s] ^3%s:",alive , playerTeamName, RANKS[PlayerRank[id]], name) 
-         format (strText, 191, "^4%s", message) 
-     } 
-      
-     else if(get_user_flags(id)&ADMIN_USER) 
-     { 
-         getTeam(id) 
-         format (strName, 191, "%s(%s)^4[%s] ^3%s:",alive ,playerTeamName, RANKS[PlayerRank[id]], name) 
-         format (strText, 191, "^1%s", message) 
-     } 
-      
-     format (message, 191, "%s ^1%s", strName, strText) 
-     sendTeamMessage (color,isAlive, playerTeam) 
-      
-     return PLUGIN_CONTINUE 
- } 
-   
- public sendMessage (color[], alive) 
- { 
-     new teamName[10] 
-      
-     for (new player = 1; player < maxPlayers; player++) 
-     { 
-         if (!is_user_connected(player)) 
-             continue 
-         if((alive && is_user_alive(player)) || (!alive && !is_user_alive(player)) || (get_user_flags(player) && ADMIN_LISTEN)) 
-         { 
-             get_user_team (player, teamName, 9) 
-             changeTeamInfo (player, color) 
-             writeMessage (player, message) 
-             changeTeamInfo (player, teamName) 
-         } 
-     } 
- } 
-   
- public sendTeamMessage (color[], alive, playerTeam) 
- { 
-     new teamName[10] 
-      
-     for (new player = 1; player < maxPlayers; player++) 
-     { 
-         if (!is_user_connected(player)) 
-             continue 
-          
-         if (get_user_team(player) == playerTeam || get_user_flags(player) & ADMIN_LISTEN) 
-         { 
-             if (alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_user_flags(player) & ADMIN_LISTEN) 
-             { 
-                 get_user_team (player, teamName, 9) 
-                 changeTeamInfo (player, color) 
-                 writeMessage (player, message) 
-                 changeTeamInfo (player, teamName) 
-             } 
-         } 
-     } 
- } 
-   
- public changeTeamInfo (player, team[]) 
- { 
-     message_begin (MSG_ONE, teamInfo, _, player)   
-     write_byte (player) 
-     write_string (team) 
-     message_end()   
- } 
-   
- public writeMessage (player, message[]) 
- { 
-     message_begin (MSG_ONE, sayText, {0, 0, 0}, player) 
-     write_byte (player) 
-     write_string (message) 
-     message_end () 
- } 
-   
- stock bool:is_user_steam(id) 
- { 
-     static dp_pointer; 
-      
-     if (dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider"))) 
-     { 
-         server_cmd("dp_clientinfo %d", id); 
-         server_exec(); 
-         return (get_pcvar_num(dp_pointer) == 2) ? true : false; 
-     } 
-   
-     return false; 
- } 
-   
- public client_putinserver(id) 
- { 
-     if(get_cvar_num("sv_rankrendszer")==0) 
-     { 
-         return PLUGIN_HANDLED 
-     } 
-     else if (get_cvar_num("sv_rankrendszer")==1 && get_cvar_num("sv_rankrendszer_HUD")==1) 
-     { 
-         g_bHud[ id ] = true; 
-         set_task(HUD_INTERVAL, "setDisplay", id) 
-     } 
-     else 
-     { 
-         set_task(0.5, "remTask", id) 
-     } 
-      
-     return PLUGIN_CONTINUE 
- } 
-   
- public remTask(id) 
- { 
-     remove_task(id, 0) 
- } 
-   
- public getTeam(id) 
- { 
-     get_user_team (id, color, 9) 
- } 
-   
- public setDisplay(id) 
- { 
-     if(!is_user_connected(id)) 
-         return PLUGIN_CONTINUE 
-      
-     new stats[8] 
-     new bodyhits[8] 
-     get_user_stats(id, stats, bodyhits) 
-      
-     if(stats[0] < 50) 
-     { 
-         PlayerRank[id] = RANK_SILVER 
-     } 
-     else if(stats[0] >= 50 && stats[0] < 100) 
-     { 
-         PlayerRank[id] = RANK_SILVER2 
-     } 
-     else if(stats[0] >= 100 && stats[0] < 200) 
-     { 
-         PlayerRank[id] = RANK_SILVER3 
-     } 
-     else if(stats[0] >= 200 && stats[0] < 300) 
-     { 
-         PlayerRank[id] = RANK_SILVER4 
-     } 
-     else if(stats[0] >= 300 && stats[0] < 450) 
-     { 
-         PlayerRank[id] = RANK_SILVERE 
-     } 
-     else if(stats[0] >= 450 && stats[0] < 650) 
-     { 
-         PlayerRank[id] = RANK_SILVEREM 
-     } 
-     else if(stats[0] >= 650 && stats[0] < 800) 
-     { 
-         PlayerRank[id] = RANK_NOVA 
-     } 
-     else if(stats[0] >= 800 && stats[0] < 1000) 
-     { 
-         PlayerRank[id] = RANK_NOVA2 
-     } 
-     else if(stats[0] >= 1000 && stats[0] < 1200) 
-     { 
-         PlayerRank[id] = RANK_NOVA3 
-     } 
-     else if(stats[0] >= 1200 && stats[0] < 1400) 
-     { 
-         PlayerRank[id] = RANK_NOVAM 
-     } 
-     else if(stats[0] >= 1400 && stats[0] < 1700) 
-     { 
-         PlayerRank[id] = RANK_AK 
-     } 
-     else if(stats[0] >= 1700 && stats[0] < 2000) 
-     { 
-         PlayerRank[id] = RANK_AK2 
-     } 
-     else if(stats[0] >= 2000 && stats[0] < 2500) 
-     { 
-         PlayerRank[id] = RANK_DAK 
-     } 
-     else if(stats[0] >= 2500 && stats[0] < 3000) 
-     { 
-         PlayerRank[id] = RANK_SHERIFF 
-     } 
-     else if(stats[0] >= 3000 && stats[0] < 3600) 
-     { 
-         PlayerRank[id] = RANK_SAS 
-     } 
-     else if(stats[0] >= 3600 && stats[0] < 4500) 
-     { 
-         PlayerRank[id] = RANK_SASM 
-     } 
-     else if(stats[0] >= 4500 && stats[0] < 5500) 
-     { 
-         PlayerRank[id] = RANK_SUPREME 
-     } 
-     else if(stats[0] >= 5500 && stats[0] < 20000) 
-     { 
-         PlayerRank[id] = RANK_GLOBAL 
-     } 
-     else if(stats[0] >= 20000) 
-     { 
-         PlayerRank[id] = RANK_UBER 
-     } 
-      
-     set_hudmessage(142, 239, 39, 0.01, 0.20, 0, 6.0, 1.0, 0.0, 0.0, -1) 
-     show_hudmessage(id, "^nÖléseid: %i^nRang: %s^nParancsok: /rang, /rangok", stats[0], RANKS[PlayerRank[id]]) 
-     //show_hudmessage(id, "%s ^nÖlések: %i ^nRang: %s", name, stats[0], RANKS[PlayerRank[id]]) 
-      
-     set_task(HUD_INTERVAL, "setDisplay", id) 
-      
-     return PLUGIN_CONTINUE 
- } 
-   
- stock ColorChat(const id, const input[], any:...) 
- { 
-     new count = 1, players[32]; 
-     static msg[191]; 
-     vformat(msg, 190, input, 3); 
-      
-     replace_all(msg, 190, "!g", "^4"); // Green Color 
-     replace_all(msg, 190, "!y", "^1"); // Default Color 
-     replace_all(msg, 190, "!t", "^3"); // Team Color 
-      
-     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(); 
-             } 
-         } 
-     } 
- }