- 好友
- 0
- 在线时间
- 158 小时
- 最后登录
- 2020-9-17
囚犯[禁止访问]
- UID
- 2114
- 第纳尔
- 160
- 精华
- 1
- 互助
- 0
- 荣誉
- 17
- 贡献
- 0
- 魅力
- 0
- 注册时间
- 2007-1-20
鲜花( 0) 鸡蛋( 0)
|
参照赤膊上阵的新手攻略之教你给雇用兵装备DIY你自己的卫队的帖子,学着修改了NPC的对话,现在我的M&B 0.808原版一共可以招到6个NPC,除了原有的2个(马尼德和伯查)之外,我还新收了5个,就是出生地(禅达)酒馆里面的谢瑞娜、喀拉杜斯、德朗顿和雅米拉(修改了雅米拉的出生位在禅达的酒馆)。
现在我就先把补丁文件发上来,修改方法整理后再写出来。
1月27日更新:
81楼主有朋友移动监狱报告说谢瑞娜他们3个人,如果不是一开始就和他们对话就无法加入。
就是说刚开始游戏时和他3个对话,可以加入,但如果玩了一段时间之后再去和他3对话就无法加入了
我试了2次都不行,刚开始可以加,玩了一会主角7级时再去对话就不行了。
我测试了一下,的确存在这样的问题,但好像只是谢瑞娜和贾巴拉两人,我稍作了调整81楼的朋友可以试试,无须重新开档。
1月26日更新:
1、终于修正了打劫掠者、遇到响马和黑旗还有海盗就C++错误跳出的Bug。
在此要谢谢stylemo的指点,问题还真就出在“conversation.txt里第二行的那个数字,那个好象记得有人说是总数多少条。”上面,由于添加了不少对话,导致对话的总数超出了原来文本限定的814条,造成与劫掠者、响马和黑旗还有海盗时那些对话内容被排在了814之外,所以当游戏中遇到劫掠者、响马和黑旗还有海盗时游戏找不到这些对话而产生了C++错误。
2、巴隆· 罗尔夫和贾巴拉这两个家伙终于又重新归队了,还呆在商店里,如果谁知道四方的出生位,烦劳告知一声,我想把他们移到那里。
3、有关游戏中和商人对话产生C++错误的问题,大家可以参照第1条,另外请确认你玩的是0.808原版,最新发布的典藏版我也测试过了,也没有遇到有些玩家提到的这个问题,不信可以把游戏中的其他MOD暂时转移到其他目录下试试。
4、在此谢谢大家的支持。
1月25日凌晨更新:
经过一晚上不懈努力,增加了可招俘虏补丁(选择与俘虏交谈),无须重新开档,这回同志们不必再为招暗黑发愁了。
贴图见4楼
1月24日更新:
修正了谢瑞娜、喀拉杜斯等NPC在离队之后无法归队的Bug(无须重新开档)。
1月23日更新:
1、修正了16楼zerobomb提到的遇到海寇和响马交战前的对话没有选项了,游戏卡死的Bug,因为自己疏忽大意,漏掉1句对白,真的很抱歉,现在应该没有问题了,大家试试看。
2、又添加另外2个NPC(巴隆· 罗尔夫和贾巴拉),由于酒馆和广场都没出生位了,又没有深入摸索,不知道四方的出生位数据,只好暂时把他们俩给挪到禅达的商店里去了,巴隆· 罗尔夫在2楼的楼梯口,贾巴拉在里屋,大家下了以后可以自己改。如果20楼的f16diy愿意帮忙的话,帮我把这两个家伙的出生位改到四方去,再传上来,谢谢!)
安装方法:
1、将解压后的conversation.txt和troops.txt文件拷贝到游戏目录\Modules\Native文件夹下,请注意备份。
2、需要重新开档,因为修改了troops.txt文件。
注意事项:
1、谢瑞娜、喀拉杜斯要到第2次对话的时候才会出现邀请加入选项。
2、这些文件是在M&B 0.808汉化原版的基础上改出来的,游戏我才上手一周,这两天才学着改出来的,目前运行还没出现什么问题,大家也可以测试一下,有问题大家再交流。
另外要谢谢stylmo提醒,修正了一个选择完邀请加入一次就可以了.要不然....每邀请一次,队伍人数就多一人,请10次队里数就10人了(实际就一人)...的Bug。
修改方法(慢慢更新):
一、先说一个比较简单的,就是修改出生位,其实我也是只知道一点皮毛+运气,在这里写出来,也是希望能够让大家得到一点启发,找出更多的乐趣。
其实修改出生位很简单,就在troops.txt文件里,举例雅米拉:
原文件:
trp_ymira Ymira Ymira 17 0 0 1
86 0 155 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0
5 5 4 4 2
23 31 28 31 28 22 0
2166786 0 0
2 126472652594038104 0 0
其中第1行16 0 0 1中16后面的那个数字0就是出生位,17代表性别(16男、17女)。
我们再参照马尼德的出生位16 262164 0 1,262164是10进制数,用FPE2000或其他工具转换成16进制就是
14 00 04 00,(但目前规律我还没搞清楚,由于机子较慢,改啊、测试很累,希望大家可以去摸索,然后把经验拿出来跟大家分享)。
同样我们看看谢瑞娜的出生位17 327700 0 1,327700转换成16进制就是14 00 05 00
再来看德朗顿的出生位16 131092 0 1,131092转换成16进制就是14 00 02 00
再看喀拉杜斯的16 196628 0 1,14 00 03 00
然后我们来参照修改雅米拉的出生位,把16进制设为14 00 06 00,转换成10进制就是393236,(注意输16进制的时候要倒过来00 06 00 14),再进行修改,重新进入游戏,开新档,我们就可以发现雅米拉站在出生地(禅达)的酒馆里面了,当然要招她还必须跟她进行对话,好像我的0.808原版文件中雅米拉的对话不完整,游戏会卡住,所以还必须修改对话,也就是conversation.txt文件,至于怎么改,我后面慢慢再讲,这个比较复杂一点。
各位玩家好,由于这些天一直忙于修补Bug,可谓是拆东墙,补西墙,搞得不亦乐乎,但愿后续不要再有新的问题,汗……所以也就一直将整理有关conversation.txt对话文件修改的事情给落下了,然后今天补上一些,希望还能对大家有所帮助。
有关conversation.txt文件对话内容的一些基础知识大家可以参照我上面转贴的Mod info: conversation.txt一文,虽然是英文的,但是不难,基本看得懂,归纳得也比我细,此外,我在这里还要纠正上次我发在27楼的那篇帖子里有关这方面内容的几个错误,并对此而误导大家说声抱歉:
1、上次我提到过“每个段落都有它的起始句和结尾句,ID0是开头、6是结尾的标志”,但是有些单独的句子,它自成段落,它就不一定非要以6结尾,有可能接的是下一个句子的ID,这点大家可以在浏览对话的时候留意观察一下,后面有碰到的话我也会点出。另外还有些跟特定人物对话的时候,它也未必就是以ID0开头,例如在跟俘虏对话的时候,它的ID就是14,这个后面应该也会提到,这里先略过,大家有兴趣的话,可以搜索玩家和麽麽茶或跟俘虏的对话来看看。
2、上次我也提到“对话都是以对话双方一人一句(以dlga_开头)的形式,例如A-B、A-B-A等,在这里面不可能出现一个人会连说2到3句的情况”,其实不然,这些天我在修改过程中也发现其实一个人是可以连说2到3句话的。
好的,让大家久等了,不知诸位在这些天弄清楚对话段落和句子结构的基础上是否有了心得,下面我就结合自己所摸索修改conversation.txt文件的一些思路和方法跟大家来分享一下,其实说来说去,我会的也就一招——招人,从招NPC到招俘虏,所以让我写这些东西自己还感到有点惭愧,只求自己能够做到抛砖引玉,希望大家能够将其发扬光大,从中发现出更多的乐趣:
首先来谈谈我之前的一些思路,由于改游戏是我个人的一点小兴趣,坦白讲是因为机子配置不是很好,所以就喜欢改一改来提升一点乐趣,从最初的FPE或是从网上搞一些修改器、编辑器之类的,到后来玩罗马全战才发现原来游戏可以这么改的,通过编辑文本文件来实行,记得当时也沉迷了好一阵子,咦,好像有点扯远了,言归正传,当初游戏刚上手,也是从论坛搜罗了一大堆偏方来改,爽了几把,然后偶然间有一天在论坛看到了赤膊上阵的新手攻略之教你给雇用兵装备DIY你自己的卫队的帖子,发觉说很新鲜,也受到一些启发,只是通过简单地修改了对话里的一个小参数,就可以达到不一样的效果,conversation.txt文件应该很有内涵。于是乎,我也翻出对话文件来看,但是那时看了conversation.txt文本,毫无头绪,E文又烂,然后就拿出dialogs.csv文件来对照,结果无意中看到几句台词:
dlga_would_you_like_to_jo|你 愿 意 加 入 我 吗?
dlga_allright_i_will_join|好 吧 我 会 加 入 你。
dlga_no_i_want_to_go_on_m|不, 我 想 自 己 一 个 人。
脑子里突然灵光一现,凭着自己这两年一些不成器的业余修改经验,下意识地觉得这句话应该很有前途,毕竟游戏中可招的NPC太少,总感觉自己势单力薄,于是乎我就从conversation.txt文本找到了对应的这几句对白:
dlga_would_you_like_to_jo 69631 420 0 Would_you_like_to_join_me? 423 0
dlga_allright_i_will_join 4095 423 2 20036 285212672 0 2 31 285212672 0 0 Allright_I_will_join_you. 6 2 20100 285212672 0 0 10610 150994944 285212672 1
dlga_no_i_want_to_go_on_m 4095 423 0 No,_I_want_to_go_on_my_own. 6 0
第一步,起步篇
其实修改就在于勇于实践,当然我也没闲着,于是谢瑞娜就成了我的第一个下手的目标,找出对话的内容(节选):
dlga_hello_{playername}. 77 0 0 Hello_{playername}. 126 0
dlga_can_you_repeat_what_ 65613 126 0 Can_you_repeat_what_you_told_me_about_damage_types? 123 0
dlga_i_have_to_leave_now. 65613 126 0 I_have_to_leave_now._Good_luck_to_you_in_the_games. 6 0
刚开始因为没经验,也不敢乱改,只是把对话内容进行替换,来个移花接木,接着我的第一次尝试就新鲜出炉了:
dlga_hello_{playername}. 77 0 0 Hello_{playername}. 126 0
dlga_would_you_like_to_jo 69631 420 0 Would_you_like_to_join_me? 423 0
dlga_allright_i_will_join 4095 423 2 20036 285212672 0 2 31 285212672 0 0 Allright_I_will_join_you. 6 2 20100 285212672 0 0 10610 150994944 285212672 1
dlga_i_have_to_leave_now. 65613 126 0 I_have_to_leave_now._Good_luck_to_you_in_the_games. 6 0
然后比照原文,就发现说有些数字不一样,然后再仔细观察了对话的上下文,总结出了一些简单规律,也就是我们前面提到的一些基础的东西,然后我就做了如下的调整:
dlga_hello_{playername}. 77 0 0 Hello_{playername}. 126 0
dlga_would_you_like_to_jo 69613 126 0 Would_you_like_to_join_me? 127 0
dlga_allright_i_will_join 77 127 2 20036 285212672 0 2 31 285212672 0 0 Allright_I_will_join_you. 6 2 20100 285212672 0 0 10610 150994944 285212672 1
dlga_i_have_to_leave_now. 65613 126 0 I_have_to_leave_now._Good_luck_to_you_in_the_games. 6 0
接着保存,进入游戏,满怀期待地就来到了酒馆找谢MM进行对话,结果修改的对话出现了,谢MM加入队伍,然后谈话一看属性,好家伙,42级,当时有点小兴奋,就屁颠屁颠的带上谢瑞娜、马尼德和麽麽茶3人上大地图找人火拼,结果自己功力不够,被人打了个半残惨血逃回了酒馆,一进门就差点撞进谢瑞娜的怀里(这外形、这体格,估计跟钢板一样),让我大惊失色,谢MM不是在我队伍里吗,这么这里还有,难道魔兽里的高等技能熊猫分身她也会,还是游戏里也出现了所谓的灵异事件,不禁背后冒出一丝凉意,然后壮起胆子上前跟她套近乎,发现说对话的内容还是跟上面的一样,于是意识到应该是没有修改好,然后环视了一下四周,发觉没有看到小马和阿茶的人影,嘿嘿,有眉目了,然后我们又翻出和小马的对话,找到了下面的这句话:
Well,_look_at_this._I_feel_that_my_luck_is_starting_to_turn_back_after_all._I_am_at_your_service,_friend._Let_us_hit_the_road_and_discover_what_adventures_await_us. 6 5 10531 0 67108961 0 10530 83886160 67108961 0 10203 83886160 0 0 10251 83886160 0 0 20033 33554575 1 0
大家是否还有印象,当小马在说这句话的时候,屏幕左下方会显示几条信息:
玩家失去棉袍
马尼德得到棉袍
马尼德加入队伍
PS:当然我也是后来留意这些信息才知道找出这句对话的。
于是乎我又意识到10531 0 67108961 0 10530 83886160 67108961 0 10203 83886160 0 0 10251 83886160 0 0 20033 33554575 1 0 这些数字应该类似于游戏的指令操作,然后注意到在5这个数字的位置上,一般的句子都是0,而且后面没有跟一长串的数字(字节),我再数了数这些字节,一共是20个,除以5,是否表示4个字节就构成一道指令,带着这个疑问我对照了其他的一些句子,并得到了证实,进而我的发现又往前迈了一小步。
然后我又仔细观察了这些指令参数(当时我对这些指令参数具体代表什么,会起什么样的效果完全一无所知,反正是摸着石头过河),发现10531 0 67108961 0 和10530 83886160 67108961 0 这两个指令中都出现了一个数字67108961(同样在10203 83886160 0 0 和10251 83886160 0 0 这两个指令中也同样都出现了83886160),然后联想到信息玩家失去棉袍,马尼德得到棉袍,是否说67108961就代表着是棉袍,于是我用FPE2000将67108961转换成16进制为61 00 00 04,再把61转换成10进制为97,然后对照论坛f16fiy发的骑马砍人原版物品编号表,发现代码97果然就是棉袍。然后我也把83886160转换成16进制为50 00 00 05 ,再把50转换成10进制为80,然后一看对话,80不正是马尼德说话的ID吗,哈哈,我又取得了一点进步,这就表明10203 83886160 0 0 和10251 83886160 0 0 应该是马尼德加入队伍的指令参数,但是具体每一条有什么含义我还不清楚,没关系,可以一个个来试,通过测试我知道10203 83886160 0 0 是表示加入队伍,那么另一个我想就应该是移除人物形象的吧,至于另外一条指令20033 33554575 1 0 ,我暂时还没头绪,不过先改再说,于是我又将对话改成:
dlga_hello_{playername}. 77 0 0 Hello_{playername}. 126 0
dlga_would_you_like_to_jo 69613 126 0 Would_you_like_to_join_me? 127 0
dlga_allright_i_will_join 77 127 0
Allright_I_will_join_you. 6 3 10203 83886157 0 0 10251 83886157 0 0 20033 33554575 1 0
dlga_i_have_to_leave_now. 65613 126 0 I_have_to_leave_now._Good_luck_to_you_in_the_games. 6 0
然后保存,重新游戏,这次对话达到预期,谢MM终于不再出现酒馆里了,小有成就。然后趁热打铁,把喀拉杜斯的对话也如法炮制,由于德朗顿这家伙软硬不吃,自始至终就只有一句话“别惹我”,改了几次都没有成功,现在我都忘了当时问题出在哪里,没辙,暂时放弃,只是按照上面的修改方法将其挂在了谢MM的对话下面,感觉有些不伦不类的,但也没有问题,于是修改暂告一段落。
第二天我又回论坛浏览赤膊上阵的新手攻略之教你给雇用兵装备DIY你自己的卫队的帖子,想看看LZ是否有发布新的东西或是其他玩家能否有新的发现可以相互交流一下,结果看到了stylemo在问如何找到(或改出来)雅米拉?嘿嘿,果然我的研究是很有前途的,心下暗爽。然后下来,通过dialogs.csv文件里面跟雅米拉MM的对话内容找到conversation.txt的相应句子,进而确定其说话的ID,然后也把她挂在了谢MM的对话下面,然后我就在stylemo的帖子里发布了我的第一个半成品。
第二步,进阶篇
就在我的半成品放出来没过多久,细心的stylemo就发现了一个问题,就是在跟NPC对话的时候,如果不断
的选择邀请加入,部队中同伴的人数就会增加一个,但实际就一人。于是我就在想应该如何在对话选择邀
请加入后让这句话不在出现,这样就不会出现说重复邀请加入的问题,讲到这里,我想大家应该都会注意
到游戏中和NPC对话的一个细节,就是在和一些NPC对话的时候,例如谢MM和老喀,在跟他们第一对话的时
候,他们都会自我介绍并告诉玩家一些常识和对战技巧,但是当我们后面再找他们谈话的时候,有些对话
就没有重现,从中我们得到了启发,以谢MM的对话为例,我们来看一下跟她开场的第一句话:
dlga_hello._you_are_one_o 65613 0 1 31 33554594 0 0
Hello._You_are_one_of_the_fighters_in_the_games_aren't_you? 117 1 20033 33554594 1 0
这里有2条命令
31 33554594 0 0 表示定义这句话的编号为33554594,就好像我们给东西上标签,做编号一样,以便于识
别。可以将其比喻成设定一个开关。
20033 33554594 1 0 表示说完这句话后就让编号为33554594的句子不在出现。就等于把前面设定的开关
给永久关闭掉。
此外还有一条命令,就是如果某句对话中出现31 33554594 1 0 的命令参数,表示说如果编号为33554594
的句子在对话中出现的话,就会激活该句对话,就好像一个触发开关,可能这个命令现在理解起来比较抽
象,没关系,后面我会用一个实例来解释的。
加之昨天看了老外写的一篇Mod info: conversation.txt的帖子,印象就更深刻了,文章里面提到,前面的命令是在说话之前执行,后面的命令是说完话了之后执行。
因此,跟谢MM的那几句对话现在就被我改成了:
dlga_hello_{playername}. 77 0 0 Hello_{playername}. 126 0
dlga_would_you_like_to_jo 65613 126 1 31 33554483 0 0 Would_you_like_to_join_me? 127 0
dlga_allright_i_will_join 77 127 0
Allright_I_will_join_you. 6 3 10203 83886157 0 0 10251 83886157 0 0 20033 33554483 1 0
注意:编号33554483必须是唯一的,不能和其他句子的重复,而且还要在游戏中进行测试,看该编号是否
有效,例如我之前用了33554484、33554485,结果一个无效(不出现邀请加入的对话),一个就是我27日
更新修正的Bug,估计是有其他文本调用了这些编号。
这样基本上如何招NPC的对话修改就结束了,其实也很简单,关键在于掌握这几条命令,你可以替换也可
以添加,但必须先搞清楚对话的段落和结构,这样我们好把握要将对话内容安插到哪个节点。
PS:凡是游戏中可以对话的NPC人物,都可以参照上面的做法邀其加入,甚至无聊的时候可以通过修改这
些对话来邀请各个城堡里的伯爵和国王,组成一个豪华旅游团。
而且依我的推断,可以结合troops.txt文件,我们还可以自己设定NPC人物,然后通过对话来加入,关键
在于设置出生位和说话人ID(这个目前我还不是很清楚,说话人ID是如何来分配的),因此留待其他玩家
去发挥。
未完待续……
第三步,Bug总动员
转贴(不知之前是否有人贴过):
今天无意逛了逛M&B的论坛:http://forums.taleworlds.net/index.php,结果搜索到了一些不错的帖子,我把它们转贴出来,供大家参考。(可惜都是英文,期待完整翻译)
Mod info: conversation.txt(归纳得比我细,大家可以看看,这两天我会整理几个自己修改的实例上来和大家交流)
http://forums.taleworlds.net/index.php/topic,1696.0.html
Mod info: Operations(游戏中的一些操作命令,包括conversation.txt对话文件里面的)
http://forums.taleworlds.net/index.php?topic=1516.0.html
Mod info: troops.txt
http://forums.taleworlds.net/index.php/topic,1693.0.html
Mod info: item_kinds1.txt
http://forums.taleworlds.net/index.php/topic,1391.msg11920.html#msg11920
Mod info: triggers.txt
http://forums.taleworlds.net/index.php/topic,1697.0.html
Mod info: towns.txt(现在好像是parties.txt文件)
http://forums.taleworlds.net/index.php/topic,1682.0.html
party_templates.txt
http://forums.taleworlds.net/index.php/topic,1695.0.html
这些资料虽然是以前版本的,但对于我们应该还是很有研究和学习价值的,老外老早就写出这些东西了,毕竟人家MOD都出了好几个,我们国人要加油啊。要我之前可以看到这些帖子的话,我想可以少走不少弯路,真是闭门造车。
[ 本帖最后由 dannis211 于 2007-1-29 19:52 编辑 ] |
评分
-
查看全部评分
|