內(nèi)容參考于:易道云信息技術(shù)研究院VIP課
上一個(gè)內(nèi)容:升級Notice類獲得背包基址-CSDN博客
碼云地址(ui顯示角色數(shù)據(jù) 分支):https://gitee.com/dye_your_fingers/sro_-ex.git
碼云版本號:3be017de38c50653b1d98bae6eb6db0fcff7bd54
代碼下載地址,在 SRO_EX 目錄下,文件名為:SRO_Ex-自動(dòng)化助手顯示物品數(shù)據(jù).zip
鏈接:https://pan.baidu.com/s/1W-JpUcGOWbSJmMdmtMzYZg
提取碼:q9n5
--來自百度網(wǎng)盤超級會(huì)員V4的分享
HOOK引擎,文件名為:黑兔sdk.zip
鏈接:https://pan.baidu.com/s/1IB-Zs6hi3yU8LC2f-8hIEw
提取碼:78h8
--來自百度網(wǎng)盤超級會(huì)員V4的分享
以?升級Notice類獲得背包基址 它的代碼為基礎(chǔ)進(jìn)行修改
效果圖:
首先設(shè)置窗口
新加ListBox控件
設(shè)置屬性
添加變量
CUI.cpp文件的修改:修改了?OnInitDialog函數(shù)文章來源:http://www.zghlxwxcb.cn/news/detail-823883.html
// CUI.cpp: 實(shí)現(xiàn)文件
//
#include "pch.h"
#include "htdMfcDll.h"
#include "CUI.h"
#include "afxdialogex.h"
// CUI 對話框
IMPLEMENT_DYNAMIC(CUI, CDialogEx)
CUI::CUI(CWnd* pParent /*=nullptr*/)
: CDialogEx(IDD_MAIN, pParent)
{
}
CUI::~CUI()
{
}
void CUI::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX, IDC_TAB1, mTab);
}
BOOL CUI::OnInitDialog()
{
CDialogEx::OnInitDialog();
InstallPage(new CUIWnd_0(), IDD_PAGE_0, L"角色", TRUE);
InstallPage(new CUIWnd_1(), IDD_PAGE_1, L"物品");
SetBackgroundColor(0xFFFFFFFF);
//PageINJ.Init(wAppPath);
//PageRAN.SetAppPath(wAppPath);
return TRUE;
}
bool CUI::InstallPage(CDialogEx* wnd, int IDD_WND, CString&& _Name, BOOL IsShow)
{
if (CurPage >= MAX_PAGE_MAIN) return false;
Pages[CurPage] = wnd;
Pages[CurPage]->Create(IDD_WND, this);
//Pages[CurPage]->SetParent(this);
Pages[CurPage]->ShowWindow(IsShow);
CRect rect;
mTab.GetClientRect(&rect);
rect.top += 46;
rect.left = 0;
rect.bottom -= 5;
rect.right -= 5;
Pages[CurPage]->MoveWindow(&rect);
mTab.InsertItem(CurPage, _Name);
CurPage++;
return true;
}
BEGIN_MESSAGE_MAP(CUI, CDialogEx)
ON_NOTIFY(TCN_SELCHANGE, IDC_TAB1, &CUI::OnTcnSelchangeTab1)
ON_WM_CLOSE()
END_MESSAGE_MAP()
// CUI 消息處理程序
void CUI::OnTcnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: 在此添加控件通知處理程序代碼
*pResult = 0;
int n = mTab.GetCurSel();
for (int i = 0; i < CurPage; i++)
{
Pages[i]->ShowWindow(i == n);
}
}
void CUI::UIShow()
{
auto hwndClient = ::FindWindow(L"CLIENT", L"SRO_CLIENT");
::SetParent(this->m_hWnd, hwndClient);
this->ShowWindow(ShowUI = !ShowUI);
// 把焦點(diǎn)還給游戲
::SetFocus(hwndClient);
}
void CUI::OnClose()
{
// TODO: 在此添加消息處理程序代碼和/或調(diào)用默認(rèn)值
UIShow();
// CDialogEx::OnClose();
}
CUIWnd_1.cpp文件的修改:修改了?OnBnClickedButton1函數(shù),OnBnClickedButton1函數(shù)是讀取物品信息按鈕的點(diǎn)擊事件文章來源地址http://www.zghlxwxcb.cn/news/detail-823883.html
// CUIWnd_1.cpp: 實(shí)現(xiàn)文件
//
#include "pch.h"
#include "htdMfcDll.h"
#include "CUIWnd_1.h"
#include "afxdialogex.h"
#include "extern_all.h"
// CUIWnd_1 對話框
IMPLEMENT_DYNAMIC(CUIWnd_1, CDialogEx)
CUIWnd_1::CUIWnd_1(CWnd* pParent /*=nullptr*/)
: CDialogEx(IDD_PAGE_1, pParent)
{
}
CUIWnd_1::~CUIWnd_1()
{
}
void CUIWnd_1::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX, IDC_LIST1, lstPack);
}
BEGIN_MESSAGE_MAP(CUIWnd_1, CDialogEx)
ON_BN_CLICKED(IDC_BUTTON1, &CUIWnd_1::OnBnClickedButton1)
END_MESSAGE_MAP()
// CUIWnd_1 消息處理程序
void CUIWnd_1::OnBnClickedButton1()
{
// int count = _pgamebase->SRO_Control->GetPPack()->GetPackBack()->PackCount();
CString tmp;
// tmp.Format(L"%d", count);
// AfxMessageBox(tmp);
PBackPack _PackBack = _pgamebase->SRO_Control->GetPPack()->GetPackBack();
lstPack.ResetContent();
for (int i = 0; i < _PackBack->PackCount(); i++)
{
PITEM item = _PackBack->GetItem(i);
if ((item != NULL) && (item->Type)) {
tmp.Format(L"[%s][數(shù)量:%d][耐久:%d/%d]\n", item->GetName()->wcstr(), item->Count, item->Durabillty, item->MaxDurabillty);
lstPack.AddString(tmp);
}
}
}
到了這里,關(guān)于80.網(wǎng)游逆向分析與插件開發(fā)-背包的獲取-自動(dòng)化助手顯示物品數(shù)據(jù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!