如何让CSGO的BOT更加强力(保姆级教程)

如何让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

此文耗时三个月实际五天

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

相关推荐

彩票软件app排行榜:精选热门应用,助你轻松选号
BT365账户网址多少

彩票软件app排行榜:精选热门应用,助你轻松选号

📅 07-01 👁️ 2359
玖姿冬装怎么样玖姿官网玖姿品牌好吗?
365彩票官方正版下载

玖姿冬装怎么样玖姿官网玖姿品牌好吗?

📅 07-04 👁️ 6074
韩国队世界杯西服出炉
BT365账户网址多少

韩国队世界杯西服出炉

📅 06-28 👁️ 8015
史上最全的英语缩写大全,超实用!
365bet在线娱乐场

史上最全的英语缩写大全,超实用!

📅 07-06 👁️ 6520
科普文章
365bet在线娱乐场

科普文章

📅 06-27 👁️ 7068
AI辅助裁判、史上最快足球,盘点卡塔尔世界杯“黑科技”
365彩票官方正版下载

AI辅助裁判、史上最快足球,盘点卡塔尔世界杯“黑科技”

📅 07-06 👁️ 2491
中国酒器文化 古代的酒杯都叫什么?
365bet在线娱乐场

中国酒器文化 古代的酒杯都叫什么?

📅 07-07 👁️ 6875
上海超级杯国庆假期登场,汇聚顶尖选手打造冰上盛宴
365bet在线娱乐场

上海超级杯国庆假期登场,汇聚顶尖选手打造冰上盛宴

📅 07-07 👁️ 5428
西班牙国家队公布26人名单,前皇马球星时隔5年重返斗牛士军团