回复三楼.
const int CurRoleBase=0x44b33c8;
const int CurListBase=0x44a9788;
void SelMon()
{
int* b8,*bc,*b380,*p1478;
double *b31c;
int* pb;
p1478=(int*)CurRoleBase;//角色基址
p1478=(int*)(*p1478+0x1478);//加偏移
if ((*p1478==0xffff))//0xffff没有选定怪.
{
for (int i=CurListBase;i<(CurListBase+0xfFFF*4);i+=4)(对象基址循环)
{
pb=(int*)i;
b8=(int*)(*pb+0x8);(偏移后值如果是0x2e是怪)
bc=(int*)(*pb+0xc);(对像下标)
b31c=(double*)(*pb+0x31c);(与对像之间距离)
b380=(int*)(*pb+0x380); (0是活的,1是死的)
if ((*b8==0x2E)&&(*b380==0)&&(*b31c<=20))
{
*p1478=*bc;\\三个条件都符合把对像下标赋给角色指针就能选定怪.
return;
}
}
}
}
问题有时能选中,有时直接游戏弹错退出游戏。我怀是不是循环的时候访问的未知的内存地址了,所以出错,不知道怎么判断。
如果只赋值几只我已知的怪物下标是不会出错的。
SEH是什么,搜的不清楚,有什么格式没.
你不觉得我开贴问的比我贴这么多代码问,你看起来要方便的多吗?
[
本帖最后由 mfkblue 于 2012-12-3 17:06 编辑 ]