施政による自動化活用方法
まずは基本の施政について。
施政は軍団の機能で、盗賊討伐、資源採集、兵士の募集&治療を自動で行ってくれる。
軍団のレベルが高いほど1回の施政時間が長くなる(軍団Lv10で8時間)ので、レベルが上がれば仕事中や寝ている間はずっと施政をしていられる(もちろん行軍令の事前補充を忘れないように)。
おそらく初期の頃はワールドマップでレーダーなりで探しながらお気に入りの採集場を登録したりといったことを行っていると思うが、慣れてくると施政だけで討伐も採集も片付けることになる。
特に攻城やPvPが激しくなってくると日々遷都を繰り返すことになるので、一定範囲の採集場分布に拘る意味がなくなり、自動で指定Lvの採集場や盗賊を捜して行動してくれる施政の終了と開始を切り換えるだけで行動することになる。
なお、施政中の行動間隔は10分ごと。
討伐帰還後は待ち時間が発生するので、オンライン中で盗賊討伐の頻度を上げたいときは帰還後に施政の終了と開始をタップすればすぐに行動を開始してくれる。
討伐にしろ採集にしろ高頻度で周回する必要があるので、基本的に攻城時以外は常に施政を実行しているイメージになる。
巡回時も討伐と採集の部隊登録を外して兵士募集と治療を施政で自動実行する形になる。
なお、ワールドマップは使わないと書いたが、ワールドマップの採集場分布はシナリオ共通なので、お気に入りに追加しておいて損はない。特に勲功等でやりとりする場合はすぐに候補の採集場なりが出てくるとやりやすい。
ちなみに採集場分布はシナリオどころかサーバ間、中国版でも共通となっている。
よって、余裕がある人はExcelで800x800マスのシートを作成しておくとずっと使えるマスターデータになる。
城内生産場の採集自動化
と、ここまでがゲーム内の施政機能を使った効率的な自動化方法だが、ここからは少し踏み込んだ自動化方法についてご紹介したい。まずは城内採集の自動化。
ワールドマップ上の採集と違い、城内生産場は自動採集機能がゲーム内に実装されていない。
生産量増加のバフがかかっていなければ頻繁でなくてもいいが、城科学や軍書科学などのバフが乗ると2時間ごと等で生産場内の臨時倉庫が一杯になってしまうので寝てる間も定期的に採集する必要が出る。
この点、自分はパソコン上でBlueStacksのエミュレーターとJavaを使って自動化しているが、Kotlinや他の言語でも、AndroidやApple端末上でも操作をエミュレートできるプログラムを走らせることができる環境であれば実現できる。
実装はたいして難しくなく、標準パッケージ内のjava.awt.Colorクラスで画面内の位置や条件を判定し、java.awt.Robotクラスでマウス操作をエミュレートできる。
生産場の資源採集なら、あるXY座標が特定の(ホワイトグレーの)色かどうかでバルーンが出ているか判定して、バルーンが出ていればクリックすればいい。
ひとつ注意したいところは、バルーンは左右に動くので、ホワイトグレーの色判定に余裕を持たせるかバルーン位置によって何種類かの色判定をOR条件で指定しておくこと。
免戦令またはランダム遷都令の自動化
同様に、画面上の変更判定と操作自動化ができれば攻撃を受けた際に自動で免戦令を貼ったり、遷都令を使うこともできる。アラートの判定方法は画面上の枠内に出る赤い点滅か「兵臨城下」のアイコン。こちらも点滅によって色が変わるので色判定で条件指定する場合は条件判定に余裕を持たせておきたい。
注意点は、野外採集時に襲われると同様の判定をしてしまうということ。盗賊討伐や巡回時は城以外を襲われる心配がないが、野外採集にも対応したい場合は臨兵城下ボタン内でどこを攻撃されているかの文字判定をしたりする必要がある。
プログラム的にはランダム遷都令の方が選択するまでにスワイプ操作のエミュレートが必要になったりするので面倒くさい。100元宝をけちらないのであれば免戦令を貼るようにする方が2クリック操作(左上の増益ボタンと免戦令の使用ボタン)で済むので実装は楽になる。
復讐令を使わない特定プレイヤーの自動探索
また、敵対勢力とのゲリラ戦に突入した際は、同様のプログラムで特定プレイヤーの場所を探索することもできる。復讐令は被攻撃側の戦報ログ内でしか使えない※ので、攻めた側は何回か免戦令を使って被害者側の戦報ログが失効するのを待ってランダム飛びすれば攻め逃げすることができる(※主城または資源採集場を攻撃されたとき。勝利した場合でも復讐令は使える。攻城時のマス駐屯時は攻撃されても復讐令の対象にはならない)。
そういったログの失効によって復讐令が使えない場合に、ワールドマップ上を全走査して対象プレイヤーの現在位置を特定する。
プログラム的には画面上部のXY座標に0,0から799,799までの位置をレーダー範囲内の間隔で入力して移動させていき、付近のプレイヤーリストから特定ユーザの名前がリストアップされているかを判定すればいい。
OCR機能を実装できればプレイヤー名を照合できるし、そこまで大袈裟にしなくてもプレイヤー名の文字数や位置で候補を判定してリストアップすることもできる。
復讐相手に攻め逃げされたときに見つけ出すのはもちろん、他のプレイヤーを探し出すこともできるし、やる気になれば日々の全プレイヤーの分布状況を把握することもできる。
サーバー内の戦争が進めば鍵となるプレイヤーは限定されてくる。
主要軍団の軍団長や副軍団長の人は、他勢力、他軍団の鍵となるプレイヤーの位置を把握したり、ランキングボードで上位プレイヤーの戦力推移を把握できていれば大きなアドバンテージとなる。
戦力推移によって誰が勢いがあるかとか、課金を増やしているか、逆に停滞していて最近インしていないようだとかもわかる。
勢力移動や改名が発生するシナリオ移行時には、しばらく前からOCRなりで上位プレイヤーの一覧を日々データ化して推移をチェックしていけば誰がどのように名前を変えてどこに移動したかも丸裸にできる。
戦争ゲームだけあって情報戦を制することが重要になるので、自動化を使った索敵やデータベース化は強力なツールとなる。
ちなみにどこまでゲームに時間と金を注ぐかは人次第だが、重課金者以上に資金力がある人ならアルバイトを雇って上記索敵を人手でやるという選択肢もある。
さすがに日本でそこまでやってる人はいないと思うが、40個以上サーバーがあって天下統一も起こってる中国ではあってもおかしくないのかもしれない。しらんけど。
0 件のコメント :
コメントを投稿