このページで紹介しているのは、ゲーム「Autonauts(オートノーツ)」の「別の保管場所に持っていくスクリプト例」「保管場所を互いに自動補充するスクリプト例」です。
参考にしていただければ幸いです。
スポンサーリンク
■ 複数の保管場所の運用
ゲーム中盤あたりになると、1つの素材に対して複数の保管場所が必要になってきます。保管場所とは、ケースやパレット、タルなどです。
・町が拡大して、取りに行くのに時間がかかるため
・採集用と使う用とで分けたい
といった要望が出てきますよね。
例えば、植林場は複数箇所作られていると思います。
石や粘土、金属などの採集場所も複数箇所作られているかもしれません。
「雑草(抜かれた)」などは、採集用の保管場所・使う用の保管場所を共有していると、いつの間にかなくなってしまいボットが停止しているといった事態も起きます。
「木板」や「柱」などの近くで作っていた「斧」や「シャベル」なども、遠くの採掘場で使うために、いちいち取りに戻るのが面倒。
こういったことも気になり始めますよね。
このページでは、
・保管場所A → 保管場所B へ移動するスクリプト
・保管場所A ←→ 保管場所B を相互に移動するスクリプト
を紹介しています。
■ 保管場所A → 保管場所B へ移動するスクリプト
まずは簡単な、片道通行のスクリプト例です。
・「雑草(抜かれた)」の採集用ケース→使う用ケースの移動
・作った直後の「斧」「シャベル」保管用ケース→採掘現場近くのケースに移動
・余りぎみの「木板」や「柱」のパレット→減りやすい「木板」や「柱」のパレット
などで運用できます。
・基本スクリプト
木板の保管場所1 → 木板の保管場所2へ移動しています。
この場合、基本的には「保管場所1の貯蔵量>保管場所2の貯蔵量」になっているとうまく流れます。
繰り返し:永遠に!
もし:木板の保管場所1がいっぱいです
もし:木板の保管場所2はいっぱいではありません
木板の保管場所1に移動
木板の保管場所1から取る
木板の保管場所2に移動
木板の保管場所2に追加
「木板の保管場所1がいっぱいなら」動き始めます。
「木板の保管場所2がいっぱいになったら」動きを止めます。
そのため、「木板の保管場所1がいっぱいにならない限り」動き始めません。
この点はやや問題ですが、放置していればいずれ満タンになります。
・応用スクリプト
上のスクリプトは、1個ずつ持ち運ぶため、かなりの時間がかかります。
まとめて一気に運ぶスクリプトです。
繰り返し:永遠に!
もし:木板の保管場所1がいっぱいです
もし:木板の保管場所2はいっぱいではありません
木板の保管場所1に移動
繰り返し:手がいっぱいになるまで
木板の保管場所1から取る
木板の保管場所2に移動
繰り返し:手が空になるまで
木板の保管場所2に追加
「手がいっぱいになるまで取り」→「手が空になるまでしまいます」
これで往復回数をかなり削減できます。
応用スクリプトですが、ゲーム中盤であれば何度か作っている人もいると思います。
・更なる応用スクリプト
ボットがMk1、Mk2とアップグレードしていくと、「バックパック」の仕組みが出てきます。
プレイヤーは最初から「バックパック」を持っていますよね。
「手にいっぱい持つ」だけでなく、「バックパックにもしまう」ことで、更に多くのアイテムを持ち運びできるようになります。
これは、
持っているアイテムをしまう
回収する
と「繰り返し」をうまく使うことで実現できます。
バックパックを使う方法は、「斧」や「シャベル」などで特に有効です。
これら道具は手に1個しか持てませんからね。
バックパックを活用するスクリプトが組めると、「柱」や「木板」「丸太」など、普通の素材でも流用できるようになります。
この「バックパック」を使うスクリプトは、自分で考えてみてください。
「斧」や「シャベル」などから始めると、作りやすいかと思います。
■ 保管場所A ←→ 保管場所B を相互に移動するスクリプト
ボットの数が増えてくると、どこの保管場所からピックアップしているか分からなくなってきます。
作成したものも、どこの保管場所にしまっているのか分からなくなってきます。
そうすると、よく減る保管場所と余りぎみの保管場所が出てくるわけですね。
これは、「丸太」や「木板」「柱」などで顕著に表れます。
こっちの保管場所は満タンなのに、こっちの保管場所はいつも0。
だからいつまで経ってもクラフトが始まらない。みたいなことが起きます。
どのボットがよく使ってるの!?みたいな。
これは相互補給するスクリプトが組めれば解決できます。
繰り返し:永遠に!
もし:木板の保管場所1はいっぱいではありません
もし:木板の保管場所2はいっぱいです
木板の保管場所2に移動
木板の保管場所2から取る
木板の保管場所1に移動
木板の保管場所1に追加
でなければ
もし:木板の保管場所2はいっぱいではありません
木板の保管場所1に移動
木板の保管場所1から取る
木板の保管場所2に移動
木板の保管場所2に追加
「もし・・・でなければ」を使います。
「保管場所1がいっぱいではない」で「保管場所2がいっぱい」なら、
保管場所2から保管場所1に持ってきます。
「保管場所1がいっぱい」で「保管場所2がいっぱいではない」なら、
保管場所1から保管場所2に持ってきます。
「両方の保管場所がいっぱい」なら何もしません。
「両方の保管場所がいっぱいでなくても」何もしません。
このスクリプトを組んで放置しておくと、概ね両方の保管場所の素材量が安定します。
但し、両方の保管場所にそれぞれ別途補給されている前提です。
上のスクリプトの場合では、「木板」が作られていて、それぞれの保管場所に補給されている。
もちろん、保管場所から勝手に持っていて様々なクラフトで使用されています。
なお、上のスクリプトは1個ずつしか運んでいませんので、適宜まとめて運ぶ処理を入れてください。
このスクリプトは、両方の保管場所がいっぱいギリギリのラインですと、ボットが常に往復して持ってきたり戻したりを繰り返します。
ちょっと可愛そうですが、見なかったことにしましょう。
■ 終わりに
以上、「【Autonauts】保管場所を往復して補充するスクリプト例【オートノーツ】」でした。
楽しいゲームに出会うための参考としていただければ幸いです。
スポンサーリンク