小黑盒
游戏玩家的必备应用
立即下载
扫码下载小黑盒APP
发现游戏 分享快乐
如何让CSGO的BOT更加强力(保姆级教程)

注:本文含有大量文字及少量图片

先上图

其中有3-4k的时长都在研究和修改BOT

------------------------------------------------------

导语

想必每个CSGO玩家在游玩的时候都出现过打不过的对手(亦或是队友),无论是C+选手,还是天才少年,那为什么不能是BOT呢?

BOT,国内人称机器人,从CSGO最初的版本就已经存在,至今经过多次的修改,BOT的强度肉眼可见的有所降低,早期的狙神维塔利能够1vN,武器大师Gunner,狙击二哥Kyle等等,如今却只是蹲在角落老六的一个"复活点",早期的BOT会瞄准脖子,如今的bot只会瞄下半身,当然这也是V社为了兼顾新手玩家所做的一部分妥协,那么在没有办法触及到BOT源代码的情况下是否存在某种办法让BOT再度强力起来呢?

注:本文有部分结论引用于上方链接

    进入正题

    答案是有的

    不使用插件的方法

    有简单的也有复杂的,以下排序顺序为从易到难

      • 控制台输入mp_damage_headshot_only 1(最简易也是最无趣的方法)
      • 修改botprofile.db文件(强烈建议,也是本篇文章着重介绍的方法)
      • 配合部分控制台指令增强bot某些能力
      • 修改bt_config.kv3、bt_default.kv3(难度颇大,缺少修改的参考文本导致难以摸透)


      首先得从了解每个文件夹的意思及其内部的文件对应的作用是什么

      1.maps文件夹(存放地图bsp的文件夹也是存放BOT nav路径的地方)

      框内nav后缀的文件即为炙热沙城II的bot路径文件

      2.scripts(存放bot的行为文件,仅死亡竞赛中会默认启用,在csgo\cfg\gamemode_deathmatch.cfg中,对应指令是mp_bot_ai_bt ai\deathmatch\bt_config.kv3,细化bot的所有行为(包括主动瞄头和蹲下压枪),这也是为什么死亡竞赛的bot要显得更厉害的原因)

      从上到下依次为合作模式、死亡竞赛、守卫模式、行为文件

      3.botprofile.db(BOT最核心的文件,相当于BOT的个人简历,可自定义bot名字、激进性、交流频率、反应时间、技巧性、团队协作能力、武器偏好等)

      图中即为分组为Elite定位为Rifle,名为Twistzz的BOT配置

      4.bt_config.kv3、bt_default.kv3(类似于树状图的树干,负责引用modules文件夹中存放的行为文件)

      如图,当载入了bt_default.kv3后,检测到血量低于60的时候,先会尝试切换出回血针后等待1s后触发扳机(即点下鼠标左键)

      至此,修改教程正式开始!

      ------------------------------------------------------

      botprofile.db文件修改

      一、通用参数解释

      在文件最起始的地方,你会看到这些

      1.Skill(技巧性)

      数字越大 在对抗远处敌人的时候越喜欢单点同时急停也越稳

      数字越小 对抗近处敌人越喜欢速点或扫射,同时枪法也有一定的下降

      经过测试

      Skill值低于35时会时常性老六卖队友

      Skill值低于49时遇到火雷闪不会躲避

      Skill值低于65时被闪光弹白到时会瞎开枪

      SkIll值为100时近远距离都以单点为主,急停稳定,距离特别近才会扫射

      个人建议60-100区间内


      注:Skill值过高时有时可能会出现一种奇怪的问题 详情如图

      背闪了或者被白了会暂时对眼前的敌人失去敌对性

      2.Aggression(激进性)

      顾名思义,数值范围为0-100,数值越高通常越喜欢前压或者冲锋,当然bot开局前压和冲锋的决策不仅仅是由激进性决定的,还有地图nav路径是否为bot预留蹲点和Teamwork值也会有影响,总体上这个值对bot影响不大,(你调成0他也照样扎堆前压,你调成100照样蹲点架狙)


      3.ReactionTime(反应时间)、AttackDelay(看到人以后多久后开枪)

      最低0,最高貌似无上限


      4.Teamwork(团队协作)

      范围0-100,表面看着是Teamwork,其实更多影响的是会不会帮忙补枪补位,以及听不听话(例如无线电发gogogo的时候总会有人negative或者no的就是Teamwork值影响了)


      5.AimFocusInitial(瞄准前准星的移动幅度)、AimFocusDecay(瞄准时准星的移动幅度)、AimFocusOffsetScale(准星移动的偏差度)、AimfocusInterval(准星移动间隔)

      这四个AimFocus的准确定义我也拿不准,只是通过个人测试得出的结果

      皆为越低越好,除了AimFocusDecay不能调0以外其他都可以调成0


      6.LookAngleMaxAccelNormal(闲逛时视角转向速度)、LookAngleStiffnessNormal(闲逛时视角移动幅度)

      LookAngleDampingNormal(闲逛时视角瞄准的垂直角度)、LookAngleMaxAccelAttacking(对枪时视角转向速度)、LookAngleStiffnessAttacking(对枪时视角移动幅度)、LookAngleDampingAttacking(对枪时视角移动幅度)

      注:这里幅度和速度不是一个意思(幅度近似于定位准确度,速度近似于定位所需时间)


      两个MaxAccelAttacking和StiffnessAttacking皆为越大越好(无上限,999999都可以)

      LookAngleDampingNormal和LookAngleDampingAttacking这两个参数是角度值,以瞄准地面斜向45度角为起始位置面对视角前方向上的仰角,设置成-45时瞄地,设置成135时瞄天(角度值设置的好的话有奇效,在我的b站视频中有体现)


      PS.Cost(花费程度)、VoicePitch(交流频率)、Skin(皮肤)、Rank(段位分值)

      这几个参数是在1.6时代传下来的,在CSGO中没有任何用处


      二、通用模板解释

      1.Weapon Preference Templates(武器偏好)

      排序中越靠上的bot会越优先拾起

      澄清一个大部分教程贴没搞清的事实:WeaponPreference部分其实不是从贵到便宜,bot在起枪的时候会把列表全部检查一遍,之后优先买最贵的那一把,例如把deagle写在ak前面 如果钱够的话它也会起ak,主要影响的是持有优先度,例如把aug写在m4a4前面,但是bot只有3100,所以只能起m4a4,当他走过地上的aug附近的时候就会自动换成aug​

      以下为一套武器偏好的完整模板

      Template [名字]

       WeaponPreference = [武器代码]

       WeaponPreference = [武器代码]

       Skill = [数字]

      End

      图中为名字为Rifle,Skill值为100,拥有一套枪械优先顺序表的偏好

      这是我的写法,vest早以就失效了不用管,3000+经济的时候会强起ak/m4,2000+经济的时候起咖喱/法玛斯,1500+经济的时候大概率起吹风机/小蜜蜂,偶尔会抬出鸟狙


      2.Skill Templates(难度划分)----近似于bot的分组

      以下为一个划分的模板

      Template [命名]

       Skill = [数值]

       Aggression = [数值]

       ReactionTime = [数值]

       AttackDelay = [数值]

       Difficulty = [对应难度](EXPERT、HARD、NORMAL、EASY)

       VoicePitch = [数值]

       AimFocusInitial = [数值]

       AimFocusDecay = [数值]

       AimFocusOffsetScale = [数值]

       AimfocusInterval = [数值]

      End

      图中为我个人修改的使用例(专家难度中分组为Elite的bot会套用此模板)

      ------------------------------------------------------

      和bot相关的一些控制台参数

      bot_autodifficulty_threshold_high [数值] (当bot得分比玩家高时难度动态调整值,范围为-20至20)

      bot_autodifficulty_threshold_low [数值](当bot得分比玩家低时难度动态调整值,范围为-20至20)

      这两项参数的根据是玩家计分板中的分数,建议都调为0

      bot_max_hearing_distance_override [数值](bot听到声音的最大距离,最小值为0最大值无限)

      bot_max_vision_distance_override [数值](bot最大视距,最小值为0最大值无限)

      bot_max_visible_smoke_length [数值](bot对于烟雾的可见程度,默认为-1,最大值无限)

      这项参数调的过大的话bot直接成透视,隔着烟直接对枪

      sv_bot_buy_grenade_chance [数值](bot购买投掷物的概率,范围为0-100)

      sv_bot_buy_hegrenade_weight [数值](bot购买高爆手雷的概率,范围为0-100)

      sv_bot_buy_flash_weight [数值](bot购买闪光的概率,范围为0-100)

      sv_bot_buy_molotov_weight [数值](bot购买燃烧瓶/弹的概率,范围为0-100)

      sv_bot_buy_smoke_weight [数值](bot购买烟雾弹的概率,范围为0-100)

      sv_bot_buy_decoy_weight [数值](bot购买诱饵弹的概率,范围为0-100)

      注:bot最多只会购买一个投掷物

      以上参数以sv_bot_buy_grenade_chance为基准,若此指令参数为0的话下面的指令调100也没作用

      bot_join_after_player [数值](bot是否在玩家选择阵营后加入,可填参数为0/1)

      sv_auto_adjust_bot_difficulty [数值](服务器是否会自动调整bot难度,可填参数为0/1)

      sv_bots_get_harder_after_each_wave [数值](bot在每一波之后是否会变得更困难,可填参数为0/1)

      ------------------------------------------------------

      maps路径文件修改

      从老cs系列将bot系统引进以来,每个地图都需要有其对应的nav路径文件以便于bot在复杂多样的地图中行走,从1.6之后若系统检测到地图内没有nav文件则会尝试自动生成路径文件,在CSGO中其存放位置为csgo\maps

      如图,图中即为炙热沙城II的路径文件

      在csgo\cfg中,存放着nav_bindings.cfg和navedit.cfg

      一个nav路径文件,决定着bot在地图中可以自主决定行走的路线多少,制作精细的nav文件可以使bot做出更多操作(Mirage白车跳B2、A1箱跳跳台等)和多样化的决策

      在游戏中控制台输入"exec 文件名"以载入cfg文件

      注意:套用cfg文件后会覆盖大部分按键的功能,一定一定要预留自己的cfg文件,自己的设置cfg存放在Steam\userdata\[自己的64位数字ID]\730\local\cfg\config.cfg中

      下面只作对cfg内部各项命令的解释,具体nav编辑方法太过繁琐且暂且略过

      这里在 https://www.mafengs.com/bbs/topics/10290 和 https://www.docin.com/p-2785707922.html 的基础上作少许补充,上述两个链接对于nav相关指令的说明已经极为详细了

      注:下方所有指令皆为对路径区域作的标记

      nav_avoid(尽可能让bot少行走到此区域)

      nav_crouch(bot行走到此区域时会蹲下)

      nav_dont_hide(bot不会在此区域停留)

      nav_jump(bot行走到此区域时会跳跃)

      nav_no_jump(禁止bot在此区域中跳跃)

      nav_precise(让bot行走的更为仔细精确,如在Mirage VIP洞口就需要定一个)

      nav_run(bot在此区域中不会静步蹲下 除了回防)

      nav_stand(禁止bot在此区域中蹲下)

      nav_transient(标记为临时区域)

      ------------------------------------------------------

      修改bt_config.kv3、bt_default.kv3

      这个是最麻烦也是最深奥的办法,在19年时V社更新了scripts文件夹,其中就有这两个文件,相信19年以来接触过大行动的玩家都知道守护模式的bot有多强力吧,其正是这次更新后带来的提升

      在csgo\scripts\ai\guardian中,存放着守护模式所有的bot行为文件,bot将会严格按照其中的编写执行动作

      此处为csgo\scripts\ai\deathmatch,仅仅存放着可怜的两个文件,这也是死亡竞赛中会默认套用的文件

      关于scripts文件夹内部文件的修改教程及格式等,V社并没有给出确切的教程和指示,故给修改带来了非常大的困难,以下是帖主对bt_config.kv3做了浅浅加强后的作业,有dalao懂这个的话务必和我沟通

      elite =

       {

       aim_target_acquisition_lerp_time = 0

       aim_target_acquisition_lerp_time_deviation = 0

       aim_target_acquisition_angle_penalty = 1

       aim_target_acquisition_angle_penalty_deviation = 0

       aim_target_acquisition_angle_penalty_reduction_ratio = 0

       aim_target_acquisition_angle_tolerance = 1.0

       aim_target_acquisition_angle_lerp_bias = 0

       aim_target_tracking_lerp_time = 0

       aim_target_tracking_lerp_time_deviation = 0

       aim_target_tracking_focus_interval = 0

       aim_target_tracking_focus_interval_deviation = 0

       aim_target_tracking_angle_lerp_bias = 0

       aim_ready_angle_tolerance = 1.0

       aim_new_target_angle_tolerance = 30.0

       aim_max_duration = 1.1

       aim_max_duration_deviation = 0

       aim_punch_angle_reaction_chance = 1

       look_around_awareness_yaw_range = 360

       look_around_awareness_pitch_range = 360

       look_around_focus_interval = 0

       look_around_focus_interval_deviation = 0

       look_around_lerp_time = 0

       look_around_lerp_time_deviation = 0

       look_around_lerp_bias = 0.2

       reaction_time = 0

       combat_crouch_chance = 0.9

       combat_dodge_command_duration = 0.95

       combat_dodge_command_duration_deviation = 0.15

       attack =

       [

       // duration, duration deviation, cadence, cooldown, cooldown deviation

       // KNIFE PISTOL SUBMACHINEGUN

       [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ 0.95, 0.25, 0.2, 0.05, 0.0 ], [ 0.425, 0.075, 0.0, 0.125, 0.025 ],

       // RIFLE SHOTGUN SNIPER_RIFLE

       [ 0.155, 0.035, 0.0, 0.15, 0.05 ], [ 0.3, 0.0, 0.0, 0.25, 0.05 ], [ 0.22, 0.07, 0.0, 2.0, 0.0 ],

       // MACHINEGUN C4 TASER

       [ 0.9, 0.3, 0.0, 0.15, 0.05 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ],

       // GRENADE EQUIPMENT STACKABLEITEM

       [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ],

       // FISTS BREACHCHARGE BUMPMINE

       [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ],

       // TABLET MELEE SHIELD

       [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ],

       // WEAPONTYPE_ZONE_REPULSOR UNKNOWN

       [ -1.0, -1.0, -1.0, -1.0, -1.0 ], [ -1.0, -1.0, -1.0, -1.0, -1.0 ]

       ]

       }

      帖主在这里也尝试过将死亡竞赛的bot文件直接套用到其他模式中,发现V社只预留了安包的行为文件没有预留拆包的行为文件,之后按照安包的行为文件大致写了一个拆包的行为文件,但是没有作用,在这里也放出来给评论区的dalao指点指点

      {

       type = "decorator_sensor"

       entity_type_filter = "CLASSNAME"

       orphan_only = 1

       output = "BombPlanted"

       class_name = "plant_c4"

       priority = 1

       child =

      {

      type = "condition_is_empty"

      input = "BombPlanted"

      negated = 1

      child = 

      {

      type = "sequencer"

      children = 

      [

      {

      type = "action_move_to"

      destination = "BombPlanted"

      movement_type = "BT_ACTION_MOVETO_RUN"

      route_type = "BT_ACTION_MOVETO_FASTEST_ROUTE"

      hiding_spot = "HidingSpot"

      threat = "NearestThreatMemory"

      nearest_area_distance_threshold = 20

      arrival_epsilon = 35

      },

      {

      type = "action_look_at"

      input_location = "BombPlanted"

      },

      {

      type = "action_wait"

      wait_time_min = 1

      wait_time_max = 1

      },

      {

      type = "decorator_repeat"

      child =

      {

      type = "action_use"

      }

      }

      ]

      }


      ------------------------------------------------------

      最后将我个人的修改成果视频放出

      https://www.bilibili.com/video/BV16B4y1v7b1

      https://www.bilibili.com/video/BV1mW4y1m7uX

      此文耗时三个月实际五天

      有更多不懂的或者更多可以私信我,我会一一回复

      原版专家难度的BOT对于你来说

      单选402人参与

      简简单单有手就行

      66%266人

      不分伯仲实力相当

      10%42人

      被当成BOT暴打

      23%94人

      展开阅读全文
      打开小黑盒,查看更多精彩内容
      评论区
      打开小黑盒,查看更多精彩评论