口袋西游大部分的CALL源码--易语言
.版本 2.程序集 游戏CALL
.子程序 CALL_捡物, , 公开
.参数 物品ID, 整数型
.参数 系统物品ID, 整数型
.局部变量 代码, 字节集
置代码 ({})
pushad ()
mov_eax_常数 (物品ID)
push_eax ()
mov_ecx_常数 (系统物品ID)
push_ecx ()
mov_edx_ptr (转换十六到十 (“993C44”))
mov_ecx_ptr_edx加字节 (32)
add_ecx_常数 (212)
mov_ebx_常数 (十六进制到十进制 (“5B4620”))
call_ebx ()
popad ()
ret ()
代码 = _取代码 ()
调用函数_ (到字节集 (进程ID), 代码)
.子程序 ID选怪CALL, , 公开
.参数 怪物ID, 整数型
.局部变量 代码, 字节集
置代码 ({})
pushad ()
mov_esi_常数 (怪物ID)
push_esi ()
mov_eax_ptr (转换十六到十 (“993C44”))
mov_ecx_ptr_eax加字节 (32)
add_ecx_常数 (212)
mov_ebx_常数 (十六进制到十进制 (“5B4690”))
call_ebx ()
popad ()
ret ()
代码 = _取代码 ()
调用函数_ (到字节集 (进程ID), 代码)
.子程序 自动寻路CALL, 字节集, 公开
.参数 xx, 双精度小数型
.参数 yy, 双精度小数型
.参数 zz, 双精度小数型
.局部变量 代码, 字节集
.局部变量 游戏基址, 整数型
.局部变量 一级基址, 整数型
.局部变量 周围环境基址, 整数型
.局部变量 寻路PUSH
.局部变量 寻路MOV
.局部变量 寻路CALL
.局部变量 x坐标
.局部变量 y坐标
.局部变量 z坐标
.局部变量 地图编号, 整数型
游戏基址 = 读内存整数 (进程ID, 转换十六到十 (“993C44”))
一级基址 = 读内存整数 (进程ID, 游戏基址 + 转换十六到十 (“1C”))
周围环境基址 = 读内存整数 (进程ID, 一级基址 + 转换十六到十 (“8”))
地图编号 = 周围环境基址 + 136
寻路PUSH = 十六进制到十进制 (“99A708”)
寻路MOV = 十六进制到十进制 (“993BF0”)
寻路CALL = 十六进制到十进制 (“42BE80”)
x坐标 = 寻路PUSH
z坐标 = 寻路PUSH + 4
y坐标 = 寻路PUSH + 8
写内存字节集 (进程ID, x坐标, 到字节集 (到小数 (到文本 (xx))))
写内存字节集 (进程ID, z坐标, 到字节集 (到小数 (到文本 (zz))))
写内存字节集 (进程ID, y坐标, 到字节集 (到小数 (到文本 (yy))))
置代码 ({})
pushad ()
mov_edx_ptr (地图编号)' '''''''''''''''''''''基址+1c+8+88
mov_eax_ptr (转换十六到十 (“993C44”))
mov_eax_ptr_eax加字节 (十六进制到十进制 (“1C”))' '''''''''''''''''''基址+1c
mov_eax_ptr_eax加字节 (十六进制到十进制 (“28”))' ''''''''''''''''基址+1c+28
lea_eax_ptr_eax加字节 (十六进制到十进制 (“3c”))' '''''''''''''''基址+1c+3c
push_常数 (0)
push_edx ()' ''''''''''''''''''''''''''''''''''''''''' 当前地图编号
push_常数 (寻路PUSH)' '''''''''''''''''''''''''寻路PUSH
push_eax ()' ''''''''''''''''''''''''''''''''''''''''''''''''''''''当前坐标
mov_ecx_常数 (寻路MOV)
mov_eax_常数 (寻路CALL)' '''''''''''''''''''''''''''''''''''''''''寻路CALL
call_eax ()
popad ()
ret ()
返回 (_取代码 ())
.子程序 召唤宠物, , 公开
.参数 宠物编号, 整数型
.局部变量 代码, 字节集
置代码 ({})
pushad ()
mov_esi_常数 (宠物编号)
push_esi ()
mov_ebx_常数 (十六进制到十进制 (“5E3800”))
call_ebx ()
add_esp_字节 (4)
popad ()
ret ()
代码 = _取代码 ()
调用函数_ (到字节集 (进程ID), 代码)
.子程序 召回宠物, , 公开
.参数 宠物编号, 整数型
.局部变量 代码, 字节集
置代码 ({})
pushad ()
mov_esi_常数 (宠物编号)
push_esi ()
mov_ebx_常数 (十六进制到十进制 (“5E3840”))
call_ebx ()
add_esp_字节 (4)
popad ()
ret ()
代码 = _取代码 ()
调用函数_ (到字节集 (进程ID), 代码)
.子程序 喂宠物CALL, , 公开
.参数 宠物编号, 整数型
.参数 食物位置, 整数型
.局部变量 代码, 字节集
置代码 ({})
pushad ()
push_常数 (宠物编号)
push_常数 (食物位置)
mov_ebx_常数 (十六进制到十进制 (“5BF7C0”))
call_ebx ()
popad ()
ret ()
代码 = _取代码 ()
调用函数_ (到字节集 (进程ID), 代码)
.子程序 死亡复活, , 公开
.局部变量 代码, 字节集
置代码 ({})
pushad ()
mov_eax_常数 (转换十六到十 (“5E2390”))
call_eax ()
popad ()
ret ()
代码 = _取代码 ()
调用函数_ (到字节集 (进程ID), 代码)
.子程序 普通攻击, , 公开
.局部变量 代码, 字节集
置代码 ({})
pushad ()
mov_eax_常数 (转换十六到十 (“5E1F70”))
call_eax ()
popad ()
ret ()
代码 = _取代码 ()
调用函数_ (到字节集 (进程ID), 代码)
.子程序 使用物品CALL, , 公开
.参数 物品ID, 整数型
.参数 物品格子号, 整数型
.局部变量 代码, 字节集
置代码 ({})
pushad ()
mov_edx_常数 (物品ID)
mov_eax_常数 (物品格子号)
push_常数 (1)
push_edx ()
push_eax ()
push_常数 (0)
mov_eax_ptr (转换十六到十 (“993C44”))
mov_eax_ptr_eax加字节 (转换十六到十 (“20”))
mov_ebx_eax ()
lea_ecx_ptr_eax加整数 (转换十六到十 (“d4”))
mov_eax_常数 (转换十六到十 (“5B4450”))
call_eax ()
popad ()
ret ()
代码 = _取代码 ()
调用函数_ (到字节集 (进程ID), 代码)
.子程序 技能CALL, , 公开
.参数 技能ID, 整数型
.局部变量 代码, 字节集
置代码 ({})
pushad ()
mov_ecx_ptr (转换十六到十 (“993C44”))
mov_eax_常数 (技能ID)
push_常数 (-1)
push_常数 (-1)
push_常数 (0)
mov_edx_ptr_ecx加字节 (十六进制到十进制 (“1c”))
push_常数 (0)
push_常数 (0)
push_eax ()
mov_ecx_ptr_edx加字节 (十六进制到十进制 (“28”))
mov_ebx_常数 (十六进制到十进制 (“469B10”))
call_ebx ()
popad ()
ret ()
代码 = _取代码 ()
调用函数_ (到字节集 (进程ID), 代码)
.子程序 打坐, , 公开
.局部变量 代码, 字节集
置代码 ({})
pushad ()
mov_eax_常数 (转换十六到十 (“5E25F0”))
call_eax ()
popad ()
ret ()
代码 = _取代码 ()
调用函数_ (到字节集 (进程ID), 代码)
.子程序 取消打坐, , 公开
.局部变量 代码, 字节集
置代码 ({})
pushad ()
mov_eax_常数 (转换十六到十 (“5E25B0”))
call_eax ()
popad ()
ret ()
代码 = _取代码 ()
调用函数_ (到字节集 (进程ID), 代码)
.子程序 答题CALL, , 公开
.参数 答案, 整数型
.局部变量 call_1, 整数型
.局部变量 call_2, 整数型
.局部变量 esi1
.局部变量 esi2
.局部变量 esi3
.局部变量 esi4
.局部变量 ESI, 整数型
.局部变量 EDX, 整数型
.局部变量 ECX, 整数型
.局部变量 EAX, 整数型
.局部变量 ECX2, 整数型
.局部变量 代码, 字节集
call_1 = 转换十六到十 (“4C0320”)
call_2 = 转换十六到十 (“5B9BB0”)
esi1 = 读内存整数 (进程ID, 转换十六到十 (“993C44”))
esi2 = 读内存整数 (进程ID, esi1 + 转换十六到十 (“1c”))
esi3 = 读内存整数 (进程ID, esi2 + 转换十六到十 (“4”))
esi4 = 读内存整数 (进程ID, esi3 + 转换十六到十 (“8”))
ESI = 读内存整数 (进程ID, esi4 + 转换十六到十 (“2B4”))
EDX = 读内存整数 (进程ID, ESI + 转换十六到十 (“188”))
ECX = 读内存整数 (进程ID, ESI + 转换十六到十 (“180”))
EAX = 读内存整数 (进程ID, ESI + 转换十六到十 (“184”))' 十进 388-----题目ID判断答题
ECX2 = 读内存整数 (进程ID, esi1 + 转换十六到十 (“20”))
置代码 ({})
pushad ()
mov_esi_常数 (ESI)
mov_edx_常数 (EDX)
mov_ecx_常数 (ECX)
push_常数 (答案)
mov_eax_常数 (EAX)
push_edx ()
push_eax ()
push_ecx ()
mov_ecx_esi ()
mov_eax_常数 (call_1)
call_eax ()
mov_ecx_常数 (ECX2)
mov_eax_常数 (call_2)
call_eax ()
push_常数 (1)
push_常数 (0)
push_常数 (0)
mov_ecx_esi ()
mov_eax_常数 (转换十六到十 (“7064F0”))
call_eax ()
popad ()
ret ()
代码 = _取代码 ()
调用函数_ (到字节集 (进程ID), 代码)
.子程序 TAB选怪, , 公开
.局部变量 代码, 字节集
置代码 ({})
pushad ()
mov_ecx_常数 (转换十六到十 (“997734”) + 40)
push_常数 (1)
mov_eax_常数 (转换十六到十 (“462C70”))
call_eax ()
popad ()
ret ()
代码 = _取代码 ()
调用函数_ (到字节集 (进程ID), 代码)
UID231 帖子33 精华0 积分0 阅读权限150 在线时间1 小时 注册时间2008-9-25 最后登录2008-9-28 查看详细资料
编辑用户
禁止用户
编辑 引用 使用道具 报告 评分 回复 删除 屏蔽帖子 TOP 哇!历害,佩服,支持楼主 看来用E写游戏,确实很辛苦 厉害啊
想学习做外挂
很多东西看不懂啊!!!
页:
[1]