CSGO綁定按鍵原理與方法(上),CSGO控制臺指令bind、bindtoggle詳解【破亞空CSGO】

請注意!本文章假設(shè)您會使用控制臺,本文不會對控制臺的使用方法進(jìn)行任何說明
如果您想了解控制臺是什么,可以觀看:av56214232
請注意!在使用控制臺之前,建議您先備份好自己的csgo設(shè)置,以避免誤操作導(dǎo)致難以修復(fù)的問題。cfg的備份方法:

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

bind→使用方式:
? ??bind KEY COMMANDS
????bind "按鍵"?"指令"
????(不區(qū)分大小寫)
例子:綁定滾輪上為跳躍
bind "mwheelup"?"+jump"

bind→指令分析:
bind指令包含三個東西,bind、按鍵和指令
一個完整的bind指令:
bind "[按鍵]" "[指令]"

按鍵[KEY]
我們先從按鍵講起
在CSGO中,無論是鼠標(biāo)按鍵、鍵盤按鍵還是手柄按鍵,都屬于按鍵
但是這并不意味著所有的按鍵都能夠在CSGO中正常使用
CSGO按鍵列表

我們只能夠使用列表中包含的按鍵(當(dāng)然已經(jīng)足夠我們使用了)
其中值得注意的是
按鍵:鼠標(biāo)按鍵[mouse]
鼠標(biāo)按鍵只支持7個
mouse1 鼠標(biāo)左鍵
mouse2 鼠標(biāo)右鍵
mouse3 鼠標(biāo)中鍵(滾輪按下去)
mouse4 鼠標(biāo)側(cè)鍵
mouse5 鼠標(biāo)側(cè)鍵
mwheelup 滾輪向下
mwheeldown 滾輪向上
這意味著如果你的鼠標(biāo)側(cè)鍵大于兩個,那你需要在鼠標(biāo)驅(qū)動當(dāng)中將其他側(cè)鍵設(shè)置為鍵盤按鍵/搖桿按鍵才能正常使用
按鍵:鍵盤[keyboard]
CSGO不支持Win鍵、Fn鍵和媒體鍵
其中值得注意的是:shift、alt、ctrl
這三個按鍵在我們的鍵盤上都有兩個,一左一右,分別對應(yīng)為:
shift/rshift
alt/ralt
ctrl/rctrl
例子:綁定左ctrl為蹲伏,綁定右ctrl為跳躍
bind "ctrl"?"+duck";bind "rctrl"?"+jump";

指令[COMMAND]
要使用指令,首先我們要知道我們有什么指令可以用
獲取指令的方法:
1、百度(搜索引擎)
2、控制臺輸入:find "關(guān)鍵字"(CSGO控制臺搜索)
3、blog.counter-strike.net(CSGO官方更新文檔)
4、https://totalcsgo.com/commands(第三方網(wǎng)站 個人推薦)
5、developer.valvesoftware.com(valve開發(fā)者文檔?不推薦新手使用)
解析:
指令的使用本身是不需要綁鍵的
只要直接在控制臺輸入正確的指令名稱,CSGO就會自動地執(zhí)行指令
像是我們常見的改準(zhǔn)星指令、作弊指令等等
都可以完全獨(dú)立于按鍵[KEY]使用
綁鍵的目的,更多的時候是為了方便

明白了按鍵和指令之后
我們就可以打開CSGO進(jìn)行按鍵綁定了
例子:
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指令
組合符號-雙引號[""]
雙引號["]用于組合多個參數(shù)(雙引號必須是英文輸入法)
正確例子:
bind "g"?"drop;cheer"?
錯誤例子:
bind “g” “drop;cheer”(雙引號錯誤)
bind "space;mwheelup"?"+jump"(不能用于組合按鍵)
在多數(shù)情況下,雙引號是可以被省略的
正確例子:
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代碼有問題,組合使用[+指令]會出現(xiàn)各種BUG
為了避免這些BUG,我們需要使用在后面學(xué)習(xí)alias指令和exec指令
BUG例子:
bind?"space"?"+jump;+duck"
bind "r" "+reload;say_team i'm reloading!"
bind "rctrl" "cheer;+duck"
這些指令是能夠成功被綁定的,但是功能會不正常
請注意!在控制臺綁定的按鍵不一定會在按鍵設(shè)置面板中出現(xiàn),如果要解綁隱藏的按鍵,請使用key_listboundkeys和unbind指令,詳情:


進(jìn)階教程:(建議自己動手實(shí)驗)

進(jìn)階教程1:
BindToggle
使用方式:BindToggle KEY CVAR
其中CVAR指的是Commands and variables,也就是帶參數(shù)的指令[COMMANDS]
特別的:bingtoggle只能綁定帶一個參數(shù)的指令
例子:bindtoggle "j" "sv_cheats"????(其中綁定的時候不需要輸入?yún)?shù))
運(yùn)行效果:
默認(rèn)→sv_cheats 0
按下→sv_cheats 1
按下→sv_cheats 0
按下→sv_cheats 1
按下→......

進(jìn)階教程2:
Bind incrementvar
bind incrementvar是bindtoggle的進(jìn)階模式
同樣的,incrementvar只能綁定帶一個參數(shù)的指令
使用方式:bind KEY "incrementvar CVAR Min Max Step"(其中雙引號["]不能省略)
我們同樣以sv_cheats作為例子
bind j "incrementvar sv_cheats 0 1 1"
這條指令和前面的bindtoggle "j"?"sv_cheats"是完全一樣的
運(yùn)行效果:
默認(rèn)→sv_cheats 0
按下→sv_cheats 1
按下→sv_cheats 0
按下→sv_cheats 1
按下→......
指令分析:
bind j "incrementvar sv_cheats 0 1 1"
這是一條加法指令,其中最重要的參數(shù)是后面的三個數(shù)字,也就是0、1、1
其中第一個參數(shù)[0]指的是最小值
其中第二個參數(shù)[1]指的是最大值
其中第三個參數(shù)[1]指的是步長
我們通過調(diào)整參數(shù)來學(xué)習(xí)指令的使用
首先我們調(diào)整第二個參數(shù),最大值[1]→[5]
bind j "incrementvar sv_cheats 0 5 1"
默認(rèn)→sv_cheats 0
按下→sv_cheats 1
按下→sv_cheats 2
按下→sv_cheats 3
按下→sv_cheats 4
按下→sv_cheats 5
按下→sv_cheats 0
按下→sv_cheats 1
按下→......
我們調(diào)整第一個參數(shù),最小值[0]→[-3]
bind j "incrementvar sv_cheats -3 5 1"
默認(rèn)→sv_cheats 0
按下→sv_cheats 1
按下→sv_cheats 2
按下→sv_cheats 3
按下→sv_cheats 4
按下→sv_cheats 5
按下→sv_cheats -3
按下→sv_cheats -2
按下→......
我們調(diào)整第三個參數(shù),步長[1]→[4]
bind j "incrementvar sv_cheats -3 5 4"
默認(rèn)→sv_cheats 0
按下→sv_cheats 4
按下→sv_cheats -3
按下→sv_cheats 1
按下→sv_cheats 5
按下→sv_cheats -3
按下→sv_cheats 1
按下→sv_cheats 5
按下→......
可以發(fā)現(xiàn)一個特點(diǎn)
參數(shù)超過最大值后,控制臺會直接將參數(shù)直接變?yōu)樽钚≈礫-3]
也就是溢出的數(shù)值會被忽略掉,參數(shù)被重新設(shè)置為最小值
特別的:
Bind decrementvar[不存在]
CSGO控制臺是沒有減法指令[decrementvar]的
所以我們可以通過調(diào)整第三個參數(shù),步長[4]→[-4],來實(shí)現(xiàn)減參數(shù)
bind j "incrementvar sv_cheats -3 5 -4"
默認(rèn)→sv_cheats 0
按下→sv_cheats 5
按下→sv_cheats -1
按下→sv_cheats -3
按下→sv_cheats 5
按下→sv_cheats -1
按下→sv_cheats -3
按下→......
特別的:
參數(shù)并不是一個完整的循環(huán)[Circle]
當(dāng)參數(shù)超過最小值后,控制臺會直接將參數(shù)直接設(shè)置為最大值
當(dāng)參數(shù)超過最大值后,控制臺會直接將參數(shù)直接設(shè)置為最小值
溢出的數(shù)值會被直接忽略掉,參數(shù)被直接設(shè)置為最大最小值

文章到這里就結(jié)束了
如果可以,請給我充電吧,非常感謝?(?ω?)?Thanks

轉(zhuǎn)載請注明作者:bilibili-破亞空