骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

搜索
购买霸主CDKEY 购买战帆CDKEY
查看: 57|回复: 0

[经验与教程] 【战团】设置Agent的face_key(面容)以及type(性别),非Troop

[复制链接]

1

主题

17

回帖

15

积分

随仆

Rank: 1

UID
3349031
第纳尔
138
精华
0
互助
2
荣誉
0
贡献
0
魅力
10
注册时间
2022-4-14
鲜花(0) 鸡蛋(0)
发表于 3 天前 | 显示全部楼层 |阅读模式
大家好,我是之前的士兵花名册模组的作者。这个模组会让普通士兵拥有名字,以及固定它们的面容,让它们像一个持久不变的人,增强代入感。
在1.7版本之前,本模组采用了以下方法:
1.将原生Agent藏到地下。
2.设置troop_face_key、troop_type。
3.此时克隆一个Agent。
4.复原troop。
以此来实现Agent的面部、性别保存及变更的效果。
原因很简单——原版没有agent_get/set_face_key、agent_get/set_type等操作码。
之前的方式是可以做到,但副作用不言而喻:兼容性差、克隆出来的agent不属于任何party会导致红字、占用战场上场人数(克隆体算友军,相当于双倍人数)、性能差等等等等...
在一次偶然的测试中,我发现agent脱下头盔/戴上头盔会导致面部甚至性别更换。
于是我就这样找到了一个破局点:
agent脱下/戴上装备,mesh绝对会随之刷新一次。
但为什么原版的agent通常情况下不会出现脱了装备就变脸变性的情况呢?
这是因为每个agent都有一个”dna“,也就是随机数种子。这个种子会决定它们落在face_key范围里的某个固定点上。
所以我们就可以反其道而行之:
1.首先,在脚本层面自己生成一串face_key,作为士兵的面容。
2.将Troop face_key的上界和下界均设置为上述face_key。以及或者将type设置成我们想要的type。
3.让原生Agent摘下头盔 ,再戴上头盔。
4.此时Agent就会变成我们需要的面容。即使它有dna作为种子也无济于事,因为Troop的facekey的上下界均被设死,它只能落在那个点上。
5.还原Troop的face_key以及Type。
这样,我们仅仅是简单地操作了一下原生的Agent,就实现了设置Agent面容/性别的方法!
这样性能极好,兼容性问题也不会太多。

评分

参与人数 1第纳尔 +10 互助 +1 魅力 +10 收起 理由
Aomine Daiki + 10 + 1 + 10 文章不错,继续努力!

查看全部评分

您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

Archiver|手机版|小黑屋|骑马与砍杀中文站

GMT+8, 2026-5-26 11:24 , Processed in 0.074089 second(s), 19 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表