【解決済】バトラー上に表示されるステートアイコンを一時的に非表示にしたいです。

youseityan
記事: 94
登録日時: 2018年8月19日(日) 05:35

【解決済】バトラー上に表示されるステートアイコンを一時的に非表示にしたいです。

投稿記事by youseityan » 2019年10月13日(日) 03:16

皆様いつもお世話になっております。
件名の通りなのですが
戦闘時にエネミーバトラー、(プラグインを使用していると)アクターバトラー
の、上に表示されるステートアイコンを一時的に非表示にする事は可能でしょうか?
最後に編集したユーザー youseityan on 2019年10月14日(月) 11:42 [ 編集 1 回目 ]

ジャングル
記事: 108
登録日時: 2018年12月30日(日) 14:51
お住まい: 自動販売機

Re: バトラー上に表示されるステートアイコンを一時的に非表示にしたいです。

投稿記事by ジャングル » 2019年10月13日(日) 06:14

エネミースプライトを取得して、そのステートアイコンスプライトを非表示にすれば可能です

①エネミースプライトの取得

コード: 全て選択

var enemy_sprite = SceneManager._scene._spriteset._enemySprites[index];

②ステートアイコンスプライトの非表示

コード: 全て選択

enemy_sprite._stateIconSprite.visible = false;


※ラッパー関数を用意すればエネミースプライトの取得が楽です

コード: 全て選択

// エネミーのスプライトの取得
var getEnemySprite = function(index) {
  return SceneManager._scene._spriteset._enemySprites[index];
};
// パーティメンバーのスプライトの取得
var getActorSprite = function(index) {
  return SceneManager._scene._spriteset._actorSprites[index];
};

※安全性を考えるとこちらの方が良いです(記述が長くなりますが)

コード: 全て選択

var getActorSprite = function(index) {
  if ($gameParty.inBattle()) {
    return SceneManager._scene._spriteset._actorSprites[index];
  }
};
// もしくはこう
var getActorSprite = function(index) {
  var scene = SceneManager._scene;
  if (scene.constructor === Scene_Battle) {
    return scene._spriteset._actorSprites[index];
  }
};

※この関数をScene_Battleに所持させれば、if文のシーンチェックは要りません
Scene_Battle.prototype.getActorSprite = getActorSprite;
_actorSpritesなどが出来ているかどうかもチェックした方がより安全です
indexが範囲外だとundefinedが返ります


※オブジェクトがどんなプロパティやメソッドを持っているかは、F8キーを押してコンソールを表示すると分かります
戦闘中ならSceneManager._sceneにScene_Battleのインスタンスが入ります
コンソールにそれを書いてエンターを押すと所持するプロパティ一覧が表示されます


・上記の①②をコンソールに書いてエンターを押すとエネミーに表示されているステートアイコンが消えます(indexは数字に置換え)
・関数をプラグイン化してjs/plugins内に入れれば戦闘中の好きなタイミングで非表示/表示ができます(スプライトが出来ていれば)
youseityan
記事: 94
登録日時: 2018年8月19日(日) 05:35

Re: バトラー上に表示されるステートアイコンを一時的に非表示にしたいです。

投稿記事by youseityan » 2019年10月14日(月) 11:42

ジャングル様、御親切にありがとうございます。
教えていただいた方法で上手くいきました!
またご質問させていただくことがあると思いますが
ご縁がございましたら宜しくお願い致します :D
ジャングル
記事: 108
登録日時: 2018年12月30日(日) 14:51
お住まい: 自動販売機

Re: 【解決済】バトラー上に表示されるステートアイコンを一時的に非表示にしたいです。

投稿記事by ジャングル » 2019年10月14日(月) 18:48

良かったです
こちらこそ宜しくお願い致します
たまに質問します

“MV:質問” へ戻る