脚本开发_wow脚本开发 - CSDN
精华内容
参与话题
  • 自动化脚本开发

    千次阅读 2018-04-29 22:18:36
    下面是我个人在脚本开发过程中的一点见解,基于HW自动化工厂工具Impeller开发语言Ruby1、脚本开发过程中配置的下发和删除: 在setUp中下的配置,要在tearDown中删除,在空配置环境中执行完这个脚本后,不留一点配置...

    脚本的质量会影响到整个自动化执行的效率以及质量,更是影响到后期的维护成本。规范,是提高脚本质量的一个重要手段,没维护过脚本的人是不懂这个道理的。下面是我个人在脚本开发过程中的一点见解,基于HW自动化工厂工具Impeller开发语言Ruby

    1、脚本开发过程中配置的下发和删除:

         在setUp中下的配置,要在tearDown中删除,在空配置环境中执行完这个脚本后,不留一点配置

    2、脚本长度控制:

        长度太长的脚本阅读起来很费劲,所以尽量减少脚本长度。我见过三四百行的脚本,很长。里面包含了2到3个测试点。遇到这种情况,可以考虑下将这个用例拆分成2到3个脚本,每个脚本只测试其中一个功能点。这样做的一点好处就是万一其中一个点跑错了,不至于后面的功能点就测试不到了。也不至于前面的测试点都过了,最后一个失败,重新执行脚本所带来的大量施加小号

    3、测试套中变量的定义:

        变量取名尽量让读者能看的明白。例如点击页面上的 “导出”按钮,可以写成 @button_export = "导出",

        相同属性的变量,比如是某个模块使用到的变量,可以放在一起定义,加上注释。在定位的时候很快就找到变量而不用Ctrl + F,减少定位时间

        与整个测试套无关的变量不要存在测试套脚本,增加脚本阅读难度

        定义全局变量,然后在脚本中使用,这样做的一个好处就是,万一哪天变量发生变化,就不需要一个个改脚本了。在测试套中修改这个全局变量的值就行了。举个例子我就遇到过UI界面上的 “导出”后来修改成了,“导出全部”。然后搜索脚本内容修改

    4、测试谈中方法的定义

        脚本中会使用到很多自定义的方法,在测试套中自定义这些方法最重要的是加上注释和使用方法,我最近在使用一个格式就是

        #Author:Spider_Li

        #Date:2017/01/01

        #AW : 

        #            ret = get_file_size(filepath)     

        #Parameter: 

        #             filepath :文件绝对路径

        #Description:

        #             获取文件大小, 

        #Example:                   

         #               ret = get_file_size("d://hello.txt")

         def get_file_size(filePath)

                if  File.exist(filePath)

                    return File.size(filePath)

                else:

                    print("找不到文件")


    展开全文
  • 2019年最新手游脚本开发教程

    千次阅读 2019-05-28 15:21:38
    2019年最新手游脚本开发教程 链接:https://pan.baidu.com/s/1JqZBWhXes4-kUKEgAFHpcQ 提取码:xp0f 复制这段内容后打开百度网盘手机App,操作更方便哦

    2019年最新手游脚本开发教程
    在这里插入图片描述

    链接:https://pan.baidu.com/s/1JqZBWhXes4-kUKEgAFHpcQ
    提取码:xp0f 
    复制这段内容后打开百度网盘手机App,操作更方便哦
    

    在这里插入图片描述

    展开全文
  • 手游自动挂机脚本开发历程

    千次阅读 多人点赞 2019-12-12 18:27:23
    节日过后,游戏自然是没时间再玩了,毕竟有一大堆开发任务正一个个排着队等着去搞。时间一晃就到了两周前,大概是11月底的时候,一个朋友跟我说他玩碧蓝航线,每个月都要花20多块钱买脚本。当时听到脚本居然还要花钱...

    事件起因

    国庆节期间,因为工作相对闲暇,自己鬼使神差地下载了一个梦幻西游手游玩了几天,结果一周就这么过去了,一玩起游戏来,那就是白驹过隙啊。节日过后,游戏自然是没时间再玩了,毕竟有一大堆开发任务正一个个排着队等着去搞。时间一晃就到了两周前,大概是11月底的时候,一个朋友跟我说他玩碧蓝航线,每个月都要花20多块钱买脚本。当时听到脚本居然还要花钱去买时,作为一个程序员,不知道哪里来的正义感,决定自己给他写个免费的脚本,能让朋友省去一个月20块的脚本钱去叫外卖也算是用脚本挣钱了。当然如果能有别人也来用自己写的脚本,那当然更好,能帮到更多的人,由此小弟便踏上了一条游戏脚本不归路。。。

    初识按键精灵

    初次写脚本,小弟我也是一脸懵逼,以前完全没写过游戏脚本,当时牛皮吹的爽,现在不知咋搞心理有点慌。无奈只能调研下现在市面上写脚本的工具了,当时了解按键精灵,触动精灵等现在用得比较广泛的脚本工具。按键精灵应该是用的最多了,所以小弟就选择了按键精灵来写脚本。按键精灵分为PC版和手机版,小弟写的手游挂机脚本,当然是选择手机版了,然后按照教程,android模拟器上安装了按键精灵APP并且在PC上安装了按键精灵手机助手,脚本编写之路,就这么正式开始了,加油!!

    按键精灵学习

    初次上手按键精灵,还是有点蒙圈。不得不说,按键精灵是写程序小白们使用的,所以函数的使用都封装得很简单,而且变量可以定义中文,较复杂的代码可以自动生成,所以小弟我花了一天的时间基本上就把按键精灵的各个部分都熟悉了(这里没有给按键精灵打广告的意思,大家不要误会。。。)按键精灵虽然说是脚本编写,但是用的最多就恐怕就是用来写游戏脚本了吧。虽然按键精灵确实写脚本比较方便,但是还是有一些不足之处的。让小弟最想吐槽的就是按键精灵的OCR功能,简直是形同虚设,根本不能用,文字识别总是失败(大概率失败,一旦失败,就又得重新找点,重新让这个精灵识别,然后又是大概率失败,过程之痛苦,我觉得程序员不应该忍受这种痛苦),即使识别成功了,实际用的时候也不一定能识别出来,令人不得不吐槽一下。所以下面小弟我就稍微总结一下按键精灵让我感受到的优势和缺点吧。

    按键精灵的优缺点

    优点 缺点
    语法简单 并且配有代码示例 部分颜色函数使用效果不好
    配有实时抓取手机屏幕工具 方便逻辑编写 OCR模块效果很差 使用麻烦
    调试方便 有基本的调试工具

    上面说到的OCR模块效果很差,可以说是一个比较重要的问题,因为在游戏脚本编写中,经常需要用到文字识别,只有识别到文字了,才能据此进行下面的操作。比如在《梦幻西游》手游中,找到了”师门任务“四个字,才能决定是否要开始师门任务,或者是返回任务已经被完成。个人认为,一个好用的OCR,才是游戏脚本的灵魂所在,其他的逻辑只是辅助而已。当然,我们还可以退而求其次,用判断像素点颜色的方法来判断是否有任务存在,小弟我在按键精灵OCR尝试未果的情况下就是用了这种方式,对于PC版的挂机脚本,可以使用”大漠插件“来作文字识别,就小弟了解,这个插件效果还是不错的,解决了文字识别的问题,让很多PC上的挂机脚本稳定了很多。但是安卓系统下无法使用,所以这跟小弟无关,也就没深入了解。另外顺便再提一句,现在都9102年了,github上开源的中文OCR引擎咱整一个不香吗,话题扯偏了,小弟我目前也没用到AI的程度,后面会加入进来。。。

    按键精灵版师门任务挂机脚本部分截图
    上面的截图是按键精灵版的师门任务部分截图,从图中可以看出,按键精灵支持变量中文,并且没有复杂语法,上手很容易,历经了两天的开发,小弟最终把师门挂机脚本,主线任务挂机脚本,抓鬼脚本写完了,师门脚本和抓鬼脚本稳定都还可以,除了按键精灵运行一段时间自动崩溃以外,这个问题让小弟束手无策,难道要再写一个脚本在脚本崩溃以后再把脚本启动起来?

    和按键精灵分手

    本来小弟满怀期待地打算把写好的脚本打包发送给同学,让他试试,但是一道晴天霹雳让小弟我几近崩溃,打包居然要收费!!!,就19年下半年刚开始收费的,按月收费,最低30元(好像是),最高一百多。缴费越高,写的脚本就能给越多的人使用,最低的30元脚本,只能给几十个人使用。可是小弟我就自己用啊喂,我又不拿去卖钱,这也要收费。关于收费,小弟这里就不提了,毕竟这是人家自己的东西,咱也不好多说什么,没办法,只能和按键精灵说拜拜了,不是因为这区区30块钱,而是小弟觉得这里不应该花这个钱,一来自己是程序员,本来就应该以更”程序员“的方式做这件事,二来是小弟是给别人无偿帮忙写脚本,这个钱不应该掏。

    另一条路

    放弃了按键精灵,就意味着放弃了那一套方便快捷的工具,放弃那两天幸苦产出的代码。小弟没办法,所有东西都要自己想办法来解决了,通过使用按键精灵,小弟我发现,写游戏脚本最重要的是解决两个问题:

    1. 像素颜色查找问题,即捕获屏幕上某个坐标点的颜色(核心问题,用于判断当前屏幕是什么内容)
    2. android交互功能(点击,滑动 等基本模拟操作)

    只要解决了上面这两个问题,做一个基本的手游挂机脚本就足够了,所以小弟我针对这两个问题,开始网上新一轮的调研,在此期间也走过一些弯路,但是功夫不负有心人,最终还是摸索出了一条可行的路,下面就讲述下小弟我的学习路程。

    艰难的摸索

    因为是手游脚本,游戏本身是运行在安卓模拟器上的,那么挂机脚本在小弟认为可以分为两种,一种是直接运行在android模拟器下的,另一种是运行在PC上,通过发送远程命令操作模拟器。小弟当时调研时理解还不够深,所以选择了第二种方式,通过adb(android debug bridge)将PC与模拟器连接起来的方式操作模拟器。实际上用第二种方式,将脚本打包在模拟器环境下直接运行效果才是最好的,当然,难度也会大不少。

    Appium的学习

    为了模拟用户操作android,也就是解决第二个问题,小弟我首先了解到的是使用Appium,Appium是一个用于android系统的自动化测试工具,里面提供了很多模拟用户操作的功能,包括点击,滑动,截屏等等。当然他最强的之处并不在此,Appium能够解析出当前App的前端控件,相比起之前按键精灵的点击某个坐标的模拟操作方式,Appium能够根据控件的id等属性定位到某个具体的控件,定位之后做后续操作。这种方式的好处就在于,通过控件属性定位坐标,跟屏幕分辨率无关。如果单单写死一个坐标位置去点击,手机换个分辨率就失效了,也是为什么手游脚本都固定一个分辨率的原因所在。
    Appium截图
    上图是Appium连接成功后的配置截图,其实核心参数就是deviceName,指定本地的模拟器地址就可以。在搭建Appium环境时,小弟我也是花了两天的时间到处查阅资料和学习相关的用法,一开始使用的雷电模拟器,但是始终连接不上,最后换了个模拟器,用夜神模拟器后就成功了,所以如果连接不上模拟器,不妨换个模拟器试试,当然首先还是看看日志,有没有打印什么错误。

    初代脚本形成

    小弟我使用python编写此脚本,核心流程如下:
    脚本启动 -> 启动Appium -> 调用Appium截屏 -> 判断当前页面状态 -> 调用Appium模拟操作 -> 任务结束 退出脚本
    连接的代码如下:

    #python
    desired_caps = {
        'platformName': 'Android',
        'udid':'127.0.0.1:62001',
        'deviceName': 'deviceName',
        'platformVersion':'5.1.1',
        #'appPackage': 'com.tencent.mm',
        #'appActivity':'com.tencent.mm.plugin.account.ui.WelcomeActivity',
        'unicodekeyboard':True
    }
    
    # 连接android 客户端
    driver = app_web.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
    

    突然醒悟 二代脚本形成

    Appium上面也说过了,能解析页面,类似于解析html的BeautifulSoup 一样,但是游戏页面哪有”前端“这种说法呢,哪有树状的控件能让我解析呢,我用Appium捕获到的页面永远都是一个大的Frame,然后里面什么也没有,更别提解析了。。。
    但是Appium底层也是调用的adb,那为何我不直接使用adb来完成所有这一切操作呢,既然Appium的优势不复存在,使用他反而成为了累赘。所以小弟我把Appium去掉,重新更新了一版脚本,用python调用adb命令完成截图,模拟操作等命令
    脚本核心思路如下:
    脚本启动 -> 截图到本地 -> 比对坐标点颜色 -> 判断出于什么页面 -> 执行具体操作 -> 删除本地图片 -> 重新截图新一轮判断
    下面把核心代码贴出来,完整代码小弟我在文章后面会给出git仓库地址,感兴趣的同学可以clone一下看看

    首先是用到的adb基本命令如下:
    SCREENSHOT = "adb exec-out screencap -p > " # 末尾需加上截屏地址
    TAP = "adb shell input tap " # 点击屏幕 x y
    SWIPE = "adb shell input swipe " # 滑动屏幕
    

    以上分别是截屏保存到PC本地,点击模拟器坐标x y 以及滑动模拟器屏幕,当然后面还有一些参数,参数根据需要加在命令后就行了,这里就省略掉参数吧

    PC命令行中执行 adb 截屏命令
        def get_screen_shot(self, path):
            cmd = Constants.SCREENSHOT + path
            os.popen(cmd)
    
    核心函数 图片像素颜色采集和比对
    # 对比图片像素颜色值
        def comparePixelColor(self, srcImg, color, position, simThreshold):
            # 计算欧式空间距离
            # 首先获取 x 和 y 坐标的颜色值
            targetColor = self.getPixelColor(srcImg, position)
            # 再分别获取 R G B 值
            red = targetColor[0]
            green = targetColor[1]
            blue = targetColor[2]
            diff_red = red - color[0]
            diff_green = green - color[1]
            diff_blue = blue - color[2]
            similarity = (1 - math.sqrt(diff_red*diff_red + diff_blue*diff_blue + diff_green*diff_green) / math.sqrt(255*255 + 255*255 + 255*255))
            if similarity > simThreshold:
                return True
            else:
                return False
        
        # 获取图片坐标点颜色值
        def getPixelColor(self, srcImg, positon):
            srcImg = srcImg.convert('RGBA')
            str_strlist = srcImg.load()
            RGBA = str_strlist[positon[0], positon[1]]
            return RGBA
    

    以上两个函数分别是获取图片中某个坐标点的颜色以及比对图片中某个坐标点颜色的函数,对于比对颜色函数,计算欧式空间距离,然后按照比例算出相似度,在脚本中,小弟认为相似度大于 0.9以上才认为是相似的

    还有一些就是逻辑部分的代码了,这部分代码并非核心代码,小弟这里就不贴出来了,有兴趣的同学可以github上看

    一段路程的结束 若有所思

    至此,游戏挂机脚本就到一段落了,游戏脚本小弟自己使用没有什么问题,但是离给别人使用还有很长一段距离,主要是adb截屏到本地耗时实在是太久了,截屏一次2s,这个是硬伤。
    如果要优化这个问题,就必须让脚本执行在android系统中,通过读取android系统下的设备文件实时获取屏幕数据(需要root),我想这也是为什么按键精灵能做到颜色比对如此之快的原因,因为前面也提到了,按键精灵手机版由两个部分组成,一个是”按键精灵手机助手“,这是安装在PC上的;另一个是”按键精灵手机版“,这是安装在手机上的APP
    在调试开始前,按键精灵会要求两者连接。我想,按键精灵是在PC上完成脚本的编写(手机助手编写脚本),然后连通手机上的APP,把写好的脚本传到APP中去运行,由于是运行在手机测,和我的脚本就不同,它可以直接读取设备文件。这也解释了为什么按键精灵要root权限,因为没有root权限就无法读取文件获取屏幕像素信息。另外,按键精灵的”抓抓“里有一个截屏功能,如下图:
    按键精灵抓抓
    通过这个按钮的截屏时间也差不多2s左右,我想按键精灵这个2s应该跟我上面的使用adb传文件到本地耗时2s原理是一样的,因为都是从模拟器上截图到本地,应该都是走的adb,所以都是2s耗时

    接下来的优化

    上文提到了最好的方式是读取设备文件获取屏幕像素信息,而非截图,我自然是打算把优化方向放在脚本的执行环境上了,接下来可能会改用java编写,让脚本运行在android系统下,关于读取android屏幕数据(FrameBuffer),这里有一篇写得比较好的文章大家可以学习一下,牵涉到android底层代码,读取FrameBuffer获取屏幕数据,路虽难,但只要肯琢磨,一定能理解
    以上就是两周以来对脚本的研究近况,因为笔者水平有限,文中难免有表述不准确的地方,还请大家指出,共同学习进步~

    项目github地址:https://github.com/dz-ssk/GameScript

    展开全文
  • 【零基础】触动精灵脚本开发

    千次阅读 2019-07-20 13:07:35
    【零基础】触动精灵脚本开发 https://www.bilibili.com/video/av59624116/

    【零基础】触动精灵脚本开发
    https://www.bilibili.com/video/av59624116/

    展开全文
  • 脚本开发记录

    2019-01-02 11:40:56
    脚本开发,解放双手 最近学习开发脚本,下面说一下流程 1、安装夜神模拟器 2、安装按键精灵手机助手 3、连接按键精灵与模拟器 4、用按键精灵开发脚本,在模拟器上测试 5、测试成功,脚本打包成apk,直接可以安装 6...
  • 脚本开发

    2020-07-15 23:31:02
    NULL 博文链接:https://truevoid.iteye.com/blog/694721
  • 视频链接:游戏开发入门(四)逻辑与脚本开发(8节课 时常:约2小时30分钟 第4节看不了) 笔记与总结(请先学习视频内容): 1.逻辑系统目的 实现策划的设计文档 构建游戏玩法 实现程序与玩家交互 2.逻辑...
  • 脚本精灵开发指南,脚本精灵是一款可以模拟人手动操作的软件,通过简单的代码,帮你完成重复性的操作,常用于游戏挂机,网络营销等
  • 这个系列总共 6 篇文章,将详细的介绍如何从零开发一个用户脚本。其中前两篇将介绍一下什么是用户脚本,以及开发脚本需要的一些基础知识。后面四篇将通过案例讲解的形式,选择之前我开发完成的 4 个脚本,由简到繁,...
  • 虚拟仿真 人人开发

    2020-03-02 10:24:31
    虚拟仿真技术这门课程包含了引擎的基础入门,并且讲解了制作虚拟仿真项目的制作流程,包括机械虚拟仿真拆装等制作方法,从模型到动画,再到脚本的编写,我们这里还讲解了可视化编程PLAYMAKER的使用方法,即使你不会...
  • 使用lua脚本开发wow插件入门篇

    万次阅读 多人点赞 2020-10-08 11:44:47
    相信有接触过游戏开发的童鞋都知道lua这个脚本语言,Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。关于lua的简介...
  • iphone下用脚本开发汇总

    千次阅读 2011-08-04 10:20:51
    脚本的优点就是方便,易学。这儿介绍几个库给大家,可以方便用lua在iphone上开发。1. Love2D 开发游戏的,开源库https://bitbucket.org/bmelts/love-iphone/overview2.waxhttps://github.com/proba
  • 使用lua脚本开发wow插件基础篇

    千次阅读 2020-10-08 11:43:53
    在入门篇中,我们讲到了如何在wow中编写一个简单的程序 ,在对话框中输出一下helloworld 什么的。 但是,这还是远远不够的。... 首先根据用户的要求 1.能够在每次战斗中显示当前战斗中 承受的伤害 当前战斗中造成的...
  • 【已完成】03解读开发文档(时长12分20秒)在线观看 【已完成】04微信运动点赞(1)(时长14分18秒) 【已完成】05微信运动点赞(2)(时长18分43秒) 【已完成】06微信运动点赞(3)(时长20分24秒) 【已完成】07微信运动...
  • 由于目前市面上大部分开发工具如按键精灵,触动精灵,指端精灵等都需要收费或者各种限制才能使用,今天介绍一款可以在移动端开发手游脚本的全免费且无任何限制的开发工具(用lua作为开发语言),且界面很简洁,功能也...
  • Shell脚本开发实战--工具篇

    千次阅读 2018-08-13 12:21:54
    企业应用开发中,我们会经常和Linux服务器打交道,比如:Linux提交spark作业,查看作业日志,准备基础数据,调试与自测等;如果每次测试都重复那些操作就显得很业余了,我们想到的肯定是通过写Shell脚本来实现自动...
  • AE脚本开发的一些基础语句

    千次阅读 2018-05-06 10:32:33
    1,在AE中创建文件夹:app.project.items.addFolder("myFolder");2,判断文件夹是否存在:function judgeLayer(layername) { for(var i = 1; i <= app.project.numItems; i++) { if(app.project....
  • LoadRunner学习笔记(脚本开发_1)1

    千次阅读 2011-08-26 09:20:19
    1.Action 简介 1) 什么是Action? 一个函数包,将用户操作根据类别存放在不同的函数中。...2) 脚本框架生成的时机:当选择完Http协议后,VuGen将自动生成脚本的...3) 在脚本目录中会出现以下3个文件 vuser_init.c
  • 02 AE脚本开发使用什么编辑器

    千次阅读 2018-02-20 22:16:58
    工欲善其事必先利其器,开发AE脚本也应该搭建好相应的脚本环境。 我们可以使用官方提供的adobe脚本编写工具——Adobe ExtendScript Toolkit CC——来进行我们的脚本编写工作。 安装 Adobe ExtendScript ...
  • 前言 现在部分比赛为了推广赞助商或者比赛本身,需要参赛队伍进行网上拉票,甚至票数还会占一定比例的成绩。因此,刷票也就应运而生了。此次我们团队参加一个比赛,就需要网上投票... 原理 ...具体一点说把,首先是...
1 2 3 4 5 ... 20
收藏数 716,267
精华内容 286,506
关键字:

脚本开发