#include <amxmodx>
#include <amxmisc>
#include <colorchat>
#include <csx>
#pragma semicolon 1
new gNum;
new cvar_rank, cvar_rankstats, cvar_top, cvar_topnum, cvar_title, cvar_connect;
public plugin_init() {
register_plugin("RRT", "0.3.1", "Ex3cuTioN/Arion");
register_clcmd("say", "hook_say");
register_clcmd("say_team", "hook_say");
register_clcmd("amx_rank", "cmdRank");
register_clcmd("amx_rankstats", "cmdRankstats");
cvar_top = register_cvar("rrt_top","1");
cvar_rank = register_cvar("rrt_rank","1");
cvar_rankstats = register_cvar("rrt_rankstats","1");
cvar_topnum = register_cvar("rrt_topnum", "15");
cvar_title = register_cvar("rrt_title", "Majd..");
cvar_connect = register_cvar("rrt_connect", "1");
}
public hook_say(id) {
static s_Args[192];
read_args(s_Args, sizeof(s_Args) - 1);
remove_quotes(s_Args);
if(equal(s_Args, "/rank", 5) || equal(s_Args,"/rankstats",10)) {
replace(s_Args, sizeof(s_Args) - 1, "/", "");
client_cmd(id, "amx_%s", s_Args);
}
if(equal(s_Args,"/top",4)) {
if(get_pcvar_num(cvar_top) == 0) {
ColorChat(id,GREEN,"[Top]^x01 Lapasasasasa.");
return PLUGIN_HANDLED;
}
replace(s_Args,sizeof(s_Args) - 1,"/top","");
gNum = str_to_num(s_Args);
cmdTop15(id);
}
return PLUGIN_CONTINUE;
}
/*public client_putinserver(id) {
new connect = get_pcvar_num(cvar_connect);
if(connect == 0)
return PLUGIN_HANDLED;
new name[32], izStats[8], izBody[8], iRankPos, iRankMax;
iRankMax = get_statsnum();
iRankPos = get_user_stats(id, izStats, izBody);
get_user_name(id, name, 31);
if(connect == 2)
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]);
else if(connect == 1)
ColorChat(0, GREEN,"[RRT]^x03 %s^x01 se conecteaza, rank %d din %d.", name, iRankPos, iRankMax);
return PLUGIN_CONTINUE;
}*/
public client_disconnect(id){
new connect = get_pcvar_num(cvar_connect);
if(connect == 0) return PLUGIN_HANDLED;
new name[32], izStats[8], izBody[8], iRankPos, iRankMax;
iRankMax = get_statsnum();
iRankPos = get_user_stats(id, izStats, izBody);
get_user_name(id, name, 31);
if(connect == 2)
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]);
else if(connect == 1)
ColorChat(0, GREEN,"[RRT]^x03 %s^x01 a iesit, rank %d din %d.", name, iRankPos, iRankMax);
return PLUGIN_CONTINUE;
}
public cmdRank(id) {
new rrt_rank = get_pcvar_num(cvar_rank);
if(rrt_rank == 0) {
ColorChat(id, GREEN, "[Rank]^x01 Dezactivat.");
return PLUGIN_HANDLED;
}
new izStats[8], izBody[8], iRankPos, iRankMax, name[32], arg[32];
read_argv(1, arg, 31);
iRankMax = get_statsnum();
if(equali(arg, "")) {
iRankPos = get_user_stats(id, izStats, izBody);
get_user_name(id, name, 31);
if(rrt_rank == 2)
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]);
else if(rrt_rank == 1)
ColorChat(id, GREEN, "[Rank]^x03 %s,^x01 esti pe locul %d din %d",name, iRankPos, iRankMax);
return PLUGIN_HANDLED;
}
new player = cmd_target(id, arg, 14);
if(!is_user_connected(player) || !player) {
ColorChat(id,GREEN,"[Rank]^x01 Ez a parancs nem elérhető.");
return PLUGIN_HANDLED;
}
iRankPos = get_user_stats(player, izStats, izBody);
get_user_name(player, name, 31);
if(rrt_rank == 2)
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]);
else if(rrt_rank == 1)
ColorChat(id, GREEN, "[Rank]^x03 %s^x01 este pe locul %d din %d", name, iRankPos, iRankMax);
return PLUGIN_HANDLED;
}
public cmdRankstats(id) {
if(get_pcvar_num(cvar_rankstats) == 0) {
ColorChat(id, GREEN, "[Rankstats]^x01 Lapasasaasa.");
return PLUGIN_HANDLED;
}
static buffer[2368], name[32], len, arg[32], iRankPos, izStats[8], izBody[8];
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>");
read_argv(1, arg, 31);
new iRankMax = get_statsnum();
if(equali(arg, "")) {
iRankPos = get_user_stats(id, izStats, izBody);
get_user_name(id, name, 31);
len += format(buffer[len], 2367-len, "<h2>A te helyezésed %d a %d-ból.</h2>",iRankPos, iRankMax);
}
else {
new player = cmd_target(id, arg, 14);
if(!is_user_connected(player) || !player) {
ColorChat(id, GREEN, "[Rank]^x01 Ez a parancs nem elérhető.");
return PLUGIN_HANDLED;
}
iRankPos = get_user_stats(player, izStats, izBody);
get_user_name(player, name, 31);
len += format(buffer[len], 2367-len, "<h2>%s este pe locul %d din %d</h2>", name, iRankPos, iRankMax);
}
new server_name[64];
get_cvar_string("hostname", server_name, 63);
len += format(buffer[len], 2367-len, "<table border=^"0^" align=^"center^" cellpadding=^"0^" cellspacing=^"1^"><tbody>");
len += format(buffer[len], 2367-len, "<tr><th colspan=^"2^">Statisztika %s", name);
len += format(buffer[len], 2367-len, "<tr id=^"c^"><td>Ölések<td>%d (%d HS)", izStats[0], izStats[2]);
len += format(buffer[len], 2367-len, "<tr><td>Halálok<td>%d", izStats[1]);
len += format(buffer[len], 2367-len, "<tr id=^"c^"><td>Találatok<td>%d", izStats[5]);
len += format(buffer[len], 2367-len, "<tr><td>Lövések<td>%d", izStats[4]);
len += format(buffer[len], 2367-len, "<tr id=^"c^"><td>Sebzés<td>%d", izStats[6]);
len += format(buffer[len], 2367-len, "<tr><td>ACC. (%)<td>%.02f%", accuracy(izStats));
len += format(buffer[len], 2367-len, "<tr id=^"c^"><td>EFF.<td>%.02f%", effec(izStats));
len += format(buffer[len], 2367-len, "<tr><th colspan=^"2^">%s", server_name);
len += format(buffer[len], 2367-len, "</tbody></table></body>");
show_motd(id, buffer, "TOP Játékosok");
return PLUGIN_CONTINUE;
}
Float:accuracy(izStats[8]) {
if(!izStats[4])
return (0.0);
return (100.0 * float(izStats[5]) / float(izStats[4]));
}
Float:effec(izStats[8]) {
if(!izStats[0])
return (0.0);
return (100.0 * float(izStats[0]) / float(izStats[0] + izStats[1]));
}
public cmdTop15(id) {
new iMax = get_statsnum();
new iNr = get_pcvar_num(cvar_topnum);
if(iNr != 10 && iNr != 15)
return PLUGIN_HANDLED;
new start;
if(gNum > 0 && gNum < 16) {
start = 0;
gNum = iNr;
}
else {
if(gNum > iMax)
gNum = iMax;
else
start = gNum - iNr;
}
new title_data[128];
new title = get_pcvar_string(cvar_title, title_data, 127);
new buffer[2368], name[32], iBody[8], len, iStats[8];
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);
len += format(buffer[len], 2367-len, "<tr><th id=nr>#</th><th>Név<th>Ölések<th>Halálok<th>Fejlövések<th>Skill");
for(new i = start; i < gNum; i++) {
get_user_name(id, name, 31);
get_stats(i, iStats, iBody, name, 31);
new Float:fstats[8];
for (new j = 0; j < 8; j++)
fstats[j] = float(iStats[j]);
while(containi(name, "<") != -1)
replace(name, 31, "<", "<");
while(containi(name, ">") != -1)
replace(name, 31, ">", ">");
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);
}
new server_name[64];
get_cvar_string("hostname", server_name, 63);
len += format(buffer[len], 2367-len, "<tr><th colspan=^"7^" id=nr>%s", server_name);
len += format(buffer[len], 2367-len, "</tbody></table></body>");
show_motd(id, buffer, "TOP");
return PLUGIN_CONTINUE;
}