Advertisement
Guest User

Untitled

a guest
Oct 3rd, 2017
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 4.89 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <cstrike>
  4. #include <nvault>
  5.  
  6. #define IsPlayer(%1)  (1 <= %1 <= g_players)
  7. #define TOTALLEVELS 12
  8.  
  9.  
  10. get_user_id,ent);
  11. }
  12.  
  13.  
  14. new const RANK[TOTALLEVELS] =
  15. {
  16.  500,
  17.  1000,
  18.  2000,
  19.  2500,
  20.  3000,
  21.  4500,
  22.  6000,
  23.  8000,
  24.  9000,
  25.  9500,
  26.  10000,
  27.  15000
  28. }
  29.  
  30. new const XP[TOTALLEVELS] =
  31. {
  32.  1000,
  33.  2000,
  34.  3000,
  35.  4500,
  36.  5000,
  37.  6500,
  38.  7000,
  39.  8000,
  40.  9000,
  41.  9500,
  42.  10000,
  43.  25000
  44. }
  45.  
  46. new const RANKNAMES[TOTALLEVELS][] =
  47. {
  48.  "Conscript",
  49.  "Private",
  50.  "Sergeant",
  51.  "Master Sergeant",
  52.  "First Sergeant",
  53.  "Master Cheif",
  54.  "Sergeant Major",
  55.  "Ensign",
  56.  "Commander",
  57.  "Veteran",
  58.  "Proffesional",
  59.  "Master"
  60. }
  61.  
  62. new gXP[33], gLevel[33];
  63. new points_kill, points_hs;
  64. new g_vault, g_players;
  65.  
  66. public plugin_init()
  67. {
  68.     register_plugin("Cod Rank", "1.0", "Mostwanted");
  69.  
  70.     register_event("DeathMsg", "eDeath", "a");
  71.  
  72.     points_kill = register_cvar("rank_kill", "1");
  73.     points_hs = register_cvar("codrank_hs","1");
  74.     g_vault = nvault_open("CODRANK");
  75.     g_players = get_maxplayers();
  76.    
  77.     register_clcmd("say /codrank", "ShowHud");
  78.     register_clcmd("say_team /codrank", "ShowHud");
  79. }
  80.  
  81. public plugin_end()
  82. {
  83.     nvault_close(g_vault);
  84. }
  85.  
  86. public eDeath()
  87. {
  88.     new killer = read_data(1);
  89.     new victim = read_data(2);
  90.     new gpoints_kill = get_pcvar_num(points_kill);
  91.     new gpoints_hs = get_pcvar_num(points_hs);
  92.  
  93.     if( IsPlayer(killer) && is_user_connected(killer) )
  94.     {
  95.         if( victim != killer )
  96.         {
  97.             if( cs_get_user_team(victim) != cs_get_user_team(killer) )
  98.             {
  99.                 if( is_user_alive(killer) )
  100.                 {                  
  101.                     if(!read_data(3))
  102.                     {
  103.                         gXP[killer] += gpoints_kill
  104.                         Print(killer, "You recived %d Points!", gpoints_kill );
  105.                     }
  106.                     else if(read_data(3))
  107.                     {
  108.                         gXP[killer] += (gpoints_kill + gpoints_hs);
  109.                         Print(killer, "You recived %d Points!^x01 for doing a Headshot!", (gpoints_hs + gpoints_kill ) );
  110.                     }
  111.    
  112.                     CheckLevel(killer);
  113.                     SaveData(killer);
  114.                 }
  115.             }
  116.         }
  117.     }
  118.    
  119.     return PLUGIN_HANDLED;
  120. }
  121.  
  122. public CheckLevel(id)
  123. {
  124.     if( gXP[id] >= RANK[gLevel[id]] )
  125.     {
  126.         gLevel[id]++;
  127.         new szName[33];
  128.         get_user_name(id, szName, charsmax(szName));
  129.         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]);
  130.         Print(0, "^3%s^1 was awarded^3 %i^1 XP for gaining a lvl", szName, XP[gLevel[id]]);
  131.         xp_add_user_xp( id, XP[gLevel[id]-1] );
  132.     }
  133. }
  134.  
  135. public ShowHud(id)
  136. {
  137.     new iLevelName[100];
  138.     if( gLevel[id] > 0 )
  139.     {
  140.         formatex(iLevelName, charsmax(iLevelName), "%s", RANKNAMES[gLevel[id]]);
  141.     }
  142.     else
  143.     {
  144.         formatex(iLevelName, charsmax(iLevelName), "Unranked");
  145.     }
  146.    
  147.     new szName[33];
  148.     get_user_name(id, szName, charsmax(szName));
  149.     Print(0, "^3%s^1 have got:^3 %d/%d Points^1! Title:^3 %s^1!", szName, gXP[id], RANK[gLevel[id]], iLevelName);
  150. }
  151.  
  152. public client_connect(id)
  153. {
  154.     LoadData(id);
  155. }
  156. public client_disconnect(id)
  157. {
  158.     SaveData(id);
  159.     gXP[id] = 0;
  160.     gLevel[id] = 0;
  161. }
  162. public SaveData(id)
  163. {
  164.     new AuthID[35];
  165.     get_user_authid(id,AuthID,34);
  166.  
  167.     new vaultkey[64],vaultdata[256];
  168.     format(vaultkey,63,"%s-COD", AuthID);
  169.     format(vaultdata,255,"%i#%i#",gXP[id],gLevel[id]);
  170.     nvault_set(g_vault,vaultkey,vaultdata);
  171.     return PLUGIN_CONTINUE;
  172. }
  173. LoadData(id)
  174. {
  175.     new AuthID[35];
  176.     get_user_authid(id,AuthID,34);
  177.  
  178.     new vaultkey[64],vaultdata[256];
  179.     format(vaultkey,63,"%s-COD",AuthID);
  180.     format(vaultdata,255,"%i#%i#",gXP[id],gLevel[id]);
  181.     nvault_get(g_vault,vaultkey,vaultdata,255);
  182.  
  183.     replace_all(vaultdata, 255, "#", " ");
  184.  
  185.     new playerxp[32], playerlevel[32];
  186.  
  187.     parse(vaultdata, playerxp, 31, playerlevel, 31);
  188.  
  189.     gXP[id] = str_to_num(playerxp);
  190.     gLevel[id] = str_to_num(playerlevel);
  191.  
  192.     return PLUGIN_CONTINUE;
  193.  
  194. }
  195. Print(iPlayer, const sMsg[], any:...)
  196. {
  197.     static i; i = iPlayer ? iPlayer : get_Player();
  198.     if ( !i ) return;
  199.    
  200.     new sMessage[256];
  201.     new len = formatex(sMessage, sizeof(sMessage) - 1, "^x04Server using Rank mod by Mostwanted^x03 ");
  202.     vformat(sMessage[len], sizeof(sMessage) - 1 - len, sMsg, 3);
  203.     sMessage[192] = '^0';
  204.        
  205.     static msgid_SayText;
  206.     if ( !msgid_SayText ) msgid_SayText = get_user_msgid("SayText");
  207.    
  208.     new const team_Names[][] =
  209.     {
  210.         "",
  211.         "TERRORIST",
  212.         "CT",
  213.         "SPECTATOR"
  214.     };
  215.        
  216.     new sTeam = get_user_team(i);
  217.    
  218.     team_Info(i, iPlayer, team_Names[0]);
  219.        
  220.     message_begin(iPlayer ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, msgid_SayText, _, iPlayer);
  221.     write_byte(i);
  222.     write_string(sMessage);
  223.     message_end();
  224.        
  225.     team_Info(i, iPlayer, team_Names[sTeam]);
  226. }
  227. team_Info(receiver, sender, sTeam[])
  228. {
  229.     static msgid_TeamInfo;
  230.     if ( !msgid_TeamInfo ) msgid_TeamInfo = get_user_msgid("TeamInfo");
  231.    
  232.     message_begin(sender ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, msgid_TeamInfo, _, sender);
  233.     write_byte(receiver);
  234.     write_string(sTeam);
  235.     message_end();
  236. }
  237. get_Player()
  238. {
  239.     for ( new iPlayer = 1; iPlayer <= get_maxplayers(); iPlayer++ )
  240.     {
  241.         return iPlayer;
  242.     }
  243.    
  244.     return 0;
  245. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement