青石巷

青石巷 查看完整档案

北京编辑  |  填写毕业院校  |  填写所在公司/组织填写个人主网站
编辑

js/jq/node/es6/vue/react/Angular

个人动态

青石巷 赞了文章 · 2017-12-22

30行Python代码刷王者荣耀金币

原理

王者荣耀的冒险模式里有个挑战模式,第一次过关可以获得比较多的金币,后面重新挑战还是会获得少量金币,这不算是bug,你不嫌烦手动蛮力也可以刷金币。

推荐关卡:陨落的废都 - 魔女回忆

此关卡使用纯输出英雄20秒左右可以打BOSS,50秒左右可以通关,每次重复通关可以获得奖励19金币。在开挂前建议你手动通关体验一下。此为游戏原理。

简单来说,需要执行以下步骤:

  1. 界面打开至挑战关卡:陨落的废都 - 魔女回忆 【点击下一步】
  2. 进入阵容调整界面,提前安排好阵容。【点击闯关】
  3. 进入挑战界面。【点击右上角-自动-等待挑战结束】
  4. 进入挑战完成界面。【点击屏幕继续】
  5. 进入关卡奖励界面。【点击再次挑战】
  6. 进入阵容调整界面,循环至步骤1或步骤2【貌似取决于游戏区和版本】

只要你能模拟屏幕点击就可以完成刷金币的脚本,在安卓模拟界面点击最简单的方式就是使用ADB发送命令,不需要root手机,不需要安装第三方软件,方便快捷。ADB命令点击屏幕坐标[x, y] 可以使用命令:

adb shell input tap x y

iOS用户请直接查阅 github项目地址,原理和微信跳一跳外挂相似。

准备

  • 本脚本适用于安卓游戏区,需要真实安卓手机。
  • 手机需开启USB调试模式,允许电脑调试。
  • 电脑需安装好安卓驱动,一般豌豆荚或者各种管家可以自动帮你装好。
  • 电脑需要有ADB工具集,很多方式可以获取。
  • ADB工具需要加入环境变量PATH中,方便随时调用。
  • 电脑上需要安装Python,因为这是我选择的脚本语言。

专业的开发测试人员,也可以参考我的另外两篇博客:

如果只是为了刷金币,只需要安装好驱动和ADB工具即可。

步骤

如果万事具备,那么步骤就非常简单。

环境检测

  1. 用USB连接手机,如果弹出警告,请允许电脑调试手机。
  2. 使用命令 adb devices 检验adb和手机状态已经就绪。
$ adb devices
List of devices attached
b******4        device

模拟点击屏幕,比如你可以打开画图软件,然后运行命令:

adb shell input tap 500 500

如果如果一切OK,那么你将看到画图软件在坐标(500,500)的位置有一个点。

代码实现

通关需要点击的屏幕位置是固定的,加上注释我们只需要不到30行代码就可以完成。

def tap_screen(x, y):
    os.system('adb shell input tap {} {}'.format(x, y))

def do_money_work():
    print('#0 start the game')
    tap_screen(1600, 970)
    sleep(3)

    print('#1 ready, go!!!')
    tap_screen(1450, 910)
    sleep(15)

    print('#2 auto power on!')
    tap_screen(1780, 40)

    for i in range(25):
        tap_screen(1000, 500)
        sleep(1)

    print('#3 do it again...\n')
    tap_screen(1430, 980)
    sleep(3)

然后我们写一个主函数来循环刷钱。

if __name__ == '__main__':
    for i in range(repeat_times):
        print('round #{}'.format(i + 1))
        do_money_work()

拿来主义

如果你喜欢拿来主义,请访问本文项目地址:

然后:

  1. 下载项目中的 kog.py 到本地,iOS则为 kog_iOS.py
  2. 将游戏打开,进入挑战模式,魔女回忆,阵容调整界面。
  3. 根据手机性能和分辨率,调整kog.py中的参数。(手机分辨率,刷金次数等等)
  4. 运行以下命令,手机上就可以查看实时运行效果。
python kog.py

注意:

  1. 每周金币上限4200,需要接近4个小时,不建议一次刷满,手机和你都要休息。
  2. 铭文,手机性能,英雄选择都会影响通关速度,自己微调等待时间。
  3. 如果你不想被USB数据线束缚,可以考虑使用无线连接Android真机

声明

本脚本纯属娱乐和探索的心得,如果你因为违反了游戏规则导致被封号,我概不负责。

关于作者:Python技术爱好者,目前从事测试开发相关工作,转载请注明原文出处。欢迎关注我的博客 https://betacat.online,你可以到我的公众号中去当吃瓜群众。

Betacat.online

查看原文

赞 90 收藏 250 评论 33

青石巷 赞了问题 · 2017-10-10

解决 在使用 JTopo绘制流程图 后, 页面上的 文本输入框(input), 文本域(textarea)都不支持 键盘移动光标了?

在使用 JTopo绘制流程图 后, 页面上的 文本输入框(input), 文本域(textarea)都不支持 键盘移动光标了,

有没有 同学 遇到相同问题,求解。

关注 1 回答 1

青石巷 赞了回答 · 2017-10-10

解决 在使用 JTopo绘制流程图 后, 页面上的 文本输入框(input), 文本域(textarea)都不支持 键盘移动光标了?

已处理
jtopo-0.4.8.js 中 第768行中的m(b) 方法,对4个方向键 进行了屏蔽,放开屏蔽即可,源码如下:

function m(b)
        {
            a.util.isIE || !window.addEventListener ? (b.onmouseout = f, b.onmouseover = e, b.onmousedown = g, b.onmouseup = h, b.onmousemove = i, b.onclick = j, b.ondblclick = k, b.onmousewheel = l, b.touchstart = g, b.touchmove = i, b.touchend = h) : (b.addEventListener("mouseout", f), b.addEventListener("mouseover", e), b.addEventListener("mousedown", g), b.addEventListener("mouseup", h), b.addEventListener("mousemove", i), b.addEventListener("click", j), b.addEventListener("dblclick", k), a.util.isFirefox ? b.addEventListener("DOMMouseScroll", l) : b.addEventListener("mousewheel", l)),
            window.addEventListener && (window.addEventListener("keydown", function (b)
            {
                n.dispatchEventToScenes("keydown", a.util.cloneEvent(b));
                var c = b.keyCode;
                (37 == c || 38 == c || 39 == c || 40 == c) && (b.preventDefault ? b.preventDefault() : (b = b || window.event, b.returnValue = !1))
            }, !0), window.addEventListener("keyup", function (b)
            {
                n.dispatchEventToScenes("keyup", a.util.cloneEvent(b));
                var c = b.keyCode;
                (37 == c || 38 == c || 39 == c || 40 == c) && (b.preventDefault ? b.preventDefault() : (b = b || window.event, b.returnValue = !1))
            }, !0))
        }

关注 1 回答 1

青石巷 赞了回答 · 2017-09-30

如何将 2017年9月25日 转换成 2017-09-25

'2017年9月25日'.replace(/[年月]/g,'-').replace('日','');

岂不美哉?

关注 27 回答 20

青石巷 赞了回答 · 2017-09-30

如何将 2017年9月25日 转换成 2017-09-25

function format( str ) {
    var result = /^(\d+)年(\d+)月(\d+)日$/.exec(str)
    if( result ) {
        var y = result[ 1 ];
        var m = result[ 2 ];
        var d = result[ 3 ];
        m = Number( m ) < 10 ? '0' + m : m;
        d = Number( d ) < 10 ? '0' + d : d;
        return y + '-' + m + '-' + d;
    }
    return null;
}

console.log( format( '2017年9月25日' ) )    // 2017-09-25

排第一的哥们写得很简洁,但是记得要处理 9月 -> 09 这种前面补零的情况

关注 27 回答 20

青石巷 回答了问题 · 2017-09-30

怎么在js中通过代码手动隐藏element-ui中的dropdown-menu?

什么怎么隐藏,图片看一下!直接在浏览器调试工具找到他那个类,在style标签里边书写就行!

关注 7 回答 6

青石巷 回答了问题 · 2017-09-28

解决vue在app.vue中引入header组件跟footer组件,导致登录页面也引入,怎么让它在特定的页面不引入呢

现在已经解决,我在login页面中隐藏掉头部跟尾部,也就是css样式none,然后在获取页面信息的时候重新刷新一下页面
`var flag = this.$route.query.flag;

if(flag == true) {
   //强制刷新页面
  const router = new VueRouter({});
   router.go({path:'/home',query:{flag:false}});
}`
这样就可以了,不过这样导致页面头跟尾可能点击其他链接会缺失,通过`router-link`标签:to 传入一个值`query:{flag:true}}`在需要刷新的页面设置在重新刷新一下页面

关注 6 回答 4

青石巷 赞了回答 · 2017-09-28

解决vue在app.vue中引入header组件跟footer组件,导致登录页面也引入,怎么让它在特定的页面不引入呢

建议你用vue-router来管理路由,通过路由控制页面加载和跳转,也不用在每个页面引入了,只需要在路由文件里面定义好,在入口引入就行了。

关注 6 回答 4

青石巷 回答了问题 · 2017-09-28

大屏数据展示

媒体查询,配合rem进行布局,除非特定的区块给它死宽,没有要求的全部都是100%,你要是没有做过,可以先写简单 的一个小demo看看,关于媒体查询
http://www.hangge.com/blog/ca...可以看看这个,rem自行百度

关注 4 回答 3

青石巷 提出了问题 · 2017-09-27

解决vue在app.vue中引入header组件跟footer组件,导致登录页面也引入,怎么让它在特定的页面不引入呢

之前在每个页面都引入了一次header跟footer,导致跳转路由的时候会重新渲染一次,后来引入到app.vue里边,导致登录页面也引入了,怎么在特定的页面不引入呀

<template>
    <div id="app">
        <v-header></v-header>    
        <router-view></router-view>
        <v-footer></v-footer>
    </div>
</template>

<script type="ecmascript-6">
    import header from './components/header/header'
    import footer from './components/footer/footer'
    export default{
        components: {
            'v-header':header,
            'v-footer':footer
          }
    }
</script>

关注 6 回答 4

认证与成就

  • 获得 52 次点赞
  • 获得 9 枚徽章 获得 0 枚金徽章, 获得 1 枚银徽章, 获得 8 枚铜徽章

擅长技能
编辑

开源项目 & 著作
编辑

(゚∀゚ )
暂时没有

注册于 2017-07-13
个人主页被 792 人浏览