#include #include #include #include #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 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 ShowSyncHudMSG new const RANKS[MAXRANKS][] = { "[«Újonc»]", "[«Játékos»]", "[«Királynő»]", "[«Király»]", "[«Élő Zombie»]", "[«Csont hülye»]", "[«Gladiátor»]", "[«Manusz»]", "[«Átkozott»]", "[«Vén ember»]", "[«Focista»]", "[«Hamupipőke»]", "[«Kristály»]", "[«Szarvas»]", "[«Legendary»]", "[«Füles bagoly»]", "[«Pornószínész»]", "[«Védelmező»]", "[«Burned Out Tag»]" } new const szamok[MAXRANKS-1] = { 50, 100, 150, 200, 250, 300, 350, 400, 450, 500, 550, 600, 650, 700, 750, 800, 850, 900 } 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") ShowSyncHudMSG = CreateHudSyncObj() register_message (sayText, "avoid_duplicated") } public cmdRangs( iPlayerId ) { static iLen = 0, sMotd[ 2048 ], iMotdLen = charsmax( sMotd ); iLen = formatex( sMotd, iMotdLen, "
" ); iLen += formatex( sMotd[ iLen ], iMotdLen - iLen, "", RANKS[ 0 ] ); for ( new i; i < MAXRANKS-1; ++i ) iLen += formatex( sMotd[ iLen ], iMotdLen - iLen, "", RANKS[ i + 1 ], szamok[ i ] ); show_motd( iPlayerId, sMotd, "Rangrendszer infó" ); } 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) } } public avoid_duplicated (msgId, msgDest, receiver) { return PLUGIN_HANDLED } public korUzenet() { ColorChat( 0, "^4[.:*DSF*:.]^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) { ColorChat( id, "^4Rangod: ^3%s ^1| ^4Ölések: ^3%d",RANKS[PlayerRank[id]], get_player_stats(id,0)) if(PlayerRank[id] == MAXRANKS-1) { ColorChat( id, "^4Mar elérted a legnagyobb ^4rangot.") } else { ColorChat( id, "^4következő rang: ^3%s ^1| ^4A következő ranghoz kell még: ^3%d",RANKS[PlayerRank[id]+1], szamok[PlayerRank[id]]-get_player_stats(id,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 static name[32] name = get_player_name(id) new isAlive, alive[32] if (is_user_alive (id)) { isAlive = 1 alive = "" } else { isAlive = 0 alive = "^1*Halott* " } getTeam(id) if(get_user_flags(id)&ADMIN_CVAR) // G jog { formatex (strName, 191, "%s^4[«Tulajdonos»]^3%s^1» ^4%s^1:^2", alive, RANKS[PlayerRank[id]], name) formatex (strText, 191, "^4%s", message) } else if(get_user_flags(id)&ADMIN_CFG) // H jog { formatex (strName, 191, "%s^4[«FőAdmin»]^3%s^1» ^4%s^1:^2", alive, RANKS[PlayerRank[id]], name) formatex (strText, 191, "^4%s", message) } else if(get_user_flags(id)&ADMIN_MAP) // F jog { formatex (strName, 191, "%s^4[«Admin»]^3%s^1» ^3%s^1:^2", alive, RANKS[PlayerRank[id]], name) formatex (strText, 191, "^4%s", message) } else if(get_user_flags(id)&ADMIN_MENU) // U jog { formatex (strName, 191, "%s^4[«Vip»]^3%s^1» ^3%s^1:^2", alive, RANKS[PlayerRank[id]], name) formatex (strText, 191, "^4%s", message) } else if(get_user_flags(id)&ADMIN_USER) // Z jog (alapból minden player) { formatex (strName, 191, "%s^4[%s] ^3%s:",alive, RANKS[PlayerRank[id]], name) formatex (strText, 191, "^1%s", message) } formatex (message, 191, "%s ^1%s", strName, strText) sendMessage (color, isAlive) return PLUGIN_HANDLED } 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 static name[32] name = get_player_name(id) new isAlive, alive[32] if (is_user_alive (id)) { isAlive = 1 alive = "^1*Él*" } else { isAlive = 0 alive = "^1*Halott* " } getTeam(id) if(get_user_flags(id)&ADMIN_CVAR) // G jog { formatex (strName, 191, "%s(%s)^4[«Tulajdonos»]^3%s^1» ^4%s^1:^2",alive , playerTeamName, RANKS[PlayerRank[id]], name) formatex (strText, 191, "^4%s", message) } else if(get_user_flags(id)&ADMIN_CFG) // H jog { formatex (strName, 191, "%s(%s)^4[«FőAdmin»]^3%s^1» ^4%s^1:^2",alive , playerTeamName, RANKS[PlayerRank[id]], name) formatex (strText, 191, "^4%s", message) } else if(get_user_flags(id)&ADMIN_MAP) // F jog { formatex (strName, 191, "%s(%s)^4[«Admin»]^3%s^1» ^3%s^1:^2",alive , playerTeamName, RANKS[PlayerRank[id]], name) formatex (strText, 191, "^4%s", message) } else if(get_user_flags(id)&ADMIN_MENU) // U jog { formatex (strName, 191, "%s(%s)^4[«Vip»]^3%s^1» ^3%s:^1:^2",alive , playerTeamName, RANKS[PlayerRank[id]], name) formatex (strText, 191, "^4%s", message) } else if(get_user_flags(id)&ADMIN_USER) // Z jog (alapból minden player) { formatex (strName, 191, "%s(%s)[%s] ^1%s:",alive ,playerTeamName, RANKS[PlayerRank[id]], name) formatex (strText, 191, "^1%s", message) } formatex (message, 191, "%s ^1%s", strName, strText) sendTeamMessage (color,isAlive, playerTeam) return PLUGIN_HANDLED } 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 () } public client_putinserver(id) { if(get_cvar_num("sv_rankrendszer")==0) { return } if (get_cvar_num("sv_rankrendszer")==1) { g_bHud[ id ] = true; set_task(HUD_INTERVAL, "setDisplay", id) } else { set_task(0.5, "remTask", id) } } 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 new kills = get_player_stats(id,0) if(kills < 50) { PlayerRank[id] = 0 } else if(kills >= 50 && kills < 100) { PlayerRank[id] = 1 } else if(kills >= 100 && kills < 150) { PlayerRank[id] = 2 } else if(kills >= 150 && kills < 200) { PlayerRank[id] = 3 } else if(kills >= 200 && kills < 250) { PlayerRank[id] = 4 } else if(kills >= 250 && kills < 300) { PlayerRank[id] = 5 } else if(kills >= 300 && kills < 350) { PlayerRank[id] = 6 } else if(kills >= 350 && kills < 400) { PlayerRank[id] = 7 } else if(kills >= 400 && kills < 450) { PlayerRank[id] = 8 } else if(kills >= 450 && kills < 500) { PlayerRank[id] = 9 } else if(kills >= 500 && kills < 550) { PlayerRank[id] = 10 } else if(kills >= 550 && kills < 600) { PlayerRank[id] = 11 } else if(kills >= 600 && kills < 650) { PlayerRank[id] = 12 } else if(kills >= 650 && kills < 700) { PlayerRank[id] = 13 } else if(kills >= 700 && kills < 750) { PlayerRank[id] = 14 } else if(kills >= 750 && kills < 800) { PlayerRank[id] = 15 } else if(kills >= 800 && kills < 850) { PlayerRank[id] = 16 } else if(kills >= 850 && kills < 900) { PlayerRank[id] = 17 } else if(kills >= 900) { PlayerRank[id] = 18 } set_hudmessage(142, 239, 39, 0.01, 0.20, 0, 6.0, 1.0, 0.0, 0.0, -1) ShowSyncHudMsg(id, ShowSyncHudMSG, "", kills, RANKS[PlayerRank[id]]) set_task(HUD_INTERVAL, "setDisplay", id) } 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(); } } } } stock get_player_stats(id, type) { new stats[8] new bodyhits[8] get_user_stats(id, stats, bodyhits); return stats[type]; } stock get_player_name(id) { static szName[32] get_user_name(id,szName,31) return szName } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1038\\ f0\\ fs16 \n\\ par } */
RangÖlés
%s0
%s%d