外设天下 - 电脑外设发烧友聚集地

123下一页
我的人缘0

配合小蓝,关于CS 脚本的编写!

29 28043
楼主
跳转到指定楼层
发表于 2008-5-27 19:09 只看该作者 倒序浏览 阅读模式
原创哦~~ 给小蓝作的小补充,只知道上述的命令是不够的。关于脚本宏命令语句ALIAS和BIND,新手可以看看。

先说题外话,编写脚本的过程很简单,就是使用TXT编辑的文件,如纪事本等,一行行地输入脚本的内容,如一些参数命令例如"cl_rate 500"或者一些宏命令如"bind "v""sv_restartround 3" "等,然后将此文件保存为.cfg文件(CS中config文件格式)并存放于cstrike文件夹中,然后在游戏中控制台使用exec *.cfg命令执行此文件,以使脚本文件中的命令生效。当然有人为了方便,直接修改cstrike文件夹中的autoexec.cfg这个文件(这个文件是每次进入CS自动执行的config文件),这样就不用每次进入后都单独使用exec命令执行了。

回到正题,在编写脚本中会反复地用到宏命令ALIAS和BIND,也就是我们说的定义和捆绑命令,下面简单说一说这两个命令的含义以及基本的用法,新手们可以自己试着去写写自己的小脚本。

alias : 也就是我们说的定义语句,含义是为一个语句定义在游戏中对应的动作,通用的各式是alias "语句" "动作1;动作2;......" 。简单的举例,大家使用纪事本打开自己CS里的大跳脚本或者一键买枪版本,会看到这样的语句:
alias "+sjump""+jump;+duck"
alias "-sjump""-jump;-duck"
bind "space""+sjump"
这里的alias的用法指的是 为语句"sjump"定义游戏里的操作是+jump(跳起)和+duck (蹲下),也就是相当于同时在游戏里进行跳和蹲的动作,也就是大跳了,(注意duck是一种持续性动作,只要游戏里+duck的语句不终止,就会一直蹲下去,所以这里这个定义需要用辅助语句-jump;-duck来终止,否则你会发现大跳了落地后会直接蹲在地上不起来)。当我们定义了sjump这个语句后,我们又使用BIND命令将它分配给SPACE也就是空格键,这是你按下空格就会大跳了。
注意:alias命令中的语句需要是游戏中没有的语句,比如你不能采用alias "+jump""+duck"这样的命令,因为+jump本身就是游戏里自带的语句,你这样的命令一旦运行后只能导致程序的紊乱。而sjump这个语句是游戏里没有的,你也可以叫它为ajump,或这bjump,或者tmdjump, 甚至叫chenguanxi也可以,比如下面的大跳脚本:
alias "+chenguanxi""+jump;+duck"
alias "-chenguanxi""-jump;-duck"
bind "space""+chenguanxi"
也是一个可用的大跳脚本。

然后讲解BIND命令,BIND命令是把一个定义好的语句绑定给某个按键的命令,常用格式是 bind "按键""语句1;语句2;......" 。 比如上述的bind "space""+chenguanxi"这条,意思就是将+chenguanxi这个语句绑定给space键(空格键)。注意绑定的语句必须是定义好的,否则运行后你会发现按下这个键没有任何反应,同时注意每次把一个语句绑定给某个键,会自动取代那个按键之前绑定的语句。

知道了上述的基本知识,我们就可以开始写自己的简单脚本了,比如除了一键买枪之外,我常用的脚本a.cfg的内容是这样的(------和括号里的部分是解释,不要也写到脚本里)。
alias "+sjump""+jump;+duck"
alias "-sjump""-jump;-duck"
bind "space""+sjump"  -------(超级跳部分)
bind "v""sv_restartround 1;say ZuoBsiQuanJia!"    -------(按V键时:1秒刷新+对全体说:ZuoBsiQuanJia!,用于比赛开始的前2次刷新。)
bind "N""sv_restartround 3;say GL!Csers!"     -------(按N键时:3秒刷新+对全体说:GL!Csers!,用于比赛开始的最后一次刷新。)
zoom_sensitivity_ratio 1.15     ------(鼠标开镜移动速度1.15,默认是1.2)
rcon_password 123     ------(服务器远程密码123,在平台建主机的时候使用)

这样每次进入游戏后,只要在控制台输入exec a.cfg,就可以实现里面的功能了。当然也可以把exec a.cfg这个语句加到autoexec.cfg文件里(用记事本编辑即可),这样每次开始后都自动运行了。

有些新手可能不知道游戏里的按键以及常用命令叫什么或怎么设置,小窍门,用记事本打开autoexec.cfg这个文件好好研究一下就明白了~~

这些是编写脚本的基础知识,一般说来除非想实现恶意作弊的目的,比如炸F或者控制服务器,那么需要走另外的路去钻游戏软件的漏洞。如果是为了正常游戏更方便快捷,那么这些语句配合以参数命令,就基本够用了。 大家可以试着编写自己的小脚本了~

下期再继续讨论一下WAIT的问题~~
貌似为了8版给加精就新开帖,有点单薄哈。没关系,马上放出第2部分,关于WAIT动作~
0
已赞
微信分享 收藏
回复

使用道具 举报

我的人缘0
2
发表于 2008-5-27 20:42 只看该作者
第2部进阶,关于WAIT语句的使用。

如上在第一部分介绍的脚本中,比如说超级跳脚本中,ALIAS定义的语句后面的动作是并行的,也就是同时发生的,比如
alias "+sjump""+jump;+duck"
这里在游戏用,当通过按键出发+sjump这个语句时,jump跳和duck蹲是同时发生的,也就时我们所说的大跳。

但是在游戏中,有时候我们需要事先的动作是有先后顺序的,典型的比如买枪时需要进入一层菜单后才能再选择下一层菜单。再比如闪镜狙击中,需要先开镜再开枪,都则就变成了盲狙,准确率会大大降低。这时候我们就需要用到WAIT语句,WAIT语句实际上就是命令游戏在上一个动作执行后,停滞一个动作的周期(以毫秒记),然后再执行WAIT语句后面的动作。下面我们以闪镜狙击的脚本为例,来看如果编写这个脚本。(注意有些动作游戏程序中默认的响应是很慢的,所以可能脚本中会连续用到多个WAIT语句)

PS:闪镜狙击:就是在不开镜的情况下先靠感觉瞄准敌人,然后非常迅速地按右键再按左键,这是狙击开镜的画面只是一闪而过,但是子弹会和完全开镜一样准确地打在你瞄准的位置,也就是说只要不开镜前的预瞄准确,这种方式可以在一瞬间把敌人打死,且不受距离的影响,比任何开镜甩抢追枪跳狙都快的多,这种方法对PING的要求很高,最好是当主机时或者是局域网时使用。
盲狙:就是AWP完全不开镜,凭感觉直接左键开枪,这种方式的准确率很低,远距离盲狙基本是扯淡,近距离上也是靠运气和那些所谓盲狙高手自己也说不明白的所谓感觉。盲狙不是AWP的正道,只能是在非常紧急的情况下,比如近距离突然遭遇敌人,已经没有时间开镜时,来拼拼运气,但是大家乐此不疲的是因为盲狙打死人一般都会赢得一阵喝彩:mm4: 。

这里就存在脚本发挥的空间了,如果你的闪镜狙击是靠手指来快速地点右键之后点左键,我必须说这不可能达到最快的速度,即使你是超人,手指可以几乎同时点击,但是2次点击需要鼠标反馈给系统,再传到游戏中,而且还要注意,如果右键和左键点击间间隔太小,CS会只承认1次点击,或者右键,或者左键,这样根本就不能实现闪镜狙击的目的。

这时对我们的脚本提出了要求,这个脚本应该实现的动作是:1,AWP开镜;2,等待1个动作;3,AWP开枪;4,AWP关镜;之后准备下一个动作。我们可以把这个脚本的语句捆绑给一个按键(我的是鼠标滚轮按键),来实现闪镜狙击的效果。
第一步,我们为这套动作定义一个名称并实现开镜和开枪的过程。(上文中动作1&2$3).暂时以sawp来命名这个动作,那么第一句alias语句是:

alias "+sawp""+attack2;wait;+attack"  -- 这个语句表明了我们一旦按下按键执行这个sawp的语句时,应该实现的动作是 开镜(attack2在游戏中是指鼠标右键的对应动作,如果你拿着m4,attack2就是安装消声器的动作,同理attack自然是代表鼠标左键的动作了)----等待一个动作----开枪。

由于attack实际上也是一个持续性的动作,所以我们需要加辅助的语句把动作终止,否则AWP会不停地开枪,同样我们希望实现的接下来的动作是能够把AWP回复到开镜前的状态,以便进行下一次的闪镜狙击,这里我们采用了一种很便捷的方法,就是通过脚本迅速地切换上一个武器,在切换回来。(类似于AWP开枪后连按2次Q的效果),这个语句是这样的:

alias "-sawp""-attack;wait;lastinv;wait;lastinv;-attack2"    -----其中lastinv是指最近使用过的武器,这个动作在默认的config中是捆绑给Q键的,我们这里借用一下。通过这个语句我们实现的动作是: 停止开枪----等待一个动作----切换最后使用的武器(这里你在拿AWP前须先拿一下另外的武器,可以是手枪,手雷,C4等)----等待一个动作----再切换最后使用的武器(切回AWP)----停止开镜(由于在上一个alias语句中我们attack2动作还处于开放的状态,这里需要用-attack2语句将这个动作关闭掉,否则你会看见awp在不停地开镜。:mm4: )。 这是,你可以开始下一次射击了~

然后,我们把我们定义好的这个sawp的动作捆绑给一个按键:mouse3 (鼠标滚轮按键游戏里是mouse3,当然捆绑给别的按键也可以,注意有的鼠标驱动会把滚轮按键事先定义上别的功能,比如我的518的setpoint驱动就是把滚轮按键定义为自动滚轮的,这时在驱动里把它重新定义为普通按键即可).语句是:
bind "mouse3""+sawp"

OK,这个闪镜狙击的脚本全文如下:
alias "+sawp""+attack2;wait;+attack"
alias "-sawp""-attack;wait;lastinv;wait;lastinv;-attack2"
bind "mouse3""+sawp"
(如果你的机器配置不好,对开镜和开枪之间的1个WAIT的间隔反应不过来的活,可以在+attack2和+attack间多加一个WAIT即可,我的机器E4300+1G+X1650用一个WAIT表现非常好。)

将他复制到记事本里,然后存为b.cfg文件,进入游戏后在控制台输入exec b.cfg,这是无论多远只要预瞄的准,直接按下滚轮键,根本看不到开镜,那个家伙就死定了~

可能大家会觉得预瞄非常困难,告诉大家一个窍门(练盲狙的也是这个窍门),就是找一块非常小,小到只有1个点的大小的胶纸,然后开镜,把胶纸贴到你开镜后的准星的地方,然后用这个胶纸做预瞄的准星,尽情使用这个脚本吧,只要网速快,你瞄到敌人之后闪镜狙击,他就挂了~~ 当过一段时间你会对这个胶纸的位置有所感觉,这是把胶纸去掉,强化自己在拿着AWP不开镜时,对屏幕准星的感觉,主要加以训练,预瞄能力就可以提高的非常好。不过记得在拿AWP闪镜狙击之前,先切换一下手枪或其他武器。

奉劝一点,在游戏中用这个脚本是非常变态的,其他人死后观察你时,看到你枪枪不开镜狙死人,你就等着被T吧~~

评分

参与人数 1技术分 +10 收起 理由
811888 + 10 原创内容

查看全部评分

我的人缘0
3
发表于 2008-5-27 21:07 只看该作者
欢迎大家试用上面的闪镜狙击脚本,并告知感觉如何。

脚本没有非常的神秘,但是在编写脚本过程中需要不停地试验,并且中途会反复地发现错误直到脚本完美,因为编写脚本的过程就是试图和游戏程序共同工作的过程,你需要了解程序是如何工作的,程序的命令是如何发出的,基本上所有的非作弊脚本(一些作弊脚本可能需要用到汇编语言如c++等,就超出了我的所知范围了),除了像可以直接用参数规定的部分,例如cl_rate500; mp_friendlyfire 0 等等直接写入cfg文件运行即可,其他所有的操作类的脚本,都离不开ALIAS/BIND命令,欢迎有兴趣的玩家进一步了解脚本,与大家分享你自己的脚本。

评分

参与人数 1技术分 +1 收起 理由
811888 + 1

查看全部评分

我的人缘0
4
发表于 2008-5-27 21:57 只看该作者
原创文章一定要顶。。。
我的人缘0
5
发表于 2008-6-5 10:07 只看该作者
嘿嘿我找到你的文章哪里来的,:yt1: :yt1: 哈哈。。
我的人缘0
6
发表于 2008-6-5 10:47 只看该作者
贴胶布的方法好像不好用吧  我记得以前专门有文章讨论过的
我的人缘0
7
发表于 2008-6-5 12:25 只看该作者
我早在1.3的时候就考虑在屏幕中央点个点。但是网吧老板不肯。
后来买了笔记本,更放弃了屏幕上画个点的想法。这个脚本肯定有用,但也仅限娱乐而已。
我的人缘0
8
发表于 2008-6-5 13:59 只看该作者
测试
原帖由 蓝色0小郁 于 2008-6-5 10:07 发表
嘿嘿我找到你的文章哪里来的,:yt1: :yt1: 哈哈。。



你说清楚吧
我可不想写了一下午原创的东西被说成抄的!!
我的人缘0
9
发表于 2008-6-17 13:59 只看该作者
很多年前的老方法了,我在2002年就见过有人把鼻屎贴在屏幕中央,没有用的,AWP不开镜设置的是随机弹着点,不相信你不开镜用回车打上10枪看能在一个点上不?
我的人缘0
10
发表于 2008-6-17 16:19 只看该作者
测试
原帖由 nirvanalq 于 2008-6-17 13:59 发表
很多年前的老方法了,我在2002年就见过有人把鼻屎贴在屏幕中央,没有用的,AWP不开镜设置的是随机弹着点,不相信你不开镜用回车打上10枪看能在一个点上不?



拜托你看清楚别人的文章再发表意见,上来就乱说真叫我无奈,敢情我费这么多口舌是在这里教你AWP不开镜打鸟??!!  一点专业态度都没有~!
123下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则