雷神之锤控制命令篇(一) - 旮旯角落 - 鲁晓明

(这条文章已经被阅读了 19 次) 时间:2001-02-20 23:58:28 来源:鲁晓明 (木木) 原创-IT

雷神之锤控制命令篇 作者:菜鸟工作室/木木

一、Q3A的控制台简介
  控制台其实就是一个简单的命令行输入界面,有一点像MS-DOS,它能够让你输入命令及设置而不用去改设置菜单。虽然Q3A的游戏菜单提供了一些设置,但跟控制台的功能相比,那可是小巫见大巫了。控制台给你提供了一种简单而有效的编程语言,让你方便的定义一个键去完成诸如火箭跳之类的复杂动作。它还可以让你快速的调整游戏的细节,获得更好的画面和速度。

二、Q3A的控制台使用
  按照默认的设置,键“~”(数字键1旁边)是开启和关闭控制台的键位,键入的命令行前必须加上“”或“/”。使用上下键可以列出你已经输入过的命令,PageUp和PageDown可以显示以前的结果。如果你不想每次都输入一大堆命令,你可以用文本编辑器预先写好,将其存为autoexec.cfg的名字放在aseq3的目录下面。这样你每次运行Q3A,将会自动运行它。你也可存为xxxx.cfg,每次需要时,在控制台输入exec xxxx.cfg来运行。

  那么到底控制台可以做什么呢?请大家注意下面的语句:

bind key_or_button_name “command”

其中的key_or_button是:
任何鼠标键(MOUSE1,MOUSE2,MOUSE3分别对应鼠标左、右、中键);
任何手柄按钮(JOY1,JOY2等等);
任何普通键盘键(如A-Z,1-9,符号等等);
一些特殊键:ESCAPE,F1-F12,PAUSE,BACKSPACE,TAB,ENTER,SHIFT,CTRL,ALT,SPACE,INS,HOME,PGUP,DEL,END, PGDN,UPARROW,DOWNARROW,LEFTARROW,RIGHTARROW,
小数字键盘上的KP_SLASH,KP_MINUS,KP_PLUS,KP_ENTER,KP_5,KP_UPARROW,KP_LEFTARROW,KP_RIGHTARROW,KP_DOWNARROW,KP_HOME,KP_END,KP_PGUP,KP_PGDN,KP_INS,KP_DEL有滚轮的鼠标上的MWHEELUP和MWHEELDOWN。

其中的command是各种控制台命令,具体的解释的可看后面的“控制台指令”

下面是一个简单的例子:

bind W “+forward”

当你按下并一直按着 w 键时,你控制的角色就会前进,当你放开时他才停止。这里要提一个要注意的地方:许多命令是以 + 开头的
如果你仅仅定义的是简单的动作,那么当你放开那个键位时,以 – 开头的命令会自动执行,没有必要再定义。但是如果你定义的是脚本命令,你就有可能要用到它。这里只是提一下,以后会有详细的例子再说。

除了定义动作键位,你还可以定义键来更改各种参数和设置。举一个例子:FPS(Frames Per Second)即每秒刷新帧数是一个衡量你的机器是否能流畅的运行的重要标志。你可以通过设置cg_drawfps参数为1,使其显示在屏幕的右上角,设置为0使其不显示。

bind K “cg_drawfps 1”
bind L “cg_drawfps 0”

通过上面的两句你可以按下 K 键使FPS显示,按下 L 键使其不显示。但是要用两个键位。下面的例子可以只用一个键就能实现上面的功能:

set fps_on “set fps_state vstr fps_off; cg_drawfps 1”
set fps_off “set fps_state vstr fps_on; cg_drawfps 0”
set fps_state fps_on
bind X “vstr fps_state”

是不是看起来有点麻烦?从这个例子开始我们将会接触到脚本的概念,让我们来好好看看。前两句使用 set 命令建立了两个新的控制台命令fps_on 和 fps_off,其中 vstr 是运行的意思,“;”用来表示两句独立的命令。第三句把fps_state指令的原始值设为 fps_on ,第四句定义了 x 键为执行 fps_state 。顺便提一下,如果你在控制台输入时用 seta 代替 set 的话,Q3A会自动把它存在autoexec.cfg中的。

让我们来看看它是怎样运行的?当你第一次按下 x 键时,执行 fps_state 即 fps_on 的命令:把 fps_state 设为 fps_off 、把帧数显示打开。 你再次按下 x 键时,执行 fps_state 即 fps_off 的命令:把 fps_state 设为 fps_on、把帧数显示关闭。很简单吧!

简单的还在下面:

bind X “toggle vstr cg_drawfps”

试一试看,是不是和那四句话实现的功能一样?为什么不先讲简单的好东西呢?因为要理解上面的例子中的 toggle 的意义是很麻烦的。简单地说 toggle 的意思就是如果它后面跟的变量是1的话,把它变成0;如果是0的话,就变成1。为什么不先讲它的原因就是因为它只能用于 boolean 变量(布尔变量),即只有0和1两种情况的变量。如果你需要多于两种的情况,或者变量不是0和1的情况,你只好用先介绍的方法了。再举一个例子,有时你会需要用狙击的方式rail掉远方的敌人,你可以设定一个键,切换三种不同的狙击方式:

set zoom0 “set zoom vstr zoom1;FOV 90”
set zoom1 “set zoom vstr zoom2;FOV 60”
set zoom2 “set zoom vstr zoom0;FOV 30”
set zoom “vstr zoom1”
bind x “vstr zoom”

现在明白这个例子了吗?(FOV 是狙击方式的选择,你可以改动它后面的参数,看看效果。)再看一看聊天的例子:

bind X “say Wow,how nice shot!”

把你想好的很酷的话预先定义好,需要的时候按一个键就搞定了。
还可以用来队伍之间的通信如:

bind X “say_team need help at base”

当你玩team death match或ctf时,它们是很有用的。你也可以使用 echo 的命令显示在你自己的屏幕上,而不显示在别人的屏幕。我们来修改一下前面的例子:
set zoom0 “set zoom vstr zoom1; FOV 90; echo no zoom selected”
set zoom1 “set zoom vstr zoom2; FOV 60; echo low zoom selected”
set zoom2 “set zoom vstr zoom0; FOV 30; echo high zoom selected”
set zoom “vstr zoom1”
bind x “vstr zoom”
这样你就能清楚的了解你的狙击方式了。
通过上面的讲解,只是对Q3A的控制台命令很简单的介绍,如果你想学的更多,可以看看下面的控制命令。