- 好友
- 1
- 在线时间
- 8 小时
- 最后登录
- 2026-9-20
随仆

- UID
- 2557955
- 第纳尔
- 139
- 精华
- 0
- 互助
- 0
- 荣誉
- 0
- 贡献
- 0
- 魅力
- 20
- 注册时间
- 2015-7-9
 鲜花( 2)  鸡蛋( 0)
|
本帖最后由 afl001 于 2026-9-19 14:48 编辑
修正:避免骑弩视角缺陷无法对后却又强制切换为弩的情况。只是出现这种情况改为遵循原版AI,如果原版AI是还是用弩死磕,可能并不一定会变聪明。
替换25楼代码中的从346到358行,编译通不过的话,删除所有汉字注释
另外,建议脚本触发的频率降低一点,就是最前面的“ (0.5, 0, 0, [],”中的0.5改大成1~2,其实没必要太频繁触发,低配置某些地图会很卡,尤其罗多克的山地。
(try_begin),#武器切换的处理,20米以上
(agent_slot_eq, ":enemies_closest", slot_agent_is_running_away, 0),
(gt,":distance_true",2000), #如果距离20米以上,强制切换任何远程
(agent_set_wielded_item, ":agent_no", ":ranged_weapon"),
(else_try),#5-20米
(gt,":distance_true",500),
(assign, ":hold_melee", 0),
(agent_get_wielded_item, ":agent_hold_weapon_no", ":agent_no" ,0), #判断右手武器
(try_begin),
(gt, ":agent_hold_weapon_no", -1),
(item_get_type, ":agent_hold_weapon_type", ":agent_hold_weapon_no"),
(neq, ":agent_hold_weapon_type", itp_type_bow),
(neq, ":agent_hold_weapon_type", itp_type_crossbow),
(neq, ":agent_hold_weapon_type", itp_type_pistol),
(neq, ":agent_hold_weapon_type", itp_type_musket),
(assign, ":hold_melee", 1), #手中武器不是远程(弓弩手枪步枪)
(else_try),
(le, ":agent_hold_weapon_no", -1),
(assign, ":hold_melee", 1), #空手也算近战
(try_end),
(eq, ":hold_melee", 1), #如果当前是近战模式
(item_get_type, ":ranged_weapon_type", ":ranged_weapon"),
(try_begin),
(neq,":ranged_weapon_type",itp_type_crossbow), #不是弩就切换,是弩不强制切换,恢复原版AI(弩有视角限制,太近了无法对后)
(agent_set_wielded_item, ":agent_no", ":ranged_weapon"),
(else_try),###未严格测试,如果骑弩出现抽搐发呆,删掉这三行再试(1/3)
(agent_clear_scripted_mode, ":agent_no"), ###如果骑弩出现抽搐发呆,删掉这三行再试(2/3)
(agent_force_rethink, ":agent_no"),###如果骑弩出现抽搐发呆,删掉这三行再试(3/3)
(try_end),
(else_try),
(le, ":distance_true", 500),
(gt, ":melee_weapon", -1),
(agent_get_horse, ":enemies_horse", ":enemies_closest"),
(gt, ":enemies_horse", -1),
(agent_set_wielded_item, ":agent_no", ":melee_weapon"),
(agent_set_attack_action, ":agent_no", -2, 1),
(agent_set_scripted_destination, ":agent_no", pos3, 1),
(else_try),###未严格测试,如果骑射兵种近战出现抽搐发呆,删掉这三行再试(1/3)
(agent_clear_scripted_mode, ":agent_no"),###如果骑射兵种近战出现抽搐发呆,删掉这三行再试(2/3)
(agent_force_rethink, ":agent_no"),###如果骑射兵种近战出现抽搐发呆,删掉这三行再试(3/3)
(try_end),
|
|