[Cerere] Top 15

#1
Numele Pluginului :Top 15
Modul:Classic
Descriere:Vreau un plugin cu Top 15
Imagine
Imagine
1. In viata exista o singura regula: sa nu ai incredere in nimeni!
2. Daca nu poti sta langa o persoana la rau,nu ai dreptul sa stai langa ea la bine!
3. Iubirea este viata,daca nu iubesti nu poti sa zici ca traiesti!
4. Nu vinde ieftin o prietenie veche,deoarece vei plati scump pentru una noua!
5. Ai fi puternic inseamna a face pe cineva cu inima franta sa zambeasca chiar si atunci cand sufletul tau este ranit!

Re: [Cerere] Top 15

#2

Cod: Selectaţi tot

#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", "10");
	cvar_title = register_cvar("rrt_title", "Top jucatori");
	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 Dezactivat.");
			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 Acest jucator nu este conectat.");
		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 Dezactivat.");
		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>Esti pe locul %d din %d</h2>",iRankPos, iRankMax);
	}
	else {
		new player = cmd_target(id, arg, 14);
	
		if(!is_user_connected(player) || !player) {
			ColorChat(id, GREEN, "[Rank]^x01 Acest jucator nu este conectat.");
			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^">Statistici %s", name);
	
	len += format(buffer[len], 2367-len, "<tr id=^"c^"><td>Ucideri<td>%d (cu %d HS)", izStats[0], izStats[2]);
	len += format(buffer[len], 2367-len, "<tr><td>Deaths<td>%d", izStats[1]);
	len += format(buffer[len], 2367-len, "<tr id=^"c^"><td>Hits<td>%d", izStats[5]);
	len += format(buffer[len], 2367-len, "<tr><td>Shots<td>%d", izStats[4]);
	len += format(buffer[len], 2367-len, "<tr id=^"c^"><td>Damage(HP)<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 jucatori");
	
	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>Name<th>Kills<th>Deaths<th>HS<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 jucatori");
	
	return PLUGIN_CONTINUE;
}
C-VAR-uri
Se adauga in amxx.cfg:
rrt_top 0/1 | Activeaza comanda /topx
rrt_rank 0/1 | 0 -dezactivat | 1 - rank simplu | 2 - rank mai avansat
rrt_rankstats 0/1 | Activeaza comanda /rankstats
rrt_topnum 10/15 | Cate linii se afiseaza in top
rrt_title "Top jucatori | Textul de deasupra topului
rrt_connect 0/1 | Cand se deconecteaza un jucator afiseaza in chat ce rank are. 1 - simplist | 2 - avansat | 0 -dezactivat

Comenzi publice
/rank <nume>
/rankstats <nume>
/topnumar
Imagine
E greu sa nu faci nimic, nu stii niciodata cand termini.


Detinator :Dr.Europacs.Ro :X

Re: [Cerere] Top 15

#3
Ms mult Gaming
Imagine
Imagine
1. In viata exista o singura regula: sa nu ai incredere in nimeni!
2. Daca nu poti sta langa o persoana la rau,nu ai dreptul sa stai langa ea la bine!
3. Iubirea este viata,daca nu iubesti nu poti sa zici ca traiesti!
4. Nu vinde ieftin o prietenie veche,deoarece vei plati scump pentru una noua!
5. Ai fi puternic inseamna a face pe cineva cu inima franta sa zambeasca chiar si atunci cand sufletul tau este ranit!
Încuiat

Înapoi la “Cerere Pluginuri”

Cine este conectat

Utilizatori răsfoind acest forum: Niciun utilizator înregistrat și 3 vizitatori