Python制作回合制手游外挂简单教程(下)
引入:
接着上篇的博文,今天我们讲如何实现助人为乐
前期准备:
如何获取图片中指定文字的坐标?
我的思路是截取一个小区域,再根据小区域左上角的坐标获取中央坐标
例如:

获取坐上角的x和y坐标,测量x到红点的横向距离x1,在测量y点到红点的纵向距离y1
可以得出红点的坐标(x+x1,y+y1)
复制代码,运行
X1 =
X2 =
time.sleep()
screenshot(X1, , X2, ,helpedName1)#截图 mousemove_click(X1 + , Y + )
截取了一小区域,然后获得了中心坐标,这里的200和30是自己测量出来的
如果有更好更直接的获取图片中指定文字的坐标的方法可以下方评论告诉我,我也学习学习
开始制作外挂:
详细代码如下:
imageGrabUtil.py(截图工具)

#coding=utf-8 from PIL import ImageGrab
# 参数说明
# 第一个参数 开始截图的x坐标
# 第二个参数 开始截图的y坐标
# 第三个参数 结束截图的x坐标
# 第四个参数 结束截图的y坐标
def screenshot(x1,y1,x2,y2,filename):
bbox = (x1, y1, x2, y2)
im = ImageGrab.grab(bbox) # 参数 保存截图文件的路径
im.save('E:\\python_project\\Asktao_Automation\\resource\\'+filename+'.png')

baiduAipUtil.py(文字识别工具)
我这里百度云的APPP_ID、API_KEY、SECRET_KEY保存在config.ini

#coding=utf-8
from aip import AipOcr import re #百度文字识别
# !/usr/bin/env python
# -*- coding:utf-8 -*- import ConfigParser
import os os.chdir("E:\python_project\Asktao_Automation\util") cf = ConfigParser.ConfigParser() cf.read("config.ini") secs = cf.sections() APPP_ID = cf.get("baiduAip","APPP_ID")
API_KEY = cf.get("baiduAip","API_KEY")
SECRET_KEY = cf.get("baiduAip","SECRET_KEY") client = AipOcr(APPP_ID,API_KEY,SECRET_KEY) def characterRecognition(filePath):
i = open(filePath,'rb') img = i.read() message = client.basicGeneral(img); #print(message.get('words_result'))
string = ''; for i in message.get('words_result'): print(i.get('words'))
string += i.get('words')
return string

config.ini
[baiduAip]
APPP_ID = APPP_ID
API_KEY = API_KEY SECRET_KEY = SECRET_KEY
joyByHelpingPeople.py
我只做了冯喜来和杨镖头的部分,其他人物的可以用同样的方法做出来,先走完流程,再写代码
#coding=utf-
import autopy
import time
import win32api
import win32con
from imageGrabUtil import screenshot
from baiduAipUtil import characterRecognition
import sys
defaultencoding = 'utf-8'
if sys.getdefaultencoding() != defaultencoding:
reload(sys)
sys.setdefaultencoding(defaultencoding) #助人为乐
#time.sleep()
win32api.keybd_event(,,,) #alt键位码是18
win32api.keybd_event(,,,) #tab键位码是9
time.sleep(0.5)
win32api.keybd_event(,,,) #enter键位码是13 win32api.keybd_event(,,win32con.KEYEVENTF_KEYUP,) #释放按键
win32api.keybd_event(,,win32con.KEYEVENTF_KEYUP,)
win32api.keybd_event(,,win32con.KEYEVENTF_KEYUP,)
time.sleep() def mousemove_click(x,y):
autopy.mouse.smooth_move(x, y)
autopy.mouse.click() #帮助冯喜来
def fengXiLai(Y):
mousemove_click(X1+,Y+) #鼠标移到按钮中央,点击冯喜来按钮
for i in range(,,):
mousemove_click(,)
time.sleep() #打强盗、无名剑客平均时间150s
mousemove_click(, )#跳过对话
mousemove_click(, )
time.sleep()
mousemove_click(, )# 白邦芒处领赏 #帮助杨镖头
def yangBiaoTou(Y):
mousemove_click(X1 + , Y + )
for i in range(,,):
#和张老板对话,传递心意,找张老板,找玄武
mousemove_click(, )#点任务栏 和张老板对话
time.sleep()
mousemove_click(, ) # 跳过对话 mousemove_click(, ) # 点任务栏 寻找窃贼
time.sleep()#和窃贼对战时间45s
mousemove_click(, ) # 跳过对话 for i in range(,,):
#向张老板复命,月老,莲花姑娘,张老板
mousemove_click(, ) # 点任务栏 向张老板复命
time.sleep()
mousemove_click(, ) # 跳过对话 mousemove_click(, ) # 活动的坐标 mousemove_click(,) #前往的坐标 time.sleep()#从天墉城城中心/其他地图走到白帮忙花费15s mousemove_click(,) #领赏 #为了获取图片中指定文字的坐标,这里需要分开截图
helpedName1 = "helpedName1"
X1 =
X2 =
time.sleep()
screenshot(X1, , X2, ,helpedName1)#截图 judgehelpedNameStr1 = characterRecognition('E:\\python_project\\Asktao_Automation\\resource\\'+helpedName1+'.png')#文字识别 helpedName2 = "helpedName2" screenshot(X1, , X2, ,helpedName2)#截图 judgehelpedNameStr2 = characterRecognition('E:\\python_project\\Asktao_Automation\\resource\\'+helpedName2+'.png')#文字识别
if '冯喜来' in judgehelpedNameStr1:
fengXiLai()
elif '冯喜来' in judgehelpedNameStr2:
fengXiLai()
elif '杨镖头' in judgehelpedNameStr1:
yangBiaoTou()
elif '杨镖头' in judgehelpedNameStr2:
yangBiaoTou()
至此,回合制手游(如问道)的所有任务的脚本都可以用这三篇教程的所讲方法去做
若有更简洁的方法,欢迎指出
三篇教程的所有代码请点击这里获取
Python制作回合制手游外挂简单教程(下)的更多相关文章
- Python制作回合制手游外挂简单教程(上)
引入: 每次玩回合制游戏的时候,反反复复的日常任务让人不胜其烦 玩问道的时候,我们希望能够自动刷道,玩梦幻希望能自动做师门.捉鬼等等 说明: 该外挂只能模拟鼠标键盘操作,并不能修改游戏数据 我这里使用 ...
- Python制作回合制手游外挂简单教程(中)
接着上篇的博文,今天我们讲如何实现自动组队刷道 引入: 自动组队刷道的流程是先点击刷道按钮.再点击前往按钮.再点击便捷组队······ 这些操作上篇博文已经告诉我们怎么做了,利用picpick丈量坐标 ...
- Android手游外挂入侵----寓攻于守,方能破敌
欢迎访问网易云社区,了解更多网易技术产品运营经验. 手游外挂入侵 随着各种爆款手游的风靡,目前手机游戏的占比用户已经形成一个巨大的市场,市场上你争我夺,有将PC版本移植到手机中,也有新模式手游的推出. ...
- python制作爬虫爬取京东商品评论教程
作者:蓝鲸 类型:转载 本文是继前2篇Python爬虫系列文章的后续篇,给大家介绍的是如何使用Python爬取京东商品评论信息的方法,并根据数据绘制成各种统计图表,非常的细致,有需要的小伙伴可以参考下 ...
- 【转载】QQ炫舞手游自制谱子教程(星动模式)
第一步:计算ET和BPM: 抄送原作者部落链接:https://buluo.qq.com/p/detail.html?bid=368006&pid=981862-1529828677& ...
- 腾讯WeTest《2017中国移动游戏质量白皮书》开放预约,再为国内手游把把脉
产品为王,质量先行.如果说2016年是爆款手游相继崛起的一年,那么2017年则更像是打磨精品.建立生态的高手切磋之年.守住一个游戏的质量生命线,方能建立健康生态,方能在如火如荼的行业竞争中角逐到最后. ...
- 类传奇手游简单Demo
这是一年多前自己闲时以Unity2D制作的很粗糙简单的传奇类手游Demo(单机),已很久未作继续开发. 此小Demo初步完成或实现了如下功能(有诸多考虑欠妥甚至不完善之处): 1).图片资源打包方式. ...
- 手游[追忆之青]动画导演:2D动画制作技巧
转自:http://www.gamelook.com.cn/2016/09/264591 GameLook报道/由一般法人计算机娱乐协会(CESA)主办的CEDEC2016日前在日本横滨举行,诸多开发 ...
- Unity制作王者荣耀商业级手游
<王者荣耀>这种现象级手机游戏是如何制作出来的呢?本文以<王者荣耀>MOBO类型的多人在线战术竞技游戏为入口,覆盖Unity游戏制作开发前端与Node.js服务器端的开发必备知 ...
随机推荐
- UWP开发砸手机系列(二)—— “讲述人”识别自定义控件Command
上一篇我们提到如何让“讲述人”读出自定义的CanReadGrid,但“讲述人”仍然无法识别CanReadGrid上绑定的Command.XAML代码如下: <StackPanel> < ...
- JAVA异常的最佳工程学实践探索
此文已由作者占金武授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 先说明一下背景: 项目日志中的Exception会被哨兵统一监控并报警 比较多的项目基于dubbo在做服务化 ...
- WPF 无边框拖动
无边框之后的拖动方法有三种. 我个人是喜欢第一和第三的方法,看个人去需求. 第三种代码比较仓促,有需要者可以立马用,或者稍作整理修改. 对于WIN10 .NET 4.5以上的框架可以使用 WIndow ...
- Exp1 PC平台逆向破解 20164323段钊阳
实验目标 学习两种方法运行代码片段,并学习如何注入运行任何Shellcode. 三个实验内容如下: 1.手工修改可执行文件,改变程序执行流程,直接跳转到getshell函数 2.利用foo函数的bof ...
- 深入了解java虚拟机(JVM) 第十二章 类加载器
一.什么是类加载器 类加载器是一个用来加载类文件的类,Java源代码通过javac编译器编译成类文件,然后JVM来执行类文件中的字节码来执行程序.需要注意的是,只有被同一个类加载器加载的类才可能会相等 ...
- Get 和 Post 方法的选择和URL的设计
原文链接:http://yifei.me/note/540 HTTP 中常用的方法有 GET/POST/PUT/DELETE 等,在设计API或者表单的时候我们需要选择合适的方法.一般有两种方案: 只 ...
- html基础整理(02浮动 问题)
margin的塌陷现象及解决方案 如果一个大盒子中包含一个小盒子,给小盒子设置margin-top,大盒子会一起向下平移 - 解决方案: 1. 给大盒子加一个边框(border) 2. 给大盒子 ...
- AngularJS入门讲解4:多视图,事件绑定,$resource服务讲解
上一课,大家知道,手机详细模板我们没有写出来,使用的是一个占位模板. 这一课,我们先实现手机详细信息视图,这个视图会在用户点击手机列表中的一部手机时被显示出来. 为了实现手机详细信息视图,我们将会使用 ...
- cnpm安装过程中提示optional install error: Package require os(darwin) not compatible with your platform(win32)解决方法
运行cnpm install后,出现 虽然提示不适合Windows,但是问题好像是sass loader出问题的.所以只要执行下面命令即可: 方案一: cnpm rebuild node-sass # ...
- jenkins详解(一)
还是以以下几个问题来学习这个软件: 1.jenkins是什么? 2.为什么要用jenkins? 3.怎么用jenkins? 1.jenkins是什么? Jenkins是一个开源的.提供友好操作界面的持 ...