引入:

接着上篇的博文,今天我们讲如何实现助人为乐

前期准备:

如何获取图片中指定文字的坐标?

我的思路是截取一个小区域,再根据小区域左上角的坐标获取中央坐标

例如:

获取坐上角的x和y坐标,测量x到红点的横向距离x1,在测量y点到红点的纵向距离y1

可以得出红点的坐标(x+x1,y+y1)

复制代码,运行

X1 =
X2 =
time.sleep()
screenshot(X1, , X2, ,helpedName1)#截图 mousemove_click(X1 + , Y + )

截取了一小区域,然后获得了中心坐标,这里的200和30是自己测量出来的

如果有更好更直接的获取图片中指定文字的坐标的方法可以下方评论告诉我,我也学习学习

开始制作外挂:

详细步骤之前的博文1博文2已经说过

详细代码如下:

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制作回合制手游外挂简单教程(下)的更多相关文章

  1. Python制作回合制手游外挂简单教程(上)

    引入: 每次玩回合制游戏的时候,反反复复的日常任务让人不胜其烦 玩问道的时候,我们希望能够自动刷道,玩梦幻希望能自动做师门.捉鬼等等 说明: 该外挂只能模拟鼠标键盘操作,并不能修改游戏数据 我这里使用 ...

  2. Python制作回合制手游外挂简单教程(中)

    接着上篇的博文,今天我们讲如何实现自动组队刷道 引入: 自动组队刷道的流程是先点击刷道按钮.再点击前往按钮.再点击便捷组队······ 这些操作上篇博文已经告诉我们怎么做了,利用picpick丈量坐标 ...

  3. Android手游外挂入侵----寓攻于守,方能破敌

    欢迎访问网易云社区,了解更多网易技术产品运营经验. 手游外挂入侵 随着各种爆款手游的风靡,目前手机游戏的占比用户已经形成一个巨大的市场,市场上你争我夺,有将PC版本移植到手机中,也有新模式手游的推出. ...

  4. python制作爬虫爬取京东商品评论教程

    作者:蓝鲸 类型:转载 本文是继前2篇Python爬虫系列文章的后续篇,给大家介绍的是如何使用Python爬取京东商品评论信息的方法,并根据数据绘制成各种统计图表,非常的细致,有需要的小伙伴可以参考下 ...

  5. 【转载】QQ炫舞手游自制谱子教程(星动模式)

    第一步:计算ET和BPM: 抄送原作者部落链接:https://buluo.qq.com/p/detail.html?bid=368006&pid=981862-1529828677& ...

  6. 腾讯WeTest《2017中国移动游戏质量白皮书》开放预约,再为国内手游把把脉

    产品为王,质量先行.如果说2016年是爆款手游相继崛起的一年,那么2017年则更像是打磨精品.建立生态的高手切磋之年.守住一个游戏的质量生命线,方能建立健康生态,方能在如火如荼的行业竞争中角逐到最后. ...

  7. 类传奇手游简单Demo

    这是一年多前自己闲时以Unity2D制作的很粗糙简单的传奇类手游Demo(单机),已很久未作继续开发. 此小Demo初步完成或实现了如下功能(有诸多考虑欠妥甚至不完善之处): 1).图片资源打包方式. ...

  8. 手游[追忆之青]动画导演:2D动画制作技巧

    转自:http://www.gamelook.com.cn/2016/09/264591 GameLook报道/由一般法人计算机娱乐协会(CESA)主办的CEDEC2016日前在日本横滨举行,诸多开发 ...

  9. Unity制作王者荣耀商业级手游

    <王者荣耀>这种现象级手机游戏是如何制作出来的呢?本文以<王者荣耀>MOBO类型的多人在线战术竞技游戏为入口,覆盖Unity游戏制作开发前端与Node.js服务器端的开发必备知 ...

随机推荐

  1. [Elixir003] Mix Archives

    在[Elixir001]中使用 mix escript.build 生成一个lifelog 的escript启动脚本. 今天我们尝试一下另一种方式:生成Archives. 我们先添加一个Task 1. ...

  2. WebApi 插件式构建方案:发现并加载程序集

    插件式的 WebApi 开发,首要面对的问题就是程序集的发现.因为开发的过程中,都是在各自的解决方案下进行开发,部署后是分模块放在一个整体的的运行时网站下. 约定 这里我根据上一节的设定,把插件打包完 ...

  3. 【分分钟内搭建一个带用户系统的博客程序(一)用户系统】asp.net core的Identity真香,EF真香!

    不用不知道,一用香到爆. 老哥是个屌丝前端,但也想写点web应用耍一耍.之前弄过了NodeJs,也弄过JAVA,最近由于写游戏的原因用C#,索性上手一波asp.net core. 这篇博客记录的是,如 ...

  4. C# 多线程task

    1.异步和多线程的区别?没什么太大区别.异步是目的,使用多线程实现.想想AJAX异步加载,不就是不想让浏览器界面卡住嘛,所以在程序中对于某些单独的操作,比如写日志,我们不想等它完成后再执行其它操作(因 ...

  5. J - Judge(快速幂)(同余定理)

    J - Judge   Time Limit:1000MS     Memory Limit:131072KB     64bit IO Format:%lld & %llu Submit S ...

  6. “全栈2019”Java异常第十五章:异常链详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java异 ...

  7. CTF 介绍及杂项

    CTF(Capture The Flag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式.CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过 ...

  8. 理解 atime,ctime,mtime (下)

    话不多说,开始下篇. # 前言 通过 "理解 atime,ctime,mtime (上)" 我们已经知道了atime 是文件访问时间:ctime是文件权限改变时间:mtime是文件 ...

  9. mxonline实战13,授课讲师列表页,详情页,index页面全局导航

    对应github地址:第13天   把teacher-list.html和teacher-detail.html拷贝过来   一. 授课讲师列表页   1. 修改html文件 把org-list.ht ...

  10. nginx的几种负载均衡策略

    转自https://www.cnblogs.com/1214804270hacker/p/9325150.html 一.关于Nginx的负载均衡 在服务器集群中,Nginx起到一个代理服务器的角色(即 ...