SchultzGames
Para tirar dúvidas, crie um tópico especifico na área "Dúvidas em Geral" e aguarde ser respondido. Evite comentar em tópicos não relacionados a sua dúvida :D
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
Alterar função no Event Trigger
Gerador de senha
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
como encontrar um script em um determinado objeto
[Sorteio] - Sorteio de uma Key gratuita para um dos meus assets!
Transparência em múltiplos sprites
[___COMO UTILIZAR O FÓRUM___] Principais botões e suas funções
[____ADMINISTRAÇÃO____] PRECISO DE AJUDA [DICA PARA SER AJUDADO]
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
[TUTORIAL] Sistema de Lanterna com Pilhas
Grama de terreno mudou textura e não consigo identificar o motivo
SAVE ME - Game em desenvolvimento para estudo.
Comandos touch
Fontes de sprites em pixel art
Ajustar movimentação da câmera
Rescale ou Redimenção da imagem.
[RESOLVIDO] Animação Em Legacy
animação com avatar mask
[RESOLVIDO] troca de cena faz os Botoes UI não funcionarem
Direito autoral sobre imagem?
[TUTORIAL] Importando animação do mixamo para Unity3d.
Ajuda em código com Events!
[ANDROID]Cena TRAVA e não carrega ao tentar iniciar pelo menu
[TUTORIAL] - Como fazer download da OBB do jogo, in-game! (Android)
[RESOLVIDO] Problema com Varíavel Estática
[TUTORIAL] Sistema de fome, sede, barra de vida, barra de estamina, itens e dano por queda
[JOGO] Tetris em Unity - Para tutorial
Matematica e duvida de de calculos
Pessoa com conhecimento em Unity e criação de sprites
Cronor Estudios RECRUTANDO PARA EQUIPE! [Pagando]
Dúvida com Animação!
Adcionar Porcentagem "%" em um texto UI
Pack de áudio/ efeitos sonoros gratuitos.
Como fazer som de passos no Third Person User Control
Aparecer item comprado
[RESOLVIDO] Instanciar explosões dentro de uma area circular
Jogo para limitar a nave dentro da tela
Alterar caminho Application.persistentDataPath
[TUTORIAL] Como fazer um ponteiro de VELOCIDADE, RPM, etc na Unity
Acessar câmera frontal
Otimização de array vector3
[TUTORIAL] Converter uma variável String em Vetores
Problema no ontriggerenter!!!!
mover objetos "rigados"
Dúvida com Contador no Unity
Button
Anim em Gif
[RESOLVIDO] Camera ViewPort Rect
Blob Shadows
duvida em comentarios no c#
Tirar mais de uma foto
Easy Criatura Controle IA
Text multiuplayer
using UnityEngine.networking
Ajuda com script de escolhas de ações antes de iniciar jogo
ajuda em adcionar novos produtos
[RESOLVIDO] Input field enter
Controles desabilitando
Unity e windows 10
Ajuda com a Câmera (Culling Mask)
Script de Spawn Aleatório
[TUTORIAL] Mover, arremessar e girar objetos com o mouse
Como se faz um mini-mapa?
Geração procedural de mapa para a nova versão do Unity 2018
Como ter varios prefabs com o msm script e um nao alterar o outro?
Como acessar um script que esta no pai?
Movimentação por sqm
Como faço um som parar de tocar?
Mudar skin através de galeria do celular
COMO FAÇO O SISTEMA DE CHUVA ESTILO ETS2 COM GOTAS NO PARA BRISA?
Random.State Altera a seed de todos os scripts?
AI Enemy Ajuda
Easy Mesh Combiner MT - Combine suas malhas de maneira rápida e FÁCIL!
Captura de imagem
[Recomendação] Código Limpo
Sobre colisões em objetos 2D
[RESOLVIDO] COMO FAZ PARA DESATIVAR E ATIVAR UM BOTÃO UI PELO TRIGGER??
Dar recompensa ao ver propaganda ADMOB - CONSTRUCT 2 - Intel XDK
Erro Visual Studio Code .NETFramework v4.7.2
[TUTORIAL] Unity 5 - Wheel Collider, veículos, suspensão realista.
(Dúvida) iRDS - Inteligencia artificial para carros.
de flash pra unity
Como faço para por input de agachar
[RESOLVIDO] Unity 2018.3.0f2 (64-bit) não deixa apagar Componente Importado
PlayerPrefs??
[RESOLVIDO] Deslizar nas paredes (3D)
[RESOLVIDO] Ajuda com Instantiate e SetParent
[TUTORIAL] Luz Principal,Luz de Freio,Piscas para Carro,Moto,Caminhão,Ônibus,Etc...
Estou desenvolvendo jogo em FNA XNA e Nao consigo fazer o player agachar
Como fazer objetos com a mesma TAG não se colidir?
Participe da IDB Jam #1
Ajuda com modelo 3d de Casa
COMO PROJETAR ANIMAÇÕES VISUAIS E DE AÚDIO NO VISUAL STUDIO ( WINDOWS FORM)?
[RESOLVIDO] Cena em modo Portrait e Landscape
[TUTORIAL] Mover personagem com Touch, no estilo SUBWAY SURFERS
Ajuda em Level Design e arte
[RESOLVIDO] IAP não está funcionando depois que faço o build
Error ao Gerar a KeyStore do Apk Android
Iniciando com Scripted Events
Hoje à(s) 12:59 pm
Hoje à(s) 10:31 am
Ontem à(s) 7:36 pm
Ontem à(s) 6:39 pm
Ontem à(s) 3:40 pm
Qua Fev 20, 2019 4:48 pm
Qua Fev 20, 2019 4:42 pm
Qua Fev 20, 2019 4:41 pm
Qua Fev 20, 2019 4:40 pm
Qua Fev 20, 2019 3:36 pm
Qua Fev 20, 2019 2:43 pm
Qua Fev 20, 2019 12:11 pm
Qua Fev 20, 2019 10:15 am
Ter Fev 19, 2019 11:31 pm
Ter Fev 19, 2019 5:24 pm
Ter Fev 19, 2019 1:14 pm
Ter Fev 19, 2019 12:40 pm
Ter Fev 19, 2019 12:02 am
Seg Fev 18, 2019 9:28 pm
Seg Fev 18, 2019 10:27 am
Seg Fev 18, 2019 2:30 am
Dom Fev 17, 2019 11:00 pm
Dom Fev 17, 2019 10:58 pm
Dom Fev 17, 2019 8:35 pm
Dom Fev 17, 2019 7:51 pm
Dom Fev 17, 2019 5:39 pm
Dom Fev 17, 2019 3:34 pm
Dom Fev 17, 2019 2:54 pm
Dom Fev 17, 2019 2:30 pm
Dom Fev 17, 2019 2:13 pm
Dom Fev 17, 2019 1:11 pm
Dom Fev 17, 2019 12:42 am
Sab Fev 16, 2019 6:14 pm
Sab Fev 16, 2019 11:38 am
Sab Fev 16, 2019 7:46 am
Sex Fev 15, 2019 7:23 pm
Sex Fev 15, 2019 6:34 pm
Sex Fev 15, 2019 9:20 am
Qui Fev 14, 2019 9:00 pm
Qui Fev 14, 2019 8:58 pm
Qui Fev 14, 2019 8:53 pm
Qui Fev 14, 2019 11:57 am
Qua Fev 13, 2019 10:40 pm
Qua Fev 13, 2019 8:10 pm
Qua Fev 13, 2019 1:11 pm
Qua Fev 13, 2019 9:48 am
Qua Fev 13, 2019 9:25 am
Qua Fev 13, 2019 9:23 am
Ter Fev 12, 2019 11:03 pm
Ter Fev 12, 2019 4:15 pm
Ter Fev 12, 2019 4:07 pm
Ter Fev 12, 2019 2:07 pm
Ter Fev 12, 2019 1:14 pm
Ter Fev 12, 2019 4:32 am
Ter Fev 12, 2019 4:06 am
Ter Fev 12, 2019 2:03 am
Ter Fev 12, 2019 12:54 am
Ter Fev 12, 2019 12:52 am
Ter Fev 12, 2019 12:26 am
Ter Fev 12, 2019 12:26 am
Ter Fev 12, 2019 12:19 am
Ter Fev 12, 2019 12:13 am
Ter Fev 12, 2019 12:05 am
Seg Fev 11, 2019 11:46 pm
Seg Fev 11, 2019 11:28 pm
Seg Fev 11, 2019 10:43 pm
Seg Fev 11, 2019 10:39 pm
Seg Fev 11, 2019 10:30 pm
Seg Fev 11, 2019 10:26 pm
Seg Fev 11, 2019 8:09 pm
Dom Fev 10, 2019 7:23 pm
Dom Fev 10, 2019 5:59 pm
Dom Fev 10, 2019 7:19 am
Dom Fev 10, 2019 12:25 am
Sex Fev 08, 2019 12:40 am
Qui Fev 07, 2019 7:53 pm
Qui Fev 07, 2019 6:23 pm
Qua Fev 06, 2019 5:36 pm
Ter Fev 05, 2019 6:21 pm
Ter Fev 05, 2019 4:32 pm
Seg Fev 04, 2019 9:23 pm
Seg Fev 04, 2019 2:00 pm
Seg Fev 04, 2019 1:58 pm
Seg Fev 04, 2019 11:26 am
Dom Fev 03, 2019 10:39 pm
Dom Fev 03, 2019 3:36 pm
Dom Fev 03, 2019 12:23 pm
Dom Fev 03, 2019 12:54 am
Sab Fev 02, 2019 5:41 pm
Sab Fev 02, 2019 3:28 pm
Sab Fev 02, 2019 1:16 pm
Sex Fev 01, 2019 6:21 pm
Sex Fev 01, 2019 3:24 pm
Sex Fev 01, 2019 11:18 am
Qui Jan 31, 2019 11:17 pm
Qui Jan 31, 2019 9:24 pm
Qui Jan 31, 2019 8:17 pm
Qui Jan 31, 2019 7:21 pm
Qui Jan 31, 2019 3:06 pm
Weslley
Madness
marcos4503
adenilson romao
marcos4503
Selzler
dstaroski
dstaroski
dstaroski
SmithSchuldiner
Daniel Dória
JohnRambo
marcos4503
Flávio
rafaelholanda
marcos4503
marcos4503
Zack2
Magnatah
Daniel Dória
fabricadegame
MarcosSchultz
MarcosSchultz
Daniel Dória
vitorhugo
fabricadegame
fabricadegame
Madness
AzulBananaFosco
AzulBananaFosco
adenilson romao
Madness
fabricadegame
guimaraf
Encracker
Flávio
Flávio
dstaroski
MarcosSchultz
MarcosSchultz
MarcosSchultz
AnderGames
MarcosSchultz
Zack2
Callyde Jr
Weslley
numb123
numb123
Isabela
Weslley
Weslley
Unidade3d5
richerd
hetrodo
Fabio Palacios
Encracker
Encracker
guimaraf
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
Kayke_27
AnderGames
Mark1nDeveloper
marcos4503
JohnRambo
guimaraf
Tegh
Kayke_27
wolney.almeida
Tegh
Weslley
guimaraf
JohnRambo
JohnRambo
glauco
speedluk
NKKF
gilgsjr
soohzinha
Lynx777
MayLeone
dimmuo
glauco
KAYLLONBR
JrdeAmorim
Édipo
Agios
vanderval
francisco barroso
bielTuvel

[TUTORIAL] Som Dos Passos no FPS Controller (PELA TAG DO CHÃO)

Ir em baixo

TUTORIAL [TUTORIAL] Som Dos Passos no FPS Controller (PELA TAG DO CHÃO)

Mensagem por MarcosSchultz em Qui Set 15, 2016 3:29 pm

Olá pessoal, elaborei uma maneira simples de executar o som dos passos de acordo com a tag do chão no FPS Controller que vem como padrão na Unity 5... trata-se de uma simples modificação no script do próprio controlador.

Vídeo explicativo:




Script modificado (basta substituir o script principal do seu FPS Controller por este):

Código:
using System;
using UnityEngine;
using UnityStandardAssets.CrossPlatformInput;
using UnityStandardAssets.Utility;
using Random = UnityEngine.Random;

[Serializable]
public class SomPassos{
 public string tagchao;
 public AudioClip[] audios;
}

namespace UnityStandardAssets.Characters.FirstPerson
{
    [RequireComponent(typeof (CharacterController))]
    [RequireComponent(typeof (AudioSource))]
    public class FirstPersonController : MonoBehaviour
    {
        [SerializeField] private bool m_IsWalking;
        [SerializeField] private float m_WalkSpeed;
        [SerializeField] private float m_RunSpeed;
        [SerializeField] [Range(0f, 1f)] private float m_RunstepLenghten;
        [SerializeField] private float m_JumpSpeed;
        [SerializeField] private float m_StickToGroundForce;
        [SerializeField] private float m_GravityMultiplier;
        [SerializeField] private MouseLook m_MouseLook;
        [SerializeField] private bool m_UseFovKick;
        [SerializeField] private FOVKick m_FovKick = new FOVKick();
        [SerializeField] private bool m_UseHeadBob;
        [SerializeField] private CurveControlledBob m_HeadBob = new CurveControlledBob();
        [SerializeField] private LerpControlledBob m_JumpBob = new LerpControlledBob();
        [SerializeField] private float m_StepInterval;
        
 [Space(10)]
 public AudioClip[] SomPassosPadrao;
 public SomPassos[] SomDosPassos;
 string tagAtual;
 [Space(10)]

 [SerializeField] private AudioClip m_JumpSound;           // the sound played when character leaves the ground.
        [SerializeField] private AudioClip m_LandSound;           // the sound played when character touches back on ground.

        private Camera m_Camera;
        private bool m_Jump;
        private float m_YRotation;
        private Vector2 m_Input;
        private Vector3 m_MoveDir = Vector3.zero;
        private CharacterController m_CharacterController;
        private CollisionFlags m_CollisionFlags;
        private bool m_PreviouslyGrounded;
        private Vector3 m_OriginalCameraPosition;
        private float m_StepCycle;
        private float m_NextStep;
        private bool m_Jumping;
        private AudioSource m_AudioSource;

        // Use this for initialization
        private void Start()
        {
            m_CharacterController = GetComponent<CharacterController>();
            m_Camera = Camera.main;
            m_OriginalCameraPosition = m_Camera.transform.localPosition;
            m_FovKick.Setup(m_Camera);
            m_HeadBob.Setup(m_Camera, m_StepInterval);
            m_StepCycle = 0f;
            m_NextStep = m_StepCycle/2f;
            m_Jumping = false;
            m_AudioSource = GetComponent<AudioSource>();
 m_MouseLook.Init(transform , m_Camera.transform);
        }


        // Update is called once per frame
        private void Update()
        {
            RotateView();
            // the jump state needs to read here to make sure it is not missed
            if (!m_Jump)
            {
                m_Jump = CrossPlatformInputManager.GetButtonDown("Jump");
            }

            if (!m_PreviouslyGrounded && m_CharacterController.isGrounded)
            {
                StartCoroutine(m_JumpBob.DoBobCycle());
                PlayLandingSound();
                m_MoveDir.y = 0f;
                m_Jumping = false;
            }
            if (!m_CharacterController.isGrounded && !m_Jumping && m_PreviouslyGrounded)
            {
                m_MoveDir.y = 0f;
            }

            m_PreviouslyGrounded = m_CharacterController.isGrounded;
        }


        private void PlayLandingSound()
        {
            m_AudioSource.clip = m_LandSound;
            m_AudioSource.Play();
            m_NextStep = m_StepCycle + .5f;
        }


        private void FixedUpdate()
        {
            float speed;
            GetInput(out speed);
            // always move along the camera forward as it is the direction that it being aimed at
            Vector3 desiredMove = transform.forward*m_Input.y + transform.right*m_Input.x;

            // get a normal for the surface that is being touched to move along it
            RaycastHit hitInfo;
            Physics.SphereCast(transform.position, m_CharacterController.radius, Vector3.down, out hitInfo,
                               m_CharacterController.height/2f, Physics.AllLayers, QueryTriggerInteraction.Ignore);
            desiredMove = Vector3.ProjectOnPlane(desiredMove, hitInfo.normal).normalized;

            m_MoveDir.x = desiredMove.x*speed;
            m_MoveDir.z = desiredMove.z*speed;


            if (m_CharacterController.isGrounded)
            {
                m_MoveDir.y = -m_StickToGroundForce;

                if (m_Jump)
                {
                    m_MoveDir.y = m_JumpSpeed;
                    PlayJumpSound();
                    m_Jump = false;
                    m_Jumping = true;
                }
            }
            else
            {
                m_MoveDir += Physics.gravity*m_GravityMultiplier*Time.fixedDeltaTime;
            }
            m_CollisionFlags = m_CharacterController.Move(m_MoveDir*Time.fixedDeltaTime);

            ProgressStepCycle(speed);
            UpdateCameraPosition(speed);

            m_MouseLook.UpdateCursorLock();
        }


        private void PlayJumpSound()
        {
            m_AudioSource.clip = m_JumpSound;
            m_AudioSource.Play();
        }


        private void ProgressStepCycle(float speed)
        {
            if (m_CharacterController.velocity.sqrMagnitude > 0 && (m_Input.x != 0 || m_Input.y != 0))
            {
                m_StepCycle += (m_CharacterController.velocity.magnitude + (speed*(m_IsWalking ? 1f : m_RunstepLenghten)))*
                             Time.fixedDeltaTime;
            }

            if (!(m_StepCycle > m_NextStep))
            {
                return;
            }

            m_NextStep = m_StepCycle + m_StepInterval;

            PlayFootStepAudio();
        }


        private void PlayFootStepAudio()
        {
            if (!m_CharacterController.isGrounded)
            {
                return;
            }

 if (tagAtual != "Untagged") {
 for (int x = 0; x < SomDosPassos.Length; x++) {
 if (tagAtual == SomDosPassos [x].tagchao) {
 if (SomDosPassos [x].audios.Length > 1) {
 int n = Random.Range (1, SomDosPassos [x].audios.Length);
 m_AudioSource.clip = SomDosPassos [x].audios [n];
 m_AudioSource.PlayOneShot (m_AudioSource.clip);

 SomDosPassos [x].audios [n] = SomDosPassos [x].audios [0];
 SomDosPassos [x].audios [0] = m_AudioSource.clip;
 } else {
 m_AudioSource.clip = SomDosPassos [x].audios [0];
 m_AudioSource.PlayOneShot (m_AudioSource.clip);
 }
 break;
 }
 }
 }
 else {
 if (SomPassosPadrao.Length > 1) {
 int n = Random.Range (1, SomPassosPadrao.Length);
 m_AudioSource.clip = SomPassosPadrao [n];
 m_AudioSource.PlayOneShot (m_AudioSource.clip);

 SomPassosPadrao [n] = SomPassosPadrao [0];
 SomPassosPadrao [0] = m_AudioSource.clip;
 } else {
 m_AudioSource.clip = SomPassosPadrao[0];
 m_AudioSource.PlayOneShot (m_AudioSource.clip);
 }
 }
          
        }


        private void UpdateCameraPosition(float speed)
        {
            Vector3 newCameraPosition;
            if (!m_UseHeadBob)
            {
                return;
            }
            if (m_CharacterController.velocity.magnitude > 0 && m_CharacterController.isGrounded)
            {
                m_Camera.transform.localPosition =
                    m_HeadBob.DoHeadBob(m_CharacterController.velocity.magnitude +
                                      (speed*(m_IsWalking ? 1f : m_RunstepLenghten)));
                newCameraPosition = m_Camera.transform.localPosition;
                newCameraPosition.y = m_Camera.transform.localPosition.y - m_JumpBob.Offset();
            }
            else
            {
                newCameraPosition = m_Camera.transform.localPosition;
                newCameraPosition.y = m_OriginalCameraPosition.y - m_JumpBob.Offset();
            }
            m_Camera.transform.localPosition = newCameraPosition;
        }


        private void GetInput(out float speed)
        {
            // Read input
            float horizontal = CrossPlatformInputManager.GetAxis("Horizontal");
            float vertical = CrossPlatformInputManager.GetAxis("Vertical");

            bool waswalking = m_IsWalking;

#if !MOBILE_INPUT
            // On standalone builds, walk/run speed is modified by a key press.
            // keep track of whether or not the character is walking or running
            m_IsWalking = !Input.GetKey(KeyCode.LeftShift);
#endif
            // set the desired speed to be walking or running
            speed = m_IsWalking ? m_WalkSpeed : m_RunSpeed;
            m_Input = new Vector2(horizontal, vertical);

            // normalize input if it exceeds 1 in combined length:
            if (m_Input.sqrMagnitude > 1)
            {
                m_Input.Normalize();
            }

            // handle speed change to give an fov kick
            // only if the player is going to a run, is running and the fovkick is to be used
            if (m_IsWalking != waswalking && m_UseFovKick && m_CharacterController.velocity.sqrMagnitude > 0)
            {
                StopAllCoroutines();
                StartCoroutine(!m_IsWalking ? m_FovKick.FOVKickUp() : m_FovKick.FOVKickDown());
            }
        }


        private void RotateView()
        {
            m_MouseLook.LookRotation (transform, m_Camera.transform);
        }


        private void OnControllerColliderHit(ControllerColliderHit hit)
        {
 tagAtual = hit.transform.tag;
            Rigidbody body = hit.collider.attachedRigidbody;
            //dont move the rigidbody if the character is on top of it
            if (m_CollisionFlags == CollisionFlags.Below)
            {
                return;
            }

            if (body == null || body.isKinematic)
            {
                return;
            }
            body.AddForceAtPosition(m_CharacterController.velocity*0.1f, hit.point, ForceMode.Impulse);
        }
    }
}
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61441
REPUTAÇÃO : 2154
Idade : 22
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Som Dos Passos no FPS Controller (PELA TAG DO CHÃO)

Mensagem por AndyShow em Qui Set 15, 2016 3:58 pm

Bacana, Bem Legal! Parabéns!
AndyShow
AndyShow
MembroAvançado

Masculino PONTOS : 2851
REPUTAÇÃO : 573
Idade : 36
Áreas de atuação : Blender e Unity
Respeito as regras :

Ver perfil do usuário http://mundounity3d.forumbom.com/

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Som Dos Passos no FPS Controller (PELA TAG DO CHÃO)

Mensagem por tom ramber em Sab Set 17, 2016 10:25 am

O Marcos tem como add sons de passos no Third Person
Controller ...em personagem modelo 3d
tom ramber
tom ramber
Avançado
Avançado

Masculino PONTOS : 1042
REPUTAÇÃO : 12
Idade : 31
Áreas de atuação : Blender, Unity
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Som Dos Passos no FPS Controller (PELA TAG DO CHÃO)

Mensagem por MarcosSchultz em Seg Set 19, 2016 11:48 pm

Ter tem, mas vai ter que elaborar o próprio sistema, parecido com o que eu fiz aqui:



Vai ter que elaborar uma lógica própria já que o controlador não vem com o sistema em si.
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61441
REPUTAÇÃO : 2154
Idade : 22
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Som Dos Passos no FPS Controller (PELA TAG DO CHÃO)

Mensagem por dstaroski em Seg Nov 21, 2016 8:49 am

Parabéns brow! Exatamente o que eu precisava na etapa atual do meu projeto! Abração!
dstaroski
dstaroski
Instrutor

Masculino PONTOS : 4075
REPUTAÇÃO : 1051
Idade : 29
Áreas de atuação : Téc. Hardware e Redes, Programação C#, Asp .NET, HTML, CSS, Unity 3D

Respeito as regras :

Ver perfil do usuário http://diegodeoliveira.gamejolt.io/defeattheilluminatis

Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum