一、整体观念
对于编写一个复杂的脚本要有一个整体的流程,和编辑软件一样,要先搭起脚本的整体框架。
举个例子脚本实现的功能:
场景A购买补血药品1000个,如果钱不够到银行(场景B)取钱,然后到场景C挂机打 猎, 如果发现药品没有了去场景A购买,然后重复过程。
脚本实现的功能有了,怎么写呢,中心是挂机打猎,从打猎开始:
脚本的流程:
1、场景C打猎
2、调用判断补血药品子程序,如果没有药品用完返回blood=0,有返回blood=1
3、如果blood=1继续场景C打猎
4、如果blood=0判断身上是否有足够的钱
a、有钱去场景A买药1000个继续下面的5
b、没钱去场景B银行取钱,然后转到上面的a
5、回到场景C,启动打猎
只是一个思路,不一定是最佳的,上面比较复杂的判断可以作成子程序,以方便调用阅读和调试。不要都做成一个整个的脚本(不用子程序),自己修改也很麻烦,调试更不方便,可以先做一个子程序的空壳,例如调用的时候显示,“判断补血药子程序”,大框架通过了以后往里面加脚本,然后整体调试。
二、局部分析
脚本有问题通常是某个地方的某个语句的问题,要局部分析,各个击破。继续以上面的脚本流程为例,如果不能实现设计的功能,就要局部分析,先调试保证打猎的脚本正常执行,然后在加入判断补血药的子程序,在进一步加其他的子程序,最后整体调试通过完成功能。
三、直接赋值给变量
有时候需要用功能调用或者子程序返回的结果,但是调试通不过,可以先把返回值强行赋值为需要的结果,然后测试脚本是否正常,以确定问题所在。
四、缩小范围
脚本或者子程序很长的时候,查问题很不方便,可以先做备份,然后删除单一功能不会出错的部分,可以缩短脚本,可读性增加,直到找出有问题的部分。
五、单独调试
对于复杂脚本中的子程序,或者脚本段,可以构造条件单独调试,通过后再放回主脚本。
最后说几个比较好的习惯:
1、变量先定义
尽管按键支持直接使用变量,学过高级语言的朋友都知道,变量是要定义的,这样在复杂的脚本最重要,防止冲突,不然有可能用来用去自己都乱套了。个人认为合理的是先VBS dim blood,foundx,foundy......按英文词或字头按意义定义,为自己创造方便。
2、关于标记
很多朋友的脚本用Rem 1/ Rem 2/Rem A/ Rem B......做标记,虽然省力但这不是好习惯,建议按中文或者英文,用脚本段或者子程序的功能来命名。
3、增加延迟
脚本不加任何延迟一直跑,有时候出看起来莫名其妙的问题,调试的时候也停止不了,建议在不影响脚本反映速度(如补血/蓝)的情况下,在脚本适当加入延迟,如果是调试阶段,那么加入秒级延迟为好,在调试过程中试验性减少到合适值。一般来说delay 1/10这样的延迟是不影响脚本功能的。
乱七八糟说了不少,希望对大家有所帮助
对于编写一个复杂的脚本要有一个整体的流程,和编辑软件一样,要先搭起脚本的整体框架。
举个例子脚本实现的功能:
场景A购买补血药品1000个,如果钱不够到银行(场景B)取钱,然后到场景C挂机打 猎, 如果发现药品没有了去场景A购买,然后重复过程。
脚本实现的功能有了,怎么写呢,中心是挂机打猎,从打猎开始:
脚本的流程:
1、场景C打猎
2、调用判断补血药品子程序,如果没有药品用完返回blood=0,有返回blood=1
3、如果blood=1继续场景C打猎
4、如果blood=0判断身上是否有足够的钱
a、有钱去场景A买药1000个继续下面的5
b、没钱去场景B银行取钱,然后转到上面的a
5、回到场景C,启动打猎
只是一个思路,不一定是最佳的,上面比较复杂的判断可以作成子程序,以方便调用阅读和调试。不要都做成一个整个的脚本(不用子程序),自己修改也很麻烦,调试更不方便,可以先做一个子程序的空壳,例如调用的时候显示,“判断补血药子程序”,大框架通过了以后往里面加脚本,然后整体调试。
二、局部分析
脚本有问题通常是某个地方的某个语句的问题,要局部分析,各个击破。继续以上面的脚本流程为例,如果不能实现设计的功能,就要局部分析,先调试保证打猎的脚本正常执行,然后在加入判断补血药的子程序,在进一步加其他的子程序,最后整体调试通过完成功能。
三、直接赋值给变量
有时候需要用功能调用或者子程序返回的结果,但是调试通不过,可以先把返回值强行赋值为需要的结果,然后测试脚本是否正常,以确定问题所在。
四、缩小范围
脚本或者子程序很长的时候,查问题很不方便,可以先做备份,然后删除单一功能不会出错的部分,可以缩短脚本,可读性增加,直到找出有问题的部分。
五、单独调试
对于复杂脚本中的子程序,或者脚本段,可以构造条件单独调试,通过后再放回主脚本。
最后说几个比较好的习惯:
1、变量先定义
尽管按键支持直接使用变量,学过高级语言的朋友都知道,变量是要定义的,这样在复杂的脚本最重要,防止冲突,不然有可能用来用去自己都乱套了。个人认为合理的是先VBS dim blood,foundx,foundy......按英文词或字头按意义定义,为自己创造方便。
2、关于标记
很多朋友的脚本用Rem 1/ Rem 2/Rem A/ Rem B......做标记,虽然省力但这不是好习惯,建议按中文或者英文,用脚本段或者子程序的功能来命名。
3、增加延迟
脚本不加任何延迟一直跑,有时候出看起来莫名其妙的问题,调试的时候也停止不了,建议在不影响脚本反映速度(如补血/蓝)的情况下,在脚本适当加入延迟,如果是调试阶段,那么加入秒级延迟为好,在调试过程中试验性减少到合适值。一般来说delay 1/10这样的延迟是不影响脚本功能的。
乱七八糟说了不少,希望对大家有所帮助