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

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

?? hookqueue.cpp

?? 我對他如何控制準星、顯示敵友很好奇
?? CPP
字號:
// 
// Online Game Cheats Client.dll hook
// Copyright (c) system   2001-2002
// Copyright (c) bunny771 2001-2002
// 
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
// 
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
// 
// NOTE:
// GNU license doesn't cover Engine directory.
// Content of Engine directory is copyrighted (c) 1999, 2000, by Valve LLC
// and it is licensed under Valve's proprietary license (see original HL SDK).
// 

#include "stdafx.h"
#include "hookqueue.h"
#include "engine/wrect.h"
#include "engine/cl_dll.h"
#include "engine/cdll_int.h"
#include "engine/r_efx.h"
#include "client.h"
#include <gl/gl.h>
#include <assert.h>

#pragma warning (disable:4731)

#include <fstream>
using namespace std;

MapStringInt myintmap;
DWORD engcodestart,engcodesize;


int  pInitialize (cl_enginefunc_t *pEnginefuncs, int iVersion);
int  pHUD_AddEntity (int type, struct cl_entity_s *ent, const char *modelname);
int  pHUD_Init (void);
int  pHUD_Redraw (float x, int y);
void pHUD_PlayerMove (struct playermove_s *a, int b); // 02899
void pV_CalcRefdef (struct ref_params_s *pparams);
void pCL_CreateMove (float frametime, struct usercmd_s *cmd, int active);
void pHUD_TempEntUpdate (double,double,double,TEMPENTITY**,TEMPENTITY**,int(*)(cl_entity_t *),void(*)(TEMPENTITY*,float) );
int  pHUD_GetStudioModelInterface( int version, struct r_studio_interface_s **ppinterface, struct engine_studio_api_s *pstudio );


hookinfo Initialize_Info         (&pInitialize,2,0x24E0); 
hookinfo HUD_AddEntity_Info      (&pHUD_AddEntity,3,0x26D1);
//hookinfo HUD_Init_Info           (&pHUD_Init,0,0x294D); 
hookinfo HUD_Redraw_Info         (&pHUD_Redraw,2,0x2979); 
hookinfo HUD_PlayerMove_Info     (&pHUD_PlayerMove,2,0x02899);
hookinfo V_CalcRefdef_Info       (&pV_CalcRefdef,1,0x27B2);
hookinfo CL_CreateMove_Info      (&pCL_CreateMove,3,0x281A);
hookinfo HUD_TempEntUpdate_Info            (&pHUD_TempEntUpdate,10,0x2541);
//hookinfo HUD_GetStudioModelInterface_Info  (&pHUD_GetStudioModelInterface,3);



void APIENTRY pglBlendFunc(GLenum sfactor, GLenum dfactor);
void APIENTRY pglVertex3f( float x, float y, float z); 
void APIENTRY pglBegin(unsigned int mode);

// only oldfunc infos:
hookinfo glBlendFuncInfo        (&pglBlendFunc,2,-1);
hookinfo glBeginInfo            (&pglBegin    ,1,-1);
hookinfo glVertex3fInfo         (&pglVertex3f ,3,-1);
hookinfo glDisableInfo          (NULL         ,1,-1);
hookinfo glEnableInfo           (NULL         ,1,-1);
hookinfo glColor3fInfo          (NULL         ,3,-1);
hookinfo glTexEnviInfo          (NULL         ,3,-1);
hookinfo glPolygonModeInfo      (NULL         ,2,-1);
hookinfo glClearColorInfo       (NULL         ,4,-1);
hookinfo glClearInfo            (NULL         ,1,-1);
hookinfo glGetFloatvInfo        (NULL         ,1,-1);
hookinfo glViewportInfo         (NULL         ,4,-1);
hookinfo glColor4fInfo          (NULL         ,4,-1);
hookinfo glLineWidthInfo        (NULL         ,1,-1);
hookinfo glRectiInfo            (NULL         ,4,-1);



////ofstream logfile("c:\\tmpaxx\\log.txt");
//void opengl_reroute(hookinfo* info,DWORD* callcode)
//{
//	if(! ( *(BYTE*)callcode == 0xA3 ) ) return; // mov ??,eax
//    
//	info->oldfunc  = (PVOID)*(DWORD*)(((BYTE*)callcode)+1);
//	void* oldfunc2 = (PVOID)*(DWORD*)(((BYTE*)callcode)+13);
//	BYTE *pos;
//	BYTE* codestart=(BYTE*)engcodestart;
//	DWORD length=engcodesize;
//
//    if(info->newfunc==NULL) return;
//
//    //if(dolog)logfile<<"scanning for ff15+"<<hex<<(DWORD)info->oldfunc<<endl;
//	while (ScanPattern_FF15calladr(codestart,(DWORD)info->oldfunc,length,&pos))
//	{
//		//if(dolog)logfile<<"found at "<<(DWORD)pos<<endl;
//		length-=pos+6-codestart;
//		codestart=pos+6;
//		Protect(pos+2,sizeof(DWORD));
//		DWORD* blub0r=(DWORD*)(pos+2);
//		*blub0r = (DWORD)&info->newfunc; 
//		Protect(pos+2);
//		info->return_trampoline=NULL;
//	}
//
//	codestart=(BYTE*)engcodestart;
//	length=engcodesize;
//    //if(dolog)logfile<<"scanning for ff15+"<<hex<<(DWORD)oldfunc2<<endl;
//	while (ScanPattern_FF15calladr(codestart,(DWORD)oldfunc2,length,&pos))
//	{
//		//if(dolog)logfile<<"found at "<<(DWORD)pos<<endl;
//		length-=pos+6-codestart;
//		codestart=pos+6;
//		Protect(pos+2,sizeof(DWORD));
//		DWORD* blub0r=(DWORD*)(pos+2);
//		*blub0r = (DWORD)&info->newfunc; 
//		Protect(pos+2);
//		info->return_trampoline=NULL;
//	}
//}

FARPROC check_hook_queue(char* procname, FARPROC original)
{
	MapStringInt::iterator pos = myintmap.find(procname);
	if(pos != myintmap.end() )
	{
		hookinfo* info = (hookinfo*)pos->second;
		assert(info);
		info->oldfunc = original;
		
		if(info->newfunc) return (FARPROC)info->newfunc;
		else              return original;
	}
	return original;
}

//=======================================================================================
void init_hook_queue()
{
	// client.dll reroute info
	typedef MapStringInt::value_type Entry;
	//myintmap.insert(Entry("Initialize",&Initialize_Info));
	//myintmap.insert(Entry("HUD_AddEntity",&HUD_AddEntity_Info));
	////myintmap.insert(Entry("HUD_Init",&HUD_Init_Info));
	//myintmap.insert(Entry("HUD_Redraw",&HUD_Redraw_Info));
	//myintmap.insert(Entry("HUD_PlayerMove",&HUD_PlayerMove_Info));
	//myintmap.insert(Entry("V_CalcRefdef",&V_CalcRefdef_Info));
	//myintmap.insert(Entry("CL_CreateMove",&CL_CreateMove_Info));
	//myintmap.insert(Entry("HUD_TempEntUpdate",&HUD_TempEntUpdate_Info));
	////////////myintmap.insert(Entry("HUD_GetStudioModelInterface",&HUD_GetStudioModelInterface_Info));
	////////////myintmap.insert(Entry("HUD_VidInit",&HUD_VidInit_Info));


	#define INSERT_INFO(a) 	myintmap.insert(Entry(#a,&a##Info));
	INSERT_INFO(glBlendFunc       )
	INSERT_INFO(glBegin           )
	INSERT_INFO(glVertex3f        )
	INSERT_INFO(glDisable         )
	INSERT_INFO(glEnable          )
	INSERT_INFO(glColor3f         )
	INSERT_INFO(glTexEnvi         )
	INSERT_INFO(glPolygonMode     )
	INSERT_INFO(glClearColor      )
	INSERT_INFO(glClear           )
	INSERT_INFO(glGetFloatv       )
	INSERT_INFO(glViewport        )
	INSERT_INFO(glColor4f         )
	INSERT_INFO(glLineWidth       )
	INSERT_INFO(glRecti           )
}

extern struct dllfuncs_t  gClientExports;
extern struct cl_enginefuncs_s  gEngfuncs;

//int pInitialize (cl_enginefunc_t *pEnginefuncs, int iVersion)
//{
//	LOG(initialize_start)
//
//	static bool firstcall = true;
//	if(firstcall)
//	{
//		// save engine funcs
//		memcpy (&gEngfuncs, pEnginefuncs, sizeof(cl_enginefunc_t));
//		gEngfuncs.pfnConsolePrint("// ==== OGC-INITIALIZE ====\n");
//		MessageBox(0,"initialize",0,0);
//		firstcall = false;
//	}
//	else
//	{
//		gEngfuncs.pfnConsolePrint("// ==== OGC-INITIALIZE 2 ====\n");
//	}
//
//	int nResult = gClientExports.Initialize(pEnginefuncs,iVersion);
//	LOG(initialize_end)
//	return nResult;
//}
//
//int pHUD_Redraw (float x, int y)
//{
//	LOG(hudredraw_start)
//	int nResult = gClientExports.HUD_Redraw(x,y);
//	LOG(hudredraw_end)
//	return nResult;
//} 
//
//int pHUD_AddEntity (int type, struct cl_entity_s *ent, const char *modelname)
//{
//	//__asm int 03;
//	LOG(addentity_start)
//	if(ent->player)
//	{
//			ent->curstate.renderamt = 1;
//			ent->curstate.rendercolor.r = 255;
//			ent->curstate.rendercolor.b = 0;
//			ent->curstate.rendercolor.g = 100;
//			ent->curstate.renderfx = kRenderFxGlowShell;
//	}
//	int nResult = gClientExports.HUD_AddEntity(type,ent,modelname);
//	LOG(addentity_end)
//	if ((strstr(modelname, "black_smoke")||strstr(modelname, "fast_wallpuff"))) return 0;
//	return nResult;
//}
//
//void pHUD_PlayerMove (struct playermove_s *a, int b)
//{
//	LOG(playermove_start)
//	gClientExports.HUD_PlayerMove(a,b);
//	LOG(playermove_end)
//}
//
//void pV_CalcRefdef (struct ref_params_s *pparams)
//{
//	LOG(calcrefdef_start)
//	gClientExports.V_CalcRefdef(pparams);
//	LOG(calcrefdef_end)
//}
//
//void pCL_CreateMove (float frametime, struct usercmd_s *cmd, int active)
//{
//	LOG(createmove_start)
//	gClientExports.CL_CreateMove(frametime,cmd,active);
//	LOG(createmove_end)
//}
//
//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)
//	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 
//		);
//	LOG(Tempent_end)
//}
//
//int pHUD_GetStudioModelInterface( int version, struct r_studio_interface_s **ppinterface, struct engine_studio_api_s *pstudio )
//{
//	LOG(studiomodel_start)
//	int nResult = gClientExports.HUD_GetStudioModelInterface(version,ppinterface,pstudio);
//	LOG(studiomodel_end)
//	return nResult;
//}
//

////=====================================================================
//void ClientApiHook(dllfuncs_t* df)
//{
//	static bool firstcall = true;
//	if(firstcall)
//	{
//		memcpy((char*)&gClientExports, (char*)df, sizeof(*df) );
//		//__asm int 03
//		df->Initialize = pInitialize;
//		df->HUD_Redraw = pHUD_Redraw;
//		df->HUD_AddEntity  = pHUD_AddEntity;
//	  	df->HUD_PlayerMove = pHUD_PlayerMove;
//	  	df->V_CalcRefdef   = pV_CalcRefdef;
//	  	df->CL_CreateMove  = pCL_CreateMove;
//	  	df->HUD_TempEntUpdate = pHUD_TempEntUpdate;
//	  	df->HUD_GetStudioModelInterface = pHUD_GetStudioModelInterface;
//		firstcall = false;
//	}
//}
//

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美欧美欧美欧美首页| 精品国产在天天线2019| 日韩女同互慰一区二区| 亚洲精品写真福利| 国产在线一区二区综合免费视频| 91小视频在线免费看| 26uuu亚洲| 视频一区二区欧美| 91亚洲精华国产精华精华液| 国产欧美一区在线| 免费视频最近日韩| 717成人午夜免费福利电影| 亚洲三级电影网站| 国产mv日韩mv欧美| 久久九九国产精品| 激情五月激情综合网| 日韩一区二区精品| 午夜天堂影视香蕉久久| 91久久国产综合久久| 中文字幕亚洲区| 成人av在线资源| 国产精品女同一区二区三区| 国产精品1024久久| 久久先锋影音av鲁色资源网| 免费一级欧美片在线观看| 欧美日韩国产综合草草| 亚洲成av人片一区二区三区| 欧美日韩视频在线一区二区| 亚洲国产综合91精品麻豆| 色猫猫国产区一区二在线视频| 亚洲日本va午夜在线影院| 成人av影视在线观看| 中文字幕精品三区| 成人激情综合网站| 国产精品福利av| 91免费看片在线观看| 亚洲精品视频免费看| 在线国产电影不卡| 亚洲午夜久久久久久久久电影网| 欧美视频完全免费看| 天天操天天干天天综合网| 91.麻豆视频| 美女视频网站久久| 国产欧美日韩久久| 色激情天天射综合网| 亚洲18影院在线观看| 日韩精品中文字幕一区二区三区| 黄色资源网久久资源365| 国产三级欧美三级| 色哟哟一区二区三区| 亚洲成人先锋电影| 久久综合久久综合久久综合| 成人av电影观看| 亚洲一区欧美一区| 日韩女优制服丝袜电影| 成人福利视频在线| 亚洲一区二区四区蜜桃| 日韩精品一区二区三区三区免费| 国产jizzjizz一区二区| 亚洲国产精品一区二区www| 精品嫩草影院久久| 91亚洲精品一区二区乱码| 天天综合日日夜夜精品| 国产免费成人在线视频| 欧美午夜不卡在线观看免费| 韩国女主播成人在线| 亚洲摸摸操操av| 精品黑人一区二区三区久久| 91日韩在线专区| 久久国产三级精品| 一区二区欧美国产| 久久久久久久性| 欧美高清激情brazzers| 国产成人精品免费看| 性做久久久久久久免费看| 欧美国产1区2区| 欧美一区二区三区视频免费| 91在线精品秘密一区二区| 奇米一区二区三区| 亚洲蜜桃精久久久久久久| 久久久99精品久久| 欧美一区二区三区视频| 在线视频观看一区| 国产精品一品视频| 日本少妇一区二区| 亚洲欧美一区二区三区孕妇| 久久精品视频网| 日韩精品专区在线影院重磅| 欧美日韩情趣电影| 一本一道综合狠狠老| 成人美女在线视频| 激情综合色播五月| 免费高清在线视频一区·| 亚洲影院在线观看| 亚洲免费观看视频| 国产精品久久夜| 国产欧美视频一区二区三区| 日韩视频一区二区三区在线播放 | 精品国产青草久久久久福利| 欧美性大战久久久| 97精品国产97久久久久久久久久久久| 久久99久久久久| 毛片av中文字幕一区二区| 午夜欧美在线一二页| 亚洲在线观看免费| 亚洲一区二区三区三| 亚洲一区二区三区爽爽爽爽爽| 18欧美亚洲精品| 亚洲色图欧美激情| 一区二区三区产品免费精品久久75| 亚洲天堂福利av| 亚洲精品高清视频在线观看| 日韩美女视频19| 亚洲精品网站在线观看| 一区二区三区精品在线观看| 亚洲日穴在线视频| 一个色妞综合视频在线观看| 亚洲精品日日夜夜| 亚洲国产成人av网| 奇米影视一区二区三区小说| 久久se精品一区精品二区| 日韩主播视频在线| 男人的j进女人的j一区| 激情综合网激情| 成人美女在线观看| 91啪九色porn原创视频在线观看| 一本色道亚洲精品aⅴ| 欧美系列一区二区| 91精品国产综合久久久蜜臀图片| 欧美顶级少妇做爰| 久久精品夜色噜噜亚洲a∨ | 欧美一卡在线观看| 久久在线观看免费| |精品福利一区二区三区| 中文字幕一区二区三区在线不卡 | 欧美一级片免费看| 欧美电影免费观看高清完整版在线 | 国产精品一卡二| 91亚洲大成网污www| 欧美日韩精品一区二区三区蜜桃| 日韩一区二区在线观看视频| 久久久久亚洲蜜桃| 亚洲国产综合色| 狠狠色狠狠色综合日日91app| 丁香婷婷综合网| 在线观看视频一区二区欧美日韩| 欧美一区二区三区视频免费| 国产精品久久综合| 青青草91视频| 色婷婷久久久久swag精品| 日韩一区二区三区四区五区六区| 日本一区二区三区国色天香| 亚洲成人资源在线| 成人激情小说网站| 日韩午夜激情av| 尤物av一区二区| 国模娜娜一区二区三区| 欧美亚洲禁片免费| 国产女人aaa级久久久级| 日韩中文字幕一区二区三区| 成人精品一区二区三区中文字幕| 欧美日韩免费高清一区色橹橹 | 国产·精品毛片| 欧美精品一卡二卡| 中文字幕日韩一区二区| 经典三级视频一区| 欧美中文一区二区三区| 欧美国产成人精品| 麻豆精品在线看| 欧美日韩综合在线| 中文字幕+乱码+中文字幕一区| 日本视频在线一区| 欧美蜜桃一区二区三区| 中文字幕亚洲电影| 成人黄色小视频| 91成人免费在线视频| 欧美视频一区二区三区四区| 国产欧美日韩三区| 久久精品国产免费| 亚洲高清视频在线| 91浏览器入口在线观看| 久久午夜羞羞影院免费观看| 日本午夜精品一区二区三区电影| 一本久久精品一区二区| 91精品欧美福利在线观看| 久久精品日韩一区二区三区| 国产精品视频第一区| 国产精品一二三区在线| 日韩码欧中文字| 欧美日韩免费观看一区二区三区 | 粉嫩av亚洲一区二区图片| 国产精品理伦片| 欧美日韩一区视频| 精品亚洲国产成人av制服丝袜| 国产拍揄自揄精品视频麻豆| 在线日韩一区二区| 精品亚洲国产成人av制服丝袜| 国产精品久久久久久户外露出| 欧洲人成人精品| 国产在线一区二区|