學院實戰班目前在教授的是回合制遊戲 《神武》的指令碼功能小編湊熱鬧,也跟著去玩了玩今天在這裡和大家分享下,自動戰鬥功能的指令碼編寫流程~
工具/原料
按鍵精靈2014
方法/步驟
流程
1、開啟地圖 (快捷鍵Tab)2、隨機點選地圖上的座標點 3、如果遇到怪物則打怪(自動打怪快捷鍵Ctrl+A)技術難點:1、隨機移動過程中,如何判斷人物是否已經移動到了指定座標點。2、隨機點選一組座標的實用寫法。
繫結遊戲視窗
今天我們要寫的指令碼有使用到大漠外掛。
因為是多開指令碼,所以查詢控制代碼使用的是Search命令後臺繫結模式: 圖色模式:dx3 滑鼠模式:dx 鍵盤模式:dx關於Search命令的詳細說明以及大漠繫結模式如何獲知請參閱相關院刊:【院刊】-【201501期】沙盤後臺繫結遊戲
開啟地圖
《神武》遊戲支援點選大地圖進行移動的方式。開啟地圖的快捷鍵為Tab鍵。
為了避免地圖已經開啟的情況我們要先判斷地圖有沒有開啟,沒有開啟的話才去按Tab鍵開啟地圖這裡要注意一點那就是,地圖沒開啟的情況下有兩種情況1、沒進入戰鬥畫面2、進入了戰鬥畫面所以,開啟地圖的判斷步驟如下1、地圖沒開啟——>在不在戰鬥畫面? 在戰鬥畫面——>開始戰鬥 不在戰鬥畫面——>開啟地圖——>隨機點選地圖上的座標點2、地圖打開了——>人物在不在移動? 在移動(說明還沒到目的座標)——> 不做任何操作 不在移動(說明到了目的座標 或者 遇到了阻礙物停止了移動)——> 點選下一個隨機座標本例子中,是通過找圖方式來判斷地圖視窗是否出現
小編找的是紅框框裡的圖片藍色框的區域裡,經常會出現系統的橫條提示資訊,會遮擋住地圖框影響找圖,所以不取那個區域裡的圖片
隨機點選地圖上的座標點
在QUI上畫一個文字輸入框輸入框裡的內容為要移動的座標資訊座標與座標之間用 隔開
隨後在指令碼中,我們讀取文字輸入框的內容讀取之後用分割函式 split 依據 分隔符 將其分割 Split函式分割之後,會將分割的內容存放在數組裡這裡注意下通過 第一次分割,假如 陣列(0) 存放的是: 28,29dm.MoveTo 陣列(0)這樣寫顯然是錯誤的,會提示引數個數不對,那怎麼辦呢?不怕,我們有 Execute函式Execute "dm.MoveTo " & 陣列(0)這樣寫就可以執行了然後,我們前面說的要隨機點只要將陣列下標進行隨機就可以了
例如:Execute "dm.MoveTo " & 陣列( Int(10* Rnd))關於Execute函式、隨機函式的詳細內容請參閱相關院刊【院刊】-【201410期】 神奇的Execute語句【院刊】-【201411期】細說 Rnd隨機函式
隨機點完地圖的座標,就等著人物移動過去那怎麼才能知道人物已經到了那個點了呢?
這就要用到大漠的 IsDisplayDead 函數了
�fnX����:1px; background:rgb(255,255,255); mso-shading:rgb(255,255,255); " >28,29dm.MoveTo 陣列(0)這樣寫顯然是錯誤的,會提示引數個數不對,那怎麼辦呢?不怕,我們有 Execute函式Execute "dm.MoveTo " & 陣列(0)這樣寫就可以執行了然後,我們前面說的要隨機點只要將陣列下標進行隨機就可以了