AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   [HELP] Rank System (https://forums.alliedmods.net/showthread.php?t=156978)

fLaXXiE 05-14-2011 15:18

[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_killpoints_hs;
new 
g_vaultg_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 
killerGREY"%s You gained^x04 %d^x03 Points!"prefixgpoints_kill );
                        }
                        else if(
read_data(3))
                        {
                            
gXP[killer] += (gpoints_kill 2);
                            
ColorChat killerGREY"%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(idszNamecharsmax(szName));
        
ColorChat 0GREY"%s Congratulations to^x04 %s^x03! He now has title:^4 %s"prefixszNameRANKNAMES[gLevel[id]-1]);
    }
}

public 
ShowHud(id)
{
    new 
iLevelName[100];
    if( 
gLevel[id] > )
    {
        
formatex(iLevelNamecharsmax(iLevelName), "%s"RANKNAMES[gLevel[id]]);
    }
    else 
    {
        
formatex(iLevelNamecharsmax(iLevelName), "Noob");
    }
    
    new 
szName[33];
    
get_user_name(idszNamecharsmax(szName));
    
ColorChat 0GREY"%s %s has title:^x04 %s^x03 (^4 %d/%d^x03 )"prefixszNameiLevelNamegXP[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(vaultdata255"#"" ");

    new 
playerxp[32], playerlevel[32];

    
parse(vaultdataplayerxp31playerlevel31);

    
gXP[id] = str_to_num(playerxp);
    
gLevel[id] = str_to_num(playerlevel);

    return 
PLUGIN_CONTINUE;

}

Print(
iPlayer, const sMsg[], any:...)
{
    static 
iiPlayer iPlayer get_Player();
    if ( !
) return;
    
    new 
sMessage[256];
    new 
len formatex(sMessagesizeof(sMessage) - 1"");
    
vformat(sMessage[len], sizeof(sMessage) - lensMsg3);
    
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(iiPlayerteam_Names[0]);
        
    
message_begin(iPlayer MSG_ONE_UNRELIABLE MSG_BROADCASTmsgid_SayText_iPlayer);
    
write_byte(i);
    
write_string(sMessage);
    
message_end();
        
    
team_Info(iiPlayerteam_Names[sTeam]);
}

team_Info(receiversendersTeam[])
{
    static 
msgid_TeamInfo;
    if ( !
msgid_TeamInfo msgid_TeamInfo get_user_msgid("TeamInfo");
    
    
message_begin(sender MSG_ONE_UNRELIABLE MSG_BROADCASTmsgid_TeamInfo_sender);
    
write_byte(receiver);
    
write_string(sTeam);
    
message_end();
}

get_Player()
{
    for ( new 
iPlayer 1iPlayer <= get_maxplayers(); iPlayer++ )
    {
        return 
iPlayer;
    }
    
    return 
0;



fysiks 05-14-2011 15:24

Re: [HELP] Rank System
 
What do you need help with?

fLaXXiE 05-14-2011 15:27

Re: [HELP] Rank System
 
So that admins can write in chat "!rank <name> <amount of xp to give>
or !rank <name> <-amount of xp to remove>

So first one example: !rank flaxxie 100
and second one: !rank flaxxie -100

fysiks 05-15-2011 01:18

Re: [HELP] Rank System
 
See this thread for examples on how to do it (ignore post #2).

Erox902 05-15-2011 09:45

Re: [HELP] Rank System
 
didn't really read but you should delete include < amxmodx > since you have it included twice :)


All times are GMT -4. The time now is 04:23.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.