ページ 11

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

Posted: 2018年7月29日(日) 02:10
by Mr.あきちゃん
皆様にはいつもお世話になっております。

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

ステータス画面の「現在の経験値」というのは、どこで表示させているのでしょうか?
よろしくご教示くださいませ。

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

Posted: 2018年7月29日(日) 11:51
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が使われています。


以上、こんな感じです。

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

Posted: 2018年8月01日(水) 02:31
by Mr.あきちゃん
フトコロ様

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

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

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