O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Cross Sound Step

Iniciado por Raizen, 15/02/2013 às 20:54

CROSS SOUND STEP
Por Alex Crosslight

Citar


Scripts RGSS, Resources, Tutorials and Translations by Alexander Ernest Crosslight is licensed under a
Creative Commons Atribuição-Uso não-comercial-Compartilhamento pela mesma licença 3.0 Brasil License.
Permissions beyond the scope of this license may be available at Atelier Cross

INTRODUÇÃO

CitarO script permite fazer com que eventos e o personagem possam executar sons ao andar. De modo a ter uma avançada configuração
sobre os passos.



DESCRIÇÃO

Citar
> Permite definir um som de passo diferente para cada mapa e terreno onde o herói estiver caminhando.

> Permite definir um som de passo diferente para cada evento dependendo do terreno onde estiver caminhando.

> Permite definir um nivel de volume dependendo da distância entre herói e evento.


DEMO

Não necessária

SCRIPT

#Cross Sound Step 1.0

#Por Alex Crosslight

#http://ateliercross.6te.net

###############################################################
# Agradecimentos iniciais
###############################################################

# > Rafidelis pelo método de criar condições com comentários.

###############################################################
#Introdução e descrição
###############################################################

# O script permite fazer com que eventos e o personagem possam
# executar sons ao andar. De modo a ter uma avançada configuração
# sobre os passos.

# > Permite definir um som de passo diferente para cada mapa
# e terreno onde o herói estiver caminhando.

# > Permite definir um som de passo diferente para cada
# evento dependendo do terreno onde estiver caminhando.

# > Permite definir um nivel de volume dependendo da distância
# entre herói e evento.

##########################################################
# Instruções (Manuseie com cuidado)
##########################################################

# > Cole acima do main.

# > Abaixo são as configurações gerais dos passos do herói.

######################################################=end

module Cross
  
  Event_Sound = true # Evento Executar som ao andar?
  
  Player_Sound = true # Personagem eexecutar som ao andar?
  
# Caso Player_Sound for true, você pode definir logo a seguir
# quais são os sons executados com os passos do herói.

Moviment_Sound = {} # Não apagar

# Sintaxe: Moviment_Sound[X] = [Y,Z]

# Onde X é a ID do tileset, Y é a ID do terreno e Z é o som
# executado ao se andar nele.

Moviment_Sound[20] = {0 => "016-Jump02"}

end

##########################################################

##########################################################

# Usando o comando "Inserir comentário", você pode definir
# diversas opções e restrições para cada evento em determinado
# terreno.

# [SA] X = Onde X é o nome do som do passo dado pelo evento.

# [VR] X = Onde X é o alcance que será calculado para definir
# o volume dos passos quando o herói estiver em determinada
# distância do evento marcado.

# [I$] X = Onde X é o nome do som do passo dado pelo evento
# quando o mesmo estiver caminhando sob o terreno $.

#########################################################
# Fim da configuração e Inicio do Script.
#########################################################


class Game_Map 
  
  attr_accessor :tileset_id

#-----------------------------------------------------------  
  
 alias cross_initialize initialize
   def initialize
     cross_initialize
     @tileset_id = 0
   end

#-----------------------------------------------------------   
   
 alias cross_setup setup
  def setup(map_id)
    cross_setup(map_id)
    @map_id = map_id
    @map = load_data(sprintf("Data/Map%03d.rxdata", @map_id))
    @tileset_id = $data_tilesets[@map.tileset_id].id
  end
 end

#----------------------------------------------------------- 

class Game_Event < Game_Character
  
  include Cross

#-----------------------------------------------------------  
  
  def get_distance_sound
    xa = $game_player.x
    ya = $game_player.y
    d = Math.sqrt(((@x-xa)*(@x-xa))+((@y-ya)*(@y-ya)))
    return d
  end 
#-----------------------------------------------------------
  
 alias cross_update update

  def update
    cross_update
    
    for cmd in @list
     if cmd.code == 108 or cmd.code == 408
        comment = cmd.parameters[0]
          @sound_name = $1 if comment =~ /\[SA\]\s*(.+)/
          @sound_volume = $1 if comment =~ /\[VR\]\s*([0-9]+)/i
          @alpha = terrain_tag
          @terrain_esp = $1 if comment =~ /\[I#{@alpha}\]\s*(.+)/i
          @calc = (@sound_volume.to_i * 100 ) / get_distance_sound.to_i
          @neo_sound = @sound_volume != nil ? @calc : 100
          @audio_step = @sound_name  if @terrain_esp == nil
          @audio_step = @terrain_esp if @terrain_esp != nil
          
      if @real_x != @x * 128 or @real_y != @y * 128
       if Graphics.frame_count % 5 == 0 and Event_Sound
        Audio.se_play("Audio/SE/" + @audio_step,@neo_sound,100)if @sound_name != nil
       end 
      end  
     end
    end   
  end
end

#-----------------------------------------------------------

class Game_Player < Game_Character
  
  include Cross
  
  alias cross_update update
    def update
      cross_update
        if moving? and Moviment_Sound[$game_map.tileset_id] != nil
          @move_sound = Moviment_Sound[$game_map.tileset_id]
          @sound_se = @move_sound[$game_player.terrain_tag]
         if Graphics.frame_count % 10 == 0 and Player_Sound 
          Audio.se_play("Audio/SE/" + @sound_se)if  @sound_se != nil
         end 
        end
    end
end     


INSTRUÇÕES

Citar
1) Cole acima do main

2) Usando o comando "Inserir comentário", você pode definir diversas opções e restrições para cada evento em determinado terreno.

> [SA] X = Onde X é o nome do som do passo dado pelo evento.

> [VR] X = Onde X é o alcance que será calculado para definir o volume dos passos quando o herói estiver em determinada distância do evento marcado.

# [I$] X = Onde X é o nome do som do passo dado pelo evento quando o mesmo estiver caminhando sob o terreno $.




IMAGENS

Não perceptivel por screens

AGRADECIMENTOS

Citar
> Rafidelis por mostrar como criar uma condição usando comentários.
> Criado por Alexander Ernest Crosslight