首先要聲明,這裡的遊戲外掛的概念,和那些大型網遊裡的外掛可不同,不能自動打怪,不能喝藥不能躲避GM…… 外掛是寫不了的,Python是腳本語言,不可能像易語言、C語言一樣流暢自如地編寫輔助;遊戲並不適合用Python開發,Python雖有pygame庫,但是功能不強,遊戲運行效率低下,寫遊戲還是要靠遊戲引擎。
這裡可以用Python實作一個簡單的小遊戲腳本
工具的準備
需要安裝autopy和PIL以及pywin32包。 autopy是一個自動化操作的python庫,可以模擬一些滑鼠、鍵盤事件,還能對螢幕進行訪問,本來我想用win32api來模擬輸入事件的,發現這個用起來比較簡單,最厲害的是它是跨平台的,請搜尋安裝;而PIL那是大名鼎鼎了,Python圖像處理的No.1,下面會說明用它來做什麼;pywin32其實不是必須的,但是為了方便(滑鼠它在自己動著呢,如何結束它呢),還是建議安裝一下。
截圖與圖片處理工具
截圖是取得遊戲影像以供分析遊戲提示,其實沒有專門的工具直接Print Screen貼到影像處理工具裡也可以。我用的是PicPick,相當好用,而且個人用戶是免費的;而圖像處理則是為了獲取各種資訊的,我們要用它得到點菜圖像後保存起來,供外掛分析判斷。
編輯器
這個就不用說了吧,寫程式碼得要個編輯器啊!
原理分析
看這個遊戲,有8種菜,每種菜都有固定的做法,顧客一旦坐下來,頭頂上就會有一個圖片,看圖片就知道他想點什麼菜,點擊左邊原料區域,然後點擊一下……不知道叫什麼,像個竹簡一樣的東西,菜就做完了,然後把做好的食物拖曳到客戶面前就好了。
顧客頭上顯示圖片的位置是固定的,總共也只有四個位置,我們可以逐一分析,而原料的位置也是固定的,每種菜的做法更是清清楚楚,這樣一來我們完全可以判斷。
程式碼:
class Menu: def __init__(self): self.stuff_pos = [] self.recipes = [None] * 8 self.init_stuff() self.init_recipe() def init_stuff(self): for i in range(9): self.stuff_pos.append( (L + 102 + (i % 3) * 42, T + 303 + (i / 3) * 42) ) def init_recipe(self): self.recipes[0] = (1, 2) self.recipes[1] = (0, 1, 2) self.recipes[2] = (5, 1, 2) self.recipes[3] = (3, 0, 1, 2) self.recipes[4] = (4, 1, 2) self.recipes[5] = (7, 1, 2) self.recipes[6] = (6, 1, 2) self.recipes[7] = (8, 1, 2) def click(self, i): autopy.mouse.move(self.stuff_pos[i][0] + 20, self.stuff_pos[i][1] + 20) autopy.mouse.click() def make(self, i): for x in self.recipes[i]: self.click(x) autopy.mouse.move(L + 315, T + 363) autopy.mouse.click()
以上是python可以做遊戲輔助嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!