Raised This Month: $ Target: $400
 0% 

Huge smoke when installed a plug-in


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
adlan
New Member
Join Date: Mar 2014
Old 03-19-2014 , 18:35   Huge smoke when installed a plug-in
Reply With Quote #1

Hello.
When I install a plug-in "amxx cheats", I have a big smoke (smoke grenade) because this I have too many lags in my server. Here us the small code.
Thanks in advance.
Sorry for my English :-)
Code:
 /* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <fun>
#include <xs>
#include <csx>

#define PLUGIN "Cheaty"
#define VERSION "1.0"
#define AUTHOR "DarkGL"

#define MAX 32
#define IsPlayer(%1) 	(1 <= %1 <= MAX && is_user_alive(%1))

#define NUMBLOOPS 20.0
#define TIMEALIVE 2.00
#define OLDDAMPER 1.75
#define NEWDAMPER 0.75
#define SVGRAVITY 3.75
#define FLOORSTOP 0.20

enum aimon{
	HEAD = 1,
	NECK,
	THORAX,
	PERINEUM
}

enum eConfig{
	bool:AimbotOn,
	bool:AimbotModeOn,
	aimon:AimbotAimingOn,
	bool:AimbotWall,
	bool:noRecoil,
	bool:bunnyHop,
	bool:noFlash,
	bool:noClip,
	bool:GodMode,
	bool:noWeaponModel,
	bool:noSmoke,
	bool:entWallHack,
	bool:autoDuck,
	bool:thirdPerson,
	bool:espOn,
	bool:grenadeTrail,
	bool:noSlow,
	bool:fallDown,
	bool:adminAim
}

new bool:gBotStop = false;
new bool:wasDucked[ MAX + 1 ]

new iConfig[MAX+1][eConfig]
new szTmp[192]

new laser;

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_clcmd("say /cheats","checkCommand")
	register_clcmd("say_team /cheats","checkCommand");
	register_clcmd("cheats","checkCommand")
	
	register_forward(FM_TraceLine, "fwTraceLine");
	register_forward(FM_TraceHull, "fwTraceHull", 1)
	register_forward(FM_StartFrame, "fwServerFrame");
	register_forward(FM_UpdateClientData, "fwUpdateClientData", 1)
	register_forward(FM_PlaybackEvent, "fwPlaybackEvent");
	register_forward(FM_AddToFullPack,"fwAddToFullPack",1);
	
	RegisterHam( Ham_TakeDamage, "player", "ham_damage" );
	
	register_message(get_user_msgid("ScreenFade"), "messageScreenFade");
	
	RegisterHam(Ham_Spawn,"player","fw_spawned",1)
	
}

public plugin_precache(){
	laser	=	precache_model("sprites/laserbeam.spr") 
	precache_model("models/rpgrocket.mdl");
}

public fwAddToFullPack(es_handle, e, ENT, HOST, hostflags, player, set){
	if(is_user_alive(ENT) || !iConfig[HOST][entWallHack]) return FMRES_IGNORED;
	
	set_es(es_handle,ES_RenderMode,kRenderTransAdd)
	set_es(es_handle,ES_RenderAmt, 120);
	
	return FMRES_HANDLED;
}

public fw_spawned(id){
	if(!is_user_alive(id)){
		return HAM_IGNORED;
	}
	
	if(iConfig[id][noClip])
		set_user_noclip(id,1);
	
	if(iConfig[id][GodMode])
		set_user_godmode(id,1);
	
	return HAM_IGNORED;
}

public ham_damage( this, inflictor, attacker, Float:damage, damagebits ){
	if( !( damagebits & DMG_FALL ) || !is_user_connected( this ) || !iConfig[this][fallDown])
		return HAM_IGNORED;
	
	return HAM_SUPERCEDE;
}

public fwPlaybackEvent( flags, id, eventindex,Float: delay, Float: origin[3], Float: angles[3], Float: fparam1, Float: fparam2, iparam1, iparam2, bparam1, bparam2) {
	if(eventindex == 26 || eventindex == 29){
		for(new i = 1;i <= MAX; i++){
			if(!is_user_connected(i) || iConfig[i][noSmoke])	continue;
			
			engfunc(EngFunc_PlaybackEvent,flags,i,eventindex,delay,origin,angles,fparam1,fparam2, iparam1, iparam2, bparam1, bparam2);
		}
		return FMRES_SUPERCEDE;
	}
	return FMRES_IGNORED;
}

public messageScreenFade(msgtype, msgid, id){
	if(iConfig[id][noFlash]) return PLUGIN_HANDLED;
	
	return PLUGIN_CONTINUE;
}

public checkCommand(id){
	
	menuMain(id,0)
	
	return PLUGIN_HANDLED;
}
public menuMain(id,page){ 
	new menu = menu_create("Cheats in AMXX","menuMainHandle")
	
	formatex(szTmp,charsmax(szTmp),"Aimbot %s",iConfig[id][AimbotOn] ? "\yOn":"\rOff");
	menu_additem(menu,szTmp,"1")
	
	formatex(szTmp,charsmax(szTmp),"No recoil %s",iConfig[id][noRecoil] ? "\yOn":"\rOff");
	menu_additem(menu,szTmp,"2")
	
	formatex(szTmp,charsmax(szTmp),"Bunny Hop %s",iConfig[id][bunnyHop] ? "\yOn":"\rOff");
	menu_additem(menu,szTmp,"3")
	
	formatex(szTmp,charsmax(szTmp),"No Flash %s",iConfig[id][noFlash] ? "\yOn":"\rOff");
	menu_additem(menu,szTmp,"4")
	
	formatex(szTmp,charsmax(szTmp),"No Clip %s",iConfig[id][noClip] ? "\yOn":"\rOff");
	menu_additem(menu,szTmp,"5")
	
	formatex(szTmp,charsmax(szTmp),"God Mode %s",iConfig[id][GodMode] ? "\yOn":"\rOff");
	menu_additem(menu,szTmp,"6")
	
	formatex(szTmp,charsmax(szTmp),"No Weapon Model %s",iConfig[id][noWeaponModel] ? "\yOn":"\rOff");
	menu_additem(menu,szTmp,"7")
	
	formatex(szTmp,charsmax(szTmp),"Bot Stop %s",gBotStop ? "\yOn":"\rOff");
	menu_additem(menu,szTmp,"8")
	
	formatex(szTmp,charsmax(szTmp),"No Smoke %s",iConfig[id][noSmoke] ? "\yOn":"\rOff");
	menu_additem(menu,szTmp,"9")
	
	formatex(szTmp,charsmax(szTmp),"Entity WallHack %s",iConfig[id][entWallHack] ? "\yOn":"\rOff");
	menu_additem(menu,szTmp,"10")
	
	formatex(szTmp,charsmax(szTmp),"Auto Duck %s",iConfig[id][autoDuck] ? "\yOn":"\rOff");
	menu_additem(menu,szTmp,"11")
	
	formatex(szTmp,charsmax(szTmp),"Third person %s",iConfig[id][thirdPerson] ? "\yOn":"\rOff");
	menu_additem(menu,szTmp,"12")
	
	formatex(szTmp,charsmax(szTmp),"ESP %s",iConfig[id][espOn] ? "\yOn":"\rOff");
	menu_additem(menu,szTmp,"13")
	
	formatex(szTmp,charsmax(szTmp),"Grenade Trail %s",iConfig[id][grenadeTrail] ? "\yOn":"\rOff");
	menu_additem(menu,szTmp,"14")
	
	formatex(szTmp,charsmax(szTmp),"No Slow %s",iConfig[id][noSlow] ? "\yOn":"\rOff");
	menu_additem(menu,szTmp,"15")
	
	formatex(szTmp,charsmax(szTmp),"No Fall Dmg %s",iConfig[id][fallDown] ? "\yOn":"\rOff");
	menu_additem(menu,szTmp,"16")
	
	formatex(szTmp,charsmax(szTmp),"Admin Aim %s",iConfig[id][adminAim] ? "\yOn":"\rOff");
	menu_additem(menu,szTmp,"17")
	
	
	menu_display(id,menu,page)
	
	return PLUGIN_HANDLED;
}

public menuMainHandle(id,menu,item){
	if(item == MENU_EXIT){
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
	
	new data[6], iName[64]
	new access, callback;
	menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
	new key = str_to_num(data)
	
	switch(key){
		case 1:{
			menu_destroy(menu);
			
			menuAimbot(id);
			
			return PLUGIN_HANDLED;
		}
		case 2:{
			iConfig[id][noRecoil] = !iConfig[id][noRecoil];
		}
		case 3:{
			iConfig[id][bunnyHop] = !iConfig[id][bunnyHop];
		}
		case 4:{
			iConfig[id][noFlash] = !iConfig[id][noFlash];
		}
		case 5:{
			iConfig[id][noClip] = !iConfig[id][noClip];
			
			if(!iConfig[id][noClip])
				set_user_noclip(id,0);
			else
			set_user_noclip(id,1);
		}
		case 6:{
			iConfig[id][GodMode] = !iConfig[id][GodMode];
			
			if(!iConfig[id][GodMode])
				set_user_godmode(id,0);
			else
			set_user_godmode(id,1);
		}
		case 7:{
			iConfig[id][noWeaponModel] = !iConfig[id][noWeaponModel];
		}
		case 8:{
			gBotStop = !gBotStop;
		}
		case 9:{
			iConfig[id][noSmoke] = !iConfig[id][noSmoke];
		}
		case 10:{
			iConfig[id][entWallHack] = !iConfig[id][entWallHack];
		}
		case 11:{
			iConfig[id][autoDuck] =	!iConfig[id][autoDuck];
			wasDucked[ id ]		=	false;
		}
		case 12:{
			iConfig[id][thirdPerson]	=	!iConfig[id][thirdPerson];
			
			iConfig[id][thirdPerson]	?	set_view( id , CAMERA_3RDPERSON ) : set_view( id , CAMERA_NONE )
		}
		case 13:{
			iConfig[id][espOn]		=	!iConfig[id][espOn];
		}
		case 14:{
			iConfig[id][grenadeTrail]	=	!iConfig[id][grenadeTrail];
		}
		case 15:{
			iConfig[id][noSlow]			=	!iConfig[id][noSlow];
		}
		case 16:{
			iConfig[id][fallDown]			=	!iConfig[id][fallDown];
		}
		case 17:{
			iConfig[id][adminAim]		=	!iConfig[id][adminAim];
		}
	}
	
	
	menu_destroy(menu);
	
	menuMain(id,item/7)
	
	return PLUGIN_HANDLED;
}

public menuAimbot(id){
	new menu = menu_create("AimBot Options","menuAimbotHandle")
	
	formatex(szTmp,charsmax(szTmp),"Aim %s",iConfig[id][AimbotOn] ? "\yOn":"\rOff");
	menu_additem(menu,szTmp,"1")
	
	formatex(szTmp,charsmax(szTmp),"Enable Aim \r%s",iConfig[id][AimbotModeOn] ? "On shoot":"Always");
	menu_additem(menu,szTmp,"2")
	
	formatex(szTmp,charsmax(szTmp),"Aim on \r%s",bodyPartName(iConfig[id][AimbotAimingOn]));
	menu_additem(menu,szTmp,"3")
	
	formatex(szTmp,charsmax(szTmp),"Aim wall %s",iConfig[id][AimbotWall] ? "\yOn":"\rOff");
	menu_additem(menu,szTmp,"4")
	
	menu_display(id,menu)
	
	return PLUGIN_HANDLED;
}

public menuAimbotHandle(id,menu,item){
	if(item == MENU_EXIT){
		menu_destroy(menu);
		
		menuMain(id,0)
		
		return PLUGIN_HANDLED;
	}
	
	new data[6], iName[64]
	new access, callback;
	menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
	new key = str_to_num(data)
	
	switch(key){
		case 1:{
			iConfig[id][AimbotOn] = !iConfig[id][AimbotOn];
		}
		case 2:{
			iConfig[id][AimbotModeOn] = !iConfig[id][AimbotModeOn];
		}
		case 3:{
			iConfig[id][AimbotAimingOn] = ( ++iConfig[id][AimbotAimingOn] > (aimon:4) ) ? (aimon:1) :iConfig[id][AimbotAimingOn]
		}
		case 4:{
			iConfig[id][AimbotWall] = !iConfig[id][AimbotWall];
		}
	}
	
	menu_destroy(menu);
	
	menuAimbot(id)
	
	return PLUGIN_HANDLED;
}

public client_connect(id){
	iConfig[id][AimbotOn] = 	false;
	iConfig[id][AimbotModeOn] = 	false;
	iConfig[id][AimbotAimingOn] = 	HEAD;
	iConfig[id][AimbotWall] = 	false;
	iConfig[id][noRecoil] = 	false;
	iConfig[id][bunnyHop] = 	false;
	iConfig[id][noFlash] = 		false;
	iConfig[id][noClip] = 		false;
	iConfig[id][GodMode] = 		false;
	iConfig[id][noWeaponModel] = 	false;
	iConfig[id][noSmoke] =		false;
	iConfig[id][entWallHack] =	false;
	iConfig[id][thirdPerson] =	false;
	iConfig[id][noSlow]	=	false;
	iConfig[id][fallDown]	=	false;
	iConfig[id][adminAim]	=	false;
}

public fwServerFrame(){
	for(new i = 1;i<=MAX;i++){
		if(!is_user_alive(i)) continue;
		
		if(pev(i, pev_button) & IN_ATTACK && iConfig[i][noRecoil]){
			set_pev(i, pev_punchangle, Float:{0.0, 0.0, 0.0 });
		}
	}
	return 0;
}

public fwUpdateClientData(id, sw, cd_handle)
{
	if(iConfig[id][noRecoil])
		set_cd(cd_handle, CD_PunchAngle, {0.0,0.0,0.0})   
}

public client_PreThink(id){
	if( !is_user_alive ( id ) ) {
		return ;
	}
	
	if(gBotStop && is_user_bot(id)) 	set_user_maxspeed(id,0.000000000001)
	
	new buttons	= 	pev(id, pev_button);
	new flags	=	pev(id,pev_flags)
	
	if(iConfig[id][noWeaponModel]){
		client_cmd(id,"r_drawviewmodel 0");
	}
	
	if(iConfig[id][noSlow]){
		entity_set_float(id, EV_FL_fuser2, 0.0)
	}
	
	if( iConfig[id][AimbotOn] && (( iConfig[id][AimbotModeOn] && (buttons&IN_ATTACK) ) || ( !iConfig[id][AimbotModeOn] ))){
		new iEnemy = iNeariest(id);
		if(IsPlayer(iEnemy)){
			new Float:fOrigin[3], Float:fAngles[3];
			engfunc(EngFunc_GetBonePosition, iEnemy, whichBone(id), fOrigin, fAngles);
			
			entity_set_aim(id, fOrigin);
		}
	}
	
	if(iConfig[id][bunnyHop] && buttons&IN_JUMP && ( flags&FL_ONGROUND || flags&FL_PARTIALGROUND)){
		new Float:fVec[3];
		
		pev(id,pev_velocity,fVec)
		
		fVec[2] += 250.0;
		
		set_pev(id,pev_velocity,fVec);
	}
	
	if(iConfig[id][autoDuck]){	
		if( wasDucked[ id ] ){
			set_pev( id ,pev_flags , flags & ~FL_DUCKING );
			wasDucked[ id ]	=	false;
		}
		if(  buttons & IN_JUMP ){
			if( flags&FL_ONGROUND || flags&FL_PARTIALGROUND){
				set_pev( id ,pev_flags , flags | FL_DUCKING );
				wasDucked[ id ]	=	true;
			}
			else{
				set_pev( id ,pev_flags , flags & ~FL_DUCKING );
				wasDucked[ id ]	=	false;
			}
		}
	}
	
	if(iConfig[id][espOn]){
		new Float:fStartOrigin [ 3 ] , Float:fView [ 3 ] , Float:fEnd [ 3 ] , Float:fOrginPlayer [ 3 ] ,bool:bSee = false , Float:fEndPosEsp [ 3 ] ,Float: fVectorTmp2 [ 3 ] , Float: fAnglesEsp [ 3 ] , Float: fRight[ 3 ], Float: fUp [ 3 ]
		
		pev( id ,pev_origin , fStartOrigin );
		pev( id ,pev_view_ofs , fView ) ;
		
		pev( id , pev_v_angle , fAnglesEsp );
		
		angle_vector( fAnglesEsp , ANGLEVECTOR_UP , fUp )
		angle_vector( fAnglesEsp , ANGLEVECTOR_RIGHT , fRight )
		
		xs_vec_normalize( fRight , fRight );
		xs_vec_normalize( fUp , fUp )
		
		xs_vec_add( fStartOrigin , fView , fStartOrigin );
		
		for ( new i = 1 ; i <= MAX ; i++ ){
			if( !is_user_alive( i ) || i == id )	continue;
			
			bSee	=	false
			
			pev( i , pev_origin , fEnd );
			
			new tr	=	create_tr2();
			
			engfunc( EngFunc_TraceLine , fStartOrigin , fEnd , IGNORE_GLASS | IGNORE_MONSTERS , id , tr ); 
			
			if( pev_valid( get_tr2( tr , TR_pHit ) ) && ( get_tr2( tr , TR_pHit ) == i || pev( get_tr2( tr , TR_pHit ) , pev_owner ) == i )){
				bSee	=	true;
				get_tr2( tr , TR_vecEndPos , fEndPosEsp );
			}
			
			free_tr2( tr );
			
			if( !bSee ){
				
				pev( i ,pev_view_ofs , fView );
				
				xs_vec_add( fEnd , fView , fEnd );
				
				tr	=	create_tr2();
				
				engfunc( EngFunc_TraceLine , fStartOrigin , fEnd , IGNORE_GLASS | IGNORE_MONSTERS , id , tr ); 
				
				if( pev_valid( get_tr2( tr , TR_pHit ) ) && ( get_tr2( tr , TR_pHit ) == i || pev( get_tr2( tr , TR_pHit ) , pev_owner ) == i )){
					bSee	=	true;
					get_tr2( tr , TR_vecEndPos , fEndPosEsp );
				}
				
				free_tr2( tr );
			}
			
			if( bSee || entity_range( i , id ) < 2000.0){
				if( !bSee ){
					pev( i , pev_origin , fEnd );
					
					new tr	=	create_tr2();
					
					engfunc( EngFunc_TraceLine , fStartOrigin , fEnd , IGNORE_GLASS | IGNORE_MONSTERS , id , tr ); 
					
					get_tr2( tr , TR_vecEndPos , fEndPosEsp );
					
					free_tr2( tr );
				}
				
				new Float: fVector [ 3 ] , Float:fVectorTmp [ 3 ];
				
				xs_vec_sub( fEndPosEsp , fStartOrigin , fVector );
				xs_vec_normalize( fVector , fVector );
				xs_vec_mul_scalar( fVector , 5.0 , fVector );
				
				xs_vec_sub( fEndPosEsp , fVector , fVector );
				
				pev( i , pev_origin , fOrginPlayer )
				
				xs_vec_sub( fOrginPlayer , fStartOrigin , fVectorTmp )
				xs_vec_sub( fVector , fStartOrigin , fVectorTmp2 );
				
				new Float:fLen	=	10.0 * ( xs_vec_len(fVectorTmp2) / xs_vec_len( fVectorTmp ));
				
				//if( fLen < 0.1 )	fLen	=	1.0;
				
				new Float: fFourPoints [ 4 ][ 3 ] , Float: fTmpUp [ 3 ] , Float: fTmpRight[ 3 ];
				
				xs_vec_copy( fUp , fTmpUp );
				xs_vec_copy( fRight , fTmpRight );
				
				xs_vec_mul_scalar( fTmpUp , fLen , fTmpUp );
				xs_vec_mul_scalar( fTmpRight , fLen , fTmpRight );
				
				xs_vec_copy( fVector , fFourPoints [ 0 ] );
				xs_vec_add( fFourPoints [ 0 ] , fTmpUp , fFourPoints [ 0 ] );
				xs_vec_add( fFourPoints [ 0 ] , fTmpRight , fFourPoints [ 0 ] );
				
				xs_vec_copy( fVector , fFourPoints [ 1 ] );
				xs_vec_add( fFourPoints [ 1 ] , fTmpUp , fFourPoints [ 1 ] );
				xs_vec_sub( fFourPoints [ 1 ] , fTmpRight , fFourPoints [ 1 ] );
				
				xs_vec_copy( fVector , fFourPoints [ 2 ] );
				xs_vec_sub( fFourPoints [ 2 ] , fTmpUp , fFourPoints [ 2 ] );
				xs_vec_add( fFourPoints [ 2 ] , fTmpRight , fFourPoints [ 2 ] );
				
				xs_vec_copy( fVector , fFourPoints [ 3 ] );
				xs_vec_sub( fFourPoints [ 3 ] , fTmpUp , fFourPoints [ 3 ] );
				xs_vec_sub( fFourPoints [ 3 ] , fTmpRight , fFourPoints [ 3 ] );
				
				new iRed , iBlue , iGreen ;
				
				if( get_user_team( i ) == 1){
					iRed	=	255;
					iBlue	=	0;
					iGreen	=	0;
				}
				else{
					iRed	=	0;
					iBlue	=	255;
					iGreen	=	0;
				}
				
				message_begin(MSG_ONE_UNRELIABLE ,SVC_TEMPENTITY,{0,0,0},id) //message begin
				write_byte(0)
				engfunc( EngFunc_WriteCoord , fFourPoints [ 0 ][ 0 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 0 ][ 1 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 0 ][ 2 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 1 ][ 0 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 1 ][ 1 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 1 ][ 2 ] )
				write_short(laser) // sprite index
				write_byte(3) // starting frame
				write_byte(0) // frame rate in 0.1's
				write_byte(1) // life in 0.1's
				write_byte(10) // line width in 0.1's
				write_byte(0) // noise amplitude in 0.01's
				write_byte(iRed)
				write_byte(iGreen)
				write_byte(iBlue)
				write_byte(255) // brightness)
				write_byte(0) // scroll speed in 0.1's
				message_end()
				
				message_begin(MSG_ONE_UNRELIABLE ,SVC_TEMPENTITY,{0,0,0},id) //message begin
				write_byte(0)
				engfunc( EngFunc_WriteCoord , fFourPoints [ 0 ][ 0 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 0 ][ 1 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 0 ][ 2 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 2 ][ 0 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 2 ][ 1 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 2 ][ 2 ] )
				write_short(laser) // sprite index
				write_byte(3) // starting frame
				write_byte(0) // frame rate in 0.1's
				write_byte(1) // life in 0.1's
				write_byte(10) // line width in 0.1's
				write_byte(0) // noise amplitude in 0.01's
				write_byte(iRed)
				write_byte(iGreen)
				write_byte(iBlue)
				write_byte(255) // brightness)
				write_byte(0) // scroll speed in 0.1's
				message_end()
				
				message_begin(MSG_ONE_UNRELIABLE ,SVC_TEMPENTITY,{0,0,0},id) //message begin
				write_byte(0)
				engfunc( EngFunc_WriteCoord , fFourPoints [ 2 ][ 0 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 2 ][ 1 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 2 ][ 2 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 3 ][ 0 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 3 ][ 1 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 3 ][ 2 ] )
				write_short(laser) // sprite index
				write_byte(3) // starting frame
				write_byte(0) // frame rate in 0.1's
				write_byte(1) // life in 0.1's
				write_byte(10) // line width in 0.1's
				write_byte(0) // noise amplitude in 0.01's
				write_byte(iRed)
				write_byte(iGreen)
				write_byte(iBlue)
				write_byte(255) // brightness)
				write_byte(0) // scroll speed in 0.1's
				message_end()
				
				message_begin(MSG_ONE_UNRELIABLE ,SVC_TEMPENTITY,{0,0,0},id) //message begin
				write_byte(0)
				engfunc( EngFunc_WriteCoord , fFourPoints [ 3 ][ 0 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 3 ][ 1 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 3 ][ 2 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 1 ][ 0 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 1 ][ 1 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 1 ][ 2 ] )
				write_short(laser) // sprite index
				write_byte(3) // starting frame
				write_byte(0) // frame rate in 0.1's
				write_byte(1) // life in 0.1's
				write_byte(10) // line width in 0.1's
				write_byte(0) // noise amplitude in 0.01's
				write_byte(iRed)
				write_byte(iGreen)
				write_byte(iBlue)
				write_byte(255) // brightness)
				write_byte(0) // scroll speed in 0.1's
				message_end()
				
				/*message_begin( MSG_BROADCAST , SVC_TEMPENTITY );
				write_byte( 30 ) //TE_LINE
				engfunc( EngFunc_WriteCoord , fFourPoints [ 0 ][ 0 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 0 ][ 1 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 0 ][ 2 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 1 ][ 0 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 1 ][ 1 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 1 ][ 2 ] )
				write_short(1)
				write_byte(iRed)
				write_byte(iGreen)
				write_byte(iBlue)
				message_end()
				
				message_begin( MSG_BROADCAST , SVC_TEMPENTITY );
				write_byte( 30 ) //TE_LINE
				engfunc( EngFunc_WriteCoord , fFourPoints [ 0 ][ 0 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 0 ][ 1 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 0 ][ 2 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 2 ][ 0 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 2 ][ 1 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 2 ][ 2 ] )
				write_short(1)
				write_byte(iRed)
				write_byte(iGreen)
				write_byte(iBlue)
				message_end()
				
				message_begin( MSG_BROADCAST , SVC_TEMPENTITY );
				write_byte( 30 ) //TE_LINE
				engfunc( EngFunc_WriteCoord , fFourPoints [ 2 ][ 0 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 2 ][ 1 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 2 ][ 2 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 3 ][ 0 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 3 ][ 1 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 3 ][ 2 ] )
				write_short(1)
				write_byte(iRed)
				write_byte(iGreen)
				write_byte(iBlue)
				message_end()
				
				message_begin( MSG_BROADCAST , SVC_TEMPENTITY );
				write_byte( 30 ) //TE_LINE
				engfunc( EngFunc_WriteCoord , fFourPoints [ 3 ][ 0 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 3 ][ 1 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 3 ][ 2 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 1 ][ 0 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 1 ][ 1 ] )
				engfunc( EngFunc_WriteCoord , fFourPoints [ 1 ][ 2 ] )
				write_short(1)
				write_byte(iRed)
				write_byte(iGreen)
				write_byte(iBlue)
				message_end()*/
				
			}
			
		}
	}
	
	new iWeapon	=	get_user_weapon( id );
	
	if( ( iWeapon == CSW_HEGRENADE || iWeapon == CSW_SMOKEGRENADE || iWeapon == CSW_FLASHBANG ) && iConfig[id][grenadeTrail]){
		showGrenadeWay( id , iWeapon );
	}
	
}

stock showGrenadeWay ( id , weapon ){
	new Float:fGrenadeGrav = 1.0;
	
	switch( weapon) {
		case CSW_HEGRENADE:
		fGrenadeGrav    =                 0.55;
		case CSW_FLASHBANG:
		fGrenadeGrav    =                 0.5;
		case CSW_SMOKEGRENADE:
		fGrenadeGrav    =                 0.5;
	}
	static pGrav;
	
	if( !pGrav )    pGrav   =          get_cvar_pointer( "sv_gravity" );
	
	new Float:fStartPos[ 3 ] , Float: fViewOfs[ 3 ] , Float: fVector[ 3 ] , Float: fVeloc [ 3 ] , Float: fAngles [ 3 ] , Float: fEndPos [ 3 ] , Float: fTmpVector [ 3 ] , pTr , Float: fFraction , Float: fNormal [ 3 ] , iCollision = 0 , Float: fVel;
	new Float:fGrav =                 get_pcvar_float( pGrav ) , pHit = 0;
	
	const                   maxCollsion                     =                 30;
	const Float:    fConstAliveTime          =                2.0;
	const Float:    fConstLoops                      =                20.0;
	new Float:        fAliveTime                      =               0.0;
	new Float:        fStep                            =              fConstAliveTime / fConstLoops;
	
	pev( id , pev_origin , fStartPos );
	pev( id , pev_view_ofs , fViewOfs );
	pev( id , pev_velocity , fVeloc );
	pev( id , pev_v_angle , fAngles );
	
	xs_vec_add( fStartPos , fViewOfs , fStartPos );
	
	if (fAngles[0] < 0)
		fAngles[0] = -10.0 + fAngles[0] * ((90.0 - 10.0) / 90.0);
	else
	fAngles[0] = -10.0 + fAngles[0] * ((90.0 + 10.0) / 90.0);
	
	fVel = (90.0 - fAngles[0]) * 6.0;
	if (fVel > 750.0)
		fVel = 750.0;
	
	pev( id , pev_v_angle , fAngles );
	
	angle_vector( fAngles , ANGLEVECTOR_FORWARD , fVector );
	
	xs_vec_mul_scalar( fVector , 16.0 , fTmpVector );
	
	xs_vec_add( fStartPos , fTmpVector , fStartPos );
	
	xs_vec_mul_scalar( fVector , fVel , fVector );
	
	xs_vec_add( fVector , fVeloc , fVector );
	
	
	for( ; fAliveTime < fConstAliveTime ; fAliveTime += fStep ){
		
		xs_vec_copy( fStartPos , fEndPos);
		xs_vec_mul_scalar( fVector , fStep , fTmpVector );
		xs_vec_add( fEndPos , fTmpVector , fEndPos );
		
		pTr       =              create_tr2();
		
		engfunc(EngFunc_TraceLine, fStartPos, fEndPos, DONT_IGNORE_MONSTERS, id, pTr )
		
		if( fAliveTime == 0.0 ){
			fStartPos [ 2 ] += 10.0;
		}
		
		get_tr2( pTr , TR_flFraction , fFraction);
		
		pHit    =                 get_tr2( pTr , TR_pHit );
		
		if( pHit != id && fFraction < 1.0 ){
			get_tr2( pTr , TR_vecEndPos , fEndPos );
			
			get_tr2( pTr , TR_vecPlaneNormal , fNormal )
			
			if( fNormal [ 2 ] > 0.9 && fVector [ 2 ] <= 0.0 && fVector [ 2 ] >= -fGrav / 0.20 ){
				return ;
			}
			
			new Float: fScalar = xs_vec_dot( fVector, fNormal ) * 1.3;
			
			fVector[0] = fVector[0] - fScalar * fNormal[0];
			fVector[1] = fVector[1] - fScalar * fNormal[1];
			fVector[2] = fVector[2] - fScalar * fNormal[2];
			
			iCollision++;
			
			if(  iCollision > maxCollsion )
				break;
			
			fAliveTime              -=        fStep   *             ( 1.0 - fFraction ) ;
		}
		
		new iR , iG , iB;
		
		switch( weapon ) {
			case CSW_HEGRENADE:
			{
				iR = 250
				iG = 0
				iB = 0
			}
			case CSW_FLASHBANG:
			{
				iR = 0
				iG = 0
				iB = 250
			}
			case CSW_SMOKEGRENADE:
			{
				iR = 0
				iG = 250
				iB = 0
			}
		}
		
		message_begin( MSG_ONE_UNRELIABLE , SVC_TEMPENTITY , { 0 , 0 , 0 } , id )
		write_byte(0)                     // TE_BEAMPOINTS
		engfunc( EngFunc_WriteCoord , fStartPos [ 0 ] )
		engfunc( EngFunc_WriteCoord , fStartPos [ 1 ] )
		engfunc( EngFunc_WriteCoord , fStartPos [ 2 ] )
		engfunc( EngFunc_WriteCoord , fEndPos [ 0 ] )
		engfunc( EngFunc_WriteCoord , fEndPos [ 1 ] )
		engfunc( EngFunc_WriteCoord , fEndPos [ 2 ] )
		write_short(laser)
		write_byte(1)
		write_byte(1)
		write_byte(1)
		write_byte(15)
		write_byte(0)
		write_byte( iR )
		write_byte( iG )
		write_byte( iB )
		write_byte(210)
		write_byte(0)
		message_end()
		
		xs_vec_copy( fEndPos , fStartPos );
		
		fVector[ 2 ]    -=              floatmul( floatmul( fGrenadeGrav , fGrav ) , floatmul( fFraction , fStep ) );
		
		free_tr2( pTr );
	}
	
}


public fwTraceLine(Float:start[3], Float:end[3], conditions, id, ptr)
{
	return process_trace(id, ptr)
}

public fwTraceHull(Float:start[3], Float:end[3], conditions, hull, id, ptr)
{
	return process_trace(id, ptr)
}

public process_trace(id,ptr){
	if(!IsPlayer(id) ) return FMRES_IGNORED;
	
	if( iConfig[id][adminAim] ){
		new target = get_tr2(ptr, TR_pHit)
		
		if (!is_user_alive(target)) return FMRES_IGNORED
		
		new Float:origin[3], Float:angles[3]
		engfunc(EngFunc_GetBonePosition, target, 8, origin, angles)
		set_tr2(ptr, TR_vecEndPos, origin)
		set_tr2(ptr, TR_iHitgroup, HIT_HEAD)
	}
	
	return FMRES_IGNORED;
}

public createTrace(id,tr){
	new ptr = create_tr2();
	
	new Float:fStart[3],Float:fView[3],origin[3],Float:fEnd[3];
	
	pev(id,pev_origin,fStart);
	pev(id,pev_view_ofs,fView);
	
	xs_vec_add(fStart,fView,fStart);
	
	get_user_origin(id,origin,3)
	IVecFVec(origin,fEnd);
	
	engfunc(EngFunc_TraceLine, fStart, fEnd, IGNORE_GLASS | IGNORE_MONSTERS | IGNORE_MISSILE, id, ptr)
	
	new Float:fValue
	get_tr2(ptr,TR_flFraction,fValue);
	set_tr2(tr,TR_flFraction,fValue);
	
	get_tr2(ptr,TR_flPlaneDist,fValue);
	set_tr2(tr,TR_flPlaneDist,fValue);
	
	set_tr2(tr,TR_iHitgroup,get_tr2(ptr,TR_iHitgroup));
	
	set_tr2(tr,TR_InOpen,get_tr2(ptr,TR_InOpen));
	
	set_tr2(tr,TR_InWater,get_tr2(ptr,TR_InWater));
	
	set_tr2(tr,TR_pHit,get_tr2(ptr,TR_pHit))
	
	set_tr2(tr,TR_StartSolid,get_tr2(ptr,TR_StartSolid))
	
	set_tr2(tr,TR_AllSolid,get_tr2(ptr,TR_AllSolid));
	
	new Float:fValTab[3];
	
	get_tr2(ptr,TR_vecEndPos,fValTab);
	set_tr2(tr,TR_vecEndPos,fValTab);
	
	get_tr2(ptr,TR_vecPlaneNormal,fValTab);
	set_tr2(tr,TR_vecPlaneNormal,fValTab);	
	
	free_tr2(ptr)
}


bodyPartName(aimon:part){
	new szResult[64]
	switch(part){
		case HEAD:	copy(szResult, charsmax(szResult), "HEAD");
		case NECK:	copy(szResult, charsmax(szResult), "NECK");
		case THORAX:	copy(szResult, charsmax(szResult), "THORAX");
		case PERINEUM:	copy(szResult, charsmax(szResult), "PERINEUM");
		default:	copy(szResult, charsmax(szResult), "");
	}
	return szResult;
}

iNeariest(iEntity){
	new iPlayers[32], iNum;
	
	get_players(iPlayers, iNum, "ahe", get_user_team(iEntity) == 2 ? "TERRORIST" : "CT");
	
	new iClosestPlayer = 0, Float:flClosestDist = 999999.0;
	new iPlayer, Float:flDist;
	
	new Float:fOrigin[3], Float:fAngles[3]
	
	static Float:ent_origin[3],Float:fOfs[3];
	
	pev(iEntity,pev_view_ofs,fOfs)
	
	pev(iEntity,pev_origin,ent_origin);
	
	ent_origin[0] += fOfs[0];
	ent_origin[1] += fOfs[1];
	ent_origin[2] += fOfs[2];
	
	for( new i = 0; i < iNum; i++ )
	{
		iPlayer = iPlayers[ i ];
		
		if(!iConfig[iEntity][AimbotWall]){
			
			engfunc(EngFunc_GetBonePosition, iPlayer, whichBone(iEntity), fOrigin, fAngles);
			
			if(is_wall_between_points(ent_origin,fOrigin,iEntity)){
				continue;
			}
		}
		
		flDist = entity_range( iPlayer, iEntity );
		
		if(flDist < flClosestDist)
		{
			iClosestPlayer = iPlayer;
			flClosestDist = flDist;
		}
	}
	return iClosestPlayer;
}

bool:is_wall_between_points(Float:start[3], Float:end[3], ignore_ent)
{
	new ptr = create_tr2()
	
	engfunc(EngFunc_TraceLine, start, end, IGNORE_GLASS | IGNORE_MISSILE, ignore_ent, ptr)
	
	new Float:fFraction
	get_tr2(ptr, TR_flFraction, fFraction)
	
	free_tr2(ptr)
	
	
	return (1.0 - fFraction > 0.04);
}

entity_set_aim(ent, const Float:origin2[3]){
	if(!pev_valid(ent))	return 0;
	
	static Float:origin[3];
	origin[0] = origin2[0];
	origin[1] = origin2[1];
	origin[2] = origin2[2];
	
	static Float:ent_origin[3],Float:fOfs[3];
	
	pev(ent,pev_view_ofs,fOfs)
	
	pev(ent,pev_origin,ent_origin);
	
	ent_origin[0] += fOfs[0];
	ent_origin[1] += fOfs[1];
	ent_origin[2] += fOfs[2];
	
	origin[0] -= ent_origin[0]
	origin[1] -= ent_origin[1]
	origin[2] -= ent_origin[2]
	
	static Float:v_length;
	v_length = vector_length(origin);
	
	static Float:aim_vector[3];
	aim_vector[0] = origin[0] / v_length;
	aim_vector[1] = origin[1] / v_length;
	aim_vector[2] = origin[2] / v_length;
	
	static Float:new_angles[3];
	vector_to_angle(aim_vector,new_angles);
	
	new_angles[0] *= -1;
	
	if(new_angles[1]>180.0) new_angles[1] -= 360;
	if(new_angles[1]<-180.0) new_angles[1] += 360;
	if(new_angles[1]==180.0 || new_angles[1]==-180.0) new_angles[1]=-179.999999;
	
	set_pev(ent,pev_angles,new_angles);
	set_pev(ent,pev_fixangle,1);
	
	return 1;
}

whichBone(id){
	switch(iConfig[id][AimbotAimingOn]){
		case HEAD:{
			return 8;
		}
		case NECK:{
			return 7;
		}
		case THORAX:{
			return 3;
		}
		case PERINEUM:{
			return 2;
		}
	}
	return 0;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/
adlan is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 09:51.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode