注册 | 登录

游侠NETSHOW论坛





游侠NETSHOW论坛 游侠NETSHOW论坛 游侠·网页游戏综合讨论区(游侠网页游戏专区) [原创]教你如何用按键写简单的脚本玩网页游 ...
查看: 21551|回复: 17
打印 上一主题 下一主题

[原创]教你如何用按键写简单的脚本玩网页游 [复制链接]

帖子
395
精华
1
积分
528
金钱
588
荣誉
13
人气
0
评议
0
跳转到指定楼层
楼主
发表于 2008-6-13 11:07:19 |只看该作者 |倒序浏览
新区开张先支持下~!

本人也曾玩过几款网页游戏,感觉网页游戏最多的就是点来点去或者等待。。。。

于是基于懒惰的原因写了些脚本帮助我去做那些无谓的重复点击。。。再一个

以下是我一点小小的写脚本经验,希望能帮助众懒人和没有编程基础的朋友们~~~ (老鸟们就飞过吧~~~~~~~~)

用按键玩网页游有一个特大的优势,就是网页游的游戏内容大多以文本形式表现,这给予了按键在网页游极大的发挥空间。

首先要介绍一下几个常用的命令:

"If..Else", "Rem", "Goto", "Delay", "Sub", "Gosub"

If 的用法:

If target = "杭州"
    /* pseudo code */
    execute a
Else
    /* pseudo code */
    execute b
Endif


意思就是说,如果变量target是杭州的话,执行命令"a", 否则执行命令"b",结束"if"。

Rem 和 Goto 的用法:

Rem 开门
    /* pseudo code */
    execute a
Goto 开门


意思就是说,建立标记"开门",执行命令"a",回到标记"开门",然后继续执行命令"a",再回到标记"开门"。。。。"Rem"和"Goto"的用法相当于无限循环语句(相当恐怖..)
我们可以也通过"Rem"和"Goto"命令配合"If...Else",写出while loop的形式。

Rem 开门
If target = "杭州"
    Endscript
Else
    /* pseudo code */
    execute a
    Goto 开门
Endif


意思就是,当变量"target"不等于"杭州"时,执行命令"a",直到"target"等于"杭州"为止。

Delay 的用法:

a = 1000
Delay a


意思是,设定变量"a"值等于1000,然后延迟1000毫秒(1000毫秒=1秒)。假如想延迟30秒的话就可以写

a = 1000
Delay a*30


不推荐直接写:Delay 30000, 这样的话在修改的时候会带来很多的不方便(自己慢慢体会 )。

某些网页游基本上就是等待,所以可以通过"If...Else"语句来控制等待时间:

a = 3600000
If target = "杭州"
    Delay a                //等待一小时
Else
    Delay a/2             //等待半小时
Endif


接下来要介绍的是"Sub"和"Gosub",不会用"Sub"和"Gosub"的话就无法写出好的脚本,"Sub"相当于建立一组function(8知道中文咋表达...), "Gosub"相当于执行function。

Sub 和 Gosub 的用法:

Rem 开门
If target = "杭州"
    EndScript
Else
    Gosub 杀怪
    Goto 开门
Endif

Sub 杀怪
    /* pseudo code */
    execute a
    ......
Return 杀怪


意思就是,当变量"target"不等于"杭州"时,执行命令组"杀怪"里的内容,直到变量"target"等于"杭州"为止。

"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"非常强大,其应用几乎贯穿整个脚本作业,至于写法变化还有很多种,我就不一一叙述,留待大家去发掘吧

接下来要介绍的语组是写网页游脚本使用率最高的语组之一!

如何读取粘贴板内容:

    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 开始", 完成后终止脚本。

==================================================================

额滴天啊,没想到那么简单的东东写了那么多,本来只是想写一点的....[汗水] ,竟然两个半小时过去鸟..

以上内容,对于老鸟来说就实在太浅了,希望对新手们有帮助。

上传一个我玩网页游"刀剑江湖"时写的脚本,让有需要的朋友借鉴~。(不是卖广告阿,因为我已经不玩鸟)



最后 大家!!



[ 本帖最后由 shuieryin 于 2008-6-13 13:02 编辑 ]
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
已有 1 人评分金钱 收起 理由
richie696 + 50 + 5 + 1

总评分: 金钱 + 50  + 5  + 1   查看全部评分

使用道具 举报

☆永不言败☆
★★★

帖子
2138
精华
4
积分
2321
金钱
2550
荣誉
45
人气
0
评议
0

沙发
发表于 2008-6-13 11:17:06 |只看该作者
你叫我说什么好呢?网页游戏都用这个的话 我觉得这个人是懒到家了!~~~网页游戏每天才花我们几十分钟 需要这样?真的是需要的话 我觉得这个网页游戏还是别做了,只能是失败中的成功案例

使用道具 举报

帖子
395
精华
1
积分
528
金钱
588
荣誉
13
人气
0
评议
0
板凳
发表于 2008-6-13 11:20:43 |只看该作者
这个..

各人有各人的需要嘛,我只是给有需要的朋友~~

使用道具 举报

天邈汉化组特邀
Left ④ Dead☆最爱WitchのAK-47
空军士官

帖子
2418
精华
1
积分
1599
金钱
4766
荣誉
19
人气
0
评议
0

地板
发表于 2008-6-13 12:28:08 |只看该作者
看起来跟FORTRAN和VB很像啊。。。。最反对总是GOTOGOTO的。。。。。

原来不当斑竹。。。这个地方都不给放图片了啊。。。。

使用道具 举报

游侠光荣游戏工作组【元老】
黑暗仙女

帖子
5587
精华
0
积分
2864
金钱
751
荣誉
7
人气
0
评议
0

5#
发表于 2008-6-13 13:50:43 |只看该作者
厉害啊,我最怕学编程

——————

最适合睡午觉的季节来了

使用道具 举报

帖子
395
精华
1
积分
528
金钱
588
荣誉
13
人气
0
评议
0
6#
发表于 2008-6-13 16:34:35 |只看该作者
原帖由 萧萧风兮 于 2008-6-13 12:28 发表
看起来跟FORTRAN和VB很像啊。。。。最反对总是GOTOGOTO的。。。。。


这个.. 我也没办法啊

标记不能用变量,很郁闷

[ 本帖最后由 shuieryin 于 2008-6-13 19:56 编辑 ]

使用道具 举报

帖子
395
精华
1
积分
528
金钱
588
荣誉
13
人气
0
评议
0
7#
发表于 2008-6-13 17:24:21 |只看该作者
原帖由 kideny 于 2008-6-13 12:41 发表
使用修改工具让玩家从重复的体力劳动中解脱出来,无可厚非。
但是破坏游戏平衡性的工具,确实应该抵制。


这个没错,说老实,没几个游戏不是重复的劳动阿

使用道具 举报

帖子
395
精华
1
积分
528
金钱
588
荣誉
13
人气
0
评议
0
8#
发表于 2008-6-13 18:11:07 |只看该作者
我晕,怎么会出了那么多重复?

20202020220202220

使用道具 举报

帖子
395
精华
1
积分
528
金钱
588
荣誉
13
人气
0
评议
0
9#
发表于 2008-6-13 19:53:59 |只看该作者
阿,谢谢超版给精华~~~

20202020202020

使用道具 举报

帖子
395
精华
1
积分
528
金钱
588
荣誉
13
人气
0
评议
0
10#
发表于 2008-6-13 20:11:40 |只看该作者
原帖由 水 绫 于 2008-6-13 13:50 发表
厉害啊,我最怕学编程

——————


不厉害啊,这都是最基本的语句,你试试学C就知道了,内存改的一塌糊涂,Debug烂的要命不说最适用的方法还是printf, 我是先学java后转C的,所以异常痛苦,各位C大有没有什么好建议阿

使用道具 举报

白金会员勋章

帖子
13398
精华
0
积分
6930
金钱
3657
荣誉
23
人气
14
评议
0

11#
发表于 2008-6-13 22:44:13 |只看该作者
看得头昏
.................
但还是给第一个精华支持

使用道具 举报

尉然的叁角湖詠遠滴神--貓māo
著名记者
尐精靈

活跃勋章白金会员勋章

帖子
17665
精华
2
积分
9841
金钱
6425
荣誉
60
人气
88
评议
0

12#
发表于 2008-6-14 01:10:48 |只看该作者
第一个精华啊 要支持

使用道具 举报

☆神圣罗马帝国·圣域星子学园☆
游侠资深版主
AS罗马 最佳中场
TT罗曼联队 AS RoMan United
白鸟座·曙光女神之宽恕·圣剑
★★★★★★★★★★
◆◆◆◆

版主勋章资深版主勋章大头像勋章白金会员勋章活跃勋章荣誉勋章特色头衔勋章

帖子
46290
精华
7
积分
26559
金钱
52242
荣誉
201
人气
43
评议
0

13#
发表于 2008-6-14 05:07:43 |只看该作者
本区第一个精华一定要支持一下!

使用道具 举报

NVIDIA GEFORCE 7600GT
日本足球J联盟 最佳中场

活跃勋章荣誉勋章白金会员勋章

帖子
12118
精华
5
积分
8580
金钱
14696
荣誉
152
人气
11
评议
0
14#
发表于 2008-6-14 20:57:54 |只看该作者
是不是源文件里面都有的
估计楼主有一定VB基础!
.....

使用道具 举报

帖子
4229
精华
0
积分
2135
金钱
1502
荣誉
2
人气
0
评议
0
15#
发表于 2008-6-14 22:57:23 |只看该作者
经历过汇编的洗礼你就不会觉得C里的指针很难了

使用道具 举报

帖子
395
精华
1
积分
528
金钱
588
荣誉
13
人气
0
评议
0
16#
发表于 2008-6-15 02:38:56 |只看该作者
原帖由 celincal 于 2008-6-14 20:57 发表
是不是源文件里面都有的
估计楼主有一定VB基础!
.....


按键精灵就是用VB写的

使用道具 举报

帖子
395
精华
1
积分
528
金钱
588
荣誉
13
人气
0
评议
0
17#
发表于 2008-6-15 02:41:39 |只看该作者
原帖由 lere 于 2008-6-14 22:57 发表
经历过汇编的洗礼你就不会觉得C里的指针很难了


说的好啊,我现在是同时在学汇编和C,汇编简直就是... 把简单的问题复杂化,不过也没办法

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

手机版|Archiver|游侠NETSHOW论坛 ( 苏ICP备2023007791号 )

GMT+8, 2024-4-26 19:07 , Processed in 0.328873 second(s), 12 queries , Gzip On, Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

分享到