【CSGO】告别繁琐的键位设置——bind指令
有的小伙伴直到现在,当自己去一趟网吧,先浪费5分钟在那调设置。这肯定是不合理的。正确的方法,也是职业选手使用的方法,就是通过一个cfg文件一次搞定。本文将讲解与按键绑定相关的内容。
提前说明,本文为标准的CS:GO版本的教程,到CS2版本中许多指令发生了改动,因此如果你需要配置CS2的键位cfg,本文第六部分的内容需要你另外查找资料。

一、指令基础
在CSGO游戏中打开控制台(默认按"`"),输入一串指令后回车,游戏即会运行你输入的指令。
和计算机语言一样,指令除了文本输出以外一定是全英文,所以输入的时候守住你的输入法。
单个指令的语法类似于英语没有主语的简单句,可以拿几条指令参考:①主谓:holdpos②主谓宾:give weapon_flashbang③主谓双宾:bind 1 weapon 1④主谓宾宾补:ent_fire weapon_ak47 addoutput "modelscale 10"。当然这是说着好玩的,如果有计算机基础的自然能适应CSGO的指令。
多个项或指令用“;”隔开,运行时会按顺序运行,无法运行或被拒绝运行的指令会跳过。特别的,在cfg文件中可以通过换行来分隔多条指令,指令后可以选择性加“;”。空格其实也能分隔指令,但是容易出现多条指令被当成一条指令导致无法运行的情况。
“""”和“''”的作用是断句,在指令意思不够明确的情况下,将一个整体的部分加上引号能使指令能正常运行。

二、cfg文件的使用和exec指令
cfg本身是一个文本文件,改为cfg文件以在游戏中读取。新建一个文本文件,使用记事本编辑,输入需要运行的指令保存,将文件后缀改为.cfg后,移动到steam目录下的steam\steamapps\common\Counter-Strike Global Offensive\csgo\cfg位置。里面本身有一些CSGO运行需要的cfg文件,你的文件不能这些文件重名,比如名称为“1.cfg”。steam默认位置为C:\Program Files (x86),在steam主界面左上角依次点击查看-设置-下载-内容库-STEAM库文件夹,找到存储空间管理器中有你的CSGO游戏的STEAM库文件夹,其下方会显示steam的路径。
运行的指令为exec,因为我的cfg文件名为“1.cfg”,代码为“exec 1”或“exec 1.cfg”,打开控制台输入代码后回车,即会运行该cfg文件中的代码。
在steam主界面csgo-设置-通用中找到启动选项,里面可以输入指令,在游戏开始的同时就会运行,如alias、language等指令不能永久保存在设置中,每次打开游戏都要运行,就可以把它们打在这里。更好的办法是用一个cfg文件打包在一起,这样这里只需要打exec一个指令。

三、bind系列指令
你的cfg第一项应该是“unbindall”,意思是将所有按键解绑。注意绑键系统中有一些键是不在里面的,如Esc退出、鼠标选择、Ctrl发枪、`控制台。
unbind指令格式为“unbind <键位A>”,在控制台中键位需要加引号,在cfg文件中可以选择性不加,意思是解除键位A的功能。
bind指令的格式为“bind <键位A> <功能B>””,在控制台中键位需要加引号,在cfg文件中可以选择性不加,意思是将键位A设为功能B,其中功能B是一条指令或者由分号分隔的多条指令。如果功能B是unbind和bind等指令,必须给功能B加上引号,否则指令无法运行。如bind 0 "unbind MOUSE2",意思是按0来解除鼠标右键的功能。

四、所有可以表示的键位的代码形式
本文将键盘鼠标分为5个部分说明,所有字母均可大写。另外前文说了键位可以加引号。
【主键区】除了`键外其他键均可绑定
①直接打对应键
字母、数字
-
=
[
]
\
;
'
,
.
/
②需要打对应键的名字
Tab键:tab
大小写键:capslock
空格:space
退格:backspace
③成对的按键
左Shift:shift
右Shift:rshift
左Ctrl:ctrl
右Ctrl:rctrl
左Alt:alt
右Alt:ralt
【功能键区】F1~F12可以绑定
F1~12就是f1、f2、...、f12。注意有Fn键的键盘,如果设置默认F1~12为电脑操作功能,在CSGO游戏中需要按住Fn的同时按F1~12来执行该键的功能。
【光标控制区】
Insert:ins
Delete:del
Home:home
End:end
Page Up:pgup
Page Down:pgdn
上下左右箭头分别为uparrow、downarrow、leftarrow、rightarrow。
【数字小键盘区】
1:kp_end
2:kp_downarrow
3:kp_pgdn
4:kp_leftarrow
5:kp_5
6:kp_rightarrow
7:kp_home
8:kp_uparrow
9:kp_pgup
0:kp_ins
.:kp_del
/:kp_slash
*:kp_multiply
-:kp_minus
+:kp_plus
Enter:kp_enter。注意需要解锁小键盘。
【鼠标】
左键:mouse1
右键:mouse2
中键:mouse3
侧键1:mouse4
侧键2:mouse5
滚轮上:mwheelup
滚轮下:mwheeldown。注意鼠标如果有侧键,默认靠近鼠标头的为侧键2,另一个为侧键1,实际看你的鼠标设置。

五、alias指令基础和指令中“+”“-”的意思
alias指令的格式为alias <自定义名称A> <功能B>,意思是把功能B取名为自定义名称A。
这条指令不能永久保存,每次进游戏都要输一次,如果有长期需要应该放在启动项中。
【用途】
使用这条指令可以将自己记不住的指令改为其他名字甚至是中文。
使用这条指令可以消除歧义,例如上文中设置按0来解除鼠标右键的功能,bind 0 unbind MOUSE2是无效的,但是如果提前运行了指令alias asd "unbind mouse2",之后就可以用bind 0 asd来实现,当然alias指令里的引号还是不能少,所以基本没有人会这样用。
最重要的功能,就是将多个指令打包起来。在下文中用具体例子来阐述它的作用。
【经典例子1——跳投指令】
完整的跳投指令为:
alias +jumpthrow"+jump;-attack";
alias -jumpthrow"-jump";
bind x"+jumpthrow"
其中有三条。第一条的意思是把跳跃并松开攻击键定义为执行jumpthrow,第二条的意思为把停止跳跃定义为停止执行jumpthrow,第三条的意思是把x键设置为功能“执行jumpthrow”。
先来说一下其中“+”“-”的意思。可以看到我翻译成了“执行”和“停止执行”,如果输入一个指令前面带加号,运行后将持续不会停止地执行该指令,只有输入同样的指令,把前面的加号改成减号,运行后才会停止。很多命令执行一次和持续执行是需要区分的,所以对应的指令前会有加号。这样你也会明白为什么后面第六部分有的指令有加号,有的没有了。
在上面展示的跳投指令中,把x键设置为功能“执行jumpthrow”,松开x键就会停止执行。第一条指令会完成跳投的动作,但是由于跳跃还需要停下来,所以需要加上第二条指令,使得松开x跳跃不会继续下去。
如果你刚刚思考了一下,你会发现这个指令其实并不需要使用alias指令。bind x"+jump;-attack;-jump"就能实现。插一句话,有的场合需要右键和双键跳投,前面的-attack前后应该再加一条-attack2。说明这个例子还不能极致地体现alias指令的意义。所以我增加了第二个例子。
【经典例子2——大跳指令】
完整的大跳指令为:
alias +cjump"+jump; +duck";
alias -cjump"-jump; -duck";
bind space"+cjump"
同样是三条指令,类似于跳投,不再逐字解读。与bind space"+duck;+jump;-duck;-jump"相比,前者如果你不松开空格,下蹲不会停止,正好与跳蹲接上,只需要长按空格就可以完成一次大跳+跳蹲,到位置再松开才会站起来;而后者按完就会立刻站起来,你必须接一个蹲键才能完成这个动作。
在跳投指令中,你需要使用左键来执行attack,跳投键立即终止它来完成一次完美的跳投。而大跳最好不要立即终止,需要蹲这个动作的持续,所以alias指令的加入让它变得更完美。值得一提的是,连跳是默认关闭的,所以+jump并不会让你一直跳跃,如果开启了连跳,长按大跳键会使你跳蹲的动作结束后继续跳下去。

六、常见功能对应的指令
下面的指令只是一些基础功能,有更多的需求请自行查找或研究
推荐学习buy、give和use三个指令和toggle的用法
【动作类】
前后左右移动分别是+forward、+back、+moveleft、+moveright
下蹲:+duck
静步:+speed
跳跃:+jump
切枪:lastinv
换弹:+reload
拾取/拆包:+use
丢弃:drop
开火:+attack
第二开火/开镜:+attack2
上一武器:invprev
下一武器:invnext
切换左右手:toggle cl_righthand 1 0
清楚血迹:r_cleardecals
飞行:noclip
【信息类】
全局聊天:messagemode
队内聊天:messagemode2
切换ui显示:show_loadout_toggle
语音:+voicerecord
标记地点:player_ping
命令类无线电消息:radio1
标准类无线电消息:radio2
报告类无线电消息:radio3
记分牌:+showscores
选择阵营:chooseteam
打开控制台:toggleconsole
退出房间:exit
断开连接:disconnect
退出游戏:quit
【使用类】
购买菜单:buymenu
喷漆菜单:+spray_menu
自动购买:autobuy
重复上次购买:rebuy
切换主武器:slot1
切换副武器:slot2
切换近战武器:slot3
切换投掷武器:slot4
切换道具:slot5
切换高爆手雷:slot6
切换闪光弹:slot7
切换烟雾弹:slot8
切换诱饵弹:slot9
切换燃烧瓶:slot10
切换电击枪:slot11
切换治疗剂/X光:slot12
切换平板:slot13

七、组合键的实现
使用bind指令只能实现绑定功能到一个按键,而例如steam界面默认快捷键Shift+Tab是一个组合键,那么怎么才能实现组合键呢?这时候又需要alias出手了。相信有的小伙伴已经想到了,通过定义一个按键,使得它被按下的时候另一个键才有效果。逻辑已经给出来了,通过下面的例子相信你就知道怎么使用了。
alias +ctrlbuy"bind a'buy ak47;buy m4a1';bind ,'say !drop'";
alias -ctrlbuy"bind a +moveleft;unbind ,";
bind ctrl +ctrlbuy
首先你的引发键Ctrl本身不能有其他功能,然后给了两种情况,第一种里我们的A键本身有移动的功能,使用Ctrl+A购买了长枪后只要松开Ctrl,A的功能需要回来;第二种里,键本身没有作用,发完刀就可以解绑这个键了。
据我了解,设置了组合键的玩家极少,但是这并不是没有作用。比如按住,时,小键盘的功能是购买相关,按住.时,小键盘的功能是跑图和bot相关,按住/时小键盘的功能是demo相关。职业选手公开的cfg是比赛专用,固然最多只需要把小键盘绑购买相关的功能,但是不排除有职业选手的私人cfg有我上述所说的类似的绑定方法。
八、最后补充
本文主要将的是如何给自己做一个键位设置的cfg文件,但是比如我们去网吧玩,我们的设置不光是键位,还有准星、持枪视角、视频设置等。不过上述内容均有对应的指令可以实现,我们只需要补充在我们的cfg中即可。全文大概3000多字从头到尾都是本人分两次手打,其中难免出现错别字、拼写错误、逻辑错误等问题,如有发现,恳请在评论区中指出,感谢。