■ 概  要
・ パラメータ・耐性・コメントの3ページで表示します。
・ 戦闘後にモンスターを自動で登録できます。
・ 図鑑に登録されないモンスターを設定できます。
・ 遭遇・撃破・解析などによって表示される項目を設定できます。
・ 閲覧できないモンスターの画像は、シルエットで表示します。
■ スクリーンショット

※ 画像は開発中のものです。
■ 更新履歴
■ スクリプト

旧バージョン : モンスター図鑑 #2 v1.1.1
■ 使用準備
■ コメント (スクリプト) [サンプル]
コメントの文章は、下記の定数にハッシュとして代入します。
module CAO::MB
  COMMENT = {}
end
このコメントの定義は、本体より下の別セクションで行ってください。
key  : モンスターのID
要素 : コメント配列

コメント部分は、1行を1要素とした配列で構成します。
 
1行の文字数は約16文字で、10行まで設定できます。
※ フォントの種類や文字サイズによって変動します。
※ 文字列は、"ではなく'を推奨しています。

IDの部分を 0 とすると、コメントが非表示・未設定の場合に表示される文となります。
この定義を省略すると何も表示されない白紙の状態となります。
module CAO::MB
  COMMENT = {
    0 => []
  }
end

次の制御文字にも対応しております。
\C[n] 文字の色を変更
\N[n] アクター名を表示
\V[n] 変数の値を表示
\X[n] 描画開始のx座標を変更
\S[n] 文字のサイズを変更 (10〜20)
■ コメント (テキスト) [サンプル]
コメントはテキストファイルでの設定も可能です。
設定ファイル MBComments.txt を Game.exe と同じフォルダに保存してください。
テストプレイを実行すると Data フォルダに
コメントのデータファイル MBComments.rvdata が作成されます。
コメントデータが作成されるとテキストファイルは不要です。
データファイルがあるとスクリプトでのコメント設定は無視されます。
スクリプトでの設定を使用したい場合は、コメントのデータファイルと
テキストファイルを削除してください。
文字数や行数の制限、制御文字の有無はスクリプトでの設定と同じです。
■ 有効度の詳細画像
属性・ステートアイコンの上に表示します。有効度を見分けるための画像です。
 
フォルダ名:Graphics/System
サ イ ズ:144 x 48
※ 文字は見えないのでオススメできません。見本のように色分けするのがいいかもです。
※ 黒の部分は、表示されません。
■ 図鑑背景画像
見本ファイル
フォルダ名:Graphics/System
サ イ ズ:544 x 416
※ ステータス背景を使用する場合は、ステータス部分を透過してください。
※ 濃い茶色は、枠部分です。ここまで透過する必要はありません。
■ ステータス背景画像
見本ファイル
フォルダ名:Graphics/System
サ イ ズ:896 x 272
※ 左からコメント、ステータス、属性・ステート画面となっています。
※ ページ毎に枠の模様を変更する場合は、図鑑背景画像の濃い茶色まで透過して下さい。
■ 設定項目
■ 閲覧可能にする情報
ENTRY_START = []
初期登録の設定です。ゲーム開始時にはこの設定が適用されています。
ENTRY_ENCOUNT = [:name, :graphics]
モンスターに遭遇した場合の設定です。
ENTRY_WINNER = [:name, :graphics, :status, :drop]
戦闘に勝利した場合の設定です。(倒したモンスターのみ)
ENTRY_ANALYZE = [:name, :graphics, :status, :drop, :params, :weak]
スキルやアイテムなどで解析を行った場合の設定です。
ENTRY_COMPLETE = [:name, :graphics, :status, :drop, :params, :weak, :come]
完成時の設定です。完成度を取得するときなどに使われます。

ENTRY_LIST = {}
上記以外に独自の設定を追加できます。

それぞれのタイミングで表示したいものを設定します。
  :name      => エネミーの名前
  :status    => 基本的なパラメータ
  :param     => 経験値とゴールド
  :drop      => ドロップアイテム
  :weak      => 属性とステート
  :come      => コメント
  :graphics  => 画像
■ 自動登録する
AUTO_ENTRY = true
戦闘後に自動で図鑑へ登録するかを設定できます。
■ 敗北しても登録する
AUTO_ENTRY_LOSE = false
敗北した場合に倒した数への加算と図鑑への登録を行うのかを設定できます。
■ 倒した敵のみ自動登録する
AUTO_ENTRY_DEFEATED = false
trueの場合は、敵を倒した場合のみ ENTRY_WINNER が有効になります。
falseの場合は、遭遇時に ENTRY_ENCOUNT が有効になり、
倒した場合は、さらに ENTRY_WINNER が有効になります。
■ ドロップ時にのみ表示
AUTO_ENTRY_DROP = false
trueの場合は、アイテムを入手した場合のみ図鑑のドロップアイテムが表示されます。
falseの場合は、:drop が設定された時点ですべて表示されます。
■ 表示するステート
USABLE_STATE = [2, 3, 4, 5, 6, 7, 8]
ステータス画面に表示するステートを指定します。
使用するステートのIDを入れてください。
※ 1つの項目で表示できる数は、10個までです。
■ 表示する属性
USABLE_ELEMENT = [9, 10, 11, 12, 13, 14, 15, 16]
ステータス画面に表示する属性を指定します。
使用する属性のIDを入れてください。
※ 1つの項目で表示できる数は、10個までです。
■ 属性を1文字で表示する
ONE_NAME_ELEMENT = false
true の場合は、属性名の最初の1文字のみをアイコンとして表示します。
false の場合は、ICON_ELEMENT で設定されたアイコンを表示します。
■ 属性のアイコン
ICON_ELEMENT = [104, 105, 106, 107, 108, 109, 110, 111]
USABLE_ELEMENT の順番で属性のアイコンを設定します。
この例だと、9番の属性のとき104番のアイコンを表示することになります。
■ ウィンドウの有無
BACK_WINDOW = false
ウィンドウをtrueで表示、falseで非表示にします。
背景画像を用意してください。
■ システム文字の有無
SYSTEM_TEXT = true
システム文字をtrueで表示、falseで非表示にします。
通常、ウィンドウも非表示にしてください。
背景画像に加え、ステータス背景もご用意ください。
■ 弱点画像をアイコンの後ろに表示
BACK_WEAKICON = false
trueならアイコンより後ろに、falseなら手前に表示します。
有効度画像を用意してください。
■ 各画像のファイル名
ファイル名を設定すると画像が表示されるようになります。
使用しない場合は、nilとしてください。
■ 使用方法
■ 初期登録
エネミーのメモ欄を使用して設定します。
@MB_ENTRY[START]    ENTRY_START の設定を適用します。
@MB_ENTRY[ENCOUNT]  ENTRY_ENCOUNT の設定を適用します。
@MB_ENTRY[WINNER]   ENTRY_WINNER の設定を適用します。
@MB_ENTRY[ANALYZE]  ENTRY_ANALYZE の設定を適用します。
@MB_ENTRY[COMPLETE] ENTRY_COMPLETE の設定を適用します。
@MB_ENTRY[:xxx]     ENTRY_LIST の設定を適用します。
ENTRY_LIST[:xxx] の :xxx を入れてください。
※ AUTO_ENTRY_DROP の設定が有効な場合、
COMPLETE のみ初めからアイテム名を表示します。
■ 初期閲覧不可
エネミーのメモ欄に@MB_SECRETと記述してください。
この設定を行うとモンスターの情報を得ても図鑑で閲覧できません。
■ 完全非表示
エネミーのメモ欄に@MB_DESELECTIONと記述してください。
この設定をしたモンスターは、図鑑に反映されません。
図鑑内では、完全に除外されます。
■ 解析スキル
アナライズステートを作成して、そのIDを ID_ANALYZE に設定してください。
このステートに掛かったエネミーを解析し、図鑑に登録します。
※ 戦闘テストでは、このスキルは使用できません。

▼ 動作確認に使用したステートの画像
 
■ スクリプト
$game_temp.next_scene = "mbook"
 モンスター図鑑を表示(マップ)

start_mbook
 モンスター図鑑を表示(メニュー)
 こちらのスクリプトは、Scene_Menu#update_command_selectionでお使いください。


エネミーの図鑑登録状況を変更するには、以下のスクリプトを使用します。
CAO::MB::Commands.set_entry_item(enemy_id, params)
 表示項目を設定し直します。
 params に文字列("START","ENCOUNT","WINNER","ANALYZE","COMPLETE")を入れると
 設定項目で設定したものを設定することができます。
 配列にした場合は、その情報に置き換えられます。
 シンボルの場合は、MB_ENTRY でのものが使用されます。
例)遭遇済み:CAO::MB::Commands.set_entry_item(3, "ENCOUNT")
  撃破済み:CAO::MB::Commands.set_entry_item(3, "WINNER")


CAO::MB::Commands.add_entry_item(enemy_id, params, ... )
 表示項目を追加します。
 params には、表示項目の識別子であるシンボルを入れてください。
 項目は複数でも構いません。
例)名前と画像を追加表示する
  CAO::MB::Commands.add_entry_item(4, :name, :graphics)


CAO::MB::Commands.remove_entry_item(enemy_id, params, ... )
 表示項目を削除します。
 params には、表示項目の識別子であるシンボルを入れてください。
 項目は複数でも構いません。

CAO::MB::Commands.set_drop_item(enemy_id, index, value)
 ドロップアイテムの表示状況を変更します。
 value には、真偽値を入れてください。true で表示されます。


図鑑の登録情報を変更するには、$game_mbookを使用します。
$game_mbook.reset
 図鑑を初期化する

$game_mbook.complete
 図鑑を完成させる

$game_mbook.complete?
 図鑑が完成しているか判定
 true だと完成、false だと未完成です。

$game_mbook.include?(enemy_id)
 除外されたエネミーかを判定します。
 true だと除外されていない、false だと除外されています。

$game_mbook.completion_count
 すべての項目を見ることのできるエネミーの数を取得します。
$game_mbook.entry_count(param, ... )
 指定された項目を見ることのできるエネミーの数を取得します。
 param には、こちらの識別子を使用してください。
 引数を省略した場合は、登録されている数を取得します。
$game_mbook.defeat_count(id, ... )
 引数を省略した場合、総撃破数を取得します。
 引数を設定した場合は、そのID内の総撃破数を取得します。
 ※ IDは、エネミーのものではなく図鑑でのものです。
$game_mbook.encount_count
 遭遇数を取得します。

$game_mbook.completion_rate
 図鑑の完成度を取得します。
 非表示のエネミーは未完成としてカウントされます。
$game_mbook.encount_rate
 遭遇率を取得します。


エネミーの登録情報(Game_MbookEnemy)は以下のように取得します。
$game_mbook.enemy(enemy_id)
 ID enemy_id のエネミーの情報を取得する。
$game_mbook.enemies(enemy_id, ...)
 複数のエネミーの情報を配列で取得する。
 引数を省略した場合は、すべての情報を取得します。

以下の機能は、上記2つのメソッドにつなげて使用します。
Game_MbookEnemy のメソッド
 reset:登録情報の初期化
 clear:登録情報のクリア
 complete?:すべての情報が表示されるか判定
 enable?(param)param の項目が表示されるか判定
 drop_item_max:ドロップアイテムの最大数を取得
Game_MbookEnemy のプロパティ
 entry:(配列) 表示項目
 secret:(真偽値) 非表示/表示
 unread:(真偽値) 未読/既読
 defeat:(数値) 撃破数
 encount:(真偽値) 遭遇済/未遭遇
 drop_items:(配列) ドロップアイテムの表示/非表示
※ これらは、内部の情報に直接アクセスします。扱いにはご注意ください。
特に配列の操作はバグを作りやすいです。自信のない方は極力使用しないでください。

以下は使用例です。
ID3のエネミーの登録情報を初期値に戻す。
 $game_mbook.enemy(3).reset
ID4、7、13のエネミーを非表示にする。
 $game_mbook.enemies(4,7,13).each {|e| e.secret = false }
すべてのエネミーを既読状態にする。
 $game_mbook.enemies.each {|e| e.unread = false }