引入:

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

前期准备:

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

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

例如:

获取坐上角的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. Hibernate 零配置之Annotation注解

    JPA规范推荐使用Annotation来管理实体类与数据表之间的映射关系,从而避免同时维护两份文件(Java 实体类 和 XML 映射文件),将映射信息(写在Annotation中)与实体类集中在一起 ...

  2. shell备份文件时加上时间戳

    1.在root目录下新建backup_date文件,写入echo _back_`date '+%Y%m%d%H%M%S'` [root@iZbp10er5cziaoscpe3x0hZ ~]# vi b ...

  3. linux 配置msyql

    下面记录了如何在ubuntu16.04上安装mysql5.7的方法. sudo apt install mysql-server 安装时会让你输入mysql root用户的密码,并确认密码 sudo ...

  4. C博客作业05—指针

    1.本章学习总结 1.1思维导图 1.2本章学习体会及代码量学习体会 1.2.1 学习体会 理解了指针在代码中的使用方法,学会使用指针进行参数操作 学会了结构体的定义方式与结构体的使用 经过持续一个周 ...

  5. Java中的内部类(二)成员内部类

    Java中的成员内部类(实例内部类):相当于类中的一个成员变量,下面通过一个例子来观察成员内部类的特点 public class Outer { //定义一个实例变量和一个静态变量 private i ...

  6. 【Oracle 12c】CUUG OCP认证071考试原题解析(31)

    31.choose the best answer Which statement is true regarding the USING clause in table joins? A) It c ...

  7. grunt 常用插件

    grunt-contrib-uglify:代码压缩 grunt-contrib-jshint:检查js拼写错误 csslint:检查css语法错误

  8. apache2 的https配置和代理https后端nodejs配置

    先进入  /usr/local/apache2/conf  目录 修改 vim httpd.conf  把下面的去掉注释 LoadModule proxy_module modules/mod_pro ...

  9. 孩子们各显神通对付 iOS 12「屏幕使用时间」的限制

    简评:2018 年秋季,苹果公司推出了 iOS 12,其中备受好评的一项改变是:增加了屏幕使用时间限制,以减轻沉迷手机的状况.三个月过去后,这项功能似乎并没有对孩子造成太多困扰,道高一尺魔高一丈,孩子 ...

  10. jQuery 事件注册

    重点事件注册.on() <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset= ...