开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 2157|回复: 7
收起左侧

[技术专题] PVZ辅助功能特征&指针整理①

[复制链接]
结帖率:100% (3/3)
发表于 2023-11-11 20:21:11 | 显示全部楼层 |阅读模式   河南省新乡市
头一回发这种贴,一来记录一下自己的心路历程,二来没找到任何一个比较详细的讲pvz辅助的帖子,要么直接成品要么源码功能少得可怜看前先声明一下:本贴仅提供数据整理和教学,轻喷,勿吞QAQ

你必须要了解的:
1.国内pvz一般分为年度版和汉化版,基址是不同的,本贴使用中文汉化版,基址使用6A9EC0,请确定自己的游戏版本正确
2.本贴不提供CE找地址教学,仅提供指针以及数据,部分情况下会给出代码例子(我的代码写的并不好,可以自行优化,我只提供格式)
3.用到的模块仅有超级模块和精易模块。论坛里自行搜索最近更新的版本,非常常见。(其实超级模块和精易模块很多命令是重复的,如果想压缩大小只使用超级模块也是可以的,不过精易模块命令更加一目了然)
4.本贴会按照我自己的辅助功能顺序进行展示,后续的功能会持续更新,感谢各位

①万能获取游戏pid

  
pid = 进程_名取ID (“PlantsVsZombies.exe”, )

可以将括号内的进程名换成变量,随时更改变量的值,即可取到任何改版的pid
②存储游戏基址
  
窗口程序集名保 留  保 留备 注
(未填写程序集名)   
变量名类 型数组备 注
变量名类 型数组备 注
基址整数型  
基址 = 读内存整数型 (pid, 十六到十 (“6A9EC0”), )

基址是不会改变的,在窗口创建时或是时钟里放置保存全局变量,后续功能实现会方便很多(注:后续功能基址获取均不会写出,参考此命令即可)
③修改阳光数
基址6A9EC0,一级偏移768,二级偏移5560,值为整数
  
偏移1 = 读内存整数型 (pid, 基址 + 十六到十 (“768”), )
写内存整数型 (pid, 偏移1 + 十六到十 (“5560”), 到整数 (编辑框_资源数.内容))

④修改金币数
基址6A9EC0,一级偏移82C,二级偏移28,值为整数
  
偏移1 = 读内存整数型 (pid, 基址 + 十六到十 (“82C”), )
写内存整数型 (pid, 偏移1 + 十六到十 (“28”), 到整数 (编辑框_资源数.内容))

⑤设置游戏宽屏(修改后全屏一次生效)
基址6A9EC0,偏移C0,值为整数
  
子程序名返回值类型公开备 注
_选择框_去除黑边_被单击  
判断 (选择框_去除黑边.选中)
写内存整数型 (pid, 基址 + 十六到十 (“C0”), 1150)
写内存整数型 (pid, 基址 + 十六到十 (“C0”), 800)

⑥快捷键“~”取铲
利用易语言的注册控件实现,需要建立一个标签用来注册
铲子调用基址6A9EC0,一级偏移768,二级偏移138,三级偏移30,置整数值为6时铲子被拿在手中
  
子程序名返回值类型公开备 注
_选择框_键控铲子_被单击  
判断 (选择框_键控铲子.选中)
铲子热键 = 注册热键 (窗口_功能.取窗口句柄 (), 标签_铲子事件.取窗口句柄 (), 0, 192)
撤销热键 (窗口_功能.取窗口句柄 (), 铲子热键)
子程序名返回值类型公开备 注
_标签_铲子事件_反馈事件整数型 
参数名类 型参考可空数组备 注
参数一整数型
参数二整数型
如果真 (参数一 = 铲子热键)
偏移1 = 读内存整数型 (pid, 基址 + 十六到十 (“768”), )
偏移2 = 读内存整数型 (pid, 偏移1 + 十六到十 (“138”), )
写内存整数型 (pid, 偏移2 + 十六到十 (“30”), 6)


i支持库列表   支持库注释   
shellEx扩展功能支持库一

⑥任何模式显示铲子(包括我是僵尸)
基址6A9EC0,一级偏移768,二级偏移55F1,置值字节型,1为显示,0为隐藏
  
子程序名返回值类型公开备 注
_选择框_显示铲子_被单击  
判断 (选择框_显示铲子.选中)
偏移1 = 读内存整数型 (pid, 基址 + 十六到十 (“768”), )
写内存字节型 (pid, 偏移1 + 十六到十 (“55F1”), 1)
偏移1 = 读内存整数型 (pid, 基址 + 十六到十 (“768”), )
写内存字节型 (pid, 偏移1 + 十六到十 (“55F1”), 0)

⑥显示被隐藏的小游戏(冰冻关卡,闪电战等)
给地址42DF5D置值整数型,56为显示,136为隐藏

  
子程序名返回值类型公开备 注
_选择框_显示隐藏小游戏_被单击  
判断 (选择框_显示隐藏小游戏.选中)
写内存字节型 (pid, 十六到十 (“42DF5D”), 56)
写内存字节型 (pid, 十六到十 (“42DF5D”), 136)

⑦游戏后台运行(鼠标离开游戏窗口不暂停)
修改地址54EBA8的字节集(使用还原字节集命令将文本转换为字节集)
原74 2E
改EB 00
  
子程序名返回值类型公开备 注
_选择框_后台运行_被单击  
判断 (选择框_后台运行.选中)
写内存字节集 (pid, 十六到十 (“54EBA8”), 还原字节集2 (“EB 00”), )
写内存字节集 (pid, 十六到十 (“54EBA8”), 还原字节集2 (“74 2E”), )

⑧卡槽永远置顶(不会被巨人遮挡,永远在最上层)
修改地址416DBD的字节集(使用还原字节集命令将文本转换为字节集)
原B9 A1 86 01 00
改B9 5F AE 0A 00

  
子程序名返回值类型公开备 注
_选择框_卡槽置顶_被单击  
判断 (选择框_卡槽置顶.选中)
写内存字节集 (pid, 十六到十 (“416DBD”), 还原字节集2 (“B9 5F AE 0A 00”), )
写内存字节集 (pid, 十六到十 (“416DBD”), 还原字节集2 (“B9 A1 86 01 00”), )

⑨自动收集物资+掉落卡片不消失
修改地址43158F的字节集(使用还原字节集命令将文本转换为字节集)
原75 08
改EB 08

  
子程序名返回值类型公开备 注
_选择框_自动收集_被单击  
判断 (选择框_自动收集.选中)
写内存字节集 (pid, 十六到十 (“43158F”), 还原字节集2 (“EB 08”), )
写内存字节集 (pid, 十六到十 (“43158F”), 还原字节集2 (“75 08”), )

⑩二周目时戴夫不会帮忙选三张卡
修改地址483F1A的字节集(使用还原字节集命令将文本转换为字节集)
还原时:给地址483F1A置整数值3,并改字节集75 16
改EB 16


  
子程序名返回值类型公开备 注
_选择框_戴夫不选卡_被单击  
判断 (选择框_戴夫不选卡.选中)
写内存字节集 (pid, 十六到十 (“483F1A”), 还原字节集2 (“EB 16”), )
写内存字节集 (pid, 十六到十 (“483F1A”), 还原字节集2 (“75 16”), )
写内存字节型 (pid, 十六到十 (“483F1A”), 3)

①①去除阳光9990的上限,可以上万上亿而不回弹
修改地址430A25的字节集(使用还原字节集命令将文本转换为字节集)
原C7 80 60 55 00 00 06 27 00 00
改90 90 90 90 90 90 90 90 90 90

  
子程序名返回值类型公开备 注
_选择框_解除上限_被单击  
判断 (选择框_解除上限.选中)
写内存字节集 (pid, 十六到十 (“430A25”), 还原字节集2 (“90 90 90 90 90 90 90 90 90 90”), )
写内存字节集 (pid, 十六到十 (“430A25”), 还原字节集2 (“C7 80 60 55 00 00 06 27 00 00”), )

①②不需要选满植物也能开始游戏
修改地址48610C的字节集(使用还原字节集命令将文本转换为字节集)
原3B 51 24
改90 90 90

  
子程序名返回值类型公开备 注
_选择框_一植开局_被单击  
判断 (选择框_一植开局.选中)
写内存字节集 (pid, 十六到十 (“48610C”), 还原字节集2 (“90 90 90”), )
写内存字节集 (pid, 十六到十 (“48610C”), 还原字节集2 (“3B 51 24”), )

①③火球不会解除冰冻和减速
修改地址00532B58的字节集(使用还原字节集命令将文本转换为字节集)
原7E 0F
改EB 0F


  
子程序名返回值类型公开备 注
_选择框_冰火相容_被单击  
如果 (选择框_冰火相容.选中 = )
写内存字节集 (pid, 十六到十 (“00532B58”), 还原字节集2 (“EB 0F”), )
写内存字节集 (pid, 十六到十 (“00532B58”), 还原字节集2 (“7E 0F”), )

①④全体卡片所需阳光(拆开就是单个了)
地址69F2C0为豌豆射手所需阳光,+36即为向日葵的阳光,再+36即为樱桃炸弹,以此类推48植,可使用循环命令


地址467B60为普通僵尸所需阳光,+6为下一个僵尸的阳光,以此类推14僵,可使用循环命令
  
子程序名返回值类型公开备 注
_按钮_植物所需阳光_被单击  
变量名类 型静态数组备 注
地址1整数型 
地址2  
i整数型 
地址1 = 十六到十 (“69F2C0”)  ' 植物
计次循环首 (48, i)
写内存整数型 (pid, 地址1, 到整数 (编辑框_阳光.内容))
地址1 = 地址1 + 36
计次循环尾 ()
地址2 = 十六到十 (“467B60”)  ' 僵尸
计次循环首 (14, i)
写内存整数型 (pid, 地址1, 到整数 (编辑框_阳光.内容))
地址1 = 地址1 + 6
计次循环尾 ()

①⑤全体卡片所需冷却(拆开就是单个了)
地址69F2C4为豌豆射手所需冷却,+36即为向日葵的冷却,再+36即为樱桃炸弹,以此类推48植,可使用循环命令

  
子程序名返回值类型公开备 注
_按钮_全体冷却_被单击  
变量名类 型静态数组备 注
地址整数型 
i整数型 
地址 = 十六到十 (“69F2C4”)  ' 植物冷却
计次循环首 (48, i)
写内存整数型 (pid, 地址, 到整数 (编辑框_冷却.内容))
地址 = 地址 + 36
计次循环尾 ()


本次给大家带来了15个命令,部分为原版游戏优化和资源的修改,下一贴我会整理更复杂和常用的命令
可能会包含汇编以及ceaa等,届时我会再做赘述
感谢捧场,彦祖能留言支持一下吗



结帖率:0% (0/3)

签到天数: 9 天

发表于 2024-3-13 22:58:41 高大上手机用户 | 显示全部楼层   河南省郑州市
怎么不更新了
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)

签到天数: 2 天

发表于 2024-1-14 20:22:22 | 显示全部楼层   湖南省株洲市
牛呀,学下下,谢谢解答
回复 支持 反对

使用道具 举报

结帖率:99% (152/153)

签到天数: 22 天

发表于 2023-12-13 16:34:22 | 显示全部楼层   广东省江门市
能出一期僵尸的动态创建吗
回复 支持 反对

使用道具 举报

结帖率:100% (4/4)

签到天数: 27 天

发表于 2023-12-13 16:28:25 | 显示全部楼层   山东省淄博市
感谢分享
回复 支持 反对

使用道具 举报

结帖率:100% (5/5)

签到天数: 19 天

发表于 2023-12-11 18:35:39 | 显示全部楼层   广东省佛山市
谢谢分享
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)
发表于 2023-12-7 15:35:12 | 显示全部楼层   广东省珠海市
#在这感谢捧场里快速回复#
回复 支持 反对

使用道具 举报

签到天数: 20 天

发表于 2023-11-15 17:24:38 | 显示全部楼层   河北省石家庄市
感谢分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表