CheatMaker目前还是有一些需要完善的地方
最大的一个缺点是无法用控件直接使用指针寻址的方法写地址
不过软件作者表示这个将在CheatMaker 1.70时解决
但是本文的主旨是来说明CheatMaker是个及其便捷的修改器设计器
特别是对于不怎么懂计算机语言的人
Frame:窗体
窗体是设计器的基本,所有的界面设计都是在窗体上完成的,一个CMF可以建立多个窗体
--------------系统--------------
【名 称】:通用操作,控件名称标识
【文 本】:通用操作,控件显示文字,这里即窗口标题栏所表示的文字
--------------布局--------------
【坐 标】:通用操作,如果你选择的窗体位置为坐标指定则有用,否则无用
【大 小】:通用操作,不解释...
【窗体位置】:有<坐标指定>、<屏幕剧中>、<窗体居中>,窗体居中只在按钮创建内置窗体时会有效果,用得很少
--------------样式--------------
【背景颜色】:通用操作,不解释...
【图像文件】:窗体的底图,用于美化修改器
【图像模式】:对于底图的显示模式,同Windows桌面,不解释
【图标文件】:窗体的ICO,创建独立EXE修改器时会修改器变成指定的图标
【无标题栏】:顾名思义,只是如果没标题栏就不会有右上角的X来关闭窗口,则需要用按钮的退出窗体属性或者Alt+F4来退出了
【窗体透明度】:运行时可以按照百分比透明,美化用,不错的东西
接下来的楼层是各个控件的介绍,控件介绍凡是相关到通用型操作的就不累叙
Button:按钮控件
用于数据控件的操作或者窗体的操作,现在也可以执行控件操作的脚本,具体见功能解说部分
--------------系统--------------
【名 称】:虽然是通用操作,但是窗体内各种控件的名称,在写控件脚本的时候会被调用,如果不写脚本基本可不用管
【附加数据】:按钮控件目前尚无系统默认支持的附加数据可用
【脚 本】:执行一些脚本,可以动态的控制控件功能、显示、相关操作等,以后有空专门介绍下,这里略过
--------------样式--------------
【是否禁用】:禁用后运行时控件显示为灰色不可操作
【是否显示】:运行是是否显示在界面上,当然不显示也无法操作,这个通常用于GroupBox控件,也有用于脚本的
【字 体】:不解释...
【风 格】:控件显示在界面上的样式,自己试试就知道了,根据Windows主题的不同,效果显示往往也不一样
【图像文件】:可以用一个图像来显示按钮,具体如下图
--------------定制--------------
【功 能】:这个是重点,目前支持的功能如下
<保存数据>:将你修改的数据保存到内存
<读取数据>:读取内存里当前的数据
<锁定保存>:锁定内存数据
<锁定读取>:这个...基本没用
<读取默认数据>:在数据操作控件中有个【默认值】,这个按钮就是可以让数据控件写上这个默认值,通常用来制作类似[能力值MAX]这种快捷操作按钮
<创建文档窗体>:如下图,在设计的时候一个修改器可以创建多个内置窗体
而内置窗体的调用就是通过按钮来控制的,当你选择创建文档窗体后又会多出几个选项
【创建文档】:是个拉选框,如果有多个内置窗体,就会有多个窗体名称选项
【模态显示】:表示修改器运行后多个窗体间可以自由切换,如果不能自由切换,则必须要关闭窗体后才能操作另一个窗体
【内置窗体】:如果填写的坐标,则运行后创建窗体时不会创建一个新窗口,而是在本窗体的对应坐标为左上起点来显示新的窗体
<退出窗体>:平常没什么用,但是如果窗体选择了【无标题栏】则用于窗体退出
<只执行脚本>:这个很有用,不过也相对复杂,以后有空专门写个教学
-------------数据--------------
【操作范围】:这个要跟GroupBox(框架控件)联系起来讲,默认的Frame是这个窗体内的所有数据控件都会被操作到,但是如果窗体内用到了GroupBox,则可以选择只控制GroupBox范围内的数据控件
如下图,保存数据时可以选择只保存某个框架控件内的控件数据操作,这个在<读取默认数据>时用得多,另外就是ListBox(列表控件)用得多,ListBox后续再讲
TextBox:文本控件
用于内存数据的显示,数据类型可自定,除了数据也可以直接显示ASCII码或者文本
--------------系统--------------
【文 本】:虽然是通用操作,但是这里想说明下,在TextBox中这个属性没效果
【附加数据】:目前系统自带的Value_Fix插件定义了两个附加数据20和21
附加数据21,后跟参数(H)和(L),表示将同一个字节的数据分高4bit和低4bit显示,例如在三国志III中,武将的隐藏能力值,冷静和勇猛是同一个字节,如关羽的是CD,其实是表示12(C)的冷静和13(D)的勇猛,需要拆开来显示并操作这个数据,就会用21(H),21(L)来填写附加数据
附加数据20,后跟参数(运算),通常有些游戏表面显示数值和内存内的数值是不一样的,比如梦幻模拟战2中的金钱,游戏中显示的50000,内存中只有5000,那怎么同步显示呢,给个附加数据20(*10)即可,表示把内存的数据读出后先运算完再显示在TextBox中,当然写数据保存的时候会自动反运算,如这里就是自动(/10),注意/是会取整数的,所以不用担心数据写入不对,当然加减运算更不是问题
--------------样式--------------
【排 列】:<居左>、<居中>、<居右>,不解释
-------------数据--------------
【地 址】:当然就是内存地址了,如果程序指定了基地址,那么这里需要填写的就是偏移地址,据作者说下一个版本在这个地址栏可以直接填写多级指针,我们不放期待一下
另外就是地址可以不是一个,而是多个,如定义:A410,A510,A610...,就是分别往这些地址写上数据,也支持简化格式A410-A418这样的定义,相当于往A410,A412,A414,A416,A418里分别写上数据
【数值大小】:在数据类型非二进制的情况下,这里的数字表示从【地址】算起显示和操作的字节数,默认的虽然是1、2、4、8,但其实也可以操作单数的字节数,如填写3,则读取和操作内存时就会只操作3个字节,第四个字节就不会动
如果数据类型选择的是二进制,则对应一个字节里的8个二进制位置,对应关系如下,即二进制时,数据大小表示显示和控制的是地址的字节里的第几个bit位,二进制通常用于CheckBox、CheckListBox、RadioButton控件,TextBox控件很少会有用二进制的时候
00000001 数值大小 8
00000010 数值大小 7
00000100 数值大小 6
00001000 数值大小 5
00010000 数值大小 4
00100000 数值大小 3
01000000 数值大小 2
10000000 数值大小 1
【默 认 值】:定义了默认值后,对应按钮控件功能中的<读取默认数据>就有作用了,可以制作快捷按钮,不用手工一个个数据填写,而做到一键填写数据
【数据类型】:<十进制>、<十六进制>、<浮点数>、<二进制>、<字符串>,这几个就是基本的类型,至于<连续字符串>、<连续十六进制>基本就没用到过
<二进制>数据长度固定为1字节,注意<二进制>跟【数值大小】的定义关系
<浮点数>数据长度固定为4字节,操作的有效位是7位
Lable:标签控件
就是在设计界面上添加文字说明的控件,用得最多,但是不操作数据,没什么可以解释的
--------------样式--------------
【背景透明】:如上图所示,两个文本框对比就知道什么作用了,美化修改器界面用
CheckBox:选择控件
选择控件也是个用得很多的控件,很多人做修改器,如CheatEngine做的修改器大多都是后台定义好了各种数据修改,然后让你选择“是/否”修改,这种定义和这个控件的操作就比较类似
CheatMaker里的CheckBox也可以不仅仅定义一个地址和数据,可好像CE写Enable的脚本一样在里面定义多个地址和数据
--------------系统--------------
【附加数据】:系统默认的支持附加数据1,表示是否写入取消值,如上图这般写的话,表示勾选了保存修改后,就把地址A140写上数据100(这里的64因为是选择的十六进制),而取消这个勾选时则往地址A140写上数据0
-------------数据--------------
【取 消 值】:当附加数据为1时,勾选掉这个选项时,写入定义的取消值数据到地址
【数据格式】:<单一数据>、<集合数据>,单一数据就是表示只定义一个地址列表(为什么是列表?因为前面说道了地址是可以定义多值的)和一个数据,<集合数据>在选择后出现以下图片
【数据集合】:点击后出现数据列表,可以定义多个地址,多个数据大小,多种数值,值得注意的是这里的数据类型都是统一的,如果在上面图中选择的十六进制则这里的数据也要写十六进制,如果定义的二进制,数值大小满足之前说道的二进制取值关系,即1-8分别对应一个地址的8个bit位