关于自制字符串表MOD的若干问题求助。
本帖最后由 mma1996 于 2020-6-25 15:36 编辑为了在地编场景中达成自己的预期效果,必须要修改单位的名字,但是直接使用触发器里面的【改变物体名称】会导致受到影响的单位“独立化”,这一点对于我预设的目标来说,就显得非常恶心。
还好,触发器里面我又找到了一个类似功能的【修改属性】其中可以修改(物体名称ID)。但是使用这个,不能像【改变物体名称】那样直接输入自己想要改变的名字。而是要通过在字符串表里面添加/替换对应的字符串,才能达成目的。
由此,最大的问题来了。翻遍了整个论坛各种相关教程。@newtonerdai 大佬的置顶帖更是反复观摩。
创建字符串表mod的方法
https://www.hawkaoe.net/bbs/forum.php?mod=viewthread&tid=145598&fromuid=351001
完全按照里面的步骤来,自创本地MOD,然后进入游戏,完全没有任何变化。
原先试图采用替换法,即不改变字符串ID,而是直接修改字符串内容,结果没有任何作用,一开始以为是TXT编码不正确,之后采用了各种手段,确保TXT文件是UTF-8编码,甚至包括直接复制官方文件然后改名再添加自己的内容。
还有干脆直接修改resources\zh\strings\key-value\key-value-strings-utf8.txt里面的对应内容。(此举导致启动游戏后变成英文,说明这个修改可能导致该文件不能被正确读取。)
前面的方法完全失败了,又发现newtonerdai大佬的重组资料库-开放隐藏单位这个帖子
决定版重组资料库 - 编辑器隐藏单位全开放 2020.6.15 Beta
https://www.hawkaoe.net/bbs/forum ... 6443&fromuid=351001
其中这一段“二、决定版开放隐藏单位的终极方法
所以要想把所有单位都开放编辑,还能放心地编辑,只有对单位名称和语言文件ID做一次重组,给每个单位都指定一个独一无二的名字和字符串ID。”
正是我想要的效果,能够修改单位在游戏中显示的名字。(实际上我订阅的这个MOD运行完全正常,没有产生任何问题。)
所以,我又顺藤摸瓜,发现了这个如何制作重组资料库的帖子
非完全重组资料库的制作方法,开放隐藏单位
https://www.hawkaoe.net/bbs/forum ... 6091&fromuid=351001
但可惜,同样的手段,带来的并不是同样的结果,这个方法在我这里依然是失败的,在AGE里面修改字符串保存DAT,并制作成本地MOD搭配文本MOD一同使用,载入地图的时候也记得勾选了DAT的MOD,这次单位干脆就直接从地编列表里面消失了,选择之前已经放置在地图上的单位,他们的名字消失了,测试地图,他们的名字变成了内部名称。(即AGE里面的【内部名称】项)。
我曾经怀疑是多个文本字符串MOD,同时调用了用一个文件导致冲突
但是这个推测依然没有足够的证据来证实。虽然这几个MOD文件路径都是resources\zh\strings\key-value\key-value-modded-strings-utf8.txt
不过我自行对比过,它们所使用的字符串ID,并没有相同的,冲突一说,可能性很小。(MOD排序应该是没有问题的,前面两个MOD就是我按照newtonerdai大佬的帖子,自行创建的本地DAT跟文本字符串MOD。)
这一次失败之后,我放弃了替换法,如同这张图所示,选择了新建字符串ID,键入自己想要的内容,然后在地编内通过触发器来调用。但是这依然是徒劳的,结果没有任何改变。
https://www.hawkaoe.net/bbs/forum.php?mod=image&aid=119171&size=300x300&key=c2fa05b9ab4596df&nocache=yes&type=fixnone
走投无路之际,曾试图通过newtonerdai大佬在重组资料库完整版的readme.txt文件里面,所留下的群号,尝试申请加入看看能否寻求得帮助......石沉大海
现在,只能在此发帖求助,进行着最后的等待。
为了这个联机场景,花费了太多的业余时间。AI,自己写出来了。场景地图,终究也是搞定了。触发器,努力去慢慢学习了。之前碰到最为难搞的在联机场景内让所有玩家都能听到BGM的播放,也有了妥协性处理法。
但是这个问题是真的卡死了我的所有道路。总之,如果能有大能解决我的问题,在此先跪谢了。
本帖最后由 凌果 于 2020-6-24 00:24 编辑
我说一点:
不要用windows自带的记事本来编辑,可以用notepad++
用记事本编辑即使仅是直接打开马上保存都可能导致文件开头多出3个“类型识别”字节,从而游戏无法识别。(即UTF-8bom)
为什么说“可能”,因为windows的记事本也是有不同版本的。我用win10-1903的记事本不会添加识别字节,所以可用。
如果是win7或者老一点的win10版本的记事本则会添加识别字节,所以不可用,你应该属于这种情况。
下面是win7的记事本打开文件然后直接保存,前后对比图,可以看到开头多出3个字节:
。 自制场景中修改文本,这位有经验。@Nero§Claudius
非常抱歉,群里目前活跃的群友多是战役作者,可能缺乏mod文本经验,我近期又在准备考试,难得看一次群消息,可能没看到你的问题(可以告诉我你的群昵称吗?我马克一下)
看到你这么认真找资料,实在让我惊喜万分(已经很久没出现过这么主动找资料的朋友了!)你肯定会成一番事业的。我非常欢迎你长期驻扎决定版群,带大家一起玩场景~
我说一下最新的发现吧——
1、modded-strings文件与dat文件放在同一个模组文件夹里时,由于会被认为是数据模组,所以文本是无法生效的。
2、所以modded-strings文件(即文本mod)必须与数据模组分开。
3、文本mod需要重启游戏,或,进编辑器测试任意场景并退出测试——来激活和刷新。这对于单机战役还可以接受,但是对联机场景可能不够亲民。因为对于路人而言,他们进房后获得房主提示,需要退出刷新一次,再回到联机房间才能正常玩场景,会比较麻烦。
4、多个文本mod之间如果调用了同一个字符串ID,那就会取优先级最高的模组的生效。跟第3点一样,当调整模组优先级后,调整并不会立刻生效,需要重启或测试来刷新一次。
5、如果没有激活或刷新文本mod,就进入使用数据模组的编辑器或游戏里,那单位名称当然会消失,转而使用内部名称。至于编辑器直接空掉,其实重组资料库 2020.6.15 Beta的readme.txt里也有提到↓。
6、如果你的中文字符串表文件(key-value-modded-strings-utf8.txt 和 key-value-strings-utf8.txt)里有语法错误,(还是看上面这张图),那这个文件就不会被读取并生效,转而使用英文版本的字符串表文件。如果英文的字符串表文件也出错,那游戏就会直接无法打开。 凌果 发表于 2020-6-23 23:41
我说一点:
不要用windows自带的记事本来编辑,可以用notepad++
非常感谢。我会马上去尝试的。 newtonerdai 发表于 2020-6-24 00:18
自制场景中修改文本,这位有经验。@Nero§Claudius
非常抱歉,群里目前活跃的群友多是战役作者,可能缺乏 ...
对的,这个您之前的教程里面也有提到,我每次对于key-value-modded-strings-utf8.txt进行过修改,都会重新导入本地模组,然后再退出游戏,重新启动它。
但是我这里可能是因为系统的原因,WIN7对于决定版来说确实有点过时了。所以十次退出重进里面,起码有六次左右,都是黑屏/白屏没有响应。这一点对我心态打击是最大的,原本搞这个模组就要反复重启游戏,结果每次验证结果周期太长,我也是是在没办法了,才来论坛里面发帖的。有点急病乱投医的意思。
因为小伙们对于我上一张联机场景挺满意的,所以不想让他们失望。能做好的尽量做好,可惜我现在制作地图使用地编的水平依然很差,只能依靠多多学习来补正。
最后,其实我就是搜索了那个群号,发送了一个入群申请,然后一直没有回应,可能是因为管理员暂时没看到或者有其他事情忙着,不过连续三天制作进度毫无进展,对我来说挫折感比较大,所以可能态度有点急躁了,这点还请原谅。 newtonerdai 发表于 2020-6-24 00:18
自制场景中修改文本,这位有经验。@Nero§Claudius
非常抱歉,群里目前活跃的群友多是战役作者,可能缺乏 ...
数据模组跟文本模组要分开,这个我之前也在另一个帖子里面学习了。
关于mod中文本和图标处理心得
https://www.hawkaoe.net/bbs/forum.php?mod=viewthread&tid=145999&fromuid=351001
我其实第二次尝试,很大程度上就是按照您【重组数据库】的两个MOD照猫画虎一样进行COPY。
不过两位都给我提出了不少新思路,我要继续尝试,看看能不能成功。 mma1996 发表于 2020-6-24 00:37
对的,这个您之前的教程里面也有提到,我每次对于key-value-modded-strings-utf8.txt进行过修改,都会重 ...
开游戏时加载时间长是正常的。我也深受其害(win10)
现在可以通过地编测试来刷新了,不需要重启游戏了。
既然打算长期玩决定版,真的可以考虑备份数据后重装一个win10,会比较稳定,bug也不会那么多。 newtonerdai 发表于 2020-6-24 01:57
开游戏时加载时间长是正常的。我也深受其害(win10)
现在可以通过地编测试来刷新了,不需要重启游戏了。 ...
非常感谢两位的帮助,问题已经成功解决了。不过现在只能大致推测原因确实出在文本编辑软件上。
如同2楼@凌果 的分析,我换了notepad++重新复制一份key-value-modded-strings-utf8.txt进行编写,最终一切运行正常,甚至不需要另外在自创本地DAT文件MOD。
我这里这一次出现的问题,具体原因大概率就是2楼的解答,但是我个人还无法下定论,因为我觉得试验的次数过少,数据不足以完全证明这一点。
之后得空,我还会对此进行验证的。一份用记事本编辑的key-value-modded-strings-utf8.txt
跟一份用notepad++编辑的key-value-modded-strings-utf8.txt,多次对比之后,有着足够的证据,结论自然就出来了。
至于系统的话......等下次换电脑的时候再考虑换系统吧,因为一旦换了WIN10,很多老游戏就没法玩了,我还算是个怀旧党。现在能用就先用着。
页:
[1]