- 好友
- 4
- 在线时间
- 0 小时
- 最后登录
- 2025-9-16
见习骑士

- UID
- 3199602
- 第纳尔
- 1162
- 精华
- 0
- 互助
- 36
- 荣誉
- 0
- 贡献
- 1
- 魅力
- 227
- 注册时间
- 2020-9-4
 鲜花( 60)  鸡蛋( 0)
|
本帖最后由 奥杜因阿卡托什 于 2025-9-16 22:37 编辑
最近开始着手解决一个问题,就是我女性引入了新发型,总数达到了大概四十个,在【狂人的知识】专属脸部与skin的几个坑 - MOD制作技术区 - 骑马与砍杀中文站论坛 - Powered by Discuz!这个帖子里我进行的测试来看,不能超过20个,但这个限制具体是由于什么导致的呢?今天排查了一天,终于找到了元凶首恶——两个“老朋友”脚本。
这两东西
和其中的
- script_age_troop_one_year
复制代码 早在为什么领主力敏属性会比设置的少? - MOD制作技术区 - 骑马与砍杀中文站论坛 - Powered by Discuz!里就讨论过一次了,它们会按照领主设定的年龄,每岁概率减少一点力和敏,导致我几千岁的尖耳直接成0力0敏婴儿。当时给它们减力敏的功能屏蔽了,没想到还有第二个坑。
这两个脚本中用了一个叫troop_set_age的操作符,看着像是设置年龄,但其实年龄是个slot,这东西是用来设置face key中的那个年龄选项的。然而,face key是个非常复杂精密的运算体系,还有些位移之类的操作,这操作符和发型冲突,直接导致无法采用20个以上发型的情况出现。
虽然没有证实,但这脚本可能还导致了第三个问题,就是每次开档时,它都要循环极高次数,比如你有300个30岁领主,它就要计算300×30次face key,而face key又十分的精密,不得不怀疑这东西对坏档脸负有责任。
所以在此,我的建议是直接删。下面给出优化方法。
首先在module_constants.py里,删除
- slot_troop_age_appearance = 19
复制代码 这个slot纯粹是辅助这两脚本遍历用的,属于从犯,删了还能节省一个珍贵的troop slot,用来干别的事情。
然后,在脚本里找到
- (call_script, "script_init_troop_age", ":cur_troop", ":age"),
复制代码 换成
- (troop_set_slot, ":cur_troop", slot_troop_age, ":age"),
复制代码
用到了这个的地方应该有五处,全部如法炮制。不要怕出bug,反正最终决定年龄的其实就是slot_troop_age而已。
最后将这两个脚本删除,除恶务尽。编译之后发现它们没有在其他任何地方用过,进入游戏后,年龄也能正常显示,如图所示。
就是纯坏。
|
-
|