当前位置: 首页 > news >正文

92.网游逆向分析与插件开发-游戏窗口化助手-显示游戏数据到小助手UI

内容参考于:易道云信息技术研究院VIP课

上一个内容:游戏窗口化助手的UI设计-CSDN博客

码云地址(游戏窗口化助手 分支):https://gitee.com/dye_your_fingers/sro_-ex.git

码云版本号:e8116af3a7b0186adba500c809fda592804a333d

代码下载地址,在 SRO_EX 目录下,文件名为:SRO_Ex-显示游戏数据到小助手UI.zip

链接:https://pan.baidu.com/s/1W-JpUcGOWbSJmMdmtMzYZg

提取码:q9n5

--来自百度网盘超级会员V4的分享

HOOK引擎,文件名为:黑兔sdk.zip

链接:https://pan.baidu.com/s/1IB-Zs6hi3yU8LC2f-8hIEw

提取码:78h8

--来自百度网盘超级会员V4的分享

以 游戏窗口化助手的UI设计 它的代码为基础进行修改

效果图:

CHelperUI.h文件的修改:新加 ShowData函数

#pragma once
#include "afxdialogex.h"
#include "resource.h"// CHelperUI 对话框class CHelperUI : public CDialogEx
{DECLARE_DYNAMIC(CHelperUI)public:CHelperUI(CWnd* pParent = nullptr);   // 标准构造函数virtual ~CHelperUI();// 对话框数据
#ifdef AFX_DESIGN_TIMEenum { IDD = IDD_HELPER };
#endifprotected:virtual BOOL OnInitDialog();virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持DECLARE_MESSAGE_MAP()
public:afx_msg void OnBnClickedOk();// 血量条CProgressCtrl HPBar;// 魔法条CProgressCtrl MPBar;// 怒气条CProgressCtrl RageBar;// 升级经验值条CProgressCtrl ExBar;void ShowData();
};

CHelperUI.cpp文件的修改:修改了 OnInitDialog函数,新加ShowData函数、TimeProcHelper函数

// CHelperUI.cpp: 实现文件
//#include "pch.h"
#include "CHelperUI.h"
#include "afxdialogex.h"
#include "extern_all.h"void _stdcall TimeProcHelper(HWND, UINT, UINT_PTR, DWORD) {if (_ui_helper)_ui_helper->ShowData();
}IMPLEMENT_DYNAMIC(CHelperUI, CDialogEx)CHelperUI::CHelperUI(CWnd* pParent /*=nullptr*/): CDialogEx(IDD_HELPER, pParent)
{}CHelperUI::~CHelperUI()
{
}BOOL CHelperUI::OnInitDialog()
{CDialogEx::OnInitDialog();this->SetBackgroundColor(RGB(255, 255, 255));HPBar.SetBkColor(RGB(0 ,0, 0));MPBar.SetBkColor(RGB(0 ,0, 0));RageBar.SetBkColor(RGB(0 ,0, 0));ExBar.SetBkColor(RGB(0 ,0, 0));HPBar.SetBarColor(RGB(255 ,0, 0));MPBar.SetBarColor(RGB(0x0, 0x0, 0x99));RageBar.SetBarColor(RGB(0x66, 0x0, 0x66));ExBar.SetBarColor(RGB(0x00, 0xFF, 0xCC));HPBar.SetRange(0, 1000);MPBar.SetRange(0, 1000);RageBar.SetRange(0, 5);ExBar.SetRange(0, 1000);//HPBar.SetPos(50);//MPBar.SetPos(50);//RageBar.SetPos(50);//ExBar.SetPos(50);::SetTimer(this->m_hWnd, 0x100002, 100, TimeProcHelper);return TRUE;
}void CHelperUI::DoDataExchange(CDataExchange* pDX)
{CDialogEx::DoDataExchange(pDX);DDX_Control(pDX, IDC_PRO_HP, HPBar);DDX_Control(pDX, IDC_PRO_MP, MPBar);DDX_Control(pDX, IDC_PRO_RAGE, RageBar);DDX_Control(pDX, IDC_PRO_RAGE2, ExBar);
}BEGIN_MESSAGE_MAP(CHelperUI, CDialogEx)ON_BN_CLICKED(IDOK, &CHelperUI::OnBnClickedOk)
END_MESSAGE_MAP()// CHelperUI 消息处理程序void CHelperUI::OnBnClickedOk()
{// TODO: 在此添加控件通知处理程序代码CDialogEx::OnOK();
}void CHelperUI::ShowData()
{CString tmp;auto _player = _pgamebase->SRO_Player;if (_player) {tmp.Format(L"%s Lv %d", _player->Name.wcstrByName(), _player->LV);this->SetWindowText(tmp);float hpStep = _player->HP * 1000;hpStep = hpStep / _player->MaxHP;HPBar.SetPos(hpStep);float mpStep = _player->MP * 1000;mpStep = mpStep / _player->MaxMP;MPBar.SetPos(mpStep);RageBar.SetPos(_player->Rage);tmp.Format(L"%.1f %.1f %.1f", _player->x, _player->h, _player->y);GetDlgItem(IDC_STATIC_CORD)->SetWindowText(tmp);}
}
http://www.lryc.cn/news/294890.html

相关文章:

  • Stable Diffusion 模型下载:majicMIX fantasy 麦橘幻想
  • docker compose安装minio
  • 二、SSM 整合配置实战
  • 『运维备忘录』之 Yum 命令详解
  • CSS中可继承与不可继承属性有哪些
  • Zephyr NRF7002 实现AppleJuice
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • Webpack插件浅析
  • 【Java 数据结构】反射
  • LangChain结合通义千问的自建知识库
  • 【证书管理】实验报告
  • App Store外区账号分享
  • 判断字符串是否包含正则表达式默认的特殊字符c++
  • 【蓝桥杯选拔赛真题64】python数字塔 第十五届青少年组蓝桥杯python 选拔赛比赛真题解析
  • javaEE - 23( 21000 字 Servlet 入门 -1 )
  • 【sentinel流量卫兵搭建与微服务整合】
  • Linux环境下配置mysql主从复制
  • 生物素-PEG4-酪胺,Biotin-PEG4-TSA,应用于酶联免疫吸附实验
  • Android:文件读写
  • 2024/2/5
  • 政安晨:示例演绎Python的函数与获取帮助的方法
  • 88 docker 环境下面 前端A连到后端B + 前端B连到后端A
  • k8s学习-Service Account和RBAC授权
  • SpringMVC-响应数据
  • 数学建模:数据相关性分析(Pearson和 Spearman相关系数)含python实现
  • 使用pandas将excel转成json格式
  • 双向链表的插入、删除、按位置增删改查、栈和队列区别、什么是内存泄漏
  • Linux 驱动开发基础知识——总线设备驱动模型(七)
  • RTthread线程间通信(邮箱,消息队列,信号/软件中断)---03信号(软件中断)源码分析
  • 老版本labelme如何不保存imagedata