食料の収集を制御するための方法を記述します。
判定内容 | スクリプト | 備考 |
苺を発見したかどうか |
(resource-found food) | 羊や鹿を発見してもこの条件は満たさない |
自分の羊がいるかどうか | (unit-type-count 594 >= 1) | 生きている羊(ユニットID=594)の数をカウントする。食べている羊はカウントされない |
鹿がいるかどうか | (or (unit-type-count 122 >= 1) (unit-type-count 216 >= 1) ) |
狩をする人(男)、狩をする人(女)が1人以上かどうかを判定する。狩をする前に鹿が近くにいるかどうかは判定できない。 |
苺と羊が遠い | (sheep-and-forage-too-far) | 苺と羊が粉ひき所(町の中心)8タイルいないにない場合 |
食料と粉ひき所の最小距離 (町の中心含む) |
(dropsite-min-distance food <演算子> <距離>) | 食料を発見していない場合は-1になる。 |
イノシシ | AIはイノシシは狩れない。「sn-minimum-boar-hunt-group-size」の設定値は無効である |
■町の人が食料(鹿・イノシシ以外)を認識する距離 「食料を収集する人」に割り当てられた町の人は、粉ひき所・町の中心から「sn-maximum-food-drop-distance」の距離にある食料を収集しにいく。 町の人は、町の中心・粉ひき所に近い資源から優先的して食料を収集する。 ■畑の場合 町の人は「sn-maximum-food-drop-distance」の範囲から1マスでもはみ出ている畑を認識しない。たとえば図2では町の中心から最も遠い畑は範囲から1マスはみ出ているので、町の人に認識されない。 畑の数が増えてくると町の中心から遠くに畑が作成されることもあるので、「sn-maximum-food-drop-distance」は大きめの値にする必要がある。 |
図1. sn-maximum-food-drop-distance=10の設定 図2. sn-maximum-food-drop-distance=8の設定 |
■町の人が鹿・イノシシを認識する距離 「食料を収集する人」に割り当てられた町の人は、粉ひき所・町の中心から「sn-maximum-hunt-drop-distance」の距離にある鹿・イノシシを収集しにいく。 ※AIはイノシシは狩れない ■強制的に鹿を狩る 「食料を収集する人」は町の中心・粉ひき所から近い資源を優先的に収集するため、 普通は鹿は最後に狩られる。 「sn-maximum-food-drop-distance」に0を設定することによって鹿以外の食料を認識しないようにさせ、強制的に鹿を狩ることができる。 ただし、この方法は鹿がいない場合は食料の収集がとまるので注意が必要である。 |
図3. sn-maximum-hunt-drop-distance=10の設定 |
■漁船が魚を認識する距離 漁船は、港から「sn-maximum-fish-boat-drop-distance」の距離にある魚を収集しにいく。 漁船は港に近い魚から漁をするので、大きめの値を設定しておいて問題はない。 ※町の人の「漁をする人」の小魚を認識する距離とは関係ない。 |
図4. sn-maximum-fish-boat-drop-distance=7の設定 |
判定内容 | スクリプト | 備考 |
森を発見したかどうか |
(resource-found wood) | 立ち木を発見してもこの条件は真にならない |
木と伐採所・町の中心の最小距離 | (dropsite-min-distance wood <演算子> <距離>) | 立ち木も含まれる。木を発見していない場合は-1になる。 |
■町の人が木を認識する距離 生産されたばかりの町の人や他の作業をしていた町の人が「木を切る人」に割り当てられた場合、伐採所・町の中心から「sn-maximum-wood-drop-distance」の距離にある木を切りにいく。 ただし、「木を切る人」が1つの木を切り終わったあとに近くの別の木を切る場合は、その木が「sn-maximum-wood-drop-distance」の範囲内にあるかどうかは判定されない。 ■木を認識する距離を小さくする 図1の場合、新しく「木を切る人」になった町の人は2つの伐採所のどちらかの木を切りにいくことになる。 「sn-maximum-wood-drop-distance」を2に設定した図2の場合、新しく「木を切る人」になった町の人は左側の森のみ認識するので、左側の森の木をきりにいく。 このように「sn-maximum-wood-drop-distance」の設定値を小さくすることでより近い森の木を切らせることができるが、森が遠いのに値を小さくしすぎると木を全く認識しなくなるので注意が必要である。 ※森と伐採所の距離は「dropsite-min-distance」条件を使用して判定する。 |
図5. sn-maximum-wood-drop-distance=5の設定 図6. sn-maximum-wood-drop-distance=2の設定 |
判定内容 | スクリプト | 備考 |
金を発見したかどうか | (resource-found gold) | |
石を発見したかどうか |
(resource-found stone) | |
金と採掘所・町の中心の最小距離 | (dropsite-min-distance gold<演算子> <距離>) | 金を発見していない場合は-1になる。 他の島にある場合は255になる。 |
石と採掘所・町の中心の最小距離 | (dropsite-min-distance stone<演算子> <距離>) | 石を発見していない場合は-1になる。 他の島にある場合は255になる。 |
■町の人が金・石を認識する距離 「金を収集する人」に割り当てられた町の人は、採掘所・町の中心から「sn-maximum-gold-drop-distance」の距離にある金を収集しにいく。 「石を収集する人」に割り当てられた町の人は、採掘所・町の中心から「sn-maximum-stone-drop-distance」の距離にある石を収集しにいく。 |
図7. sn-maximum-gold-drop-distance=2, sn-maximum-stone-drop-distance=7 の設定 |