検索
記事ランキング
カテゴリ
以前の記事
twitter
画像一覧
Link
その他のジャンル
|
リネージュ2レボリューションのBlueStacksでの起動に成功したので、
あとは多重起動とマクロを時間の許される限り試していきます。 まぁダメだったらダメでどんまいね。 マクロはUWSCを使います! とは言ってもこのゲームは基本的にオートで狩りやクエストをこなしていくので、 マクロを必要とする要素が少ないです。 マクロがあると便利そう、かつ簡単そうな機能 1)メインクエストを自動で進める機能 2)クエストスクロール(EXPが増えるクエストを一つ貰える)を自動消費する機能 まずは1)に挑戦します。 画面に左の黄色い枠にメインクエストが出ています。 1)メインクエストをタップしてNPCからクエストを受ける 2)NPCの話を聞く(なんでもタップすればOK?) 3)クエストを承諾する 3)を済ませるとオートでクエストの場所まで走りに行きます。 とりあえず1から3までの自動化を目指そう。 まずはBlueStacksのウィンドウを画面の左上に持っていきます。 位置を固定したいからね。 やり方が分からなかったので、uwscの記録機能を使ったら解決しました。 acw(getid("BlueStacks App Player"),0,0) ちょろいもんです。 次に画像認識です。さぁ難しいぞ。 リファレンス(らしきもの)を読んでみると、 戻値 = CHKIMG( 画像名, [透過色/色無視, x1, y1, x2, y2, 番号, 色幅] ) と記載されていたので、ひとまず画像を作ります。 画像をくりぬき、最低限画像認識に必要そうな箇所以外は赤(またはお好みの色)に塗りつぶします。 で、書いた関数がコレ。 chkimg("testmain2.bmp", 1, 0, 0, G_SCREEN_W/2, G_SCREEN_H/2, -1, IMG_MSK_BGR4) 透過色:1を設定することで、画像の左上のピクセルの色(つまり赤)を透過色として認識します。 x1,y1:サーチ開始位置として0,0を指定 x2,y2:サーチ終了位置としてG_SCREEN_Wを指定する画面の幅が入るそうなんで、幅と高さをそれぞれ÷2して指定。 番号:-1を指定すると発券した数を返すらしい。 色幅:IMG_MSK_BGR4指定すると、RGBの各色で16/256の幅を持たせられるらしい。 この関数をmsgbox()に突っ込んで表示してみたけど、結果は「0」、つまり画像発見失敗しました。 あれこれ試した結果、色幅のゆらぎをもっと持たされないかと思い立ち、リファレンスに「演算可能」と書いてあったので、単純に3倍してみました。(2倍だと0のままだった) chkimg("testmain2.bmp", 1, 0, 0, G_SCREEN_W/2, G_SCREEN_H/2, -1, IMG_MSK_BGR4*3) これで1が返ってきた!つまり認識成功!パチパチ。 で、最終形がコレ // BlueStacksのウィンドウを0,0に移動 acw(getid("BlueStacks App Player"),0,0) //CHKIMG( [画像名, 透過色(左上), x1, y1, x2, y2, 番号(発見数), 色幅] ) chkImgResult = chkimg("testmain2.bmp", 1, 0, 0, G_SCREEN_W/2, G_SCREEN_H/2, -1, IMG_MSK_BGR4*3) if !(chkImgResult > 0) then exitexit kbd(vk_t,click,200) BlueStacksのウィンドウを0,0に移動 「メイン」の画像を認識 画像認識に失敗したらexitexit(マクロ終了) キーボードのTをタップ Tをタップするのは、BLueStacksの機能としてキーボードのキーを画面上の指定位置のタップに割り当てることができるからです。
by kyam_kyam
| 2017-05-09 21:11
|
ファン申請 |
||