Kód:
- #include <amxmodx> 
- #include <amxmisc> 
- #include <nvault> 
-   
- #define MAXSZINT 70 
-   
-   
- new PlayerXP[33],PlayerLevel[33],PlayerClass[33] 
- new xp_kill,xp_kes,xp_hs,xp_mentes 
- new g_vault 
-   
- new const CLASSES[MAXSZINT][] = { 
-     
-         "Private", 
-         "Private I", 
-         "Private II", 
-         "Private First Class", 
-         "Private First Class I", 
-         "Private First Class II", 
-         "Specialist", 
-         "Specialist I", 
-         "Specialist II", 
-         "Corporal", 
-         "Corporal I", 
-         "Corporal II", 
-         "Sergeant", 
-         "Sergeant I", 
-         "Sergeant II", 
-         "Staff Sergeant", 
-         "Staff Sergeant I", 
-         "Staff Sergeant II", 
-         "Sergeant First Class", 
-         "Sergeant First Class I", 
-         "Sergeant First Class II", 
-         "Master Sergeant", 
-         "Master Sergeant I", 
-         "Master Sergeant II", 
-         "First Sergeant", 
-         "First Sergeant I", 
-         "First Sergeant II", 
-         "Sergeant Major", 
-         "Sergeant Major I", 
-         "Sergeant Major II", 
-         "Command Sergeant Major", 
-         "Command Sergeant Major I", 
-         "Command Sergeant Major II", 
-         "2nd Lieutenant", 
-         "2nd Lieutenant I", 
-         "2nd Lieutenant II", 
-         "1st Lieutenant", 
-         "1st Lieutenant I", 
-         "1st Lieutenant II", 
-         "Captain", 
-         "Captain I", 
-         "Captain II", 
-         "Major", 
-         "Major I", 
-         "Major II", 
-         "Lieutenant Colonel", 
-         "Lieutenant Colonel I", 
-         "Lieutenant Colonel II", 
-         "Lieutenant Colonel III", 
-         "Colonel", 
-         "Colonel I", 
-         "Colonel II", 
-         "Colonel III", 
-         "Brigadier General", 
-         "Brigadier General I", 
-         "Brigadier General II", 
-         "Brigadier General III", 
-         "Major General", 
-         "Major General I", 
-         "Major General II", 
-         "Major General III", 
-         "Lieutenant General", 
-         "Lieutenant General I", 
-         "Lieutenant General II", 
-         "Lieutenant General III", 
-         "General", 
-         "General I", 
-         "General II", 
-         "General III", 
-         "Commander" 
- } 
-   
-   
- new const LEVELS[] = { 
- 0, 
- 100, 
- 300, 
- 500, 
- 700, 
- 900, 
- 1100, 
- 1300, 
- 1500, 
- 1700, 
- 1900, 
- 2100, 
- 2300, 
- 2500, 
- 2700, 
- 2900, 
- 3100, 
- 3300, 
- 3500, 
- 3700, 
- 3900, 
- 4100, 
- 4300, 
- 4500, 
- 4700, 
- 4900, 
- 5100, 
- 5300, 
- 5500, 
- 5700, 
- 5900, 
- 6100, 
- 6300, 
- 6500, 
- 6700, 
- 6900, 
- 6100, 
- 7300, 
- 7500, 
- 7700, 
- 7900, 
- 8100, 
- 8300, 
- 8500, 
- 8700, 
- 8900, 
- 9100, 
- 9300, 
- 9500, 
- 9700, 
- 9900, 
- 10100, 
- 11300, 
- 11500, 
- 11700, 
- 11900, 
- 12100, 
- 12300, 
- 12500, 
- 12700, 
- 12900, 
- 13100, 
- 13300, 
- 13500, 
- 13700, 
- 13900, 
- 14000, 
-   
-   
- } 
-   
- public plugin_init() 
- { 
-     register_plugin("XP-mod", "1.0", "Bence98007") 
-   
-     register_event("DeathMsg", "eDeath", "a") 
-   
-     xp_mentes = register_cvar("xpmentes","1") 
-   
-     xp_kill=register_cvar("XP_kill", "20") 
-   
-     xp_hs=register_cvar("XP_hs","22") 
-   
-     xp_kes=register_cvar("XP_kes","30") 
-   
-     g_vault = nvault_open("xpmod") 
-   
-     register_clcmd("say /xp", "ShowHud") 
-     register_clcmd("say_team /xp", "ShowHud") 
- } 
-   
- public eDeath() 
- { 
-   
-         new attacker = read_data( 1 ) 
-   
-         new headshot = read_data( 3 ) 
-   
-         if(PlayerClass[attacker] == 0) 
-         return PLUGIN_CONTINUE 
-   
-         new clip, ammo, weapon = get_user_weapon(attacker,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_kes) 
-   
-         
-         while(PlayerXP[attacker] >= LEVELS[PlayerLevel[attacker]]) 
-         {   
-                 client_print(attacker, print_chat, "[XP-Mod] Grat! Szinted: %i Rangod: %s !", PlayerLevel[attacker],CLASSES[PlayerClass[attacker]]) 
-       
-                 PlayerLevel[attacker] += 1 
-         } 
-   
-         ShowHud(attacker) 
-         return PLUGIN_CONTINUE; 
- } 
-   
-   
-   
- public ShowHud(id) 
- { 
-     set_hudmessage(85, 255, 0, 0.01, 0.90, 0, 6.0, 12.0) 
-     show_hudmessage(id, "[Szinted] %i [XP]: %i [Rangod] %s",PlayerLevel[id],PlayerXP[id],CLASSES[PlayerClass[id]]) 
- } 
-   
-   
-   
- public client_connect(id) 
- { 
-     if(get_pcvar_num(xp_mentes) == 1) 
-     { 
-         LoadData(id) 
-     } 
- } 
-   
- public client_disconnect(id) 
- { 
-      if(get_pcvar_num(xp_mentes) == 1) 
-      { 
-           SaveData(id) 
-      } 
- } 
-   
-   
- public SaveData(id) 
- { 
-     new name[32] 
-     get_user_name(id, name, 31) 
-   
-     new vaultkey[64],vaultdata[256] 
-     
-     format(vaultkey,63,"%sXPmod", name) 
-     
-     format(vaultdata,255,"%i#%i#",PlayerXP[id],PlayerLevel[id]) 
-   
-     
-   
-     nvault_set(g_vault,vaultkey,vaultdata) 
-     return PLUGIN_CONTINUE 
- } 
-   
-   
- public LoadData(id) 
- { 
-     new name[32] 
-     get_user_name(id, name, 31) 
-     new vaultkey[64],vaultdata[256] 
-     
-     format(vaultkey,63,"%sXPmod", name) 
-     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 
- }   
-