「現在の経験値」の表示について

返信する
Mr.あきちゃん
記事: 68
登録日時: 2017年7月23日(日) 02:51

「現在の経験値」の表示について

投稿記事 by Mr.あきちゃん »

皆様にはいつもお世話になっております。

今とあるプラグイン(お金でレベルアップ)で起きている不具合を調べたくて
ステータス画面の「現在の経験値」というのがどこで表示させているのか
探しているのですが、”現在”とかの文字で検索しても、全く見つからないのです。
TextManagerとかいうのが怪しい気がするのですが、いずれにせよどこなのかがわかりません。

ステータス画面の「現在の経験値」というのは、どこで表示させているのでしょうか?
よろしくご教示くださいませ。
アバター
フトコロ
記事: 1029
登録日時: 2017年2月06日(月) 21:32

Re: 「現在の経験値」の表示について

投稿記事 by フトコロ »

こんにちは。
Mr.あきちゃん さんが書きました:ステータス画面の「現在の経験値」というのがどこで表示させているのか
探しているのですが、”現在”とかの文字で検索しても、全く見つからないのです。
「現在の経験値」という文字列は、「データベース>用語>メッセージ」で設定している内容なので
コアスクリプト内を探しても、その文字列を見つけることはできません。

データベースで設定した内容は、dataフォルダ内のjsonファイルに記録されます。
メッセージ系の内容は、System.jsonです。

System.jsonを"現在"で検索すると、"messages":{...,"expTotal":"現在の%1",...} がヒットしますのでこれがそうです。
※"経験値"の部分は、別の用語で登録されています。

JSONファイルのデータは $data**** という形でゲーム内で参照できます。
System.jsonなら、$dataSystemです。
※rpg_manager.js の DataManager._databaseFilesで定義しています

なので、"現在の%1"は、$dataSystem.message.expTotal で参照できます。
Mr.あきちゃん さんが書きました:TextManagerとかいうのが怪しい気がするのですが、いずれにせよどこなのかがわかりません。
ご推察の通りに、MVではメッセージ系の文字列表示にはTextManagerで定義しています。

コード: 全て選択

Object.defineProperties(TextManager, {
    略
    expTotal        : TextManager.getter('message', 'expTotal'),
    略
}
上のように定義されているため、
TextManager.expTotal でそのままデータベースで設定した文字列"現在の%1"を参照できます。
Mr.あきちゃん さんが書きました:ステータス画面の「現在の経験値」というのは、どこで表示させているのでしょうか?
実際に画面に表示させている部分は、rpg_window.jsで定義しています。
ステータス画面のウィンドウは Window_Status というクラスです。
このクラスのメソッドでdrawExpInfoがありますが、これが経験値の部分を表示させています。
中身を見るとわかりますが、上のTextManager.expTotalが使われています。


以上、こんな感じです。
---------------------------------------------------------------------------------------------------
プラグイン置き場(GitHub)
https://github.com/futokoro/RPGMaker/bl ... /README.md

検討中の内容は上記リンク先の「対応するかもしれないプラグインのメモ」を参照してください。
Mr.あきちゃん
記事: 68
登録日時: 2017年7月23日(日) 02:51

Re: 「現在の経験値」の表示について

投稿記事 by Mr.あきちゃん »

フトコロ様

大変詳しいご説明、誠にありがとうございました。
なるほど、TextManagerはデータの方でしたか…
ついついスクリプトの方かと、そちらばかりを見ておりました。

お陰様で不具合の原因はプラグインではなく、
私のチョンボだったということがわかりました…^^;

今後ともよろしくお願いいたします。
返信する

“MV:質問”に戻る