- 好友
- 0
- 在线时间
- 3 小时
- 最后登录
- 2022-2-3
随仆
- UID
- 2806072
- 第纳尔
- 270
- 精华
- 0
- 互助
- 0
- 荣誉
- 0
- 贡献
- 0
- 魅力
- 0
- 注册时间
- 2017-2-10
鲜花( 8) 鸡蛋( 0)
|
发表于 2021-9-22 14:40:20
|
显示全部楼层
你这个功能有点漏洞,就是领主因为减速老是跑不到城下攻城就走了,游戏ai好像有个耐心值,一定时间过后还是到不了目的地就会转移另一个目标,这就造成了凡是有关隘地方ai领主基本都攻不下来,除非玩家亲自登场。我尝试了修补,打算做一个简易触发器,围城三天后领主自动攻城,做好了,发现你的scrpts被simple无时无刻触发,导致围城时间无限制刷新,这个不太适合你的,我又去
(party_set_slot, ":ai_object", slot_center_siege_begin_hours, ":cur_hours"),
(party_set_slot, ":ai_object", slot_center_is_besieged_by, ":attackers"),
(party_set_slot, ":attackers", slot_guanai, 1),
这里修补,因为刷新时间在这里,后来发现问题不在这里,原因是减速这个致命问题延缓了领主速度,消耗了领主围城耐心值,game_get_party_speed_multiplier后来目光转向这里,这里是减速器,和领主也有很大关系,不只是和玩家有关。然后我新建了一个槽,(party_set_slot, ":ai_object", slot_center_siege_begin_hours, ":cur_hours"),
(party_set_slot, ":ai_object", slot_center_is_besieged_by, ":attackers"),
(party_set_slot, ":attackers", slot_guanai, 1),在这个后面设置一下槽值,然后在game_get_party_speed_multiplier开始地方设置一个判定槽值条件,这样子关隘在围困时候会失去减速效果,正常攻城,解围之后又能继续减速了,最大程度保证了功能的进行和游戏的机制。也符合现实。后来又简化了一下代码,不用槽值,(party_slot_eq, ":party_id", slot_center_is_besieged_by, -1),直接用这个条件在对game_get_party_speed_multiplier所选定的城市判断也可达到以上效果。具体这样更改:
(try_for_range, ":party_id", towns_begin, villages_begin),
(this_or_next|eq, ":party_id", "p_castle_7"),
(eq, ":party_id", "p_castle_27"),
(party_slot_eq, ":party_id", slot_center_is_besieged_by, -1),
(store_faction_of_party, ":party_faction_1", ":party_id"),
写代码不仅仅需要功能能完成,也需要尽量规避漏洞还有简化代码。这就是我的修补过程了。希望对楼主有所帮助。 |
|