骑马与砍杀中文站论坛

标题: 【流水线】一些新增种族性别的小心得 [打印本页]

作者: 黑暗路西法    时间: 2022-10-29 19:51
标题: 【流水线】一些新增种族性别的小心得
众所周知的,新建种族由于好心t社并没有在skin留一个能控制对话的接口,因此经过我的一顿翻找,modder需要在script、dialog和simpletrigger里搜索troop_get_type来挨个寻找并替换那些需要调整的东西([strike]你说得对,但是troop_get_type是由taleworld...[/strike])经过观察,我发现这种东西分两个调用法,一个是作为局部变量调用作为条件使用,一个是直接存在reg寄存器里当做下方文本中设计性别对话的判断
对于前者我的想法是直接换个判定,添加新增skin需要的性别拓展条件
       (this_or_next|eq, ":is_female", 1),
       (this_or_next|eq, ":is_female", 3),
       (eq, ":is_female", 4),          

例如我mod里的3和4是另外两种女性头模,所以在检查女性的地方把它拓展一下加个this_or_next
另外一种我第一眼看过去觉得是死代码,然后思考了一下之后想着可以换寄存器做了另外一种替换,那里的判定看起来是如果寄存器大于1,全部用女性文本,因此我的做法是在他下面加个判断
        (try_begin),
         (this_or_next|eq, reg4, 2), #undead
         (ge, reg4, 5), #other
         (assign,reg4,0),
        (try_end),

判断如果种族非女性,那么将这个寄存器设定成男性0(?),这样对话的时候就不会用“她”了
最后,鉴于标题是流水线,也为了后来者能够快捷一点的设定这个,在这里分享一下几个ms里再判断性别时用的很多的变量
对于局部变量的,ms里常用的两个局部变量是":is_female"和":type",同时你的剪贴板里应该准备好男女各一份的版本
对于寄存器的,用的最多的是reg3和reg4,也应该准备好男女各一份,总计四份,加条件/替换的时候用win+r有备而来效率会高很多

作者: 112233lyh    时间: 2022-10-29 20:02

作者: 黑暗路西法    时间: 2022-10-29 20:03
112233lyh 发表于 2022-10-29 20:02

给我老拳是吧
作者: 18580214488    时间: 2022-11-18 01:32
大哥 求帮忙 我在外交里新增了8个种族 其中SINK5  7  9  11为女性 但是被系统默认为男  还有女性结婚对象更换新种族后无法结婚 最后小兵更换新种族XO后又会变回默认女性
作者: 黑暗路西法    时间: 2022-11-19 16:47
18580214488 发表于 2022-11-18 01:32
大哥 求帮忙 我在外交里新增了8个种族 其中SINK5  7  9  11为女性 但是被系统默认为男  还有女性结婚对象更 ...

不是我这帖子不就说的这个事吗
作者: 18580214488    时间: 2022-11-19 23:12
黑暗路西法 发表于 2022-11-19 16:47
不是我这帖子不就说的这个事吗

就是不会弄啊 我不会PY
作者: 18580214488    时间: 2022-11-19 23:14
黑暗路西法 发表于 2022-11-19 16:47
不是我这帖子不就说的这个事吗

我QQ2765091623 能帮我看下不 还有别的小问题请教 比如雇佣的女官不能用魔球换装
作者: 黑暗路西法    时间: 2022-11-20 12:43
18580214488 发表于 2022-11-19 23:12
就是不会弄啊 我不会PY

/remake
作者: 18580214488    时间: 2022-11-20 17:22
黑暗路西法 发表于 2022-11-20 12:43
/remake

我是改的外交策略 除了平时增加的种族骨骼外 还有XX时的种族骨骼
作者: wei1786    时间: 2023-1-21 21:31
新增种族兵种是不是需要写个触发器,我看兵种头文件里只有默认的三种
作者: 路见不平拔刀侠    时间: 2023-1-21 23:58
wei1786 发表于 2023-1-21 21:31
新增种族兵种是不是需要写个触发器,我看兵种头文件里只有默认的三种

不需要,但是需要在h开头那文件里定义。
作者: wei1786    时间: 2023-1-22 09:13
路见不平拔刀侠 发表于 2023-1-21 23:58
不需要,但是需要在h开头那文件里定义。

谢了,刚试了下确实可以,之前看见个do not edit就没敢改
作者: IAMENZOooooo    时间: 2024-2-26 02:38
wei1786 发表于 2023-1-22 09:13
谢了,刚试了下确实可以,之前看见个do not edit就没敢改

你好 我想问下新增种族之后如何自己使用呢?
作者: 秦雨子瀾    时间: 2024-8-5 23:40
vocal 我怎么才看到你的帖子。。
前几天遇到自定的华夏人,发现跟卡拉迪亚的女人有生殖隔离
问了个这个 https://bbs.mountblade.com.cn/thread-2106353-1-1.html 后面才知道是 skins 的问题……

不过至今也没有很好的解决,这些代码真的太 hardcode 了……
想找个一劳永逸的方法——新增一个类似 get type 的 troop_get_gender 一样的operation,并且能实现修改这个传入的 <destination> 的值,而不是污染全局变量 reg0~reg65 ..
尤其还有使用 ":is_female"这种的恶心玩意…… 这代码是真丑啊




欢迎光临 骑马与砍杀中文站论坛 (https://bbs.mountblade.com.cn/) Powered by Discuz! X3.4