/*:ja * @plugindesc (v.1.4) シンプルな農業/栽培システムを導入できます * * @author Galv - galvs-scripts.com * * @param Crop Charset Name * @text 作物のキャラセット名 * @desc 全ての作物は、この名前が付いたキャラクターセットを使用し、その後に画像ID選択番号が続きます。 * @default !Crops * * @param Watered Time * @text 水やり間隔 * @desc 作物が乾燥する前に水やりを続け、再び水やりができる秒 * @default 60 * * @param Watered Benefit * @text 水やり効果 * @desc 水をやると作物の成長時間から短縮される秒 * @default 5 * * @param Crop Priority * @text 成長プライオリティ変化 * @desc 成長中のプライオリティ。空,種子,発芽,半熟,完熟 * 0:通常キャラより下 / 1:通常キャラと同じ * @default 0,0,1,1,1 * * @param Crop Under or Front Fix * @text 上の作物を優先 * @desc 相互作用する際に、上の作物を優先。 * 上を優先:true / 下を優先:false * @default true * * @help * 翻訳:ムノクラ * https://fungamemake.com/ * https://twitter.com/munokura/ * * 元プラグイン: * https://galvs-scripts.com/2016/11/20/mv-simple-crops/ * * Galv's Simple Crops * --------------------------------------------------------------------------- * このプラグインを使用すると、 * プレーヤーはインベントリから種子を選択することで、 * 指定されたプロットで作物を植えて育てることができます。 * システムはシンプルであるため、単純な作物としてラベル付けされています。 * 設定が簡単なわけではありません。 * イベントを使用して、その動作を制御する必要があります。 * * * プロットを作成 * -------------- * イベントは、メモ欄にタグを追加することでプロットになり、 * プレイヤーがその中に種を植えて育てることができます。 * * 種を作成 * -------------- * メモ欄にタグを追加することにより、アイテムを種として設定できます。 * このタグには、植物の成長方法を制御する設定が含まれます(詳細は下記)。 * * 植物画像 * ----------------- * 植物のキャラクターセット(/img/characters/内)は、 * プラグイン設定の'Crop Charset Name'(作物のキャラセット名)と * 画像ID番号を使用して名前を付ける必要があります。 * * 例えば、プラグイン設定が'!Crops'の場合、 * キャラクターセットの名前は次のようにします。 * !Crops0.png、!Crops1.png、!Crops2.png など * (!Crops0.png左上のキャラクターは、 * 空のプロットまたは種を植えたばかりのプロットに使用されます) * * 植物のキャラクターセットは、特定の方法で設定する必要があります。 * キャラクターセット内の各キャラクターには2つの植物が含まれ、 * それぞれに水やり/非水やり用の3つの成長フレームがあります(合計6フレーム)。 * これらはキャラクターの向きを使用し、 * * 例 * 下 = 最初の植物の水抜き * 左 = 最初の植物の水やり * 右 = 2番の植物の水抜き * 上 = 2番の植物の水やり * * ただし、画像ID0のキャラクター1の最初の植物は、 * 空の区画/枯れたばかりの種子を含む区画に使用されます。 * これについての詳細については、デモを調べてください。 * * 成長 * ------- * 成長時間を選択すると、植物は成長中に4つのステージ/画像を経過します。 * 1.種が植えられると直ぐに、種が植えられたキャラクターセットを使用します。 * 2.20%の成長時間が経過した後、植物の最初のパターンを使用します * 3.60%の成長時間が経過した後、植物の2番目のパターンを使用します * 2.100%以上が経過すると、植物の3番目のパターンを使用します *   (そして収穫する準備ができています) * * 成長は、プレイ時間の秒数/変数に基づいて実行できます。 * 種を植えるために設定したイベントで指定できます(詳細は下記)。 * * 成長の各段階で収穫イベントのプライオリティが * 通常キャラより下か同じかを指定するプラグイン設定があります。 * 必要に応じて、各作物の種に異なる優先度を指定するメモタグも使用できます。 * * 時間ベースの成長で使用する場合は注意してください。 * 作物が通行不可になる優先順位に成長した場合、 * プレイヤーが身動き取れなくなる可能性があるためです。 * * 植物 * --------- * 植物自体は、収穫時に取得される種設定で指定するアイテムであり、 * プロットを再び空に戻します。 * --------------------------------------------------------------------------- * * --------------------------------------------------------------------------- * アイテムのメモタグ * --------------------------------------------------------------------------- * * * * 説明 * seed = 必須ワード。変更しないでください。 * imgId = 使用する収穫キャラクターセットを選択する番号。 * charId = キャラクターセット内のキャラクターのID(1から8) * pId = キャラクターのどの植物を使用するかを選択する植物ID(1-2) * growTime = 植物が収穫されるまでに経過した秒数 * itemId = 植物が収穫された時、得られるアイテム。 * 植物を収穫できない場合、これを0にします。 * * * * 説明 * 'Crop Priority'(成長プライオリティ)プラグイン設定を上書きします。 * 成長の各段階での収穫イベントの優先順位を制御します。 * 0:通常キャラより下 / 1:通常キャラと同じ * * 例 * * * --------------------------------------------------------------------------- * スクリプト情報 * --------------------------------------------------------------------------- * eId = イベントID * iId = アイテムID * vId = 変数ID * 並列処理以外のイベント内のeIdをthis._eventIdに置き換えて、 * 現在のイベントのIDを使用できます。 * * --------------------------------------------------------------------------- * 条件分岐のスクリプト * --------------------------------------------------------------------------- * * Galv.CROPS.isCrop(eId) // イベントにメモタグがあるかを確認 * * Galv.CROPS.hasSeed(eId) // イベントに種が植えられているかを確認 * * Galv.CROPS.isReady(eId) // イベントが収穫する準備ができているかを確認 * * Galv.CROPS.isSeed(iId) // アイテムにタグがあり、種かを確認 * * --------------------------------------------------------------------------- * スクリプトコール * --------------------------------------------------------------------------- * * Galv.CROPS.harvest(eId,v); * // イベントの作物を収穫します。 * // vは、変数idを参照して、作物から取得したアイテム名を、 * // \v[x]を含む文章で使用する文字列として格納します。 * * Galv.CROPS.remove(eId); * // イベントから植物を削除します。 * * Galv.CROPS.plant(eId,iId,vId); * // イベントに種子アイテムを植えます。 * // ゲーム時間の秒数に基づいて作物が成長するように、 * // vIdを空白にします。 * // vIdを使用すると、選択した変数IDに基づいて成長します。 * * 作物に水をやると、 * 一定の日数/時間(プラグインの設定に応じて)だけ成長時間が短縮されます。 * 水やりの利点を得るには、設定された時間の間隔を開ける必要があります。 * * Galv.CROPS.water(eId,vId); * // 作物イベントに水をやります。 * // 作物が水やりされた時間にゲーム時間を使用するには、 * // vIdを空白にします。 * // vIdを使用する場合、代わりに選択した変数IDの変数日数を使用します。 * * Galv.CROPS.waterAll(vId); * //上記と同じですが、現在のマップ上の全てのイベントに適用されます。 * * --------------------------------------------------------------------------- * 自律移動カスタムルートのスクリプトコール * --------------------------------------------------------------------------- * * this.updateCrop(); * // 自律移動の頻度を使用して、 * // プレーヤーから見える場所で作物の成長を制御します。 * // 多くのタイマーを同時に実行する必要がないために使用します。 * * --------------------------------------------------------------------------- * SCRIPT call * --------------------------------------------------------------------------- * * Galv.CROPS.update(); * // マップ上の全ての作物を更新 * * --------------------------------------------------------------------------- */