[HELP] Rank System
This plugin is private so i deleted only a little party of it! SORRY :down:
I need to add to my rank mod, so admins can give and remove rank points.
PHP Code:
#include < amxmodx >
#include < amxmodx >
#include < amxmisc >
#include < cstrike >
#include < hamsandwich >
#include < fun >
#include < fakemeta >
#include < xs >
#include < colorchat >
#include <nvault>
#define IsPlayer(%1) (1 <= %1 <= g_players)
#define TOTALLEVELS 12
#define prefix "^x04[FB] Prisoner Rank:^x03"
new gXP[33], gLevel[33];
new points_kill, points_hs;
new g_vault, g_players;
public plugin_init()
{
register_plugin("Rank", "1.0", "fLaXXiE");
register_event("DeathMsg", "eDeath", "a");
points_kill = register_cvar("hnsrank_kill", "1");
points_hs = register_cvar("hnsrank_hs","2");
g_vault = nvault_open("HNSRANK");
g_players = get_maxplayers();
register_clcmd("say /rank", "ShowHud");
register_clcmd("say_team /rank", "ShowHud");
}
public plugin_end()
{
nvault_close(g_vault);
}
public eDeath(id)
{
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 ( cs_get_user_team ( killer ) != CS_TEAM_CT )
{
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
ColorChat ( killer, GREY, "%s You gained^x04 %d^x03 Points!", prefix, gpoints_kill );
}
else if(read_data(3))
{
gXP[killer] += (gpoints_kill + 2);
ColorChat ( killer, GREY, "%s You gained^x04 3^x03 Points! (^x04Headshot^x03)", prefix, (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));
ColorChat ( 0, GREY, "%s Congratulations to^x04 %s^x03! He now has title:^4 %s", prefix, szName, RANKNAMES[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), "Noob");
}
new szName[33];
get_user_name(id, szName, charsmax(szName));
ColorChat ( 0, GREY, "%s %s has title:^x04 %s^x03 (^4 %d/%d^x03 )", prefix, szName, iLevelName, gXP[id], RANK[gLevel[id]]);
}
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-FG", 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-FG",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, "");
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;
}
|