Cerere ljstats

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
Motoreta
Membru, skill 0
Membru, skill 0
Posts: 11
Joined: 22 Apr 2011, 19:53
Detinator Steam: Da
Detinator server CS: DA
Has thanked: 4 times
Been thanked: 1 time

22 Apr 2011, 20:06

Salut all.As vrea daca se poate pluginul de lj sa arate ca in poza aceata : Image

Ms : :D
RoyalServer
User avatar
Arion
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3317
Joined: 15 May 2008, 21:19
Detinator Steam: Da
SteamID: arion1338
Reputatie: Fost Mapper eXtreamCS
Fost Detinator HNS.eXtreamCS.com
Nume anterior : Seekers
Scripter Echipa eXtreamCS
Fost Moderator jutator
Discord: laurentiuandrei
Has thanked: 402 times
Been thanked: 413 times
Contact:

22 Apr 2011, 21:51

Ala e cel classic cu ceva modificari :\
Motoreta
Membru, skill 0
Membru, skill 0
Posts: 11
Joined: 22 Apr 2011, 19:53
Detinator Steam: Da
Detinator server CS: DA
Has thanked: 4 times
Been thanked: 1 time

22 Apr 2011, 22:18

poti sa il modifici tu plss :D
Motoreta
Membru, skill 0
Membru, skill 0
Posts: 11
Joined: 22 Apr 2011, 19:53
Detinator Steam: Da
Detinator server CS: DA
Has thanked: 4 times
Been thanked: 1 time

24 Apr 2011, 02:17

ma ajuta cineva ? :(
User avatar
MHz&3viL
Membru, skill +1
Membru, skill +1
Posts: 184
Joined: 26 Nov 2007, 21:41
Detinator Steam: Da
CS Status: EviL ZonE
Detinator server CS: cs.evilz.ro
SteamID: mhz_evilz
Location: Satu Mare
Has thanked: 1 time
Been thanked: 13 times

24 Apr 2011, 02:57

Pune sursa.
Motoreta
Membru, skill 0
Membru, skill 0
Posts: 11
Joined: 22 Apr 2011, 19:53
Detinator Steam: Da
Detinator server CS: DA
Has thanked: 4 times
Been thanked: 1 time

24 Apr 2011, 17:01

Sursa lj stats | Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <colorchat>
#include <fakemeta>

#pragma semicolon 1

#define INFO_ZERO 0
#define INFO_ONE 1

// Ints
new pluginstatus;
new ljtop_save;
new gBeam;
new strafes[33];
new goodsync[33];
new badsync[33];
new lj15_names[10][33];
new lj15_authid[10][33];
new lj15_distance[10];
new lj15_maxspeed[10];
new lj15_prestrafe[10];
new lj15_strafes[10];
new lj15_sync[10];
new lj15_type[10][5];
new edgefriction;
new mp_footsteps;
new sv_cheats;
new sv_gravity;
new sv_airaccelerate;
new sv_maxspeed;
new sv_stepsize;
new sv_maxvelocity;

// Bools
new bool:gHasSpeed[33];
new bool:gHasLjStats[33];
new bool:gInAir[33];
new bool:cjumped[33];
new bool:doubleducked[33];
new bool:cducked[33];
new bool:induck[33];
new bool:OnGround[33];
new bool:turning_right[33];
new bool:turning_left[33];
new bool:straifing_aw[33];
new bool:straifing_sd[33];

// Floats
new Float:old_angle1[33];
new Float:angle[3];
new Float:vFramePos[33][129][3];
new Float:vFrameSpeed[33][129][3];
new Float:vBeamPos[33][129][3];
new Float:vBeamPosStatus[33][129];
new Float:vDuckedAt[33][3];
new Float:vJumpedAt[33][3];
new Float:vJumpedAt2[3];
new Float:xDistance;
new Float:yDistance;
new Float:fDistance;
new Float:fDistance1;
new Float:fDistance2;
new Float:rDistance[2];
new Float:rLandPos[3];
new Float:vOrigin[3];
new Float:vOldOrigin[33][3];
new Float:vTraceEnd[3];
new Float:fMaxAirSpeed[33];
new Float:fMaxGroundSpeed[33];
new Float:vVelocity[3];
new Float:fSpeed;
new Float:gSpeed;
new Float:OldSpeed[33];
new Float:frame2time;
new Float:jumptime[33];
new Float:lasttime[33];

// Strings
new const gPLUGIN[] = "LjS - eXtreme Mod";
new const gVERSION[] = "2.11";
new const gAUTHOR[] = "Fatalis & kzlt`Numb";

public plugin_init()
{
	register_plugin(gPLUGIN, gVERSION, gAUTHOR);
	
	register_cvar(gPLUGIN, gVERSION, FCVAR_SERVER);
	
	register_forward(FM_Touch, "fwdTouch", 1);
	register_forward(FM_PlayerPreThink, "fwdPlayerPreThink", 0);
	register_forward(FM_PlayerPostThink, "fwdPlayerPostThink", 0);
	register_forward(FM_StartFrame, "fwdStartFrame", 0);
	
	register_dictionary("common.txt");
	register_clcmd("amx_resetljrec", "topreset", ADMIN_ALL, "- resets ljrec and ljtop");
	register_clcmd("amx_resetljtop", "topreset", ADMIN_ALL, "- resets ljrec and ljtop");
	
	register_clcmd("say /ljstats", "cmdLjStats", ADMIN_ALL, "- enables/disables longjump stats");
	register_clcmd("say /speed", "cmdSpeed", ADMIN_ALL, "- enabled/disables visible speed");
	register_clcmd("say /lj_version", "cmdVersion", -1, "- prints plugin version");
	register_clcmd("say /ljs_version", "cmdVersion", -1, "- prints plugin version");
	register_clcmd("say /ljversion", "cmdVersion", -1, "- prints plugin version");
	register_clcmd("say /ljsversion", "cmdVersion", ADMIN_ALL, "- prints plugin version");
	
	register_cvar("kz_ljs_enabled", "1"); // enables/disables the plugin
	
	register_cvar("kz_good_lj","240.0");   // good longjumps
	register_cvar("kz_pro_lj","245.0");    // professional longjumps
	register_cvar("kz_leet_lj","250.0");   // leet longjump
	register_cvar("kz_min_lj","215.0");    // minimal longjump
	register_cvar("kz_max_lj","260.0");    // maximal longjump
	register_cvar("kz_cj_dif","5.0");      // difrence between lj and cj
	register_cvar("kz_lj_sounds","1");   // enables leet/pro/good lj/cj sounds
	register_cvar("kz_leet_lj_clr","1"); // color of leet lj (1=red, 2=green, 3=blue, 4=gray, 5=team, 0=default)
	register_cvar("kz_pro_lj_clr","2");  // color of pro lj
	register_cvar("kz_good_lj_clr","4"); // color of good lj
	register_cvar("kz_leet_cj_clr","1"); // color of leet lj
	register_cvar("kz_pro_cj_clr","2");  // color of pro lj
	register_cvar("kz_good_cj_clr","4"); // color of good lj
	
	register_cvar("kz_ljstats_red","0");     // red color of /ljstats
	register_cvar("kz_ljstats_green","255"); // green color of /ljstats
	register_cvar("kz_ljstats_blue","159");  // blue color of /ljstats
	
	register_cvar("kz_ljs_beam", "2");	 // 1=normal beam, 2=uber beam, 0=beam off
	
	register_cvar("kz_legal_settings", "1"); // enables protection 4 legal kreedz settings
	
	register_cvar("kz_ljs_fastserver", "2");  // Is your server fast? (0=slow, 1=normal, 2=good)
	register_cvar("kz_ljs_speedtype", "0");   // Speedometer type
	
	register_cvar("kz_lj_top", "3");         // LongJump top (0=Notnigh, 1=ColorChat, 2=top, 3=top+ColorChat)
	register_cvar("kz_ljs_topsave", "1");    // Do you want to save ljtop after mapchange?
	register_cvar("kz_ljs_rank_by", "0");    // How ranking will work? 0=name, 1=steam, 2=ip
	
	register_clcmd( "say /lj15", "show_lj15", -1, "- display lj10" );
	register_clcmd( "say /ljtop15", "show_lj15", -1, "- display lj10" );
	register_clcmd( "say /lj10", "show_lj15", ADMIN_ALL, "- display lj10" );
	register_clcmd( "say /ljtop10", "show_lj15", ADMIN_ALL, "- display lj10" );
	register_clcmd( "say /ljtop", "show_lj15", ADMIN_ALL, "- display lj10" );
	register_clcmd( "say /ljrec", "show_leet_ljumper", ADMIN_ALL, "- prints best longjump" );
	
	register_clcmd( "say /tele", "gocheck", -1, " - teleported" );
	register_clcmd( "say /tp", "gocheck", -1, " - teleported" );
	register_clcmd( "say /gocheck", "gocheck", -1, " - teleported" );
	register_clcmd( "say /gc", "gocheck", -1, " - teleported" );
	register_clcmd( "say .tele", "gocheck", -1, " - teleported" );
	register_clcmd( "say .tp", "gocheck", -1, " - teleported" );
	register_clcmd( "say .gocheck", "gocheck", -1, " - teleported" );
	register_clcmd( "say .gc", "gocheck", -1, " - teleported" );
	register_clcmd( "/tele", "gocheck", -1, " - teleported" );
	register_clcmd( "/tp", "gocheck", -1, " - teleported" );
	register_clcmd( "/gocheck", "gocheck", -1, " - teleported" );
	register_clcmd( "/gc", "gocheck", -1, " - teleported" );
	register_clcmd( ".tele", "gocheck", -1, " - teleported" );
	register_clcmd( ".tp", "gocheck", -1, " - teleported" );
	register_clcmd( ".gocheck", "gocheck", -1, " - teleported" );
	register_clcmd( ".gc", "gocheck", -1, " - teleported" );
	register_clcmd( "say /start", "gocheck", -1, " - reseted" );
	register_clcmd( "say /reset", "gocheck", -1, " - reseted" );
	register_clcmd( "say /restart", "gocheck", -1, " - reseted" );
	register_clcmd( "say /spawn", "gocheck", -1, " - reseted" );
	register_clcmd( "say .start", "gocheck", -1, " - reseted" );
	register_clcmd( "say .reset", "gocheck", -1, " - reseted" );
	register_clcmd( "say .restart", "gocheck", -1, " - reseted" );
	register_clcmd( "say .spawn", "gocheck", -1, " - reseted" );
	register_clcmd( "/start", "gocheck", -1, " - reseted" );
	register_clcmd( "/reset", "gocheck", -1, " - reseted" );
	register_clcmd( "/restart", "gocheck", -1, " - reseted" );
	register_clcmd( "/spawn", "gocheck", -1, " - reseted" );
	register_clcmd( ".start", "gocheck", -1, " - reseted" );
	register_clcmd( ".reset", "gocheck", -1, " - reseted" );
	register_clcmd( ".restart", "gocheck", -1, " - reseted" );
	register_clcmd( ".spawn", "gocheck", -1, " - reseted" );
	register_clcmd( "+hook", "gocheck", -1, " - used hook" );
	register_clcmd( "-hook", "gocheck", -1, " - used hook" );
	register_clcmd( "say /stuck", "gocheck", -1, " - teleported" );
	register_clcmd( "say /unstuck", "gocheck", -1, " - teleported" );
	register_clcmd( "say .stuck", "gocheck", -1, " - teleported" );
	register_clcmd( "say .unstuck", "gocheck", -1, " - teleported" );
	register_clcmd( "/stuck", "gocheck", -1, " - teleported" );
	register_clcmd( "/unstuck", "gocheck", -1, " - teleported" );
	register_clcmd( ".stuck", "gocheck", -1, " - teleported" );
	register_clcmd( ".unstuck", "gocheck", -1, " - teleported" );
	
	TeamInfo = get_user_msgid("TeamInfo");
	SayText = get_user_msgid("SayText");

	edgefriction = get_cvar_pointer("edgefriction");
	mp_footsteps = get_cvar_pointer("mp_footsteps");
	sv_cheats = get_cvar_pointer("sv_cheats");
	sv_gravity = get_cvar_pointer("sv_gravity");
	sv_airaccelerate = get_cvar_pointer("sv_airaccelerate");
	sv_maxspeed = get_cvar_pointer("sv_maxspeed");
	sv_stepsize = get_cvar_pointer("sv_stepsize");
	sv_maxvelocity = get_cvar_pointer("sv_maxvelocity");
}

public plugin_cfg() {
	set_cvar_string("edgefriction", "2");
	set_cvar_string("mp_footsteps", "1");
	set_cvar_string("sv_cheats", "0");
	set_cvar_string("sv_gravity", "800");
	set_cvar_string("sv_airaccelerate", "100");
	set_cvar_string("sv_maxspeed", "320");
	set_cvar_string("sv_stepsize", "18");
	set_cvar_string("sv_maxvelocity", "2000");
}

public plugin_precache()
{
	switch(random_num(1,6)) {
		case 1:
		{
	 		gBeam = precache_model("sprites/zbeam1.spr");
		}
		case 2:
		{
			gBeam = precache_model("sprites/zbeam2.spr");
		}
		case 3:
		{
		 	gBeam = precache_model("sprites/zbeam3.spr");
		}
		case 4:
		{
		 	gBeam = precache_model("sprites/zbeam4.spr");
		}
		case 5:
		{
		 	gBeam = precache_model("sprites/zbeam5.spr");
		}
		case 6:
		{
		 	gBeam = precache_model("sprites/zbeam6.spr");
		}
	}
	
	if (get_cvar_num("kz_lj_sounds") == 1)
	{
		precache_sound("misc/impressive.wav");
		precache_sound("misc/mod_godlike.wav");
		precache_sound("misc/mod_wickedsick.wav");
		precache_sound("misc/perfect.wav");
	}
	
	ljtop_save = INFO_ONE;
	if (get_cvar_num("kz_ljs_topsave") == 1)
		read_lj15();
	else
		ljtop_save = INFO_ZERO;
	
	if( get_cvar_num("kz_ljs_enabled") )
		pluginstatus = INFO_ONE;
	else
		pluginstatus = INFO_ZERO;
}

public read_lj15() {	
	new configsDir[64];
	get_configsdir(configsDir, 63);
	
	new filename[128];
	format(filename, 127, "%s/LjTop10.txt", configsDir);
		
	if( file_exists(filename) ) { 
		new distance[12], maxspeed[12], prestrafe[12], strafes[6], sync[6], line = 0, txtsize = 0;
		for( new i = 0 ; i < 10; i++ ) {
			if( (line=read_file(filename,line,lj15_names,32,txtsize))!=0 ) {
				if( (line=read_file(filename,line,lj15_authid,32,txtsize))!=0 ) {
					if( (line=read_file(filename,line,distance,11,txtsize))!=0 )  {
						if( (line=read_file(filename,line,maxspeed,11,txtsize))!=0 )  {
							if( (line=read_file(filename,line,prestrafe,11,txtsize))!=0 )  {
								if( (line=read_file(filename,line,strafes,5,txtsize))!=0 )  {
									if( (line=read_file(filename,line,sync,5,txtsize))!=0 )  {
										if( (line=read_file(filename,line,lj15_type,4,txtsize))!=0 ) {
											lj15_distance = str_to_num( distance );
											lj15_maxspeed = str_to_num( maxspeed );
											lj15_prestrafe = str_to_num( prestrafe );
											lj15_strafes = str_to_num( strafes );
											lj15_sync = str_to_num( sync );
										}
									}
								}
							}
						}
					}
				}
			}
			else
				return PLUGIN_HANDLED;
		}
	}
	return PLUGIN_HANDLED;
}

public topreset(id)
{
	if (get_user_flags(id)&ADMIN_RCON)
	{
		new configsDir[64];
		get_configsdir(configsDir, 63);
		
		new filename[128];
		format(filename, 127, "%s/LjTop10.txt", configsDir);
		
		if( file_exists(filename) && ljtop_save == 1 )
			delete_file(filename);
		
		new info_none[33];
		for( new i = 0; i < 10; i++ ) {
			format( lj15_names, 32, info_none );
			format( lj15_authid, 32, info_none );
			lj15_distance[i] = INFO_ZERO;
			lj15_maxspeed[i] = INFO_ZERO;
			lj15_prestrafe[i] = INFO_ZERO;
			lj15_strafes[i] = INFO_ZERO;
			lj15_sync[i] = INFO_ZERO;
			format( lj15_type[i], 32, info_none );
		}
		
		new name[32], authid[32];
		get_user_name( id, name, 31 );
		if (get_cvar_num("kz_ljs_rank_by") == 1)
			get_user_authid( id, authid ,31 );
		else
			get_user_ip( id, authid, 31, 1);
		
		log_amx("LjS: ^"%s<%d><%s><>^" reseted ljtop", name, get_user_userid(id), authid);
		
		console_print(id, "[XJ] LongJump top and rec reseted!");
		client_print(0, print_chat, "[XJ] LongJump top and rec reseted!");
	}
	else
		console_print(id, "%L", id, "NO_ACC_COM");
	return PLUGIN_HANDLED;
}

public check_lj15(id, Distance, MaxAirSpeed, MaxGroundSpeed, strafes, sync, type) {
	new jumptype[5];
	if (type == 1)
		jumptype = "cj";
	else
		jumptype = "lj";
	new name[32], authid[32];
	get_user_name( id, name, 31 );
	if (get_cvar_num("kz_ljs_rank_by") == 1)
		get_user_authid( id, authid ,31 );
	else if (get_cvar_num("kz_ljs_rank_by") == 2)
		get_user_ip( id, authid, 31, 1);
	else
		get_user_name( id, authid, 31 );
	
	if( Distance > lj15_distance[9] || (Distance == lj15_distance[9] && equal(lj15_type[9], "cj") && equal(jumptype, "lj")) ) {
		for( new i = 0; i < 10; i++ ) {
			if( Distance > lj15_distance[i] || (Distance == lj15_distance[i] && equal(lj15_type[i], "cj") && equal(jumptype, "lj")) ) {
				new pos = i;
				while( !equal( lj15_authid[pos], authid ) && pos < 9 )
					pos++ ;
				for( new j = pos; j > i; j-- ) {
					format( lj15_names[j], 32, lj15_names[j-1] );
					format( lj15_authid[j], 32, lj15_authid[j-1] );
					lj15_distance[j] = lj15_distance[j-1];
					lj15_maxspeed[j] = lj15_maxspeed[j-1];
					lj15_prestrafe[j] = lj15_prestrafe[j-1];
					lj15_strafes[j] = lj15_strafes[j-1];
					lj15_sync[j] = lj15_sync[j-1];
					format( lj15_type[j], 4, lj15_type[j-1] );
				}
				
				format( lj15_names[i], 32, name );
				format( lj15_authid[i], 32, authid );
				lj15_distance[i] = Distance;
				lj15_maxspeed[i] = MaxAirSpeed;
				lj15_prestrafe[i] = MaxGroundSpeed;
				lj15_strafes[i] = strafes;
				lj15_sync[i] = sync;
				format( lj15_type[i], 4, jumptype );
				if (get_cvar_num("kz_lj_top") == 2 || get_cvar_num("kz_lj_top") == 3 )
					client_print(0, print_chat, "[XJ] %s now is %d in lj top 10 with %d.%06d %s!", name, i+1, Distance/1000000, Distance%1000000, jumptype);
				
				if (ljtop_save == 1)
					save_lj15();
				
				return;
			}
			if( equal( lj15_authid[i], authid ) )
				return;
		}
	}
	return;
}

public save_lj15() {
	new configsDir[64];
	get_configsdir(configsDir, 63);
	
	new filename[128];
	format(filename, 127, "%s/LjTop10.txt", configsDir);
	
	if( file_exists(filename) )  
		delete_file(filename);
	
	for( new i = 0; i < 10; i++ ) {
		
		new distance[12], maxspeed[12], prestrafe[12], strafes[6], sync[6];
		num_to_str(lj15_distance[i],distance,11);
		num_to_str(lj15_maxspeed[i],maxspeed,11);
		num_to_str(lj15_prestrafe[i],prestrafe,11);
		num_to_str(lj15_strafes[i],strafes,5);
		num_to_str(lj15_sync[i],sync,5);
		
		if ( equal(lj15_type[i], "lj") || equal(lj15_type[i], "cj") )
		{
			write_file(filename, lj15_names[i]);
			write_file(filename, lj15_authid[i]);
			write_file(filename, distance);
			write_file(filename, maxspeed);
			write_file(filename, prestrafe);
			write_file(filename, strafes);
			write_file(filename, sync);
			write_file(filename, lj15_type[i]);
		}
	}
	return;
}

public show_leet_ljumper(id) {
	if( get_cvar_num("kz_ljs_enabled") && (get_cvar_num("kz_lj_top") == 2 || get_cvar_num("kz_lj_top") == 3) )
	{
		if (lj15_distance[0])
			client_print(id, print_chat, "[XJ] %s has the %d.%06d %s record!", lj15_names[0], lj15_distance[0]/1000000, lj15_distance[0]%1000000, lj15_type[0]);
		else
			client_print(id, print_chat, "[XJ] LongJump record not setted!");
	}
}

public show_lj15(id) {
	if( get_cvar_num("kz_ljs_enabled") && (get_cvar_num("kz_lj_top") == 2 || get_cvar_num("kz_lj_top") == 3) )
	{	
		new buffer[2048], name[64];
		
		new len = format(buffer, 2047, "<body bgcolor=#94AEC6><table width=100%% cellpadding=2 cellspacing=0 border=0>");
		len += format(buffer[len], 2047-len, "<tr  align=center bgcolor=#52697B><th width=5%%> # <th width=34%% align=left> Name <th width=10%%> Distance <th  width=10%%> MaxSpeed <th  width=11%%> PreStrafe <th  width=9%%> Strafes <th  width=6%%> Sync <th  width=10%%> Type");
		
		for (new i = 0; i < 10; i++) {		
			if (lj15_distance[i] == 0) {
				len += format(buffer[len], 2047-len, "<tr align=center%s><td> %d <td align=left> %s <td> %s <td> %s <td> %s <td> %s <td> %s <td> %s", ((i%2)==0) ? "" : " bgcolor=#A4BED6", (i+1), "-", "-", "-", "-", "-", "-", "-");
				i=10;
			}
			else
			{
				name = lj15_names[i];
				while (containi(name, "<") != -1)
					replace(name, 63, "<", "<");
				while (containi(name, ">") != -1)
					replace(name, 63, ">", ">");
				len += format(buffer[len], 2047-len, "<tr align=center%s><td> %d <td align=left> %s <td> %d.%03d <td> %d.%03d <td> %d.%03d <td> %d <td> %d <td> %s", ((i%2)==0) ? "" : " bgcolor=#A4BED6", (i+1), name, (lj15_distance[i]/1000000), (lj15_distance[i]%1000000/1000), (lj15_maxspeed[i]/1000000), (lj15_maxspeed[i]%1000000/1000), (lj15_prestrafe[i]/1000000), (lj15_prestrafe[i]%1000000/1000), lj15_strafes[i], lj15_sync[i], lj15_type[i]);
			}
		}
		
		len += format(buffer[len], 2047-len, "</table></body>");
		
		show_motd(id, buffer, "Top10 LongJumps");
	}
}

public gocheck(id) {
	gInAir[id] = false;
	cjumped[id] = false;
}

public ddend(id) {
	doubleducked[id] = false;
}

public testcjstart(id) {
	cducked[id] = false;
}

public client_putinserver(id) {
	if (get_cvar_num("kz_ljs_fastserver") == 2)
		set_task(0.5, "tskFps", id+334491, "", 0, "b", 0);
	else
		set_task(1.0, "tskFps", id+334491, "", 0, "b", 0);
	
	turning_right[id] = false;
	turning_left[id] = false;
	straifing_aw[id] = false;
	straifing_sd[id] = false;
	cducked[id] = false;
	cjumped[id] = false;
	doubleducked[id]=false;
	gHasSpeed[id] = false;
	gHasLjStats[id] = false;
	induck[id] = false;
	OnGround[id] = false;
}

public client_disconnect(id) {
	turning_right[id] = false;
	turning_left[id] = false;
	straifing_aw[id] = false;
	straifing_sd[id] = false;
	OnGround[id] = false;
	gHasSpeed[id] = false;
	gHasLjStats[id] = false;
	cducked[id] = false;
	doubleducked[id]=false;
	cjumped[id] = false;
	induck[id] = false;
	
	if( task_exists(id+334490, 0) )
		remove_task(id+334490, 0);
	
	if( task_exists(id+334491, 0) )
		remove_task(id+334491, 0);
}

public tskFps(id)
{
	if( get_cvar_num("kz_legal_settings") && get_cvar_num("kz_ljs_enabled")) {
		id-=334491;
		client_cmd(id, "developer 0;fps_max 101");
	}
}

public cmdVersion(id) {
	ColorChat(id, GREY, "^x04[XJ] Plugin: ^x01%s^x04 by: ^x03%s", gPLUGIN, gAUTHOR);
	if( get_cvar_num("kz_ljs_enabled") ) {
		ColorChat(id, BLUE, "^x04[XJ] Version: ^x01%s^x04, Status:^x03 enabled", gVERSION);
	} else {
		ColorChat(id, RED, "^x04[XJ] Version: ^x01%s^x04, Status:^x03 disabled", gVERSION);
	}
}

public cmdSpeed(id)
{
	if( get_cvar_num("kz_ljs_enabled") && !gHasSpeed[id] )
	{
		gHasSpeed[id] = true;
		if (get_cvar_num("kz_ljs_fastserver") == 1)
			set_task(0.1, "tskSpeed", id+334490, "", 0, "b", 0);
		if (!(get_cvar_num("kz_ljs_fastserver") == 1 || get_cvar_num("kz_ljs_fastserver") == 2) )
			set_task(0.5, "tskSpeed", id+334490, "", 0, "b", 0);
		client_print(id, print_chat, "[XJ] Speedometer enabled. To disable, type /speed.");
	}
	else if( get_cvar_num("kz_ljs_enabled") )
	{
		gHasSpeed[id] = false;
		if( task_exists(id+334490, 0) )
			remove_task(id+334490, 0);
		client_print(id, print_chat, "[XJ] Speedometer disabled.");
	}
	
	return PLUGIN_CONTINUE;
}

public tskSpeed(taskid)
{
	taskid-=334490;
	
	if( is_user_alive(taskid) && get_cvar_num("kz_ljs_enabled") )
	{
		pev(taskid, pev_velocity, vVelocity);
		if (pev(taskid, pev_flags)&FL_ONGROUND && pev(taskid, pev_flags)&FL_INWATER)
			vVelocity[2]-=vVelocity[2];
				
		if (get_cvar_num("kz_ljs_fastserver") == 1)
			set_hudmessage(255, 255, 255, -1.0, 0.65, 0, 0.0, 0.1, 0.0, 0.0, 2);
		if (!(get_cvar_num("kz_ljs_fastserver") == 1 || get_cvar_num("kz_ljs_fastserver") == 2) )
			set_hudmessage(255, 255, 255, -1.0, 0.65, 0, 0.0, 0.5, 0.0, 0.0, 2);
		
		if (get_cvar_num("kz_ljs_speedtype") == 1) {
			new idist;
			idist = floatround(vector_length(vVelocity), floatround_floor);
			show_hudmessage(taskid, "%d units/second", idist);
		} else if (get_cvar_num("kz_ljs_speedtype") == 2) {
			if (!(vVelocity[2] == 0))
				vVelocity[2]-=vVelocity[2];
			gSpeed = vector_length(vVelocity);
			new idist2;
			idist2 = floatround(gSpeed, floatround_floor);
			show_hudmessage(taskid, "%d velocity", idist2);
		} else {
			if (!(vVelocity[2] == 0))
				vVelocity[2]-=vVelocity[2];
			gSpeed = vector_length(vVelocity);
			pev(taskid, pev_velocity, vVelocity);
			if (pev(taskid, pev_flags)&FL_ONGROUND && pev(taskid, pev_flags)&FL_INWATER)
				vVelocity[2]-=vVelocity[2];
			new idist, idist2;
			idist = floatround(vector_length(vVelocity), floatround_floor);
			idist2 = floatround(gSpeed, floatround_floor);
			show_hudmessage(taskid, "%d units/second^n%d velocity", idist, idist2);
		}
	}
}

public cmdLjStats(id)
{
	if( get_cvar_num("kz_ljs_enabled") && !gHasLjStats[id] )
	{
		gHasLjStats[id] = true;
		
		client_print(id, print_chat, "[XJ] Longjump Stats enabled. To disable, type /ljstats.");
	}
	else if( get_cvar_num("kz_ljs_enabled") )
	{
		gHasLjStats[id] = false;
		
		client_print(id, print_chat, "[XJ] Longjump Stats disabled.");
	}
	
	return PLUGIN_CONTINUE;
}

public fwdStartFrame() {
	if( get_cvar_num("kz_legal_settings") && get_cvar_num("kz_ljs_enabled") ) {
		if (get_pcvar_num(edgefriction) != 2)
			set_pcvar_num(edgefriction, 2);
		
		if (get_pcvar_num(mp_footsteps) != 1)
			set_pcvar_num(mp_footsteps, 1);
		
		if (get_pcvar_num(sv_cheats) != 0)
			set_pcvar_num(sv_cheats, 0);
		
		if (get_pcvar_num(sv_gravity) != 800)
			set_pcvar_num(sv_gravity, 800);
		
		if (get_pcvar_num(sv_airaccelerate) != 100)
			set_pcvar_num(sv_airaccelerate, 100);
		
		if (get_pcvar_num(sv_maxspeed) != 320)
			set_pcvar_num(sv_maxspeed, 320);
		
		if (get_pcvar_num(sv_stepsize) != 18)
			set_pcvar_num(sv_stepsize, 18);
		
		if (get_pcvar_num(sv_maxvelocity) != 2000)
			set_pcvar_num(sv_maxvelocity, 2000);
	}
	
	if( get_cvar_num("kz_ljs_enabled") ) {
		if( !(pluginstatus) ) {
			ColorChat(0, BLUE, "^x04[XJ] ^x01%s ^x04plugin^x03 enabled ^x04!", gPLUGIN);
			pluginstatus = INFO_ONE;
		}
	} else {
		if( pluginstatus ) {
			ColorChat(0, RED, "^x04[XJ] ^x01%s ^x04plugin^x03 disabled ^x04!", gPLUGIN);
			pluginstatus = INFO_ZERO;
		}
	}
}

public fwdPlayerPreThink(id)
{
	if( is_user_alive(id) && get_cvar_num("kz_ljs_enabled") )
	{
		static Float:fGravity;
		pev(id, pev_gravity, fGravity);
		
		pev(id, pev_angles, angle);
		old_angle1[id] = angle[1];
		
		if (pev(id, pev_button)&IN_MOVERIGHT
		|| pev(id, pev_button)&IN_MOVELEFT
		|| pev(id, pev_button)&IN_FORWARD
		|| pev(id, pev_button)&IN_BACK) {
			pev(id, pev_velocity, vVelocity);
			if (!(vVelocity[2] == 0))
				vVelocity[2]-=vVelocity[2];
			if (vector_length(vVelocity) > OldSpeed[id])
				goodsync[id] += INFO_ONE;
			else
				badsync[id] += INFO_ONE;
		}
		pev(id, pev_velocity, vVelocity);
		if (!(vVelocity[2] == 0))
			vVelocity[2]-=vVelocity[2];
		OldSpeed[id] = vector_length(vVelocity);

		if( gInAir[id] == true ) {
			for( new i = 0; i < 127; i++ ) {
				if (vFramePos[id][i][0] == 0
				&& vFramePos[id][i][1] == 0
				&& vFramePos[id][i][2] == 0
				&& vFrameSpeed[id][i][0] == 0
				&& vFrameSpeed[id][i][1] == 0
				&& vFrameSpeed[id][i][2] == 0) {
					pev(id, pev_origin, vOrigin);
					vFramePos[id][i][0] = vOrigin[0];
					vFramePos[id][i][1] = vOrigin[1];
					vFramePos[id][i][2] = vOrigin[2];
					
					pev(id, pev_velocity, vVelocity);
					vFrameSpeed[id][i][0] = vVelocity[0];
					vFrameSpeed[id][i][1] = vVelocity[1];
					vFrameSpeed[id][i][2] = vVelocity[2];
					
					i=127;
				}
			}
		}

		pev(id, pev_velocity, vVelocity);
		if (pev(id, pev_flags)&FL_ONGROUND && pev(id, pev_flags)&FL_INWATER)
			vVelocity[2]-=vVelocity[2];
		fSpeed = vector_length(vVelocity);
		
		if (get_cvar_num("kz_ljs_fastserver") == 2 && gHasSpeed[id] == true) {
			if( task_exists(id+334490, 0) )
				remove_task(id+334490, 0);
			
			set_hudmessage(255, 255, 255, -1.0, 0.65, 0, 0.0, 0.1, 0.0, 0.0, 2);
			if (get_cvar_num("kz_ljs_speedtype") == 1) {
				new idist;
				idist = floatround(vector_length(vVelocity), floatround_floor);
				show_hudmessage(id, "%d units/second", idist);
			} else if (get_cvar_num("kz_ljs_speedtype") == 2) {
				if (!(vVelocity[2] == 0))
					vVelocity[2]-=vVelocity[2];
				gSpeed = vector_length(vVelocity);
				new idist2;
				idist2 = floatround(gSpeed, floatround_floor);
				show_hudmessage(id, "%d velocity", idist2);
			} else {
				if (!(vVelocity[2] == 0))
					vVelocity[2]-=vVelocity[2];
				gSpeed = vector_length(vVelocity);
				pev(id, pev_velocity, vVelocity);
				if (pev(id, pev_flags)&FL_ONGROUND && pev(id, pev_flags)&FL_INWATER)
					vVelocity[2]-=vVelocity[2];
				new idist, idist2;
				idist = floatround(vector_length(vVelocity), floatround_floor);
				idist2 = floatround(gSpeed, floatround_floor);
				show_hudmessage(id, "%d units/second^n%d velocity", idist, idist2);
			}			
		} else if ( gHasSpeed[id] == true
		&& !(get_cvar_num("kz_ljs_fastserver") == 2)
		&& !(task_exists(id+334490, 0)) )
		{
			if (get_cvar_num("kz_ljs_fastserver") == 1)
				set_task(0.1, "tskSpeed", id+334490, "", 0, "b", 0);
			if (!(get_cvar_num("kz_ljs_fastserver") == 1 || get_cvar_num("kz_ljs_fastserver") == 2) )
				set_task(0.5, "tskSpeed", id+334490, "", 0, "b", 0);
		}
		
		pev(id, pev_origin, vOrigin);
		fDistance = get_distance_f(vOldOrigin[id], vOrigin);
		pev(id, pev_origin, vOldOrigin[id]);
		
		if( pev(id, pev_speed) > 470
		|| ( pev(id, pev_maxspeed) != 250.0
		|| pev(id, pev_movetype) != MOVETYPE_WALK
		|| fGravity != 1.0
		|| get_pcvar_num(edgefriction) != 2
		|| get_pcvar_num(mp_footsteps) != 1
		|| get_pcvar_num(sv_cheats) != 0
		|| get_pcvar_num(sv_gravity) != 800
		|| get_pcvar_num(sv_airaccelerate) != 100
		|| get_pcvar_num(sv_maxspeed) != 320
		|| get_pcvar_num(sv_stepsize) != 18
		|| get_pcvar_num(sv_maxvelocity) != 2000 )
		|| pev(id, pev_waterlevel) >= 2
		|| fDistance > 20 )
		{
			gocheck(id);
			return FMRES_IGNORED;
		}
		
		if ( !(pev(id, pev_flags)&FL_ONGROUND) )
			lasttime[id] = get_gametime();
		
		if( gInAir[id] == true )
		{
			pev(id, pev_velocity, vVelocity);
			if (!(vVelocity[2] == 0))
				vVelocity[2]-=vVelocity[2];
			gSpeed = vector_length(vVelocity);
			if( gSpeed > fMaxAirSpeed[id] )
			{
				fMaxAirSpeed[id] = gSpeed;
			}
		}
		
		if( pev(id, pev_button)&IN_JUMP
		&& !(pev(id, pev_oldbuttons)&IN_JUMP)
		&& pev(id, pev_flags)&FL_ONGROUND
		&& gInAir[id] == false )
		{
			set_task(0.8,"gocheck", id);
			
			jumptime[id] = get_gametime();
			gInAir[id] = true;
			fMaxGroundSpeed[id] = fSpeed;
			OldSpeed[id] = fSpeed;
			fMaxAirSpeed[id] = fSpeed;
			
			pev(id, pev_origin, vOrigin);
			
			vJumpedAt[id][0] = vOrigin[0];
			vJumpedAt[id][1] = vOrigin[1];
			vJumpedAt[id][2] = vOrigin[2];
			
			if (doubleducked[id] == true && vOrigin[2] == vDuckedAt[id][2]) {
				cjumped[id] = true;
			} else {
				cjumped[id] = false;
			}
			doubleducked[id] = false;
			
			strafes[id] = INFO_ZERO;
			
			goodsync[id] = INFO_ZERO;
			badsync[id] = INFO_ZERO;
			
			turning_right[id] = false;
			turning_left[id] = false;
			straifing_aw[id] = false;
			straifing_sd[id] = false;
			if (cjumped[id] == false) {
				for( new i = 0; i < 127; i++ ) {
					vBeamPos[id][i][0] = vOrigin[0]-vOrigin[0];
					vBeamPos[id][i][1] = vOrigin[1]-vOrigin[1];
					vBeamPos[id][i][2] = vOrigin[2]-vOrigin[2];
				}
			}
			for( new i = 0; i < 127; i++ ) {
				vFramePos[id][i][0] = vOrigin[0]-vOrigin[0];
				vFramePos[id][i][1] = vOrigin[1]-vOrigin[1];
				vFramePos[id][i][2] = vOrigin[2]-vOrigin[2];
				
				vFrameSpeed[id][i][0] = vOrigin[0]-vOrigin[0];
				vFrameSpeed[id][i][1] = vOrigin[1]-vOrigin[1];
				vFrameSpeed[id][i][2] = vOrigin[2]-vOrigin[2];
			}
		}
		else if( pev(id, pev_flags)&FL_ONGROUND
		&& gInAir[id] == true )
		{
			set_task(0.5,"gocheck", id);
			gInAir[id] = false;
			
			pev(id, pev_origin, vOrigin);
			
			if( is_in_duck(id) )
				vOrigin[2]+=18.0;
			
			fDistance1 = get_distance_f(vJumpedAt[id], vOrigin)+32.0625;
			
			for( new i = 0; i < 127; i++ ) {
				if ( i == 127 || (vFramePos[id][i+1][0] == 0
				&& vFramePos[id][i+1][1] == 0
				&& vFramePos[id][i+1][2] == 0
				&& vFrameSpeed[id][i+1][0] == 0
				&& vFrameSpeed[id][i+1][1] == 0
				&& vFrameSpeed[id][i+1][2] == 0) ) {
					if (!(vFramePos[id][0][2] > vFramePos[id][i][2]))
						return FMRES_IGNORED;
					
					rLandPos[2] = vFrameSpeed[id][0][2] * vFrameSpeed[id][0][2] + (2 * get_pcvar_float(sv_gravity) * (vFramePos[id][0][2] - vFramePos[id][i][2]));
					rDistance[0] = (floatsqroot(rLandPos[2]) * -1) - vFrameSpeed[id][i-1][2];
					rDistance[1] = get_pcvar_float(sv_gravity)*-1;
					frame2time = floatdiv(rDistance[0], rDistance[1]);
					
					if (vFrameSpeed[id][i-1][0] < 0)
						vFrameSpeed[id][i-1][0] = vFrameSpeed[id][i-1][0]*-1;
					rDistance[0] = frame2time*vFrameSpeed[id][i-1][0];
					
					if (vFrameSpeed[id][i-1][1] < 0)
						vFrameSpeed[id][i-1][1] = vFrameSpeed[id][i-1][1]*-1;
					rDistance[1] = frame2time*vFrameSpeed[id][i-1][1];
					
					if (vFramePos[id][i-1][0] < vOrigin[0])
						rLandPos[0] = vFramePos[id][i-1][0] + rDistance[0];
					else
						rLandPos[0] = vFramePos[id][i-1][0] - rDistance[0];
					
					if (vFramePos[id][i-1][1] < vOrigin[1])
						rLandPos[1] = vFramePos[id][i-1][1] + rDistance[1];
					else
						rLandPos[1] = vFramePos[id][i-1][1] - rDistance[1];
					
					rLandPos[2] = vOrigin[2];
					
					frame2time += (lasttime[id]-jumptime[id]);
					if( vOrigin[2] == vJumpedAt[id][2] )
					{
						if( is_in_duck(id) && !(frame2time > 0.71 && frame2time < 0.77) )
							vOrigin[2] = vOrigin[2]*-1;
						else if( !(is_in_duck(id)) && !(frame2time > 0.65 && frame2time < 0.70) )
							vOrigin[2] = vOrigin[2]*-1;
					}
					
					i=127;
				}
			}
			
			fDistance2 = get_distance_f(vJumpedAt[id], rLandPos)+32.0625;
			if (fDistance1 > fDistance2) {
				fDistance = fDistance2;
				vOrigin[0] = rLandPos[0];
				vOrigin[1] = rLandPos[1];
			} else
				fDistance = fDistance1;
			
			vJumpedAt2[2] = vJumpedAt[id][2]-34.0;
			vTraceEnd[2] = vOrigin[2]-34.0;
			
			vJumpedAt2[0] = vJumpedAt[id][0];
			vTraceEnd[0] = vOrigin[0];
			vJumpedAt2[1] = vJumpedAt[id][1]-vJumpedAt[id][1];
			vTraceEnd[1] = vOrigin[1]-vOrigin[1];
			xDistance = get_distance_f(vJumpedAt2, vTraceEnd);
			
			vJumpedAt2[0] = vJumpedAt[id][0]-vJumpedAt[id][0];
			vTraceEnd[0] = vOrigin[0]-vOrigin[0];
			vJumpedAt2[1] = vJumpedAt[id][1];
			vTraceEnd[1] = vOrigin[1];
			yDistance = get_distance_f(vJumpedAt2, vTraceEnd);
			
			if (vJumpedAt[id][0] > vOrigin[0]) {
				vJumpedAt2[0] = vJumpedAt[id][0]+(xDistance*16.03125/fDistance);
				vTraceEnd[0] = vOrigin[0]-(xDistance*16.03125/fDistance);
			} else if (vJumpedAt[id][0] < vOrigin[0]) {
				vJumpedAt2[0] = vJumpedAt[id][0]-(xDistance*16.03125/fDistance);
				vTraceEnd[0] = vOrigin[0]+(xDistance*16.03125/fDistance);
			} else {
				vJumpedAt2[0] = vJumpedAt[id][0];
				vTraceEnd[0] = vOrigin[0];
			}
			
			if (vJumpedAt[id][1] > vOrigin[1]) {
				vJumpedAt2[1] = vJumpedAt[id][1]+(yDistance*16.03125/fDistance);
				vTraceEnd[1] = vOrigin[1]-(yDistance*16.03125/fDistance);
			} else if (vJumpedAt[id][1] < vOrigin[1]) {
				vJumpedAt2[1] = vJumpedAt[id][1]-(yDistance*16.03125/fDistance);
				vTraceEnd[1] = vOrigin[1]+(yDistance*16.03125/fDistance);
			} else {
				vJumpedAt2[1] = vJumpedAt[id][1];
				vTraceEnd[1] = vOrigin[1];
			}
			
			new type;
			
			if( vJumpedAt[id][2] == vOrigin[2]
			&& fDistance > get_cvar_num("kz_min_lj")
			&& fMaxGroundSpeed[id] < 277
			&& cjumped[id] == false
			&& !(fDistance > get_cvar_num("kz_max_lj")) )
			{
				type = INFO_ZERO;
				new Distance, MaxAirSpeed, MaxGroundSpeed, sync;
				if (goodsync[id] > 0)
					sync = (goodsync[id]*100/(goodsync[id]+badsync[id]));
				else
					sync = INFO_ZERO;
				Distance = floatround((fDistance*1000000), floatround_floor);
				MaxAirSpeed = floatround((fMaxAirSpeed[id]*1000000), floatround_floor);
				MaxGroundSpeed = floatround((fMaxGroundSpeed[id]*1000000), floatround_floor);
				check_lj15(id, Distance, MaxAirSpeed, MaxGroundSpeed, strafes[id], sync, type);
				if( gHasLjStats[id] )
				{
					if( get_cvar_num("kz_ljs_beam") == 1)
					{
						message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
						write_byte (0);
						write_coord(floatround(vJumpedAt2[0]));
						write_coord(floatround(vJumpedAt2[1]));
						write_coord(floatround(vJumpedAt2[2]));
						write_coord(floatround(vTraceEnd[0]));
						write_coord(floatround(vTraceEnd[1]));
						write_coord(floatround(vTraceEnd[2]));
						write_short(gBeam);
						write_byte(1);
						write_byte(5);
						write_byte(30);
						write_byte(20);
						write_byte(0);
						write_byte(random_num(32, 255));
						write_byte(random_num(32, 255));
						write_byte(random_num(32, 255));
						write_byte(200);
						write_byte(200);
						message_end();
					}
					else if( get_cvar_num("kz_ljs_beam") == 2)
					{
						set_task(1.0,"gocheck", id);
						set_task(1.5,"gocheck", id);
						set_task(2.0,"gocheck", id);
						set_task(2.5,"gocheck", id);
						for( new i = 0; i < 127; i++ ) {
							if( i == 0 ) {
								message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
								write_byte (0);
								write_coord(floatround(vJumpedAt2[0]));
								write_coord(floatround(vJumpedAt2[1]));
								write_coord(floatround(vTraceEnd[2]));
								write_coord(floatround(vBeamPos[id][0][0]));
								write_coord(floatround(vBeamPos[id][0][1]));
								write_coord(floatround(vTraceEnd[2]));
								write_short(gBeam);
								write_byte(1);
								write_byte(5);
								write_byte(30);
								write_byte(20);
								write_byte(0);
								write_byte(255);
								write_byte(255);
								write_byte(0);
								write_byte(200);
								write_byte(200);
								message_end();
								
								message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
								write_byte (0);
								write_coord(floatround(vBeamPos[id][0][0]));
								write_coord(floatround(vBeamPos[id][0][1]));
								write_coord(floatround(vTraceEnd[2]));
								write_coord(floatround(vBeamPos[id][1][0]));
								write_coord(floatround(vBeamPos[id][1][1]));
								write_coord(floatround(vTraceEnd[2]));
								write_short(gBeam);
								write_byte(1);
								write_byte(5);
								write_byte(30);
								write_byte(20);
								write_byte(0);
								write_byte(255);
								write_byte(255);
								write_byte(0);
								write_byte(200);
								write_byte(200);
								message_end();
							}
							else if( i == 127 || (vBeamPos[id][i+1][0] == 0
							&& vBeamPos[id][i+1][1] == 0
							&& vBeamPos[id][i+1][2] == 0) )
							{
								message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
								write_byte (0);
								write_coord(floatround(vBeamPos[id][i][0]));
								write_coord(floatround(vBeamPos[id][i][1]));
								write_coord(floatround(vTraceEnd[2]));
								write_coord(floatround(vOrigin[0]));
								write_coord(floatround(vOrigin[1]));
								write_coord(floatround(vTraceEnd[2]));
								write_short(gBeam);
								write_byte(1);
								write_byte(5);
								write_byte(30);
								write_byte(20);
								write_byte(0);
								if (vBeamPosStatus[id][i] == 1) {
									write_byte(255);
									write_byte(0);
									write_byte(0);
								} else {
									write_byte(255);
									write_byte(255);
									write_byte(0);
								}
								write_byte(200);
								write_byte(200);
								message_end();
								
								message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
								write_byte (0);
								write_coord(floatround(vOrigin[0]));
								write_coord(floatround(vOrigin[1]));
								write_coord(floatround(vTraceEnd[2]));
								write_coord(floatround(vTraceEnd[0]));
								write_coord(floatround(vTraceEnd[1]));
								write_coord(floatround(vTraceEnd[2]));
								write_short(gBeam);
								write_byte(1);
								write_byte(5);
								write_byte(30);
								write_byte(20);
								write_byte(0);
								if (vBeamPosStatus[id][i] == 1) {
									write_byte(255);
									write_byte(0);
									write_byte(0);
								} else {
									write_byte(255);
									write_byte(255);
									write_byte(0);
								}
								write_byte(200);
								write_byte(200);
								message_end();
								i=127;
							} else {
								message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
								write_byte (0);
								write_coord(floatround(vBeamPos[id][i][0]));
								write_coord(floatround(vBeamPos[id][i][1]));
								write_coord(floatround(vTraceEnd[2]));
								write_coord(floatround(vBeamPos[id][i+1][0]));
								write_coord(floatround(vBeamPos[id][i+1][1]));
								write_coord(floatround(vTraceEnd[2]));
								write_short(gBeam);
								write_byte(1);
								write_byte(5);
								write_byte(30);
								write_byte(20);
								write_byte(0);
								if (vBeamPosStatus[id][i] == 1) {
									write_byte(255);
									write_byte(0);
									write_byte(0);
								} else {
									write_byte(255);
									write_byte(255);
									write_byte(0);
								}
								write_byte(200);
								write_byte(200);
								message_end();
							}
						}
					}
					
					new ljStatsRed = get_cvar_num("kz_ljstats_red");
					new ljStatsGreen = get_cvar_num("kz_ljstats_green");
					new ljStatsBlue = get_cvar_num("kz_ljstats_blue");
					
					set_hudmessage(ljStatsRed, ljStatsGreen, ljStatsBlue, -1.0, 0.70, 0, 0.0, 2.0, 0.1, 0.1, 3);
					
					show_hudmessage(id,
						"Distance: %f^nMaxSpeed: %f^nPreStrafe: %f^nStrafes: %d^nSync: %d",
						fDistance, fMaxAirSpeed[id], fMaxGroundSpeed[id], strafes[id], sync );
					
					client_print(id, print_console,
						"Distance: %f MaxSpeed: %f PreStrafe: %f Strafes: %d Sync: %d",
						fDistance, fMaxAirSpeed[id], fMaxGroundSpeed[id], strafes[id], sync );
					
					if (get_cvar_num("kz_lj_sounds") == 2) {
						new idist;
						idist = floatround(fDistance, floatround_floor);
						new strdist[128];
						num_to_word(idist, strdist, 127);
						client_cmd(id, "speak ^"vox/%s uniform(e30) it south(e15)^"", strdist);
					}
				}
				
				if( fDistance < get_cvar_num("kz_max_lj")
				&& !(fDistance < get_cvar_num("kz_leet_lj"))
				&& !(0 > get_cvar_num("kz_leet_lj"))
				&& (get_cvar_num("kz_lj_top") == 1
				|| get_cvar_num("kz_lj_top") == 3) )
				{
					new name[33];
					get_user_name(id, name, 31);
					if (get_cvar_num("kz_leet_lj_clr") < 6 && get_cvar_num("kz_leet_lj_clr") > 0) {
						switch(get_cvar_num("kz_leet_lj_clr")) {
							case 1: ColorChat(0, RED, "[XJ] %s jumped %.3f units!", name, fDistance);
							case 2: ColorChat(0, GREEN, "[XJ] %s jumped %.3f units!", name, fDistance);
							case 3: ColorChat(0, BLUE, "[XJ] %s jumped %.3f units!", name, fDistance);
							case 4: ColorChat(0, GREY, "[XJ] %s jumped %.3f units!", name, fDistance);
							case 5: ColorChat(0, TEAM_COLOR, "[XJ] %s jumped %.3f units!", name, fDistance);
						}
					} else
						client_print(0, print_chat, "[XJ] %s jumped %.3f units!", name, fDistance);
					
					if (get_cvar_num("kz_lj_sounds") == 1 && (get_cvar_num("kz_lj_top") == 1 || get_cvar_num("kz_lj_top") == 3) ) {
						new players[32], num;
						get_players(players, num);
						for (new i; i < num; ++i) {
							client_cmd(i, "speak misc/mod_wickedsick");
						}
						client_cmd(id, "speak misc/mod_godlike");
					}
				}
				
				else if( fDistance < get_cvar_num("kz_max_lj")
				&& !(fDistance < get_cvar_num("kz_pro_lj"))
				&& !(0 > get_cvar_num("kz_pro_lj"))
				&& (get_cvar_num("kz_lj_top") == 1
				|| get_cvar_num("kz_lj_top") == 3) )
				{
					new name[33];
					get_user_name(id, name, 31);
					if (get_cvar_num("kz_pro_lj_clr") < 6 && get_cvar_num("kz_pro_lj_clr") > 0) {
						switch(get_cvar_num("kz_pro_lj_clr")) {
							case 1: ColorChat(0, RED, "[XJ] %s jumped %.3f units!", name, fDistance);
							case 2: ColorChat(0, GREEN, "[XJ] %s jumped %.3f units!", name, fDistance);
							case 3: ColorChat(0, BLUE, "[XJ] %s jumped %.3f units!", name, fDistance);
							case 4: ColorChat(0, GREY, "[XJ] %s jumped %.3f units!", name, fDistance);
							case 5: ColorChat(0, TEAM_COLOR, "[XJ] %s jumped %.3f units!", name, fDistance);
						}
					} else
						client_print(0, print_chat, "[XJ] %s jumped %.3f units!", name, fDistance);
					
					if (get_cvar_num("kz_lj_sounds") == 1 && (get_cvar_num("kz_lj_top") == 1 || get_cvar_num("kz_lj_top") == 3) ) {
						client_cmd(id, "speak misc/perfect");
					}
				}
				
				else if( fDistance < get_cvar_num("kz_max_lj")
				&& !(fDistance < get_cvar_num("kz_good_lj"))
				&& !(0 > get_cvar_num("kz_good_lj"))
				&& (get_cvar_num("kz_lj_top") == 1
				|| get_cvar_num("kz_lj_top") == 3) )
				{
					new name[33];
					get_user_name(id, name, 31);
					if (get_cvar_num("kz_good_lj_clr") < 6 && get_cvar_num("kz_good_lj_clr") > 0) {
						switch(get_cvar_num("kz_good_lj_clr")) {
							case 1: ColorChat(0, RED, "[XJ] %s jumped %.3f units!", name, fDistance);
							case 2: ColorChat(0, GREEN, "[XJ] %s jumped %.3f units!", name, fDistance);
							case 3: ColorChat(0, BLUE, "[XJ] %s jumped %.3f units!", name, fDistance);
							case 4: ColorChat(0, GREY, "[XJ] %s jumped %.3f units!", name, fDistance);
							case 5: ColorChat(0, TEAM_COLOR, "[XJ] %s jumped %.3f units!", name, fDistance);
						}
					} else
						client_print(0, print_chat, "[XJ] %s jumped %.3f units!", name, fDistance);
					
					if (get_cvar_num("kz_lj_sounds") == 1 && (get_cvar_num("kz_lj_top") == 1 || get_cvar_num("kz_lj_top") == 3) ) {
						client_cmd(id, "speak misc/impressive");
					}
				}
			}
			else if( vJumpedAt[id][2] == vOrigin[2]
			&& fDistance > get_cvar_num("kz_min_lj")
			&& fMaxGroundSpeed[id] < 287
			&& cjumped[id] == true
			&& !(fDistance > (get_cvar_num("kz_max_lj") + get_cvar_num("kz_cj_dif"))) )
			{
				type = INFO_ONE;
				new Distance, MaxAirSpeed, MaxGroundSpeed, sync;
				if (goodsync[id] > 0)
					sync = (goodsync[id]*100/(goodsync[id]+badsync[id]));
				else
					sync = INFO_ZERO;
				Distance = floatround((fDistance*1000000), floatround_floor);
				MaxAirSpeed = floatround((fMaxAirSpeed[id]*1000000), floatround_floor);
				MaxGroundSpeed = floatround((fMaxGroundSpeed[id]*1000000), floatround_floor);
				check_lj15(id, Distance, MaxAirSpeed, MaxGroundSpeed, strafes[id], sync, type);
				if( gHasLjStats[id] )
				{
					if( get_cvar_num("kz_ljs_beam") == 1)
					{
						message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
						write_byte (0);
						write_coord(floatround(vJumpedAt2[0]));
						write_coord(floatround(vJumpedAt2[1]));
						write_coord(floatround(vJumpedAt2[2]));
						write_coord(floatround(vTraceEnd[0]));
						write_coord(floatround(vTraceEnd[1]));
						write_coord(floatround(vTraceEnd[2]));
						write_short(gBeam);
						write_byte(1);
						write_byte(5);
						write_byte(30);
						write_byte(20);
						write_byte(0);
						write_byte(random_num(32, 255));
						write_byte(random_num(32, 255));
						write_byte(random_num(32, 255));
						write_byte(200);
						write_byte(200);
						message_end();
					}
					else if( get_cvar_num("kz_ljs_beam") == 2)
					{
						set_task(1.0,"gocheck", id);
						set_task(1.5,"gocheck", id);
						set_task(2.0,"gocheck", id);
						set_task(2.5,"gocheck", id);
						for( new i = 0; i < 127; i++ ) {
							if( i == 0 ) {
								message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
								write_byte (0);
								write_coord(floatround(vDuckedAt[id][0]));
								write_coord(floatround(vDuckedAt[id][1]));
								write_coord(floatround(vTraceEnd[2]));
								write_coord(floatround(vBeamPos[id][0][0]));
								write_coord(floatround(vBeamPos[id][0][1]));
								write_coord(floatround(vTraceEnd[2]));
								write_short(gBeam);
								write_byte(1);
								write_byte(5);
								write_byte(30);
								write_byte(20);
								write_byte(0);
								write_byte(0);
								write_byte(255);
								write_byte(0);
								write_byte(200);
								write_byte(200);
								message_end();
								
								message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
								write_byte (0);
								write_coord(floatround(vBeamPos[id][0][0]));
								write_coord(floatround(vBeamPos[id][0][1]));
								write_coord(floatround(vTraceEnd[2]));
								write_coord(floatround(vBeamPos[id][1][0]));
								write_coord(floatround(vBeamPos[id][1][1]));
								write_coord(floatround(vTraceEnd[2]));
								write_short(gBeam);
								write_byte(1);
								write_byte(5);
								write_byte(30);
								write_byte(20);
								write_byte(0);
								write_byte(0);
								write_byte(255);
								write_byte(0);
								write_byte(200);
								write_byte(200);
								message_end();
							}
							else if( i == 127 || (vBeamPos[id][i+1][0] == 0
							&& vBeamPos[id][i+1][1] == 0
							&& vBeamPos[id][i+1][2] == 0) )
							{
								message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
								write_byte (0);
								write_coord(floatround(vBeamPos[id][i][0]));
								write_coord(floatround(vBeamPos[id][i][1]));
								write_coord(floatround(vTraceEnd[2]));
								write_coord(floatround(vOrigin[0]));
								write_coord(floatround(vOrigin[1]));
								write_coord(floatround(vTraceEnd[2]));
								write_short(gBeam);
								write_byte(1);
								write_byte(5);
								write_byte(30);
								write_byte(20);
								write_byte(0);
								if (vBeamPosStatus[id][i] == 1) {
									write_byte(255);
									write_byte(0);
									write_byte(0);
								} else {
									write_byte(255);
									write_byte(255);
									write_byte(0);
								}
								write_byte(200);
								write_byte(200);
								message_end();
								
								message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
								write_byte (0);
								write_coord(floatround(vOrigin[0]));
								write_coord(floatround(vOrigin[1]));
								write_coord(floatround(vTraceEnd[2]));
								write_coord(floatround(vTraceEnd[0]));
								write_coord(floatround(vTraceEnd[1]));
								write_coord(floatround(vTraceEnd[2]));
								write_short(gBeam);
								write_byte(1);
								write_byte(5);
								write_byte(30);
								write_byte(20);
								write_byte(0);
								if (vBeamPosStatus[id][i] == 1) {
									write_byte(255);
									write_byte(0);
									write_byte(0);
								} else {
									write_byte(255);
									write_byte(255);
									write_byte(0);
								}
								write_byte(200);
								write_byte(200);
								message_end();
								i=127;
							} else {
								message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
								write_byte (0);
								write_coord(floatround(vBeamPos[id][i][0]));
								write_coord(floatround(vBeamPos[id][i][1]));
								write_coord(floatround(vTraceEnd[2]));
								write_coord(floatround(vBeamPos[id][i+1][0]));
								write_coord(floatround(vBeamPos[id][i+1][1]));
								write_coord(floatround(vTraceEnd[2]));
								write_short(gBeam);
								write_byte(1);
								write_byte(5);
								write_byte(30);
								write_byte(20);
								write_byte(0);
								if (vBeamPosStatus[id][i] == 1) {
									write_byte(255);
									write_byte(0);
									write_byte(0);
								} else if (vBeamPosStatus[id][i] == -1) {
									write_byte(0);
									write_byte(255);
									write_byte(0);
								} else {
									write_byte(255);
									write_byte(255);
									write_byte(0);
								}
								write_byte(200);
								write_byte(200);
								message_end();
							}
						}
					}
					
					new ljStatsRed = get_cvar_num("kz_ljstats_red");
					new ljStatsGreen = get_cvar_num("kz_ljstats_green");
					new ljStatsBlue = get_cvar_num("kz_ljstats_blue");
					
					set_hudmessage(ljStatsRed, ljStatsGreen, ljStatsBlue, -1.0, 0.70, 0, 0.0, 2.0, 0.1, 0.1, 3);
					
					show_hudmessage(id,
						"Distance: %f^nMaxSpeed: %f^nPreStrafe: %f^nStrafes: %d^nSync: %d",
						fDistance, fMaxAirSpeed[id], fMaxGroundSpeed[id], strafes[id], sync );
					
					client_print(id, print_console,
						"Distance: %f MaxSpeed: %f PreStrafe: %f Strafes: %d Sync: %d",
						fDistance, fMaxAirSpeed[id], fMaxGroundSpeed[id], strafes[id], sync );
					
					if (get_cvar_num("kz_lj_sounds") == 2) {
						new idist;
						idist = floatround(fDistance, floatround_floor);
						new strdist[128];
						num_to_word(idist, strdist, 127);
						client_cmd(id, "speak ^"vox/%s uniform(e30) it south(e15)^"", strdist);
					}
				}
				
				new max_cj = get_cvar_num("kz_max_lj") + get_cvar_num("kz_cj_dif");
				new leet_cj = get_cvar_num("kz_leet_lj") + get_cvar_num("kz_cj_dif");
				new pro_cj = get_cvar_num("kz_pro_lj") + get_cvar_num("kz_cj_dif");
				new good_cj = get_cvar_num("kz_good_lj") + get_cvar_num("kz_cj_dif");
				if( fDistance < max_cj
				&& !(fDistance < leet_cj)
				&& !(0 > get_cvar_num("kz_leet_lj"))
				&& (get_cvar_num("kz_lj_top") == 1
				|| get_cvar_num("kz_lj_top") == 3) )
				{
					new name[33];
					get_user_name(id, name, 31);
					if (get_cvar_num("kz_leet_cj_clr") < 6 && get_cvar_num("kz_leet_cj_clr") > 0) {
						switch(get_cvar_num("kz_leet_cj_clr")) {
							case 1: ColorChat(0, RED, "[XJ] %s jumped %.3f units with cj!", name, fDistance);
							case 2: ColorChat(0, GREEN, "[XJ] %s jumped %.3f units with cj!", name, fDistance);
							case 3: ColorChat(0, BLUE, "[XJ] %s jumped %.3f units with cj!", name, fDistance);
							case 4: ColorChat(0, GREY, "[XJ] %s jumped %.3f units with cj!", name, fDistance);
							case 5: ColorChat(0, TEAM_COLOR, "[XJ] %s jumped %.3f units with cj!", name, fDistance);
						}
					} else
						client_print(0, print_chat, "[XJ] %s jumped %.3f units with cj!", name, fDistance);
					
					if (get_cvar_num("kz_lj_sounds") == 1 && (get_cvar_num("kz_lj_top") == 1 || get_cvar_num("kz_lj_top") == 3) ) {
						new players[32], num;
						get_players(players, num);
						for (new i; i < num; ++i) {
							client_cmd(i, "speak misc/mod_wickedsick");
						}
						client_cmd(id, "speak misc/mod_godlike");
					}
				}
				
				else if( fDistance < max_cj
				&& !(fDistance < pro_cj)
				&& !(0 > get_cvar_num("kz_pro_lj"))
				&& (get_cvar_num("kz_lj_top") == 1
				|| get_cvar_num("kz_lj_top") == 3) )
				{
					new name[33];
					get_user_name(id, name, 31);
					if (get_cvar_num("kz_pro_cj_clr") < 6 && get_cvar_num("kz_pro_cj_clr") > 0) {
						switch(get_cvar_num("kz_pro_cj_clr")) {
							case 1: ColorChat(0, RED, "[XJ] %s jumped %.3f units with cj!", name, fDistance);
							case 2: ColorChat(0, GREEN, "[XJ] %s jumped %.3f units with cj!", name, fDistance);
							case 3: ColorChat(0, BLUE, "[XJ] %s jumped %.3f units with cj!", name, fDistance);
							case 4: ColorChat(0, GREY, "[XJ] %s jumped %.3f units with cj!", name, fDistance);
							case 5: ColorChat(0, TEAM_COLOR, "[XJ] %s jumped %.3f units with cj!", name, fDistance);
						}
					} else 
						client_print(0, print_chat, "[XJ] %s jumped %.3f units with cj!", name, fDistance);
					
					if (get_cvar_num("kz_lj_sounds") == 1 && (get_cvar_num("kz_lj_top") == 1 || get_cvar_num("kz_lj_top") == 3) ) {
						client_cmd(id, "speak misc/perfect");
					}
				}
				
				else if( fDistance < max_cj
				&& !(fDistance < good_cj)
				&& !(0 > get_cvar_num("kz_good_lj"))
				&& (get_cvar_num("kz_lj_top") == 1
				|| get_cvar_num("kz_lj_top") == 3) )
				{
					new name[33];
					get_user_name(id, name, 31);
					if (get_cvar_num("kz_good_cj_clr") < 6 && get_cvar_num("kz_good_cj_clr") > 0) {
						switch(get_cvar_num("kz_good_cj_clr")) {
							case 1: ColorChat(0, RED, "[XJ] %s jumped %.3f units with cj!", name, fDistance);
							case 2: ColorChat(0, GREEN, "[XJ] %s jumped %.3f units with cj!", name, fDistance);
							case 3: ColorChat(0, BLUE, "[XJ] %s jumped %.3f units with cj!", name, fDistance);
							case 4: ColorChat(0, GREY, "[XJ] %s jumped %.3f units with cj!", name, fDistance);
							case 5: ColorChat(0, TEAM_COLOR, "[XJ] %s jumped %.3f units with cj!", name, fDistance);
						}
					} else 
						client_print(0, print_chat, "[XJ] %s jumped %.3f units with cj!", name, fDistance);
					
					if (get_cvar_num("kz_lj_sounds") == 1 && (get_cvar_num("kz_lj_top") == 1 || get_cvar_num("kz_lj_top") == 3) ) {
						client_cmd(id, "speak misc/impressive");
					}
				}
			}
			fMaxAirSpeed[id] = 0.0;
			fMaxGroundSpeed[id] = 0.0;
			cjumped[id] = false;
			gInAir[id] = false;
		}
		else if( pev(id, pev_flags)&FL_ONGROUND
		&& gInAir[id] == false )
		{
			pev(id, pev_velocity, vVelocity);
			vVelocity[2]-=vVelocity[2];
			if (vector_length(vVelocity) > 277 && doubleducked[id] == false) {
				set_task(0.5,"gocheck", id);
			}
			gInAir[id] = false;
			fMaxAirSpeed[id] = 0.0;
			fMaxGroundSpeed[id] = 0.0;
			cjumped[id] = false;
		}
		
		for( new i = 0; i < 127; i++ ) {
			pev(id, pev_origin, vOrigin);
			
			if (vBeamPos[id][i][0] == 0
			&& vBeamPos[id][i][1] == 0
			&& vBeamPos[id][i][2] == 0) {
				vBeamPos[id][i][0] = vOrigin[0];
				vBeamPos[id][i][1] = vOrigin[1];
				vBeamPos[id][i][2] = vOrigin[2];
				if (doubleducked[id] == true || induck[id] == true) {
					vBeamPosStatus[id][i] = vOrigin[0]-vOrigin[0]-1;
				} else if (is_in_duck(id))
					vBeamPosStatus[id][i] = vOrigin[0]-vOrigin[0]+1;
				else
					vBeamPosStatus[id][i] = vOrigin[0]-vOrigin[0];
				i=127;
			}
		}
		
		if( pev(id, pev_flags)&FL_ONGROUND )
		{
			if (OnGround[id] == false) {
				pev(id, pev_origin, vOrigin);
				if ( doubleducked[id] == false
				&& !(pev(id, pev_button)&IN_JUMP
				&& !(pev(id, pev_oldbuttons)&IN_JUMP)) ) {
					set_task(0.5,"gocheck", id);
				} else if ( doubleducked[id] == true && !(vOrigin[2] == vDuckedAt[id][2]) ) {
					set_task(0.5,"gocheck", id);
				}
				OnGround[id] = true;
			}
		}
		if( pev(id, pev_button)&IN_DUCK
		&& pev(id, pev_flags)&FL_ONGROUND
		&& gInAir[id] == false )
		{
			if ( induck[id] == false ) {
				cducked[id] = true;
				induck[id] = true;
				set_task(0.1,"testcjstart", id);
				
				pev(id, pev_origin, vOrigin);
				vDuckedAt[id][0] = vOrigin[0];
				vDuckedAt[id][1] = vOrigin[1];
				vDuckedAt[id][2] = vOrigin[2];
				
				for( new i = 0; i < 128; i++ ) {
					vBeamPos[id][i][0] = vOrigin[0]-vOrigin[0];
					vBeamPos[id][i][1] = vOrigin[1]-vOrigin[1];
					vBeamPos[id][i][2] = vOrigin[2]-vOrigin[2];
				}
			}
		}
		else if( pev(id, pev_oldbuttons)&IN_DUCK )
		{
			induck[id] = false;
			if ( cducked[id] == true && !is_in_duck(id) )
			{
				set_task(0.3,"ddend", id);
				doubleducked[id] = true;
				cducked[id] = false;
			}
		}
		if (!(pev(id, pev_flags)&FL_ONGROUND))
		{
			OnGround[id] = false;
		}
	}
	return FMRES_IGNORED;
}

public fwdPlayerPostThink(id) {
	if( is_user_alive(id) && get_cvar_num("kz_ljs_enabled") ) {
		pev(id, pev_angles, angle);
		if (old_angle1[id] > angle[1]) {
			turning_left[id] = false;
			turning_right[id] = true;
		} else if (old_angle1[id] < angle[1]) {
			turning_left[id] = true;
			turning_right[id] = false;
		} else {
			turning_left[id] = false;
			turning_right[id] = false;
		}
		if (straifing_aw[id] == false
		&& (pev(id, pev_button)&IN_MOVELEFT
		|| pev(id, pev_button)&IN_FORWARD)
		&& (turning_left[id] == true
		|| turning_right[id] == true )
		&& !(pev(id, pev_button)&IN_MOVERIGHT
		|| pev(id, pev_button)&IN_BACK))
		{
			straifing_aw[id] = true;
			straifing_sd[id] = false;
			strafes[id] += INFO_ONE;
		}
		else if (straifing_sd[id] == false
		&& (pev(id, pev_button)&IN_MOVERIGHT
		|| pev(id, pev_button)&IN_BACK)
		&& (turning_left[id] == true
		|| turning_right[id] == true )
		&& !(pev(id, pev_button)&IN_MOVELEFT
		|| pev(id, pev_button)&IN_FORWARD))
		{
			straifing_aw[id] = false;
			straifing_sd[id] = true;
			strafes[id] += INFO_ONE;
		}
	}
}

public fwdTouch(ent, id)
{ 
	new ClassName[32];
	if ((ent > 0) && pev_valid(ent))
	{
		pev(ent, pev_classname, ClassName, 31);
	}
	new ClassName2[32];
	if ((id > 0) && pev_valid(id))
	{
		pev(id, pev_classname, ClassName, 31);
	}
	if (equal(ClassName2, "player"))
	{
		if (equal(ClassName, "trigger_teleport") || equal(ClassName, "trigger_push"))
		{
			gocheck(id);
		}
	}
}

stock is_in_duck(entity1)
{
	// supplied with invalid entities
	if( !pev_valid(entity1)  )
		return 0;
	
	// retrieve absolutes
	static Float:absmin[3], Float:absmax[3];
	
	pev(entity1, pev_absmin, absmin);
	pev(entity1, pev_absmax, absmax);
	
	absmin[2]+=64.0;
	
	if( absmin[2] < absmax[2] ) {
		return 0;
	}
	return 1;
}
Motoreta
Membru, skill 0
Membru, skill 0
Posts: 11
Joined: 22 Apr 2011, 19:53
Detinator Steam: Da
Detinator server CS: DA
Has thanked: 4 times
Been thanked: 1 time

24 Apr 2011, 22:29

up :(
User avatar
MHz&3viL
Membru, skill +1
Membru, skill +1
Posts: 184
Joined: 26 Nov 2007, 21:41
Detinator Steam: Da
CS Status: EviL ZonE
Detinator server CS: cs.evilz.ro
SteamID: mhz_evilz
Location: Satu Mare
Has thanked: 1 time
Been thanked: 13 times

25 Apr 2011, 02:10

Sincer nu prea am jucat hns, habar nu am cum se joaca, dar am dat search la "cuvintele" ceea ce vad din poza si nu gasesc. Cum se numesc in engleza?
Motoreta
Membru, skill 0
Membru, skill 0
Posts: 11
Joined: 22 Apr 2011, 19:53
Detinator Steam: Da
Detinator server CS: DA
Has thanked: 4 times
Been thanked: 1 time

25 Apr 2011, 15:20

te referi la ce scrie jos in chat?
Motoreta
Membru, skill 0
Membru, skill 0
Posts: 11
Joined: 22 Apr 2011, 19:53
Detinator Steam: Da
Detinator server CS: DA
Has thanked: 4 times
Been thanked: 1 time

26 Apr 2011, 00:32

uP :|
Motoreta
Membru, skill 0
Membru, skill 0
Posts: 11
Joined: 22 Apr 2011, 19:53
Detinator Steam: Da
Detinator server CS: DA
Has thanked: 4 times
Been thanked: 1 time

26 Apr 2011, 17:52

poate sa il faca cineva?:|
Motoreta
Membru, skill 0
Membru, skill 0
Posts: 11
Joined: 22 Apr 2011, 19:53
Detinator Steam: Da
Detinator server CS: DA
Has thanked: 4 times
Been thanked: 1 time

26 Apr 2011, 23:26

e de 1 saptamana cererea ma ajutati?
Post Reply

Return to “Cereri”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 40 guests