[模块使用例程]神鬼传奇部分功能

发布时间:2019-8-15 17:44

2197 0 0

vipsnadong

用户头衔:VIP会员

关注 私信
  
窗口程序集名保 留  保 留备 注
程序集1   
变量名类 型数组备 注
进程ID整数型  
全局基址文本型  
进程句柄整数型  
地址整数型  

子程序名返回值类型公开备 注
_启动子程序整数型 本子程序在程序启动后最先执行
变量名类 型静态数组备 注
怪物数组整数型 0
A整数型  
初始化 ()
' 读取当前人物属性 ()
' 二叉树遍历 (怪物数组)
' A = 最近怪 (怪物数组)
功能_喊话 (“彩打机12222”)
返回 (0)  ' 可以根据您的需要返回任意数值
子程序名返回值类型公开备 注
初始化  
进程ID = 进程_进程名取ID (“Game.exe”)
进程句柄 = 进程_打开进程 (进程ID)
地址 = 模块_取模块句柄 (进程ID, “Game.exe”)
子程序名返回值类型公开备 注
搜索基址_人物文本型 
变量名类 型静态数组备 注
基址文本型  
' ' 8B 08 89 8D 9C 6D 01 00 8B 50 04 89 95 A0 6D 01 00 8B 48 08 89 8D A4 6D 01 00 8B 70 0C 8B 58 10
基址 = 内存_搜索特征码2 (进程ID, “Game.exe”, “8B 08 89 8D 9C 6D 01 00 8B 50 04 89 95 A0 6D 01 00 8B 48 08 89 8D A4 6D 01 00 8B 70 0C 8B 58 10”, “-39”, 0)
返回 (基址)
子程序名返回值类型公开备 注
读取当前人物属性人物角色 
变量名类 型静态数组备 注
主角人物角色  
' 内存_读整数型 (, )
主角.最大血量 = 内存_读整数型 (进程句柄, 地址 + 转换_十六到十 (“171E8F0”))
主角.当前血量 = 内存_读整数型 (进程句柄, 地址 + 转换_十六到十 (“171E8B8”))
主角.最大蓝量 = 内存_读整数型 (进程句柄, 地址 + 转换_十六到十 (“171E8F8”))
主角.当前蓝量 = 内存_读整数型 (进程句柄, 地址 + 转换_十六到十 (“171E8C0”))
主角.当前XP = 内存_读整数型 (进程句柄, 地址 + 转换_十六到十 (“184F6A0”))  ' 184F6A0
主角.当前坐标.X坐标 = 内存_读小数型 (进程句柄, 地址 + 转换_十六到十 (“171E86C”))  ' +F0读里面的值乘以2.56是X坐标(整数型)’
主角.当前坐标.Y坐标 = 内存_读小数型 (进程句柄, 地址 + 转换_十六到十 (“171E870”))  ' +F4读里面的值乘以2.56是Y坐标(整数型)’
主角.当前经验 = 内存_读整数型 (进程句柄, 地址 + 转换_十六到十 (“171E8D8”))
主角.人物等级 = 内存_读整数型 (进程句柄, 地址 + 转换_十六到十 (“171E8B8”)转换_十六到十 (“18”))
返回 (主角)
' Game.exe+171E8D8
子程序名返回值类型公开备 注
二叉树遍历  
参数名类 型参考可空数组备 注
读取到怪物数组整数型  
变量名类 型静态数组备 注
二叉树首地址整数型  
怪物数组怪物角色  
A整数型  
怪物地址整数型  
名字长度整数型  
二叉树首地址 = 内存_读整数型 (进程句柄, 地址 + 转换_十六到十 (“9DE9FC”))  ' 游戏怪物数组基址
' “Game.exe+9DE9FC”  "Game.exe+1ED6DC0"
二叉树首地址 = 内存_读整数型 (进程句柄, 二叉树首地址 + 转换_十六到十 (“2BC30”))
二叉树首地址 = 内存_读整数型 (进程句柄, 二叉树首地址 + 转换_十六到十 (“64”))
二叉树首地址 = 内存_读整数型 (进程句柄, 二叉树首地址 + 转换_十六到十 (“4”))  ' 二叉树EAX
读取二叉树 (进程句柄, 二叉树首地址, , 读取到怪物数组)
计次循环首 (取数组成员数 (读取到怪物数组), A)
怪物数组.怪物ID = 内存_读整数型 (进程句柄, 读取到怪物数组 [A]转换_十六到十 (“c”))
名字长度 = 内存_读整数型 (进程句柄, 读取到怪物数组 [A]转换_十六到十 (“324”))
如果 (名字长度 > 16)
怪物数组.怪物名称 = 内存_读文本型 (进程句柄, 内存_读整数型 (进程句柄, 读取到怪物数组 [A]转换_十六到十 (“314”)), 名字长度)
怪物数组.怪物名称 = 内存_读文本型 (进程句柄, 读取到怪物数组 [A]转换_十六到十 (“314”), 名字长度)
怪物数组.当前坐标.X坐标 = 内存_读小数型 (进程句柄, 读取到怪物数组 [A]转换_十六到十 (“AC”))
怪物数组.当前坐标.Y坐标 = 内存_读小数型 (进程句柄, 读取到怪物数组 [A]转换_十六到十 (“B0”))
怪物数组.当前血量 = 内存_读整数型 (进程句柄, 读取到怪物数组 [A]转换_十六到十 (“27A0”))
怪物数组.最大血量 = 内存_读整数型 (进程句柄, 读取到怪物数组 [A]转换_十六到十 (“27A0”)转换_十六到十 (“B4”))
. ' 如果真 (内存_读整数型 (进程句柄, 读取到怪物数组 [A] + 转换_十六到十 (“88”)) = 1)  ' 1是宠物
' 删除成员 (读取到怪物数组, A, 1)

调试输出 (怪物数组.怪物名称, 怪物数组.当前坐标.X坐标, 怪物数组.当前坐标.Y坐标, 转换_十到十六 (读取到怪物数组 [A]))
计次循环尾 ()
子程序名返回值类型公开备 注
功能_喊话  
参数名类 型参考可空数组备 注
喊话内容文本型   
变量名类 型静态数组备 注
汇编类_汇编  
内存地址整数型  
内存地址 = 内存_申请内存 (进程句柄, 取文本长度 (喊话内容))
内存_写文本型 (进程句柄, 内存地址, 喊话内容)
汇编.置代码 ()
' ’汇编.置入代码 ({ 104 } + 到字节集 (目的地坐标.Y坐标))
' ’汇编.置入代码 ({ 104 } + 到字节集 (目的地坐标.X坐标))
汇编.push (内存地址)
汇编.push (转换_十六到十 (“22f3a08”))
汇编.Mov_Ecx (转换_十六到十 (“22f0fb8”))
汇编.Mov_Ebx (转换_十六到十 (“7866d0”))
汇编.Call_Ebx ()
汇编.Ret ()
汇编.远程调用代码 (进程句柄, 汇编.返回代码 (), )
子程序名返回值类型公开备 注
最近怪整数型 返回最近怪物地址
参数名类 型参考可空数组备 注
附近怪物数组整数型  
变量名类 型静态数组备 注
怪物怪物角色  
A整数型  
人物人物角色  
临时怪物距离双精度小数型  
临时怪物距离数组双精度小数型 0
判断距离数组双精度小数型 0
人物 = 读取当前人物属性 ()
计次循环首 (取数组成员数 (附近怪物数组), A)
怪物.当前坐标.X坐标 = 内存_读小数型 (进程句柄, 附近怪物数组 [A]转换_十六到十 (“AC”))
怪物.当前坐标.Y坐标 = 内存_读小数型 (进程句柄, 附近怪物数组 [A]转换_十六到十 (“B0”))
临时怪物距离 = 求距离 (人物.当前坐标.X坐标, 人物.当前坐标.Y坐标, 怪物.当前坐标.X坐标, 怪物.当前坐标.Y坐标)
加入成员 (临时怪物距离数组, 临时怪物距离)
计次循环尾 ()
判断距离数组 = 临时怪物距离数组
数组排序 (临时怪物距离数组, )
' 调试输出 (取数组成员数 (判断距离数组), 取数组成员数 (附近怪物数组))
计次循环首 (取数组成员数 (判断距离数组), A)
如果真 (临时怪物距离数组 [2] = 判断距离数组 [A])  ' 第一个遍历到自己,所以是第二个
返回 (附近怪物数组 [取数组成员数 (判断距离数组)])

计次循环尾 ()
返回 (0)


i支持库列表   支持库注释   
spec特殊功能支持库

B Color Smilies

扫码加入QQ群

842848001@qq.com
842848001

GMT+8, 2024-3-29 21:41

Powered by Discuz! X3.4© 2001-2017 Comsenz Inc.

网站内容仅供用于学习和交流,请遵循相关法律法规

QQ在线咨询|小黑屋|手机版|Archiver|一切从零开始 ( 蜀ICP备15031375号-3 )