外挂辅助技术研究-打开指定NPC对话
2015-02-02 16:43
411 查看
1、打开指定NPC对话功能
DWORD GetNpcObjForName(char* szpNpcName);
DWORD OpenNpcTalkForName(char* szpNpcName);
//获取指定NPC对象
push 0
push 0
push 0x401
mov ecx,2DF25598 //NPC对象地址
mov eax,[ecx]
mov eax,[eax+4] //打开NPC,测试通过
call eax
push 3
mov ecx,0XF598C0
mov ecx,[ecx]
mov ecx,[ecx+2c4]
mov ecx,[ecx+310]
mov ecx,[ecx+4]
mov eax,0x0735400
call eax //打开仓库界面
push 3
mov ecx,BaseF1_F10ArgEcx
mov ecx,[ecx]
mov ecx,[ecx+0x2c4]
mov ecx,[ecx+0x310]
mov ecx,[ecx+0x4]
mov eax,baseCall_OpenDepot
call eax //打开仓库界面
BOOL TRoleObj::SelNpcForName(char*szpNpcName)
{
for (int i=0;i<100;i++)
{
if (g_tMosterList.GetData()->tMonlist.szpName=NULL)
{
continue;
}
if (strcmp(g_tMosterList.GetData()->tMonlist.szpName,szpNpcName)==0)
{
SelObj(g_tMosterList.tMonlist.ndIndexForAllObjList);
return TRUE;
}
}
return FALSE;
}
BOOL TMonsterList::OpenNpcTalkForName(char* szpNpcName)
{
DWORD ndObj=GetNpcObjForName(szpNpcName);
if (ndObj==NULL)
{
return FALSE;
}
__try
{
g_tRoleobj.GetData()->SelNpcForName(szpNpcName);
__asm
{
push 0
push 0
push 0x401
mov ecx,ndObj //NPC对象地址
mov eax,[ecx]
mov eax,[eax+4] //打开NPC,测试通过
call eax
}
}__except(1)
{
DbgPrintf_Mine("BOOL TMonsterList::OpenNpcTalkForName(char* szpNpcName) \r\n");
return FALSE;
}
return TRUE;
}
DWORD GetNpcObjForName(char* szpNpcName);
DWORD OpenNpcTalkForName(char* szpNpcName);
//获取指定NPC对象
push 0
push 0
push 0x401
mov ecx,2DF25598 //NPC对象地址
mov eax,[ecx]
mov eax,[eax+4] //打开NPC,测试通过
call eax
push 3
mov ecx,0XF598C0
mov ecx,[ecx]
mov ecx,[ecx+2c4]
mov ecx,[ecx+310]
mov ecx,[ecx+4]
mov eax,0x0735400
call eax //打开仓库界面
push 3
mov ecx,BaseF1_F10ArgEcx
mov ecx,[ecx]
mov ecx,[ecx+0x2c4]
mov ecx,[ecx+0x310]
mov ecx,[ecx+0x4]
mov eax,baseCall_OpenDepot
call eax //打开仓库界面
BOOL TRoleObj::SelNpcForName(char*szpNpcName)
{
for (int i=0;i<100;i++)
{
if (g_tMosterList.GetData()->tMonlist.szpName=NULL)
{
continue;
}
if (strcmp(g_tMosterList.GetData()->tMonlist.szpName,szpNpcName)==0)
{
SelObj(g_tMosterList.tMonlist.ndIndexForAllObjList);
return TRUE;
}
}
return FALSE;
}
BOOL TMonsterList::OpenNpcTalkForName(char* szpNpcName)
{
DWORD ndObj=GetNpcObjForName(szpNpcName);
if (ndObj==NULL)
{
return FALSE;
}
__try
{
g_tRoleobj.GetData()->SelNpcForName(szpNpcName);
__asm
{
push 0
push 0
push 0x401
mov ecx,ndObj //NPC对象地址
mov eax,[ecx]
mov eax,[eax+4] //打开NPC,测试通过
call eax
}
}__except(1)
{
DbgPrintf_Mine("BOOL TMonsterList::OpenNpcTalkForName(char* szpNpcName) \r\n");
return FALSE;
}
return TRUE;
}
相关文章推荐
- 外挂辅助技术研究-分析选怪功能
- 外挂辅助技术研究-分析动作数组与攻击捡物功能
- 外挂辅助技术研究-封装背包对象列表+读物背包物品信息
- 外挂辅助技术研究-完善选怪功能
- 外挂辅助技术研究教程
- 外挂辅助技术研究-分析怪物列表
- 外挂辅助技术研究-逆向分析任务等级需求并测试
- 外挂技术研究-封装动作数组功能
- 游戏外挂技术:编程实现内存检索(检索内存中指定数据)
- 外挂技术研究-封装完善动作使用CALL-重复包含头文件
- 外挂技术研究系列-分析人物属性数据和偏移
- 追逐自己的梦想----------辅助制作第三十课:NPC对话更正以及封装查找NPC对象函数
- 外挂辅助技术-分析游戏寻路相关数据准备
- 【游戏外挂、修改器、辅助研究1】认识外挂
- Delphi外挂辅助技术入门篇、Windows扫雷程序示例
- 追逐自己的梦想----------辅助制作第二十八课:打开系统NPC CALL分析
- 游戏外挂技术:编程实现内存检索(检索内存中指定数据)
- 逆向分析打开NPC 对话菜单
- 外挂技术研究系列-分析人物的HPMP
- 外挂辅助技术-寻路CALL测试