기타

플레이어 발소리 스크립트

by 백호 posted Feb 22, 2009
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
플레이가 걸을때 발소리가 나게 하는 스크립트입니다
캐릭터 마다 다르게 설정 할수도 있고 음량 피치 패턴등도 설정이 가능합니다

#------------여기서부터
# 플레이어 발소리 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
#--------------끝

사용법

스크립트 26~34줄까지 설명이 있습니다.


출처는 수수께끼의정사면체