【Autonauts】バケツのバグに対応したスクリプトの書き方【オートノーツ】

このページで紹介しているのは、ゲーム「Autonauts(オートノーツ)」の「バケツのバグ」と、それに対応した自動プログラムの書き方です。

参考にしていただければ幸いです。

スポンサーリンク

■ 「バケツのバグ」とは?

本作には「バケツ」は3種類登場します。

・粗雑なバケツ
・上質なバケツ
・金属製のバケツ
の3つです。

それぞれ容量が異なります(耐久度も?)。
1回で入れられる砂や液体の数が違うというわけです。

粗雑なバケツは1杯。
上質なバケツは3杯。
金属製のバケツは5杯。です。

この内、複数杯入れられる
・上質なバケツ
・金属製のバケツ
にはバグが存在します。

これらのバケツで液体をすくい、アイテムクラフトのために作業台に投入すると、なぜかスクリプト通りに入れてくれないというものです。

・5杯入れてほしいのに、なぜか4杯しか入れない
・5杯入れてほしいのに、なぜか1杯しか入れない

毎回発生するわけではなく、稀に発生し、杯数は様々です。
これによって作業が止まってしまいます。

主に「淡水」を入れるクラフトアイテムで発生する気がします。

砂や液体を使うクラフトが増えてくると、止まるたびに対応するのが煩わしくなってくるはずです。

■ 「バケツのバグ」に対応するスクリプト

2つの対応方法があります。

・「粗雑なバケツ」を使う

粗雑なバケツを使うと、なぜかバグは発生しません。

粗雑なバケツは容量1ですので、「1杯すくって1杯入れる」。
とてもシンプルな動作をします。

作業効率は落ちますが、止まるバグに悩まされることはありません。

・サポート要員を当てる

「淡水」のみを入れるサポートボットを当て、2台体制で作ります。
これでバグが発生しても問題なく動きます。

「インク」のクラフト工程をサンプルに紹介しますね。

まず1台目のボットは、普通にそのアイテムを作る工程をプログラムしてください。

●メインボット
繰り返し:永遠に!
  回収する
  もし:手が空です
    金属製のバケツの保管場所に移動
    金属製のバケツの保管場所から取る
  淡水の保管場所に移動
  淡水の保管場所から取る
  大釜に移動
  繰り返し:4回:↓
    大釜に追加
  持っているアイテムをしまう
  木炭の保管場所に移動
  繰り返し:4回
    木炭の保管場所から取る
  大釜に移動
  繰り返し:4回
    大釜に追加
  土器の瓶の保管場所に移動
  土器の瓶の保管場所から取る
  大釜に移動
  大釜に追加
  一番近いインクがある場所□
  インクに移動
  インクを拾う
  インクの保管場所に移動
  インクの保管場所に追加

※作りすぎ防止の仕組みは記述していませんので、「もし:インクの保管場所がいっぱいではありません」も最初に書き入れてください。

サンプルスクリプトとして提示しましたが、自分がよく書くスクリプトの書き方で構いません。ゲームをこの段階まで進めていれば、自己流が身についているはずです。

ポイントとなるのは、「大釜に淡水を入れる箇所」です。
「繰り返し:4回:↓」のところです。
回数を入れる右側にチェックボックスがありますので、これにチェックを入れてください。
「エラーが起きたときに、スクリプトの次の行に移動する」という意味になります。

これで、「サポートボットが淡水を入れて、メインボットが淡水を入れられなくて止まる」。という事態を回避しています。

続いて、サポート側のボットのスクリプトです。

●サポートボット
繰り返し:永遠に!
  もし:手が空です
    金属製のバケツの保管場所に移動
    金属製のバケツの保管場所から取る
  もし:インクの保管場所がいっぱいではありません
    淡水の保管場所に移動
    淡水の保管場所から取る
    大釜に移動
    繰り返し:2回:↓
      大釜に追加

こちらもメインボット同様に、「繰り返し:2回:↓」のように、「エラー時は次行へ進む」のチェックボックスを入れてください。

2回としていますが、何回でも構いません。
足りなくなることが多い杯数を入れると良いと思います。

淡水を必要とするアイテムクラフトは他にも登場します。

以下のように追加してやれば、サポートボット1台で各所を対応できます。

もし:○○の保管場所がいっぱいではありません
  淡水の保管場所に移動
  淡水の保管場所から取る
  粗雑な鍋に移動
  繰り返し:2回:↓
    粗雑な鍋に追加
もし:○○の保管場所がいっぱいではありません
  淡水の保管場所に移動
  淡水の保管場所から取る
  錬金術ステーションに移動
  繰り返し:2回:↓
    錬金術ステーションに追加

木板や丸太を燃料として入れるスクリプトと似ていますね。

■ バグをスクリプトで対応する

このように、バグをスクリプトで強引に対応することも、プログラムでは可能です。

そもそもバグではなく、
「予期せぬ出来事が起こることがある」から、それに対応するサポート体制を作っておく。
という考え方ですね。

プログラミングは完璧に整えられた状況で作るもの、
と考えがちですが、必ず穴やバグはできてしまいます。
あるいは、外的要因でなぜか動かないという状況も発生します。

常に大元が直せるわけではないので、ツギハギであったり、あまりキレイな形でなかったとしても、動くという状況にするのは大切なことです。

■ 終わりに

以上、「【Autonauts】バケツのバグに対応したスクリプトの書き方【オートノーツ】」でした。

楽しいゲームに出会うための参考としていただければ幸いです。

スポンサーリンク

スポンサーリンク
スポンサーリンク
検索
スポンサーリンク
検索

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
スポンサーリンク
検索