CSGO绑定按键原理与方法(上),CSGO控制台指令bind、bindtoggle详解【破亚空CSGO】

请注意!本文章假设您会使用控制台,本文不会对控制台的使用方法进行任何说明
如果您想了解控制台是什么,可以观看:av56214232
请注意!在使用控制台之前,建议您先备份好自己的csgo设置,以避免误操作导致难以修复的问题。cfg的备份方法:

请注意!某些指令需要开启作弊sv_cheats 1才能正常使用
本文参考的文章:
https://developer.valvesoftware.com/wiki/Bind

bind→使用方式:
bind KEY COMMANDS
bind "按键" "指令"
(不区分大小写)
例子:绑定滚轮上为跳跃
bind "mwheelup" "+jump"

bind→指令分析:
bind指令包含三个东西,bind、按键和指令
一个完整的bind指令:
bind "[按键]" "[指令]"

按键[KEY]
我们先从按键讲起
在CSGO中,无论是鼠标按键、键盘按键还是手柄按键,都属于按键
但是这并不意味着所有的按键都能够在CSGO中正常使用
CSGO按键列表

我们只能够使用列表中包含的按键(当然已经足够我们使用了)
其中值得注意的是
按键:鼠标按键[mouse]
鼠标按键只支持7个
mouse1 鼠标左键
mouse2 鼠标右键
mouse3 鼠标中键(滚轮按下去)
mouse4 鼠标侧键
mouse5 鼠标侧键
mwheelup 滚轮向下
mwheeldown 滚轮向上
这意味着如果你的鼠标侧键大于两个,那你需要在鼠标驱动当中将其他侧键设置为键盘按键/摇杆按键才能正常使用
按键:键盘[keyboard]
CSGO不支持Win键、Fn键和媒体键
其中值得注意的是:shift、alt、ctrl
这三个按键在我们的键盘上都有两个,一左一右,分别对应为:
shift/rshift
alt/ralt
ctrl/rctrl
例子:绑定左ctrl为蹲伏,绑定右ctrl为跳跃
bind "ctrl" "+duck";bind "rctrl" "+jump";

指令[COMMAND]
要使用指令,首先我们要知道我们有什么指令可以用
获取指令的方法:
1、百度(搜索引擎)
2、控制台输入:find "关键字"(CSGO控制台搜索)
3、blog.counter-strike.net(CSGO官方更新文档)
4、https://totalcsgo.com/commands(第三方网站 个人推荐)
5、developer.valvesoftware.com(valve开发者文档 不推荐新手使用)
解析:
指令的使用本身是不需要绑键的
只要直接在控制台输入正确的指令名称,CSGO就会自动地执行指令
像是我们常见的改准星指令、作弊指令等等
都可以完全独立于按键[KEY]使用
绑键的目的,更多的时候是为了方便

明白了按键和指令之后
我们就可以打开CSGO进行按键绑定了
例子:
bind "j" "cheer" (绑定J键为欢呼)
bind "mwheelup" "+jump"(绑定滚轮上为跳跃)
语法解析:
bind "KEY" "COMMANDS";
在控制台输入 bind 然后回车,可以看到bind指令的语法

其中
分隔符-分号[;]
分号[;]用于分隔多个指令
正确例子1:
bind "ctrl" "+duck";bind "rctrl" "+jump";
正确例子2:
bind "ctrl" "+duck";
bind "rctrl" "+jump";
正确例子3:
bind "g" "+drop;cheer"
特别的:
bind KEY COMMANDS;←这个分号是可以被省略的
加分号的目的仅仅是为了编辑时能够方便组合多个bind指令
组合符号-双引号[""]
双引号["]用于组合多个参数(双引号必须是英文输入法)
正确例子:
bind "g" "drop;cheer"
错误例子:
bind “g” “drop;cheer”(双引号错误)
bind "space;mwheelup" "+jump"(不能用于组合按键)
在多数情况下,双引号是可以被省略的
正确例子:
bind mwheelup +jump
但在以下情况下,双引号是不可以被省略的
1、多个指令存在时
错误例子:
bind g drop;cheer(指令cheer没被成功绑定)
2、绑定的指令含有空格
错误例子:
bind j sv_cheats 1(指令sv_cheats 1没被成功绑定)
其他:
由于bind指令也是一个指令
以下的指令是正确的
bind "h" "bind j drop"
理论上我们可以无限套娃
也就是bind a bind b bind c bind d cheer
(但是因为语法问题所以做不到)
特别的:
+commands
由于[+指令]的CSGO代码有问题,组合使用[+指令]会出现各种BUG
为了避免这些BUG,我们需要使用在后面学习alias指令和exec指令
BUG例子:
bind "space" "+jump;+duck"
bind "r" "+reload;say_team i'm reloading!"
bind "rctrl" "cheer;+duck"
这些指令是能够成功被绑定的,但是功能会不正常
请注意!在控制台绑定的按键不一定会在按键设置面板中出现,如果要解绑隐藏的按键,请使用key_listboundkeys和unbind指令,详情:


进阶教程:(建议自己动手实验)

进阶教程1:
BindToggle
使用方式:BindToggle KEY CVAR
其中CVAR指的是Commands and variables,也就是带参数的指令[COMMANDS]
特别的:bingtoggle只能绑定带一个参数的指令
例子:bindtoggle "j" "sv_cheats" (其中绑定的时候不需要输入参数)
运行效果:
默认→sv_cheats 0
按下→sv_cheats 1
按下→sv_cheats 0
按下→sv_cheats 1
按下→......

进阶教程2:
Bind incrementvar
bind incrementvar是bindtoggle的进阶模式
同样的,incrementvar只能绑定带一个参数的指令
使用方式:bind KEY "incrementvar CVAR Min Max Step"(其中双引号["]不能省略)
我们同样以sv_cheats作为例子
bind j "incrementvar sv_cheats 0 1 1"
这条指令和前面的bindtoggle "j" "sv_cheats"是完全一样的
运行效果:
默认→sv_cheats 0
按下→sv_cheats 1
按下→sv_cheats 0
按下→sv_cheats 1
按下→......
指令分析:
bind j "incrementvar sv_cheats 0 1 1"
这是一条加法指令,其中最重要的参数是后面的三个数字,也就是0、1、1
其中第一个参数[0]指的是最小值
其中第二个参数[1]指的是最大值
其中第三个参数[1]指的是步长
我们通过调整参数来学习指令的使用
首先我们调整第二个参数,最大值[1]→[5]
bind j "incrementvar sv_cheats 0 5 1"
默认→sv_cheats 0
按下→sv_cheats 1
按下→sv_cheats 2
按下→sv_cheats 3
按下→sv_cheats 4
按下→sv_cheats 5
按下→sv_cheats 0
按下→sv_cheats 1
按下→......
我们调整第一个参数,最小值[0]→[-3]
bind j "incrementvar sv_cheats -3 5 1"
默认→sv_cheats 0
按下→sv_cheats 1
按下→sv_cheats 2
按下→sv_cheats 3
按下→sv_cheats 4
按下→sv_cheats 5
按下→sv_cheats -3
按下→sv_cheats -2
按下→......
我们调整第三个参数,步长[1]→[4]
bind j "incrementvar sv_cheats -3 5 4"
默认→sv_cheats 0
按下→sv_cheats 4
按下→sv_cheats -3
按下→sv_cheats 1
按下→sv_cheats 5
按下→sv_cheats -3
按下→sv_cheats 1
按下→sv_cheats 5
按下→......
可以发现一个特点
参数超过最大值后,控制台会直接将参数直接变为最小值[-3]
也就是溢出的数值会被忽略掉,参数被重新设置为最小值
特别的:
Bind decrementvar[不存在]
CSGO控制台是没有减法指令[decrementvar]的
所以我们可以通过调整第三个参数,步长[4]→[-4],来实现减参数
bind j "incrementvar sv_cheats -3 5 -4"
默认→sv_cheats 0
按下→sv_cheats 5
按下→sv_cheats -1
按下→sv_cheats -3
按下→sv_cheats 5
按下→sv_cheats -1
按下→sv_cheats -3
按下→......
特别的:
参数并不是一个完整的循环[Circle]
当参数超过最小值后,控制台会直接将参数直接设置为最大值
当参数超过最大值后,控制台会直接将参数直接设置为最小值
溢出的数值会被直接忽略掉,参数被直接设置为最大最小值

文章到这里就结束了
如果可以,请给我充电吧,非常感谢♪(・ω・)ノThanks

转载请注明作者:bilibili-破亚空