文档库 最新最全的文档下载
当前位置:文档库 › CS起源 H 键菜单的制作及实现原理讲解

CS起源 H 键菜单的制作及实现原理讲解

CS起源 "H" 键菜单的制作及实现原理讲解
大家好!我以为在我写完CSS的模型制作之后我的Counter-Strike Source不完全修改手册就已经该走向结束,我也该休息了。但是在前段时间看到好朋友量子的猫熊提到了一个关于游戏H键菜单的制作问题,那么今天就在这里以制作一个CSS的H键菜单为蓝本简单的讲解一下制作过程以及实现原理。

我们知道Valve在开发Counter-Strike Source之处似乎就没有考虑过要在游戏里面加入象CS1.6一样的H键菜单,所以一直到现在我们都不曾看到游戏中有H键菜单的身影。

后来在国外的一个著名DODS网站发布了一个自己编写的H键菜单来改变DODS没有H键菜单的历史。再后来这个DODS的H键菜单流传到了国内,国内高手将其汉化运用到他们制作的DODS上面。继续后来我也得到了这个DODS的H键菜单,在彻底研究了其工作原理后自己重写了CSS和DODS的H键菜单运用到我制作的CSS和DODS版本上面......

H键菜单的工作原理:

打开我制作的H键菜单里面的cstike\cfg\valve.rc文件在最后找到:
//H菜单加载脚本
bind "h" "commandmenu" //表示绑定键盘上面的H键为H键菜单的呼出键。
exec commandmenu\userconfig.cfg //加载commandmenu目录下的userconfig.cfg用户命令配置文件
exec commandmenu\menu.cfg //加载commandmenu目录下的memu.cfg菜单文件。

看到这里或许大家会问为什么命令会写在valve.rc文件里呢?

因为在所有制作的Source引擎游戏中都会有valve.rc文件而不是所有的版本都会有atuoexec.cfg文件,其实valve.rc跟atuoexec.cfg文件一样在游戏启动的时候都会自动读入所以直接将调用脚本命令写在valve.rc文件里面是最方便的。

那个commandmenu又是什么东西呢?怎么我会没有呢??

Commandmenu是H键菜单的英文我自己建立了一个文件夹叫做commandmenu来方便下面的子级菜单调用和相关的cfg文件集中,不然一打开cfg文件夹满屏的cfg文件你知道该改那个么?

看到这里或许大家已经清楚H键菜单的实现原理了,就是在游戏启动的时候最先读取valve.rc文件然后通过valve.rc文件读取了userconfig.cfg(用户命令配置文件)和menu.cfg(H键菜单显示命令)。这样在完全进入游戏后点击了键盘上面的H键之后就激活了menu.cfg然后通过menu.cfg里面的alias commandmenu "exec commandmenu\commandmenu.cfg来激活H键菜单的主选单。

H键菜单的命令调用:

在上面已经简单的讲解了H键菜单的实现原理,然后我们再来看看它都调用了那些cfg来做到真正的实现在屏幕上面供我们去选择。

首先打开:cstrike\cfg\commandmenu\menu.cfg文件看到如下命令:
alias commandmenu "exec commandmenu\commandmenu.cfg; bind 1 BOT; bind 2 Personal; bind 3 GUI; bind 4 Maps; bind 5 Player; bind 6 Demo; bind 7

name; bind 0 clr_menu"

命令解释:

alias commandmenu "exec commandmenu\commandmenu.cfg //调用commandmenu\commandmenu.cfg H键菜单的主菜单,这个是按下H键后激活的选项。

bind 1 BOT; bind 2 Personal; bind 3 GUI; bind 4 Maps; bind 5 Player; bind 6 Demo; bind 0 clr_menu //H 键菜单的子级菜单。比如我做的绑定1为BOT菜单 2为高级菜单 3为图形界面 4为地图设置 5为音乐播放 6为录象录制 0为退出菜单。

然后在下面依次写上需要调用的子级菜单以及相对应的命令参数,这里以BOT的子级菜单为列子讲解:

alias BOT "exec commandmenu\BOT.cfg; bind 1 bot1; bind 2 bot2; bind 3 bot3; bind 4 bot4; bind 0 clr_menu"

命令解释:

alias BOT "exec commandmenu\BOT.cfg //调用commandmenu下的BOT.cfg文件,依次绑定1为bot1 2为bot2等

有人就要问了这里的对应命令是什么命令呢?

你打开cstrike\cfg\commandmenu\userconfig.cfg用户命令配制文件找到:

//BOT设置菜单
alias bot1 "bot_add; clr_menu" //对应上面的bot1
alias bot2 "bot_kill; clr_menu" //对应上面的bot2

然后又有人会问那怎么现在是屏幕上面让我们看到呢?

之前调用的BOT.cfg就是对应BOT的子级显示菜单,打开后看到:
echo " 1、快速添加一个机器人" //对应上面的bind 1 bot1
echo " 2、杀死所有的机器人" //对应上面的bind 2 bot2

最后这些子级菜单的综合调用还差一个重要命令就是:
alias reset_all "bind 0 slot10; bind 1 slot1; bind 2 slot2; bind 3 slot3; bind 4 slot4; bind 5 slot5; bind 6 slot6; bind 7 slot7; bind 8 slot8; bind 9 slot9; clear; cls"
绑定键盘1到9让其对应各自的位置。

然后再来讲解userconfig.cfg文件内容:
alias w2 "wait;wait"
alias w3 "wait;w2"
alias w4 "w2;w2"
alias w5 "w2;w2;wait"
alias w10 "w4;w4;w2"
alias w15 "w10;w5"
alias w20 "w10;w10"
alias w30 "w20;w10"
alias w40 "w30;w10"
alias w50 "w40;w10"
alias w60 "w50;w10"
alias w70 "w60;w10"
alias w80 "w70;w10"
alias w90 "w80;w10"
alias w100 "w50;w50"
alias w200 "w100;w100"
alias w300 "w200;w100"
alias w400 "w200;w200"
alias w500 "w200;w100"
alias cls "slot10"
alias cls2 "cls; wait; wait; cls"
alias close "w2; cls2"
alias dev1 "developer 1"
alias dev0 "developer 0"
alias dev_1 "developer -1"
alias dv1con "dev1; con_notifytime 28"
alias devnone "dev_1; con_notifytime 0"
alias clr_menu "clear; reset_all; contimes 16; dev0"
alias pre "clear; dv1con; contimes 48; reset_all"
以上内容是必须的,否则H键菜单无法实现开关效果。而下面的其余内容就是子级菜单的内容了。可以参考我的H键菜单。
最后就是重中之重H键菜单的主菜单了,打开cstrike\cfg\commandmenu\commandmenu.cfg文件。你会看到:
Pre
echo " "
echo " "
echo " "
echo " "
echo " "
echo " "
echo " "
echo " "
echo " "
echo " "
echo " "
echo " "
echo " "
echo " "
echo " "
echo " "
echo " "
echo "

1、机器人设置"
echo " 2、高级设置"
echo " 3、图形菜单"
echo " 4、更换地图"
echo " 5、播放MP3"
echo " 6、录制DEMO"
echo " "
echo " 0、取消"
echo ""
echo " "
echo " "
echo " "
echo " "
echo " "
echo " "
echo " "
echo " "
echo " "
echo " "
echo " "
echo " "
echo " "
echo " "
devnone

命令解释:

Pre //在屏幕显示控制台内容。

devnone //关闭屏幕的控制台内容。

中间的echo " " //DOS文字显示命令。整个屏幕只支持40个echo命令,写少了就会出现无效指令的错误,写多了就无法显示了,具体可以看写的H键菜单commandmenu.cfg文件内容。

完全弄懂了之后就可以添加编写其它的子级全部配置完毕后一个完整的H键菜单就制作完毕了。

这里提供一个我制作好的CSS H键菜单供大家修改参考之用。

相关文档
相关文档 最新文档