老兵暂时性的回归一下诺文斯克地区(实在不知道玩什么了),这两天在研究ai的逻辑的同时翻了一下论坛,好像并没有关于ai的深度修改方面的讨论,所以我来抛砖引玉一下看看有无人对ai的修改感兴趣的。
在bots\type中的各个ai都有其装备、行为逻辑的json文件,json文件中有不同的难度对应战局开始时的难度选择,其中有一段是关于手榴弹的,一下是随意摘抄的bear默认难度的手榴弹的一些逻辑
"Grenade": { "ADD_GRENADE_AS_DANGER": 65, "ADD_GRENADE_AS_DANGER_SQR": 4225, "AMBUSH_IF_SMOKE_IN_ZONE_100": 40, "AMBUSH_IF_SMOKE_RETURN_TO_ATTACK_SEC": 30, "ANG_TYPE": 4, "BEWARE_TYPE": 2, "BE_ATTENTION_COEF": 4, "CAN_THROW_STRAIGHT_CONTACT": false, "CHANCE_RUN_FLASHED_100": 100, "CHANCE_TO_NOTIFY_ENEMY_GR_100": 99, "CHEAT_START_GRENADE_PLACE": false, "CLOSE_TO_SMOKE_TIME_DELTA": 5, "CLOSE_TO_SMOKE_TO_SHOOT": 10, "CLOSE_TO_SMOKE_TO_SHOOT_SQRT": 100, "DAMAGE_GRENADE_SUPPRESS_DELTA": 8, "DELTA_GRENADE_START_TIME": 0.01, "DELTA_NEXT_ATTEMPT": 10, "DELTA_NEXT_ATTEMPT_FROM_COVER": 5, "FLASH_GRENADE_TIME_COEF": 0.25, "GRENADE_PRECISION_PORTALS": 0.1, "GrenadePerMeter": 0.15, "GrenadePrecision": 0.1, "MAX_FLASHED_DIST_TO_SHOOT": 10, "MAX_FLASHED_DIST_TO_SHOOT_SQRT": 100, "MAX_THROW_POWER": 18.7, "MIN_DIST_NOT_TO_THROW": 8, "MIN_DIST_NOT_TO_THROW_SQR": 64, "MIN_THROW_DIST_PERCENT_0_1": 0.7, "MIN_THROW_GRENADE_DIST": 12, "MIN_THROW_GRENADE_DIST_SQRT": 144, "NEAR_DELTA_THROW_TIME_SEC": 2, "NO_RUN_FROM_AI_GRENADES": true, "REQUEST_DIST_MUST_THROW": 3, "REQUEST_DIST_MUST_THROW_SQRT": 9, "RUN_AWAY": 22, "RUN_AWAY_SQR": 484, "SHOOT_TO_SMOKE_CHANCE_100": 50, "SIZE_SPOTTED_COEF": 2, "SMOKE_CHECK_DELTA": 1, "SMOKE_SUPPRESS_DELTA": 20, "STOP_WHEN_THROW_GRENADE": true, "STRAIGHT_CONTACT_DELTA_SEC": -1, "STUN_SUPPRESS_DELTA": 9, "TIME_SHOOT_TO_FLASH": 4, "WAIT_TIME_TURN_AWAY": 0.2 }
接下来逐一说下各个字段的意思,
ADD_GRENADE_AS_DANGER:手雷的威胁识别半径
AMBUSH_IF_SMOKE_IN_ZONE_100:烟雾区域的伏击概率,反正我是没见过bot在烟雾里伏击,也可能是烟雾弹投的少
AMBUSH_IF_SMOKE_RETURN_TO_ATTACK_SEC:应该是bot在烟雾区域的射击时间
ANG_TYPE:投掷角度类型,4是高抛物线投掷法
BEWARE_TYPE:警戒模式,2是bot会把手雷位置共享给队友
BE_ATTENTION_COEF:警戒系数,在bot的警戒值里,这里的4是普通警戒值的4倍
CHANCE_RUN_FLASHED_100:被致盲的逃跑概率,这里概率是100%
CHEAT_START_GRENADE_PLACE:bot会显示手雷的预测轨迹,就跟我们看到的有些游戏中的抛物线一样
CLOSE_TO_SMOKE_TIME_DELTA:进入烟雾后的反应时间
DAMAGE_GRENADE_SUPPRESS_DELTA:压制效果,bot在被手雷炸伤后会隐蔽的时间
DELTA_NEXT_ATTEMPT:投掷冷却,bot不会在这个数值内连续投掷手雷
DELTA_NEXT_ATTEMPT_FROM_COVER:掩体中投掷冷却,当bot在掩体中时,投掷冷却时间更短
FLASH_GRENADE_TIME_COEF:致盲时间系数,0.25表示实际致盲时间为原时长的25%,难怪闪光对bot没什么作用
GRENADE_PRECISION_PORTALS:手雷轨迹预测的误差系数
GrenadePerMeter:投掷精度对距离衰减
GrenadePrecision:投掷基础精度
MAX_FLASHED_DIST_TO_SHOOT:致盲时在这个距离内bot会反击
MAX_THROW_POWER:最大投掷力度
MIN_DIST_NOT_TO_THROW:绝不投掷的最小距离
目前只看了这么多且一次测试都没有(因为我在上班摸鱼),等下班了可以进行测试一波,不过不知道sain模组对这个会不会有影响,不行还得先把模组卸了
经过一轮日间工厂对比测试得知:
1、FLASH_GRENADE_TIME_COEF字段对bot确实有效果,但仅限于scav和boss,PMC无法被致盲
2、应该是由于MAX_FLASHED_DIST_TO_SHOOT字段的影响,当bot在10米内被致盲时依然会保持射击精度,当bot离开10米的范围就会丢失目标,此时再将bot致盲会直接丢失精度
3、bot在被致盲后如果没有目标依然会有概率射击
4、被致盲的bot会立即逃跑