骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

搜索
购买CDKEY 小黑盒加速器
查看: 2643|回复: 6

[求助] 关于slot_party_ai_substate

[复制链接]

23

主题

337

回帖

298

积分

见习骑士

Rank: 3

UID
3189500
第纳尔
2704
精华
0
互助
26
荣誉
6
贡献
20
魅力
437
注册时间
2020-6-13
鲜花(67) 鸡蛋(0)
发表于 2022-3-10 22:56:41 | 显示全部楼层 |阅读模式
一直没搞懂slot_party_ai_substate这个有什么用, 目前就看到0,1,2三种数值。哪位大佬知道的告诉我一下。
B站个人空间:https://b23.tv/rZhCYpH

23

主题

337

回帖

298

积分

见习骑士

Rank: 3

UID
3189500
第纳尔
2704
精华
0
互助
26
荣誉
6
贡献
20
魅力
437
注册时间
2020-6-13
鲜花(67) 鸡蛋(0)
 楼主| 发表于 2022-3-13 00:16:43 来自手机 | 显示全部楼层
自己顶一下。来自: Android客户端

48

主题

395

回帖

293

积分

见习骑士

Rank: 3

UID
1941209
第纳尔
2850
精华
0
互助
26
荣誉
3
贡献
0
魅力
38
注册时间
2014-5-5

战团正版勋章维京征服正版勋章

鲜花(130) 鸡蛋(0)
发表于 2022-3-13 14:02:31 | 显示全部楼层
这个slot_party_ai_substate表示该领主部队在领主决策(烧村、攻城、伴随、撤退、防守等)下的特定行动状态,起到判断下一步做什么的作用。

举个例子:
当领主决定去烧村时,会先用 npc_decision_checklist_party_ai 得到领主的决策,即烧村,返回reg0=(烧村的指令spai_raiding_around_center)和reg1=(某个倒霉村子a_village)
然后用 party_set_ai_state 给该领主部队赋值,相当于领主有了决策后给部队下令去烧村:
slot_party_ai_state=spai_raiding_around_center(reg0)
slot_party_ai_object=a_village(reg1)
同时:
slot_party_ai_substate=0(烧村命令下达后,部队的初始状态)

接着,simple_triggers会调用process_hero_ai,此脚本会根据领主部队slot_party_ai_substate的值去决定该烧村部队怎么行动,是开始烧村、正在烧村、还是烧完村要走了:

slot_party_ai_substate=0时:
领主部队会以ai_bhvr_travel_to_point的动作移动到a_village附近,并且赋值slot_party_ai_substate=1

slot_party_ai_substate=1时,表示领主部队正在前往该村,有三种情况:
a 刚到达村子附近,村子还没被烧,于是开始烧村:用village_set_state这个脚本将a_village的slot_village_state从svs_normal改为svs_being_raided(正被掠夺)。
b 开始烧村后,由于烧村需要一定的时间,领主部队会在那里等待(表示正在烧村),而此时simple_triggers会调用process_village_raids脚本,用a_village的slot_village_raid_progress来操作这个村子被烧的程度。而当这个slot值大于100时,表示烧村完成。此时会将a_village的slot_village_state从svs_being_raided改为svs_looted(已被掠夺)。
c 烧村完成,领主部队还原为初始状态,即赋值slot_party_ai_substate为0。由于烧的村子状态已经改变:svs_normal>svs_being_raided>svs_looted,因此领主部队不会循环烧村,而是根据npc_decision_checklist_party_ai等脚本进行下一决策和行动。


领主其他行动的细节也类似,具体可以详查代码。要想操纵某部队特定行动,同样可以参考上面涉及的脚本。

评分

参与人数 1第纳尔 +20 互助 +1 收起 理由
Aomine Daiki + 20 + 1 乐于助人!

查看全部评分

鲜花鸡蛋

apk43  在2022-3-13 14:14  送朵鲜花  并说:我非常同意你的观点,送朵鲜花鼓励一下
《大冒险家》交流群 490205963 爱发电主页 https://afdian.net/a/dmxjshang

23

主题

337

回帖

298

积分

见习骑士

Rank: 3

UID
3189500
第纳尔
2704
精华
0
互助
26
荣誉
6
贡献
20
魅力
437
注册时间
2020-6-13
鲜花(67) 鸡蛋(0)
 楼主| 发表于 2022-3-13 14:15:04 | 显示全部楼层
本帖最后由 apk43 于 2022-3-13 14:16 编辑
nimoadna 发表于 2022-3-13 14:02
这个slot_party_ai_substate表示该领主部队在领主决策(烧村、攻城、伴随、撤退、防守等)下的特定行动状态 ...

感谢大佬解答,一下子就懂了许多!可以理解为相当于AI状态的子状态吧。
B站个人空间:https://b23.tv/rZhCYpH

23

主题

337

回帖

298

积分

见习骑士

Rank: 3

UID
3189500
第纳尔
2704
精华
0
互助
26
荣誉
6
贡献
20
魅力
437
注册时间
2020-6-13
鲜花(67) 鸡蛋(0)
 楼主| 发表于 2022-3-13 14:48:08 | 显示全部楼层
本帖最后由 apk43 于 2022-3-13 15:05 编辑
nimoadna 发表于 2022-3-13 14:02
这个slot_party_ai_substate表示该领主部队在领主决策(烧村、攻城、伴随、撤退、防守等)下的特定行动状态 ...

还有两个问题也困惑了我很久,party_set_flags中的pf_default_behavior的值和party_set_ai_initiative这个值有什么意义呢?
party_set_ai_initiative是设置队伍攻击性,party_set_flags中的 pf_default_behavior有什么意义?
B站个人空间:https://b23.tv/rZhCYpH

48

主题

395

回帖

293

积分

见习骑士

Rank: 3

UID
1941209
第纳尔
2850
精华
0
互助
26
荣誉
3
贡献
0
魅力
38
注册时间
2014-5-5

战团正版勋章维京征服正版勋章

鲜花(130) 鸡蛋(0)
发表于 2022-3-13 17:05:53 | 显示全部楼层
apk43 发表于 2022-3-13 14:48
party_set_ai_initiative是设置队伍攻击性,party_set_flags中的 pf_default_behavior有什么意义?

对,substate字面意思就是“子状态”。
其他的这么说吧:

party_set_aggressiveness 设置部队侵略性,即判断是否要攻击另一部队。值越高越想攻击,甚至即使打不过。
party_set_courage 设置部队勇气值,即是否要逃避另一部队。值越高越自信,甚至即使会被吊打。
party_set_ai_initiative 设置部队主动性,即能攻击另一部队时,它影响此部队进行追击的时间和距离,比如玩家接近敌对部队时,它若在跟随元帅行动,则只会追击玩家一小段距离或者甚至不追击。
pf_default_behavior 这个标签设置为1时,部队会一直执行当前指令,比如一直镇守,一直保持移动,而无视周围敌军,即便有补刀机会或被四面楚歌,它依然机械的执行当前指令而不为所动。

鲜花鸡蛋

apk43  在2022-3-13 17:47  送朵鲜花  并说:我非常同意你的观点,送朵鲜花鼓励一下
《大冒险家》交流群 490205963 爱发电主页 https://afdian.net/a/dmxjshang

23

主题

337

回帖

298

积分

见习骑士

Rank: 3

UID
3189500
第纳尔
2704
精华
0
互助
26
荣誉
6
贡献
20
魅力
437
注册时间
2020-6-13
鲜花(67) 鸡蛋(0)
 楼主| 发表于 2022-3-13 17:47:45 | 显示全部楼层
nimoadna 发表于 2022-3-13 17:05
对,substate字面意思就是“子状态”。
其他的这么说吧:

谢谢大佬!
B站个人空间:https://b23.tv/rZhCYpH
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

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

GMT+8, 2024-11-19 14:51 , Processed in 0.116220 second(s), 22 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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