綁定

From DDraceNetwork
Revision as of 13:55, 28 July 2023 by Darkh (talk | contribs)

DNet客戶端擁有一系列的指令與設置(或者參照[官方網站])能夠與您鍵盤和鼠標的幾乎所有按鍵綁定,對於常用指令來說使用綁定好的按鍵可以避免每次使用該指令時麻煩的鍵入。當然這些指令也可以直接在控制台(默認使用F1按鍵打開)啟用。

語法

單指令綁定

bind [按键] [设置/指令] [可选参数]

上面一條是單指令綁定的基本語法。

  • [按鍵]:鍵盤和鼠標上您所選的某個按鍵。
  • [設置/指令]:您可以在官方網站(客戶端設置客戶端指令)或站內頁面(設置和指令)查閱所有可用設置和指令。
  • [參數]:您想要調整的設置或指令的變量或者可選參數。(僅有某些設置需要使用參數,指令和某些設置無需參數)

倘若您不知道某個按鍵的名稱,可以在這個頁面中查找,亦或者在遊戲設置 > 控制中隨意找一格按下你想要的按鍵,在更改按鍵功能的同時便會顯示按鍵名稱,之後記得將它改回去,否則會影響原有的按鍵功能。您也可以將修飾鍵ctrl⇧ Shiftalt和GUI鍵(即Windows的⊞ Win、Mac的⌘ Command、Linux的Super)一起綁定使用,使用ctrl時語法如下:

bind ctrl+[按键] [设置/指令] [参数]

注意:修飾鍵作為綁定的唯一按鍵而不是在組合鍵中使用時,可能需要添加 left(左)和 right(右)的首字母來區分左右兩側的不同按鍵。例如左⇧ Shift的綁定如下:

bind lshift [设置/指令] [参数]

多指令綁定

您可以使用分號將多條設置與指令寫成長句綁定到單一按鍵上,並通過特定的引用方式(如雙引號")將它們嵌套,理論上這一長句沒有長度限制,但是實際上客戶端一次只能接受255個字符:

bind [按键] "[设置/指令] [参数];[设置/指令] [参数]"

注意在兩個雙引號"之間的部分當作一個整體,實際上上面例子中按鍵之後的部分可以看作是單指令綁定中的設置/命令而沒有輸入可選參數,使用雙引號的另一個作用是方便斷句,分號前後的部分不會因為分號的存在而被當作兩個不同句子。當您按下此按鍵後,所有綁定到這個按鍵的設置與指令會在同一時間被激活,而不是依次激活。如果您想它們依次激活,您可以將它們分別綁定到不同的按鍵上,依次按下以激活,或者利用配置文件的嵌套讓您多次按下同一按鍵時順序激活不同的設置與指令。

嵌套綁定

您可以使用一對雙引號將一條綁定嵌套在另一綁定中,但是由於英文的雙引號沒有正反的區分,同時存在多對雙引號的句子可能產生歧義,為此需要使用轉義字符反斜槓 \ 區分不成對的雙引號,下面這個例子展示了兩層嵌套的情況:

bind [按键] "bind [按键] \"[设置/指令] [参数]; bind [按键] \\\"[设置/指令] [参数] \\\"\""

可以看到在第二層嵌套時使用的反斜槓是三個而不是兩個,這是因為根據語法規範,被雙引號引用的句子裏的特殊字符需要進行轉義,也就是說特殊字符比如雙引號本身需要在其前面添加一個反斜槓,但是反斜槓也是特殊字符,在上述例子中,連續三個斜槓的奇數(單數)位置的斜槓是用來轉義的,第一個斜槓對第二個斜槓進行了轉義,第三個斜槓對雙引號進行了轉義,於是第二個反斜槓和雙引號從帶有特定功能的特殊字符轉變為普通的沒有功能的字符,這兩個字符變成了和第一層嵌套一樣的結構。客戶端的字符長度限制為255,而每一層嵌套的反斜槓數量為上一層的反斜槓數量乘二加一,其原因會在後文說明。倘若您使用六層嵌套,反斜槓數量將會是240個(1*2 + 3*2 + 7*2 + 15*2 + 31*2 + 63*2),這樣您只剩15個字符可鍵入,因此只能接受最多五層嵌套。每一層的反斜槓數量如下:

第一层:1                  \               "
第二层:3          \       \       \       "
第三层:7      \   \   \   \   \   \   \   "
第四层:15   \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "
第五层:31  \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"

可以看到將每一層奇數(單數)位置的反斜槓去掉後得到的正好就是上一層的反斜槓,這正是上文提到的每層反斜槓為2n+1的原因,n是上一層的反斜槓數量,實際上2n+1 = n + n + 1,其中n個是上一層應該有的反斜槓,另外n個是轉義反斜槓使用的反斜槓,剩下 1 個是轉義雙引號使用的反斜槓。如果您仍感到疑惑,可看下方的拆解:

bind [按键] 
 "bind [按键] 
  \"[设置/指令] [参数]; bind [按键] 
   \\\"[设置/指令] [参数]; bind [按键] 
    \\\\\\\"[设置/指令] [参数]
    \\\\\\\"
   \\\"
  \"
 "

注意:你無法通過以上代碼使一個cfg文件運行。這個例子只是為了清晰的展示出嵌套的用法。

實用設置與指令

切換鍵

切換(Toggle)指令可以讓您使用單個按鍵切換設置/指令的可選參數的兩個值。客戶端中有兩種切換鍵的用法:

  • toggle:在按下按鍵時在兩個參數值之間切換一次。
  • +toggle:在按住按鍵時啟用第一個參數值,鬆開按鍵時啟用第二個參數值。
bind [按键] toggle [设置] [参数1] [参数2]
bind [按键] +toggle [设置] [参数1] [参数2]

發言

發言(Say)是一個重要的綁定。這個指令不僅可以幫您在聊天欄中快速發言,例如快捷發送問候語,還可以使用那些聊天欄指令,例如加入組隊的 /team。實際上在下面的用法示例中,say後面的內容和直接在聊天欄中鍵入的效果完全一致:

bind [按键] say /[聊天框指令]
bind [按键] say [聊天信息]

顏色

下面是一些可以設置或者查看顏色的客戶端指令的例子:

  • player_color_body
  • player_color_feet
  • cl_message_client_color

以上為部分例子,分別代表了玩家的皮膚身體顏色、腳顏色、客戶端信息顏色。

想獲取您需要的色值,可先在設定內調好,再通過F1控制台查詢。例如在 設置 > Tee 里將本體身體顏色調成綠色後,可以在控制台內直接輸入與其對應的參數名player_color_body ,客戶端將返回這個參數的值,通常是Value:後的一串數字。

色值

记住这个色值后使用以下绑定可以快速设置颜色:
bind [按键] player_color_body 5635840

當然色值可以使用十六進制的RGB值來代替,使用時需要在數值前方添加符號$,具體方法如下:

bind [按键] player_color_body $00FF00

在色值一項,也可以直接使用某些顏色名:紅色red黃色yellow綠色green青色cyan藍色blue品紅色magenta白色white灰色gray黑色 black

表情

表情(Emote)指令可以讓您繞過表情選擇器直接發出表情。

指令與參數 表情解釋 英語原文
emote 0 哀哉 oop
emote 1 感嘆 exclamation
emote 2 愛心 hearts
emote 3 汗滴 drop
emote 4 緘默 dotdot
emote 5 聞歌 music
emote 6 抱歉 sorry
emote 7 懵鬼 ghost
emote 8 爆筋 sushi
emote 9 炸毛 splattee
emote 10 魔鬼 deviltee
emote 11 惡言 zomg
emote 12 睏覺 zzz
emote 13 驚疑 wtf
emote 14 笑眼 eyes
emote 15 問號 question

假如您想發出笑眼表情時,您要輸入:

bind [按键] emote 14

其它

如果您想知道某个按键的绑定情况,输入:
binds [按键]

當按鍵為空時,則會顯示所有按鍵的綁定。

如果您想取消某個按鍵的綁定,輸入:

unbind [按键]

取消所有按鍵的綁定則輸入:

unbindall

配置文件

語法

對於更複雜的綁定,建議您創建並使用配置文件,然後通過綁定啟用配置文件來實現複雜的功能。

settings.cfg

[设置/指令] [参数]
[设置/指令] [参数]
[设置/指令] [参数]; [设置/指令] [参数]
[设置/指令] [参数]; [设置/指令] [参数]
……
bind [按键] [设置/指令] [参数]
bind [按键] exec [文件名.cfg]
……

如上所示,配置文件可以自行重命名,綁定時也要輸入對應的文件名。在配置文件 settings.cfg 里,多條設置/指令可以以分號或分行分隔開,但是為了避免嵌套相關的歧義更建議進行分行。您可將您所要使用的設置/指令/綁定都寫在同一個配置文件里,然後將其綁定在按鍵上,這樣這個按鍵將會同時執行配置文件裏面的所有內容:

bind [按键] [settings.cfg]

備註:後綴名.cfg可以任意更改,只要文件中的內容恰當便可正常使用,只不過這一後綴看起來更規範。

路徑與執行指令

您需要將配置文件放在配置目錄中才能正常使用,有關於配置目錄的路徑,詳見:《DDNet》配置文件,配置目錄在哪?

將配置文件放在正確的路徑後,您可以在F1控制台使用exec指令直接執行它,或者綁定後按下選取的按鍵來執行它:

bind [按键] exec [配置文件.cfg]

如果配置文件存放在配置目錄下的子文件夾中,您需要補充文件夾路徑:

bind [按键] exec [文件夹/文件夹/配置文件.cfg]

切換鍵進階

不依靠切換鍵(Toggle)指令也可以使用某個按鍵切換一些參數,比如利用兩個配置文件相互執行來實現這一功能,您需要創建兩個配置文件:

file1.cfg

[设置/指令] [参数]
[设置/指令] [参数]
[设置/指令] [参数]
……
bind [按键] exec file2.cfg
……

file2.cfg

[设置/指令] [参数]
[设置/指令] [参数]
[设置/指令] [参数]
……
bind [按键] exec file1.cfg
……

如上所示在兩個配置文件 file1 file2里都包含了一個綁定選取一個按鍵執行對方,兩文件選定的按鍵一般相同(事實上不相同也可以正常執行,只不過需要分別使用對應的按鍵,而且不符合本節切換的意思)。將其中一個配置文件綁定到選定的按鍵中:

bind [按键] exec file1.cfg

這樣您第一次按下該按鍵將會執行 file1.cfg ,而 file1.cfg 內的綁定將該按鍵換綁到了 file2.cfg ;在這之後每按一次按鍵,都會執行配置文件的設置/指令並將按鍵換綁為另一個配置文件,以此達成循環切換。您還可以在此循環中加入多個配置文件,注意這些配置文件內的換綁命令需要形成閉環。

自定義

回顯

回顯(Echo)指令可以返回一些自定義的信息,比如自己設置的提示,讓您明確您執行了配置文件。

[设置/指令] [参数]
[设置/指令] [参数]

echo 设置,启用!

bind [按键] exec 配置文件1.cfg

這樣當您按下[按鍵],而配置文件執行到回顯(echo)那一行時,聊天框內會提示「設置,啟用!」。

您還可以加上顏色:

[设置/指令] [参数]
[设置/指令] [参数]

cl_message_client_color red
echo 设置,关闭!

bind [按键] exec 配置文件1.cfg

這樣當您按下[按鍵]時,聊天框內會提示「設置,關閉!」。將回顯消息定為不同的顏色,可方便您辨識所執行的配置文件。

註釋

在配置文件里,您可使用註釋來說明或提示配置文件的功能,或者僅僅是無聊時在裏面寫個日記,這些註釋內容只能在文件中查看而不會在遊戲中執行,通常可以使用#號表示這一行後面的文字為註釋:

 # 以下几行为设置/指令
[设置/指令] [参数]
[设置/指令] [参数]

# 下一行表示将按键绑定为执行配置文件1 
bind [按键] exec 配置文件1.cfg

示例

鈎索輔助線常開

cl_show_hook_coll_own指令能讓您不按下+showhookcoll綁定(默認為S鍵)顯示輔助線。當您將其參數值設為2時,輔助線會一直對自己顯示(其他玩家不會看見)。下面是實例,echo後的內容可以自行修改:

hook_line_on.cfg

cl_show_hook_coll_own 2

cl_message_client_color green
echo Hook Line ON

bind x exec hook_line_off.cfg

hook_line_off.cfg

cl_show_hook_coll_own 1

cl_message_client_color red
echo Hook Line OFF

bind x exec hook_line_on.cfg

將這兩個配置文件放在配置目錄里,並在F1控制台輸入:

bind x exec hook_line_on.cfg

顯示所有玩家鈎索輔助線

cl_show_hook_coll_other指令能讓您看到所有玩家的輔助線。您可以直接將其添加到默認綁定中:

bind s "+showhookcoll; +toggle cl_show_hook_coll_other 2 1"

深度凍結飛行

深度凍結飛行(英語:Deep Fly)綁定可以讓您的分身朝您 錘擊/開火。如果您的分身處於深度凍結狀態,您使用此綁定錘擊它時,它們也會錘擊您。利用這一綁定,在練習後您可與在深度凍結狀態下的分身飛行(注意某些地圖會禁用深度凍結狀態下錘擊/開火)。即使分身沒有被深度凍結,您也可以用此綁定取代默認的分身自動錘與普通的錘擊飛行,手動錘擊能讓您更好的控制分身的錘擊間隔。


注意:如果地圖作者將地圖設置為 sv_deepfly 0 ,您將無法與深度凍結的tee一起飛行,這可能是因為該技巧與地圖作者的想法衝突,玩家遊玩時需要尊重作者的想法。 題外話:深度凍結飛行的綁定對凍結和解凍狀態下的tee都有效。

cl_dummy_hammer 1是一般在設置里的分身自動錘綁定。使用+toggle指令就能達到在按住按鍵時,分身才自動錘擊的效果,您也可以快速輕敲綁定的按鍵,每次按下按鍵錘擊第一下後就鬆手,從效果上就好像按一下按鍵分身就錘擊 / 開火一下。例如:

bind w +toggle cl_dummy_hammer 1 0

將這一綁定和開火按鍵綁在一起就可以做到本體錘擊分身解凍瞬間分身也回擊,利用分身的錘擊可以進行飛行。利用配置文件的更複雜的綁定如下:

使用兩個配置文件

deepfly_on.cfg

bind mouse1 "+fire; +toggle cl_dummy_hammer 1 0"

cl_message_client_color green
echo Deep Fly ON

bind x exec deepfly_off.cfg

deepfly_off.cfg

bind mouse1 +fire
cl_dummy_hammer 0

cl_message_client_color red
echo Deep Fly OFF

bind x exec deepfly_on.cfg

將這兩個配置文件放在配置路徑里,並在F1控制台輸入:

bind x exec deepfly_on.cfg

使用單個配置文件

例如您可以將以上兩個配置文件整合成一個文件: deepfly.cfg

 bind x "bind mouse1 \"+fire; +toggle cl_dummy_hammer 1 0\";cl_message_client_color green; echo Deep Fly ON; bind x \"bind mouse1 +fire; cl_dummy_hammer 0; cl_message_client_color red; echo Deep Fly OFF; exec deepfly.cfg\""

在這個例子中也可以看到,可以有兩組並列的一層嵌套(\"),而不是二層嵌套。 這個文件執行的指令有:為x鍵綁定功能,具體功能為按下x鍵配置鼠標左鍵和x鍵的換綁,並回顯Deep Fly ON信息,語句到此處包含了使用雙配置文件時的文件1;之後的部分則是文件2。並通過x鍵嵌套的給自身換綁,再度循環回到deepfly.cfg。 將這個配置文件放在配置目錄里,並在F1控制台輸入:

bind x exec deepfly.cfg

注意1:配置文件中假定您的+fire(開火鍵)綁定在mouse1 鼠標左鍵上。

注意2:如果您使用單個配置文件,在您按住開火鍵的同時按下按鍵(上例中為x)關閉綁定的話,會出現所謂卡鍵的情況,因為您的cl_dummy_hammer指令參數切換為1而還未切回來就被意外的換綁中斷。這種卡鍵的問題可以手動將cl_dummy_hammer調整為0恢復,注意上文中兩個配置文件的情形下,deepfly_off.cfg文件中已經包含這一行。

武器切換

cl_dummy_restore_weapon 1

默認設置如上,因此當您的分身未拿錘子而您開啟分身自動錘(以及由此引申的深度凍結飛行綁定)時分身會使用當前的武器開火後馬上切換成錘子,當分身自動錘關閉時它會換回之前的武器,因此通過反覆開關分身自動錘,可以讓分身精準地用激光多次射擊自己,於是就出現如圖片的情況。 您可以將參數更改為0,讓分身武器自動切換為錘子後一直拿着,直到你親自控制分身,它才切換回先前的武器:

cl_dummy_restore_weapon 0

您也可以自行運用切換或者配置文件將下面指令綁定至切換武器的按鍵上。

bind [按键] "+weapon1; cl_dummy_restore_weapon 0"
bind [按键] "+weapon5; cl_dummy_restore_weapon 1"

注意:謹記不要使用+nextweapon+prevweapon(默認綁定為鼠標滾輪向上和鼠標滾輪向下中)切換武器,因為除了鼠標滾輪(不包括無極滾輪)外的按鍵對於輸入的判定更加靈敏,按下按鍵就會高頻率切換武器,出現武器亂切換的情況。

八角定位

這個綁定能保證按住x鍵時鼠標只能指向八個方向(每45度):

bind x "+toggle cl_mouse_max_distance 2 400; +toggle inp_mousesens 1 200; +showhookcoll"

如果不想改變鼠標的最大活動區域和靈敏度的個人習慣,您需要在F1控制台輸入cl_mouse_max_distance查詢自己的第一個參數,之後輸入inp_mousesens獲取第二個參數,將400200分別依次換成自己的兩個參數:

bind x "+toggle cl_mouse_max_distance 2 [您的参数]; +toggle inp_mousesens 1 [您的参数]; +showhookcoll"

變色Tee

要達到在遊玩過程中變色的效果,你可以將player_color_body指令綁定到移動或操作鍵上,例如:

bind a "+left; player_color_body red"

此外您可使用配置文件,以便於調整。以下為例子: rainbow_tee.cfg

bind a "+left; player_color_body red"
bind d "+right; player_color_body yellow"
bind space "+jump; player_color_body green"
bind mouse1 "+fire; player_color_body blue"
bind mouse2 "+hook; player_color_body cyan"

將這配置文件放在配置目錄里,並在F1控制台輸入:

exec rainbow_tee.cfg

您還可使用多個配置文件,方便開關。以下為一組例子: rainbow_tee_on.cfg

bind a "+left; player_color_body red"
bind d "+right; player_color_body yellow"
bind space "+jump; player_color_body green"
bind mouse1 "+fire; player_color_body blue"
bind mouse2 "+hook; player_color_body cyan"

bind x exec rainbow_tee_off.cfg

rainbow_tee_off.cfg

bind a +left
bind d +right
bind space +jump
bind mouse1 +fire
bind mouse2 +hook

bind x exec rainbow_tee_on.cfg

將這兩個配置文件放在恰當的配置路徑,並在F1控制台輸入:

bind x exec rainbow_tee_on.cfg

您也可以加入player_color_feet指令達到更有趣的變色效果。更多顏色相關的指令參見顏色

備註:配置文件中假定了您的的鍵位皆為遊戲默認按鍵。另一方面,改變顏色有延遲

另見