啥名呢 发表于 2015-6-14 19:18:41

自己遇到的几个问题

1、除了船坞之外翻页键能否应用到其它建筑上?我试了几次,均以失败告终
把133号的DOCK2复制到全新的单位上,将升级到封建时代科技中的将45号DOCK升级到DOCK2改成升级到新单位,结果是新单位可翻页,133号不可翻页
将133号DOCK2和45号DOCK与兵营彻底替换,结果换成了兵营的133号可以翻页,另一个不可以
可能能否翻页是程序内代码决定的吧?单纯改empires2_x1_p1.dat不能让其他建筑翻页
鼠标指到船坞的翻页键上出现的提示在language.dll中字串是4918,没有找到其它建筑翻页键的提示
2、可否设定海塔驻扎船只?
3、可否设置一个科技,研发后让某单位能像狂战士那样自动回血,而不是设定为英雄模式?
谢谢大家!

我是谁004 发表于 2015-6-14 21:16:36

本帖最后由 我是谁004 于 2015-6-14 21:19 编辑

你好,我来解答楼主所提出的问题。
1、3这两个问题在目前来看,是无法用创建的新单位解决的,因为它们是“硬编码”的功能;换句话说,专门针对133号单位给予两页图标,和两种狂战士给予回血功能。
我已知的硬编码功能包括:
城镇中心的收集资源、敲钟;
磨坊的收集食物;
采矿场的收集金矿、石矿;
伐木场的收集木头;
船坞的收集食物、双页图标;
市场的买卖功能;
两种破坏者、两种爆破船的自杀式攻击、死亡时爆炸;
狂战士、精锐狂战士的生命值回复;
村民的建筑页面;
等等。要想使自己的单位达到相同的效果,可以考虑使用科技,将这些单位升级为自己的单位。比如要制作地雷,就将重型爆破船升级为地雷。

至于问题2,我再回去试试看。

啥名呢 发表于 2015-6-14 23:41:42

我是谁004 发表于 2015-6-14 21:16
你好,我来解答楼主所提出的问题。
1、3这两个问题在目前来看,是无法用创建的新单位解决的,因为它们是“ ...

解释很详细,涨姿势了!那么要想实现兵营啊马厩啊都能翻页,可能就得反汇编代码了吧…
另外再请教一下,在水上修建桥A的中部好像是有bug的,修建多个中部会导致空气墙,两段桥中间不能连通,挺可惜的,而且除了触发无法损坏桥,这个也是由代码决定的吗?

我是谁004 发表于 2015-6-15 00:26:42

啥名呢 发表于 2015-6-14 23:41
解释很详细,涨姿势了!那么要想实现兵营啊马厩啊都能翻页,可能就得反汇编代码了吧…
另外再请教一下, ...

你可以考虑将船坞升级成兵营、马厩,但这样做只能让建筑本身变化而已,里面生产的单位不会变

水桥不了解

还有之前的问题2,我试了试,表示:船只之类的不具有驻扎图标的单位,能够通过设置其能力,进入攻城武器和运输船,但不能进入建筑。所以要想修改得能进入,或者把船只的属性修改为步兵类什么的,或者把海塔修改为攻城武器。但这样的话,船只又可以进入其他攻城武器了。

啥名呢 发表于 2015-6-15 12:10:24

我是谁004 发表于 2015-6-15 00:26
你可以考虑将船坞升级成兵营、马厩,但这样做只能让建筑本身变化而已,里面生产的单位不会变

水桥不了 ...
嗯,升级我试过,但是总体来看还是只能有一个建筑可以翻页,太可惜了
驻扎看来也是“硬编码”了,希望以后有更好的方法修改

cycbobby 发表于 2015-6-15 21:43:03

關於狂戰士那個也不是完全沒有辦法的
1.先將"狂戰士"或"精銳狂戰士"其中一個複製出來(就精銳那個吧),
叫"精銳狂戰士"至於原來那個,先叫"A"吧
2.進行大型修改,把所有跟"A"(原來那個)的相關,包括科技等,都套在"精銳狂戰士"上
3.這樣,"狂戰士"升級會升級成"精銳狂戰士",而不是"A"了
(簡單說你現在多了一個單位"A",而它可是會自動回血)
4.修改A的訓練地點為"-1"令他不可以生產出來
5.做一個你喜歡的新單位(先叫C吧),設定好訓練位置等設置
6.添加兩頂科技,令"A"可以在任何文明中使用,並在黑暗時代就可以自動把"A"升級成C
如此,你就可以得到一個可以自動回復的單位C了

Boston30 发表于 2015-6-15 21:47:45

之前cyc有个贴子,就是把狂战士升级为新的单位,他就会继承狂战士的加血特性了。
你可以通过自动升级来消除狂战士存在过的痕迹(?)

还有破坏者的问题,假如你设置一个单位,生产位置是城堡,生产按钮也一样。
会发现这个单位攻击的时候会立刻死亡,这应该也是个隐藏的硬编码

我是谁004 发表于 2015-6-15 22:11:27

实际上,在游戏里是不可能生产重型爆破船(A+)和精锐狂战士(B+)的。因为研究了相关科技,等于是用A+、B+的数据替换了本玩家的文明的爆破船(A)、狂战士(B)所处的ID的单位,生产出来的A+和B+的ID等同于A和B。而用地图编辑器所放置的A+和B+的ID就是A+,B+。
所以如果添加了新的单位C和D,想让C能够自爆,D能够非英雄回血,可以考虑将A+升级为C,B+升级为D,并且为相应的C和D设置建造地点。不过这样的话,会导致升级A到A+、B到B+会使得A变为C,B变为D。如果A+、B+的升级先于C、D的升级,则不会这样

啥名呢 发表于 2015-6-16 00:06:19

感谢楼上几位大神的回复:)
换而言之可以通过错位升级实现某几种兵种的特殊效果
如果是一条线,民兵-步兵-剑士-双手剑士-冠军剑士,我想实现一个科技使得这条线全部能回血(不管升级到哪个节点),应该就是凑5个(如果英雄里也有狂战士的话)了吧
PS原来自爆人的攻击自动引发爆炸啊……真是悲壮……

cycbobby 发表于 2015-6-16 00:50:06

啥名呢 发表于 2015-6-16 00:06
感谢楼上几位大神的回复:)
换而言之可以通过错位升级实现某几种兵种的特殊效果
如果是一条线,民兵-步兵 ...

你就要把一個精銳狂戰拿來當一個比民兵更低階的"A"了
ps如果A是所有文明都能用,那麼每個文明可以都有他們各自的自我回復單位了

我是谁004 发表于 2015-6-16 14:14:00

本帖最后由 我是谁004 于 2015-6-16 14:15 编辑

实际上还可以考虑这样的一个科技方法:
A升级为A+的科技a
A+升级为C的科技c
先研究a再研究c没事,先研究c再研究a会导致A升级为C而不是A+
那么可以在c科技下额外将一个备用单位X升级为A+,然后另外加一个自动研发的科技x,条件为a被研究后,效果A升级为X,就可以正常了。

啥名呢 发表于 2015-6-17 17:54:24

本帖最后由 啥名呢 于 2015-6-17 18:02 编辑

我又来了,感谢各位的点拨,我想做的是科技一旦研发,无论单位升级到哪个节点,此节点和以后的节点单位均能回血。
先考虑一次升级的情况,比如我想在铁匠铺加个科技,让38号骑士(称为A)→283重装骑士(称为B)这条线能回血。把692狂战士(称为O)分离出来。
那么有2种情况:
先研究升级a,再研究回血①;先研究回血②,再研究升级b

升级a(即209号研究重装骑士):原有条件,103帝王时代、166骑士可用,原有效果A→B,新加禁用②
回血①:条件,a已研发,效果O→B
回血②:条件,帝王时代、骑士可用,效果O→A、禁用a
升级b:条件,②已研发,效果O→B、A→B(为什么还要A→B后面说)
升级ab均放在马厩,图标按钮完全相同,回血①②放在铁匠铺,同ab。升级a和回血②的条件一样,由玩家研发哪个决定发展分支。比如先研发升级a,即前一种情况,则回血①可用,关闭回血②。
接着来考虑二次升级:38骑士(A)→283重装骑士(B)→569游侠(C)
情况如图

升级a(209号重装骑士):103帝王时代、166骑士可用,效果A→B、禁用③
升级b(265号游侠):帝王时代、a已研发,效果A→C、禁用②
回血①:条件,b已研发、骑士可用,效果O→C
回血②:条件,a已研发,效果O→B、禁用b
升级c:条件,a②已研发,效果O→C、A→C(后面说)
回血③:条件,帝王时代、骑士可用,效果O→A、禁用a
升级d:条件,③已研发、帝王时代,效果O→B、A→B(后面说)
升级e:条件,d已研发,效果O→C、A→C(后面说)
同样abcde放马厩,①②③放铁匠铺

累死我了……这个方法非常的麻烦……不知道有没有更好的算法……

像这样中途的升级有一个重大缺陷:研发后已生产的单位不能回血(新生产的可以),估计是生产出来后ID就不会变化了,顶多能换换皮肤而已!!(所以前面O→B之后还要A→B)
所以一劳永逸的方法就是,在A生产出来之前,比如可用之前直接给替换成O,或者凑N个能自动回血的单位。。。。

啥名呢 发表于 2015-6-17 18:48:27

我是谁004 发表于 2015-6-16 14:14
实际上还可以考虑这样的一个科技方法:
A升级为A+的科技a
A+升级为C的科技c


思路很有意思的样子,不过我不知道怎么用在问题里,所以就自己想了一个

关于硬编码,炮舰、投石车、巨投的强制攻击指令应该也是硬编码
还有很奇葩的一点是,把70号房屋改成可驻扎,然后毁掉房屋,驻在里面的人直接死掉了,不会放出来。这个特点463,464,465号房屋都没有,其它建筑也没有,应该也是硬编码
城镇中心敲钟的时候,村民会朝塔类、TC和城堡跑去,即使在旁边放个建筑类的城堡或者可驻扎人的房屋也会视而不见

我是谁004 发表于 2015-6-17 19:43:08

啥名呢 发表于 2015-6-17 18:48
思路很有意思的样子,不过我不知道怎么用在问题里,所以就自己想了一个

关于硬编码,炮舰、投石车、巨 ...

普通的攻城武器是不能强制攻击,但如果单位类型是巨投的话,是可以强制攻击的。不知道是否要设置界面类型为巨投。

另外我试了试,自制的建筑也可以在敲钟的时候被主动驻扎的

啥名呢 发表于 2015-6-17 20:46:06

我是谁004 发表于 2015-6-17 19:43
普通的攻城武器是不能强制攻击,但如果单位类型是巨投的话,是可以强制攻击的。不知道是否要设置界面类型 ...

塔类的会自动驻扎,如果是建筑类的不会,把城堡整个复制给新单位,村民是不理不睬的
把狂战士类型改成了巨投,能强制攻击了,命令属性还是4(军事单位)

我是谁004 发表于 2015-6-17 22:24:04

其实我想到一种升级方法,可以改变单位ID
方法是:
对于原始单位A0、A1、An找出它们的升级科技a1、a2、an,创建它们的镜像单位B0、B1、Bn。
一开始将狂战士K升级为B0,当a1、a2、an研究了的时候,就相应的将K升级为B1、B2、Bn。
而游戏中可见的升级科技x将A升级为X,X是生命值为0的单位,死亡单位为狂战士。

啥名呢 发表于 2015-6-20 23:44:15

本帖最后由 啥名呢 于 2015-6-20 23:52 编辑

我是谁004 发表于 2015-6-17 22:24
其实我想到一种升级方法,可以改变单位ID
方法是:
对于原始单位A0、A1、An找出它们的升级科技a1、a2、an ...
好久不见,这几天挺忙。
的确是个好办法,现在无论是否生产过的都能回血了,赞
按我上面的方法实现的话就是在回血科技后面加上升级到X的科技
比如回血①效果O→C后面加上C→X,②加上B→X,③加上A→X,把未生产的直接用O覆盖,已生产的立即死亡并变成O,X的死亡图像最好去掉
另外有个小bug,就是残血的骑士研发回血科技后升级会立即满血
端午节快乐:)
页: [1]
查看完整版本: 自己遇到的几个问题