📄 role.cpp
字号:
// Role1.cpp : implementation file
//
#include "stdafx.h"
#include "SkyRiver.h"
#include "Role.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CRole dialog
CRole::CRole(CWnd* pParent /*=NULL*/)
: CDialog(CRole::IDD, pParent)
{
//{{AFX_DATA_INIT(CRole)
m_Attack = 0;
m_Defend = 0;
m_Grade = 0;
m_Life = 0;
m_Luck = 0;
m_MaxLife = 0;
m_Magic = 0;
m_MaxMagic = 0;
m_Money = 0;
m_Quick = 0;
m_Skill = 0;
//}}AFX_DATA_INIT
m_nCurPos = 0;
}
void CRole::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CRole)
DDX_Text(pDX, IDC_ATTACK, m_Attack);
DDV_MinMaxDWord(pDX, m_Attack, 1, 99999999);
DDX_Text(pDX, IDC_DEFEND, m_Defend);
DDV_MinMaxDWord(pDX, m_Defend, 1, 99999);
DDX_Text(pDX, IDC_GRADE, m_Grade);
DDV_MinMaxDWord(pDX, m_Grade, 0, 99999);
DDX_Text(pDX, IDC_LIFE, m_Life);
DDV_MinMaxDWord(pDX, m_Life, 1, 99999);
DDX_Text(pDX, IDC_LUCK, m_Luck);
DDV_MinMaxDWord(pDX, m_Luck, 1, 99999);
DDX_Text(pDX, IDC_MAXLIFE, m_MaxLife);
DDV_MinMaxDWord(pDX, m_MaxLife, 1, 99999);
DDX_Text(pDX, IDC_MAGIC, m_Magic);
DDV_MinMaxDWord(pDX, m_Magic, 1, 99999);
DDX_Text(pDX, IDC_MAXMAGIC, m_MaxMagic);
DDV_MinMaxDWord(pDX, m_MaxMagic, 1, 99999);
DDX_Text(pDX, IDC_MONEY, m_Money);
DDV_MinMaxDWord(pDX, m_Money, 1, 999999999);
DDX_Text(pDX, IDC_QUICK, m_Quick);
DDV_MinMaxDWord(pDX, m_Quick, 1, 99999);
DDX_Text(pDX, IDC_SKILL, m_Skill);
DDV_MinMaxDWord(pDX, m_Skill, 0, 99999);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CRole, CDialog)
//{{AFX_MSG_MAP(CRole)
ON_BN_CLICKED(IDC_SAVE, OnSave)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CRole message handlers
BOOL CRole::OnInitDialog()
{
CDialog::OnInitDialog();
SetButton(this,IDC_SAVE,3,IDI_ICON11,NULL,NULL,_T("确定修改"),NULL,TRUE);
return true;
}
void CRole::SetHProcess(HANDLE hProcess)
{
m_Memory.Create(hProcess);
}
void CRole::ReadRole(int index)
{
if(!m_Memory.GetHProcess())
return;
if(index>7)
return;
m_nCurPos=index;
DWORD baseAddress=0x156c06c+(DWORD)index*0x000003d4;
m_Memory.SetBaseAddress((LPVOID)baseAddress);
m_Grade = m_Memory.ReadMemory(0x00000000);
m_Life = m_Memory.ReadMemory(0x0000000c);
m_Magic = m_Memory.ReadMemory(0x00000010);
m_MaxLife = m_Memory.ReadMemory(0x00000078);
m_MaxMagic = m_Memory.ReadMemory(0x0000007c);
m_Attack = m_Memory.ReadMemory(0x00000080);
m_Defend = m_Memory.ReadMemory(0x00000084);
m_Quick = m_Memory.ReadMemory(0x00000088);
m_Luck = m_Memory.ReadMemory(0x0000008c);
m_Skill = m_Memory.ReadMemory(0xffffffcc);
m_Money = m_Memory.ReadMemory((LPVOID)0x00d64030);
UpdateData(0);
}
void CRole::WriteRole(int index)
{
if(!m_Memory.GetHProcess())
return;
if(index>7)
return;
UpdateData(1);
DWORD baseAddress=0x156c06c+(DWORD)index*0x000003d4;
m_Memory.SetBaseAddress((LPVOID)baseAddress);
m_Memory.WriteMemory(0x00000000,m_Grade );
m_Memory.WriteMemory(0x0000000c,m_Life );
m_Memory.WriteMemory(0x00000010,m_Magic );
m_Memory.WriteMemory(0x00000078,m_MaxLife );
m_Memory.WriteMemory(0x0000007c,m_MaxMagic);
m_Memory.WriteMemory(0x00000080,m_Attack );
m_Memory.WriteMemory(0x00000084,m_Defend );
m_Memory.WriteMemory(0x00000088,m_Quick );
m_Memory.WriteMemory(0x0000008c,m_Luck );
m_Memory.WriteMemory(0xffffffcc,m_Skill );
m_Memory.WriteMemory((LPVOID)0x00d64030,m_Money);
}
void CRole::OnSave()
{
WriteRole(m_nCurPos);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -