首先介绍脚本的基本知识:
1、什么是脚本(s cript)?
我们需要在CS游戏中执行了一系列命令,执行这一系列命令有一个过程。
用一个命令把这一过程定义(alias)好,最后分配(bind)一个键位给这个命令,以后只要按分配好的键位,就可以实现这一过程。脚本(s cript)就是含有bind和alias等命令的集合,你可以把这个集合存为一个独立的文件然后在需要的时候执行,所有的脚本都是通过这一方法实现的。这样就可以方便你在CS中的使用。脚本可以存为后缀名为.cfg的文件放在cstrike文件夹下,执行时在控制台输入:
exec 脚本文件名.cfg即可。比如将以上的脚本存为buys.cfg文件,则在控制台中输入:
exec buys.cfg则可以实现我们所需要的功能。
2、什么是bind?
Bind就是分配一个命令到指定的键,它同样能够分配一个alias到指定的键。
比如:
bind "MOUSE1" "+attack"
表示分配+attack(攻击)这个命令到指定的键MOUSE1(鼠标左键)
3、什么是alias?
Alias就是给一组命令定义一个名称,当你定义过后,CS就认为此alias为一个普通的命令,你可以用bind命令分配一个键给这个alias,也可以在其他的alias中使用它。
比如:
alias hw "say Hello World!"
则当你在控制台(console)中输入hw这条命令回车执行后你就对服务器里所有的玩家说了Hello
World!这句话,你还可以用bind命令:
bind v "hw"当你按过v键后你同样对服务器里所有的玩家说了Hello World!这句话。
又比如:
alias buym "buy;menuselect 3;menuselect 1"
alias buyv "buy;menuselect 8;menuselect 1"
alias buysay "buym;buyv;hw"
bind j "buysay"
则表示当你执行buysay命令(如按下由bind分配好的j键)后购买MP5和普通防弹衣然后对服务器里所有的玩家说Hello World!这句话。
此alias实现的方法为:
第一步执行buym命令,buym命令已经定义好为"打开购买菜单;选择菜单第3项;再选择菜单第1项"即实现了购买MP5的功能。
第二步执行buyv命令,buyv命令已经定义好为"打开购买菜单;选择菜单第8项;再选择菜单第1项"即实现了购买普通防弹衣的功能。
第三步执行之前已经定义好的hw命令:对服务器里所有的玩家说Hello World!这句话。
把这三步命令定义为一个新的命令buysay然后用bind命令分配一个键(此处为j键)给这个alias(此处为buysay)则当你按下j键后就实现了这三步命令的功能。
注意:alias语句不能超过259个字符或下面这行字符的长度在Half-Life:Counter-Strike里:
4、脚本的分类:
基本式脚本 购买式脚本 开关式脚本 循环式脚本
按下&松开式脚本 按下&松开的开关式脚本 变位分配式脚本
a、基本式脚本:
在脚本文件中//作用为注释,CS系统不会执行//后的文字。如在脚本中加入:
// 单身的至尊宝制作
系统并不会管理这行文字而是忽略掉//及之后的文字。
在脚本文件中" "作用为alias的开始和结束标志。
在脚本文件中;的作用是分开两条命令语句。
首先你必须了解developer这一命令这是关于调试信息的命令:在控制台输入developer
1后所有载控制台中显示的信息都会在游戏的屏幕上显示出来。相反输入developer
0则关闭显示信息。注意:这些信息只是你本身的客户端能看到,并不会发送的其他的玩家那里。
比如我想要在屏幕的上方显示This s cript Edited by
Nick这条信息,可以在控制台中用命令echo This s cript Edited by
Nick实现,但在游戏时是不可能看得到的(被控制台挡住了)怎样实现呢?我们可以用一个alias脚本实现:
alias nick "developer 1; echo This s cript Edited by Nick;developer 0"
然后bind v "nick" 关闭/隐藏控制台后在你按下v键后屏幕的上方就会显示This s cript
Edited by Nick这条信息。
其次你可以使用alias语句使一些系统默认的命令简化,如:
alias dvon "developer 1"
alias dvoff "developer 0"
则上一条脚本可以简化成:
alias nick "dvon; echo This s cript Edited by Nick;dvoff"
这对我们编辑较长的脚本时十分有用。
wait命令在脚本中也是十分常用的,它的作用是在执行脚本时做一个极小的暂停,当你的延迟情况不是很严重时可以只使用几个wait命令,当你的延迟情况比较糟糕时可以多用几个wait命令来使你的脚本得以完整/正确的执行。如:
alias clmenu "wait;wait;wait;slot10"
这条命令是用来清除屏幕上的菜单信息的,在开头的买木仓脚本中买完木仓后并没有清除购买菜单我们需要按0键来清除菜单,而如果使用了这里的clmenu命令则可以清除购买菜单,slot10的功能就是选择菜单上的0项。而前面的几个wait命令就是为了防止由网络延迟引起的系统忽略了slot10这条命令,还可以更保险一些把clmenu命令写成:
alias clmenu "wait;wait;wait;slot10;wait;wait;slot10"选两次0项来清除购买菜单。
如果你需要较多的延迟也可以写出下面的命令:
alias w1
"wait;wait;wait;wait;wait;wait;wait;wait;wait;wait"然后在需要时用w1命令代替wait命令。
b、购买式脚本:
首先了解购买式脚本的基本命令:
buy 打开武器购买菜单
buyequip 打开装备购买菜单
menuselect x 从菜单中选择项目x
buyammo1 购买一个弹夹的主武器子弹。默认为,键。
buyammo2 购买一个弹夹的手木仓子弹。默认为.键。
其次做一些准备工作:
file://------------------------------------------
file://| 设置买子弹、清除菜单等功能 |
file://------------------------------------------
alias nick "dvon; echo This s cript Edited by Nick; dvoff"
alias dvon "developer 1"
alias dvoff "developer 0"
alias "clmping" "clmenu400"
file://在控制台中输入clmping即可切换ping值高和低时清除菜单的速度
alias "clmenu400" "alias clmping
clmenu;wait;wait;wait;wait;slot10;wait;wait;wait;wait;wait;slot10;wait;wait;wait;wait;slot10;wait;wait;wait;wait;slot10;wait;wait;wait;wait;slot10;wait;wait;wait;wait;slot10;wait;wait;wait;wait;slot10"//选择菜单上的项目0,清除菜单(ping值>400时使用)
alias "clmenu" "alias clmping
clmenu400;wait;wait;wait;slot10;wait;wait;slot10"//选择菜单上的项目0,清除菜单(ping值选择要购买木仓支/装备的类型->再选择要购买的项目->关闭菜单这一过程。
c、开关式脚本:
开关式脚本的格式为:
alias "开关" "关闭"
alias "关闭" "alias 开关 打开;关闭的命令"
alias "打开" "alias 开关 关闭;打开的命令"
然后bind "键位" "开关"即可。
比如:
alias radar_t radar_off
alias radar_off "alias radar_t radar_on; hideradar"
alias radar_on "alias radar_t radar_off; drawradar"
然后bind "\" "radar_t"即可。以后按\键即可实现雷达的开关。
我们把每一行加上注解:
alias radar_t radar_off
(定义radar_t为开关命令,执行radar_t命令即执行radar_off命令)
alias radar_off "alias radar_t radar_on;
hideradar"(把radar_t重定义为命令radar_on,执行hideradar命令)
alias radar_on "alias radar_t radar_off;
drawradar"(把radar_t重定义为命令radar_off,执行drawradar命令)
当你bind了一个键后实际上已经执行了第一句alias radar_t
radar_off即定义radar_t到radar_off
当你按下\键后因为第一句已经定义了执行radar_t命令即执行radar_off命令,即执行了第二句alias
radar_off "alias radar_t radar_on;
hideradar"即定义radar_t到radar_on然后执行hideradar命令隐藏雷达。
当你再次按下\键后因为第二句已经定义了执行radar_t命令即执行radar_on命令,即执行了第三句alias
radar_on "alias radar_t radar_off;
drawradar"即定义radar_t到radar_off然后执行drawradar命令显示雷达。
如果你再按下\键即又执行了第二句alias radar_off "alias radar_t radar_on;
hideradar"即定义radar_t到radar_on然后执行hideradar命令隐藏雷达。如此雷达的开关功能就实现了。
d、循环式脚本:
循环式脚本实际上就是开关式脚本的多种选择项时的情况,其格式为:
alias "循环开关" "循环第一步"
alias "循环第一步" "alias 循环开关 循环第二步;循环第一步需执行的命令"
alias "循环第二步" "alias 循环开关 循环第三步;循环第二步需执行的命令"
alias "循环第三步" "alias 循环开关 循环第一步;循环第三步需执行的命令"
然后bind "键位" "循环开关"即可。
比如:
alias graph "graph1"
alias graph1 "net_graph 1; alias graph graph2"
alias graph2 "net_graph 2; alias graph graph3"
alias graph3 "net_graph 3; alias graph graph4"
alias graph4 "net_graph 0; alias graph graph1"
然后bind "v"
"graph"即可。以后按v键即可实现网络状况图形的切换显示:按一下执行第二句即net_graph
1还有alias graph graph2;再按一下执行第三句即net_graph 2还有alias graph
graph3,如此类推,当执行到最后一句时我们需要使循环开关回复到初始的状态所以最后一句net_graph
0执行完命令后,定义alias graph graph1这和第一句是一样的即回复到初始的状态。
e、按下&松开式脚本:
按下&松开式脚本的格式为:
alias "+按下松开命令" "第一条当按下时执行的命令;第二条当按下时执行的命令"
alias "-按下松开命令" "第一条当松开时执行的命令;第二条当松开时执行的命令"
然后bind "键位" "+按下松开命令"即可。
比如:
alias +qslash "weapon_knife; wait; +attack"
alias -qslash "-attack; lastinv"
然后bind "alt"
"+qslash"即可。以后当按下alt键时执行第一句:拿出刀子开始削,当松开alt键时执行第二句:停止削,并拿出上一次拿的武器。
f、按下&松开的开关式脚本:
按下&松开的开关式脚本实际上就是按下&松开式脚本和开关式脚本的合成,其格式为:
alias "+按下松开命令" "第一条当按下时执行的命令;第二条当按下时执行的命令"
alias "-按下松开命令" "第一条当松开时执行的命令;第二条当松开时执行的命令"
alias "按下松开命令开关" "按下松开命令关闭"
alias "按下松开命令关闭" "alias 按下松开命令开关 按下松开命令打开;bind 键位
原来的命令"
alias "按下松开命令打开" "alias 按下松开命令开关 按下松开命令关闭;bind 键位
+按下松开命令"
然后bind "键位" "按下松开开关"即可。
比如:
alias +qslash "weapon_knife; wait; +attack"
alias -qslash "-attack; lastinv"
alias qslash "qslash_on"
alias qslash_on "alias qslash qslash_off;bind alt +qslash"
alias qslash_off "alias qslash qslash_on;bind alt +strafe"
然后bind "v" "qslash"即可。
以后当按过一次v键后执行第四句:
当按下alt键时执行第一句:拿出刀子开始削,当松开alt键时执行第二句:停止削,并拿出上一次拿的武器。
当再按过一次v键后执行第五句:
alt键恢复为平移键当按下alt键时再按左右转向键则变成左右平移。
在此v键即为"按下松开命令开关"而alt键即为"+按下松开命令"
g、变位分配式脚本:
变位分配式脚本实际上就是按下&松开式脚本的变例形式,其格式为:
alias "命令a" "命令1;命令2"
alias "命令b" "命令1';命令2'"
bind "初始键位" "命令a"
alias +变位分配 "bind 初始键位 命令b"
alias -变位分配 "bind 初始键位 命令a"
然后bind "键位" "+变位分配"即可。
如:
alias go "radio2; wait;menuselect 1;clmenu"
alias fal "radio2; wait;menuselect 2;clmenu"
alias +metaradio "bind ins fal"
alias -metaradio "bind ins go"
最后:
bind "ins" "go"
bind "alt" "+metaradio"
则当平时按下ins键(即方向键上方的Insert键)因为ins键分配给go命令,所以执行第一句:使用语音信息:Go!
Go! Go!
当按下alt键后(按住)执行第三句:ins键分配给了fal命令,此时再按下ins键则使用语音信息:Team,Fall
Back!
当松开alt键后执行第四句:ins键又重新分配给了go命令,所以此时再按下ins键则使用语音信息:Go!
Go! Go!