troytroytroy 发表于 2016-5-27 14:04:00

論 004 軟化硬編碼的發展性

在 004 研究硬編碼的兩篇文章中 ( DAT中“硬编码”的那些功能、把硬编码进行“软化”),我們初步的認識到關於硬編碼的一些效果與應用。有鑑於多數人對帝國系統本身理解不深,可能會低估新技術。因此在下在此解釋一下004這類顛覆性的研究到底可以達到多麼驚人的效果:


首先,在"硬編碼軟化"一文中,一個非常最重要突破的是這一段解說:
破坏者、爆破船的自爆功能实际上是两个方面:单位攻击时自爆、单位死亡时爆炸。这两个方面可以分别使用,故实际上可以做出排雷时不会爆炸的地雷,以及不可攻击但可以打爆的油桶。
以下请使用十六进制编辑器进行修改,我用的是UltraEdit。
換句話說,硬編碼的效果可以"分別使用"。換句話說,如果好好研究硬編碼,理論上可以做出:

1. 可以被招降的"英雄"。
2. 攻擊才會還手的士兵。(對於想製作暗殺、潛行的戰役很有用)
3. 可以像城門一樣碰觸後會變化的單位。(例如:必須有單位操作的攻城器,事實上也可以加上單位轉化效果)
4. 可以在某種特定單位身邊建立的mokey boy?(這個要修改到甚麼程度我並不確定,但可以成為某種"數入指令後產生各種單位的召喚師")
5. 可以治療與攻擊的單位?(不確定可行,如果#18僧侶的硬碼招降與治療若可以分開,那麼單獨治療的單位應該可以做到。但加在攻擊單位身上是否可行還須驗證)

最後,我想說的是,關於硬編碼還有非常多可探討的選項,004的研究不可限量。

qs 发表于 2016-5-27 17:17:44

如果能摸到exe里的攻击伤害计算公式,那天地就广阔的吓人了。

我是谁004 发表于 2016-5-27 23:59:13

本帖最后由 我是谁004 于 2016-5-28 09:35 编辑

我已经连续做了三天反编译工作了,研究这东西确实令人兴奋,兴奋得睡不着觉。

今天一整天时间研究EXE,本来想在昨天已经探索了大部分左下角按钮的基础上,弄一个“新建筑工人”功能,当然,不是密铺帝那种占用渔船的,而是需要无限量的空间。虽然已经知道自己可以怎么做了——其实很简单,单位训练的指令是0x12,建造地基的指令是0x13,我考虑判断原始单位的类别是否为80,来区分二者,这样同用Command ID为2/10的单位便可以当建筑工人了。但就是无法达到目的,因为汇编的“太死”,长度不可改变;难于做到从原有的代码中间破开,并插入一个隔了很远的数值。
而另一种方法是用渔船页面。原本村民的建筑页面由于固定了118号单位,且各种工作的村民一大堆,一改则涉及很多问题。而渔船独立且没有分页,若能将其改为只搜寻训练地点为自己的单位,就可以无限地拓展建筑页面。但它的代码更复杂,没能找到头绪。
即使已有的成果我又遇到了问题。原先说的破坏者自爆和狂战士回血的特性我已经软化,但在自己的mod中碰到了问题,就是自爆后不会伤及友方单位。前天在测试MOD中还做了油桶多米诺骨牌呢,想去参考却发现不小心用004时代覆盖了……

不过也不都是怨念,我还发现了这些东西:
开启右下角训练的方法。在没有翻页键的情况下,原本的单位训练按钮ID若为15或35,也无法位于右下角,而是移动到了左上的第一格。
单位生产的按钮或许可以和控制按钮一同出现,那么可以有如同帝3的火枪手造碉堡那样,一个兵种可以且只打几种建筑的基础,或者训练个别单位。
还发现建筑建成后底部地形改变的语句,Daniel修改了这里,从而腾出了“雪地基”作为新地形,同样可以把草地地基也腾出来。如果研究更仔细的话,说不定还可以做出建筑改变地形高度的功能,那么城墙上站人便能更有效地呈现。
Daniel还做了秘籍修改,增加了不少新的秘籍。不少还是从TC中产出特殊单位这样的秘籍,但还有形如“let's revolution!!1!”这样的功能性秘籍——键入后你将开始革命,不可再建造新的建筑,但可以发放堡垒马车。所以,将秘籍作为一个特殊的科技、单位的研究、生产方式也会是不错的选择。

回答一下两位大叔的问题。
如果英雄能被招降的话,那就称不上是英雄了。或许说的是只会回复生命而可被招降的单位?
不先手攻击就不会被攻击的单位现在也是可以有的,那就是类别为35的单位:Dopl/Smoke。它会像普通军事单位一样攻击敌人,但不会被敌人主动攻击。而且,单位图像还有一个属性“彩虹”,可以让单位颜色变为靠近的单位的玩家色。
第三个或许就是我说的单位中训练单位功能,要么是秘籍效果?
第四个,现在确实可以有单治疗、单招降的僧侣单位出现,然而其他单位赋予治疗能力的方法还没有发现,可能是像狂战士回血那样一层窗户纸,也可能是像渔船页面一样无从下手。
至于伤害计算,如果能设置百分比护甲就好了。还有,根据死亡时爆炸的语句,可能可以找出制造伤害的部分,于是可以做出单位不断在身边造成范围伤害的效果。

此外,使用扩展DLL,而不是直接修改EXE,在以后管理中来说可能会更方便。
页: [1]
查看完整版本: 論 004 軟化硬編碼的發展性