Binds/zh: Difference between revisions

From DDraceNetwork
By (talk | contribs)
Created page with "配置文件可以让您更容易的切换,您只需要创建两个配置文件:"
Darkh (talk | contribs)
No edit summary
 
(90 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{MigrateTranslation}}
<languages/>
<languages/>
在《DDNet》里你能通过F1控制台将[[Settings and Commands/zh|设置与指令]]'''绑定'''到您的键盘和鼠标上
DNet客户端拥有一系列的[[Special:MyLanguage/Settings and Commands|指令与设置]](或者参照[[https://ddnet.org/settingscommands/#client-settings 官方网站]])能够与您键盘和鼠标的几乎所有按键'''绑定''',对于常用指令来说使用绑定好的按键可以避免每次使用该指令时麻烦的键入。当然这些指令也可以直接在控制台(默认使用'''F1'''按键打开)启用


<span id="Syntax"></span>
<span id="Syntax"></span>
Line 8: Line 9:
===单指令绑定===
===单指令绑定===


  bind {{color|green|[按键]}} {{color|blue|[设置/指令]}} {{color|purple|[参数]}}
  bind {{color|green|[按键]}} {{color|blue|[设置/指令]}} {{color|purple|[可选参数]}}


此为绑定的基本语法。   
上面一条是单指令绑定的基本语法。   


*'''[按键]''':键盘和鼠标上您所选的任意按键。
* '''[按键]''':键盘和鼠标上您所选的某个按键。
*'''[设置/指令]''':您可以在官方网站([https://ddnet.org/settingscommands/#client-settings 客户端设置]/[https://ddnet.org/settingscommands/#client-commands 客户端指令])或站内页面([[Settings and Commands/zh#客户端设置|客户端设置]]/[[Settings and Commands/zh#客户端指令|客户端指令]])查找相关设置和指令。
* '''[设置/指令]''':您可以在官方网站([https://ddnet.org/settingscommands/#client-settings 客户端设置]/[https://ddnet.org/settingscommands/#client-commands 客户端指令])或站内页面([[Settings and Commands/zh#客户端设置|设置指令]])查阅所有可用设置和指令。
*'''[参数]''':您想要调整的设置或指令的变量或参数。(仅有某些设置需要使用参数,指令和某些设置无需参数)
* '''[参数]''':您想要调整的设置或指令的变量或者可选参数。(仅有某些设置需要使用参数,指令和某些设置无需参数)
倘若您不知道某个按键的名称,可以在[https://github.com/ddnet/ddnet/blob/master/src/engine/client/keynames.h 这个页面]中查找,亦或者在游戏设置 > 控制中随意找一格按下你想要的按键,会显示按键名称。您也可以修饰键{{key press|ctrl}}、{{key press|shift}}、{{key press|alt}}和GUI键(即Windows的{{key press|Win}}、Mac的{{key press|Command}}、Linux的{{key press|Super}})一起使用,如下:
倘若您不知道某个按键的名称,可以在[https://github.com/ddnet/ddnet/blob/master/src/engine/client/keynames.h 这个页面]中查找,亦或者在游戏设置 > 控制中随意找一格按下你想要的按键,在更改按键功能的同时便会显示按键名称,之后'''记得'''将它改回去,否则会影响原有的按键功能。您也可以修饰键{{key press|ctrl}}、{{key press|shift}}、{{key press|alt}}和GUI键(即Windows的{{key press|Win}}、Mac的{{key press|Command}}、Linux的{{key press|Super}})一起绑定使用,使用{{key press|ctrl}}时语法如下:
  bind {{color|magenta|ctrl+}}{{color|green|[按键]}} {{color|blue|[设置/指令]}} {{color|purple|[参数]}}
  bind {{color|magenta|ctrl+}}{{color|green|[按键]}} {{color|blue|[设置/指令]}} {{color|purple|[参数]}}
注意:修饰键作为绑定的唯一按键而不是在组合键中使用时,可能需要添加 left(左)和 right(右)的首字母来区分左右两侧的不同按键。例如左{{key press|shift}}的绑定如下:
bind {{color|green|lshift}} {{color|blue|[设置/指令]}} {{color|purple|[参数]}}


<span id="Multiple_binds"></span>
<span id="Multiple_binds"></span>
===多指令绑定===
===多指令绑定===


您可以使用分号将多条设置与指令绑定到单一按键上:
您可以使用分号将多条设置与指令写成长句绑定到单一按键上,并通过特定的引用方式(如双引号")将它们嵌套,理论上这一长句没有长度限制,但是实际上客户端一次只能接受255个字符
  bind {{color|green|[按键]}} {{color|red|"}}{{color|blue|[设置/指令]}} {{color|purple|[参数]}}{{color|red|;}}{{color|blue|[设置/指令]}} {{color|purple|[参数]}}{{color|red|"}}
  bind {{color|green|[按键]}} {{color|red|"}}{{color|blue|[设置/指令]}} {{color|purple|[参数]}}{{color|red|;}}{{color|blue|[设置/指令]}} {{color|purple|[参数]}}{{color|red|"}}
当您按下此按键后,所有绑定到这个按键的设置与指令会在同一时间被激活,换言之,这些设置与指令会按照您所写的顺序依次激活。如果您想它们依次激活,您可以将它们分别绑定到不同的按键上,依次按下以激活,或者[[Special:MyLanguage/Binds#Using_Config_Files config files|使用配置文件]]让您多次按下同一按键时激活不同的设置与指令。
注意在两个双引号{{key press|"}}之间的部分当作一个整体,实际上上面例子中按键之后的部分可以看作是单指令绑定中的设置/命令而没有输入可选参数,使用双引号的另一个作用是方便断句,分号前后的部分不会因为分号的存在而被当作两个不同句子。当您按下此按键后,所有绑定到这个按键的设置与指令会在同一时间被激活,依次激活。如果您想它们依次激活,您可以将它们分别绑定到不同的按键上,依次按下以激活,或者利用[[Special:MyLanguage/Binds#Using_Config_Files config files|配置文件]]的嵌套让您多次按下同一按键时顺序激活不同的设置与指令。


<span id="Nested_binds"></span>
<span id="Nested_binds"></span>
===嵌套绑定===
===嵌套绑定===


您可以使用反斜杠将一条绑定嵌套在另一绑定中:
您可以使用一对'''双引号'''将一条绑定嵌套在另一绑定中,但是由于英文的双引号没有正反的区分,同时存在多对双引号的句子可能产生歧义,为此需要使用转义字符反斜杠 '''\''' 区分不成对的双引号,下面这个例子展示了两层嵌套的情况
  bind {{color|green|[按键]}} {{color|red|"}}bind {{color|green|[按键]}} {{color|orange|\}}{{color|red|"}}{{color|blue|[设置/指令]}} {{color|purple|[参数]}}{{color|red|;}} bind {{color|green|[按键]}} {{color|orange|\\\}}{{color|red|"}}{{color|blue|[设置/指令]}} {{color|purple|[参数]}} {{color|orange|\\\}}{{color|red|"}}{{color|orange|\}}{{color|red|""}}
  bind {{color|green|[按键]}} {{color|red|"}}bind {{color|green|[按键]}} {{color|orange|\}}{{color|red|"}}{{color|blue|[设置/指令]}} {{color|purple|[参数]}}{{color|red|;}} bind {{color|green|[按键]}} {{color|orange|\\\}}{{color|red|"}}{{color|blue|[设置/指令]}} {{color|purple|[参数]}} {{color|orange|\\\}}{{color|red|"}}{{color|orange|\}}{{color|red|""}}
客户端的字符长度限制为255,而每一层嵌套的反斜杠数量为上一层的反斜杠数量乘二加一。倘若您使用六层嵌套,反斜杠数量将会是240个(1*2 + 3*2 + 7*2 + 15*2 + 31*2 + 63*2),这样您只剩15个字符可键入,因此只能接受最多五层嵌套。每一层的反斜杠数量如下:
可以看到在第二层嵌套时使用的反斜杠是三个而不是两个,这是因为根据语法规范,被双引号引用的句子里的特殊字符需要进行转义,也就是说特殊字符比如双引号本身需要在其前面添加一个反斜杠,但是反斜杠也是特殊字符,在上述例子中,连续三个斜杠的奇数(单数)位置的斜杠是用来转义的,第一个斜杠对第二个斜杠进行了转义,第三个斜杠对双引号进行了转义,于是第二个反斜杠和双引号从带有特定功能的特殊字符转变为普通的没有功能的字符,这两个字符变成了和第一层嵌套一样的结构。客户端的字符长度限制为255,而每一层嵌套的反斜杠数量为上一层的反斜杠数量乘二加一,其'''原因'''会在后文说明。倘若您使用六层嵌套,反斜杠数量将会是240个(1*2 + 3*2 + 7*2 + 15*2 + 31*2 + 63*2),这样您只剩15个字符可键入,因此只能接受最多五层嵌套。每一层的反斜杠数量如下:


1 = 1  {{color|orange|\}}
第一层:1                  {{color|black|\}}              {{color|green|"}}
2 = 3  {{color|orange|\\\}}
第二层:3          {{color|red|\}}      {{color|black|\}}      {{color|red|\}}      {{color|green|"}}
3 = 7   {{color|orange|\\\\\\\}}
第三层:7      {{color|purple|\}}   {{color|red|\}}  {{color|purple|\}}  {{color|black|\}}  {{color|purple|\}}  {{color|red|\}}  {{color|purple|\}}  {{color|green|"}}
4 = 15  {{color|orange|\\\\\\\\\\\\\\\}}
第四层:15  {{color|blue|\}} {{color|purple|\}} {{color|blue|\}} {{color|red|\}} {{color|blue|\}} {{color|purple|\}} {{color|blue|\}} {{color|black|\}} {{color|blue|\}} {{color|purple|\}} {{color|blue|\}} {{color|red|\}} {{color|blue|\}} {{color|purple|\}} {{color|blue|\}} {{color|green|"}}
5 = 31 {{color|orange|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\}}
第五层:31 {{color|magenta|\}}{{color|blue|\}}{{color|magenta|\}}{{color|purple|\}}{{color|magenta|\}}{{color|blue|\}}{{color|magenta|\}}{{color|red|\}}{{color|magenta|\}}{{color|blue|\}}{{color|magenta|\}}{{color|purple|\}}{{color|magenta|\}}{{color|blue|\}}{{color|magenta|\}}{{color|black|\}}{{color|magenta|\}}{{color|blue|\}}{{color|magenta|\}}{{color|purple|\}}{{color|magenta|\}}{{color|blue|\}}{{color|magenta|\}}{{color|red|\}}{{color|magenta|\}}{{color|blue|\}}{{color|magenta|\}}{{color|purple|\}}{{color|magenta|\}}{{color|blue|\}}{{color|magenta|\}}{{color|green|"}}
如果您仍感到疑惑,可看下方的拆解:
可以看到将每一层奇数(单数)位置的反斜杠去掉后得到的正好就是上一层的反斜杠,这正是上文提到的每层反斜杠为2n+1的原因,n是上一层的反斜杠数量,实际上2n+1 = n + n + 1,其中n个是上一层应该有的反斜杠,另外n个是转义反斜杠使用的反斜杠,剩下 1 个是转义双引号使用的反斜杠。如果您仍感到疑惑,可看下方的拆解:


  bind {{color|green|[按键]}}  
  bind {{color|green|[按键]}}  
Line 48: Line 51:
   {{color|orange|\}}{{color|red|"}}
   {{color|orange|\}}{{color|red|"}}
   {{color|red|"}}
   {{color|red|"}}
'''注意''':你无法通过以上代码使一个cfg文件运行。这个例子只是为了清晰的展示出嵌套的用法。


<span id="Useful_Commands_&amp;_Settings"></span>
<span id="Useful_Commands_&amp;_Settings"></span>
Line 53: Line 57:


<span id="Toggles"></span>
<span id="Toggles"></span>
====切换====
====切换====


切换(英语:Toggles)指令可以让您单个按键切换设置的两个参数。客户端中有两种切换方式。
'''切换'''(Toggle)指令可以让您使用单个按键切换设置/指令的可选参数的两个。客户端中有两种切换键的用法:


*'''toggle''':令您每一次按键时切换为另个参数
*'''toggle''':按键时在两个参数值之间切换一
*'''+toggle''':令您在按按键时使用第一个参数,松开按键时则使用第二个参数。
*'''+toggle''':在按按键时用第一个参数,松开按键时用第二个参数


  bind {{color|green|[按键]}} {{color|red|"}}{{color|magenta|toggle}} {{color|blue|[设置]}} {{color|purple|[参数1] [参数2]}}{{color|red|"}}
  bind {{color|green|[按键]}} {{color|magenta|toggle}} {{color|blue|[设置]}} {{color|purple|[参数1] [参数2]}}


  bind {{color|green|[按键]}} {{color|red|"}}{{color|magenta|+toggle}} {{color|blue|[设置]}} {{color|purple|[参数1] [参数2]}}{{color|red|"}}
  bind {{color|green|[按键]}} {{color|magenta|+toggle}} {{color|blue|[设置]}} {{color|purple|[参数1] [参数2]}}


<span id="Say"></span>
<span id="Say"></span>
====说话====
==== 发言 ====


说话(英语:Say)指令可以帮您在聊天框里快速文本
发言(Say是一个重要的绑定。这个指令不仅可以帮您在聊天栏中快速发言,例如快捷发送问候语,还可以使用那些聊天栏指令,例如加组队的 /team实际上在下面的用法示例中,say后面的内容和直接在聊天栏中键入的效果完全一致:
  bind {{color|green|[按键]}} {{color|magenta|say}} {{color|blue|/[聊天框指令]}}
  bind {{color|green|[按键]}} {{color|magenta|say}} {{color|blue|/[聊天框指令]}}


Line 75: Line 79:
====颜色====
====颜色====


客户端指令可以让您设置颜色
下面是一些可以设置或者查看颜色的客户端指令的例子:


*'''player_color_body'''
*'''player_color_body'''
Line 81: Line 85:
*'''cl_message_client_color'''
*'''cl_message_client_color'''


以上为部分例子。
以上为部分例子,分别代表了玩家的皮肤身体颜色、脚颜色、客户端信息颜色


知道要的参数可先在设定内调好,再在F1控制台查询。例如在 设置 > Tee 里将本体身体颜色调成绿色后,可以在控制台内使用与其对应的客户端指令<code>player_color_body
获取要的色,可先在设定内调好,再通过F1控制台查询。例如在 设置 > Tee 里将本体身体颜色调成绿色后,可以在控制台内直接输入与其对应的参数名<code>player_color_body
</code>,返回'''Value:'''后的一串数字则是您所调的绿色的参数
</code>,客户端将返回这个参数的值,通常是'''Value:'''后的一串数字。


[[File:Colors.png]]
[[File:Colors.png|色值]]


  您可使用以下绑定快速设置颜色:
  记住这个色值后使用以下绑定可以快速设置颜色:
  bind {{color|green|[按键]}} {{color|blue|player_color_body}} {{color|purple|5635840}}
  bind {{color|green|[按键]}} {{color|blue|player_color_body}} {{color|purple|5635840}}
或者使用十六进制代
当然色值可以使用十六进制的RGB值来替,使用时需要在数值前方添加符号$,具体方法如下
  bind {{color|green|[按键]}} {{color|blue|player_color_body}} {{color|purple|$00FF00}}
  bind {{color|green|[按键]}} {{color|blue|player_color_body}} {{color|purple|$00FF00}}
客户端支持直接使用某些颜色名:'''red''','''yellow''','''green''','''cyan''','''blue''','''magenta''','''white''','''gray''',''' black'''。
在色值一项,可以直接使用某些颜色名:{{color|red|红色}}'''red''',{{color|yellow|黄色}}'''yellow''',{{color|green|绿色}}'''green''',{{color|cyan|青色}}'''cyan''',{{color|blue|蓝色}}'''blue''',{{color|magenta|品红色}}'''magenta''',{{color|gray|白色}}'''white''',{{color|gray|灰色}}'''gray''',{{color|black|黑色}}''' black'''。


<span id="Emotes"></span>
<span id="Emotes"></span>
====表情====
==== 表情 ====


表情(英语:emote)指令可以让您在不使用表情选择器下快速发出表情。
表情(Emote)指令可以让您绕过表情选择器直接发出表情。
[[File:Emotes.png|right|frameless]]
[[File:Emotes.png|right|frameless]]
{| class="wikitable"
{| class="wikitable"
Line 103: Line 107:
! 指令与参数 !! 表情解释 !! 英语原文
! 指令与参数 !! 表情解释 !! 英语原文
|-
|-
|emote 0 || 哎呀 || oop
|emote 0 || 哀哉 || oop
|-
|-
|emote 1 || 叹 || exclamation
|emote 1 || 叹 || exclamation
|-
|-
|emote 2 || 爱心 || hearts
|emote 2 || 爱心 || hearts
|-
|-
|emote 3 || 汗 || drop
|emote 3 || 汗|| drop
|-
|-
|emote 4 || 无语 || dotdot
|emote 4 || 缄默 || dotdot
|-
|-
|emote 5 || 歌 || music
|emote 5 || 歌 || music
|-
|-
|emote 6 || 抱歉 || sorry
|emote 6 || 抱歉 || sorry
|-
|-
|emote 7 || 鬼|| ghost
|emote 7 || 鬼 || ghost
|-
|-
|emote 8 || 发怒 || sushi
|emote 8 || 爆筋 || sushi
|-
|-
|emote 9 || 谩骂Tee || splattee
|emote 9 || 炸毛 || splattee
|-
|-
|emote 10|| 魔鬼Tee || deviltee
|emote 10|| 魔|| deviltee
|-
|-
|emote 11|| 粗鄙之语 || zomg
|emote 11|| 恶言 || zomg
|-
|-
|emote 12|| 打哈欠 || zzz
|emote 12|| 困觉 || zzz
|-
|-
|emote 13|| 什么鬼 ||wtf
|emote 13|| 惊疑 ||wtf
|-
|-
|emote 14|| 笑|| eyes
|emote 14|| 笑|| eyes
|-
|-
|emote 15|| 问 ||question
|emote 15|| 问||question
|}
|}


假如您想发出鬼魂表情时,您要输入:
假如您想发出笑眼表情时,您要输入:
  bind {{color|green|[按键]}} {{color|blue|emote}} {{color|purple|14}}
  bind {{color|green|[按键]}} {{color|blue|emote}} {{color|purple|14}}


Line 142: Line 146:
====其它====
====其它====


  如果您想知道某个按键的绑定,输入:
  如果您想知道某个按键的绑定情况,输入:
  binds {{color|green|[按键]}}
  binds {{color|green|[按键]}}
您不输入按键时,则会显示所有按键的绑定。
当按键为空时,则会显示所有按键的绑定。


如果您想取消某个按键的绑定,输入:
如果您想取消某个按键的绑定,输入:
  unbind {{color|green|[按键]}}
  unbind {{color|green|[按键]}}
取消所有按键的绑定则输入:
unbindall


<span id="Using_Config_Files"></span>
<span id="Using_Config_Files"></span>
==使用配置文件==
== 配置文件 ==


<span id="Syntax"></span>
<span id="Syntax"></span>
===语法===
=== 语法 ===


对于更复杂的绑定,您可以创建并使用配置文件。
对于更复杂的绑定,建议您创建并使用配置文件,然后通过绑定启用配置文件来实现复杂的功能


'''settings.cfg'''
'''settings.cfg'''
Line 162: Line 168:
  {{color|blue|[设置/指令]}} {{color|purple|[参数]}}{{color|red|;}} {{color|blue|[设置/指令]}} {{color|purple|[参数]}}
  {{color|blue|[设置/指令]}} {{color|purple|[参数]}}{{color|red|;}} {{color|blue|[设置/指令]}} {{color|purple|[参数]}}
  {{color|blue|[设置/指令]}} {{color|purple|[参数]}}{{color|red|;}} {{color|blue|[设置/指令]}} {{color|purple|[参数]}}
  {{color|blue|[设置/指令]}} {{color|purple|[参数]}}{{color|red|;}} {{color|blue|[设置/指令]}} {{color|purple|[参数]}}
……
  bind {{color|green|[按键]}} {{color|blue|[设置/指令]}} {{color|purple|[参数]}}
  bind {{color|green|[按键]}} {{color|blue|[设置/指令]}} {{color|purple|[参数]}}
  bind {{color|green|[按键]}} {{color|magenta|exec}} {{color|blue|[文件名.cfg]}}
  bind {{color|green|[按键]}} {{color|magenta|exec}} {{color|blue|[文件名.cfg]}}
如上,在配置文件里,多条设置/指令可以以分号或分行分隔开。您可将您所要的设置/指令/绑定都写在个配置文件里,然后将其绑定在按键上:
……
如上所示,配置文件可以自行重命名绑定时也要输入对应的文件名。在配置文件 settings.cfg 里,多条设置/指令可以以分号或分行分隔开,但是为了避免嵌套相关的歧义更建议进行分行。您可将您所要使用的设置/指令/绑定都写在同一个配置文件里,然后将其绑定在按键上,这样这个按键将会同时执行配置文件里面的所有内容
  bind {{color|green|[按键]}} {{color|blue|[settings.cfg]}}
  bind {{color|green|[按键]}} {{color|blue|[settings.cfg]}}


'''备注''':后缀名'''.cfg'''可以更改为任何您想要的后缀
'''备注''':后缀名'''.cfg'''可以任意更改,只文件中内容恰当便可正常使用,只不过这一后缀看起来更规范


<span id="Path/Exec"></span>
<span id="Path/Exec"></span>
===路径与执行===
=== 路径与执行指令 ===


您需要将配置文件放在配置目录中,有关于配置目录的路径,详见:[[FAQ/zh#《DDNet》的配置文件,配置目录在哪?|《DDNet》配置文件,配置目录在哪?]]
您需要将配置文件放在配置目录中才能正常使用,有关于配置目录的路径,详见:[[Special:MyLanguage/FAQ#Where_is_the_DDNet_config,_config_directory_or_save_directory?|《DDNet》配置文件,配置目录在哪?]]


当您将配置文件放在正确的路径,您可以在F1控制台使用<code>exec</code>指令执行它:
将配置文件放在正确的路径,您可以在F1控制台使用<code>exec</code>指令直接执行它,或者绑定后按下选取的按键来执行它:
  bind {{color|green|[按键]}} {{color|magenta|exec}} {{color|blue|[配置文件.cfg]}}
  bind {{color|green|[按键]}} {{color|magenta|exec}} {{color|blue|[配置文件.cfg]}}
当您将配置文件放在配置目录下的文件夹中,您需文件夹的名也给打上
如果配置文件放在配置目录下的文件夹中,您需要补充文件夹路径
  bind {{color|green|[按键]}} {{color|magenta|exec}} {{color|blue|[文件夹/to/配置文件.cfg]}}
  bind {{color|green|[按键]}} {{color|magenta|exec}} {{color|blue|[文件夹/文件夹/配置文件.cfg]}}


<span id="Improved_toggle_with_config_files"></span>
<span id="Improved_toggle_with_config_files"></span>
===进阶切换===
===切换键进阶===


配置文件可以让您更容易的切换,您需要创建两个配置文件:
不依靠切换键(Toggle)指令也可以使用某个按键切换一些参数,比如利用两个配置文件相互执行来实现这一功能,您需要创建两个配置文件:


'''配置文件1.cfg'''
'''file1.cfg'''
  {{color|blue|[设置/指令]}} {{color|purple|[参数]}}
  {{color|blue|[设置/指令]}} {{color|purple|[参数]}}
  {{color|blue|[设置/指令]}} {{color|purple|[参数]}}
  {{color|blue|[设置/指令]}} {{color|purple|[参数]}}
  {{color|blue|[设置/指令]}} {{color|purple|[参数]}}
  {{color|blue|[设置/指令]}} {{color|purple|[参数]}}
……
  bind {{color|green|[按键]}} {{color|magenta|exec}} {{color|blue|配置文件2.cfg}}
  bind {{color|green|[按键]}} {{color|magenta|exec}} {{color|blue|file2.cfg}}
'''配置文件2.cfg'''
……
'''file2.cfg'''
  {{color|blue|[设置/指令]}} {{color|purple|[参数]}}
  {{color|blue|[设置/指令]}} {{color|purple|[参数]}}
  {{color|blue|[设置/指令]}} {{color|purple|[参数]}}
  {{color|blue|[设置/指令]}} {{color|purple|[参数]}}
  {{color|blue|[设置/指令]}} {{color|purple|[参数]}}
  {{color|blue|[设置/指令]}} {{color|purple|[参数]}}
……
  bind {{color|green|[按键]}} {{color|magenta|exec}} {{color|blue|配置文件1.cfg}}
  bind {{color|green|[按键]}} {{color|magenta|exec}} {{color|blue|file1.cfg}}
在两个配置文件里的[按键]为同一按键。将其中一个配置文件绑定到[按键]中:
……
  bind {{color|green|[按键]}} {{color|magenta|exec}} {{color|blue|配置文件1.cfg}}
如上所示在两个配置文件 '''file1 file2'''都包含了一个绑定选取一个按键执行对方,两文件选定的按键一般相同(事实上不相同也可以正常执行,只不过要分别使用对应的按键,而且不符合本节切换的意思)。将其中一个配置文件绑定到选定的按键中:
这样您每按一次按键,都会执行相对配置文件的设置/指令并将按键绑为另一个配置文件,以此达循环切换。您还可以在此循环加入配置文件。
  bind {{color|green|[按键]}} {{color|magenta|exec}} {{color|blue|file1.cfg}}
这样您第一次按下该按键将会执行 file1.cfg ,而 file1.cfg 内的绑定将该按键换绑到了 file2.cfg ;在这之后每按一次按键,都会执行配置文件的设置/指令并将按键绑为另一个配置文件,以此达循环切换。您还可以在此循环加入多个配置文件,注意这些配置文件内的换绑命令需要形成闭环


<span id="Customization"></span>
<span id="Customization"></span>
===自定义===
=== 自定义 ===


<span id="Echo"></span>
<span id="Echo"></span>
====回====
==== ====


应(英语:echo)指令可以让您更清楚的了解您执行了什么设/指令
显(Echo)指令可以返回一些自定义的信息,比如自己设置的提示,让您明确您执行了文件
  [设置/指令] [参数]
  [设置/指令] [参数]
  [设置/指令] [参数]
  [设置/指令] [参数]
   
   
  {{color|blue|echo}} {{color|purple|设置}}
  {{color|blue|echo}} {{color|purple|设置,启用!}}
   
   
  bind [按键] exec 配置文件1.cfg
  bind [按键] exec 配置文件1.cfg
这样当您按下[按键]时,聊天框会示“设置”。
这样当您按下[按键],而配置文件执行到回显(echo)那一行时,聊天框示“设置,启用!”。


可以加上颜色:
可以加上颜色:
  [设置/指令] [参数]
  [设置/指令] [参数]
  [设置/指令] [参数]
  [设置/指令] [参数]
   
   
  {{color|blue|cl_message_client_color}} {{color|purple|red}}
  {{color|blue|cl_message_client_color}} {{color|purple|red}}
  {{color|blue|echo}} {{color|purple|设置关}}
  {{color|blue|echo}} {{color|purple|设置闭!}}
   
   
  bind [按键] exec 配置文件1.cfg
  bind [按键] exec 配置文件1.cfg
这样当您按下[按键]时,聊天框会示“{{color|red|设置关}}”。将开关定为不同的颜色,可方便您了解您执行了什么设/指令
这样当您按下[按键]时,聊天框示“{{color|red|设置闭!}}”。将回显消息定为不同的颜色,可方便您辨识所执行的配文件


<span id="Comments"></span>
<span id="Comments"></span>
====注释====
==== 注释 ====


在配置文件里,您可使用注释:
在配置文件里,您可使用注释来说明或提示配置文件的功能,或者仅仅是无聊时在里面写个日记,这些注释内容只能在文件中查看而不会在游戏中执行,通常可以使用#号表示这一行后面的文字为注释:


   {{color|purple|# 以下为设置/指令}}
   {{color|purple|# 以下几行为设置/指令}}
  [设置/指令] [参数]
  [设置/指令] [参数]
  [设置/指令] [参数]
  [设置/指令] [参数]
   
   
  {{color|purple|# 将按键绑定为另一配置文}}  
  {{color|purple|# 下一行表示将按键绑定为执行配置文件1}}  
  bind [按键] exec 配置文件1.cfg
  bind [按键] exec 配置文件1.cfg


<span id="Examples"></span>
<span id="Examples"></span>
==绑定==
==例==


<span id="Hook_line_always_on"></span>
<span id="Hook_line_always_on"></span>
===辅助线常开===
=== 钩索辅助线常开 ===


<code>cl_show_hook_coll_own</code>指令能让您<code>+showhookcoll</code>绑定(默认为{{key press|S}}键)显示辅助线。当您将其参数设为<code>2</code>时,您的辅助线会对您常显示(其他玩家不会看见)。
<code>cl_show_hook_coll_own</code>指令能让您不按下<code>+showhookcoll</code>绑定(默认为{{key press|S}}键)显示辅助线。当您将其参数设为<code>2</code>时,辅助线会一直自己显示(其他玩家不会看见)。下面是实例,echo后的内容可以自行修改:


'''hook_line_on.cfg'''
'''hook_line_on.cfg'''
Line 264: Line 273:


<span id="Everyone&#039;s_hooklines"></span>
<span id="Everyone&#039;s_hooklines"></span>
===显示所有玩家辅助线===
=== 显示所有玩家钩索辅助线 ===


<code>cl_show_hook_coll_other</code>指令能让您看到所有玩家的辅助线。您可以直接将其添加到默认绑定中:
<code>cl_show_hook_coll_other</code>指令能让您看到所有玩家的辅助线。您可以直接将其添加到默认绑定中:
Line 270: Line 279:
  bind {{color|green|s}} {{color|red|"}}{{color|blue|+showhookcoll}}{{color|red|;}} {{color|magenta|+toggle}} {{color|blue|cl_show_hook_coll_other}} {{color|purple|2 1}}{{color|red|"}}
  bind {{color|green|s}} {{color|red|"}}{{color|blue|+showhookcoll}}{{color|red|;}} {{color|magenta|+toggle}} {{color|blue|cl_show_hook_coll_other}} {{color|purple|2 1}}{{color|red|"}}


<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="Deepfly"></span>
===Deep Fly ===
===深度冻结飞行===
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
[[Special:MyLanguage/Deepfly|深度冻结飞行(英语:Deep Fly)]]绑定可以让您的分身朝您{{hammer|锤击}}/开火。如果您的分身处于[[Special:MyLanguage/Freeze|深度冻结状态]],您使用此绑定锤击它时,它们也会锤击您。利用这一绑定,在练习后您可与在深度冻结状态下的分身飞行(注意某些地图会禁用深度冻结状态下锤击/开火)。即使分身没有被深度冻结,您也可以用此绑定取代默认的分身自动锤与普通的[[Special:MyLanguage/Hammerfly|锤击飞行]],手动锤击能让您更好的控制分身的锤击间隔。
The deep fly bind is a way to make your dummy hammer/fire toward you whenever you fire with your main tee.  If your dummy is deep frozen, they can hammer back at you when you hammer them with this bind on. You can use this to fly with your dummy, but it takes practice.  If your dummy is not deep frozen, you can just use this as a alternative version of the regular Dummy Hammerfly bind included in the games settings, where you can fire your pistol each time you want to be hammered.  It offers better control since you can control the timing of your dummy's hammers.
 
</div>
 
'''注意:'''如果地图作者将地图设置为 <code><span style="color:blue">sv_deepfly</span> <span style="color:purple">0</span></code> ,您将无法与深度冻结的tee一起飞行,这可能是因为该技巧与地图作者的想法冲突,玩家游玩时需要尊重作者的想法。
题外话:深度冻结飞行的绑定对冻结和解冻状态下的tee都有效。


<div lang="en" dir="ltr" class="mw-content-ltr">
[[File:Deepfly webm.webm|351x198px|gif]]
[[File:Deepfly webm.webm|351x198px|gif]]
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<code>cl_dummy_hammer 1</code>是一般在设置里的分身自动锤绑定。使用[[Special:MyLanguage/Binds#Toggles|+toggle]]指令就能达到在按住按键时,分身才自动锤击的效果,您也可以快速轻敲绑定的按键,每次按下按键锤击第一下后就松手,从效果上就好像按一下按键分身就锤击 / 开火一下。例如:
The command '''cl_dummy_hammer 1''' is what is used for the regular Dummy Hammerfly bind in the games control options.  By using a [https://wiki.ddnet.org/wiki/Binds#Toggles toggle], you can make your dummy hammer you only when you fire, and can make an on/off switch with config files.
bind w +toggle cl_dummy_hammer 1 0
</div>
将这一绑定和开火按键绑在一起就可以做到本体锤击分身解冻瞬间分身也回击,利用分身的锤击可以进行飞行。利用配置文件的更复杂的绑定如下:


<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="Using_2_Config_Files"></span>
====Using 2 Config Files====
====使用两个配置文件====
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
'''deepfly_on.cfg'''
'''deepfly_on.cfg'''
  bind <span style="color:green">mouse1</span> <span style="color:red">"</span><span style="color:blue">+fire</span><span style="color:red">;</span> <span style="color:magenta">+toggle</span> <span style="color:blue">cl_dummy_hammer</span> <span style="color:purple">1 0<span style="color:red">"</span>
  bind {{color|green|mouse1}} {{color|red|"}}{{color|blue|+fire}}{{color|red|;}} {{color|magenta|+toggle}} {{color|blue|cl_dummy_hammer}} {{color|purple|1 0}}{{color|red|"}}
   
   
  <span style="color:blue">cl_message_client_color</span> <span style="color:purple">green</span>
  {{color|blue|cl_message_client_color}} {{color|purple|green}}
  <span style="color:blue">echo</span> <span style="color:purple">Deep Fly ON</span>
  {{color|blue|echo}} {{color|purple|Deep Fly ON}}
   
   
  bind <span style="color:green">x</span> <span style="color:magenta">exec</span> <span style="color:blue">deepfly_off.cfg</span>
  bind {{color|green|x}} {{color|magenta|exec}} {{color|blue|deepfly_off.cfg}}
'''deepfly_off.cfg'''
'''deepfly_off.cfg'''
  bind <span style="color:green">mouse1</span> <span style="color:blue">+fire</span>
  bind {{color|green|mouse1}} {{color|blue|+fire}}
  <span style="color:blue">cl_dummy_hammer</span> <span style="color:purple">0</span>
  {{color|blue|cl_dummy_hammer}} {{color|purple|0}}
   
   
  <span style="color:blue">cl_message_client_color</span> <span style="color:purple">red</span>
  {{color|blue|cl_message_client_color}} {{color|purple|red}}
  <span style="color:blue">echo</span> <span style="color:purple">Deep Fly OFF</span>
  {{color|blue|echo}} {{color|purple|Deep Fly OFF}}
   
   
  bind <span style="color:green">x</span> <span style="color:magenta">exec</span> <span style="color:blue">deepfly_on.cfg</span>
  bind {{color|green|x}} {{color|magenta|exec}} {{color|blue|deepfly_on.cfg}}
Put both of these in the correct path, and in console:
将这两个配置文件放在配置路径里,并在F1控制台输入:
  bind <span style="color:green">x</span> <span style="color:magenta">exec</span> <span style="color:blue">deepfly_on.cfg</span>
  bind {{color|green|x}} {{color|magenta|exec}} {{color|blue|deepfly_on.cfg}}
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="Using_1_Config_File"></span>
====Using 1 Config File====
====使用单个配置文件====
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
例如您可以将以上两个配置文件整合成一个文件:
You can accomplish the same thing as above using only 1 config file.
'''deepfly.cfg'''
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
  bind {{color|green|x}} {{color|red|"}}bind {{color|green|mouse1}} {{color|orange|\}}{{color|red|"}}{{color|blue|+fire}}{{color|red|;}} {{color|blue|{{color|magenta|+toggle}} cl_dummy_hammer}} {{color|purple|1 0}}{{color|orange|\}}{{color|red|";}}{{color|blue|cl_message_client_color}} {{color|purple|green}}{{color|red|;}} {{color|blue|echo}} {{color|purple|Deep Fly ON}}{{color|red|;}} bind {{color|green|x}} {{color|orange|\}}{{color|red|"}}bind {{color|green|mouse1}} {{color|blue|+fire}}{{color|red|;}} {{color|blue|cl_dummy_hammer}} {{color|purple|0}}{{color|red|;}} {{color|blue|cl_message_client_color}} {{color|purple|red}}{{color|red|;}} {{color|blue|echo}} {{color|purple|Deep Fly OFF}}{{color|red|;}} {{color|magenta|exec}} {{color|blue|deepfly.cfg}}{{color|orange|\}}{{color|red|""}}
bind <span style="color:green">x</span> <span style="color:red">"</span>bind <span style="color:green">mouse1</span> <span style="color:orange">\</span><span style="color:red">"</span><span style="color:blue">+fire</span><span style="color:red">;</span> <span style="color:blue"><span style="color:magenta">+toggle</span> cl_dummy_hammer</span> <span style="color:purple">1 0</span><span style="color:orange">\</span><span style="color:red">";</span><span style="color:blue">cl_message_client_color <span style="color:purple">green</span></span><span style="color:red">;</span> <span style="color:blue">echo</span> <span style="color:purple">Deep Fly ON</span><span style="color:red">;</span> bind <span style="color:green">x</span> <span style="color:orange">\</span><span style="color:red">"</span>bind <span style="color:green">mouse1</span> <span style="color:blue">+fire</span><span style="color:red">;</span> <span style="color:blue">cl_dummy_hammer</span> <span style="color:purple">0</span><span style="color:red">;</span> <span style="color:blue">cl_message_client_color</span> <span style="color:purple">red</span><span style="color:red">;</span> <span style="color:blue">echo</span> <span style="color:purple">Deep Fly OFF</span><span style="color:red">;</span> <span style="color:magenta">exec</span> <span style="color:blue">deepfly.cfg</span><span style="color:orange">\</span><span style="color:red">""</span>
在这个例子中也可以看到,可以有两组并列的一层嵌套(\"),而不是二层嵌套。
Put this file in the correct path, and in console:
这个文件执行的指令有:为{{key press|x}}键绑定功能,具体功能为按下{{key press|x}}键配置鼠标左键和{{key press|x}}键的换绑,并回显{{color|purple|Deep Fly ON}}信息,语句到此处包含了使用双配置文件时的文件1;之后的部分则是文件2。并通过{{key press|x}}键嵌套的给自身换绑,再度循环回到'''deepfly.cfg'''。
  bind <span style="color:green">x</span> <span style="color:magenta">exec</span> <span style="color:blue">deepfly.cfg</span>
将这个配置文件放在配置目录里,并在F1控制台输入:
</div>
  bind {{color|green|x}} {{color|magenta|exec}} {{color|blue|deepfly.cfg}}


<div lang="en" dir="ltr" class="mw-content-ltr">
'''注意1''':配置文件中假定您的<code>+fire</code>(开火键)绑定在{{key press|mouse1}} 鼠标左键上。  
'''Note 1:''' This assumes mouse1 is your '''+fire''' bind.
</div>   


<div lang="en" dir="ltr" class="mw-content-ltr">
'''注意2''':如果您使用单个配置文件,在您按住开火键的同时按下按键(上例中为{{key press|x}})关闭绑定的话,会出现所谓卡键的情况,因为您的<code>cl_dummy_hammer</code>指令参数切换为<code>1</code>而还未切回来就被意外的换绑中断。这种卡键的问题可以手动将'''cl_dummy_hammer'''调整为<code>0</code>恢复,注意上文中两个配置文件的情形下,'''deepfly_off.cfg'''文件中已经包含这一行。
'''Note 2:''' If you turn deep fly off while you're holding your '''+fire''' bind, your dummy will get stuck in a hammering rhythm since '''cl_dummy_hammer''' is set to '''1''' still.  The  '''cl_dummy_hammer 0''' line in '''deepfly_off.cfg''' fixes this.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="Weapon_Swapping"></span>
====Weapon Swapping====
==== 武器切换 ====
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
  {{color|blue|cl_dummy_restore_weapon}} {{color|purple|1}}
If your dummy isn't holding hammer when you turn the bind on, they will switch back and forth between pistol and hammer.  If you want to fix this:
默认设置如上,因此当您的分身未拿锤子而您开启分身自动锤(以及由此引申的深度冻结飞行绑定)时分身会使用当前的武器开火后马上切换成锤子,当分身自动锤关闭时它会换回之前的武器,因此通过反复开关分身自动锤,可以让分身精准地用{{laser|激光}}多次射击自己,于是就出现如图片的情况。
  <span style="color:blue">cl_dummy_restore_weapon</span> <span style="color:purple">0</span>
您可以将参数更改为<code>0</code>,让分身武器自动切换为锤子后一直拿着,直到你亲自控制分身,它才切换回先前的武器:
Now if they're holding pistol when you start using the bind, they will switch to hammer and stay there after 1 pistol shot. There are however some benefits of having this setting set to '''1'''.
  {{color|blue|cl_dummy_restore_weapon}} {{color|purple|0}}
<span style="color:blue">cl_dummy_restore_weapon</span> <span style="color:purple">1</span>
This will allow you to laser yourself with your dummy with perfect aim.  It can also be useful with shotgun.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
[[File:Deepfly laser example.webm|351x198px|gif]]
[[File:Deepfly laser example.webm|351x198px|gif]]
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
您也可以自行运用[[Special:MyLanguage/Binds#Toggles|切换]]或者[[Special:MyLanguage/Binds#Using_Config_Files|配置文件]]将下面指令绑定至切换武器的按键上。
To manage dealing with both of these settings, you can either create a [https://wiki.ddnet.org/wiki/Binds#Toggles toggle], use [https://wiki.ddnet.org/wiki/Binds#Using_Config_Files config files], or have this setting attached to your weapon binds.
  bind {{color|green|[按键]}} {{color|blue|{{color|red|"}}+weapon1{{color|red|;}}}} {{color|blue|cl_dummy_restore_weapon}} {{color|red|0"}}
  bind <span style="color:green">[key]</span> <span style="color:blue"><span style="color:red">"</span>+weapon1<span style="color:red">;</span></span> <span style="color:blue">cl_dummy_restore_weapon</span> <span style="color:red">0"</span>
 
</div>
bind {{color|green|[按键]}} {{color|blue|{{color|red|"}}+weapon5{{color|red|;}}}} {{color|blue|cl_dummy_restore_weapon}} {{color|red|1"}}


<div lang="en" dir="ltr" class="mw-content-ltr">
'''注意''':谨记不要使用<code>+nextweapon</code><code>+prevweapon</code>(默认绑定为鼠标滚轮向上和鼠标滚轮向下中)切换武器,因为除了鼠标滚轮(不包括无极滚轮)外的按键对于输入的判定更加灵敏,按下按键就会高频率切换武器,出现武器乱切换的情况。
bind <span style="color:green">[key]</span> <span style="color:blue"><span style="color:red">"</span>+weapon5<span style="color:red">;</span></span> <span style="color:blue">cl_dummy_restore_weapon</span> <span style="color:red">1"</span>
This of course only works if you have dedicated weapon binds as opposed to '''+nextweapon''' and '''+prevweapon''' which is by default bound to '''mousewheelup''' and '''mousewheeldown'''.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="45°_Aiming"></span>
===45° Aiming===
=== 八角定位 ===
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
这个绑定能保证按住{{key press|x}}键时鼠标只能指向八个方向(每45度):
This bind allows you to only aim in 45° angles when holding down the key.  This is useful for shooting rockets straight up for double rockets and a few other scenarios.
  bind {{color|green|x}} {{color|red|"}}{{color|magenta|+toggle}} {{color|blue|cl_mouse_max_distance}} {{color|purple|2 400}}{{color|red|;}} {{color|magenta|+toggle}} {{color|blue|inp_mousesens}} {{color|purple|1 200}}{{color|red|;}} {{color|blue|+showhookcoll}}{{color|red|"}}
  bind <span style="color:green">x</span> <span style="color:red">"</span><span style="color:magenta">+toggle</span> <span style="color:blue">cl_mouse_max_distance</span> <span style="color:purple">2 400<span style="color:red">;</span> <span style="color:magenta">+toggle</span> <span style="color:blue">inp_mousesens</span> <span style="color:purple">1 200</span><span style="color:red">;</span> <span style="color:blue">+showhookcoll</span><span style="color:purple"><span style="color:red">"</span>
如果不想改变鼠标的最大活动区域和灵敏度的个人习惯,您需要在F1控制台输入<code>cl_mouse_max_distance</code>查询自己的第一个参数,之后输入<code>inp_mousesens</code>获取第二个参数,将<code>400</code><code>200</code>分别依次换成自己的两个参数:
Keep in mind that if you have changed '''cl_mouse_max_distance''' or '''inp_mousesens''' from the default, using the example above will reset those settings to default.  Before you just enter the binds, check your settings for both first by typing '''cl_mouse_max_distance''' and '''inp_mousesens''' into the console.
  bind {{color|green|x}} {{color|red|"}}{{color|magenta|+toggle}} {{color|blue|cl_mouse_max_distance}} {{color|purple|2 [您的参数]}}{{color|red|;}} {{color|magenta|+toggle}} {{color|blue|inp_mousesens}} {{color|purple|1 [您的参数]}}{{color|red|;}} {{color|blue|+showhookcoll}}{{color|red|"}}
  bind <span style="color:green">x</span> <span style="color:red">"</span><span style="color:magenta">+toggle</span> <span style="color:blue">cl_mouse_max_distance</span> <span style="color:purple">2 [Your Value]<span style="color:red">;</span> <span style="color:magenta">+toggle</span> <span style="color:blue">inp_mousesens</span> <span style="color:purple">1 [Your Value]</span><span style="color:red">;</span> <span style="color:blue">+showhookcoll</span><span style="color:purple"><span style="color:red">"</span>
'''Note:''' the '''+showhookcoll''' line is optional, it's just helpful to see which way you're aiming since your tee's eyes don't follow the 45° constraints.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="Rainbow_Tee"></span>
===Rainbow Tee===
===变色Tee===
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
要达到在游玩过程中变色的效果,你可以将<code>player_color_body</code>指令绑定到移动或操作键上,例如:
You will sometimes see players rapidly changing color as they play.  To do this you just have to bind a '''player_color_body''' change to each of your regular movement inputs.
  bind {{color|green|a}} {{color|blue|{{color|red|"}}+left{{color|red|;}} player_color_body}} {{color|red|red"}}
  bind <span style="color:green">a</span> <span style="color:blue"><span style="color:red">"</span>+left<span style="color:red">;</span> player_color_body</span> <span style="color:red">red"</span>
You can do this for several common inputs and get a variety of to cycle through.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
此外您可使用配置文件,以便于调整。以下为例子:
'''rainbow_tee.cfg'''
'''rainbow_tee.cfg'''
  bind <span style="color:green">a</span> <span style="color:blue"><span style="color:red">"</span>+left<span style="color:red">;</span> player_color_body</span> <span style="color:red">red"</span>
  bind {{color|green|a}} {{color|blue|{{color|red|"}}+left{{color|red|;}} player_color_body}} {{color|red|red"}}
  bind <span style="color:green">d</span> <span style="color:blue"><span style="color:red">"</span>+right<span style="color:red">;</span> player_color_body</span> <span style="color:red">yellow"</span>
  bind {{color|green|d}} {{color|blue|{{color|red|"}}+right{{color|red|;}} player_color_body}} {{color|red|yellow"}}
  bind <span style="color:green">space</span> <span style="color:blue"><span style="color:red">"</span>+jump<span style="color:red">;</span> player_color_body</span> <span style="color:red">green"</span>
  bind {{color|green|space}} {{color|blue|{{color|red|"}}+jump{{color|red|;}} player_color_body}} {{color|red|green"}}
  bind <span style="color:green">mouse1</span> <span style="color:blue"><span style="color:red">"</span>+fire<span style="color:red">;</span> player_color_body</span> <span style="color:red">blue"</span>
  bind {{color|green|mouse1}} {{color|blue|{{color|red|"}}+fire{{color|red|;}} player_color_body}} {{color|red|blue"}}
  bind <span style="color:green">mouse2</span> <span style="color:blue"><span style="color:red">"</span>+hook<span style="color:red">;</span> player_color_body</span> <span style="color:red">cyan"</span>
  bind {{color|green|mouse2}} {{color|blue|{{color|red|"}}+hook{{color|red|;}} player_color_body}} {{color|red|cyan"}}
Here's an example of what a rainbow tee file looks like.  You could save that in the correct path and execute it once.
将这配置文件放在配置目录里,并在F1控制台输入:
  <span style="color:magenta">exec</span> <span style="color:blue">rainbow_tee.cfg</span>
  {{color|magenta|exec}} {{color|blue|rainbow_tee.cfg}}
Or if you want a key to toggle it on and off:
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
您还可使用多个配置文件,方便开关。以下为一组例子:
'''rainbow_tee_on.cfg'''
'''rainbow_tee_on.cfg'''
  bind <span style="color:green">a</span> <span style="color:blue"><span style="color:red">"</span>+left<span style="color:red">;</span> player_color_body</span> <span style="color:red">red"</span>
  bind {{color|green|a}} {{color|blue|{{color|red|"}}+left{{color|red|;}} player_color_body}} {{color|red|red"}}
  bind <span style="color:green">d</span> <span style="color:blue"><span style="color:red">"</span>+right<span style="color:red">;</span> player_color_body</span> <span style="color:red">yellow"</span>
  bind {{color|green|d}} {{color|blue|{{color|red|"}}+right{{color|red|;}} player_color_body}} {{color|red|yellow"}}
  bind <span style="color:green">space</span> <span style="color:blue"><span style="color:red">"</span>+jump<span style="color:red">;</span> player_color_body</span> <span style="color:red">green"</span>
  bind {{color|green|space}} {{color|blue|{{color|red|"}}+jump{{color|red|;}} player_color_body}} {{color|red|green"}}
  bind <span style="color:green">mouse1</span> <span style="color:blue"><span style="color:red">"</span>+fire<span style="color:red">;</span> player_color_body</span> <span style="color:red">blue"</span>
  bind {{color|green|mouse1}} {{color|blue|{{color|red|"}}+fire{{color|red|;}} player_color_body}} {{color|red|blue"}}
  bind <span style="color:green">mouse2</span> <span style="color:blue"><span style="color:red">"</span>+hook<span style="color:red">;</span> player_color_body</span> <span style="color:red">cyan"</span>
  bind {{color|green|mouse2}} {{color|blue|{{color|red|"}}+hook{{color|red|;}} player_color_body}} {{color|red|cyan"}}
   
   
  <span style="color:purple">bind <span style="color:green">x</span> <span style="color:magenta">exec</span> <span style="color:blue">rainbow_tee_off.cfg</span>
  {{color|purple|bind}} {{color|green|x}} {{color|magenta|exec}} {{color|blue|rainbow_tee_off.cfg}}
'''rainbow_tee_off.cfg'''
'''rainbow_tee_off.cfg'''
  bind <span style="color:green">a</span> <span style="color:blue">+left</span>
  bind {{color|green|a}} {{color|blue|+left}}
  bind <span style="color:green">d</span> <span style="color:blue">+right</span>
  bind {{color|green|d}} {{color|blue|+right}}
  bind <span style="color:green">space</span> <span style="color:blue">+jump</span>
  bind {{color|green|space}} {{color|blue|+jump}}
  bind <span style="color:green">mouse1</span> <span style="color:blue">+fire</span>
  bind {{color|green|mouse1}} {{color|blue|+fire}}
  bind <span style="color:green">mouse2</span> <span style="color:blue">+hook</span>
  bind {{color|green|mouse2}} {{color|blue|+hook}}
   
   
  <span style="color:purple">bind <span style="color:green">x</span> <span style="color:magenta">exec</span> <span style="color:blue">rainbow_tee_on.cfg</span>
  {{color|purple|bind}} {{color|green|x}} {{color|magenta|exec}} {{color|blue|rainbow_tee_on.cfg}}
Put both of these in the correct path, and in console:
将这两个配置文件放在恰当的配置路径,并在F1控制台输入:
  bind <span style="color:green">x</span> <span style="color:magenta">exec</span> <span style="color:blue">rainbow_tee_on.cfg</span>
  bind {{color|green|x}} {{color|magenta|exec}} {{color|blue|rainbow_tee_on.cfg}}
You can of course get more creative with colors and use '''player_color_feet''' too.  To learn more about how colors work, see [https://wiki.ddnet.org/wiki/Binds#Colors colors]
您也可以加入<code>player_color_feet</code>指令达到更有趣的变色效果。更多颜色相关的指令参见[[Special:MyLanguage/Binds#Colors|颜色]]
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
'''备注''':配置文件中假定了您的的键位皆为游戏默认按键。另一方面,改变颜色有'''延迟'''。
'''Note:''' This assumes you have default binds for left, right, jump, fire, and hook.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="See_also"></span>
==See also ==
== 另见 ==
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
*[https://forum.ddnet.org/viewtopic.php?t=2537 Just bind it] - 可以复制的实用绑定
*[https://forum.ddnet.org/viewtopic.php?t=2537 Just bind it] - Useful binds available for copying
*[https://forum.ddnet.org/viewtopic.php?t=5819 Take Binding to the next level, with Scripting!] - 脚本下的进阶绑定
*[https://forum.ddnet.org/viewtopic.php?t=5819 Take Binding to the next level, with Scripting!] - Another forum post about more advanced binds
*[https://www.youtube.com/watch?v=sELsw2I2jj8& Teeworlds New Binding Tutorial by Klex] - 玩家KlexMikrowelle关于绑定的教程视频
*[https://www.youtube.com/watch?v=sELsw2I2jj8& Teeworlds New Binding Tutorial by Klex] - A video tutorial about binds by KlexMikrowelle
</div>

Latest revision as of 13:55, 28 July 2023

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指令达到更有趣的变色效果。更多颜色相关的指令参见颜色

备注:配置文件中假定了您的的键位皆为游戏默认按键。另一方面,改变颜色有延迟

另见