资源简介
代码全部写了注释方便观看,基本细到每个函数都是本人写的注释,代码是用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则申请调用这个线程的线程同样的栈空间大小,
第三个参数必用,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语言的机房管理系统
相关资源
- (部分源码)百分百仿360安全卫士界
- MFC 与GDI++绘制仪表盘
- MFC基于对话框GDI+简单绘图
- GDI+SDK参考文档
- dxf文件Entity部分解析
- VC++三次样条插值&贝塞尔曲线&GDI+平滑
- GDI+教程C++中文版.pdf
- gdi+游戏框架这是一个用vc6.0写的Win3
- Windows GDI 飞机游戏源码和图片
- 异形窗口加局部透明
- 如何使用GDI+制作圆形图片(类似QQ圆
- MFC 实时曲线绘制
- C++ GDI+ 实现的画板程序
- VC++《精通GDI+编程》PDF电子书
- GDI+绘制矩形,并且实现可旋转、缩放
- 《精通GDI+编程》.PDF[含目录]
- MFC异形按钮
- MFC/GDI+绘制倾斜的椭圆
- MFC 之 CButton 控件重绘GDI+篇
- Teigha帮助文档
- VC++ GDI+ gdiplus应用集
- MFC PNG GDI 实现的Process 进度控件
- VC使用GDI+将BMP图像转换为JPG格式
- 64位的GDIPLUS库
- gdi+绘制带滚动效果的进度条
- MFC带百分比的进度条
- GDI+SDK
- MFC GDI+练手学习
- MFC画二维动态图表
- VC6使用GDI+
评论
共有 条评论