CheatMaker 论坛

注册

 

发新话题 回复该主题

发表在CM十周年的前一天 [复制链接]

1#
因为明天出差的关系,不一定有时间写,所以提前一天写
CM诞生十周年了,我收到了来自天枫的小纪念品,有些感慨,于是准备写点什么,一拖再拖就到了今天
趁着现在有空,我就动笔了

怎么说呢
CM这十年来的成长,我的确是那个值得被天枫感谢的人,因为我这个人执念挺深的,天生的完美主义者
但其实我更应该感谢天枫,这个软件算是陪伴了我人生很多年的“玩具”,而且我相信这个陪伴还会有很久很久
CM是一个好软件,天枫也是一个优秀的程序员,我跟CM的缘分应该没到10年,但至少也7、8年了,还算是比较有资格来写这篇文章的人

昨天看到svn269的更新
我第一时间又去更新了一个修改器
http://forum.cheatmaker.org/showtopic-2413.aspx
这东西已经成了我对于CM功能测验的一个标的物
为什么?
除了这个游戏的修改确实是麻雀虽小,五脏俱全之外
其实还源自这是我与CM认识的开始

我也不记得是哪年了,那时候CM发布在一个论坛,论坛名叫“银色流星”
我也不记得是从哪个地方找过去的
无意间发现了这个小软件
那一年Emucheat好像龙二还有在更新
CM的诞生大约灵感是源自这个软件吧
至少在支持程序的理念上
两者非常的接近,甚至连附加数据的含义都是近似的

当时CM支持的控件较少
还没有ListBox这种控制偏移的控件
我一直是个爱修改的人,也是学计算机出来的
不过因为大学学得杂,反而真正动手编程起来总是不知道该怎么达到自己想要的那种效果
算法什么的我会,MFC的控件用法我也懂一些,可真正运用到制作修改器的时候,对于内存数据的操作、控制总差那么临门一脚,算得上是学艺不精
可我的爱好并不是去累代码、编算法,只是简单的想要修改游戏而已,当时看到CM让我觉得很新奇,这其实是一个桥梁的软件,他并不能教会你如何修改游戏,只是让会修改游戏的你,补上了那VB、VC编程上的那临门一脚而已

Emucheat其实可以满足我的修改,但我喜欢改的恰恰是策略游戏,Emucheat的修改机制是“有”或者“无”,很多处理上是不受控的,如果要受控,则CHT文件则会写的麻烦而且庞大
当时我正好自己整理了一个《三国志Ⅲ》的cht文件(Emucheat用的修改文件)
我拿着我刚好自己整理完的《三国志Ⅲ》的cht文件,试着在CM里做一个受控的修改方式
记得当时我做这个游戏的城市属性的修改
因为游戏里46个城市
我第一次做这个游戏修改器的时候,光为了完成修改城市属性的受控我建了47个窗体,在主窗体上做了46个按钮,分别打开46个城市的修改界面
我当时也不记得是怎么完成的这个“笨拙”的修改器的了,可惜没有留下当时的cmf来做个纪念
也许当时确实是很笨的行为
可当我把这个修改器发布在银色流星论坛的时候
却触发了一个契机
天枫意识到,按照当时CM的设计功能和理念,其实并没有比Emucheat高明什么
于是对于规律性内存构造
出现了ListBox这个控件,CM比Emucheat更适合修改策略类、战棋类这些数据庞大的游戏了
自此以后CM开始正式成为我的“玩具”

第二个契机是PS版本《幻想传说》的修改器
因为CM支持图片以及ComboBox支持切割图片的关系
我开始想着做一款看起来很专业很美观的修改器来玩玩
这个修改器的源代码目前主页上都还有
有兴趣的可疑下载看看,界面还是用的清一色的英文
这个修改器也是发布在银色流星论坛
我还记得天枫当时被惊艳到了
感叹了一句软件虽好,也要看使用者的能力
而我这个完美主义者也许在当时触动到了他的某根神经
于是CM又开始朝着界面设计的多样性方向发展了
ProgressBox乃至后来的TabCtrl、Slider控件
其实从达到修改功能本身角度来说
这些控件本身其实毫无作用
都是服务于界面设计的美观和操作方式的体验的

第三个契机来自于《火炎之纹章 - 纹章之迷》
那个时候已经有ListBox这个控件了,对于战棋类游戏来说,ListBox几乎是个神器
我其实并不是很爱玩这款游戏,但当时因为这游戏的角色数据分成2个部分,每个部分的内存偏移不一样
我不得不写两个ListBox来分别控制这两部分的数据
这样的修改器功能并没有什么问题,却让完美主义的我觉得很不舒服
提出了用一个ListBox分别控制不同偏移的想法
最后,天枫开始关注“脚本”这个新概念
使用这个新概念整个修改器的界面设计和自由度都高出了很多个层级,当然相对的使用门槛也提高了
现在回头想想,如果我是在这个时间点接触的CM,我是否还能表现出那样的探求的兴趣呢?

所以在这之后
我也想着做点什么来降低这个门槛,于是我写了一个Help的电子书教学
也就是目前置顶帖子的那个1.72Ex的教学了
这个在1.6版本就开始写了,一直完善到1.72
但后来一则我有点懒了,二则CM进入了一个快车道,摒弃了一些原来的设计方案,需要对教学改动很多
三则是我的工作开始忙了,还要抽空完成一些心爱的游戏和修改器
四则是主要的原因,是我对CM的期待值越来越高了,想着在CM达到某个期待值前我一直想等等,一直等到了今天也没再做过教学

第四个契机来自与CM的插件开发源代码
我的程序开发的算法学得不错,后来也自学了一些数据库,但编程累代码、写接口等却是个半吊子
可凭着一些爱好和热情,却在别的论坛混了个“大神”的名头,虽然这名头我并不想要
那个论坛叫“我爱秘籍”,很多年都没怎么去过了
但当时让我认识了一帮专业人才,而axdx就是其中一位
虽然这些年他消失了,但Emu-zone,PPX玩Hack的一众大神们大都还记得他
他算得上是我把他带入模拟界的,之前的他是标准的PC游戏玩家,模拟都没怎么碰过
可因为我总在论坛发模拟器游戏的修改器,加上经常请教他程序逻辑上的问题,他开始玩模拟玩Hack
他写代码非常的专业,在消失前还单独为我写了几个相当实用的小程序,至今受用
而他为CM带来了很大的契机,一个是目前置顶帖的PC_AA插件,一个则是内存转字码的插件
内存转字码的插件,其实天枫也写了,而且插件名称都相同,都叫Code_Mapping,但使用的附加数据不一样
这个凭良心说,天枫写的那个实用性和泛用性没有axdx写的那个好用
PC_AA为CM打开了另一扇窗
就是原本比较适应于模拟游戏程序设计的CM,开始有了PC著名的修改软件CheatEngine的部分功能
以至与PC_AA里的附件数据62的地址书写方式还被CM现在新的SVN继承了下来
附件数据63的逻辑运算功能,也被新的脚本继承了下来

第五个契机是CM 1.81的表格控件
这个其实我很早跟天枫提出过,而类比的对象是著名的大神Van制作的那套三国、野望的修改器
表格实现方式实在是便捷了不少
这个控件也解决了很多界面控制的问题,让CM上了一个新的台阶
不过问题也存在,可能也是一些目前无解的问题
因为这个控件本身机制的关系,无法提供首列文本或者序号,也无法实现排序
也许将来CM也会有新的更好的表格控件诞生吧

我昨天开玩笑说天枫可能要放大招了
天枫回复说对比下现在的svn和1.81的功能
已经算是放大招了
其实我是认同的,虽然CM更新并不迅速
但在工作生活之外拿出时间一点一滴的累计
已经累计出了一个“怪物”
只有深入了解CM的人才明白这个软件有多么优秀
专业程序员当然可以不屑一顾
也许从功能多样性来说,CM还远达不到专业软件能完成的东西
但我想问
有哪个程序员敢跟我拼做修改器的效率
CM已经由一个桥梁变成了一把利刃了,而且会越来越锋利

十年磨一剑
我相信CM还会一直走下去的
不过随着年龄不断增长
我想着这软件再过十年还有没有人会继续下去
之前不少人问过我
CheatMaker为什么不开源

我除了回答我并不是软件作者之外
其实也想过这个问题
也许再过一些年
天枫会需要一个能接手这个软件的人
我并没有想过做这个人
因为我始终是一个纯粹的修改爱好者而不愿意做程序员的人

    已有1评分我要评分查看所有评分

    最后编辑银河漫步 最后编辑于 2017-11-29 22:47:54
    分享 转发
    TOP
    2#

    二楼来说说我的期待和想法,很多以前都提到过,这次写完回忆录再自我整理一遍
    并非想着都要实现,只是一些不负责任的期待和展望而已,毕竟不用我自己开发,属于站着说话不腰疼系列
    看到这个帖子的用户不妨也畅所欲言
    甚至可以提出一些天马行空的想法,偶尔自我开开脑洞也是不错的~

    功能上:
    1.图片控件可按照内存列表做自动切割
    2.十进制的负数显示
    3.表格控件的排序功能
    4.动态列表能支持2列文本的合并显示
    5.文件编辑的文件目录解决方案,由现在的指定修改一个文件,改为可以指定目标目录,然后在Frame或者控件中指定读取的文件名,实现多文件编辑的修改器统一
    6.时钟控件,可以配合脚本完成定时的检测等功能,比如满足条件后的保存或锁定
    7.循环脚本,最好变量还能应用到控件操作本身,这个说法举个例子
    目前已经支持的脚本
    ComboBox1.ListDisplay = GridList1.ListColumn[0];
    可以等效为
    intger x = 0;
    If x > 100 End
    GridList1.Selected = x;
    ComboBox1.ListDisplay[x] = GridList1.SelectText;
    x += 1;
    ret
    8.内存数据的直接脚本操作,可跳出控件直接使用脚本操作内存
    9.Value_Fix这个控件希望能重写
    20、21这两个附加数据已经没什么作用了,21这个其实在22出现的时候就可以删掉了
    现在脚本可以逻辑运算,20这种简单的4则运算还只能算一次的建议删掉或者变更
    比如
    20(*2+1),如果支持混算,保存时能自动反算,则可以保留,否则建议去掉算了
    22的格式除了原有格式保留外
    希望再支持一种简化格式,不如把附件数据21改为简化格式
    比如
    22(1,2,3,4,5) = 21(1~5)
    22(1BA2:1,2,3,4,5,6,7,8 & 1BA6:1,2,3,4,5,6,7,8) = 21(1BA2:1~8 & 1BA6:1~8)

    再说个题外话:
    CheatMaker自从支持生成独立修改器之后
    从软件专业角度考虑,那个exe的启动图片去掉更显专业性
    CheatMaker会更象一款专业编程工具~

      已有1评分我要评分查看所有评分

      最后编辑银河漫步 最后编辑于 2017-11-29 22:32:05
      TOP
      发新话题 回复该主题