irpg Community
ใช้สกิลแล้วเปลี่ยนเพลงประกอบ - Printable Version

+- irpg Community (https://irpg.in.th)
+-- Forum: irpg Fabella RPG Maker Academia (https://irpg.in.th/forum-4.html)
+--- Forum: RGSS and JS Showcase (https://irpg.in.th/forum-26.html)
+--- Thread: ใช้สกิลแล้วเปลี่ยนเพลงประกอบ (/thread-229.html)



ใช้สกิลแล้วเปลี่ยนเพลงประกอบ - Muge9thD - 07-08-2012

ใช้สกิลแล้วเปลี่ยนเพลงประกอบ

สคริปต์เขียนโดย : Angelix
ลิงค์ต้นฉบับ : http://www.irpgth.com/community/School/2821-%E0%B8%...%9A


รายละเอียด :
อีก 1 สคริปต์ที่ทำให้เกมคุณมีลูกเล่นมากขึ้น สคริปต์นี้จะทำให้เมื่อคุณใช้สกิลก็จะมีเสียงเพลงประกอบขึ้นมาเหมาะสำหรับสกิลที่เป็นไม้ตายอย่างยิ่ง
**สคริปต์นี้ถูกทดสอบในระบบต่อสู้ธรรมดาเท่านั้น สำหรับระบบต่อสู้อื่น อาจมีปัญหาหรือไม่มีก็ได้

สกรีนช๊อต :
ไม่มีน่อ

วิธีการใช้งาน :
หาอ่านในสคริปต์เลยน่อ

ข้อตกลงการนำไปใช้งาน :
อย่างน้อยๆ ก็ใส่ชื่อ Angelix ลงในเครดิตด้วยล่ะ


โค๊ดสคริปต์
Code:
#=====================================================================
# BGM Skill /w battle step delay
# by Angelix (9/8/52)
#
# เปลี่ยน BGM ตอนใช้สกิล + หน่วงเวลาในการเปลี่ยนเฟสในการต่อสู้ได้
# **สคริปต์นี้ถูกทดสอบในระบบต่อสู้ธรรมดาเท่านั้น สำหรับระบบต่อสู้อื่น อาจมีปัญหาหรือไม่มีก็ได้
#=====================================================================
# Setup
# ให้ตั้งค่าแบบนี้ Skill ID=>["ชื่อเพลง",volume,pitch,flag,flag2(,step_delay)], *อย่าลืม , ตรงท้าย
# โดยที่ให้ตั้งค่า 1 บรรทัด ต่อ 1 สกิล
# flag ถ้าตั้ง 0 เพลงจะเริ่มตอนขึ้น User Animation ของสกิล ถ้า 1 จะเริ่มตอนขึ้น Target Animation
# flag2 ถ้าตั้ง 0 เพลงจะเปลี่ยนกลับตอน damage สกิลขึ้น ถ้า 1 จะเปลี่ยนกลับตอน damage หายไปแล้ว
# step_delay ใช้ตั้งให้แต่ละขั้นตอนต่อไปนี้
# แสดง User Animation => แสดง Target Animation => แสดงเลข Damage
# มีดีเลย์มากขึ้น (เพราะบาง Animation สั้นมาก เพลงไม่ทันขึ้นก็เปลี่ยนกลับละ =w=")
# ตั้งค่าแบบนี้
# [delay1,delay2,delay3]
# delay1 ค่าดีเลย์หลังแสดง User Animation จบ
# delay2 ค่าดีเลย์หลังแสดง Target Animation จบ
# delay3 ค่าดีเลย์หลังแสดงเลข Damage หายไปแล้ว
# step_delay อาจไม่ใส่ก็ได้
# ถ้าไม่ใส่ จะมีแค่นี้ 1=>["01THEDIVER",100,100,0,1],
# ถ้าใส่ ก็จะเป็นแบบนี้ 1=>["01THEDIVER",100,100,0,1,[20,20,20]],
#=====================================================================
$ang_skill_bgm = {
1=>["002-Battle02",100,100,0,1,[80,80,80]],
999999=>nil
}
class Scene_Battle
  alias ang_skill_bgm_main main
  def main
    @battle_bgm = $game_system.playing_bgm
    ang_skill_bgm_main
  end
  
  def ang_refresh_battle_bgm
    @battle_bgm = $game_system.playing_bgm
  end
  
  alias ang_skill_bgm_msar make_skill_action_result
  def make_skill_action_result
    @skill_bgm = nil
    ang_skill_bgm_msar
    @skill_bgm = $ang_skill_bgm[@skill.id]
  end
  
  alias ang_skill_bgm_ph4s3 update_phase4_step3
  def update_phase4_step3
    ang_skill_bgm_ph4s3
    if !@skill_bgm.nil?
      if @skill_bgm[3] == 0
        $game_system.bgm_play(RPG::AudioFile.new(@skill_bgm[0],@skill_bgm[1],@skill_bgm[2]))
      end
      if !@skill_bgm[5].nil?
        @wait_count += @skill_bgm[5][0]
      end
    end
  end
  
  alias ang_skill_bgm_ph4s4 update_phase4_step4
  def update_phase4_step4
    ang_skill_bgm_ph4s4
    if !@skill_bgm.nil?
      if @skill_bgm[3] == 1
        $game_system.bgm_play(RPG::AudioFile.new(@skill_bgm[0],@skill_bgm[1],@skill_bgm[2]))
      end
      if !@skill_bgm[5].nil?
        @wait_count += @skill_bgm[5][1]
      end
    end
  end
  
  alias ang_skill_bgm_ph4s5 update_phase4_step5
  def update_phase4_step5
    ang_skill_bgm_ph4s5
    if !@skill_bgm.nil?
      if !@skill_bgm[5].nil?
        @wait_count += @skill_bgm[5][2]
      end
      if @skill_bgm[4] == 0
        $game_system.bgm_play(@battle_bgm)
        @skill_bgm = nil
      end
    end
  end
  
  alias ang_skill_bgm_ph4s6 update_phase4_step6
  def update_phase4_step6
    ang_skill_bgm_ph4s6
    if !@skill_bgm.nil?
      if @skill_bgm[4] == 1
        $game_system.bgm_play(@battle_bgm)
        @skill_bgm = nil
      end
    end
  end
end
class Interpreter
  alias ang_skill_bgm_cmd241 command_241
  def command_241
    $scene.ang_refresh_battle_bgm if $scene.is_a?(Scene_Battle)
    ang_skill_bgm_cmd241
  end
end