laurentiuarion

Rank Rankstats Top

Feb 11th, 2020
100
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <colorchat>
  4. #include <csx>
  5.  
  6. #pragma semicolon 1
  7.  
  8. new gNum;
  9. new cvar_rank, cvar_rankstats, cvar_top, cvar_topnum, cvar_title, cvar_connect;
  10.  
  11. public plugin_init() {
  12.     register_plugin("RRT", "0.3.1", "Ex3cuTioN/Arion");
  13.    
  14.     register_clcmd("say", "hook_say");
  15.     register_clcmd("say_team", "hook_say");
  16.    
  17.     register_clcmd("amx_rank", "cmdRank");
  18.     register_clcmd("amx_rankstats", "cmdRankstats");
  19.    
  20.     cvar_top = register_cvar("rrt_top","1");
  21.     cvar_rank = register_cvar("rrt_rank","1");
  22.     cvar_rankstats = register_cvar("rrt_rankstats","1");
  23.     cvar_topnum = register_cvar("rrt_topnum", "10");
  24.     cvar_title = register_cvar("rrt_title", "Top jucatori");
  25.     cvar_connect = register_cvar("rrt_connect", "1");
  26. }
  27.  
  28. public hook_say(id) {
  29.     static s_Args[192];
  30.    
  31.     read_args(s_Args, sizeof(s_Args) - 1);
  32.     remove_quotes(s_Args);
  33.    
  34.     if(equal(s_Args, "/rank", 5) || equal(s_Args,"/rankstats",10)) {
  35.         replace(s_Args, sizeof(s_Args) - 1, "/", "");
  36.         client_cmd(id, "amx_%s", s_Args);
  37.     }  
  38.    
  39.     if(equal(s_Args,"/top",4)) {
  40.         if(get_pcvar_num(cvar_top) == 0) {
  41.             ColorChat(id,GREEN,"[Top]^x01 Dezactivat.");
  42.             return PLUGIN_HANDLED;
  43.         }
  44.        
  45.         replace(s_Args,sizeof(s_Args) - 1,"/top","");
  46.         gNum = str_to_num(s_Args);
  47.        
  48.         cmdTop15(id);
  49.     }
  50.    
  51.     return PLUGIN_CONTINUE;
  52. }
  53.  
  54. /*public client_putinserver(id) {
  55.     new connect = get_pcvar_num(cvar_connect);
  56.    
  57.     if(connect == 0)
  58.         return PLUGIN_HANDLED;
  59.    
  60.     new name[32], izStats[8], izBody[8], iRankPos, iRankMax;
  61.  
  62.     iRankMax = get_statsnum();
  63.     iRankPos = get_user_stats(id, izStats, izBody);
  64.    
  65.     get_user_name(id, name, 31);
  66.    
  67.     if(connect == 2)
  68.         ColorChat(0, GREEN,"[RRT]^x03 %s^x01 se conecteaza, rank %d din %d cu %d fraguri si %d decese.", name, iRankPos, iRankMax, izStats[0], izStats[1]);
  69.     else if(connect == 1)
  70.         ColorChat(0, GREEN,"[RRT]^x03 %s^x01 se conecteaza, rank %d din %d.", name, iRankPos, iRankMax);
  71.    
  72.     return PLUGIN_CONTINUE;
  73. }*/
  74.  
  75. public client_disconnect(id){
  76.     new connect = get_pcvar_num(cvar_connect);
  77.    
  78.     if(connect == 0) return PLUGIN_HANDLED;
  79.    
  80.     new name[32], izStats[8], izBody[8], iRankPos, iRankMax;
  81.  
  82.     iRankMax = get_statsnum();
  83.     iRankPos = get_user_stats(id, izStats, izBody);
  84.     get_user_name(id, name, 31);
  85.    
  86.     if(connect == 2)
  87.         ColorChat(0, GREEN,"[RRT]^x03 %s^x01 a iesit, rank %d din %d cu %d fraguri si %d decese.", name, iRankPos, iRankMax, izStats[0], izStats[1]);
  88.     else if(connect == 1)
  89.         ColorChat(0, GREEN,"[RRT]^x03 %s^x01 a iesit, rank %d din %d.", name, iRankPos, iRankMax);
  90.        
  91.     return PLUGIN_CONTINUE;
  92. }
  93.  
  94. public cmdRank(id) {
  95.     new rrt_rank = get_pcvar_num(cvar_rank);
  96.    
  97.     if(rrt_rank == 0) {
  98.         ColorChat(id, GREEN, "[Rank]^x01 Dezactivat.");
  99.         return PLUGIN_HANDLED;
  100.     }
  101.    
  102.     new izStats[8], izBody[8], iRankPos, iRankMax, name[32], arg[32];
  103.    
  104.     read_argv(1, arg, 31);
  105.     iRankMax = get_statsnum();
  106.    
  107.     if(equali(arg, "")) {
  108.         iRankPos = get_user_stats(id, izStats, izBody);
  109.        
  110.         get_user_name(id, name, 31);
  111.        
  112.         if(rrt_rank == 2)
  113.             ColorChat(id, GREEN, "[Rank]^x03 %s,^x01 esti pe locul^x03 %d^x01 din^x03 %d^x01 cu^x03 %d^x01 fraguri si^x03 %d^x01 decese.",name,iRankPos,iRankMax,izStats[0],izStats[1]);
  114.         else if(rrt_rank == 1)
  115.             ColorChat(id, GREEN, "[Rank]^x03 %s,^x01 esti pe locul %d din %d",name, iRankPos, iRankMax);
  116.        
  117.         return PLUGIN_HANDLED;
  118.     }
  119.     new player = cmd_target(id, arg, 14);
  120.    
  121.     if(!is_user_connected(player) || !player) {
  122.         ColorChat(id,GREEN,"[Rank]^x01 Acest jucator nu este conectat.");
  123.         return PLUGIN_HANDLED;
  124.     }
  125.  
  126.     iRankPos = get_user_stats(player, izStats, izBody);
  127.     get_user_name(player, name, 31);
  128.    
  129.     if(rrt_rank == 2)
  130.         ColorChat(id, GREEN, "[Rank]^x03 %s^x01 este pe locul^x03 %d^x01 din^x03 %d^x01 cu^x03 %d^x01 fraguri si^x03 %d^x01 decese.", name, iRankPos, iRankMax, izStats[0], izStats[1]);
  131.     else if(rrt_rank == 1)
  132.         ColorChat(id, GREEN, "[Rank]^x03 %s^x01 este pe locul %d din %d", name, iRankPos, iRankMax);
  133.    
  134.     return PLUGIN_HANDLED;
  135. }
  136.  
  137. public cmdRankstats(id) {
  138.     if(get_pcvar_num(cvar_rankstats) == 0) {
  139.         ColorChat(id, GREEN, "[Rankstats]^x01 Dezactivat.");
  140.         return PLUGIN_HANDLED;
  141.     }
  142.    
  143.     static buffer[2368], name[32], len, arg[32], iRankPos, izStats[8], izBody[8];
  144.    
  145.     len = format(buffer[len], 2367-len, "<style>body{background:#112233;font-family:Arial}th{background:#2E2E2E;color:#FFF;padding:5px 2px;text-align:center}td{padding:5px 2px}table{width:50%%;background:#EEEECC;font-size:12px;}h2{color:#FFF;font-family:Verdana;text-align:center}#c{background:#E2E2BC}</style>");
  146.    
  147.     read_argv(1, arg, 31);
  148.     new iRankMax = get_statsnum();
  149.    
  150.     if(equali(arg, "")) {
  151.         iRankPos = get_user_stats(id, izStats, izBody);
  152.         get_user_name(id, name, 31);
  153.         len += format(buffer[len], 2367-len, "<h2>Esti pe locul %d din %d</h2>",iRankPos, iRankMax);
  154.     }
  155.     else {
  156.         new player = cmd_target(id, arg, 14);
  157.    
  158.         if(!is_user_connected(player) || !player) {
  159.             ColorChat(id, GREEN, "[Rank]^x01 Acest jucator nu este conectat.");
  160.             return PLUGIN_HANDLED;
  161.         }
  162.        
  163.         iRankPos = get_user_stats(player, izStats, izBody);
  164.         get_user_name(player, name, 31);
  165.        
  166.         len += format(buffer[len], 2367-len, "<h2>%s este pe locul %d din %d</h2>", name, iRankPos, iRankMax);
  167.     }
  168.    
  169.     new server_name[64];
  170.     get_cvar_string("hostname", server_name, 63);
  171.    
  172.     len += format(buffer[len], 2367-len, "<table border=^"0^" align=^"center^" cellpadding=^"0^" cellspacing=^"1^"><tbody>");
  173.    
  174.     len += format(buffer[len], 2367-len, "<tr><th colspan=^"2^">Statistici %s", name);
  175.    
  176.     len += format(buffer[len], 2367-len, "<tr id=^"c^"><td>Ucideri<td>%d (cu %d HS)", izStats[0], izStats[2]);
  177.     len += format(buffer[len], 2367-len, "<tr><td>Deaths<td>%d", izStats[1]);
  178.     len += format(buffer[len], 2367-len, "<tr id=^"c^"><td>Hits<td>%d", izStats[5]);
  179.     len += format(buffer[len], 2367-len, "<tr><td>Shots<td>%d", izStats[4]);
  180.     len += format(buffer[len], 2367-len, "<tr id=^"c^"><td>Damage(HP)<td>%d", izStats[6]);
  181.     len += format(buffer[len], 2367-len, "<tr><td>ACC. (%)<td>%.02f%", accuracy(izStats));
  182.     len += format(buffer[len], 2367-len, "<tr id=^"c^"><td>EFF.<td>%.02f%", effec(izStats));
  183.     len += format(buffer[len], 2367-len, "<tr><th colspan=^"2^">%s", server_name);
  184.    
  185.     len += format(buffer[len], 2367-len, "</tbody></table></body>");
  186.     show_motd(id, buffer, "Top jucatori");
  187.    
  188.     return PLUGIN_CONTINUE;
  189. }
  190.  
  191. Float:accuracy(izStats[8]) {
  192.     if(!izStats[4])
  193.         return (0.0);
  194.    
  195.     return (100.0 * float(izStats[5]) / float(izStats[4]));
  196. }
  197.  
  198. Float:effec(izStats[8]) {
  199.     if(!izStats[0])
  200.         return (0.0);
  201.    
  202.     return (100.0 * float(izStats[0]) / float(izStats[0] + izStats[1]));
  203. }
  204.  
  205. public cmdTop15(id) {
  206.     new iMax = get_statsnum();
  207.     new iNr = get_pcvar_num(cvar_topnum);
  208.    
  209.     if(iNr != 10 && iNr != 15)
  210.         return PLUGIN_HANDLED;
  211.            
  212.     new start;
  213.        
  214.     if(gNum > 0 && gNum < 16) {
  215.         start = 0;
  216.         gNum = iNr;
  217.     }
  218.     else {
  219.         if(gNum > iMax)
  220.             gNum = iMax;
  221.         else   
  222.             start = gNum - iNr;
  223.     }
  224.            
  225.     new title_data[128];
  226.     new title = get_pcvar_string(cvar_title, title_data, 127);
  227.        
  228.     new buffer[2368], name[32], iBody[8], len, iStats[8];
  229.        
  230.     len = format(buffer[len], 2367-len, "<style>body{background:#112233;font-family:Arial}th{background:#2E2E2E;color:#FFF;padding:5px 2px;text-align:left}td{padding:5px 2px}table{width:100%%;background:#EEEECC;font-size:12px;}h2{color:#FFF;font-family:Verdana;text-align:center}#nr{text-align:center}#c{background:#E2E2BC}</style><h2>%s</h2><table border=^"0^" align=^"center^" cellpadding=^"0^" cellspacing=^"1^"><tbody>", title);
  231.     len += format(buffer[len], 2367-len, "<tr><th id=nr>#</th><th>Name<th>Kills<th>Deaths<th>HS<th>Skill");
  232.        
  233.     for(new i = start; i < gNum; i++) {
  234.         get_user_name(id, name, 31);
  235.         get_stats(i, iStats, iBody, name, 31);
  236.            
  237.         new Float:fstats[8];
  238.         for (new j = 0; j < 8; j++)
  239.             fstats[j] = float(iStats[j]);
  240.            
  241.         while(containi(name, "<") != -1)
  242.             replace(name, 31, "<", "&lt;");
  243.         while(containi(name, ">") != -1)
  244.             replace(name, 31, ">", "&gt;");
  245.            
  246.         len += format(buffer[len], 2367-len, "<tr %s><td id=nr>%d<td>%s<td>%d<td>%d<td>%d<td>%.02f",((i%2)==0) ? "" : " id=c", (i+1), name, iStats[0], iStats[1], iStats[2], ((fstats[0]-fstats[1])+fstats[2])/2);
  247.     }
  248.        
  249.     new server_name[64];
  250.     get_cvar_string("hostname", server_name, 63);
  251.     len += format(buffer[len], 2367-len, "<tr><th colspan=^"7^" id=nr>%s", server_name);
  252.        
  253.     len += format(buffer[len], 2367-len, "</tbody></table></body>");
  254.     show_motd(id, buffer, "Top jucatori");
  255.    
  256.     return PLUGIN_CONTINUE;
  257. }
RAW Paste Data