Lua RPG Maker
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

[RGSS3]cRmGSS - Som de Passos

Ir para baixo

[RGSS3]cRmGSS - Som de Passos Empty [RGSS3]cRmGSS - Som de Passos

Mensagem por Raizen884 Sáb Jan 14, 2012 12:05 am

Som de Passos

Eu estou esperando a MRM voltar para eu postar todos os scripts, mas esse especificamente, ficou bem interessante o efeito e resolvi postar, não porque é o melhor script que eu fiz, mas eu gostei bastante do resultado final e resolvi trazer para a Lua =)

Descrição: O script fará com que ao andar seja reproduzido um "SE" que no caso pode ser um som de passos para dar mais realismo ao jogo. Esse som que toca depende do ID do terreno, assim da para ter som diferentes se o personagem andar na areia ou na grama. Os eventos também emitem sons dependendo do terreno, caso fiquem mais distantes do personagem, o volume diminui. Lembrando que também é possivel variar o volume e a frequencia dos passos, fazendo um som mais realista.

Para utilizar o script, basta coloca-lo acima do main no editor de scripts, e configurar o script da maneira preferencial pelo usuário.

Script:

Código:
#=======================================================
#        Som de passos
# Autor:Raizen884
# Compatibilidade: RMVXAce
# Comunidade de origem: www.centrorpgmaker.com - é necessário permissão
# para que o script seja disponibilizado em outro lugar.
# Adiciona um som ao serem movimentados os personagem ou os eventos.
#=======================================================
module Som_passos
# Coloque o nome do arquivo de som ao ser tocado,
# caso o som não seja algum padrão do rpg maker,
# basta adicionar o arquivo a pasta SE do seu projeto.
# Coloque aqui os IDs do terreno e seu respectivo
# som naquele terreno.
Sound = []
# Sound[valor da tag de terreno que pode ser configurado no database] = Som
# que tocará quando o personagem pisar nesse terreno.
Sound[0] = "Evasion1"
Sound[1] = "Fog1"
# Caso queira mais sons para mais ids de terreno basta
# adicionar uma linha com o nome do arquivo do mesmo modo
# como está colocado aqui no modulo.
# variavel para modificar os passsos, assim da para modificar o som
# dependendo de uma variavel e não pelo ID do terreno.
# ID da variavel, lembrando que o valor dela, tem que ser o mesmo
# dom ID do Sound. Se a variavel tiver valor 0, desabilita essa função.
# Isso apenas para o personagem.
Variavel = 1
# volume a ser colocado para o som do personagem.
Volume = 100
# Variação do volume, para dar um som mais real aos passos do player.
Var = 20
# Variação da frequencia dos passos, para passos mais realistas
# algumas vezes o som não tocará, 0 desativa essa função.
Freq = 0
# Nome que deverá estar no arquivo dos chars para que o script
# reconheça para tocar o som de passos, assim é possivel separar eventos
# que devem ou não emitirem o som de passos.
Name = "Actor"
end
# Aqui começa o script.
class Game_Player < Game_Character
alias sound_move move_straight
alias sound_diagonal move_diagonal
  def move_straight(d, turn_ok = true)
    sound_move(d, turn_ok = true)
    freq = rand(Som_passos::Freq) if Som_passos::Freq != 0
    if freq == nil or freq < Som_passos::Freq - 1 and @move_succeed and Som_passos::Sound[$game_player.terrain_tag] != nil and $game_variables[Som_passos::Variavel] == 0
    RPG::SE.new(Som_passos::Sound[$game_player.terrain_tag], @volume = Som_passos::Volume - rand(Som_passos::Var)).play unless vehicle
    elsif $game_variables[Som_passos::Variavel] != 0 and Som_passos::Sound[$game_variables[Som_passos::Variavel]] != nil
    RPG::SE.new(Som_passos::Sound[$game_variables[Som_passos::Variavel]], @volume = Som_passos::Volume - rand(Som_passos::Var)).play unless vehicle
  end
end
    def move_diagonal(horz, vert)
    freq = rand(Som_passos::Freq) if Som_passos::Freq != 0
    if freq == nil or freq < Som_passos::Freq - 1
    sound_diagonal(horz, vert)
    RPG::SE.new(Som_passos::Sound[$game_player.terrain_tag], @volume = Som_passos::Volume - rand(Som_passos::Var)).play if @move_succeed and Som_passos::Sound[$game_player.terrain_tag] != nil
    end
    end
end
class Game_Event < Game_Character
  def update_self_movement
    if near_the_screen? && @stop_count > stop_count_threshold
      case @move_type
      when 1;  move_type_random
      sound_screen
      when 2;  move_type_toward_player
      sound_screen
      when 3;  move_type_custom
      sound_screen
      end
    end
  end
    def sound_screen
      distx = $game_map.events[@id].x - $game_player.x
      disty = $game_map.events[@id].y - $game_player.y
      distx *= distx
      disty *= disty
      soma = distx + disty
      soma = Som_passos::Volume if soma > Som_passos::Volume
      freq = rand(Som_passos::Freq) if Som_passos::Freq != 0
      if freq == nil or freq < Som_passos::Freq - 1
      RPG::SE.new(Som_passos::Sound[$game_map.events[@id].terrain_tag], @volume = Som_passos::Volume - soma).play if $game_map.events[@id].moving? and $game_map.events[@id].character_name.include?(Som_passos::Name)
      end
  end
end

Créditos :Raizen884
Raizen884
Raizen884

Mensagens : 22
Data de inscrição : 26/11/2011

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos