こんにちは。
こちらのトピックでまだ解決に至らず、横ヤリになってしまうと申し訳ないので別で立てさせていただきました。
http://tm.yumineko.com/viewtopic.php?f=23&t=3796
トリアコンタンさんの提示してくださったコードでゲージの非表示を確認できたので、ひょっとしたらあの方法も可能かもしれないと思い質問させていただきました。
このゲージの非表示をクラス(現在の職業)ごとに指定する方法はどうやればいいでしょうか?
現在製作中のゲームで魔法使いというクラスだけはMPのみを使い、TPは使わないという設定にしているのですが、TPゲージがあると不自然に感じていたところです。
また逆にウォーリアー系はMPを全く使わないのにMPゲージが表示されているのも不自然でたまりません。
ですので、アクターのクラスを条件に「表示、非表示」をさせたいと思っています。
簡単そうでいろいろ調べてみたのですが、クラスを指定する方法がわからず・・・
よろしければ教えてくださるとありがたいです。
追記:ちなみにWindow_Base.prototype.drawActorTpより下に、
if ($gameActors.actor(1).isClass($dataClasses[2])) {
を記述しましたがうまくいきませんでした。
ゲージの非表示を条件で分岐する。
Re: ゲージの非表示を条件で分岐する。
こんにちは。
例)
$gameActors.actor(x)._classId :アクターID x のクラスID
$gameParty.members()[n]._classId:n番目のパーティーメンバーのクラスID(先頭が0番)
なお、drawActorTp関数内の場合は、引数のactorがアクターのゲームデータを参照しているので、以下を追加するといいと思います。
これで、クラスIDが 2 以外はTPゲージが表示されません。
アクターのクラスIDは「_classId」で取得できます。エコー さんが書きました:追記:ちなみにWindow_Base.prototype.drawActorTpより下に、
if ($gameActors.actor(1).isClass($dataClasses[2])) {
を記述しましたがうまくいきませんでした。
例)
$gameActors.actor(x)._classId :アクターID x のクラスID
$gameParty.members()[n]._classId:n番目のパーティーメンバーのクラスID(先頭が0番)
なお、drawActorTp関数内の場合は、引数のactorがアクターのゲームデータを参照しているので、以下を追加するといいと思います。
コード: 全て選択
Window_Base.prototype.drawActorTp = function(actor, x, y, width) {
if (actor._classId !== 2) return;//追加
width = width || 96;
var color1 = this.tpGaugeColor1();
var color2 = this.tpGaugeColor2();
this.drawGauge(x, y, width, actor.tpRate(), color1, color2);
this.changeTextColor(this.systemColor());
this.drawText(TextManager.tpA, x, y, 44);
this.changeTextColor(this.tpColor(actor));
this.drawText(actor.tp, x + width - 64, y, 64, 'right');
};
---------------------------------------------------------------------------------------------------
プラグイン置き場(GitHub)
https://github.com/futokoro/RPGMaker/bl ... /README.md
検討中の内容は上記リンク先の「対応するかもしれないプラグインのメモ」を参照してください。
プラグイン置き場(GitHub)
https://github.com/futokoro/RPGMaker/bl ... /README.md
検討中の内容は上記リンク先の「対応するかもしれないプラグインのメモ」を参照してください。
Re: ゲージの非表示を条件で分岐する。
>>フトコロ様
ありがとうございます!無事に動作を確認しました。
こんな簡単なことだとは思いませんでした。
非常に悔しいです。
コード: 全て選択
Window_Base.prototype.drawActorTp = function(actor, x, y, width) {
if (actor._classId !== 2) return;//追加
width = width || 96;
var color1 = this.tpGaugeColor1();
var color2 = this.tpGaugeColor2();
this.drawGauge(x, y, width, actor.tpRate(), color1, color2);
this.changeTextColor(this.systemColor());
this.drawText(TextManager.tpA, x, y, 44);
this.changeTextColor(this.tpColor(actor));
this.drawText(actor.tp, x + width - 64, y, 64, 'right');
};
こんな簡単なことだとは思いませんでした。
非常に悔しいです。