亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? client.cpp

?? 我對他如何控制準星、顯示敵友很好奇
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
		return; 
	}

	if( !cvar.ftime ) { cvar.ftime = 0.1f; }
	if( cvar.burstflags&BurstInfo::BURSTFLAG_GROUND )
	{
		if(!(me.pmFlags&FL_ONGROUND)) // in mid air?
		{
			bAttacking = false;
			nFireSequence = FIRESEQ_INACTIVE; // delay shooting until landed
		}
	}

	if (gAimbot.target!=-1)
	{
		switch (nFireSequence)
		{
		case FIRESEQ_INACTIVE: 
			if( cvar.sdelay )
			{ 
				nFireSequence =  FIRESEQ_STARTDELAY; 
				timer = ClientTime::current; 
				gStopMovement();
				
			} else { 
				nFireSequence =  FIRESEQ_ACTIVE;     
				timer = ClientTime::current;
				bFireCycle  = true;
				bAttacking = true;
			}
			break;
		case FIRESEQ_STARTDELAY:
			if( ClientTime::current >= (timer+cvar.sdelay) )  
			{
				// start delay time's up, start firing
				nFireSequence =  FIRESEQ_ACTIVE;     
				timer = ClientTime::current;
				bFireCycle  = true;
				bAttacking = true;

			}
			break;
		case FIRESEQ_ACTIVE:  
			if( bFireCycle ) 
			{
				if( (ClientTime::current >= (timer+cvar.ftime)) && (cvar.dtime!=0)) 
				{
					bAttacking = false;
					timer = ClientTime::current;
					bFireCycle = false;
				}
				
			} else {    
				if( ClientTime::current >= (timer+cvar.dtime) )
				{
					bAttacking = true;
					timer = ClientTime::current;
					bFireCycle = true;
				}
			}
			break;
		case FIRESEQ_RELEASEDELAY:
			nFireSequence =  FIRESEQ_ACTIVE;     
			timer = ClientTime::current;
			bFireCycle  = true;
			bAttacking = true;
			break;
		}
		
	} else { 
		switch (nFireSequence)
		{
		case FIRESEQ_INACTIVE: 
			break;
		case FIRESEQ_STARTDELAY: 
			nFireSequence =  FIRESEQ_INACTIVE;     
			gFreeMovement();
			break;
		case FIRESEQ_ACTIVE:  
			gFreeMovement();
			if( !bFireCycle || (cvar.rdelay==0) )
			{                   
				bAttacking = false;
				nFireSequence =  FIRESEQ_INACTIVE;     
				
			} else {        
				timer = ClientTime::current;
				nFireSequence = FIRESEQ_RELEASEDELAY;
			}
			break;
		case FIRESEQ_RELEASEDELAY: 
			gFreeMovement();
			if( ClientTime::current >= (timer+cvar.rdelay) ) 
			{
				bAttacking = false;
				nFireSequence =  FIRESEQ_INACTIVE;     
			}
			break;
		}
	}
}

//========================================================================================
void UpdateScreenInfo(void)
{
	screeninfo.iSize=sizeof(SCREENINFO);
	gEngfuncs.pfnGetScreenInfo(&screeninfo);
	displayCenterX = screeninfo.iWidth/2;
	displayCenterY = screeninfo.iHeight/2;
}

void security_hook();void security_unhook();
//========================================================================================
void dynamic_hook()
{
	if(bDontAutoHook) return;

	bIsHooked = true;
	
	if(hw_client_dllfuncs)   { memcpy(hw_client_dllfuncs,&gHookedClientExports,sizeof(gHookedClientExports)); }
	if(client_enginefuncs)   { memcpy(client_enginefuncs,&gHookedEngfuncs     ,sizeof(gHookedEngfuncs)); }
	if(hw_client_studio_ptr) { hw_client_studio_ptr->StudioDrawPlayer = NewStudioDrawPlayer; }
		if(commandPatch.patchloc){ commandPatch.apply(); }	if(soundPatch.patchloc)  { soundPatch.apply();   }	//if(loaderPatch.patchloc) { loaderPatch.apply();  }
	if(chasePatch.patchloc)  { chasePatch.apply(); }
	//client_enginefuncs->pEfxAPI->R_BloodSprite = R_BloodSpriteHook;
	//R_BloodSprite_Org = gHookEnginefuncs.pEfxAPI->R_BloodSprite;
	if(hProcess)FlushInstructionCache(hProcess,0,0);

}

//========================================================================================
void dynamic_unhook()
{
	if(bDontAutoHook) return;

	bIsHooked = false;

	if(hw_client_dllfuncs)   { memcpy(hw_client_dllfuncs,&gClientExports,sizeof(gClientExports)); }
	if(client_enginefuncs)   { memcpy(client_enginefuncs,&gEngfuncs,sizeof(gEngfuncs)); }
	if(hw_client_studio_ptr) { hw_client_studio_ptr->StudioDrawPlayer = OrigStudioDrawPlayer; }
	if(commandPatch.patchloc){ commandPatch.restore(); }	if(soundPatch.patchloc)  { soundPatch  .restore(); }	//if(loaderPatch.patchloc) { loaderPatch .restore(); }
	if(chasePatch.patchloc)  { chasePatch.restore(); }
	
	//client_enginefuncs->pEfxAPI->R_BloodSprite = gEngfuncs.pEfxAPI->R_BloodSprite;
	if(hProcess)FlushInstructionCache(hProcess,0,0);
}

//========================================================================================
void func_hook()
{
	sndPlaySound(getOgcDirFile("activated.wav").c_str(),SND_ASYNC);
	Con_Echo("&bHOOKED");

	bDontAutoHook = false;
	dynamic_hook();
	//bDontAutoHook = true;
}

//========================================================================================
void func_unhook()
{
	sndPlaySound(getOgcDirFile("deactivated.wav").c_str(),SND_ASYNC);
	Con_Echo("&bUNHOOKED");
	
	bDontAutoHook = false;
	dynamic_unhook();
	bDontAutoHook = true;
}

//========================================================================================
int pHUD_GetStudioModelInterface( int version, struct r_studio_interface_s **ppinterface, struct engine_studio_api_s *pstudio )
{
	assert(gClientExports.HUD_GetStudioModelInterface);
	int nResult = gClientExports.HUD_GetStudioModelInterface(version,ppinterface,pstudio);

	memcpy( &IEngineStudio, pstudio, sizeof( IEngineStudio ) );
	pIEngineStudio = &IEngineStudio;
	
	if(ppinterface && *ppinterface)
	{
		hw_client_studio_ptr = (*ppinterface);
		OrigStudioDrawPlayer = (*ppinterface)->StudioDrawPlayer;
	}
	
	// dynamic_unhook();

	return nResult;
}


//========================================================================================
extern hookinfo HUD_Redraw_Info;
int pHUD_Redraw (float x, int y)
{
	LOG(hudredraw_start)
	int nResult=0;
	//nResult = HUD_Redraw_Info.call_org(&y);
	nResult = gClientExports.HUD_Redraw(x,y);

	me.ent = gEngfuncs.GetLocalPlayer();
	if (cvar.cross)       { drawCrosshair       (); }
	if (cvar.czoom)	      { handleContinuousZoom(); }
	hudDrawInfoTexts();
	if (cvar.radar)	      { drawRadarFrame      (); }
	if (menu_active)      { drawMenu            (); }
	if (cvar.soundfilter) { drawSound           (); }
	

	// === check for scheduled commands:
	for( ScheduleList::iterator pos = scheduleList.begin();
		 pos != scheduleList.end();
		 ++pos)
	{
		if( (*pos).timer.expired() )
		{
			cmd.exec( const_cast<char*>((*pos).cmd.c_str()) );
			scheduleList.erase(pos);
			break;
		}	
	}

	// get screen info
	static bool done=false;
	if(!done)
	{ 
		UpdateScreenInfo(); 
		done=true; 
	}

	// === dead/alive signals
	static bool previous_alive_state=false;
	if     (  previous_alive_state && !me.alive )  { sendScriptSignal("dead" );  }
	else if( !previous_alive_state &&  me.alive )  { sendScriptSignal("alive" ); }
	previous_alive_state = me.alive;

	// === blink 
	if(blinkTimer.expired())
	{
		blinkPhase = !blinkPhase;
		if(blinkPhase){ blinkTimer.countdown(0.2); }
		else          { blinkTimer.countdown(0.1); }
	}

	// === flash removal
	if (cvar.flash)
	{
		static screenfade_t sf = { 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0 }; 
		gEngfuncs.pfnSetScreenFade( &sf ); 
	}

	// item esp + reset
	if(cvar.esp||cvar.radar) for (int ab=0;ab<vEntity.size();ab++) drawEsp(ab);
	vEntity.clear();

	// player esp
	for (int ax=0;ax<vPlayers.size();ax++) if (vPlayers[ax].getPVS() ) drawPlayerEsp(ax);
	if(cvar.avdraw) gAimbot.draw();

	// snake game
	snake.frame();
	if(cvar.wa_active) winamp.frame();

	// console
	gConsole.draw(cvar.con_x,cvar.con_y,cvar.con_w,cvar.con_h);

	// == handle autoshoot
	gAttackHandling();

	LOG(hudredraw_end)
	return nResult;
} 

//========================================================================================
void ActivatePlayer(struct cl_entity_s *ent)
{
	int px = ent->index;

	if(cvar.alive_method==1)
	{
		if(ent->curstate.solid) { vPlayers[px].setAlive(); }
		
		if(ent==me.ent) { me.alive = vPlayers[px].getAlive(); }
	}
	else if(cvar.alive_method==2)
	{
		if(ent->curstate.solid) { vPlayers[px].setAlive(); }
		else                    { vPlayers[px].setAlive(false);}
		
		if(ent==me.ent) { me.alive = vPlayers[px].getAlive(); }
	}


	vPlayers[px].setPVS();
	gEngfuncs.pfnGetPlayerInfo(ent->index, &vPlayers[px].entinfo);

	if(ent == me.ent) 
	{ 
		vPlayers[px].distance = 100000.0;
		vPlayers[px].visible  = false;
		vPlayers[px].fovangle = 360;
		vPlayers[px].points   = -999999;
		vPlayers[px].clearPVS(); 
		return;
	}
	
	// filter trash entities, calc distance/visibility, points ...
	playerCalcExtraData(px,ent);
}

//========================================================================================
void AddEntity(struct cl_entity_s *ent)
{
	hostage_info dummy;
	dummy.ent = ent;
	if(vEntity.size()<64) vEntity.push_back(dummy);
}


//========================================================================================
inline void drawLine(float*from, float*to, ColorEntry*color)
{
	gEngfuncs.pEfxAPI->R_BeamPoints(from,to,beamindex,0.001f,0.9f,0.5,32,2,0,10,color->fr,color->fg,color->fb);
}

//========================================================================================
extern hookinfo HUD_TempEntUpdate_Info;
void pHUD_TempEntUpdate (
		double frametime,   			// Simulation time
		double client_time, 			// Absolute time on client
		double cl_gravity,  			// True gravity on client
		TEMPENTITY **ppTempEntFree,   	// List of freed temporary ents
		TEMPENTITY **ppTempEntActive, 	// List 
		int		( *Callback_AddVisibleEntity )( cl_entity_t *pEntity ),
		void	( *Callback_TempEntPlaySound )( TEMPENTITY *pTemp, float damp ) )
{
LOG(Tempent_start)
	
	//HUD_TempEntUpdate_Info.call_org(&Callback_TempEntPlaySound);

	typedef void (*HUD_TempEntUpdateFunc)(double,double,double,TEMPENTITY**,TEMPENTITY**, int(*)(cl_entity_t*),void(*)(TEMPENTITY*,float));	

	(*(HUD_TempEntUpdateFunc)(gClientExports.HUD_TempEntUpdate))(
		frametime,
		client_time,
		cl_gravity,
		ppTempEntFree,
		ppTempEntActive,
		Callback_AddVisibleEntity,
		Callback_TempEntPlaySound 
		);
		

	me.ent = gEngfuncs.GetLocalPlayer();
	if(cvar.light)
	{
		dlight_t *dl = gEngfuncs.pEfxAPI->CL_AllocDlight (0);
		VectorCopy (me.pmEyePos, dl->origin);
		dl->radius = cvar.light;
		dl->color.r = 255;
		dl->color.g = 255;
		dl->color.b = 255;
		dl->die = client_time + 0.01;
	}

	if(cvar.tlight && gAimbot.target!=-1 )
	{
		ColorEntry* color = colorList.get(29);
		dlight_t *dl = gEngfuncs.pEfxAPI->CL_AllocDlight (0);
		VectorCopy ( vPlayers[gAimbot.target].getEnt()->origin, dl->origin );
		dl->radius = cvar.tlight;
		dl->color.r = color->r;
		dl->color.g = color->g;
		dl->color.b = color->b;
		dl->die = client_time + 0.01;
	}

	// == provide time handler with timing info
	ClientTime::reportMapTime( client_time );

	// find beamindex if needed 
	if(!beamindex) { beamindex = gEngfuncs.pEventAPI->EV_FindModelIndex("sprites/laserbeam.spr"); }
    		
	if( cvar.death && deathInfos.active )
	{
		ColorEntry* color = colorList.get(16);
		gEngfuncs.pEfxAPI->R_BeamPoints(deathInfos.from,deathInfos.to,beamindex,0.001f,0.9f,0,32,2,0,0,color->fr,color->fg,color->fb);
	}
LOG(Tempent_end)
}

//========================================================================================
void PreV_CalcRefdef (struct ref_params_s *pparams)
{
	// recoil
	VectorCopy(pparams->punchangle,me.punchangle);
	if (cvar.recoil) for (int i=0; i<3; i++) pparams->punchangle[i] = 0; 	

	if( pparams->nextView == 0 )
	{
		//if(!me.alive)
		//{
		//	// avoid problems with free chase cam view
		//	// where me.pmOrigin is the viewed player
		//	VectorCopy(pparams->vieworg,me.pmEyePos);
		//}

		// find a target
		gAimbot.findTarget();
		if( gAimbot.target != -1 && cvar.autoburst && mod==MOD_CSTRIKE)
		{
			// == update burst settings
			int dist = vPlayers[gAimbot.target].distance/22;
			BurstInfo::RangeInfo* range = burstInfo.get(currentWeaponID,dist );

			// update burst variables
			cvar.ftime  = range->ftime;
			cvar.dtime  = range->dtime;
			cvar.sdelay = range->sdelay;
			cvar.burstflags = range->flags;
		} 


		if ( cvar.aim ) 
		if ( (me.iClip && me.pmMoveType!=5) || !me.alive ) // out of ammo / on ladder / dead
		if ( gAimbot.target!=-1 )
		if (! (cvar.burstflags&BurstInfo::BURSTFLAG_NOAIM) )
		if ( pparams->nextView == 0 )
		{
			Aimbot_active = true;
			gAimbot.CalcViewAngles();
			VectorCopy(gAimbot.aim_viewangles, pparams->cl_viewangles);
			VectorCopy(gAimbot.aim_viewangles, pparams->viewangles);
		} 

		// decrement PVS+reset
		for (int ax=0;ax<vPlayers.size();ax++) 
		{
			vPlayers[ax].decrPVS();
			vPlayers[ax].numTargetSpots = 0; // gets filled again in gAimbot 
		}

	}

	//// viewport switching
	//if (!cvar.mirror)
	//{
	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区蝌蚪| 91免费小视频| 婷婷一区二区三区| 久久精品国产亚洲一区二区三区 | 国产成人精品www牛牛影视| 成人国产精品免费观看视频| 色哟哟在线观看一区二区三区| 欧美性xxxxx极品少妇| 精品国产乱码久久久久久闺蜜| 中国色在线观看另类| 亚洲h精品动漫在线观看| 国产在线精品一区在线观看麻豆| 99久久99久久久精品齐齐| 日韩免费看网站| 一区二区三区四区蜜桃| 国产一区二区三区最好精华液| 在线观看一区二区精品视频| 国产午夜精品理论片a级大结局 | 精品亚洲欧美一区| 色综合一个色综合| 欧美日韩在线播| 国产精品三级av| 九九国产精品视频| 欧美日韩不卡一区| 日韩理论电影院| 国产主播一区二区三区| 欧美日韩精品一二三区| 中文字幕在线观看不卡视频| 亚洲成人动漫在线观看| 丁香婷婷综合激情五月色| 色噜噜狠狠色综合欧洲selulu| 久久久久国产免费免费 | 色悠久久久久综合欧美99| 久久精品欧美一区二区三区不卡| 日本中文字幕一区二区视频| 色www精品视频在线观看| 国产精品久久精品日日| 精品一区二区三区欧美| 3d动漫精品啪啪| 亚洲欧美日本在线| 不卡一区二区中文字幕| 日本一区二区三区视频视频| 国产资源精品在线观看| 精品少妇一区二区三区| 精品一区二区三区视频| 日韩一级高清毛片| 免费观看一级欧美片| 337p亚洲精品色噜噜| 亚洲第一狼人社区| 欧美日韩高清一区| 偷拍一区二区三区四区| 欧美日韩1234| 亚洲影院在线观看| 在线中文字幕一区二区| 亚洲色图清纯唯美| 在线精品视频小说1| 亚洲国产精品天堂| 69堂亚洲精品首页| 99久久精品99国产精品 | 成人免费视频一区| 国产精品久久综合| 91麻豆自制传媒国产之光| 亚洲天堂免费在线观看视频| fc2成人免费人成在线观看播放| 日韩一区二区在线免费观看| 免费在线视频一区| 久久综合久久综合九色| 国产精品99久久久久久宅男| 亚洲三级小视频| 538在线一区二区精品国产| 久久国产精品99久久人人澡| 国产日韩av一区| 欧美视频三区在线播放| 极品少妇xxxx精品少妇| 日本一区二区不卡视频| 成人激情小说网站| 亚洲色图视频免费播放| 在线看日韩精品电影| 免费在线欧美视频| 中文字幕+乱码+中文字幕一区| 日本丰满少妇一区二区三区| 青青草伊人久久| 久久久www成人免费无遮挡大片 | 三级亚洲高清视频| 久久精品综合网| 欧美性猛片aaaaaaa做受| 久久国产视频网| 亚洲视频在线观看三级| 欧美日韩精品福利| 国产成人av一区二区| 亚洲一区二区精品3399| 精品粉嫩aⅴ一区二区三区四区| 成人看片黄a免费看在线| 日韩av一区二| 亚洲欧洲精品一区二区三区不卡| 日韩无一区二区| 欧美午夜一区二区| 丁香六月综合激情| 亚洲不卡av一区二区三区| 国产精品狼人久久影院观看方式| 欧美在线播放高清精品| 成人免费毛片app| 麻豆一区二区在线| 亚洲二区在线观看| 亚洲视频综合在线| 国产视频一区二区在线| 在线播放91灌醉迷j高跟美女| bt7086福利一区国产| 美女网站色91| 午夜在线成人av| 亚洲视频一区二区在线| 久久久av毛片精品| 欧美在线小视频| 91丨九色丨国产丨porny| 国产一区高清在线| 美腿丝袜一区二区三区| 亚洲va在线va天堂| 中文字幕一区二区三区在线观看 | 欧美午夜寂寞影院| 99国产精品国产精品久久| 福利一区福利二区| 亚洲成人一区二区在线观看| 久久久久久久久岛国免费| 在线播放91灌醉迷j高跟美女 | 91福利精品第一导航| 波多野结衣一区二区三区 | 麻豆中文一区二区| 日韩精品亚洲专区| 天使萌一区二区三区免费观看| 一级中文字幕一区二区| 亚洲色图另类专区| 亚洲精品视频在线观看网站| 国产精品色呦呦| 日本一区二区免费在线| 久久久噜噜噜久久中文字幕色伊伊| 精品女同一区二区| 亚洲精品在线观| 久久精品男人的天堂| 国产精品乱码久久久久久| 国产精品国产自产拍高清av王其| 国产精品久久久久久一区二区三区| 久久久www成人免费无遮挡大片| 久久精品夜色噜噜亚洲aⅴ| 国产人成亚洲第一网站在线播放| 欧美国产精品v| 欧美成人艳星乳罩| 久久久www免费人成精品| 成人免费小视频| 亚洲最色的网站| 久久精品国产精品亚洲精品 | 国产精品美女久久久久久久久久久| 国产亚洲精品久| 亚洲乱码中文字幕综合| 亚洲va天堂va国产va久| 日韩不卡一区二区| 粉嫩欧美一区二区三区高清影视| 欧美性生活久久| 欧美国产一区在线| 日韩av一区二区三区四区| 91亚洲精品久久久蜜桃网站| 日韩精品中午字幕| 亚洲乱码国产乱码精品精98午夜| 激情综合网最新| 欧美日韩一区国产| 中文av字幕一区| 国产在线一区观看| 欧美一区二区三区日韩视频| 中文字幕一区免费在线观看| 国产一区二区三区四| 欧美日韩情趣电影| 伊人色综合久久天天| 成人激情校园春色| 久久中文字幕电影| 免费高清在线一区| 7777精品久久久大香线蕉| 亚洲一区二区三区四区五区中文| 成人午夜伦理影院| 久久久久久电影| 极品尤物av久久免费看| 欧美一区二区三区的| 亚洲一区在线观看网站| 成人sese在线| 欧美国产精品中文字幕| 国产成人免费视频网站| 精品99999| 麻豆国产欧美日韩综合精品二区 | 欧美一卡二卡三卡| 亚洲综合免费观看高清完整版 | 国产成人免费xxxxxxxx| 日韩视频免费直播| 日本亚洲一区二区| 欧美精品乱码久久久久久按摩| 夜夜嗨av一区二区三区网页 | 性久久久久久久久| 欧美在线一区二区| 性感美女极品91精品| 欧美人妇做爰xxxⅹ性高电影| 亚洲自拍偷拍av| 欧美三级资源在线| 亚洲国产精品久久人人爱蜜臀 |