資源簡介
代碼全部寫了注釋方便觀看,基本細到每個函數都是本人寫的注釋,代碼是用C++寫的gdi附加窗口繪制,基本不閃不卡,就是效果還有一定問題要自己微調。全屏1024*768分辨率運行能 體現最好效果。另外提供了游戲百度網盤的下載鏈接,和游戲里的一些基址和偏移。

代碼片段和文件信息
#pragma?warning(disable?:?4996)?
#include?
#include?
#include?
#include?
#include?
#define?TOP_HEIGHT?25
struct?PlayerData
{
DWORD?baseEntity?;?//該人物基地址
float?Position[3];?//人物坐標:x為Position[0]y為Position[1]z為Position[2]
int?HP;?//血量
int?TeamFlag;//隊伍標志:敵我陣營
char?Name[32];?//人物的名字和血量存儲在這里
};
HWND??g_hWnd_Overlay;//附加窗口(即透視窗口)的句柄
DWORD?__dwServer;
DWORD?__dwEngine;
HANDLE?g_hProcess;
const?DWORD?HP_offset =?0xE4;??//血量偏移
const?DWORD?ID_offset =?0xE24;//名字偏移
const?DWORD?TeamFlag_offset =?0x1F4;?//是否隊友標記
const?DWORD?Player_offset =?0x10;??//相鄰兩個人的偏移。比如npc1和npc2的偏移差距
const?DWORD?Pos_offset =?0x308;??//坐標偏移
const?DWORD?MY_base =?0x4F3FCC;//自己的基地址
const?DWORD?EL_base =?0x4F3FDC;//敵人的基地址
const?DWORD?WordMatrix_base =?0x5B3D70;//自己的世界矩陣
const?DWORD?CursorAngle_X_offset?=?0x47F1B8;
const?DWORD?CursorAngle_Y_offset?=?0x47F1B4;
//const?DWORD?Fick?=?0x5AD9E4;//???
float?g_Matrix[4][4];
RECT??g_winRect?=?{?0?};
//自瞄標記。如果按下左鍵觸發為TRUE,開啟自瞄的函數
BOOL??IsAuto?=?FALSE;
/*
鼠標Y ?engine.dll?+?47F1B4
鼠標X ?engine.dll?+?47F1B8
*/
DWORD?GetModulebaseAddress(const?TCHAR*?LPSTRModuleName?DWORD?__DwordProcessId);
float?GetDistance3D(float?mycoor[3]?float?enemcoor[3]);
void??ReadDataList(int?index?PlayerData*?MY?PlayerData*?EL);
void??ReadCursorAngle(float*?CursorAngle_X?float*?CursorAngle_Y);
void??DrawEsp(float?Enemy_x?float?Enemy_y?float?distance?PlayerData*?MY?PlayerData*?EL);//透視畫出矩形
void??Esp(PlayerData*?MY?PlayerData*?EL);//計算距離
BOOL??WordToScreen(float?from[3]?float?to[2]);//轉化為平面坐標
void?Clear();
LRESULT?CALLBACK?WindowProc_Overlay(HWND?hWnd?UINT?message?WPARAM?wParam?LPARAM?lParam);
void?CreateOverlayWindow();
BOOL?GameIsForegroundWindow();
//自瞄所用到的函數
void?AutoCollimation(float?MY_Position[3]?float?EL_Position[3]);//自瞄鼠標移動函數
void?GetXYDistance(PlayerData*?EL?float*?XYDistance);
int??GetMinXYDistanceIndex(float?xyDistance[32]);
void??__stdcall?KeyHandlerThread();
int??main(int?argc?char*?argv[])
{
HWND?hWnd?=?FindWindow(NULL?_T(“Counter-Strike?Source“));
if?(hWnd?==?NULL)
return?-1;
//該函數在主線程的基礎上創建一個新線程。
//線程終止運行后,線程對象仍然在系統中,必須通過CloseHandle函數來關閉該線程對象。
//該線程用來一直判斷鼠標是否按下了左腳,然后開啟自瞄
CreateThread(0?0?(LPTHREAD_START_ROUTINE)KeyHandlerThread?0?0?0);
/*該函數參數解釋:0為默認安全性,第二個參數為0則申請調用這個線程的線程同樣的??臻g大小,
第三個參數必用,DWORD?WINAPI?函數名?(LPVOID?lpParam)?,格式不正確將無法調用成功。也可以直接調用void類型,
第四個參數為0表示主線程無參數傳遞給這個線程,
第五個參數為0表示線程創建后立即激活,第六個參數不想返回線程ID設置值為0或者NULL*/
DWORD?dwPid;??
GetWindowThreadProcessId(hWnd?&dwPid);//獲取的線程pid保存在dwPid中
g_hProcess?=?OpenProcess(PROCESS_ALL_ACCESS?FALSE?dwPid);
__dwServer?=?GetModulebaseAddress(_T(“server.dll“)?dwPid);
__dwEngine?=?GetModulebaseAddress(_T(“engine.dll“)?dwPid);
float?CursorAngle_X;
float?CursorAngle_Y;
int?numb?=?32;
float?xyDistance[32]?=?{?0?};//敵人距離屏幕中心的坐標
float?Position[32][3]?=?{?0?};//敵人的坐標
PlayerData?MY?=?{?0
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????16574??2019-03-15?23:49??CS起源方框透視自瞄.cpp
?????文件?????????71??2019-03-16?15:26??游戲下載鏈接.txt
?????文件????????671??2019-03-15?20:53??該游戲一些人物基址信息和偏移.txt
-----------?---------??----------?-----??----
????????????????17316????????????????????3
- 上一篇:基于mfcc,vq的說話人識別代碼實現_自己寫的
- 下一篇:C語言的機房管理系統
評論
共有 條評論