返回列表 回复 发帖

管方答疑(想学习初级脚本制作,高级脚本探讨的朋友现在统统看过来!!!)

活动内容:
由简单游官方定期举办按键精灵疑难解答,针对自愿报名学习的玩家进行脚本技术方面的问题解惑,了解按键精灵,了解简单游,用简单轻松的方式来诠释游戏,增加乐趣,释放我们的双手,减轻游戏疲劳,把重复枯燥的游戏内容统统扔掉!


第一课:概述


概述

本教程欢迎转载,但请注明:转载自简单游官方论坛:bbs.jdyou.com
作者:舞月

        本节作为入门级的第一课,将教晓怎么才能编写出优秀的脚本。也可理解为学习过程。并尽量简单的说明整个学习过程。

        编程初学者常犯的毛病,是希望在尽短时间内,就可以编写出强大功能的软件。学习编程到可以编写出有用,并且功能还不错的软件,是个长期艰苦的学习过程。需要付出大量的努力与时间。没有一掘而就的捷径。幸好,我们只学按键精灵,不用接触涉及编程中繁杂的方方面面。也希望按键爱好者以本教程做为编程入门,初窥编程大门。第一次学写教程类的文字,不足之处,多多指点。

        本教程针对读者群为:对按键精灵有一定了解,可以使用按键精灵提供的基础指令来实现简单的机械操作。

        如果你是刚刚接触按键精灵,并不了解他有何基础功能的朋友,可以参看由“兄弟工作组”制作,图文并茂讲解按键各基础的功能的“按键宝典”。可在按键精灵官方网站下载。


        导读:
        本教程分三部分。
        第一部分,前6节为按键精灵的基础知识。
        第二部分,从7节起,在大量的小例子面前,争取把基础知识融会贯通。
        第三部分,搜集整理大量实用或复杂的脚本,讲解按键精灵的高级应用技巧。

第2课:零编程学会补红蓝脚本的制作


补红蓝脚本的制作

本教程欢迎转载,但请注明:转载自简单游官方论坛:bbs.jdyou.com
作者:舞月

        我们应该知道,按键精灵拥有一只眼睛,一双手,眼睛可以帮我们查看屏幕上的颜色,而手可以帮我们不断的点击键盘鼠标。相信多数的朋友对于这双手的操控已经灵活自如了,而要编写出功能强大的脚本,没有眼睛可不行。本教程以此出发,教会读者使用这双眼睛,更好的控制机器人的手臂。

        本章用到的按键精灵基础命令:
        1、
        IfColor 100 10 112233 0
        EndIf

        IfColor做为按键精灵最重要的颜色判断语句(眼睛),有着良好的易用性与理解性。
        语句详细解释:

        ifColor        - 如果颜色
        100 - 屏幕X象素
        10 - 屏幕Y象素
        112233 - 16位进制的颜色(以两位为一种颜色分别代表蓝、红、黄)
        0 - 相等(1为不相等。2为模糊匹配)

        解释:如果在坐标100,10的颜色为112233则执行。后面的EndIf做为IfColor的配对。

        使用方法:控制命令->抓点坐标/颜色->在面图上点左键,加入到坐标点->退出抓点->选好坐标颜色后->插入


        2、
        //注释
        解释:“//”为按键精灵的注释在“//”后面所跟写的任何文字都将被按键忽略。


        3、
        Rem s
        Goto s
        解释:“Rem s”可以理解为在改位置做一个标记s。而“Goto s”则是无条件跳到此标记执行。这里补一下程序运行概念:每行代码都有行号,脚本解释器要一行一行代码的执行下去,知道执行最后一行代码或碰到EndScript语句(该语句在后面会有讲解),没有任何可执行了,程序就退出。


        4、
        Delay 100
        解释:暂停100毫秒(1000毫秒 等于 1秒)


        看完了概念,我们来实际编写一个游戏的补红补蓝脚本,验证我们是否已经学会了该课的内容。

        首先打开按键精灵,并进入游戏,用PrintScr(一般在F12右边第一个)键截取游戏图象。然后切换到按键精灵程序。按ifcolor的使用方法来抓取我们的血条颜色坐标。并且插入到代码内。

        此时,我们可以看到在按键精灵里多出了三条语句(在源代码那边哦):
        IfColor 126 19 4a5110 0
        Else
        EndIf
        其中else是否则的意思,就是说如果上面的ifcolor不成立,则执行else下面的语句。我们先写个测试代码,看看取得的颜色是否正确
        IfColor 126 19 4a5110 0
            MessageBox 颜色正确
        Else
            MessageBox 颜色不对
        EndIf
        如果只弹出“颜色正确”那么恭喜你,您离成功很近了。如果颜色不对,请检查是不是颜色那里出现错误。直到弹出“颜色正确”就可以继续学习了。

        我们继续。
        修改代码如下:
        Rem s
        IfColor 126 19 4a5110 1        
            //使用F5的红药
            KeyPress 116 1
        EndIf
        Delay 100
        Goto s
        注意以上代码。增加了rem..goto,持续不断的执行上面的过程。原来的ifcolor最后的0改为了1(1为不等于)。加了暂停的Delay(不让脚本的CPU占用率过高)。这时,你的这段代码已经可以补红了。补蓝的代码请自行加入,做为作业。

        好了,这节已经结束。大家多注意休息,不要劳神哦~ 什么?代码不好使?颜色不对。好好,我加个补充说明。


        补充说明:
        如果按步骤写了以上代码并不好使,那么可能是颜色出现问题。解决方法给出几个供参考
        1、取血条底色,如果颜色等于底色则执行加血的操作。
        2、用模糊取色,如果颜色大约等于血色则,否则加血。或,如果颜色大约等于底色则加血(这里是模糊匹配和else的运用)
        以上两点也为各游戏常遇到问题的解决办法。多多实验,总会成功的。

第3课:过程语句的学习


过程语句的学习

本教程欢迎转载,但请注明:转载自简单游官方论坛:bbs.jdyou.com
作者:舞月

        接第2课,零编程学会补红蓝脚本的制作

        本节想学会使用Sub和GoSub语句的使用,以及对第2节没有解释清楚的地方加以补充。

        Sub作为一个过程语句的关键子,在代码重用和逻辑编排上启着致关重要的作用。先看一下关键字的说明:

        Sub [过程名]
            //这里的部分就是过程体(自命名,可以看的懂就好)了。可以添加执行代码。
        Return

        解释:[过程名]可以随意更改,启一个可以很容易理解的名字。是书写代码的良好习惯,也可以使用中文。Return 语句的作用是返回调用点。

        GoSub [过程名]
        解释:gosub固名思意,到sub。sub可以理解为过程、函数、方法。叫法不同,原理一样。


        我们改装上次讲过的补红蓝脚本:
        Sub main
            Rem s
            Gosub add_hp
            Gosub add_mp
            Delay 100
    Goto s
        Return
        Sub add_hp
            IfColor 126 19 4a5110 1
                KeyPress 116 1
            EndIf
        Return
        Sub add_mp
            IfColor 126 19 4a5110 1
                KeyPress 117 1
            EndIf
        Return
        以上代码组成一个完整的体系,并且结构合理,清晰。易于看懂。通常会把执行单一功能的一块代码做为一个sub。比如补红蓝脚本,一个主控sub,一个补红,一个补蓝。要修改哪部分,只要在对应的sub中修改即可。
        sub main只是一种编程习惯,在按键精灵里,如果没有碰到goto、gosub这两个语句(另外还有几个会发生跳转,以后章节就讲到)是不会发生跳转代码行号的,只是顺序执行,在碰到sub时,直接忽略该行语句,执行下一条。

        我们来看下面代码:
        Sub main
            Gosub test
        Return
        MessageBox 测试
        Sub test
            MessageBox 测试
        Return
        该代码在按键精灵5.2以前的版本中(包括5.2)都会执行不正常。5.2版的执行结果为一直弹出“测试”提示框,而不是只弹出一次。这个错误在5.3版以及后续版本,都已经改正,所以在学习当中,尽量使用最新版本的按键精灵,以后的教程也都根据按键精灵最新的5.6版来讲解。


        代码含义补充说明:
        KeyPress 116 1
        解释:
        KeyPress - 按某一个键的关键字(在键盘选项卡里可以找到)
        116 - F5键的虚拟键值码(在键盘选项卡里最下面左边的文本框可以按下键盘各种键,查询虚拟键值码。也可反之)
        1 - 按1次(改成2就是按两下)

        以上说明适合keydown(按键按下)、keyup(按键抬起)、leftclick(鼠标左键点击)等

第4课:变量的含义


变量的含义

本教程欢迎转载,但请注明:转载自简单游官方论坛:bbs.jdyou.com
作者:舞月

        很多初学者都会迷惑,什么是变量。

        个人觉得变量是编程入门的一道门槛。介绍变量概念的文章很多,这里先做易于理解的比喻,再从语言层面上进行讲解。如果你已经了解了变量的含义,则请跳过此节。

        变量,你可以理解为超市的存包柜。每一个变量对应一个柜子。而柜子的号码就是变量名。想要哪个柜子里的东西(数据),就对应的找哪个变量名。变量名可是你自己命名的哦~

        我们看例子:

        a=1
        把数字1放进柜子a中。

        b="你猜对了吗?"
        把字符串 你猜对了吗? 放进柜子b中。字符串必须用""包含。

        dc=3.14159265
        把小数放进柜子dc中。

        num1=1
        num1=33
        num2=55
        sum=num1+num2
        首先把33和55分别放入num1和num2中。然后把他们取出来,做加法操作(加法是由CPU来处理的),把结果放在sum中。结果sum等于88

        num1=1
        num1=33        
        num1被给值为1,然后又给值为33。此时,num1中存储是的33。1就被覆盖掉了。没有了:)

        sum=sum+1
        这句不等同于数学的加法,也是初学者不容易理解的地方。我们只要想,把sum拿出来和1做加法,再放回sum中就可以了。sum原来的值是88,做完加法后,sum等于89。

        pig=1
        pig=pig*3+pig
        能猜出pig最后等于几么?1*3+1。结果是4

        好,相信到这里,你应该明白变量是怎么回事了。变量的加减法已经会发,乘除法作为作业喽。更高级的应用,将来以后的章节进行讲解。下面大致说一下C语言中的变量。

        C语言比较接近于系统底层,更易于理解变量的机制。当代码中有a=2的时候,则在内存中分配一小块区域来存储这个变量,然后把2放在该内存的区域中。当执行b=a的时候,则通过变量名a提取出它的值数字2。在放在b在内存中的区域中!

        当然,在语言实现层面也并非我上面说的寥寥几句,但这都并不是我们关心的。我们只要明白,变量、变量名是什么,以及怎么给他赋值,怎么提出他的值就可以了,毕竟我们要的只是应用。如果有兴趣知道更多,使用搜索引擎就可以得到你想要的答案了。
第5课:条件语句的使用


条件语句的使用

本教程欢迎转载,但请注明:转载自简单游官方论坛:bbs.jdyou.com
作者:舞月

        所谓条件语句,即“满足”或“不满足”,也可以理解为“是”或“否”。比如在上几节说过的ifcolor,既属于此类。

        按键精灵中,条件语句只有两个:ifcolor..else..endif和if..else..endif

        ifcolor语句不再讲解,这节把重点放if上。也为巩固上一节中变量的知识。

        if语句的格式:
        If [条件表达式]
            //这里可以写功能代码
        Else
            //这里可以写功能代码
        EndIf
        解释:
        if后面跟一个空格键,然后写条件表达式。如果条件满足,则只执行if到else中的代码,否则就执行else到endif中的代码。这里是很明显的“是”与“非”划分。
        所谓“条件表达式”,既条件的结果只有两个值:“真/假”。如:1=1(真) 1=2(假) 1>2(假) 1<2(真)。把类似于这样的值放在一起对比,即可得出if语句之后要执行的路线。

        上面的内容对初学者来讲,可能比较难以理解消化。建议看过下面的内容,再回头看一遍上面的文字,之所以把这部分放在开头,是为了加深以下文字的理解。

        先来做一个实际的例子:
        If 1>3
            MessageBox 不成立
        Else
            MessageBox 成立
        EndIf
        把上面代码放在按键精灵中执行,可以直观的看到结果,然后在把“>”换成“<”试一下。可以加深对条件语句的理解!

        这个例子并没有实际作用。但考虑做为导读,直观性比较强。下面来做一个稍微复杂的:
        n=1
        Rem s
        n=n+1
        If n mod 2=0
            VBSCall Call MessageBox("偶数:" & n)
        EndIf
        Goto s
        你能只凭理解力就可以猜出以上代码的结果么?猜不出就把他放在按键精灵下面执行一次,看看效果!
        这里有几个知识点:
        1、rem s和goto s组成一个循环体,不断执行。
        2、n=n+1让n这个变量在每次循环时自身数值递增1。(对这句不大理解的,可以参看前一节)
        3、n mod 2首先解释一下mod的意义,mod是取余。(余是什么?如果你有小学2年级的书,可以翻查一下,我在后面也会有对比讲解)
        4、&代表字符串连接符。

        再看一个字符串对比的例子:
        hello="你好"
        VBSCall name=InputBox("请输入姓名:")
        if name="简单游"
            VBSCall Call MessageBox(hello & name & ",身份已确认")
        else
            VBSCall Call MessageBox(hello & name & ",身份无法确认")
        endif

        思路比较乱!如果看完这节还是不太理解,请从这节的开始再看一次。


        可以用的条件表达式中的符号说明:
        =        等于号                对比两个值是否相等。相等返回真,不等返回假
        >        大于号                当左值大于右值时,返回真,否则返回假
        <        小于号                当左值小于右值时,返回真,否则返回假
        >=        大于等于号        当左值大于或者等于右值时,返回真,否则返回假
        <=        小于等于号        当左值小于或者等于右值时,返回真,否则返回假


        可以用在数值计算中的符号说明:
        +        加                两个数字相加,可以是小数,可以是正负数。
        -        减                两个数字相减,可以是小数,可以是正负数。
        *        乘                两个数字相乘,可以是小数,可以是正负数。
        /        除                两个数字相除,可以是小数,可以是正负数,但除数不能为0。
        mod        取余                两个数字相余,必须是整数。


        字符串相连的符号说明:
        &        连接符,音同:“And”        该连接符的左右必须有变量或常量
        (常量的定义很简单,就是固定的数或字符串,比如1,或者"简单游"。都是常量,不可变)
        +        连接符                        该连接符必须两边均为字符串才可使用。一般不用。



        还有一个问题没有交代,逻辑运算符。留到以后说吧。

第6课:按键精灵里的循环


这节开始就没有写了。
以后会陆续的补齐这份教程。
并且把大家的意见,综合到这份教程里。
最后会免费提供此教程的下载,给更多想要学习按键精灵制作方法的朋友们学习。

其中的快乐,缺少不了你的一份参与!让我们共同进步!


按键精灵里的循环

本教程欢迎转载,但请注明:转载自简单游官方论坛:bbs.jdyou.com
作者:舞月

        循环,顾名思义,重复执行某一段代码(名为:循环体)。循环体可以是任意代码。如鼠标连点就是利用循环来做的。按键精灵有两种循环:For..EndFor和While..EndWhile下面分别讲述这两种循环的应用。

        for语句格式:
        For [自然数]
            //这里是循环体
        EndFor

        你猜的没错,自然数代表循环的次数。看个弹出5次提示框的例子:
        For 5
            MessageBox 要提示5次哦。
        EndFor
        MessageBox 结束


        While语句格式:
        While [条件表达式]
            //这里是循环体
        EndWhile

        与for循环唯一的区别在于[条件表达式],这样就使While有了更高的灵活度,记住(重点):如果条件表达式为真则执行循环体。

        依然以5次循环为例:
        i=0
        While i<5
            i=i+1
            VBSCall Call MessageBox("提示第" & i & "次")
        EndWhile
        MessageBox 结束
        实际运行一次这个小例子,想一想其中的原理,会记忆深刻哦!

        在看一个鼠标连点的例子,是for循环达不到的
        While 1
            LeftClick 1
            Delay 100
        EndWhile

        这里的条件是:1。或许你会差异,不要怀疑,这样的写法是可以的。在C语言、VB、VBScript中非0为真,既,只要不是0,都是“真”,0则是“假”。把1换成其他的数字试试:)

        关于循环就暂时只讲这么多。


        交代上一章没讲完的逻辑运算符:

        所谓逻辑运算符,只是操作“真”或“假”,用在if和while语句中。
        在VB,VBS,按键精灵里只有三个逻辑运算符,分别是(字母不区分大小写)And(与)、Or(或)、Not(非)
        下面我们用1和0来表示真假值(非0为真)
        b1=1
        b2=0
        b3=1
        b1 and b2//与的关系,当b1和b2同时为真,则结果“真”(该结果为假)
        b1 or b2//或的关系,当b1和b2只要有一个为真,则结果“真”(该结果为真)
        not b1//非的关系,如果b1是真,则结果是“假”,反之则是“真”(该结果为假)
        上面三个理解之后,多看几个例子:
        1、
        if b1 and b2
            //不执行
        endif
        2、
        if b1 and b2 and b3
            //不执行
        endif
        3、
        if b1 or b2 or b3
            //执行
        endif
        4、
        if not b2
            //执行
        endif
        更多的,希望读者自己多试试,下面一个测试的方法,只要改变表达式就可以了(while循环也请自己测试):
        if b1
            vbscall call messagebox("真")
        else
            vbscall call messagebox("假")
        endif


        前6章已经写完了,所有的基础也都在这里面了,第一版因要把大的框架赶出来,所以内容会比较匮乏。
        本教程预计会编写4大章:
        第一章:初学者必看,讲述基础知识。
        第二章:应用大量初级的例子来融会并熟练第一章所学的内容。
        第三章:高级进阶例子,从简入繁讲述大部分简单游里的各种实用脚本。
        第四章:按键精灵高级应用,这章会比较复杂。结合按键精灵的插件功能来讲,并且讲述按键精灵的实现原理。比如ifcolor 2这个模糊色到底模糊到什么样的程度,我们如何编写自己的按键精灵插件等等。

        当然,第二版的改动会非常大,主要是为了初学者更容易的入门和入门者如何快速进阶,来打乱四章的顺序。并对描述不清或匮乏的章节进行补充!

       感谢所有简单游用户,一如既忘的支持我们,本次活动的宗旨,也是为了能让这部教程更加的易懂、有用。这当中肯定少不了您的参与和提出宝贵意见,并告诉我们各种容易忽略掉的地方!
接下来我会路路续续的贴他们的问答的
我想一要份自动打怪脚本。。。最好详细点。。。易懂点,,,
本人新人。。。。

thx.....

回复如下:
如果新人,要看新到什么程度,如果懂的基本的编程,晓得变量的各种操作,再加上数学逻辑,就可以了。自己动动脑筋,很容易写的出来。提示:小地图或者怪物名字。
如果懂的不多,请跟着我的教程,一页一页的读下去,自动打怪其实只有很简单的逻辑,在本周五前应该可以写到打怪的部分。

脚本求教!!


我正在玩tom 的侠义道。想做个脚本自动打怪,因水平有限脚本始终效率不高。请教怎么抓怪去打,打死后在换另一个怪,而不是这个打几下,那个打几下。或者因位置不对打不到怪导致怪不死而老是打那个。怎么捡东西。见到一个外挂是从小到大画圈,碰到怪就打。他是怎么做的呢???还有简单游的侠义道武当练剑的脚本我很喜欢,但他不让看脚本555555555555555,谁能告诉我他的思路?或者能给我个这样的脚本研究一下!!!谢谢,


回复:

由于我并没有侠义道的游戏,并不能给你准确的打怪脚本,不过可以对你提的几个问题解答如下:
1、因位置不对打不到怪导致怪不死而老是打那个
答:需要你在代码里有错误判断,比如超过多长时间就放弃这只怪或忽略这个怪。
2、怎么捡东西
答:一般来讲,捡东西都是通过游戏内置的某一个按键,比如剑侠情缘2的空格等等这些。如果没有捡取快捷键,则只能通过物品名字的颜色,或物品的图片对比来实现了!
3、从小到大画圈,碰到怪就打。他是怎么做的呢???
从内到外画圈圈的代码我这里给你贴出来:
//x0, y0是你人物的位置,n代表旋转的圈数
    x0=515 : y0=316 : n=1
    While n<24
        x=x0+6*(cos(n)+n*sin(n))
        y=y0+3*(sin(n)-n*cos(n))
        MoveTo x y
        Delay 1
        n=n+0.5
        VBSCall Call FindColor(x-50, y-50, x+50, y+50, "84FFFF", x1, y1)
        If x1>0
            //找到了
        EndIf
    EndWhile
简单游教学


这个活动的所有提问的帖子在什么版块里?

回复:
简单游论坛置顶
我想问一个普遍性的问题,并非是专门针对某一个脚本的。

比如,我需要判断:
1. 当屏幕上A点颜色为X 且 B点颜色为Y时,…………
2. 当屏幕上A点颜色为X 或 B点颜色为Y时,…………
这样的情况该怎么办?用两个 IfColor 嵌套?没有类似于 AND OR 之类的关系运算符来简单地连接两个判断语句吗?

有人建议说用如下代码来实现:
假设当x1和y1这两点的值分别为多少多少时,就跳转到Room 2x1这一步,否则执行一些普通的鼠标动作。
================================================
Rem Room 1x1                                            
VBSCall x1=GetPixelColor(402,112)
VBSCall y1=GetPixelColor(394,112)
If x1="8CDFD6" or y1="C6CFCE"
    Goto Room 2x1
Else
    MoveTo 382 143
    Delay 1000
    LeftClick 1
    Goto Room
EndIf
=========================================

然而这样做仍然实现不了,使用以后根本没效果。



回复:

1. 当屏幕上A点颜色为X 且 B点颜色为Y时,…………

    VBSCall A=GetPixelColor(1,1)
    VBSCall B=GetPixelColor(2,2)
    if A="X" and B="Y"
        //A点颜色为X 且 B点颜色为Y
    end if

2. 当屏幕上A点颜色为X 或 B点颜色为Y时,…………
    VBSCall A=GetPixelColor(1,1)
    VBSCall B=GetPixelColor(2,2)
    if A="X" or B="Y"
        //A点颜色为X 或 B点颜色为Y
    end if

如果用ifcolor嵌套也是可以。
先给出“且”
ifcolor 1 1 x 0
  if color 2 2 y 0
    //且
  endif
endif

再给出“或”
i = 0
if color 1 1 x 0
  i=i+1
endif
if color 2 2 y 0
  i=i+1
endif
if i>0
  //或
endif

这种情况建议使用GetPixelColor来获取颜色。可使用的逻辑符:and / or / not
劲舞团知识


脚本类型:劲舞团按键类型..
脚本问题..: 如果设置1-6分别代表一个舞步..
假若我按1的时候.就表示为878346
KeyPressH 主键盘的1
Delay 这个设置延时
KeyPressH 后面跟小键盘上的1234679的代码.

如何把这个过程用程序表达出来???

请教导...这个过程的代码..



回复:
你的问题我看了三遍还是没大看懂,是不是需要等待按下一个键,如果这个键被按下,则触发一连串的自动按键呢?
这样的代码给你:

    obj.SendKeys("123456")
ElseIf key=asc("2")
    obj.SendKeys("234567")
ElseIf key=asc("3")
    obj.SendKeys("345678")
ElseIf key=asc("4")
    obj.SendKeys("456789")
ElseIf key=asc("5")
    obj.SendKeys("567890")
ElseIf key=asc("6")
    obj.SendKeys("678901")
EndIf
Goto key_wait

不知道你要的是不是此类,可以在记事本测试。脚本启动后,监视数字1-6键。
但该方法不支持小键盘的数字,如是小键盘,只需把asc("1")改为小键盘相应的数字即可。
如要输出小键盘,则需要把obj.SendKeys("123456")改为: KeyPress 97 1,等等……依次类推




版主..感谢你提供的代码..
非常感谢..
    KeyPress 104 1
    KeyPress 103 1
    KeyPress 104 1
    KeyPress 99 1
    KeyPress 100 1
    KeyPress 102 1
EndIf
Goto key_wait

请指教.这个代码是否正确//还有一个问题就是.我如何设置按键岩石
2、问题描述:
请问简单游启用某脚本后,工具设置中的自定义内容如何写?
一般写好的脚本上传后打开工具设置不能自定义内容,如果脚本需要用到自定义,如何添加代码 ?


回复:

这个比较容易,在工具设置中,简单游引入了一个“用户变量”的概念,把自定义的用户变量放在工具设置中。

给你个例子:
UserVar var1=1 请输入数字
vbscall call messagebox(var1)

解释:
uservar - 关键字,用来标示这行是用户变量
var1 - 变量名,属字符传类型,简单游所有脚本的变量名从var1依次排序下去,最高用到var12。
=1 - 出现在列表里的默认值(可不写,则提示“双击修改内容”)
请输入数字 - 在工具设置中,左边的提示语。
另外一个问题:
请教导.
请问这个程序能否简化??




回复:
//strkey为你要跳的舞步
strkey="123456789"
//lenkey为字符串长度
lenkey=len(strkey)
//大键盘1和小键盘1的ascii码差值
addchar=97-49
//循环到全部按完
i=0
For lenkey
    i=i+1
    //mid是取字符串中一个字符,asc是取数字的ascii码。再加上差值就是小键盘区的数字了
    keychar=asc(mid(strkey, i, 1))+addchar
    //按下相应的键
    KeyPress keychar 1
    //暂停你要的100豪秒
    Delay 100
EndFor


你要的简化代码(A和S是相关的舞步序列):
A="123456789"
S="987654321"
strkey=""
Rem key_wait
WaitKey key
If key=asc("A")
    strkey=A
ElseIf key=asc("S")
    strkey=S
EndIf
Goto key_wait
Sub usekey
    lenkey=len(strkey)
    addchar=97-49
    i=0
    For lenkey
        i=i+1
        keychar=asc(mid(strkey, i, 1))+addchar
        KeyPress keychar 1
        Delay 100
    EndFor
Return
太多了,大家可以上网上去查查就能找到的再发有灌水嫌疑哩,我是在这个BBS剪贴的http://bbs.jdyou.com/viewthread. ... p;extra=&page=1
我第一次玩论坛
大家多多关照
返回列表