Python制作回合制手游外挂简单教程(下)
生活随笔
收集整理的這篇文章主要介紹了
Python制作回合制手游外挂简单教程(下)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
引入:
接著上篇的博文,今天我們講如何實現助人為樂
前期準備:
如何獲取圖片中指定文字的坐標?
我的思路是截取一個小區域,再根據小區域左上角的坐標獲取中央坐標
例如:
獲取坐上角的x和y坐標,測量x到紅點的橫向距離x1,在測量y點到紅點的縱向距離y1
可以得出紅點的坐標(x+x1,y+y1)
?
復制代碼,運行
X1 = 1132 X2 = 1536 time.sleep(3) screenshot(X1, 622, X2, 676,helpedName1)#截圖mousemove_click(X1 + 200, Y + 30)?
截取了一小區域,然后獲得了中心坐標,這里的200和30是自己測量出來的
?
如果有更好更直接的獲取圖片中指定文字的坐標的方法可以下方評論告訴我,我也學習學習
開始制作外掛:
詳細步驟之前的博文1和博文2已經說過
?
詳細代碼如下:
imageGrabUtil.py(截圖工具)
#coding=utf-8from 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 AipOcrimport 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_KEYSECRET_KEY = SECRET_KEY
?
joyByHelpingPeople.py
我只做了馮喜來和楊鏢頭的部分,其他人物的可以用同樣的方法做出來,先走完流程,再寫代碼
#coding=utf-8 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(5) win32api.keybd_event(18,0,0,0) #alt鍵位碼是18 win32api.keybd_event(9,0,0,0) #tab鍵位碼是9 time.sleep(0.5) win32api.keybd_event(13,0,0,0) #enter鍵位碼是13win32api.keybd_event(18,0,win32con.KEYEVENTF_KEYUP,0) #釋放按鍵 win32api.keybd_event(9,0,win32con.KEYEVENTF_KEYUP,0) win32api.keybd_event(13,0,win32con.KEYEVENTF_KEYUP,0) time.sleep(2)def mousemove_click(x,y):autopy.mouse.smooth_move(x, y)autopy.mouse.click()#幫助馮喜來 def fengXiLai(Y):mousemove_click(X1+200,Y+30) #鼠標移到按鈕中央,點擊馮喜來按鈕for i in range(1,4,1):mousemove_click(1448,380)time.sleep(150) #打強盜、無名劍客平均時間150smousemove_click(1515, 258)#跳過對話mousemove_click(1515, 258)time.sleep(15)mousemove_click(1448, 380)# 白邦芒處領賞#幫助楊鏢頭 def yangBiaoTou(Y):mousemove_click(X1 + 200, Y + 30)for i in range(1,5,1):#和張老板對話,傳遞心意,找張老板,找玄武mousemove_click(1448, 380)#點任務欄 和張老板對話time.sleep(15)mousemove_click(1515, 258) # 跳過對話mousemove_click(1448, 380) # 點任務欄 尋找竊賊time.sleep(45)#和竊賊對戰時間45smousemove_click(1515, 258) # 跳過對話for i in range(1,5,1):#向張老板復命,月老,蓮花姑娘,張老板mousemove_click(1448, 380) # 點任務欄 向張老板復命time.sleep(15)mousemove_click(1515, 258) # 跳過對話mousemove_click(771, 203) # 活動的坐標mousemove_click(1359,503) #前往的坐標time.sleep(15)#從天墉城城中心/其他地圖走到白幫忙花費15smousemove_click(1336,649) #領賞#為了獲取圖片中指定文字的坐標,這里需要分開截圖 helpedName1 = "helpedName1" X1 = 1132 X2 = 1536 time.sleep(3) screenshot(X1, 622, X2, 676,helpedName1)#截圖judgehelpedNameStr1 = characterRecognition('E:\\python_project\\Asktao_Automation\\resource\\'+helpedName1+'.png')#文字識別helpedName2 = "helpedName2"screenshot(X1, 690, X2, 741,helpedName2)#截圖judgehelpedNameStr2 = characterRecognition('E:\\python_project\\Asktao_Automation\\resource\\'+helpedName2+'.png')#文字識別 if '馮喜來' in judgehelpedNameStr1:fengXiLai(622) elif '馮喜來' in judgehelpedNameStr2:fengXiLai(690) elif '楊鏢頭' in judgehelpedNameStr1:yangBiaoTou(622) elif '楊鏢頭' in judgehelpedNameStr2:yangBiaoTou(690)?
至此,回合制手游(如問道)的所有任務的腳本都可以用這三篇教程的所講方法去做
若有更簡潔的方法,歡迎指出
?
三篇教程的所有代碼請點擊這里獲取
轉載于:https://www.cnblogs.com/Java-Starter/p/9609671.html
總結
以上是生活随笔為你收集整理的Python制作回合制手游外挂简单教程(下)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 育碧传统艺能:游戏《刺客信条:幻景》内购
- 下一篇: 河南省购车补贴政策延续至 12 月底:按