Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- #include <amxmisc>
- #include <cstrike>
- #include <nvault>
- #define IsPlayer(%1) (1 <= %1 <= g_players)
- #define TOTALLEVELS 12
- get_user_id,ent);
- }
- new const RANK[TOTALLEVELS] =
- {
- 500,
- 1000,
- 2000,
- 2500,
- 3000,
- 4500,
- 6000,
- 8000,
- 9000,
- 9500,
- 10000,
- 15000
- }
- new const XP[TOTALLEVELS] =
- {
- 1000,
- 2000,
- 3000,
- 4500,
- 5000,
- 6500,
- 7000,
- 8000,
- 9000,
- 9500,
- 10000,
- 25000
- }
- new const RANKNAMES[TOTALLEVELS][] =
- {
- "Conscript",
- "Private",
- "Sergeant",
- "Master Sergeant",
- "First Sergeant",
- "Master Cheif",
- "Sergeant Major",
- "Ensign",
- "Commander",
- "Veteran",
- "Proffesional",
- "Master"
- }
- new gXP[33], gLevel[33];
- new points_kill, points_hs;
- new g_vault, g_players;
- public plugin_init()
- {
- register_plugin("Cod Rank", "1.0", "Mostwanted");
- register_event("DeathMsg", "eDeath", "a");
- points_kill = register_cvar("rank_kill", "1");
- points_hs = register_cvar("codrank_hs","1");
- g_vault = nvault_open("CODRANK");
- g_players = get_maxplayers();
- register_clcmd("say /codrank", "ShowHud");
- register_clcmd("say_team /codrank", "ShowHud");
- }
- public plugin_end()
- {
- nvault_close(g_vault);
- }
- public eDeath()
- {
- new killer = read_data(1);
- new victim = read_data(2);
- new gpoints_kill = get_pcvar_num(points_kill);
- new gpoints_hs = get_pcvar_num(points_hs);
- if( IsPlayer(killer) && is_user_connected(killer) )
- {
- if( victim != killer )
- {
- if( cs_get_user_team(victim) != cs_get_user_team(killer) )
- {
- if( is_user_alive(killer) )
- {
- if(!read_data(3))
- {
- gXP[killer] += gpoints_kill
- Print(killer, "You recived %d Points!", gpoints_kill );
- }
- else if(read_data(3))
- {
- gXP[killer] += (gpoints_kill + gpoints_hs);
- Print(killer, "You recived %d Points!^x01 for doing a Headshot!", (gpoints_hs + gpoints_kill ) );
- }
- CheckLevel(killer);
- SaveData(killer);
- }
- }
- }
- }
- return PLUGIN_HANDLED;
- }
- public CheckLevel(id)
- {
- if( gXP[id] >= RANK[gLevel[id]] )
- {
- gLevel[id]++;
- new szName[33];
- get_user_name(id, szName, charsmax(szName));
- Print(0, "Good work to^3 %s^1! He is now [Lvl:^3 %i^1/%i] and has the new title^3 %s^1!", szName, gLevel[id], TOTALLEVELS, RANKNAMES[gLevel[id]-1]);
- Print(0, "^3%s^1 was awarded^3 %i^1 XP for gaining a lvl", szName, XP[gLevel[id]]);
- xp_add_user_xp( id, XP[gLevel[id]-1] );
- }
- }
- public ShowHud(id)
- {
- new iLevelName[100];
- if( gLevel[id] > 0 )
- {
- formatex(iLevelName, charsmax(iLevelName), "%s", RANKNAMES[gLevel[id]]);
- }
- else
- {
- formatex(iLevelName, charsmax(iLevelName), "Unranked");
- }
- new szName[33];
- get_user_name(id, szName, charsmax(szName));
- Print(0, "^3%s^1 have got:^3 %d/%d Points^1! Title:^3 %s^1!", szName, gXP[id], RANK[gLevel[id]], iLevelName);
- }
- public client_connect(id)
- {
- LoadData(id);
- }
- public client_disconnect(id)
- {
- SaveData(id);
- gXP[id] = 0;
- gLevel[id] = 0;
- }
- public SaveData(id)
- {
- new AuthID[35];
- get_user_authid(id,AuthID,34);
- new vaultkey[64],vaultdata[256];
- format(vaultkey,63,"%s-COD", AuthID);
- format(vaultdata,255,"%i#%i#",gXP[id],gLevel[id]);
- nvault_set(g_vault,vaultkey,vaultdata);
- return PLUGIN_CONTINUE;
- }
- LoadData(id)
- {
- new AuthID[35];
- get_user_authid(id,AuthID,34);
- new vaultkey[64],vaultdata[256];
- format(vaultkey,63,"%s-COD",AuthID);
- format(vaultdata,255,"%i#%i#",gXP[id],gLevel[id]);
- nvault_get(g_vault,vaultkey,vaultdata,255);
- replace_all(vaultdata, 255, "#", " ");
- new playerxp[32], playerlevel[32];
- parse(vaultdata, playerxp, 31, playerlevel, 31);
- gXP[id] = str_to_num(playerxp);
- gLevel[id] = str_to_num(playerlevel);
- return PLUGIN_CONTINUE;
- }
- Print(iPlayer, const sMsg[], any:...)
- {
- static i; i = iPlayer ? iPlayer : get_Player();
- if ( !i ) return;
- new sMessage[256];
- new len = formatex(sMessage, sizeof(sMessage) - 1, "^x04Server using Rank mod by Mostwanted^x03 ");
- vformat(sMessage[len], sizeof(sMessage) - 1 - len, sMsg, 3);
- sMessage[192] = '^0';
- static msgid_SayText;
- if ( !msgid_SayText ) msgid_SayText = get_user_msgid("SayText");
- new const team_Names[][] =
- {
- "",
- "TERRORIST",
- "CT",
- "SPECTATOR"
- };
- new sTeam = get_user_team(i);
- team_Info(i, iPlayer, team_Names[0]);
- message_begin(iPlayer ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, msgid_SayText, _, iPlayer);
- write_byte(i);
- write_string(sMessage);
- message_end();
- team_Info(i, iPlayer, team_Names[sTeam]);
- }
- team_Info(receiver, sender, sTeam[])
- {
- static msgid_TeamInfo;
- if ( !msgid_TeamInfo ) msgid_TeamInfo = get_user_msgid("TeamInfo");
- message_begin(sender ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, msgid_TeamInfo, _, sender);
- write_byte(receiver);
- write_string(sTeam);
- message_end();
- }
- get_Player()
- {
- for ( new iPlayer = 1; iPlayer <= get_maxplayers(); iPlayer++ )
- {
- return iPlayer;
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment