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_TIME
	enum { IDD = IDD_HELPER };
#endif

protected:
	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);
	}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/373332.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot中使用Spring自带线程池ThreadPoolTaskExecutor与Java8CompletableFuture实现异步任务示例

场景 关于线程池的使用: Java中ExecutorService线程池的使用(Runnable和Callable多线程实现): Java中ExecutorService线程池的使用(Runnable和Callable多线程实现)_executorservice executorservice executors.newfix-CSDN博客 Java中创建线程的方式…

Flink面试准备

零. 主要内容 一. Flink 提交 1. Flink怎么提交? Local模式 JobManager 和 TaskManager 共用一个 JVM,只需要jdk支持,单节点运行,主要用来调试。 Standlone模式 Standlone 是Flink自带的一个分布式集群,它不依赖其他的资源调度框架、不依赖y…

LeetCode:1696. 跳跃游戏 VI(DP, Java)

目录 1696. 跳跃游戏 VI 题目描述: 实现代码与解析: 一眼dp(超时,后面给出优化思路和代码) 原理思路: 优化后代码: 1696. 跳跃游戏 VI 题目描述: 给你一个下标从 0 开始的整数…

ffmpeg命令生成器

FFmpeg 快速入门:命令行详解、工具、教程、电子书 – 码中人的博客FFmpeg 是一个强大的命令行工具,可以用来处理音频、视频、字幕等多媒体文件。本文介绍了 FFmpeg 的基本用法、一些常用的命令行参数,以及常用的可视化工具。https://blog.mzh…

点云transformer算法: FlatFormer 论文阅读笔记

代码:https://github.com/mit-han-lab/flatformer论文:https://arxiv.org/abs/2301.08739[FlatFormer.pdf] Flatformer是对点云检测中的 backbone3d部分的改进工作,主要在探究怎么高效的对点云应用transformer 具体的工作如下:一…

SSRF漏洞给云服务元数据带来的安全威胁

文章目录 前言元数据服务威胁1.1 Metadata元数据1.2 RAM资源管理角色1.3 STS 临时凭据利用1.4 CF云环境利用框架1.5 元数据安全性增强 TerraformGoat2.1 永久性AccessKey2.2 SSRF靶场环境搭建2.3 腾讯云CVM配角色2.4 接管腾讯云控制台 SSRF组合拳案例3.1 上传图片功能SSRF3.2 文…

幻兽存档转移(Windows mcsm互转以及本地存档转服务器)

演示服务器为雨云服务器,其它服务器操作可能略有不同。 存档转移 在对存档操作之前,一定要保存并关闭服务端,不然有可能导致存档损坏。在操作之前一定要按前置操作备份您的存档! 前置操作 Windows/Linux/面板 关于幻兽帕鲁存档…

【人工智能】文本嵌入:向量存储与数据查询的智慧交织(12)

在当今信息激增的时代,将中文存储到向量数据库(如Redis等)并实现向量检索,正成为解决日常应用中文信息处理难题的关键利器。这项技术不仅赋予计算机对中文语义的理解能力,更让我们能够以更智能、高效的方式处理和检索中…

vue配置开发环境和生产环境

在与src文件夹同级的地方增加两个文件 .env.development .env.production配置development和production两个文件 在.env.development中写: NODE_ENV development VUE_APP_NUM dev //VUE_APP_自己取名字在.env.production中写: NODE_ENV production…

开源免费的物联网网关 IoT Gateway

1. 概述 物联网网关,也被称为IOT网关,是一种至关重要的网络设备。在物联网系统中,它承担着连接和控制各种设备的重要任务,将这些设备有效地连接到云端、本地服务器或其他设备上。它既能够在广域范围内实现互联,也能在…

【论文研读】Better Together:Unifying Datalog and Equality Saturation

最近研究ReassociatePass整的头大,翻两篇Datalog的论文看看。 今天看的一篇是比较新的文章,23年4月贴到arxiv上的。 本文的主要贡献是提出了egglog,将Datalog和Eqsat结合起来,继承了Datalog的efficient incremental execution, cooperating a…

docker部署自己的网站wordpress

目录 安装 1.创建目录 2.创建并启动mysql 3.创建并启动wordpress 使用 1.设置语言 2.设置基础信息 3.首页 安装 1.创建目录 mkdir -p /opt/wordpress/{db,data} 2.创建并启动mysql docker run -d --name my_mysql --restart always -e MYSQL_ROOT_PASSWORD123456 -e …

SpringBoot 过滤器Filter的过滤链 多个过滤器优先级

SpringBoot 过滤器Filter 拦截请求 生命周期 什么是过滤链? 指的是有多个过滤器形成的过滤链,一个项目中可以存在多个过滤器。 优先级 根据字母排序,如XFilter和AFilter,那么按照顺序应该先到AFilter过滤器当中

libtool编译(rv1126)

1.下载 下载地址 http://ftp.gnu.org/gnu/libtool/libtool-2.2.6a.tar.gz 2.解压 1)解压到文件夹(libttool-2.2.6) 2)新建文件夹install-rv1126 目录结构如下所示。 3.配置 1)进入源码目录(libtool-2.2…

openGauss学习笔记-215 openGauss性能调优-确定性能调优范围-性能日志

文章目录 openGauss学习笔记-215 openGauss性能调优-确定性能调优范围-性能日志215.1 性能日志概述215.2 性能日志收集的配置参数 openGauss学习笔记-215 openGauss性能调优-确定性能调优范围-性能日志 215.1 性能日志概述 性能日志主要关注外部资源的访问性能问题。 性能日…

安卓三防平板丨三防平板电脑丨智能农业应用

随着科技的不断发展,越来越多的新型设备被应用于各个行业,其中包括农业行业。三防平板作为一种具有防水、防尘、防摔的特性的电子设备,不仅具有优异的性能,而且在农业行业应用广泛。下面,本文将从以下几个方面探讨三防…

第二篇:MySQL安装与配置(基于小皮面板(phpstudy))

在第一篇中介绍了数据库的相关概念,了解到SQL是用来操作数据库管理系统的语言,因此要学习数据库技术,数据库管理系统的配备是必不可少的! 并且出于流行性与实惠性的双考量而选择MySQL这款数据库管理系统软件 一,工具推…

CleanMyMacX4.14.6如何清理mac垃圾内存

一直以来,苹果电脑的运行流畅度都很好,但是垃圾内存多了磁盘空间慢慢变少,还是会造成卡顿的。这篇文章就告诉大家电脑如何清理垃圾内存,电脑如何清理磁盘空间。 一、电脑如何清理垃圾内存 垃圾内存指的是各种缓存文件和系统垃圾…

Nodejs基础6之HTTP模块的获取请求行和请求头、获取请求体、获取请求路径和查询字符串、http请求练习、设置HTTP响应报文、http响应练习

Nodejs基础 HTTP模块获取请求行和请求头获取请求体获取请求路径和查询字符串方式一方式二 http请求练习设置HTTP响应报文状态码响应状态描述响应头响应体 HTTP响应练习 HTTP模块 含义语法重点掌握请求方法request.method*请求版本request.httpVersion请求路径request.url*URL …

使用PDFBox实现pdf转其他图片格式

最近在做一个小项目&#xff0c;项目中有一个功能要把pdf格式的图片转换为其它格式&#xff0c;接下来看看用pdfbox来如何实现吧。 首先导入pdfbox相关依赖&#xff1a; <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</a…