|
alloc(newmem,2048)
alloc(NO_OFF,10)
alloc(X,10)
registersymbol(X)
alloc(Y,10)
registersymbol(Y)
label(code)
label(start)
label(exit)
label(next)
newmem:
pushad
mov ebp,esp
sub esp,8
mov eax,[1AB7CDC]
cmp [eax+b8],0//进图判断
je exit
mov eax,[1AB7CDC]//人物基址
add eax,18c//18C x坐标偏移
mov [X],eax //x坐标
add eax,4//190 y坐标
mov [Y],eax //y坐标
mov eax,[1AB7CDC]//人物基址
mov eax,[eax+b8]//
mov ebx,[eax+b0]
mov [ebp-4],ebx//开头单位指针,此指针每次循环都+4
mov ebx,[eax+b4]
sub ebx,4
mov [ebp-8],ebx//结束单位指针
//开始循环遍历地图各单位
start:
mov ebx,[ebp-4]
mov ecx,[ebx]
cmp [ecx+644],0//判断阵营,跳过自己人
je next
cmp [ecx+90],#289//物品
je code
cmp [ecx+90],#529//怪物
je code
cmp [ecx+90],#273//apc
je code
jne next
//可以开始进行自己对单位的操作了
code:
pushad
mov edx,[ecx+a8]//怪物基址+a8
add edx,c//基址+A8+C x坐标
mov ecx,[X]
mov ecx,[ecx]
mov [edx],ecx
add edx,4//基址+A8+10 y坐标
mov ecx,[Y]
mov ecx,[ecx]
mov [edx],ecx
popad
//进入下一次循环
next:
cmp ebx,[ebp-8]
je exit
add [ebp-4],4
jmp start
exit:
mov esp,ebp
//push #200
//call sleep //延迟函数当下段用
cmp [NO_OFF],#1//判断开关
jne @f
jmp newmem
@@:
popad
ret
[ENABLE]
NO_OFF:
dd #1
CREATETHREAD(newmem)
[DISABLE]
NO_OFF:
dd #0 |
|