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

Som de Passos

Iniciado por Raizen, 01/12/2012 às 16:44



Som de passos

Compativel com: RMVXAce
Compatibilidade :boa
Facilidade de uso: fácil
Lag gerado: médio
[box class=titlebg]
Condições de Uso
[/box]
  Pode ser modificado, mas peço gentilmente que não postem em outros lugares, eu mesmo farei isso, obrigado pela atenção.

[box class=titlebg]
Para que serve o script
[/box]
  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.
[box class=titlebg]
Como utilizar o script
[/box]
  Basta colocar acima do main e escolher o arquivo ao ser tocado no momento que o personagem se move.

[box class=titlebg]
Script.
[/box]

#=======================================================
#         Som de passos
# Autor:Raizen884
# Compatibilidade: RMVXAce
# Comunidade : www.centrorpg.com
# Adiciona um som ao se movimentar com o personagem.
#=======================================================
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.
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


[box class=titlebg]
Imagens
[/box]

Não perceptível


[box class=titlebg]
Download
[/box]

Não necessário

[box class=titlebg]
Créditos e Avisos
[/box]

Raizen pelo script qualquer bug ou adições podem me avisar.

Que interessante! Obrigada por trazer!
É útil para dar um toque realista ao jogo, e deixá-lo mais completo. Eu gostei, deve ficar muito bacana em um projeto!


Estou bolado contigo, Pai:rick9:
Volte a scriptar para o XP! POAKSPAOSK '
Enfim, gostei bastante, é um script útil, e acho que acaba se tornando essencial para quem quiser um jogo realista.

muito bom ele ajuda mais em tipos de terror

é possivel retirar o som de passos dos eventos?

Citação de: lipecrafter online 01/01/2019 às 15:02
é possivel retirar o som de passos dos eventos?

Sim, só não ter o spritesheet daquele evento dentro das configurações do script.
Se ele compartilha algum sprite com o personagem, basta você criar um spritesheet por exemplo, Actor_SemSom e usar ele.

O script parece ser bom mas não entendi muito bem como aplicar no meu projeto  :rick8:

me explica melhor em que parte você ficou travado  :blink:, tipo você leu todo o script?

Tem switch e tudo mais para ativar, tente ler tudo que está no script nos comentários.

 :clap: :clap:

O Script é bem bom, no início eu buguei um pouco por causa que no jogo dava erros por alguma coisa no script, aí eu martelei minha cabeça para descobrir, mas aí eu vi que eu havia tirado um negócio bem importante para o script lá, ai basta eu ter copiado denovo o script que deu certo.

Obrigado Raizen, seu script é bem bom!

:heart:
Não desista mano, a persistência te leva para frente!