找回密码
 开放注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

搜索
查看: 835|回复: 1

经验谈——菜鸟五天之内完成一个挂机脚本

[复制链接]

735

主题

1102

回帖

3076

牛毛

二级牛人

积分
3096
QQ
发表于 2009-8-17 08:45:48 | 显示全部楼层 |阅读模式 来自 山东省威海市
我是江湖天河区的一个小刀,名叫oO快刀浪子Oo。经过苦战几个月后终于可以组队刷洞三了,刷洞的大多团练,要么就是稳定队,24小时的最受欢迎。几个通宵后坚持不下去了,毕竟人不是机器,手动稳定打手太难做了,我下决心编一个挂机脚本,边学边做,-----------接下来,就象我发的标题一样,我完成了自己的第一个脚本。

回固定点坐标,自动找怪,自动红蓝,自动拣物,(后续功能待开发)

我第一个脚本的历程:

     思考问题一:我要定点的,要绝对的定点的,必需回到原定点坐标,我要提取小地图坐标。
     感谢自由猎手大哥,我从你哪学到了如何从小地图提取坐标,不过我不是照抄,我的程序绝对比你的简单,比你的快捷,我实现了一个色点判断一个坐标数,不用再反复对比了。

     思考问题二:屏幕上的点与地图上的点联系是如此的美妙!
     要回归,无疑是要找到屏幕上对应地图上点的位置,通过点击屏幕上的对应点回归地图上的固定点。难呀~!难处一,屏幕是3D的,自身的坐标系都不是垂直的;难处二,屏幕坐标系和地图坐标系是有角度的,屏幕可以转吆~!
     开始我保持屏幕不转动的情况下实现回归固定点,这是有条件的,需要屏幕坐标系与地图坐标系重合,只要屏幕稍一转动就回不来啦~!
     学学三角函数是有好处的,接下来我做的任意角度下回归固定点的程序证明了这一点,利用三函数求得了两个坐标系的差角,由差角推出了屏幕上对应地图固定点的位置,然后LeftDoubleClick 1完事!

     思考三:我是来打怪的!
     找怪的方法很多,旋转屏幕,点击左键可以,画圈点击左键也可以,哪个更好些呢,我通过对比感觉画圈的要好一些,回归固定点的时候要简单一些,点击的时候用VBSCall FindPic就可以读出是不是点到怪了,if 点到怪 then 打!else 接着点 endif
做到这一步想实现自动拣物就很简单了,if 怪没了 then 拣一下-----------------


     做脚本真的很简单,只要有一点编程基础就拿下,即使不会编程小精灵也可以实现很多简单的自动操作。玩游戏是一种乐趣,做脚本也是一种乐趣,比一比你会知道哪个乐趣更诱人,你也来做一个吧!
欢迎大家一起来探讨!天河区的小刀                                                   ---------------------------------------oO快刀浪子Oo



-----写在后面-----
大家好~!我是快刀!

我的脚本已经基本完成,并通过了测试~!~!
在定点打怪,自动拣物,自动红蓝的基础上又加上了在红蓝不足时自动回城到NPC处补充,然后土灵到打怪点继续奋斗


好久没上论谈了,不少朋友要脚本,为方便大家使用而不让脚本泛滥我从版主那拷了一段加密脚本给挂机脚本加一下密。加密的按键精灵脚本写在了下面,运行之后会产生一个硬盘序列号代码,在reginfo.txt里,如:D2C32AFEC47B0F5D9E86AD5B173CB3B3E1EE39E59426 是我的机器产生的一个代码
大家把代码回复给我,我给大家做挂机精灵,有邮箱的给我一块回复,我直接发送过去,挂机精灵只能自己机子上用哟~!


VBS Dim fso,dr,sn,snt,i,regstring,file,temp,vaid,serialnumber
VBS Set fso=CreateObject("Scripting.FileSystemObject")
VBS serialnumber="28"&"3F"&"12"&"02"
Rem checkreginfo
Gosub checkreg
If vaid=0
    Goto outdoor
EndIf
Rem mainscript
//#############################主程序#######################//
//此处放置需要加密的脚本
//#############################主程序#######################//
Rem outdoor
EndScript
Sub checkreg
    If fso.FileExists(".\reginfo.txt")=0
        VBS vaid=0
        Gosub creatregtxt
        VBSCall Call MessageBox("Invaid Register information ,reginfo file created!")
        Goto checkover
    EndIf
    VBS Set file=fso.OpenTextFile(".\reginfo.txt",1)
    VBS regstring=file.ReadLine
    VBS file.Close
    VBS i=1
    VBS sn=""
    While i=<8
        VBS sn=sn&Mid(regstring,5*i,1)
        VBS i=i+1
    EndWhile
    VBS sn=Clng("&H"&sn)
    VBS snt=Clng("&H"&serialnumber)
    If snt=sn
        VBS vaid=1
        SayExpression "序列号已通过验证!"
        KeyPress 13 1
        Delay 100
        SayExpression "快刀浪子祝您玩的开心,多多打宝!"
        KeyPress 13 1
    Else
        VBS vaid=0
        Gosub creatregtxt
        VBSCall Call MessageBox("非法用户!你的序列号未通过验证!")
        VBSCall Call MessageBox("已生成验证序列号,请发送给快刀浪子索取验证后的脚本精灵")
    EndIf
    Rem checkover
Return checkreg
EndScript
Sub creatregtxt
    VBS Set file=fso.OpenTextFile(".\reginfo.txt",2,True)
    VBS Set dr=fso.GetDrive("c:")
    VBS sn=Hex(dr.SerialNumber)
    Gosub rand
    VBS regstring=temp
    VBS i=1
    While i=<8
        VBS regstring=regstring&Mid(sn,i,1)
        Gosub rand
        VBS regstring=regstring&temp
        VBS i=i+1
    EndWhile
    VBSCall Call MessageBox(regstring&" count:"&Len(regstring))
    VBS file.WriteLine(regstring)
    VBS file.Close
Return creatregtxt
Sub rand
    Randomize
    VBS temp=Int((65535 -4096+1)*Rnd+4096)
    VBS temp=Hex(temp)
Return rand

0

主题

33

回帖

31

牛毛

初生牛犊

积分
31
发表于 2009-8-26 23:49:37 | 显示全部楼层 来自 黑龙江省黑河市
555,看不懂,只好继续补充知识
您需要登录后才可以回帖 登录 | 开放注册

本版积分规则

帮助|Archiver|小黑屋|通信管理局专项备案号:[2008]238号|NB5社区 ( 皖ICP备08004151号;皖公网安备34010402700514号 )

GMT+8, 2025-4-28 14:16 , Processed in 0.138906 second(s), 37 queries .

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表