[Cerere Plugin] StatsX Avansat

Categoria cu cereri de pluginuri si nu numai.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Forum rules
Accesează link-ul pentru a putea vedea regulile forumului

Daca doriti sa vi se modifice un plugin, va rugam postati aici .
Post Reply
Vice Bravo
Membru, skill +1
Membru, skill +1
Posts: 379
Joined: 11 May 2016, 14:25
Detinator Steam: Da
Detinator server CS: 185.198.27.236
Reputatie: Membru Club eXtreamCS (2 Dec 2022 - 2 Ian 2023)
Fond eXtream: 0
Discord: *** Reclama *** . top
Has thanked: 24 times
Been thanked: 5 times
Contact:

28 Jan 2023, 20:51

Plugin Cerut: StatsX avansat
Descriere (adica ce face el mai exact): Nu cred ca asta este numele, dar este un statsx avansat, pana la urma. Ideea este ca are si alte comenzi in afara de cele clasice, afisand mai multe statistici. Exemple: /topme /top20 /top30 /top40 /top50 /top60 /top70 /top80 /top90 /top100.
Ai cautat pluginul?(daca da, precizeaza cum): Da, am gasit unul la turci care in principiu functioneaza la fel, doar ca are /top10 in loc de /top15 si afisazul statisticilor este personalizat. Eu vreau un plugin de statsx de tipul asta, dar care are afisazul default
Serverul impune conditii strict HLDS/REHLDS?: Da
Necesita mod special?: -
Versiune AMXX Server: -

Asta este plugin-ul pe care l-am gasit: http://www.csplugin.com/2015/12/csm-statsx.html
RoyalServer
Vice Bravo
Membru, skill +1
Membru, skill +1
Posts: 379
Joined: 11 May 2016, 14:25
Detinator Steam: Da
Detinator server CS: 185.198.27.236
Reputatie: Membru Club eXtreamCS (2 Dec 2022 - 2 Ian 2023)
Fond eXtream: 0
Discord: *** Reclama *** . top
Has thanked: 24 times
Been thanked: 5 times
Contact:

29 Jan 2023, 22:18

Vice Bravo wrote:
28 Jan 2023, 20:51
Plugin Cerut: StatsX avansat
Descriere (adica ce face el mai exact): Nu cred ca asta este numele, dar este un statsx avansat, pana la urma. Ideea este ca are si alte comenzi in afara de cele clasice, afisand mai multe statistici. Exemple: /topme /top20 /top30 /top40 /top50 /top60 /top70 /top80 /top90 /top100.
Ai cautat pluginul?(daca da, precizeaza cum): Da, am gasit unul la turci care in principiu functioneaza la fel, doar ca are /top10 in loc de /top15 si afisazul statisticilor este personalizat. Eu vreau un plugin de statsx de tipul asta, dar care are afisazul default
Serverul impune conditii strict HLDS/REHLDS?: Da
Necesita mod special?: -
Versiune AMXX Server: -

Asta este plugin-ul pe care l-am gasit: http://www.csplugin.com/2015/12/csm-statsx.html
Sus!
User avatar
kidd0x
Utilizator neserios (tepar)
Utilizator neserios (tepar)
Posts: 1054
Joined: 06 Oct 2018, 14:41
Detinator Steam: Da
SteamID: /id/kidd0x/
Reputatie: Utilizator neserios (tepar!)
Fond eXtream: 0
Location: Constangeles
Discord: kidd0x
Has thanked: 172 times
Been thanked: 81 times

30 Jan 2023, 00:25

Code: Select all

#include < amxmodx >
#include < csx >


#pragma semicolon 1

#define INT_MAX_PLAYERS_MENU 360
#define INT_MAX_PLAYERS 32

enum {
	INT_STATS_KILLS = 0,
	INT_STATS_DEATHS,
	INT_STATS_HS,
	INT_STATS_TKS,
	INT_STATS_SHOTS,
	INT_STATS_HITS,
	INT_STATS_DAMAGE
};

enum {
	INT_STATS_BOMB_DEFUSIONS = 0,
	INT_STATS_BOMB_DEFUSED,
	INT_STATS_BOMB_PLANTS,
	INT_STATS_BOMB_EXPLOSIONS
};

enum {
	INT_STATS_HIT_GENERIC = 0,
	INT_STATS_HIT_HEAD,
	INT_STATS_HIT_CHEST,
	INT_STATS_HIT_STOMACH,
	INT_STATS_HIT_LEFTARM,
	INT_STATS_HIT_RIGHTARM,
	INT_STATS_HIT_LEFTLEG,
	INT_STATS_HIT_RIGHTLEG
};

new g_iMessageSayText;

public plugin_init( ) {
	register_plugin( "Rank Kript", "1.1", "dq stie " );

	register_clcmd( "say", "CLIENT_COMMAND_HOOK" );
	register_clcmd( "say_team", "CLIENT_COMMAND_HOOK" );
	
	set_task( 60.0 * 5.0, "FUNC_PRINT_CHAT", 235267, _, _, "b" );
	
	g_iMessageSayText = get_user_msgid( "SayText" );
}

public CLIENT_COMMAND_HOOK( INT_PLAYER ) {
	static STRING_ARGUMENT[ 11 ];
	read_argv( 1, STRING_ARGUMENT, charsmax( STRING_ARGUMENT ) );
	
	// TOP
	if( equali( STRING_ARGUMENT, "top", 3 ) || equali( STRING_ARGUMENT, "/top", 4 ) ) {
		new HANDLE_MENU = menu_create( "Top", "FUNC_MENU_HANDLER" );
		new STRING_STATS[ 8 ], STRING_BODY[ 8 ], STRING_NAME[ 32 ], STRING_TEMP[ 128 ], STRING_TEMP_NUM[ 4 ], INT_VARIABLE, STATSNUM = get_statsnum( );
		
		if( STATSNUM < INT_MAX_PLAYERS_MENU )
			INT_VARIABLE = STATSNUM;
		
		else
			INT_VARIABLE = INT_MAX_PLAYERS_MENU;
		
		for( new INT_VARIABLE2 = 0; INT_VARIABLE2 < INT_VARIABLE; INT_VARIABLE2++ ) {
			get_stats( INT_VARIABLE2, STRING_STATS, STRING_BODY, STRING_NAME, charsmax( STRING_NAME ) );
			
			num_to_str( INT_VARIABLE2 + 1, STRING_TEMP_NUM, charsmax( STRING_TEMP_NUM ) );
			
			format( STRING_TEMP, charsmax( STRING_TEMP ), "\y%s \wRank: \r%i \wKills: \r%i \wDeaths: \r%i", STRING_NAME, INT_VARIABLE2 + 1, \
				STRING_STATS[ INT_STATS_KILLS ], STRING_STATS[ INT_STATS_DEATHS ] );
			
			menu_additem( HANDLE_MENU, STRING_TEMP, STRING_TEMP_NUM, 0 );
		}
		
		menu_setprop( HANDLE_MENU, MPROP_EXITNAME, "Exit" );
		menu_setprop( HANDLE_MENU, MPROP_NEXTNAME, "Next" );
		menu_setprop( HANDLE_MENU, MPROP_BACKNAME, "Back" );
		
		menu_display( INT_PLAYER, HANDLE_MENU, 0 );
		
		client_cmd( INT_PLAYER, "spk buttons/button9" );
	}
	
	// RANK
	if( equali( STRING_ARGUMENT, "rank" ) || equali( STRING_ARGUMENT, "/rank" ) ) {
		new INT_RANK_POS, STRING_STATS[ 8 ], STRING_BODY[ 8 ], STRING_NAME[ 32 ];
		INT_RANK_POS = get_user_stats( INT_PLAYER, STRING_STATS, STRING_BODY );
		get_user_name( INT_PLAYER, STRING_NAME, charsmax( STRING_NAME ) );
		
		ColorChat( 0, "^x01Player^x03 %s^x01 rank is^x04 %i^x01/^x04%i^x01 with^x03 %i^x01 kills and^x03 %i^x01 deaths", STRING_NAME, \
			INT_RANK_POS, get_statsnum( ), STRING_STATS[ INT_STATS_KILLS ], STRING_STATS[ INT_STATS_DEATHS ] );
		
		client_cmd( INT_PLAYER, "spk buttons/button9" );
	}
	
	// STATSME
	if( equali( STRING_ARGUMENT, "statsme" ) || equali( STRING_ARGUMENT, "/statsme" ) ) {
		new INT_RANK_POS, STRING_STATS[ 8 ], STRING_BODY[ 8 ], STRING_TEMP[ 128 ], STRING_STATS2[ 4 ];
		INT_RANK_POS = get_user_stats( INT_PLAYER, STRING_STATS, STRING_BODY );
		get_user_stats2( INT_PLAYER, STRING_STATS2 );
		
		new HANDLE_MENU = menu_create( "Rank", "FUNC_MENU_HANDLER" );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wRank: \r%i", INT_RANK_POS );
		menu_additem( HANDLE_MENU, STRING_TEMP, "1", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wKills: \r%i", STRING_STATS[ INT_STATS_KILLS ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "2", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wDeaths: \r%i", STRING_STATS[ INT_STATS_DEATHS ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "3", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wHeadshots: \r%i", STRING_STATS[ INT_STATS_HS ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "4", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wTeam kills: \r%i", STRING_STATS[ INT_STATS_TKS ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "5", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wShots: \r%i", STRING_STATS[ INT_STATS_SHOTS ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "6", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wHits: \r%i", STRING_STATS[ INT_STATS_HITS ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "7", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wDamage: \r%i", STRING_STATS[ INT_STATS_DAMAGE ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "8", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wTotal defusions: \r%i", STRING_STATS2[ INT_STATS_BOMB_DEFUSIONS ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "9", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wBomb defused: \r%i", STRING_STATS2[ INT_STATS_BOMB_DEFUSED ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "10", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wBomb plants: \r%i", STRING_STATS2[ INT_STATS_BOMB_PLANTS ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "11", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wBomb explosions: \r%i", STRING_STATS2[ INT_STATS_BOMB_EXPLOSIONS ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "12", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wHead hits: \r%i", STRING_BODY[ INT_STATS_HIT_HEAD ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "13", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wChest hits: \r%i", STRING_BODY[ INT_STATS_HIT_CHEST ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "14", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wStomach hits: \r%i", STRING_BODY[ INT_STATS_HIT_STOMACH ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "15", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wLeftarm hits: \r%i", STRING_BODY[ INT_STATS_HIT_LEFTARM ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "16", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wRightarm hits: \r%i", STRING_BODY[ INT_STATS_HIT_RIGHTARM ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "17", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wLeftleg hits: \r%i", STRING_BODY[ INT_STATS_HIT_LEFTLEG ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "18", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wRightleg hits: \r%i", STRING_BODY[ INT_STATS_HIT_RIGHTLEG ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "19", 0 );
		
		menu_setprop( HANDLE_MENU, MPROP_EXITNAME, "Exit" );
		menu_setprop( HANDLE_MENU, MPROP_NEXTNAME, "Next" );
		menu_setprop( HANDLE_MENU, MPROP_BACKNAME, "Back" );
		
		menu_display( INT_PLAYER, HANDLE_MENU, 0 );
		
		client_cmd( INT_PLAYER, "spk buttons/button9" );
	}
	
	// STATS
	if( equali( STRING_ARGUMENT, "stats" ) || equali( STRING_ARGUMENT, "/stats" ) ) {
		new STRING_NAME[ 32 ], STRING_TEMP_NUM[ 4 ];
		new HANDLE_MENU = menu_create( "Choose the player", "FUNC_MENU_STATS_HANDLER" );
		
		for( new id = 1; id <= INT_MAX_PLAYERS; id++ ) {
			if( is_user_connected( id ) ) {
				get_user_name( id, STRING_NAME, charsmax( STRING_NAME ) );
				
				num_to_str( id, STRING_TEMP_NUM, charsmax( STRING_TEMP_NUM ) );
				
				menu_additem( HANDLE_MENU, STRING_NAME, STRING_TEMP_NUM, 0 );
			}
		}
		
		menu_setprop( HANDLE_MENU, MPROP_EXITNAME, "Exit" );
		menu_setprop( HANDLE_MENU, MPROP_NEXTNAME, "Next" );
		menu_setprop( HANDLE_MENU, MPROP_BACKNAME, "Back" );
		
		menu_display( INT_PLAYER, HANDLE_MENU, 0 );
		
		client_cmd( INT_PLAYER, "spk buttons/button9" );
	}
	
	// DAMAGE
	if( equali( STRING_ARGUMENT, "damage" ) || equali( STRING_ARGUMENT, "/damage" ) || equali( STRING_ARGUMENT, "/dmg" ) || equali( STRING_ARGUMENT, "dmg" ) ) {
		new HANDLE_MENU = menu_create( "Damage Top", "FUNC_MENU_HANDLER" );
		new STRING_STATS[ 8 ], STRING_BODY[ 8 ], STRING_NAME[ 32 ], STRING_TEMP[ 128 ], STRING_TEMP_NUM[ 4 ], INT_VARIABLE, STATSNUM = get_statsnum( );
		
		if( STATSNUM < INT_MAX_PLAYERS_MENU )
			INT_VARIABLE = STATSNUM;
		
		else
			INT_VARIABLE = INT_MAX_PLAYERS_MENU;
		
		for( new INT_VARIABLE2 = 0; INT_VARIABLE2 < INT_VARIABLE; INT_VARIABLE2++ ) {
			get_stats( INT_VARIABLE2, STRING_STATS, STRING_BODY, STRING_NAME, charsmax( STRING_NAME ) );
			
			num_to_str( INT_VARIABLE2 + 1, STRING_TEMP_NUM, charsmax( STRING_TEMP_NUM ) );
			
			format( STRING_TEMP, charsmax( STRING_TEMP ), "\y%s \wRank: \r%i \wDamage: \r%i%", \
				STRING_NAME, INT_VARIABLE2 + 1, STRING_STATS[ INT_STATS_DAMAGE ] );
			
			menu_additem( HANDLE_MENU, STRING_TEMP, STRING_TEMP_NUM, 0 );
		}
		
		menu_setprop( HANDLE_MENU, MPROP_EXITNAME, "Exit" );
		menu_setprop( HANDLE_MENU, MPROP_NEXTNAME, "Next" );
		menu_setprop( HANDLE_MENU, MPROP_BACKNAME, "Back" );
		
		menu_display( INT_PLAYER, HANDLE_MENU, 0 );
		
		client_cmd( INT_PLAYER, "spk buttons/button9" );
	}
	
	// HEADSHOTS
	if( equali( STRING_ARGUMENT, "headshots" ) || equali( STRING_ARGUMENT, "/headshots" ) || equali( STRING_ARGUMENT, "/hs" ) ) {
		new HANDLE_MENU = menu_create( "Headshots Top", "FUNC_MENU_HANDLER" );
		new STRING_STATS[ 8 ], STRING_BODY[ 8 ], STRING_NAME[ 32 ], STRING_TEMP[ 128 ], STRING_TEMP_NUM[ 4 ], INT_VARIABLE, STATSNUM = get_statsnum( );
		
		if( STATSNUM < INT_MAX_PLAYERS_MENU )
			INT_VARIABLE = STATSNUM;
		
		else
			INT_VARIABLE = INT_MAX_PLAYERS_MENU;
		
		for( new INT_VARIABLE2 = 0; INT_VARIABLE2 < INT_VARIABLE; INT_VARIABLE2++ ) {
			get_stats( INT_VARIABLE2, STRING_STATS, STRING_BODY, STRING_NAME, charsmax( STRING_NAME ) );
			
			num_to_str( INT_VARIABLE2 + 1, STRING_TEMP_NUM, charsmax( STRING_TEMP_NUM ) );
			
			format( STRING_TEMP, charsmax( STRING_TEMP ), "\y%s \wRank: \r%i \wHeadshots: \r%i", \
				STRING_NAME, INT_VARIABLE2 + 1, STRING_STATS[ INT_STATS_HS ] );
			
			menu_additem( HANDLE_MENU, STRING_TEMP, STRING_TEMP_NUM, 0 );
		}
		
		menu_setprop( HANDLE_MENU, MPROP_EXITNAME, "Exit" );
		menu_setprop( HANDLE_MENU, MPROP_NEXTNAME, "Next" );
		menu_setprop( HANDLE_MENU, MPROP_BACKNAME, "Back" );
		
		menu_display( INT_PLAYER, HANDLE_MENU, 0 );
		
		client_cmd( INT_PLAYER, "spk buttons/button9" );
	}
	
	// EFFECT
	if( equali( STRING_ARGUMENT, "effect" ) || equali( STRING_ARGUMENT, "/effect" ) ) {
		new HANDLE_MENU = menu_create( "Effects Top", "FUNC_MENU_HANDLER" );
		new STRING_STATS[ 8 ], STRING_BODY[ 8 ], STRING_NAME[ 32 ], STRING_TEMP[ 128 ], STRING_TEMP_NUM[ 4 ], INT_VARIABLE, STATSNUM = get_statsnum( );
		
		if( STATSNUM < INT_MAX_PLAYERS_MENU )
			INT_VARIABLE = STATSNUM;
		
		else
			INT_VARIABLE = INT_MAX_PLAYERS_MENU;
		
		for( new INT_VARIABLE2 = 0; INT_VARIABLE2 < INT_VARIABLE; INT_VARIABLE2++ ) {
			get_stats( INT_VARIABLE2, STRING_STATS, STRING_BODY, STRING_NAME, charsmax( STRING_NAME ) );
			
			num_to_str( INT_VARIABLE2 + 1, STRING_TEMP_NUM, charsmax( STRING_TEMP_NUM ) );
			
			format( STRING_TEMP, charsmax( STRING_TEMP ), "\y%s \wRank: \r%i \wEffect: \r%2.f%", STRING_NAME, INT_VARIABLE2 + 1, \
				float( STRING_STATS[ INT_STATS_KILLS ] ) * 1.002 / float( STRING_STATS[ INT_STATS_DEATHS ] ) * 1.002 * 30.346647 );
			
			menu_additem( HANDLE_MENU, STRING_TEMP, STRING_TEMP_NUM, 0 );
		}
		
		menu_setprop( HANDLE_MENU, MPROP_EXITNAME, "Exit" );
		menu_setprop( HANDLE_MENU, MPROP_NEXTNAME, "Next" );
		menu_setprop( HANDLE_MENU, MPROP_BACKNAME, "Back" );
		
		menu_display( INT_PLAYER, HANDLE_MENU, 0 );
		
		client_cmd( INT_PLAYER, "spk buttons/button9" );
	}
}

public FUNC_MENU_HANDLER( INT_PLAYER, INT_MENU, INT_ITEM )
	return PLUGIN_HANDLED;

public FUNC_MENU_STATS_HANDLER( INT_PLAYER, INT_MENU, INT_ITEM ) {
	new STRING_COMMAND[ 6 ], STRING_NAME[ 64 ], INT_ACCESS, INT_CALLBACK, INT_VICTIM;
	menu_item_getinfo( INT_MENU, INT_ITEM, INT_ACCESS, STRING_COMMAND, charsmax( STRING_COMMAND ), STRING_NAME, charsmax( STRING_NAME ), INT_CALLBACK );
	INT_VICTIM = get_user_index( STRING_NAME );
	
	if( is_user_connected( INT_VICTIM ) )
		FUNC_STATS_ME( INT_PLAYER, INT_VICTIM );
	
	else {
		ColorChat( INT_PLAYER, "^x01The player you choosed is disconnected!" );
		return PLUGIN_HANDLED;
	}
	
	return PLUGIN_HANDLED;
}

public FUNC_STATS_ME( INT_PLAYER, VICTIM ) {
	new INT_RANK_POS, STRING_STATS[ 8 ], STRING_BODY[ 8 ], STRING_TEMP[ 128 ], STRING_STATS2[ 4 ], STRING_NAME[ 32 ];
	INT_RANK_POS = get_user_stats( VICTIM, STRING_STATS, STRING_BODY );
	get_user_stats2( VICTIM, STRING_STATS2 );
	get_user_name( VICTIM, STRING_NAME, charsmax( STRING_NAME ) );
	
	new HANDLE_MENU = menu_create( "Rank", "FUNC_MENU_HANDLER" );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wUser: \r%s", STRING_NAME );
	menu_additem( HANDLE_MENU, STRING_TEMP, "1", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wRank: \r%i", INT_RANK_POS );
	menu_additem( HANDLE_MENU, STRING_TEMP, "2", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wKills: \r%i", STRING_STATS[ INT_STATS_KILLS ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "3", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wDeaths: \r%i", STRING_STATS[ INT_STATS_DEATHS ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "4", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wHeadshots: \r%i", STRING_STATS[ INT_STATS_HS ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "5", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wTeam kills: \r%i", STRING_STATS[ INT_STATS_TKS ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "6", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wShots: \r%i", STRING_STATS[ INT_STATS_SHOTS ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "7", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wHits: \r%i", STRING_STATS[ INT_STATS_HITS ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "8", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wDamage: \r%i", STRING_STATS[ INT_STATS_DAMAGE ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "9", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wTotal defusions: \r%i", STRING_STATS2[ INT_STATS_BOMB_DEFUSIONS ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "10", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wBomb defused: \r%i", STRING_STATS2[ INT_STATS_BOMB_DEFUSED ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "11", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wBomb plants: \r%i", STRING_STATS2[ INT_STATS_BOMB_PLANTS ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "12", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wBomb explosions: \r%i", STRING_STATS2[ INT_STATS_BOMB_EXPLOSIONS ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "13", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wHead hits: \r%i", STRING_BODY[ INT_STATS_HIT_HEAD ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "14", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wChest hits: \r%i", STRING_BODY[ INT_STATS_HIT_CHEST ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "15", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wStomach hits: \r%i", STRING_BODY[ INT_STATS_HIT_STOMACH ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "16", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wLeftarm hits: \r%i", STRING_BODY[ INT_STATS_HIT_LEFTARM ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "17", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wRightarm hits: \r%i", STRING_BODY[ INT_STATS_HIT_RIGHTARM ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "18", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wLeftleg hits: \r%i", STRING_BODY[ INT_STATS_HIT_LEFTLEG ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "19", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wRightleg hits: \r%i", STRING_BODY[ INT_STATS_HIT_RIGHTLEG ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "20", 0 );
	
	menu_setprop( HANDLE_MENU, MPROP_EXITNAME, "Exit" );
	menu_setprop( HANDLE_MENU, MPROP_NEXTNAME, "Next" );
	menu_setprop( HANDLE_MENU, MPROP_BACKNAME, "Back" );
	
	menu_display( INT_PLAYER, HANDLE_MENU, 0 );
	
	client_cmd( INT_PLAYER, "spk buttons/button9" );
}

public FUNC_PRINT_CHAT( )
	ColorChat( 0, "^x04[Club Stats]^x01 Comenzi disponibile:^x03 top^x01,^x03 rank^x01,^x03 stats^x01,^x03 statsme^x01,^x03 damage^x01,^x03 effect^x01,^x03 headshots" );

ColorChat( iTarget, szMessage[ ], any: ... ) {
	static szBuffer[ 189 ];
	vformat( szBuffer, 188, szMessage, 3 );
	
	if( iTarget ) {
		message_begin( MSG_ONE_UNRELIABLE, g_iMessageSayText, _, iTarget );
		write_byte( iTarget );
		write_string( szBuffer );
		message_end( );
	} else {
		static iPlayers[ 32 ], iNum, i, iPlayer;
		get_players( iPlayers, iNum, "c" );
		
		for( i = 0; i < iNum; i++ ) {
			iPlayer = iPlayers[ i ];
			
			message_begin( MSG_ONE_UNRELIABLE, g_iMessageSayText, _, iPlayer );
			write_byte( iPlayer );
			write_string( szBuffer );
			message_end( );
		}
	}
}
Vice Bravo
Membru, skill +1
Membru, skill +1
Posts: 379
Joined: 11 May 2016, 14:25
Detinator Steam: Da
Detinator server CS: 185.198.27.236
Reputatie: Membru Club eXtreamCS (2 Dec 2022 - 2 Ian 2023)
Fond eXtream: 0
Discord: *** Reclama *** . top
Has thanked: 24 times
Been thanked: 5 times
Contact:

31 Jan 2023, 00:27

N3v3rM1nd wrote:
30 Jan 2023, 00:25

Code: Select all

#include < amxmodx >
#include < csx >


#pragma semicolon 1

#define INT_MAX_PLAYERS_MENU 360
#define INT_MAX_PLAYERS 32

enum {
	INT_STATS_KILLS = 0,
	INT_STATS_DEATHS,
	INT_STATS_HS,
	INT_STATS_TKS,
	INT_STATS_SHOTS,
	INT_STATS_HITS,
	INT_STATS_DAMAGE
};

enum {
	INT_STATS_BOMB_DEFUSIONS = 0,
	INT_STATS_BOMB_DEFUSED,
	INT_STATS_BOMB_PLANTS,
	INT_STATS_BOMB_EXPLOSIONS
};

enum {
	INT_STATS_HIT_GENERIC = 0,
	INT_STATS_HIT_HEAD,
	INT_STATS_HIT_CHEST,
	INT_STATS_HIT_STOMACH,
	INT_STATS_HIT_LEFTARM,
	INT_STATS_HIT_RIGHTARM,
	INT_STATS_HIT_LEFTLEG,
	INT_STATS_HIT_RIGHTLEG
};

new g_iMessageSayText;

public plugin_init( ) {
	register_plugin( "Rank Kript", "1.1", "dq stie " );

	register_clcmd( "say", "CLIENT_COMMAND_HOOK" );
	register_clcmd( "say_team", "CLIENT_COMMAND_HOOK" );
	
	set_task( 60.0 * 5.0, "FUNC_PRINT_CHAT", 235267, _, _, "b" );
	
	g_iMessageSayText = get_user_msgid( "SayText" );
}

public CLIENT_COMMAND_HOOK( INT_PLAYER ) {
	static STRING_ARGUMENT[ 11 ];
	read_argv( 1, STRING_ARGUMENT, charsmax( STRING_ARGUMENT ) );
	
	// TOP
	if( equali( STRING_ARGUMENT, "top", 3 ) || equali( STRING_ARGUMENT, "/top", 4 ) ) {
		new HANDLE_MENU = menu_create( "Top", "FUNC_MENU_HANDLER" );
		new STRING_STATS[ 8 ], STRING_BODY[ 8 ], STRING_NAME[ 32 ], STRING_TEMP[ 128 ], STRING_TEMP_NUM[ 4 ], INT_VARIABLE, STATSNUM = get_statsnum( );
		
		if( STATSNUM < INT_MAX_PLAYERS_MENU )
			INT_VARIABLE = STATSNUM;
		
		else
			INT_VARIABLE = INT_MAX_PLAYERS_MENU;
		
		for( new INT_VARIABLE2 = 0; INT_VARIABLE2 < INT_VARIABLE; INT_VARIABLE2++ ) {
			get_stats( INT_VARIABLE2, STRING_STATS, STRING_BODY, STRING_NAME, charsmax( STRING_NAME ) );
			
			num_to_str( INT_VARIABLE2 + 1, STRING_TEMP_NUM, charsmax( STRING_TEMP_NUM ) );
			
			format( STRING_TEMP, charsmax( STRING_TEMP ), "\y%s \wRank: \r%i \wKills: \r%i \wDeaths: \r%i", STRING_NAME, INT_VARIABLE2 + 1, \
				STRING_STATS[ INT_STATS_KILLS ], STRING_STATS[ INT_STATS_DEATHS ] );
			
			menu_additem( HANDLE_MENU, STRING_TEMP, STRING_TEMP_NUM, 0 );
		}
		
		menu_setprop( HANDLE_MENU, MPROP_EXITNAME, "Exit" );
		menu_setprop( HANDLE_MENU, MPROP_NEXTNAME, "Next" );
		menu_setprop( HANDLE_MENU, MPROP_BACKNAME, "Back" );
		
		menu_display( INT_PLAYER, HANDLE_MENU, 0 );
		
		client_cmd( INT_PLAYER, "spk buttons/button9" );
	}
	
	// RANK
	if( equali( STRING_ARGUMENT, "rank" ) || equali( STRING_ARGUMENT, "/rank" ) ) {
		new INT_RANK_POS, STRING_STATS[ 8 ], STRING_BODY[ 8 ], STRING_NAME[ 32 ];
		INT_RANK_POS = get_user_stats( INT_PLAYER, STRING_STATS, STRING_BODY );
		get_user_name( INT_PLAYER, STRING_NAME, charsmax( STRING_NAME ) );
		
		ColorChat( 0, "^x01Player^x03 %s^x01 rank is^x04 %i^x01/^x04%i^x01 with^x03 %i^x01 kills and^x03 %i^x01 deaths", STRING_NAME, \
			INT_RANK_POS, get_statsnum( ), STRING_STATS[ INT_STATS_KILLS ], STRING_STATS[ INT_STATS_DEATHS ] );
		
		client_cmd( INT_PLAYER, "spk buttons/button9" );
	}
	
	// STATSME
	if( equali( STRING_ARGUMENT, "statsme" ) || equali( STRING_ARGUMENT, "/statsme" ) ) {
		new INT_RANK_POS, STRING_STATS[ 8 ], STRING_BODY[ 8 ], STRING_TEMP[ 128 ], STRING_STATS2[ 4 ];
		INT_RANK_POS = get_user_stats( INT_PLAYER, STRING_STATS, STRING_BODY );
		get_user_stats2( INT_PLAYER, STRING_STATS2 );
		
		new HANDLE_MENU = menu_create( "Rank", "FUNC_MENU_HANDLER" );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wRank: \r%i", INT_RANK_POS );
		menu_additem( HANDLE_MENU, STRING_TEMP, "1", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wKills: \r%i", STRING_STATS[ INT_STATS_KILLS ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "2", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wDeaths: \r%i", STRING_STATS[ INT_STATS_DEATHS ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "3", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wHeadshots: \r%i", STRING_STATS[ INT_STATS_HS ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "4", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wTeam kills: \r%i", STRING_STATS[ INT_STATS_TKS ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "5", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wShots: \r%i", STRING_STATS[ INT_STATS_SHOTS ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "6", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wHits: \r%i", STRING_STATS[ INT_STATS_HITS ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "7", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wDamage: \r%i", STRING_STATS[ INT_STATS_DAMAGE ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "8", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wTotal defusions: \r%i", STRING_STATS2[ INT_STATS_BOMB_DEFUSIONS ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "9", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wBomb defused: \r%i", STRING_STATS2[ INT_STATS_BOMB_DEFUSED ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "10", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wBomb plants: \r%i", STRING_STATS2[ INT_STATS_BOMB_PLANTS ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "11", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wBomb explosions: \r%i", STRING_STATS2[ INT_STATS_BOMB_EXPLOSIONS ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "12", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wHead hits: \r%i", STRING_BODY[ INT_STATS_HIT_HEAD ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "13", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wChest hits: \r%i", STRING_BODY[ INT_STATS_HIT_CHEST ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "14", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wStomach hits: \r%i", STRING_BODY[ INT_STATS_HIT_STOMACH ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "15", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wLeftarm hits: \r%i", STRING_BODY[ INT_STATS_HIT_LEFTARM ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "16", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wRightarm hits: \r%i", STRING_BODY[ INT_STATS_HIT_RIGHTARM ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "17", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wLeftleg hits: \r%i", STRING_BODY[ INT_STATS_HIT_LEFTLEG ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "18", 0 );
		
		format( STRING_TEMP, charsmax( STRING_TEMP ), "\wRightleg hits: \r%i", STRING_BODY[ INT_STATS_HIT_RIGHTLEG ] );
		menu_additem( HANDLE_MENU, STRING_TEMP, "19", 0 );
		
		menu_setprop( HANDLE_MENU, MPROP_EXITNAME, "Exit" );
		menu_setprop( HANDLE_MENU, MPROP_NEXTNAME, "Next" );
		menu_setprop( HANDLE_MENU, MPROP_BACKNAME, "Back" );
		
		menu_display( INT_PLAYER, HANDLE_MENU, 0 );
		
		client_cmd( INT_PLAYER, "spk buttons/button9" );
	}
	
	// STATS
	if( equali( STRING_ARGUMENT, "stats" ) || equali( STRING_ARGUMENT, "/stats" ) ) {
		new STRING_NAME[ 32 ], STRING_TEMP_NUM[ 4 ];
		new HANDLE_MENU = menu_create( "Choose the player", "FUNC_MENU_STATS_HANDLER" );
		
		for( new id = 1; id <= INT_MAX_PLAYERS; id++ ) {
			if( is_user_connected( id ) ) {
				get_user_name( id, STRING_NAME, charsmax( STRING_NAME ) );
				
				num_to_str( id, STRING_TEMP_NUM, charsmax( STRING_TEMP_NUM ) );
				
				menu_additem( HANDLE_MENU, STRING_NAME, STRING_TEMP_NUM, 0 );
			}
		}
		
		menu_setprop( HANDLE_MENU, MPROP_EXITNAME, "Exit" );
		menu_setprop( HANDLE_MENU, MPROP_NEXTNAME, "Next" );
		menu_setprop( HANDLE_MENU, MPROP_BACKNAME, "Back" );
		
		menu_display( INT_PLAYER, HANDLE_MENU, 0 );
		
		client_cmd( INT_PLAYER, "spk buttons/button9" );
	}
	
	// DAMAGE
	if( equali( STRING_ARGUMENT, "damage" ) || equali( STRING_ARGUMENT, "/damage" ) || equali( STRING_ARGUMENT, "/dmg" ) || equali( STRING_ARGUMENT, "dmg" ) ) {
		new HANDLE_MENU = menu_create( "Damage Top", "FUNC_MENU_HANDLER" );
		new STRING_STATS[ 8 ], STRING_BODY[ 8 ], STRING_NAME[ 32 ], STRING_TEMP[ 128 ], STRING_TEMP_NUM[ 4 ], INT_VARIABLE, STATSNUM = get_statsnum( );
		
		if( STATSNUM < INT_MAX_PLAYERS_MENU )
			INT_VARIABLE = STATSNUM;
		
		else
			INT_VARIABLE = INT_MAX_PLAYERS_MENU;
		
		for( new INT_VARIABLE2 = 0; INT_VARIABLE2 < INT_VARIABLE; INT_VARIABLE2++ ) {
			get_stats( INT_VARIABLE2, STRING_STATS, STRING_BODY, STRING_NAME, charsmax( STRING_NAME ) );
			
			num_to_str( INT_VARIABLE2 + 1, STRING_TEMP_NUM, charsmax( STRING_TEMP_NUM ) );
			
			format( STRING_TEMP, charsmax( STRING_TEMP ), "\y%s \wRank: \r%i \wDamage: \r%i%", \
				STRING_NAME, INT_VARIABLE2 + 1, STRING_STATS[ INT_STATS_DAMAGE ] );
			
			menu_additem( HANDLE_MENU, STRING_TEMP, STRING_TEMP_NUM, 0 );
		}
		
		menu_setprop( HANDLE_MENU, MPROP_EXITNAME, "Exit" );
		menu_setprop( HANDLE_MENU, MPROP_NEXTNAME, "Next" );
		menu_setprop( HANDLE_MENU, MPROP_BACKNAME, "Back" );
		
		menu_display( INT_PLAYER, HANDLE_MENU, 0 );
		
		client_cmd( INT_PLAYER, "spk buttons/button9" );
	}
	
	// HEADSHOTS
	if( equali( STRING_ARGUMENT, "headshots" ) || equali( STRING_ARGUMENT, "/headshots" ) || equali( STRING_ARGUMENT, "/hs" ) ) {
		new HANDLE_MENU = menu_create( "Headshots Top", "FUNC_MENU_HANDLER" );
		new STRING_STATS[ 8 ], STRING_BODY[ 8 ], STRING_NAME[ 32 ], STRING_TEMP[ 128 ], STRING_TEMP_NUM[ 4 ], INT_VARIABLE, STATSNUM = get_statsnum( );
		
		if( STATSNUM < INT_MAX_PLAYERS_MENU )
			INT_VARIABLE = STATSNUM;
		
		else
			INT_VARIABLE = INT_MAX_PLAYERS_MENU;
		
		for( new INT_VARIABLE2 = 0; INT_VARIABLE2 < INT_VARIABLE; INT_VARIABLE2++ ) {
			get_stats( INT_VARIABLE2, STRING_STATS, STRING_BODY, STRING_NAME, charsmax( STRING_NAME ) );
			
			num_to_str( INT_VARIABLE2 + 1, STRING_TEMP_NUM, charsmax( STRING_TEMP_NUM ) );
			
			format( STRING_TEMP, charsmax( STRING_TEMP ), "\y%s \wRank: \r%i \wHeadshots: \r%i", \
				STRING_NAME, INT_VARIABLE2 + 1, STRING_STATS[ INT_STATS_HS ] );
			
			menu_additem( HANDLE_MENU, STRING_TEMP, STRING_TEMP_NUM, 0 );
		}
		
		menu_setprop( HANDLE_MENU, MPROP_EXITNAME, "Exit" );
		menu_setprop( HANDLE_MENU, MPROP_NEXTNAME, "Next" );
		menu_setprop( HANDLE_MENU, MPROP_BACKNAME, "Back" );
		
		menu_display( INT_PLAYER, HANDLE_MENU, 0 );
		
		client_cmd( INT_PLAYER, "spk buttons/button9" );
	}
	
	// EFFECT
	if( equali( STRING_ARGUMENT, "effect" ) || equali( STRING_ARGUMENT, "/effect" ) ) {
		new HANDLE_MENU = menu_create( "Effects Top", "FUNC_MENU_HANDLER" );
		new STRING_STATS[ 8 ], STRING_BODY[ 8 ], STRING_NAME[ 32 ], STRING_TEMP[ 128 ], STRING_TEMP_NUM[ 4 ], INT_VARIABLE, STATSNUM = get_statsnum( );
		
		if( STATSNUM < INT_MAX_PLAYERS_MENU )
			INT_VARIABLE = STATSNUM;
		
		else
			INT_VARIABLE = INT_MAX_PLAYERS_MENU;
		
		for( new INT_VARIABLE2 = 0; INT_VARIABLE2 < INT_VARIABLE; INT_VARIABLE2++ ) {
			get_stats( INT_VARIABLE2, STRING_STATS, STRING_BODY, STRING_NAME, charsmax( STRING_NAME ) );
			
			num_to_str( INT_VARIABLE2 + 1, STRING_TEMP_NUM, charsmax( STRING_TEMP_NUM ) );
			
			format( STRING_TEMP, charsmax( STRING_TEMP ), "\y%s \wRank: \r%i \wEffect: \r%2.f%", STRING_NAME, INT_VARIABLE2 + 1, \
				float( STRING_STATS[ INT_STATS_KILLS ] ) * 1.002 / float( STRING_STATS[ INT_STATS_DEATHS ] ) * 1.002 * 30.346647 );
			
			menu_additem( HANDLE_MENU, STRING_TEMP, STRING_TEMP_NUM, 0 );
		}
		
		menu_setprop( HANDLE_MENU, MPROP_EXITNAME, "Exit" );
		menu_setprop( HANDLE_MENU, MPROP_NEXTNAME, "Next" );
		menu_setprop( HANDLE_MENU, MPROP_BACKNAME, "Back" );
		
		menu_display( INT_PLAYER, HANDLE_MENU, 0 );
		
		client_cmd( INT_PLAYER, "spk buttons/button9" );
	}
}

public FUNC_MENU_HANDLER( INT_PLAYER, INT_MENU, INT_ITEM )
	return PLUGIN_HANDLED;

public FUNC_MENU_STATS_HANDLER( INT_PLAYER, INT_MENU, INT_ITEM ) {
	new STRING_COMMAND[ 6 ], STRING_NAME[ 64 ], INT_ACCESS, INT_CALLBACK, INT_VICTIM;
	menu_item_getinfo( INT_MENU, INT_ITEM, INT_ACCESS, STRING_COMMAND, charsmax( STRING_COMMAND ), STRING_NAME, charsmax( STRING_NAME ), INT_CALLBACK );
	INT_VICTIM = get_user_index( STRING_NAME );
	
	if( is_user_connected( INT_VICTIM ) )
		FUNC_STATS_ME( INT_PLAYER, INT_VICTIM );
	
	else {
		ColorChat( INT_PLAYER, "^x01The player you choosed is disconnected!" );
		return PLUGIN_HANDLED;
	}
	
	return PLUGIN_HANDLED;
}

public FUNC_STATS_ME( INT_PLAYER, VICTIM ) {
	new INT_RANK_POS, STRING_STATS[ 8 ], STRING_BODY[ 8 ], STRING_TEMP[ 128 ], STRING_STATS2[ 4 ], STRING_NAME[ 32 ];
	INT_RANK_POS = get_user_stats( VICTIM, STRING_STATS, STRING_BODY );
	get_user_stats2( VICTIM, STRING_STATS2 );
	get_user_name( VICTIM, STRING_NAME, charsmax( STRING_NAME ) );
	
	new HANDLE_MENU = menu_create( "Rank", "FUNC_MENU_HANDLER" );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wUser: \r%s", STRING_NAME );
	menu_additem( HANDLE_MENU, STRING_TEMP, "1", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wRank: \r%i", INT_RANK_POS );
	menu_additem( HANDLE_MENU, STRING_TEMP, "2", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wKills: \r%i", STRING_STATS[ INT_STATS_KILLS ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "3", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wDeaths: \r%i", STRING_STATS[ INT_STATS_DEATHS ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "4", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wHeadshots: \r%i", STRING_STATS[ INT_STATS_HS ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "5", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wTeam kills: \r%i", STRING_STATS[ INT_STATS_TKS ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "6", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wShots: \r%i", STRING_STATS[ INT_STATS_SHOTS ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "7", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wHits: \r%i", STRING_STATS[ INT_STATS_HITS ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "8", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wDamage: \r%i", STRING_STATS[ INT_STATS_DAMAGE ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "9", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wTotal defusions: \r%i", STRING_STATS2[ INT_STATS_BOMB_DEFUSIONS ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "10", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wBomb defused: \r%i", STRING_STATS2[ INT_STATS_BOMB_DEFUSED ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "11", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wBomb plants: \r%i", STRING_STATS2[ INT_STATS_BOMB_PLANTS ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "12", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wBomb explosions: \r%i", STRING_STATS2[ INT_STATS_BOMB_EXPLOSIONS ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "13", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wHead hits: \r%i", STRING_BODY[ INT_STATS_HIT_HEAD ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "14", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wChest hits: \r%i", STRING_BODY[ INT_STATS_HIT_CHEST ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "15", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wStomach hits: \r%i", STRING_BODY[ INT_STATS_HIT_STOMACH ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "16", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wLeftarm hits: \r%i", STRING_BODY[ INT_STATS_HIT_LEFTARM ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "17", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wRightarm hits: \r%i", STRING_BODY[ INT_STATS_HIT_RIGHTARM ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "18", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wLeftleg hits: \r%i", STRING_BODY[ INT_STATS_HIT_LEFTLEG ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "19", 0 );
	
	format( STRING_TEMP, charsmax( STRING_TEMP ), "\wRightleg hits: \r%i", STRING_BODY[ INT_STATS_HIT_RIGHTLEG ] );
	menu_additem( HANDLE_MENU, STRING_TEMP, "20", 0 );
	
	menu_setprop( HANDLE_MENU, MPROP_EXITNAME, "Exit" );
	menu_setprop( HANDLE_MENU, MPROP_NEXTNAME, "Next" );
	menu_setprop( HANDLE_MENU, MPROP_BACKNAME, "Back" );
	
	menu_display( INT_PLAYER, HANDLE_MENU, 0 );
	
	client_cmd( INT_PLAYER, "spk buttons/button9" );
}

public FUNC_PRINT_CHAT( )
	ColorChat( 0, "^x04[Club Stats]^x01 Comenzi disponibile:^x03 top^x01,^x03 rank^x01,^x03 stats^x01,^x03 statsme^x01,^x03 damage^x01,^x03 effect^x01,^x03 headshots" );

ColorChat( iTarget, szMessage[ ], any: ... ) {
	static szBuffer[ 189 ];
	vformat( szBuffer, 188, szMessage, 3 );
	
	if( iTarget ) {
		message_begin( MSG_ONE_UNRELIABLE, g_iMessageSayText, _, iTarget );
		write_byte( iTarget );
		write_string( szBuffer );
		message_end( );
	} else {
		static iPlayers[ 32 ], iNum, i, iPlayer;
		get_players( iPlayers, iNum, "c" );
		
		for( i = 0; i < iNum; i++ ) {
			iPlayer = iPlayers[ i ];
			
			message_begin( MSG_ONE_UNRELIABLE, g_iMessageSayText, _, iPlayer );
			write_byte( iPlayer );
			write_string( szBuffer );
			message_end( );
		}
	}
}
N-are nici cea mai mica legatura cu ce am cerut eu.
Vice Bravo
Membru, skill +1
Membru, skill +1
Posts: 379
Joined: 11 May 2016, 14:25
Detinator Steam: Da
Detinator server CS: 185.198.27.236
Reputatie: Membru Club eXtreamCS (2 Dec 2022 - 2 Ian 2023)
Fond eXtream: 0
Discord: *** Reclama *** . top
Has thanked: 24 times
Been thanked: 5 times
Contact:

02 Feb 2023, 01:11

Vice Bravo wrote:
28 Jan 2023, 20:51
Plugin Cerut: StatsX avansat
Descriere (adica ce face el mai exact): Nu cred ca asta este numele, dar este un statsx avansat, pana la urma. Ideea este ca are si alte comenzi in afara de cele clasice, afisand mai multe statistici. Exemple: /topme /top20 /top30 /top40 /top50 /top60 /top70 /top80 /top90 /top100.
Ai cautat pluginul?(daca da, precizeaza cum): Da, am gasit unul la turci care in principiu functioneaza la fel, doar ca are /top10 in loc de /top15 si afisazul statisticilor este personalizat. Eu vreau un plugin de statsx de tipul asta, dar care are afisazul default
Serverul impune conditii strict HLDS/REHLDS?: Da
Necesita mod special?: -
Versiune AMXX Server: -

Asta este plugin-ul pe care l-am gasit: http://www.csplugin.com/2015/12/csm-statsx.html
Sus!
Vice Bravo
Membru, skill +1
Membru, skill +1
Posts: 379
Joined: 11 May 2016, 14:25
Detinator Steam: Da
Detinator server CS: 185.198.27.236
Reputatie: Membru Club eXtreamCS (2 Dec 2022 - 2 Ian 2023)
Fond eXtream: 0
Discord: *** Reclama *** . top
Has thanked: 24 times
Been thanked: 5 times
Contact:

03 Feb 2023, 10:50

Vice Bravo wrote:
28 Jan 2023, 20:51
Plugin Cerut: StatsX avansat
Descriere (adica ce face el mai exact): Nu cred ca asta este numele, dar este un statsx avansat, pana la urma. Ideea este ca are si alte comenzi in afara de cele clasice, afisand mai multe statistici. Exemple: /topme /top20 /top30 /top40 /top50 /top60 /top70 /top80 /top90 /top100.
Ai cautat pluginul?(daca da, precizeaza cum): Da, am gasit unul la turci care in principiu functioneaza la fel, doar ca are /top10 in loc de /top15 si afisazul statisticilor este personalizat. Eu vreau un plugin de statsx de tipul asta, dar care are afisazul default
Serverul impune conditii strict HLDS/REHLDS?: Da
Necesita mod special?: -
Versiune AMXX Server: -

Asta este plugin-ul pe care l-am gasit: http://www.csplugin.com/2015/12/csm-statsx.html
Sus!
Vice Bravo
Membru, skill +1
Membru, skill +1
Posts: 379
Joined: 11 May 2016, 14:25
Detinator Steam: Da
Detinator server CS: 185.198.27.236
Reputatie: Membru Club eXtreamCS (2 Dec 2022 - 2 Ian 2023)
Fond eXtream: 0
Discord: *** Reclama *** . top
Has thanked: 24 times
Been thanked: 5 times
Contact:

04 Feb 2023, 12:27

Vice Bravo wrote:
28 Jan 2023, 20:51
Plugin Cerut: StatsX avansat
Descriere (adica ce face el mai exact): Nu cred ca asta este numele, dar este un statsx avansat, pana la urma. Ideea este ca are si alte comenzi in afara de cele clasice, afisand mai multe statistici. Exemple: /topme /top20 /top30 /top40 /top50 /top60 /top70 /top80 /top90 /top100.
Ai cautat pluginul?(daca da, precizeaza cum): Da, am gasit unul la turci care in principiu functioneaza la fel, doar ca are /top10 in loc de /top15 si afisazul statisticilor este personalizat. Eu vreau un plugin de statsx de tipul asta, dar care are afisazul default
Serverul impune conditii strict HLDS/REHLDS?: Da
Necesita mod special?: -
Versiune AMXX Server: -

Asta este plugin-ul pe care l-am gasit: http://www.csplugin.com/2015/12/csm-statsx.html
Sus!
User avatar
AboveAll :)
Membru, skill +1
Membru, skill +1
Posts: 141
Joined: 16 Dec 2014, 11:29
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
Detinator server CS: Abcs.LaLeagane.Ro
SteamID: AboveAll14
Fond eXtream: 0
Location: Barlad
Contact:

04 Feb 2023, 14:08

Cred ca asta e:
1. https://forums.alliedmods.net/showthread.php?t=159046 , vezi ca linkurile principale de download nu mai functioneaza dar la pagina 15 este unul fac Your Fun care a postat alt link de download .
2. Alta varianta: pluginuri-extream/rank-rankstats-top-v- ... 84079.html
Sa imi spui daca a fost de folos.
Abcs.LaLeagane.Ro / 89.40.104.77:27015 - Uwc3x - Level Mod 50 Lvl !
Post Reply

Return to “Cereri”

  • Information
  • Who is online

    Users browsing this forum: Bing [Bot], Yandex [Bot] and 15 guests