ページ 11

【解決済み】回復時とダメージ時で効果音を変えたい。Ruたんさん作『バトルログに再生量表示スクリプト』

Posted: 2023年6月24日(土) 21:41
by ズッキー
RUたんさん作のバトルログに再生量表示スクリプトを改造してダメージ、効果音を追加したいです。
回復メッセージの個別表示のwaitの下に
$data_system.sounds[14].play
と加筆する事でダメージ音を鳴らす事はできましたが、このままでは回復時も同じ効果音になってしまいます。
if分岐をさせようと思ったものの、条件に何を設定すれば良いのか分かりませんでした。
ダメージ時は
$data_system.sounds[14].play
回復時は
$data_system.sounds[16].play
を使い分ける方法を教えてください。

Re: 回復時とダメージ時で効果音を変えたい。Ruたんさん作『バトルログに再生量表示スクリプト』

Posted: 2023年6月25日(日) 02:55
by 名無し蛙
まずSEを鳴らす場合は$data_system.soundsを直接呼び出さず
Soundモジュールを通して間接的に呼び出した方が良いです。

コード: 全て選択

$data_system.sounds[14].play => Sound.play_actor_damage
$data_system.sounds[16].play => Sound.play_recovery

ズッキー さんが書きました:と加筆する事でダメージ音を鳴らす事はできましたが、このままでは回復時も同じ効果音になってしまいます。
if分岐をさせようと思ったものの、条件に何を設定すれば良いのか分かりませんでした。

軽く読む限りだとtarget.result.hp_damageで判定するものだと思います。

コード: 全て選択

if 0 < target.result.hp_damage
  Sound.play_actor_damage
elsif  target.result.hp_damage < 0
  Sound.play_recovery
end

Re: 回復時とダメージ時で効果音を変えたい。Ruたんさん作『バトルログに再生量表示スクリプト』

Posted: 2023年6月25日(日) 03:40
by ズッキー
名無し蛙さん
ありがとうございます。おかげ様で効果音を分ける事ができました。
ただ、MPやTPが対象だったり、ダメージと回復両方が付与されていたりする時に不具合が発生していました。

コード: 全て選択

   
    if 0 < target.result.hp_damage and 0 == target.result.mp_damage and 0 == target.result.tp_damage
  Sound.play_actor_damage
end
wait
  if  target.result.hp_damage < 0 and 0 == target.result.mp_damage and 0 == target.result.tp_damage
  Sound.play_recovery
end

このように書き直してみたものの、どうやら増減量を合計したうえで増減の処理が行われるらしく、片方の効果音しか再生されないようでした。また、mp、tp回復に応じて効果音を分ける事も難しそうでした。
この事に関しては素直に諦め、HPに対してのみ効果音を実装する事にします。
ありがとうございました。