接触csgo没多久,发现这是个爆弹的游戏,于是我就看各种视频,还有创意工坊地图的爆***,其中有些雷要跳扔,于是下了个跳扔脚本,发现只能左键最高点跳扔,右键轻扔就没有效果。于是我自己开始研究脚本的编写语法和算法。
先贴一段跳扔脚本:
1.alias "+jumpthrow" "+jump;-attack;-attack2"
2.alias "-jumpthrow" "-jump"
3.bind "space" "+jumpthrow"
首先说一下这里面的"+"和"-","+"是通过键盘映射,一个按键按下去的时候执行+命令,当松开就是-命令。
这里alias是别名的意思,也就是我自己添加一个新的名字,可以说是宏定义的名字(简称宏名了),语法是:
alias <宏指令名> <指令;指令;...>
这样子第1行就是执行到"+jumpthrow"这个命令时会同时执行"+jump;-attack;-attack2"这三个操作。
跳扔的原理是:
当你左键或右键按下去的时候执行了+attack或+attack2,然后执行跳扔命令时就是-attack或-attack2等于是将左键或邮件松开了,也就是执行 跳->释放左键或右键。
有+必有-,我之前解释过+,-的作用,你们可以试下在控制台里打+attack,就会一直不停开枪,因为cs接到的命令是我按着左键没放。因此,第2行的-jumpthrow是用来释放跳跃的,左右键在第一句释放的所以不用再次释放。
第3行是绑定空格执行+jumpthrow命令,那么按下就是+jumpthrow,松开就是-jumpthrow,建议大家绑定v键或者其他键,因为这个指令释放左右键,你没办法边按空格边射击。本人绑定的是滚轮普通跳跃。
看到以前有提问怎样一键切换左右手,大家都认为要绑定两个按键才行。现在我研究后一键切换是可以做到的。不仅仅是切换左右手,相当于一个开关,比如开关hud也行。
至于一键切换的算法我是翻阅csgo原有的thirdperson.cfg里的语法见到的,它里面部分代码是这样的:
1.// ----------------------------------------------------------------------------
2.// thirdperson helpers
3.alias tp_on "thirdperson; alias tp_toggle tp_off"
4.alias tp_off "firstperson; alias tp_toggle tp_on"
5.alias tp_toggle "tp_on"
6.alias tp_revert "revert cam_idealyaw; revert cam_idealdist; revert cam_idealpitch"
7.alias tp_reset "cam_idealyaw 0; cam_idealdist 150; cam_idealpitch 0"
8.alias tp_toggle_platformer "toggle thirdperson_platformer"
9.alias tp_toggle_screenspace "toggle thirdperson_screenspace"
10.tp_reset
11.// ----------------------------------------------------------------------------
第3行到第5行是可以实现第一人称和第三人称开关的算法,那么我们只需要稍加修改就可以作为开关的框架了
不过首先还是要理解其算法:
先第5行定义开关名tp_toggle指向"tp_on"。
然后第3行定义了tp_on,其作用是执行这个命令时先执行thirdperson,再把开关名指向tp_off,此时开关名是指向tp_off的,当再执行开关名的时候就是执行tp_off,执行tp_off就是先执行firstperson,再把开关名指向tp_on,如此实现循环算法。
那我们知道了原理编写左右手切换就不难了:
//toggle righthands
alias rh_on "cl_righthand 1; alias rh_toggle rh_off"
alias rh_off "cl_righthand 0; alias rh_toggle rh_on"
alias rh_toggle "rh_on"
bind "alt" "rh_toggle"
这样子就是alt键是用来切换左右手持枪。
如果你觉得这个没什么用,不喜勿喷,我觉得在一些地图上右手持枪会挡住视野,所以需要来回切换持枪方式来架点。