脚本

From Team Fortress Wiki
< Scripting
Revision as of 14:49, 20 April 2021 by ApertureLab (talk | contribs) (remake)
Jump to: navigation, search

脚本编写是通过利用配置文件(configuration files,文件扩展名.cfg) 对按键绑定进行改动与新增,将一系列复杂的行为以及控制台指令统筹到一个指定的别名下的行为。与作弊不同,脚本实质是在利用《军团要塞2》这款游戏的内置功能,并不会被Valve反作弊系统侦测到。脚本的利用十分广泛,小到将一条指令绑定到一个按键上,大到一条涉及自我指涉循环与互相嵌套重定义的指定别名的指令。如果一项功能能够靠脚本的创建来实现,那么它必然也能在无脚本参与的情况下完成,而脚本的意义就在于在紧张的实战中能够更为便捷地实现这些功能。

脚本指令

以下是除了脚本编写外没有实际用处的的命令列表; 它们不会直接影响实际游玩。

绑定(Bind)

最简单的命令是绑定命令。它会使得按下某个键便能执行一项动作,无论该动作是设置,命令还是脚本。

bind [KEY] [COMMAND]

可以选择在按键和/或命令的两边加上引号。 但是,当值和命令之间有空格时,命令必须带有引号,以便控制台可以将其解释为一个命令。 示例:bind mouse1 "say texthere"(将某一段文本绑定到鼠标左键上),由于两个短语之间存在距离,"say texthere"两端需要加上引号。

bind [KEY] "[COMMAND 1];[COMMAND 2];[COMMAND 3]"

在按键部分两端添加引号不是必须的,但是在命令的两端则必须加上,因为如果引号不存在,控制台将无法解释连续的命令。

注意: 下面这条指令

say "Example Text"

是正确的, 但是下面这条

bind <KEY> "say "Example Text""

则不是。这是因为后者中的引号将导致指令无法被解释,而且引号内的引号是不必要的,因为命令会在每个分号处自动停止。

绑定有两种形式:

bind e "voicemenu 0 0"

这项绑定将允许玩家通过按下E键来呼叫医生。

bind w +forward

这项绑定将允许玩家通过按住W键来往前走动。

切换(Toggle)

这项指令将允许一项设置在两个或更多个值之间进行切换。

toggle sv_cheats 0 1

绑定切换(Bindtoggle)

功能和绑定相同,只是绑定到一个按键上。

bindtoggle o sv_cheats 0 1

注意:若无预设值,绑定和绑定切换会使用默认值0与1。

增量变量(Incrementvar)

允许变量以预设值多次地增加或减少。

bind MWHEELUP "incrementvar fov_desired 75 90 1"
bind MWHEELDOWN "incrementvar fov_desired 75 90 -1"

上面这组指令可使滚轮上滚时抬升视场角,在滚轮下滚时降低视场角。 注意: 值增加到上限或是减少到下限时,该值都会出现回绕。 在上面这组示例中,一旦视场角超出最大值90,它将降到最小值75,反之亦然。

别名(Alias)

将多个指令指定到一个别名下可以只用一个指令就将它们全部统筹起来。当一系列指令需要被反复使用时,别名指定是最为有用的高效速记法。

注意: 别名名称不能包含空格,但可包含下划线,数字和符号。别名名称区分大小写。

alias Call_For_Medic "Voicemenu 0 0"
bind "e" "Call_For_Medic"

上面这项脚本示例与单纯地将呼叫医生的指令绑定在E键上的效果相同。

注意: 在别名前添加+号(正向指令)并按下相应绑定键执行后,其后的-号别名(负向指令)会随后被执行。 下例:

alias "+Diagonal" "+moveleft; +back"
alias "-Diagonal" "-moveleft; -back"
bind "z" "+Diagonal"

在上面的脚本中,+Diagonal别名指定给了其后的+moveleft与+back,分别表示(按下相应绑定键后)向左移动和向后移动;而下一行的-Diagonal别名则指定给了-moveleft与-back,分别表示(松开相应绑定键后)停止向左移动和停止向后移动。那么这样一来,按下 Z 键就会使得玩家以对角线方向向左后方移动。

而要注意的是,下面的写法就是一个错误的示例。

bind "z" "+moveleft; +back"

虽然说用上面这条脚本按下Z键还是有朝左后方移动的效果的,但是这样一来系统将无法执行-号别名,也就是说一旦按下Z键,玩家将一直向左后方移动,无法在松开按键时停下来。

执行(Exec)

使用该指令可以指定执行某一特定的配置文件。这意味着一个特殊而复杂的脚本可以专门写在一个通用配置文件之外的新配置文件里,从而在安装和编辑方面免除干扰其他脚本的麻烦。

exec autoexec.cfg

上面这个脚本就是在指定执行autoexec.cfg文件。

回显(Echo)

回显指令的作用是用“Echo 信息内容”的格式来输出提示信息。如下例:

echo Scripting is; echo very useful

输出结果就是 Scripting is (脚本)和 very useful (很有用),这一句话的两部分将以分立的两行输出并显示出来。单词之间的空格和双引号内的空格都将被回显, 如下例:

echo " Scripting is very useful.   "

在Scripting is very useful.这句话的后面跟了3个空格字符,它们也会被显示出来。 注意: 双引号无法被系统识别为文本的一部分,因此无法显示。但是单引号可以。

等待(Wait)

等待指令可被用来阻塞当前进程的执行,直至指定的子进程执行结束后,才继续执行。使用等待指令可以在脚本在多进程执行模式下,起到一些特殊控制的作用。等待指令可以被赋予特定时间来决定等待的持续时长,而赋予的进程号代表的是刻(tick),因此,实际等待时间与服务器的刷新率(tickrate)有关。如果wait后面不带任何的进程号,那么等待指令会阻塞当前进程的执行,直至当前进程的所有子进程都执行结束后,才继续执行。

警告: 等待指令在部分服务器被禁用。这会导致某些脚本失效,并且(在极少数的情况下)让游戏崩溃。
echo Why did the chicken cross the road?;wait 66;echo To get to the other side!

上面这条脚本会把Why did the chicken cross the road?(为什么小鸡们在过马路?)这句话回显完毕后,先等待66刻,再显示它的答句To get to the other side!(为了到另一边去!)

启动选项

为了改善或改变游戏体验,可以使用以下启动选项。 要使用它们,请在Steam库中右键单击Team Fortress 2,然后选择“属性”。 然后,在“通用”选项卡的“启动选项”框内键入所需的指令(请注意,所有启动选项在指令之前均包含“-”,请记住须将其包括在内):

分辨率

启动选项: -w # -h #

描述:分别决定了游戏分辨率的宽度与高度。

高优先级别

启动选项: -high

描述:令CPU提高TF2任务进程的优先级别。

Warning red.png 警告:使用高优先级模式会极大消耗CPU性能。

鼠标加速

启动选项1: -noforcemaccel

启动选项2: -noforcemspd

描述:两个启动选项同时使用以彻底关闭鼠标加速而使用原生输入。

开场动画

启动选项: -novid

描述:跳过Valve游戏的“Valve先生”开场动画以加快进入游戏的速度。

DirectX等级

启动选项: -dxlevel #

描述:井字号#替换为80, 81, 90, 95或100以决定所用的DirectX。仅初次启动时需要添加,而后可以去除。

窗口化

启动选项1: -windowed 或是 -sw

启动选项2: -noborder

描述:两个启动选项一齐使用以使游戏以无边框窗口模式运行。

按键名称

将光标移动到下图的按键上并悬浮以查看按键的脚本名称。按键名称为非事件敏感型。

ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12

`   1 2 3 4 5 6 7 8 9 0 - = ← Backspace

Tab ⇆ Q W E R T Y U I O P [ ] \      

⇪ Caps A S D F G H J K L ; '   Enter ↵

Shift     Z X C V B N M ,   .   /   Shift        

Ctrl   Alt       Spacebar       Alt ≣ Menu Ctrl    

PrtScn ScrLk Pause

Insert   Home PgUp

Delete   End   PgDn


                 

         

Num / * -
7 8 9 +
4 5 6
1 2 3
    0     .
鼠标键 绑定名称
Scroll Up MWHEELUP
Scroll Down MWHEELDOWN
Left Click MOUSE1
Right Click MOUSE2
Wheel Click MOUSE3
Left Button Click (forward) MOUSE4
Right Button Click (back) MOUSE5

注意

参见

外部链接