Skip to content

sevenspice/ItemSlot

Repository files navigation

概要

RPGツクールMZ用のプラグイン。

マップにアイテムスロットを表示する。

プロジェクトへのインポート方法

  1. プラグインをダウンロードする。以下のリンクをクリックすると最新のバイナリを落とせる。

  2. ダウンロードしたZIPファイルを展開する。

  3. ItemSlot.jsをRPGツクールMZのプロジェクトのプラグインフォルダにコピーする。

  4. エディタのプラグイン管理からItemSlotを読み込んでONにする。

仕様

  • 所有しているアイテムをマップに表示する。
  • マップに表示するアイテムはアイテムメニュー画面で設定することができる。
    • このプラグインで選択されたアイテムを使用する場合は、独自に使用効果をエディタ等で実装する必要がある。
      • データベースのみだとマップ画面でアイテムを使用することが仕様として想定されていないため。
      • 実装例はアイテム使用の実装例を参考にすること。

プラグインが実行されると同時に以下のキーのインプット判定が有効になる。競合に注意すること。

Input.keyMapper['49'] = '1';
Input.keyMapper['50'] = '2';
Input.keyMapper['51'] = '3';
Input.keyMapper['52'] = '4';
Input.keyMapper['53'] = '5';
Input.keyMapper['54'] = '6';
Input.keyMapper['55'] = '7';
Input.keyMapper['56'] = '8';
Input.keyMapper['57'] = '9';
  • 本プラグインを導入すると自動的にメニュー画面におけるアイテム画面での挙動がカスタマイズされる。
    • アイテム画面表示中に画面上部にスロットへアイテムを設定するためのボタンが表示される。
    • アイテム選択中にキーボードの[1~9]のいずれかのキーまたはボタンを押すと対応するスロットへアイテムをセットする。

プラグインでアイテムスロット生成時に以下の関数が有効になる。イベントエディタのスクリプトで呼び出せる。

window.$gameItemSlot.currentItem(key)
  • アイテムスロットで選択中のアイテム情報を取得する。
  • keyには取得したいアイテム情報のキーを指定する。使用例はアイテム使用の実装例にある。

アイテム使用の実装例

アイテムスロットでアイテムを使用するための実装例を以下に示す。

以下の様なコモンイベントを実装する。※ 考え方の1つです。

◆変数の操作:#0019 選択アイテム名称 = $gameItemSlot.currentItem('name')
◆変数の操作:#0020 選択アイテムID = $gameItemSlot.currentItem('id')
◆条件分岐:選択アイテムID = 1
  ◆ウェイト:10フレーム
  ◆アニメーションの表示:プレイヤー, 回復/単体1
  ◆SEの演奏:Heal1 (90, 100, 0)
  ◆HPの増減:パーティ全体, + 500
  ◆アイテムの増減:さくらんぼ - 1
  ◆プラグインコマンド:ItemSlot, 更新
  ◆
:それ以外のとき
  ◆条件分岐:選択アイテムID = 0
    ◆ウェイト:20フレーム
    ◆文章:なし, なし, ウィンドウ, 下
    :  :アイテムが選択されていません。
    ◆
  :それ以外のとき
    ◆ウェイト:10フレーム
    ◆文章:なし, なし, ウィンドウ, 下
    :  :スロットで選択されている
    :  :アイテムは「\V[19]」です。
    ◆ウェイト:20フレーム
    ◆文章:なし, なし, ウィンドウ, 下
    :  :スロットに設定されたアイテムの処理を
    :  :コモンイベントで実装してください。
    ◆
  :分岐終了
  ◆
:分岐終了

※ データベース側はアイテムを使用できる状態のみに設定しておく。

上述のようなコモンイベントを定義し何らかのタイミングで呼び出すことでアイテムスロットで選択中のアイテムを使用できる。

セーブデータロード時における対応

スロットに設定されたアイテムはセーブデータで保持されるため、アイテムスロットを再度生成することで以前の状態を再現できる。

アプリケーションを終了せずにニューゲームにおける対応

いわゆる、メニュー画面からのゲーム終了後のニューゲーム時における対応方法。

  • プラグインのアイテムスロットのインスタンスが既に生成されているため、ゲーム開始時にアイテムスロットを表示または更新することでスロットを表示できる。

動作例

プラグインが動作しているデモを以下のGIFで示す。

備考

注意点

プラグインのコマンド自体は連続で呼び出されても動作に影響がないように実装しているが、基本的には1シーンにつき1回呼び出すように実装することを推奨する。

  • イベントの並列実行でただ呼び出すだけだと連発で実行されるためセルフスイッチ等を駆使して一度のみ呼び出すように工夫すること。

開発

必要条件

アプリケーション バージョン
node.js >=8.11.4
npm >=5.6.0
gulp >=2.3.0
parcel >=1.12.4

Gulpを以下のコマンドでインストールする。

npm install -g gulp

Parcelを以下のコマンドでインストールする。

npm install -g parcel-bundler

スタートガイド

リポジトリをクローンする。

git clone https://github.com/sevenspice/ItemSlot.git

ディレクトリを移動する。

cd ItemSlot

設定ファイルを編集する。

copy mz.origin.json mz.json
  • mz.jsonのdestに、インポートしたいRPGツクールMZプロジェクトのプラグインフォルダを指定すること。

モジュールをインストールする。

npm install

コンパイルとプロジェクトへのコピーを実行する。

gulp

以上で、ゲームプロジェクトにプラグインがインポートされる。