RMXP

이벤트에도 발소리 넣는법

by nachthexen posted Jul 23, 2015
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form
특정 이벤트도 움직일때마다
 발소리가 들리게하고싶은데, 방법이 없을까요??
 
아래는 현재 제가 쓰고있는 발소리 스크립트 입니다.
대충보니까 이벤트ID가 아니라 액터의ID인것 같아서요.
 
 
#------------여기서부터 
# 플레이어 발소리 SE ver. 1.01 (Since 2006/01/31) 
# by Tetra-Z 
# 맵상에서 플레이어에 발소리를 설정합니다. 
# $game_system.player_step_se_permission : 발소리 허가. 
# ver. 1.01(2006/02/18) 
# 커스터마이즈 포인트에서 발밑 태그 ID·맵 ID를 참조 가능하게. 

#============================================================================== 
# TETRAZ61 
#============================================================================== 
module TETRAZ61 
  def self.actor_step_se(id, tag, map) 
    case id 
    #========================================================================== 
    # □ 커스터마이즈 포인트 
    #========================================================================== 
    # tag에서 발밑 태그 ID, map에서 맵 ID의 조건부도 할 수 있습니다. 
    when 1 
      return [[1, 3], "032-Switch01", 80, 100] 
    when 2 
      return [[1, 3], "040-Knock01", 80, 100] 
    # when 엑터 ID 
    #  return [[패턴], "SE명", 음량, 피치] 
    # 
    # 엑터 ID : 선두의 엑터의 ID. 
    # 패턴  : 발소리가 있는 패턴. 캐릭터 화상의 왼쪽으로부터 0, 1, 2, 3. 
    # SE명      : 발소리가 되는 SE파일명. 
    # 음량      : SE의 음량. 생략 하면(자) 80. 
    # 피치    : SE의 피치. 생략 하면(자) 100. 
    #========================================================================== 
    end 
    return [] 
  end 
end 
#============================================================================== 
# ■ Game_System 
#============================================================================== 
class Game_System 
  #-------------------------------------------------------------------------- 
  # ● 공개 인스턴스 변수 
  #-------------------------------------------------------------------------- 
  attr_accessor :player_step_se_permission 
  #-------------------------------------------------------------------------- 
  # ● 오브젝트 초기화 
  #-------------------------------------------------------------------------- 
  alias tetraz61_initialize initialize 
  def initialize 
    tetraz61_initialize 
    @player_step_se_permission = true 
  end 
end 
#============================================================================== 
# ■ Game_Player 
#============================================================================== 
class Game_Player < Game_Character 
  #-------------------------------------------------------------------------- 
  # ● 프레임 갱신 
  #-------------------------------------------------------------------------- 
  alias tetraz61_update update 
  def update 
    last_pattern = @pattern 
    tetraz61_update 
    actor_id = tetraz61_party0 
    return if (! $game_system.player_step_se_permission or $data_actors[actor_id]. nil? ) 
    se = TETRAZ61.actor_step_se(actor_id, self.terrain_tag, $game_map.map_id) 
    return if (!(se.is_a? (Array)) or se.size < 2 or !(se[0]. is_a? (Array)) or se[1] == "") 
    if (last_pattern != @pattern and se[0]. include? (@pattern)) 
      se[2] = 80 if (se.size < 3 or se[2]. nil? ) 
      se[3] = 100 if (se.size < 4 or se[3]. nil? ) 
      Audio.se_play("Audio/SE/" + se[1], se[2], se[3]) rescue nil 
    end 
  end 
  #-------------------------------------------------------------------------- 
  # ● 선두의 엑터 
  #-------------------------------------------------------------------------- 
  def tetraz61_party0 
    if defined?  xrxs41_refresh 
      id = $game_variables[XRXS41::MAPCHAR_VARIABLE_ID] 
      return id unless $data_actors[id]. nil? 
    end 
    return $game_party.actors.size > 0 ?  $game_party.actors[0]. id : 0 
  end 
end