キャラクターごとに個別にアイテムを所持します – Mano_ItemPocket.js

タイトル
キャラクターごとに個別にアイテムを所持します
作者名
ヘルプ
アクターごとにアイテムを所持させることができます。
スイッチを設定するパラメータは、無指定の場合false(OFF)として扱います。
<MaxAmount:2>
アイテム側に上記の記述をすることで、所持数を制限できます。
この場合は、ポケットにその種類のアイテムを入れる数を2個までに制限できます。
<Weight:8>
アイテムに重さを設定できます。
設定しない場合、デフォルトの重さが指定されます。


■アイテムを持っているかのチェックについて
持っているかどうかのチェックは、ポケットに対しては行いません。
イベントコマンドでチェックしたい場合、checkPocketを実行することで

・スクリプトで調べる
条件分岐(スクリプト)に以下の記述を行うことでもチェックできます。
$gameParty.isInPocket(アイテムの番号);
特定のアクターが持っているかはGame_ActorにあるisInPocket()関数を使います。
呼びだし方は以下の通りです。
actor.isInPocket(アイテムの番号)
$gameActor.actor(アクターの番号).isInPocket(アイテムの番号)

■プラグインコマンドについて
条件分岐でポケットにあるアイテムをチェック対象にする場合、
以下のプラグインコマンドのどれかを実行します。
設定を変更した場合、次の条件分岐1回だけ有効になります。
◆Pocket PartyInclude
パーティにいるキャラのポケットを調べます。
◆Pocket AllInclude
全てのアクターの所持アイテムをチェックします。
DS版DQ4には世界樹の葉を大量に所持できてしまうバグがあるのですが、
そういった現象への対策です。

◆Pocket SaveTemporary
パーティにいるアクターが所持しているアイテムを一時的に通常の所持アイテムへ戻します。
これと同時に、所持アイテムの状態を別の場所へ記録します。
このデータはセーブデータの一部として、$gamePartyに記録されます。
既に記録している場合、例外を投げます。(エラーで落ちます)

◆Pocket LoadTemporary
SaveTemporaryで解放したデータを元に戻します。
同時に、一時データを削除します。
データがない状態でこの関数を呼ぶと、エラーで落ちます。

■メモについて
メモ欄で、アクターの初期アイテムが設定できます。
以下のような内容で書き込むと、
ID1のアイテムを4個・ID2のアイテムを3個持った状態で加入します。
<PocketItem[1]:4>
<PocketItem[2]:3>

■競合について
Game_Battler.consumeItemを再定義しているプラグインとは競合する可能性があります。
これは、アイテムを減らす処理において
Game_Battler.consumeItemを使わないようにしているからです。
対応パッチは作成しますので、問題があった際には積極的に報告お願いします。
Twitterの方が反応速いです。

■メソッドの命名法則
以下の通りです。
execute()
を実際に実行する関数。
必要なWindowを開く部分はの方にあります。
start
end
Scene_ItemPocketにおいて、
特定の処理を開始する場合と終了する場合のペアです。
startでウィンドウを開き、endで閉じています。

※ヘルプの書き途中です。
ver 2.0.0(2018/03/22)
タッチ操作周辺の不具合を修正
本体のクラス構文を旧来の書き方からES5以降の物へ変更
多数のエンバグ発生の可能性あり
ver 2.1.0 (2018/03/28)
ヘルプ表示を増やし、UIを改善
プラグインパラメータの一部を破壊的変更(互換切り)


ver 1.4.0
タッチ操作向けのボタンを追加。

ver 1.3.0
MA_ItemPocket.addItem()にバグが発覚したので修正。
アイテムを渡す機能を実装。
ver 1.2.0(2017/09.13) アイテムの重さ機能を実装
ver 1.1.0(2017/09/05) マイセット機能を実装
ver 1.0.0(2017/08/26) イベントコマンド「条件分岐」で、アイテム所持をチェックできるようにした。
DQ風所持モードの拡張プラグインを追加。
ver 0.7.5(2017/06/28) アイテムの出し入れで個数指定を可能にし、入れられない時はグレーアウト。
ver 0.7.0(2017/06/21) バトル中にアイテムを使えるようになった
ver 0.6.3(2017/06/21) バトルに少しだけ対応。
ver 0.6.0(2017/06/20) アイテムを持たせることができるようになった。
ver 0.5.0(2017/06/20) 公開
パラメータ
param menuCommand
text コマンド名
desc メニュー画面におけるアイテム所持のコマンド名
type string
default アイテム所持

param menuCommandPosition
text コマンドの位置
desc アイテム所持コマンドの位置を調整します
type select
option オリジナルコマンドの位置
value 0
option 「アイテム」の上
value 1
default 0

param usingWeight
text 「重さ機能」の有効化
desc アイテムの重さ機能を使うかどうかを定義します
※ゲーム実行中は変更できません
type boolean
on 使う
off 使わない
default false

param defaultWeight
text 重さ初期値
desc アイテムのデフォルトの重さ
メモに何も書かなかった場合、ここに指定した数値が代入されます。
type number
default 1
parent usingWeight

param weightText
desc 重さの表示形式(個数指定時)
default 重さ
parent usingWeight

param command2
type struct<CommandSetting>[]
default []

param command
text コマンドリスト
desc ゲーム中で有効なコマンドの一覧です。
ここで並び順を調整できます。
default ["use","pass","swap","remove","add","myset"]
type select[]
option use
option pass
option add
option swap
option remove
option myset


param use
type struct<CommandSetting>
desc アイテムを使うコマンド名
default {"name":"使う","description":""}
parent command

param swap
type struct<CommandSetting>
desc アイテムを入れ替えるコマンド名
default {"name":"入れ替え","description":""}
parent command

param remove
type struct<CommandSetting>
desc アイテムをしまうコマンド名
default {"name":"しまう","description":""}
parent command

param add
type struct<CommandSetting>
desc アイテムを入れるコマンド名
default {"name":"入れる","description":""}
parent command

param pass
type struct<CommandSetting>
desc アイテムを渡すコマンド名
default {"name":"わたす","description":""}
parent command


param myset
type struct<CommandSetting>
desc マイセットのコマンド名
default {"name":"マイセット","description":"アイテム所持の組み合わせを保存できます"}
parent command

param sort
type struct<CommandSetting>
desc アイテムのソートのコマンド名
default {"name":"整列","description":""}
parent command

param numberSelectHelp
type string
desc 個数を選択するときのヘルプ文章を設定します
default 左右キーで個数を選択
param sound
text 効果音

param mysetSaveSound
desc マイセットのセーブに使われる効果音
default Save
require 1
dir audio/se/
type file
parent sound

param mysetLoadSound
desc マイセットのセーブに使われる効果音
default Equip1
require 1
dir audio/se/
type file
parent sound

param InsertForPocket
type switch
desc 指定したスイッチがONの時、
新しく手に入れたアイテムを先頭のアクターのポケットに入れます。

param pocketKeepByremoveActor
desc 指定したスイッチがONの時、
パーティからの離脱の時アイテムを持たせたままにします。
type switch
default 0


param pocket
text ポケットの設定

param maxAmount
type number
desc 1種類当たりの入れることができる量を定義します。
default 99
parent pocket

param pocketSize
type number
desc ポケットに入れることができるアイテムの種類を設定します。
default 6
parent pocket

param canDuplicate
type boolean
同じ種類のアイテムをポケットに入れることができるかを定義します。
default false

param MaxColor
type number
desc 最大個数を所持している際の表示色を設定します。
システムのカラー番号で指定されます。
default 18
parent pocket

param NotEnoughColor
type number
desc マイセット実行時に、アイテムが足りなかった時の色を設定します
未実装
default 4


param usingMyset
type boolean
desc マイセット機能を使うかどうかを定義します
on 使う
off 使わない
default true
parent myset

param mysetSize
type number
desc マイセットの保存数を定義します
default 8
parent myset

param mysetFormat
type string
desc マイセットのデフォルト名です
default マイセット【%1】
parent myset

param saveMyset
type string
desc マイセットを保存する時のコマンドです
default マイセットの保存
parent myset

param saveMysetHelp
type string
desc マイセットを保存する時のヘルプ表示
default 保存先の選択
parent myset

param loadMyset
type string
desc マイセットを読み込む時のコマンドです。
default マイセットの読み込み
parent myset

param loadMysetHelp
type string
desc マイセットを保存する時のヘルプ表示
default 読み込むデータの選択
parent myset

param renameMyset
type string
desc マイセットの登録名を変更する時のコマンド名です
default マイセットの名前変更
parent myset

param developMode
type boolean
desc 開発モードフラグです。ダミーデータなどの設定が入っています。
default false

ライセンス表記
Copyright (c) 2017-2017 Sigureya
This software is released under the MIT License.
http://opensource.org/licenses/mit-license.php
item.amount = Math.min( this.numItemsForParty(i),item.amount );

紹介ページ https://github.com/Sigureya/RPGmakerMV/blob/master/Mano_ItemPocket.js