|
头一回发这种贴,一来记录一下自己的心路历程,二来没找到任何一个比较详细的讲pvz辅助的帖子,要么直接成品要么源码功能少得可怜看前先声明一下:本贴仅提供数据整理和教学,轻喷,勿吞QAQ
你必须要了解的:
1.国内pvz一般分为年度版和汉化版,基址是不同的,本贴使用中文汉化版,基址使用6A9EC0,请确定自己的游戏版本正确
2.本贴不提供CE找地址教学,仅提供指针以及数据,部分情况下会给出代码例子(我的代码写的并不好,可以自行优化,我只提供格式)
3.用到的模块仅有超级模块和精易模块。论坛里自行搜索最近更新的版本,非常常见。(其实超级模块和精易模块很多命令是重复的,如果想压缩大小只使用超级模块也是可以的,不过精易模块命令更加一目了然)
4.本贴会按照我自己的辅助功能顺序进行展示,后续的功能会持续更新,感谢各位
①万能获取游戏pid
可以将括号内的进程名换成变量,随时更改变量的值,即可取到任何改版的pid
②存储游戏基址
基址是不会改变的,在窗口创建时或是时钟里放置保存全局变量,后续功能实现会方便很多(注:后续功能基址获取均不会写出,参考此命令即可)
③修改阳光数
基址6A9EC0,一级偏移768,二级偏移5560,值为整数
④修改金币数
基址6A9EC0,一级偏移82C,二级偏移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 )
⑥任何模式显示铲子(包括我是僵尸)
基址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植,可使用循环命令
地址 = 十六到十 (“69F2C4”) 计次循环首 (48, i )写内存整数型 (pid, 地址, 到整数 (编辑框_冷却.内容 )) 地址 = 地址 + 36 计次循环尾 ()
本次给大家带来了15个命令,部分为原版游戏优化和资源的修改,下一贴我会整理更复杂和常用的命令
可能会包含汇编以及ceaa等,届时我会再做赘述
感谢捧场,彦祖能留言支持一下吗
|
|