|
希望有人能帮忙到官方论坛报告一下这些.
这些BUG从0.960开始就存在了.但是一直都没有人细心去发现. 或者发现了不对,但找不到问题的根源. 我一一找到了,并给了解决方法.
不过我的英语不是很好,简单的地方的可以勉强应付. 但是大规模并且有一定难度使用英语起来就有问题了.
首先,罗多克弩兵的升级树还是有问题,缺了rhodok_veteran_crossbowman (罗多克资深弩手 )这一个环节.
rhodok_crossbowman -> rhodok_trained_crossbowman -> rhodok_sharpshooter
罗多克弩手 -> 罗多克熟练弩手 -> 罗多克狙击手
代码片断:
upgrade(troops,"rhodok_crossbowman","rhodok_trained_crossbowman")
upgrade(troops,"rhodok_trained_crossbowman","rhodok_sharpshooter")
应该改为:
rhodok_crossbowman -> rhodok_trained_crossbowman -> rhodok_veteran_crossbowman -> rhodok_sharpshooter
罗多克弩手 -> 罗多克熟练弩手 -> 罗多克资深弩手 -> 罗多克狙击手
代码片断:
upgrade(troops,"rhodok_crossbowman","rhodok_trained_crossbowman")
upgrade(troops,"rhodok_trained_crossbowman","rhodok_veteran_crossbowman")
upgrade(troops,"rhodok_veteran_crossbowman","rhodok_sharpshooter")
改完之后编译,或者改完下面的,一起编译.
-----------------------------------------------------------------------分割线-----------------------------------------------------------------------
俘虏的价格,在各个赎金经纪人那里或者在奴隶贩子拉蒙那里都是50第纳尔.
其实游戏本来设定得没有问题,设定如下:在拉蒙那里卖,一律50第纳尔. 而在赎金经纪人那里卖的价格是: (兵种等级+10)(兵种等级+10)/6.
不过代码写掉了一行,然后就变成全50了.
("game_get_prisoner_price",
[
(store_script_param_1, ":troop_id"),
(assign, reg0, 50),
(try_begin),
(is_between, "$g_talk_troop", ransom_brokers_begin, ransom_brokers_end),
(store_character_level, ":troop_level", ":troop_id"),
(assign, ":ransom_amount", ":troop_level"),
(val_add, ":ransom_amount", 10),
(val_mul, ":ransom_amount", ":ransom_amount"),
(val_div, ":ransom_amount", 6),
##########################
(assign, reg0, ":ransom_amount"),
##########################
(try_end),
(set_trigger_result, reg0),
]),
加入用"#"号引起来的那一行: (assign, reg0, ":ransom_amount"), 就OK了.
这个脚本的返回值是reg0,作者只顾计算俘虏价格,而忘了在最后把计算的结果赋值到reg0. 所以等于白计算了,还是返回的第4行那个reg0的值50.
改完之后编译,或者改完下面的,一起编译.
-----------------------------------------------------------------------分割线-----------------------------------------------------------------------
下面这些就因为代码的错漏而结果看似是汉化出错的问题.
首先是报告菜单里查看角色状态.
module_game_menus.py的343行,开始看:
子项目里面有2个如下:
("view_character_report",[],"View character report.",
[(jump_to_menu, "mnu_character_report"),
]
),
("view_character_report",[(eq,"$cheat_mode",1)],"NPC status check.",
[
(try_for_range, ":npc", companions_begin, companions_end),
(main_party_has_troop, ":npc"),
(str_store_troop_name, 4, ":npc"),
(troop_get_slot, reg3, ":npc", slot_troop_morality_state),
(troop_get_slot, reg4, ":npc", slot_troop_2ary_morality_state),
(troop_get_slot, reg5, ":npc", slot_troop_personalityclash_state),
(troop_get_slot, reg6, ":npc", slot_troop_personalityclash2_state),
(troop_get_slot, reg7, ":npc", slot_troop_personalitymatch_state),
(display_message, "@{s4}: M{reg3}, 2M{reg4}, PC{reg5}, 2PC{reg6}, PM{reg7}"),
(try_end),
]
),
问题来,了两个子项目的ID(红色部分)是一样的. 那么游戏引擎就认定他们是同一个ID. 自然显示出来的内容是一样的,即使实际要表达的内容不一样(蓝色部分).
解决方法是避免子项目的ID相同就可以,怎么改都可以. 只要不相同就可以. 比如第2个的ID改为view_npc_report .
参考汉化片断:
mno_view_npc_report|NPC状 态 检 查。
改完之后编译,或者改完下面的,一起编译.
-----------------------------------------------------------------------分割线-----------------------------------------------------------------------
这个是关于帮助复国者,说服领主的时候的问题. 玩过的都知道有几种情况下,说服成功和说服失败都是一样的话. 也是因为相应项目的ID相同了.
这个转到module_strings.py的1634行开始往下看:
("rebellion_agree_default", ……………………
("rebellion_agree_martial", ……………………
("rebellion_agree_quarrelsome", ……………………
("rebellion_agree_pitiless", ……………………
("rebellion_agree_cunning", ……………………
("rebellion_agree_sadistic", ……………………
("rebellion_agree_goodnatured", ……………………
("rebellion_agree_upstanding", ……………………
("rebellion_refuse_default", ……………………
("rebellion_refuse_martial", ……………………
("rebellion_refuse_quarrelsome", ……………………
("rebellion_agree_pitiless", ……………………
("rebellion_agree_cunning", ……………………
("rebellion_agree_sadistic", ……………………
("rebellion_agree_goodnatured", ……………………
("rebellion_agree_upstanding", ……………………
字符串部分就省略了.上面几条就是说服成功,领主表示同意的. 下面几条是说服失败,领主表示拒绝的. 一眼看可以看出,下面的倒数5个项目的ID(特别注意红色部分)与上面倒数5个相应ID都相同了. 显然这是简单复制,然后再修改,结果改漏了的结果,应该把红色的5个agree改为refuse.
参考汉化片断:
特别注意:虽然代码里要改的是拒绝的5个条目的ID. 但是实际上,汉化中要改的是相应的同意的5个条目的内容.
str_rebellion_agree_pitiless|你 很 幸 运。 我 决 定 加 入 你 了。 希 望 我 的 决 定 不 会 有 什 么 不 测 而 令 我 后 悔。
str_rebellion_agree_cunning|这 是 一 个 很 冒 险 的 决 定, 但 是 仔 细 考 虑 之 后, 我 决 定 了, 我 要 加 入 你。 我 希 望 我 的 决 定 是 明 智 的。
str_rebellion_agree_sadistic|我 决 定 了, 我 将 归 顺 你 的 {reg3?女 主 人:主 人}{s45}。 但 是 {reg3?她:他} 最 好 能 保 证 能 好 好 地 奖 赏 我!
str_rebellion_agree_goodnatured|很 好。 我 认 为 你 的 {reg3?女 主 人:主 人} 将 会 是 一 个 好 的 统 治 者。 所 以 我 将 加 入 你。
str_rebellion_agree_upstanding|就 这 样 了。 我 的 首 要 指 责 就 是 写 信 给 我 的 国 王, 来 弥 补 我 的 不 法 行 为。 我 将 回 到 {s45}身 边, 并 放 弃 我 对 {s46}的 效 忠。 如 果 我 做 错 了 什 么, 愿 上 天 能 宽 恕 我。
改完之后编译,或者改完下面的,一起编译.
-----------------------------------------------------------------------分割线-----------------------------------------------------------------------
这个是关于NPC之间相互抱怨和赞赏的.
打开module_strings.py,从1062行开始往下看:
("npc11_personalitymatch_speech", ……………………
("npc12_personalitymatch_speech", ……………………
("npc13_personalitymatch_speech", ……………………
("npc14_personalityclash_speech", ……………………
("npc15_personalitymatch_speech", ……………………
("npc16_personalitymatch_speech", ……………………
字符串部分就省略了,看红色部分,这个错漏导致这一个项目的ID与1004行的那个项目的ID相同了. 本来这一块应该全都是NPC之间的赞赏(match)的,结果中间莫名其妙多了一个抱怨(clash). 应该把这个clash改为match.
还有一处类似的.
打开module_strings.py,从1079行开始往下看:
("npc12_personalitymatch_speech_b", ……………………
("npc13_personalitymatch_speech_b", ……………………
("npc14_personalityclash_speech_b", ……………………
("npc15_personalitymatch_speech_b", ……………………
("npc16_personalitymatch_speech_b", ……………………
字符串部分就省略了,看红色部分. 原因和上面的一样.也是应该把这个clash改为match.
参考汉化片断:
特别注意:代码里要改的地方对应的汉化实际上是正确. 要改的是代码里相应的本来是正确的地方的汉化.
str_npc14_personalityclash_speech|对 不 起, 长 官。 几 分 钟 前, 我 已 经 陈 述 了 我 的 观 点, 允 许 使 用 皮 鞭 抽 打, 并 偶 尔 使 用 绞 刑 是 让 士 兵 保 持 阵 型 所 必 须 的。 那 些 对 指 挥 官 缺 乏 应 有 的 畏 惧 感 的 家 伙 们 很 有 可 能 就 会 从 战 场 里 逃 跑 掉。
str_npc14_personalityclash_speech_b|那 个 黄 毛 丫 头 {s11}认 为 责 备 我 是 应 该 的。 我 没 有 办 法 在 那 么 多 人 面 前 质 问 她, 我 也 不 愿 意 在 任 何 能 容 忍 这 样 不 顺 从 的 人 呆 在 他 部 队 里 的 指 挥 官 手 下 工 作。 谢 谢 你 允 许 我 讲 出 我 想 讲 的 话。
非官方修正补丁放出.
使用方法:下载附件并解压到 ……\Mount&Blade\Modules 下,覆盖原native文件夹.
[ 本帖最后由 rubik 于 2008-11-17 19:32 编辑 ] |
评分
-
查看全部评分
|