Python製作回合制手遊外掛簡單教程(上)

來源:互聯網
上載者:User
引入:

每次玩回合制遊戲的時候,反反覆複的日常任務讓人不勝其煩

玩問道的時候,我們希望能夠自動刷道,玩夢幻希望能自動做師門、捉鬼等等

 

說明:

該外掛只能類比滑鼠鍵盤操作,並不能修改遊戲資料

 

我這裡使用的python2.7

開發工具是PyCharm

 

前期知識準備:

首先下載autopy包,我這裡PyCharm可以直接匯入autopy包

或者用利用pip進行安裝:pip install autopy

 

滑鼠移動

複製如下代碼,運行

#coding=utf-8import time import autopy#quick moveautopy.mouse.move(1,1) #smooth move#autopy.mouse.smooth_move(1370,120)

會發現滑鼠瞬間移動到座標(1,1)的位置,我的電腦是1920*1080的,最右下角的座標就是(1920,1080)。

將move換成smooth_move,會發現滑鼠慢慢地移動到指定座標

官方文檔的解釋:

autopy.mouse.move(x: float, y: float)

 

    Moves the mouse to the given (x, y) coordinate.

 

    Exceptions:

 

            ValueError is thrown if the point is out of index.

 

autopy.mouse.smooth_move(x: float, y: float)

 

    Smoothly moves the mouse to the given (x, y) coordinate in a straight line.

 

    Exceptions:

 

            ValueError is thrown if the point is out of index.

座標超過解析度會報異常

 

滑鼠點擊

運行代碼,發現當前位置產生了點擊操作

#coding=utf-8import autopyautopy.mouse.click() # 單擊

 

鍵盤操作

下面時一些常見的索引值碼和鍵的對應:

   字母和數字鍵 數字小鍵盤的鍵  功能鍵    其它鍵 
      鍵   鍵碼      鍵   鍵碼          鍵   鍵碼       鍵      鍵碼 
      A   65         0   96            F1  112       Backspace    8 
      B   66         1   97            F2  113       Tab       9 
      C   67         2   98            F3  114       Clear      12 
      D   68         3   99            F4  115       Enter      13 
      E   69         4   100           F5   116     Shift      16 
      F   70         5   101           F6   117     Control     17 
      G   71        6   102           F7   118     Alt       18 
      H   72        7   103           F8   119     Caps Lock    20 
      I    73         8   104          F9   120     Esc       27 
      J    74         9   105          F10 121     Spacebar    32 
      K   75        *   106           F11  122     Page Up     33 
      L   76        +   107           F12  123     Page Down    34 
      M   77       Enter 108                         End       35 
      N   78        -   109                            Home      36 
      O   79        .   110                             Left Arrow   37 
      P   80        /   111                             Up Arrow   38 
      Q   81                                              RightArrow   39 
      R   82                                              DownArrow    40 
      S   83                                             Insert      45 
      T   84                                             Delete      46 
      U   85                                             Help       47 
      V   86                                              NumLock     144   
      W 87          
      X  88      
      Y  89      
      Z  90      
      0  48      
      1  49      
      2  50       
      3  51       
      4   52       
      5  53       
      6  54       
      7  55       
      8  56       
      9   57

複製代碼,運行,這裡需要win32api包

調用win32api的keybd_event方法,用過要釋放按鍵

#coding=utf-8import timeimport win32api win32api.keybd_event(18,0,0,0)  #alt鍵位碼是18win32api.keybd_event(9,0,0,0)  #tab鍵位碼是9time.sleep(0.5)win32api.keybd_event(13,0,0,0)  #enter鍵位碼是13 win32api.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)

 可以看到,完成了切換視窗的操作,相當於我們按alt+tab,然後斷行符號進入

 

開始製作外掛:

這裡以問道手遊為例(回合制手遊類似)

需要夜神模擬器,並在模擬器上安裝問道

我試過藍疊和MuMu模擬器,我用autopy移動滑鼠到模擬器時滑鼠就消失了,不能完成後續的自動操作,後來百度了

說有的模擬器不受win視窗的控制。不管那麼多,我們先用夜神模擬器吧!

 

 

進入遊戲,開啟“活動”

 

我們以“競技場”活動舉例說明

 

 這裡我們要用到工具,我用的是PicPick

 個人使用者免費,我主要用它來測量座標

 

 記錄下競技場前往的座標(1358,504)

 

 

記錄下競技場按鈕的座標(1332,650)

 

製作回合制指令碼首先得要熟悉任務流程

然後點擊競技場,走完這個任務流程,依次記錄按鈕的座標

競技場任務一天可以做五次,我們對步驟迴圈五次

戰鬥時間我們需要自己來計時,不同門派,土豪或者平民玩家時間都不一樣

我是平民玩家,大概耗時60s,點擊過挑戰讓代碼延遲60s再繼續執行

 

 

複製代碼,運行

#coding=utf-8import autopyimport timeimport win32apiimport win32con#競技場win32api.keybd_event(18,0,0,0)  #alt鍵位碼是18win32api.keybd_event(9,0,0,0)  #tab鍵位碼是9time.sleep(0.5)win32api.keybd_event(13,0,0,0)  #enter鍵位碼是13 win32api.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() mousemove_click(771, 203)  # 活動的座標 mousemove_click(1358,504)  # 競技場"前往"的座標 time.sleep(20)#從天墉城城中心/其他地圖走到競技使者花費20s mousemove_click(1334, 650)  # 競技使者對話方塊中的競技場的座標  #挑戰完畢會出現交談視窗for i in range(1,6,1):    mousemove_click(664,706) #挑戰試煉童子     mousemove_click(1082,578) #確認     mousemove_click(1530, 794)  # 戰鬥自動     time.sleep(60)#挑戰試煉童子預計60s

 

 效果如下:

 

 

下一集將介紹如何?隊長模式刷道(自動組隊,自動跑環接任務)

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.