【解決】毒や吸収のSE

アバター
much
記事: 62
登録日時: 2017年11月09日(木) 01:01

【解決】毒や吸収のSE

投稿記事by much » 2017年11月16日(木) 16:42

http://kaisou-ryouiki.sakura.ne.jp/mate ... _voice.txt

こちらのスプリクトを用いて毒や吸収の際のSEを再生したいのですが可能でしょうか?
最後に編集したユーザー much on 2017年12月01日(金) 03:03 [ 編集 1 回目 ]

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

Re: 毒や吸収のSE

投稿記事by faida » 2017年11月16日(木) 17:54

質問の意図がやや不明瞭です。
「バトルボイス」では「毒」という「特定のステート」に対する「ボイス」の再生も、
「吸収時の回復」による「ボイス」の再生も、
そもそも「SE(Audioフォルダ内のSEフォルダに入っているファイル)」の再生もできません。

元々「バトルボイス」を使用する予定で、それに付随して毒や吸収の際のSEを再生したいのか、
毒や吸収の際のSEを再生したいだけで、別に「バトルボイス」でなくても構わないのか、
これが分からないと答えようがないと思います。

というわけで、質問の答えは「改造すればできますが、このスクリプトを使う必要性はありません」。

※あと前回のアレを使う場合、「バトルボイス」で再生したファイルは「SE」扱いなのでそれも止まります。
------------------------------------------------------------------
自作の(改造でない)スクリプト、プラグイン素材に
関しては、リードミーもしくは作中に
「faida」と記名していただければ
利用可能です。
アバター
much
記事: 62
登録日時: 2017年11月09日(木) 01:01

申し訳ないです。

投稿記事by much » 2017年11月18日(土) 01:26

返信ありがとうございます。
すいません。言葉足らずでした。

①毎ターンで毒によるダメージの際、アクター、エネミーに指定した効果音を鳴らしたい。
②吸収でのダメージの際、吸収される側に指定した効果音を鳴らしたい。

というのを、添付したスプリクトを改造してするには可能なのでしょうか。
というのが文面の意図です。
faida
記事: 272
登録日時: 2015年12月17日(木) 16:44

Re: 毒や吸収のSE

投稿記事by faida » 2017年11月18日(土) 12:39

質問の答えは「改造すればできますが、このスクリプトを使う必要性はありません」。
まだ最後の疑問が残っていて、それは「そのSEは『ボイス』なのかどうか」ということです。
だから添付したスクリプトを使えば、バトルボイスの使用可否にかかわらず「SEの」再生はできます。

コード: 全て選択

# ID指定:アクターが正の数、エネミーが負の数
module FAI_DDSDSE
  DRAIN_DAMAGE_SE = {}
  DRAIN_DAMAGE_SE[1] = ["Absorb1", 80, 100]
  DRAIN_DAMAGE_SE[-1] = ["Absorb1", 80, 100]
   
  SLIP_DAMAGE_SE = {}
  SLIP_DAMAGE_SE[1] = ["Poison", 80, 100]
  SLIP_DAMAGE_SE[-1] = ["Poison", 80, 100]
end

class Game_Battler
  include FAI_DDSDSE
  def play_drain_damage
    id = actor? ? self.id : -enemy_id
    data = DRAIN_DAMAGE_SE[id]
    Audio.se_play("Audio/SE/"+data[0], data[1], data[2]) if data
  end
  def play_slip_damage
    id = actor? ? self.id : -enemy_id
    data = SLIP_DAMAGE_SE[id]
    Audio.se_play("Audio/SE/"+data[0], data[1], data[2]) if data
  end
  #--------------------------------------------------------------------------
  # ● HP の再生
  #--------------------------------------------------------------------------
  alias fai_ddsdse_regenerate_hp regenerate_hp
  def regenerate_hp
    fai_ddsdse_regenerate_hp
    play_slip_damage if @result.hp_damage > 0
  end
end

class Window_BattleLog < Window_Selectable
  #--------------------------------------------------------------------------
  # ● HP ダメージ表示
  #--------------------------------------------------------------------------
  alias fai_ddsdse_display_hp_damage display_hp_damage
  def display_hp_damage(target, item)
    return if target.result.hp_damage == 0 && item && !item.damage.to_hp?
    target.play_drain_damage if target.result.hp_drain > 0
    fai_ddsdse_display_hp_damage(target, item)
  end
  #--------------------------------------------------------------------------
  # ● MP ダメージ表示
  #--------------------------------------------------------------------------
  alias fai_ddsdse_display_mp_damage display_mp_damage
  def display_mp_damage(target, item)
    return if target.dead? || target.result.mp_damage == 0
    target.play_drain_damage if target.result.mp_drain > 0
    Sound.play_recovery if target.result.mp_damage < 0
    fai_ddsdse_display_mp_damage(target, item)
  end
end
どうしても「ボイス」でなくてはいけない理由を除いては、これで事足りるわけです。
勿論併用も可能です。

※しかも「"Audio/SE/"+」という箇所を「"Audio/VOICE/"+」に変えればボイスになります。
------------------------------------------------------------------
自作の(改造でない)スクリプト、プラグイン素材に
関しては、リードミーもしくは作中に
「faida」と記名していただければ
利用可能です。
アバター
much
記事: 62
登録日時: 2017年11月09日(木) 01:01

Re: 毒や吸収のSE

投稿記事by much » 2017年11月19日(日) 10:39

ありがとうございます。

ちなみになのですが、SEを複数設定しておいて、その中からランダムで1つ選出して再生することって可能ですか…?
たびたび、付け加えてしまい申し訳ありません汗
faida
記事: 272
登録日時: 2015年12月17日(木) 16:44

Re: 毒や吸収のSE

投稿記事by faida » 2017年11月19日(日) 10:50

前にRGSS2のですが別の依頼に書いたので正直自分でやってもらいたいんですが、
まぁそうもいかなさそうなので適当に出しておきます。

コード: 全て選択

# ID指定:アクターが正の数、エネミーが負の数
module FAI_DDSDSE
  DRAIN_DAMAGE_SE = {}
  DRAIN_DAMAGE_SE[1] = [["Absorb1", 80, 100], ["Absorb2", 80, 100]]
  DRAIN_DAMAGE_SE[-1] = [["Absorb1", 80, 100], ["Absorb2", 80, 100]]
   
  SLIP_DAMAGE_SE = {}
  SLIP_DAMAGE_SE[1] = [["Poison", 80, 100], ["Paralyze2", 80, 100]]
  SLIP_DAMAGE_SE[-1] = [["Poison", 80, 100], ["Paralyze2", 80, 100]]
end

class Game_Battler
  include FAI_DDSDSE
  def play_drain_damage
    id = actor? ? self.id : -enemy_id
    array = DRAIN_DAMAGE_SE[id]
    if array
      data = array[rand(array.size)]
      Audio.se_play("Audio/SE/"+data[0], data[1], data[2]) if data
    end
  end
  def play_slip_damage
    id = actor? ? self.id : -enemy_id
    array = SLIP_DAMAGE_SE[id]
    if array
      data = array[rand(array.size)]
      Audio.se_play("Audio/SE/"+data[0], data[1], data[2]) if data
    end
  end
  #--------------------------------------------------------------------------
  # ● HP の再生
  #--------------------------------------------------------------------------
  alias fai_ddsdse_regenerate_hp regenerate_hp
  def regenerate_hp
    fai_ddsdse_regenerate_hp
    play_slip_damage if @result.hp_damage > 0
  end
end

class Window_BattleLog < Window_Selectable
  #--------------------------------------------------------------------------
  # ● HP ダメージ表示
  #--------------------------------------------------------------------------
  alias fai_ddsdse_display_hp_damage display_hp_damage
  def display_hp_damage(target, item)
    return if target.result.hp_damage == 0 && item && !item.damage.to_hp?
    target.play_drain_damage if target.result.hp_drain > 0
    fai_ddsdse_display_hp_damage(target, item)
  end
  #--------------------------------------------------------------------------
  # ● MP ダメージ表示
  #--------------------------------------------------------------------------
  alias fai_ddsdse_display_mp_damage display_mp_damage
  def display_mp_damage(target, item)
    return if target.dead? || target.result.mp_damage == 0
    target.play_drain_damage if target.result.mp_drain > 0
    Sound.play_recovery if target.result.mp_damage < 0
    fai_ddsdse_display_mp_damage(target, item)
  end
end
------------------------------------------------------------------
自作の(改造でない)スクリプト、プラグイン素材に
関しては、リードミーもしくは作中に
「faida」と記名していただければ
利用可能です。
アバター
much
記事: 62
登録日時: 2017年11月09日(木) 01:01

Re: 毒や吸収のSE

投稿記事by much » 2017年12月01日(金) 03:02

なるほど!
ありがとうございます!解決しました!!

“VX / Ace:質問” へ戻る