制御文字で敵キャラの名前を表示することは出来ませんか?

トラッパー
記事: 21
登録日時: 2018年11月02日(金) 22:30

制御文字で敵キャラの名前を表示することは出来ませんか?

投稿記事by トラッパー » 2019年7月11日(木) 13:33

スキル発動時に「~はスライムに波動拳を放った!」といった風に敵キャラの名前を表示したいのですが制御文字の一覧を見てもエネミーの名前を呼び出すものが見当たりませんでした。
もしあるのでしたら教えて頂けないでしょうか?
制御文字では不可能な場合他に何か方法がありましたら是非ご教授ください。

アバター
剣崎 宗二
記事: 323
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

Re: 制御文字で敵キャラの名前を表示することは出来ませんか?

投稿記事by 剣崎 宗二 » 2019年7月11日(木) 13:59

要件に物理的な難があるかと考えます。

例えば敵3体に全体攻撃スキルでその制御文字を入れたとします。
表示されるのはどの敵になるのでしょうか…
トラッパー
記事: 21
登録日時: 2018年11月02日(金) 22:30

Re: 制御文字で敵キャラの名前を表示することは出来ませんか?

投稿記事by トラッパー » 2019年8月09日(金) 17:55

返信ありがとうございます。
敵は一体しか登場しない設定ですのでその辺は大丈夫です。
よろしくお願いします。


剣崎 宗二 さんが書きました:要件に物理的な難があるかと考えます。

例えば敵3体に全体攻撃スキルでその制御文字を入れたとします。
表示されるのはどの敵になるのでしょうか…
アバター
剣崎 宗二
記事: 323
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

Re: 制御文字で敵キャラの名前を表示することは出来ませんか?

投稿記事by 剣崎 宗二 » 2019年8月14日(水) 12:17

少し調べてみましたが、やるためにはやや大がかりな改造が必要になるかと。
…ここの表示を担当しているのはWindow_BattleLog.prototype.displayActionなのですが、そもそもアクションのtargetのデータを取得していないので、そこから改造を始める必要があるんですよねぇ…
sally
記事: 7
登録日時: 2019年8月06日(火) 05:11

Re: 制御文字で敵キャラの名前を表示することは出来ませんか?

投稿記事by sally » 2019年8月15日(木) 17:37

テストはしていないのですが、やなさんの発動前コモンプラグインと、
viewtopic.php?t=1687
のyamachanさんが記載されているスクリプトの併用で、擬似的に再現が可能と思います。

ただし、こちらの方法ですと、エネミーの行動では再現ができません。

やり方は
1. やなさんのプラグインにて発動者と対象者IDを代入する変数を指定
2. yamachanさんのスクリプトの最下部
$gameVariables.setValue(20,skill.mpCost); //変数20番にセット

$gameVariables.setValue(20,skill.name); //変数20番にセット
に変更し、セットする変数を希望のものに変更する(変数3にしたいなら、20を3に変える)。
4. コモンイベントを設定する
■ イベントコマンド[スクリプト]にて3のスクリプトを作成
■ 文章の表示を編集する
 内容: \v[発動者]は\v[対象者]に\v[スキル]を唱えた!
      →[発動者][対象者][スキル]それぞれ2にて指定した変数IDを入れる。
※この方法の場合、スキルの使用メッセージは空白にする必要があります。
5. 各スキルのメモ欄にて呼び出すコモンイベントを指定する。

また、末尾の「唱えた!」は「放った!」など数パターンあるかと思いますが、
その場合は末尾に応じてコモンイベントを作ればよいかと思います。
一応、末尾も属性などを利用して変数化できますが、
条件分岐を使うと重くなるかもしれないのであまりおすすめしません。

文章の表示で表示方法を暗くするに指定すると4行分暗くなったりと違和感が残るので、
バトルログに直接文章を入れられればいいのですが、
その方法まではわかりませんでした…。ごめんなさい。
sally
記事: 7
登録日時: 2019年8月06日(火) 05:11

Re: 制御文字で敵キャラの名前を表示することは出来ませんか?

投稿記事by sally » 2019年8月15日(木) 18:19

投稿後に気づきました。

上記ですと、発動者と対象者のIDは取得できても、
名前が指定できませんでした。

名前を入れるためには文章表示の前に

変数の操作:#発動者 = $gameParty.members()[$gameVariables.value(発動者)].name()
 ┗発動者には、発動者の変数IDを入れてください
  ※オペランドはスクリプトです。
変数の操作:#対象者-=1000
 ┗減算1000を行ってください。
変数の操作:#対象者 = $gameTroop.members()[$gameVariables.value(対象者)].originalName()
 ┗対象者には、対象者の変数IDを入れてください
  ※オペランドはスクリプトです。

の3つの変数の操作を行ってください。
これで名前が入るはずです。

“MV:質問” へ戻る