来源:一游网发表时间:2012-03-15 13:30:29发布:一游网
本人也曾玩过几款网页游戏,感觉网页游戏最多的就是点来点去或者等待……
于是基于懒惰的原因写了些脚本帮助我去做那些无谓的重复点击……再一个……
以下是我一点小小的写脚本经验,希望能帮助众懒人和没有编程基础的朋友们。(老鸟们就飞过吧)用按键玩网页游有一个特大的优势,就是网页游的游戏内容大多以文本形式表现,这给予了按键在网页游极大的发挥空间。
首先要介绍一下几个常用的命令:
“IfElse”, “Rem”, “Goto”, “Delay”, “Sub”, “Gosub”
If 的用法:
If tar = “杭州”
/* pseudo code */
execute a
Else
/* pseudo code */
execute b
Endif
意思就是说,如果变量tar是杭州的话,执行命令“a”, 否则执行命令“b”,结束“if”。
Rem 和 Goto 的用法:
Rem 开门
/* pseudo code */
execute a
Goto 开门
意思就是说,建立标记“开门”,执行命令“a”,回到标记“开门”,然后继续执行命令“a”,再回到标记“开门”……“Rem”和“Goto”的用法相当于无限循环语句(相当恐怖)
我们可以也通过“Rem”和“Goto”命令配合“If…Else”,写出while loop的形式。
Rem 开门
If tar = “杭州”
Endscript
Else
/* pseudo code */
execute a
Goto 开门
Endif
意思就是,当变量“tar”不等于“杭州”时,执行命令“a”,直到“tar”等于“杭州”为止。
Delay 的用法:
a = 1000
Delay a
意思是,设定变量“a”值等于1000,然后延迟1000毫秒(1000毫秒=1秒)。假如想延迟30秒的话就可以写
a = 1000
Delay a*30
不推荐直接写:Delay 30000, 这样的话在修改的时候会带来很多的不方便(自己慢慢体会 )。
某些网页游基本上就是等待,所以可以通过“If…Else”语句来控制等待时间:
a = 3600000
If tar = “杭州”
Delay a //等待一小时
Else
Delay a/2 //等待半小时
Endif
接下来要介绍的是“Sub”和“Gosub”,不会用“Sub”和“Gosub”的话就无法写出好的脚本,“Sub”相当于建立一组function(8知道中文咋表达…), “Gosub”相当于执行function。
Sub 和 Gosub 的用法:
Rem 开门
If tar = “杭州”
EndScript
Else
Gosub 杀怪
Goto 开门
Endif
Sub 杀怪
/* pseudo code */
execute a
……
Return 杀怪
意思就是,当变量“tar”不等于“杭州”时,执行命令组“杀怪”里的内容,直到变量“tar”等于“杭州”为止。
[page]
“Sub”也可以和其他“Sub”相互交替使用。
例如:
Gosub 杀怪
EndScript
Sub 杀怪
/* pseudo code */
execute a
……
Return 打坐
Sub 打坐
/* pseudo code */
execute b
……
Return 杀怪
意思就是说,执行命令组“杀怪”时,会先执行命令组“杀怪”,再执行命令组“打坐”,然后终止脚本。
但如果你有几千行语句的时候,以上这种方法会弄得你头昏脑胀[汗水] … 所以还是推荐一下写法:
a = 1000
Gosub 杀怪
Delay a
Gosub 打坐
EndScript
Sub 杀怪
/* pseudo code */
execute a
……
Return 杀怪
Sub 打坐
/* pseudo code */
execute b
……
Return 打坐
或者是:
a = 1000
Gosub 杀怪
EndScript
Sub 杀怪
/* pseudo code */
execute a
……
Delay a
Gosub 打坐
Return 杀怪
Sub 打坐
/* pseudo code */
execute b
……
Return 打坐
以上第二种写法相当于命令组“打坐”包含在命令组“杀怪”里执行,此写法应用非常广泛…
如果想要两组命令组相互交替无限循环执行,只需这样写:
a = 1000
Gosub 杀怪
EndScript
Sub 杀怪
/* pseudo code */
execute a
……
Delay a
Gosub 打坐
Return 杀怪
Sub 打坐
/* pseudo code */
execute b
……
Gosub 杀怪
Return 打坐
要记住“Sub”和“Gosub”非常强大,其应用几乎贯穿整个脚本作业,至于写法变化还有很多种,我就不一一叙述,留待大家去发掘吧
接下来要介绍的语组是写网页游脚本使用率最高的语组之一!
[page]
如何读取粘贴板内容:
VBS Set objIE = CreateObject(“InternetExplorer.Application”)
VBS objIE.Navigate(“about:blank”)
VBS search = objIE.document.parentwindow.clipboardData.GetData(“text”)
VBS objIE.Quit
这个看起来有点复杂,你不需要明白每句话的意思(如果你有兴趣的话[汗水] ),
你只需要知道粘贴版的内容已经写入到 “search” 这个变量里就足够了~!这点非常重要。
最后的例子是如何用读取粘贴板的内容配合“If…Else”, “Rem”, “Goto”,“Delay”, “Sub”, “Gosub”写出大体上的网页游脚本
dt = 1000
Gosub 开始
EndScript
Sub 开始
Gosub 万福酒楼a
Delay 30*dt
Gosub 尚贯后街a
Delay 30*dt
Gosub 西唐巷a
Return 开始
Sub 读取内容
VBS Set objIE = CreateObject(“InternetExplorer.Application”)
VBS objIE.Navigate(“about:blank”)
VBS search = objIE.document.parentwindow.clipboardData.GetData(“text”)
VBS objIE.Quit
Return 读取内容
Sub 万福酒楼a
Rem 万福酒楼b
Delay dt
Gosub 读取内容
If search = “※万福酒楼※”
MoveTo 704,111 //鼠标移动到704,111坐标
Delay dt
LeftClick 1 //点击鼠标左建1次
Else
Delay dt
Goto 万福酒楼b
EndIf
Return 万福酒楼a
Sub 尚贯后街a
Rem 尚贯后街b
Delay dt
Gosub 读取内容
If search = “※尚贯后街※”
MoveTo 588,402 //鼠标移动到588,402坐标
Delay dt
LeftClick 1 //点击鼠标左建1次
Else
Delay dt
Goto 尚贯后街b
EndIf
Return 尚贯后街a
Sub 西唐巷a
Rem 西唐巷b
Delay dt
Gosub 读取内容
If search = “※西唐巷※”
MoveTo 198,404 //鼠标移动到198,404坐标
Delay dt
LeftClick 1 //点击鼠标左建1次
Else
Delay dt
Goto 西唐巷b
EndIf
Return 西唐巷a
这个例子大概意思是,先建立命令组“开始”,而“开始”里包含有命令组“万福酒楼”、“尚贯后街”、“西唐巷”,按先后次序执行,命令组“读取内容”则在以上三个组内执行,最后在脚本最上方执行“Gosub 开始”, 完成后终止脚本。