RPGツクールvxace スキルを使用された対象者別にメッセージを表示する方法

kyoko
記事: 62
登録日時: 2019年9月10日(火) 12:03
お住まい: 東京

RPGツクールvxace スキルを使用された対象者別にメッセージを表示する方法

投稿記事by kyoko » 2019年10月24日(木) 15:47

例えば、プレイヤーが敵に対して
「パンチ」を使用したとします。

すると

・●●は敵1にパンチした!
・80のダメージを与えた!

など、表示されると思います。

その後で

-----------------------------------------------------
(敵1の場合)

敵1
なかなか、やるな。
だがまだ、拳が軽い!

-----------------------------------------------------
(敵2の場合)

敵2
ふっ
この程度か?

-----------------------------------------------------


と、スキルを使った対象者名も表記させながら
対象者によって異なるメッセージを

表示したいと思います。

メッセージだけであれば
コモンイベントの「文章の表示」で可能ですが

対象者を判別するとなると
どうすればいいか、難しい所です。


分かる方、いらっしゃいましたら
どうぞ、よろしくお願い致します。

faida
記事: 272
登録日時: 2015年12月17日(木) 16:44

Re: RPGツクールvxace スキルを使用された対象者別にメッセージを表示する方法

投稿記事by faida » 2019年10月25日(金) 19:00

こんばんは。

星潟様「行動者・対象者ID・使用スキル/アイテムID変数格納」を使用すると、
指定した変数に敵のグループ内の順番を取得できます。
デフォルトでは変数52番が指定されているので、それを前提に話を進めます。

これを少し加工すると、指定した敵の名前を取得できます。
イベントコマンドの「変数の操作」には「スクリプト」があり、
これを使うことで任意のデータを変数に代入することができます。

コード: 全て選択

変数の操作:おなまえ = $game_troop.members[$game_variables[52] * -1].name
この「$game_variables[52]」というのが「変数52番」なので、
対象者IDを格納する変数番号を変える場合はここも変更してください。
あとは\V[n](変数を表示する制御文字)で「おなまえ」を指定すれば、
「おなまえ」の中身、すなわち「対象の敵の名前」を表示することができます。

これをコモンイベントで行えばお望みの結果が得られるのではないでしょうか。
------------------------------------------------------------------
自作の(改造でない)スクリプト、プラグイン素材に
関しては、リードミーもしくは作中に
「faida」と記名していただければ
利用可能です。
kyoko
記事: 62
登録日時: 2019年9月10日(火) 12:03
お住まい: 東京

Re: RPGツクールvxace スキルを使用された対象者別にメッセージを表示する方法

投稿記事by kyoko » 2019年10月25日(金) 23:42

どうも、ありがとうございました。
とても助かります。

星潟様「行動者・対象者ID・使用スキル/アイテムID変数格納」を
スクリプトエディタに挿入しました。

その後で

「おなまえ = $game_troop.members[$game_variables[52] * -1].name」

を、任意のイベントを作り、トリガーを「並列処理」にし
任意の変数に「変数の操作」→「スクリプト」で

おなまえ = $game_troop.members[$game_variables[52] * -1].name

あるいは

$game_troop.members[$game_variables[52] * -1].name

と、やってみたいのですが
添付画像のようなエラーが出てしまいました。

正しい方法をご存知でしたら
お願いします。
添付ファイル
エラーms.png
エラーms.png (26.22 KiB) 閲覧数: 6048 回
faida
記事: 272
登録日時: 2015年12月17日(木) 16:44

Re: RPGツクールvxace スキルを使用された対象者別にメッセージを表示する方法

投稿記事by faida » 2019年10月26日(土) 09:14

①添付画像のエラーは「[]が閉じられていない」というエラーです。
もう一度書いた文を読み返してください。
(ちなみに「おなまえ」というのは「文章の表示で\V[n]を使用して表示する変数」のため、
スクリプト文には要りません。
その後、「文章の表示」を使って、\V[n]で名前が表示できます、というだけで、
文章の表示自体はセルフサービスとなっています。)

②スキルの使用効果に「コモンイベント」というのがあります。
バトル中はコモンイベントの並列処理が動かないはずなので、
表示したいスキルにコモンイベントを付加してください。
------------------------------------------------------------------
自作の(改造でない)スクリプト、プラグイン素材に
関しては、リードミーもしくは作中に
「faida」と記名していただければ
利用可能です。
kyoko
記事: 62
登録日時: 2019年9月10日(火) 12:03
お住まい: 東京

Re: RPGツクールvxace スキルを使用された対象者別にメッセージを表示する方法

投稿記事by kyoko » 2019年10月26日(土) 11:43

ありがとうございます。

マップ(テストプレー用の)上の任意の場所にイベント(トリガー「並列処理」)を作り

任意の変数に「変数の操作」→「スクリプト」で書き込みました。

まず、ここまでは、あってますでしょうか。

そして、「スクリプト」に

[$game_troop.members[$game_variables[52] * -1].name

と打ち込んでみたのですが、添付したエラーが表示されてしまいました。

スクリプトやプログラムに明るく無いため、正しい理解が難しいのですが

「おなまえ」の部分に、何か入れて打たないといけないという事でしょうか。


星潟様の「行動者・対象者ID・使用スキル/アイテムID変数格納」で
対象者のIDを持たせ、上記スクリプトを打ち込むと
「文章を表示」内で、\V[52]と打てば、それが対象者名に変換される。


こう解釈しているのですが、正しいか不安です。
「おなまえ」の部分が、よく分かっていない感もあり。
添付ファイル
エラーms2.png
エラーms2.png (24.66 KiB) 閲覧数: 5996 回
faida
記事: 272
登録日時: 2015年12月17日(木) 16:44

Re: RPGツクールvxace スキルを使用された対象者別にメッセージを表示する方法

投稿記事by faida » 2019年10月26日(土) 15:05

前提が違う気がしましたので再度確認します。

①まず「スキルを使用する」のは「バトル画面」ですよね?
であれば、「マップ画面の並列処理のイベント」も動きません。
バトル画面で動くイベントは、基本的には
 ①バトルイベント ②スキル/アイテムのコモンイベント
のどちらかしかありません。

なので、「メッセージを表示したいスキル」の「使用効果」で
「コモンイベント」があるので、そこで先ほどの変数代入を行ってください。
(試してて気づきましたが、「変数の代入」の「スクリプト」って文字制限あったんですね。
気づかなくて申し訳ございません。)

逆に「マップ画面」でスキルを使用するのであれば、
そもそも「対象者」とは何を指すのでしょうか。
そして、「行動者・対象者ID・使用スキル/アイテムID変数格納」も使用できません。
なぜならこのスクリプトは「アイテム画面」「スキル画面」「バトル画面」で効果を発揮するからです。


②出たエラーはこちらの提示した手法以前の問題ですね。
「VocabにActionFailureがないよ」というエラーです。
以前「勝利時のメッセージを変更したい」という質問があったので、
おそらくその時に誤って消したと思われます。

なんでもそうなんですが、不要だと思って消したものが実は必要だった、
ということはよくあることなので、変更の際は注意してください。
添付ファイル
showName.png
------------------------------------------------------------------
自作の(改造でない)スクリプト、プラグイン素材に
関しては、リードミーもしくは作中に
「faida」と記名していただければ
利用可能です。
kyoko
記事: 62
登録日時: 2019年9月10日(火) 12:03
お住まい: 東京

Re: RPGツクールvxace スキルを使用された対象者別にメッセージを表示する方法

投稿記事by kyoko » 2019年10月27日(日) 00:02

①は、バトル画面です。
バトルイベントの画面に打ち込むと言う事、分かりました。

ゲームが開始した瞬間にセッティングしないといけないのかと思い
ゲーム開始時に表示されるマップに打ち込むのかと思ってしまいました。

「スクリプト」の字数制限の事、参考に留めておきます。
試行していただき、ありがとうございます。


②の助言については、おっしゃる通り
勝利メッセージを表示させないように、操作したのかもしれません。
ActionFailureの頭に#がついていました。

スクリーンショットを載せていただいたものを参考に
いろいろ試したところ、ようやく対象者名が表示されました。

とても助かります。

いろいろとお手数おかけし、すみません。
どうも、ありがとうございました。
多謝いたします。
kyoko
記事: 62
登録日時: 2019年9月10日(火) 12:03
お住まい: 東京

Re: RPGツクールvxace スキルを使用された対象者別にメッセージを表示する方法

投稿記事by kyoko » 2019年10月27日(日) 00:22

すみません。
もう1つ、お聞きしたいのですが

行動者(スキル使用者)、使用スキル/アイテムを表示させたい場合は

$game_troop.members[$game_variables[52] *-1]

のtroop.membersを
何かに書き換える感じかと思うのですが
何に書き換えればいいでしょうか。

スクリプトの説明を読んでも
何に書き換えればいいのか、分からないので
ご存知であれば、お願いします。
faida
記事: 272
登録日時: 2015年12月17日(木) 16:44

Re: RPGツクールvxace スキルを使用された対象者別にメッセージを表示する方法

投稿記事by faida » 2019年10月27日(日) 16:01

スキル使用者は味方に限らないので、味方側のキャラ(アクター)という意味であれば、
$game_actors[$game_variables[51]] ですね。
さらに、スキルであれば $data_skills[$game_variables[53]] 、
アイテムであれば $data_items[$game_variables[54]] となります。

ちなみにですが、こういったアクターや敵キャラのデータを取得することは
「行動者・対象者ID・使用スキル/アイテムID変数格納」固有の機能ではなく、
VXAce標準の機能です。
そのため、「行動者・対象者ID・使用スキル/アイテムID変数格納」がなくても、
変数で指定したIDのアクターや敵キャラのデータを取得することはできます。
例:変数の操作で51番に1を代入すれば、$game_actors[$game_variables[51]].atkで
ID1のアクターの攻撃力を取得できる。など
------------------------------------------------------------------
自作の(改造でない)スクリプト、プラグイン素材に
関しては、リードミーもしくは作中に
「faida」と記名していただければ
利用可能です。
kyoko
記事: 62
登録日時: 2019年9月10日(火) 12:03
お住まい: 東京

Re: RPGツクールvxace スキルを使用された対象者別にメッセージを表示する方法

投稿記事by kyoko » 2019年10月27日(日) 20:02

パーティー(味方)のスキル使用者に関しては

「コスモイベント」→「変数の操作」→「スクリプト」で

$game_actors[$game_variables[51]]
$game_variables[任意の変数番号].name


で打ち込み、バトル開始時に、そのコスモイベントを呼び出し
スキル使用時の「文章の表示」内に、\V[任意の変数番号]を入力する事で
スキル使用者が表示される

という理解でよろしいでしょうか。

これを、スキル使用者(敵)にしたい場合は

$game_enemys[$game_variables[■■]]
$game_variables[任意の変数番号].name


でしょうか。

「■ RGSS3 行動者・対象者ID・使用スキル/アイテムID変数格納 Ver1.」内を探しても
分からなかったのですが
■■に入る番号は、何になるでしょうか。


$game_actors[$game_variables[51]].atk

というのは.atkの部分が
「1を代入する」という指示になる形でしょうか

お手数おかけて、すみません。

“VX / Ace:質問” へ戻る