Kod:
 #include <amxmodx>
#include <amxmisc>
#include <nvault>
#define MAXCLASSES 5
new const CLASSES[MAXCLASSES][] = {
    "None",
    "Dog",
    "Cat",
    "Horse",
    "Cow"
}
new const LEVELS[6] = {
    100, 
    200, 
    400, 
    800,
    1600,
    3200
}
new PlayerXP[33],PlayerLevel[33],PlayerClass[33]
new XP_Kill,XP_Knife,XP_Hs,SaveXP,g_vault
public plugin_init()
{
    register_plugin("XpMod", "1.0", "Fxfighter")
 
    register_event("DeathMsg", "eDeath", "a") 
 
    SaveXP = register_cvar("SaveXP","1")
    XP_Kill=register_cvar("XP_per_kill", "20")
    XP_Hs=register_cvar("XP_hs_bonus","20")
    XP_Knife=register_cvar("XP_knife_bonus","20")
    g_vault = nvault_open("animod")
 
    register_clcmd("say /class", "ChangeClass")
    register_clcmd("say_team /class", "ChangeClass")
    register_clcmd("say /xp", "ShowHud")
    register_clcmd("say_team /xp", "ShowHud")
}
public eDeath(  ) 
{
    new iVictim = read_data( 2 )
    new headshot = read_data( 3 )
    new clip, ammo, weapon = get_user_weapon(id,clip,ammo);
 
    PlayerXP[attacker] += get_pcvar_num(XP_Kill)
 
    if(headshot)
    PlayerXP[attacker] += get_pcvar_num(XP_Hs)
 
    if(weapon == CSW_KNIFE)
    PlayerXP[attacker] += get_pcvar_num(XP_Knife)
 
 
    while(PlayerXP[attacker] >= LEVELS[PlayerLevel[attacker]])
    {
      client_print(attacker, print_chat, "[Animal Mod] Congratulations! You are a level %i %s!",
      PlayerLevel[attacker] += 1
    }
    ShowHud(attacker)
    SaveData(attacker)
}
public ShowHud(id)
{
    set_hudmessage(255, 0, 0, 0.75, 0.01, 0, 6.0, 15.0)
    show_hudmessage(id, "Level: %i^nXP: %i^nClass: %s",PlayerLevel[id],PlayerXP[id],CLASSES[PlayerClass[id]])
}
public ChangeClass(id)
{
    new menu = menu_create("Class Menu" , "Class_Handle");
    menu_additem(menu ,"Dog", "1" , 0);
    menu_additem(menu ,"Cat", "2" , 0);
    menu_additem(menu ,"Horse", "3" , 0);
    menu_additem(menu ,"Cow", "4" , 0);
 
    menu_setprop(menu , MPROP_EXIT , MEXIT_ALL);
 
    menu_display(id , menu , 0);
 
    return PLUGIN_CONTINUE;
}
public Class_Handle(id , menu , item) 
{
    if(item == MENU_EXIT) 
    {
 
        menu_destroy(menu);
 
    }
 
    new szCommand[6] , szName[64];
    new access , callback;
 
    menu_item_getinfo(menu , item , access , szCommand , 5 , szName , 63 , callback);
 
    new i = str_to_num(szCommand)
    if(PlayerClass[id] != i)
    {
        PlayerClass[id] = i
        client_print(id,print_chat,"You are now a %s",CLASSES[i])
    }
    else
    {
        client_print(id,print_chat,"You are alredy a %s",CLASSES[i])
    }
 
    menu_destroy(menu);
    return PLUGIN_CONTINUE
}
public client_connect(id)
{
    if(get_pcvar_num(SaveXP) == 1)
    {
 
        LoadData(id)
    }
}
public client_disconnect(id)
{
    if(get_pcvar_num(SaveXP) == 1)
    {
 
        SaveData(id)
    }
    PlayerXP[id] = 0
    PlayerLevel[id] = 0
    PlayerClass[id] = 0
}
public SaveData(id)
{
    new AuthID[35]
    get_user_authid(id,AuthID,34)
 
    new vaultkey[64],vaultdata[256]
    format(vaultkey,63,"%s-Mod",AuthID)
    format(vaultdata,255,"%i#%i#",PlayerXP[id],PlayerLevel[id])
    nvault_set(g_vault,vaultkey,vaultdata)
    return PLUGIN_CONTINUE
}
public LoadData(id)
{
    new AuthID[35]
    get_user_authid(id,AuthID,34)
 
    new vaultkey[64],vaultdata[256]
    format(vaultkey,63,"%s-Mod",AuthID)
    format(vaultdata,255,"%i#%i#",PlayerXP[id],PlayerLevel[id])
    nvault_get(g_vault,vaultkey,vaultdata,255)
 
    replace_all(vaultdata, 255, "#", " ")
 
    new playerxp[32], playerlevel[32]
 
    parse(vaultdata, playerxp, 31, playerlevel, 31)
 
    PlayerXP[id] = str_to_num(playerxp)
    PlayerLevel[id] = str_to_num(playerlevel)
 
    return PLUGIN_CONTINUE
}   Kod:
 #include <amxmodx>
#include <nvault>
#include <fakemeta>
#define g_exp(%1) get_pcvar_num(xpm_start) + (seviye[%1] * get_pcvar_num(xpm_inc))
new 
xpkayit,
seviye[33],
exp[33],
xpm_kill,
xpm_knife,
xpm_headshot,
xpm_maxlevel,
hud_seviye,
hud_exp,
hud_hp,
xpm_inc,
xpm_start,
xpm_hud_style,
g_iMsgSayText
public plugin_init() {
    register_plugin("Xp-Mod v1.0", "1.0", "nefret007")
    xpm_start = register_cvar("xpm_start", "250");
    xpm_inc = register_cvar("xpm_inc", "75");
    xpm_kill = register_cvar("xpm_kill","25")
    xpm_knife = register_cvar("xpm_knife","40")
    xpm_headshot = register_cvar("xpm_headshot","50")
    xpm_maxlevel = register_cvar("xpm_maxlevel","50")
    xpm_hud_style = register_cvar("xpm_hud_style","1")
    xpkayit = nvault_open("xpmodkayit")
    register_event("DeathMsg", "event_death", "a");
    hud_seviye = CreateHudSyncObj();
    hud_exp = CreateHudSyncObj();
    hud_hp = CreateHudSyncObj();
    g_iMsgSayText     = get_user_msgid("SayText") 
}
public plugin_precache() {
    precache_sound("explevel/seviye_atlama.wav")
    precache_sound("fvox/beep.wav")
}
public kaydet(id){
    new name[64],key[72], stats[34];
    get_user_name(id, name, 63);
    formatex(key, 71, "%s-stats", name);
    formatex(stats, 33, "%i %i", seviye[id], exp[id]);
    nvault_set(xpkayit, key, stats);
    
}
public kontrol(id){
    if(exp[id] >= g_exp(id))
    {
        static Float:FOrigin3[3] 
        pev(id, pev_origin, FOrigin3)
        
        ChatColor(id,"!g[CSPLAGUE.COM]!y Tebrikler !!! !t[+1]!y Seviye Yukseldiniz... ")
        console_cmd(id,"spk explevel/seviye_up" )
        seviye[id]++    
        exp[id] = 0
        
        engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, FOrigin3, 0)
        write_byte(TE_IMPLOSION)
        engfunc(EngFunc_WriteCoord, FOrigin3[0])
        engfunc(EngFunc_WriteCoord, FOrigin3[1])
        engfunc(EngFunc_WriteCoord, FOrigin3[2])
        write_byte(200)
        write_byte(100)
        write_byte(5)  
        message_end()
    }
    else
    {
        console_cmd(id,"spk fvox/beep")    
    }
}
public yukle(id){
    new name[64],key[72], stats[34], stat[3][12];
    get_user_name(id, name, 63);
    formatex(key, 71, "%s-stats", name);
    nvault_get(xpkayit, key, stats, 33);
    parse(stats, stat[0], 11, stat[1], 11);
    seviye[id] = str_to_num(stat[0]);
    exp[id] = str_to_num(stat[1]);    
}
public client_authorized(id){
    seviye[id]=0
    exp[id] = 0
    set_task(1.0, "show_explevel", id, _, _, "b")
    yukle(id)
}
public client_disconnect(id){
    kaydet(id)
}
public event_death()
{
    new attacker = read_data(1);
    new victim = read_data(2);
    if(attacker == victim)
    {
        return PLUGIN_HANDLED;
    }
    if(seviye[attacker] >= get_pcvar_num(xpm_maxlevel)){
        ChatColor(attacker,"!g[CSPLAGUE.COM]!y Maximum seviyeye ulastiniz...")
        return PLUGIN_HANDLED;
    }
    exp[attacker] += get_pcvar_num(xpm_kill)
    if(get_pdata_int(victim, 75) == HIT_HEAD){
        exp[attacker] += get_pcvar_num(xpm_headshot)
    }
    if(get_user_weapon(attacker) == CSW_KNIFE){
        exp[attacker] += get_pcvar_num(xpm_knife)
    }
    kontrol(attacker)
    return PLUGIN_HANDLED;
}
public show_explevel(id)
{
    switch (get_pcvar_num(xpm_hud_style))
    {
        case 0: // exp/level
        {
            set_hudmessage(255, 79, 79, 0.02, 0.23, 1, 0.02, 1.0, 0.01, 0.1, 10);
            ShowSyncHudMsg(id, hud_seviye, "Seviye: [%d/%d]",seviye[id],get_pcvar_num(xpm_maxlevel));    
            set_hudmessage(255, 129, 200, 0.02, 0.26, 1, 0.02, 1.0, 0.01, 0.1, 10);
            ShowSyncHudMsg(id, hud_exp, "Exp: [%i/%i]",exp[id],g_exp(id));    
        }
        case 1: // exp/level/hp
        {
            set_hudmessage(255, 79, 79, 0.02, 0.23, 1, 0.02, 1.0, 0.01, 0.1, 10);
            ShowSyncHudMsg(id, hud_seviye, "Seviye: [%d/%d]",seviye[id],get_pcvar_num(xpm_maxlevel));    
            set_hudmessage(255, 129, 200, 0.02, 0.26, 1, 0.02, 1.0, 0.01, 0.1, 10);
            ShowSyncHudMsg(id, hud_exp, "Exp: [%i/%i]",exp[id],g_exp(id));    
            set_hudmessage(179, 0, 0, 0.02, 0.29, 1, 0.02, 1.0, 0.01, 0.1, 10);
            ShowSyncHudMsg(id, hud_hp, "Hp: [%i/100]",get_user_health(id));    
        }
    }
}
stock ChatColor(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, g_iMsgSayText, _, players[i])  
            write_byte(players[i]);
            write_string(msg);
            message_end();
        }
    }
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1055\\ f0\\ fs16 \n\\ par }
*/  Beni Tanıyan Tanır...