Tempo de espera entre ações

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Tempo de espera entre ações

Mensagem por GustavoLC em Ter 06 Dez 2011, 15:24

Pessoal, estive estudando as funções do GML, porém aparentemente nenhuma cobre a espera de um tempo determinado até uma ação ser concluída.
Por exemplo, quero que um inimigo atire. A ação seria mais ou menos assim;

-Modifica o sprite do inimigo atirando.
-Espera um momento (2 segundos, por exemplo)
-Modifica o sprite do inimigo parado.

Existe alguma função que espere 2 segundos para depois continuar interpretando o código? Ou a única forma é através dos alarmes que, ao meu ver confunde muito na hora de escrever o código??

A função sleep() não é interessante, pq ela pára TUDO na tela e não é isso que eu quero. Eu queria uma função independente de alarmes, que simplesmente aguardasse 2 segundos até partir para a próxima linha. Alguém conhece a função para isso ou tem algum script pronto?? Desde já agradeço.

[Editado por saim]: Movido para a seção adequada

GustavoLC

Número de Mensagens : 39
Data de inscrição : 20/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Tempo de espera entre ações

Mensagem por Ritton em Ter 06 Dez 2011, 15:32

Acredito que a melhor maneira é os alarms que parecem ser complicado, mas acredite, são bem fáceis. Para se trabalhar com eles, primeiro crie um evento Alarm0 e defina o tempo de espera e depois no evento de ação, supomos que o clique do mouse, você insere esse tempo no código, marcando a transição entre as duas.

Desculpe pela explicação ruim é que estou ocupado e quase sem tempo de ver o que está acontecendo no fórum.

Até mais!

Ritton

Ranking : Nota C
Número de Mensagens : 673
Idade : 18
Data de inscrição : 07/06/2011
Notas recebidas : C
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Tempo de espera entre ações

Mensagem por saim em Ter 06 Dez 2011, 17:31

Os alarms são scripts prontos.
Basicamente, o que acontece é o seguinte: você está colocando uma ação no step, mas você não quer que essa ação ocorra a todo e qualquer step. Você coloca uma CONDIÇÃO. If isso, then aquilo.
Enão você quer que a ação ocorra um TEMPO depois de uma outra. Você altera uma variável, como "tempoCorrendo" e joga uma outra, "countDown" pra, por exemplo, 20. Sempre que "tempoCorrendo" for true, "countDown" será subtraído de 1.
Quando "countDown" for igual a zero, aquela ação pode ocorrer. Quando "countDown" for igual a -1, "tempoCorrendo" passa a ser false.
Basicamente, é assim que os ALARMS funcionam, só que o game maker te traz tudo prontinho e embalado, só colocar no microondas e servir.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Tempo de espera entre ações

Mensagem por GustavoLC em Ter 06 Dez 2011, 18:39

Pessoal, eu entendo a utilização dos alarmes, mas fica complicado quando você quer ações mais complexas, como um inimigo lançar um projétil, aguardar ele voltar e enquanto isso ficar esperando.
Seria muito mais fácil se houvesse por exemplo uma função tipo wait(300), que esperaria 300 passos para continuar...

GustavoLC

Número de Mensagens : 39
Data de inscrição : 20/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Tempo de espera entre ações

Mensagem por Thyago em Ter 06 Dez 2011, 19:22

.Na verdade alarms são estremamentes simples,mas indo ao pé da letra o
exemplo que você fez é muito simples.
ex:
create:
Código:
wait=0;
em strep:
Código:
 if(wait>0)
{
wait-=1;
}
if (wait=0)
{
executa seu codigo;
wait=300;
}
.Só um exemplo do que você disse que seria facil,se "tivesse"como fazer.

Thyago

Ranking : Nota B
Número de Mensagens : 1092
Idade : 30
Data de inscrição : 24/08/2009
Notas recebidas : D+B+B+C+A
Reputação : 31
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 1
   :

Voltar ao Topo Ir em baixo

Re: Tempo de espera entre ações

Mensagem por GustavoLC em Ter 06 Dez 2011, 22:04

Thyago escreveu: .Na verdade alarms são estremamentes simples,mas indo ao pé da letra o
exemplo que você fez é muito simples.
ex:
create:
Código:
wait=0;
em strep:
Código:
 if(wait>0)
{
wait-=1;
}
if (wait=0)
{
executa seu codigo;
wait=300;
}
.Só um exemplo do que você disse que seria facil,se "tivesse"como fazer.

Não, cara. wait() no step? Eu disse isso considerando que fosse uma função. Não tem jeito, já que deveria ser usado em diversos eventos de diversos objetos. É uma pena que não tenha no game maker. Estou adorando este programa, mas está é uma primeira falha. Até no RPG Maker que é bem mais simples tem...


GustavoLC

Número de Mensagens : 39
Data de inscrição : 20/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Tempo de espera entre ações

Mensagem por gabrielsch em Ter 06 Dez 2011, 23:06

GustavoLC escreveu:Pessoal, eu entendo a utilização dos alarmes, mas fica complicado quando você quer ações mais complexas, como um inimigo lançar um projétil, aguardar ele voltar e enquanto isso ficar esperando.
Seria muito mais fácil se houvesse por exemplo uma função tipo wait(300), que esperaria 300 passos para continuar...
Isso é muito fácil!
Além do mais, acho que tem as funções Trigger que se eu não me engano são mais ou menos como os Alarms...

Mas não há outra maneira mais facil de fazer o que tu quer fazer sem ser com Alarms, por exemplo:
GustavoLC escreveu:...mas fica complicado quando você quer ações mais complexas, como um inimigo lançar um projétil, aguardar ele voltar e enquanto isso ficar esperando...

Isso não é complexo, pelo menos para mim que ja tenho uma certa experiencia, estude bem os Alarms e vai ver como é super fácil utiliza-los da forma que você quer!

___________


Acesse: http://foxen.com.br/



gabrielsch

Ranking : Nota A
Número de Mensagens : 1229
Idade : 21
Data de inscrição : 06/12/2009
Notas recebidas : D + A + A
Reputação : 28
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 2
   : 0

Voltar ao Topo Ir em baixo

Re: Tempo de espera entre ações

Mensagem por Limalokão em Qua 07 Dez 2011, 02:21

http://gmbr.forumeiros.com/t5238-como-fazer-quando-o-player-atirar-esperar-2sec-para-atirar-denovo?highlight=2sec

Neste Tuto a amigo ensina o inimigo atirar a cada dois segundos! Ou seja Ele espera 2 segundos para executar a ação! Você tbm pode usar timeline que também tem uma função ótima para executar ações a cada certo tempo!! Flws

Limalokão

Ranking : Nota C
Número de Mensagens : 803
Idade : 24
Data de inscrição : 24/11/2009
Notas recebidas : C
Reputação : 10
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Tempo de espera entre ações

Mensagem por saim em Qua 07 Dez 2011, 15:36

GustavoLC escreveu:Pessoal, eu entendo a utilização dos alarmes, mas fica complicado quando você quer ações mais complexas, como um inimigo lançar um projétil, aguardar ele voltar e enquanto isso ficar esperando.
Seria muito mais fácil se houvesse por exemplo uma função tipo wait(300), que esperaria 300 passos para continuar...
Espera um minuto... Você quer esperar o projétil voltar ou o tempo passar? Só existe uma forma de esperar o tempo passar: não fazendo nada durante esse tempo.
Pra não fazer nada, use uma variável e diga: se a variável for true, faça coisas, else, não faça nada.
Adivinha qual é a forma mais fácil de transformar uma variável de false pra true depois de um tempo determinado!
Não existe essa função "wait(tempo)" pra objetos , então você terá que usar essa estrutura de condicional.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Tempo de espera entre ações

Mensagem por GustavoLC em Qua 07 Dez 2011, 21:19

É oseguinte, pessoal. Estou fazendo um remake de megaman e na criação de um dos bosses, me deparei com essa tal complexidade que cito. O resultado que eu gostaria eu consegui usando os alarmes, porém me pareceu gratuitamente complexo usar um alarme apenas para marcar tempo (ficar pulando de um evento pro outro). Sobre os triggers e timeline, confesso que nunca usei e nem sei direito como usar, mas vou estudar. Assim que meu jogo estiver mais organizado, eu posto aqui pra vcs darem uma olhada. Abraços a todos.

GustavoLC

Número de Mensagens : 39
Data de inscrição : 20/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Tempo de espera entre ações

Mensagem por CRP-Max em Qua 07 Dez 2011, 22:25

Só uma dica, caso você esteja fazendo ele em códigos:
No create do boss:
Código:
Boomerang=0 //só vai ser + quando ele jogar o boomerang

No evento atirar o boomerang.
Código:
boomerang=1

Na primeira linha do step do boss coloca um "if" assim:
Código:
if boomerang=0 {
//deixa todos os códigos, não mexa em nada do que já tem ok?
//..........
//..........
//..........
//cria mais uma linha no final e coloca assim
}
else {
if boomerang=300 {boomerang=0}
else
{
boomerang+=1}}
Quando jogar o boomerang, nada que tiver no step vai funcionar ate que boomerang seja "0" de novo:

Riscos:
1º veja se as funções de gravidade ou outras de controle do jogo não estejam no meio do código pois elas vão ficar paradas ate boomerang ser "0".
2º caso as funções de movimento do boss estejam em eventos separados eles irão funcionar, tem que colocar o "if" la também mas não coloque a linha final inteira só esse "}"

Esse também é um jeito de parar um personagem apenas, deixando o resto do jogo rodar normalmente.

Caso seja para o player, pode usar, mas corre-se o risco de alguma função parar de funcionar.
Se você fez todos os códigos vai conseguir arruma tudo.
pirat

CRP-Max

Ranking : Nota C
Número de Mensagens : 819
Idade : 41
Data de inscrição : 28/10/2008
Notas recebidas : C
Reputação : 29
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Tempo de espera entre ações

Mensagem por GustavoLC em Qua 07 Dez 2011, 23:38

Crp, não tem como eu testar agora, mas acho que isso travaria o jogo. Digo isso porque ontem desenvolvi uma ideia que na hora de programar não deu certo. A ideia era o seguinte: criar um script chamado scr_wait().

No Evento Create do objeto, eu declaro a variável v_time como zero e a variável v_ontimer=0(timer desligado)

No evento End Step (pq no Step já tinha outras coisas), eu coloquei um if do tipo:

Se v_ontimer=1{v_time+=1} Se o temporizador estiver ligado, a cada fim de passo, a variável v_time é incrementada em 1.

E finalmente no script, havia o código:
v_time=0;
v_ontimer=1; //para ligar o temporizador
while v_time!=300 {} //não faz nada, mas pára tudo enquanto não se passar os 300 endsteps para incrementar a vairável v_time...

Não sei se ficou claro, não estou no meu computador, mas o importante é que parou TUDO, como se eu tivesse utilizado a função sleep(300)... Não foi dessa vez.

Sobre a utilização dos alarmes, volto a dizer que elas resolvem os problemas, mas no final das contas deixa a programação um pouco confusa. Veja só, no meu boss, ele possui 4 ações distintas: usei quase todos os alarmes para que fossem feitas de forma eficiente, sendo que alguns eram meramente para mudar o sprite e velocidade de animação...
Acaba que fica complicado, pois o alarme 1, 2 e 8 estão linkados, depois o 3,4,10...mas só isso mesmo.

GustavoLC

Número de Mensagens : 39
Data de inscrição : 20/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Tempo de espera entre ações

Mensagem por saim em Qui 08 Dez 2011, 00:35

Vou te explicar porque travou. Você usou um while infinito.
v_time era zero. Enquanto v_time fosse diferente de 300, o computador seguiria executando aquela ação (nenhuma), até que v_time fosse 300. Isso nunca iria acontecer, então você ficou travado naquele step.
Não foi nada parecido com a função sleep, que segura o jogo (só o jogo, não o computador inteiro) por um tempo DETERMINADO.

O que você QUASE fez foi um alarm não-built-in, ou seja, você chegou perto de elaborar seu próprio alarm. É uma alternativa, pro caso de acabarem os alarms.

Agora, um erro dessa sua lógica foi achar que ao colocar uma ação nula sob determinada condição o objeto cessaria de executar as outras ações. Faça o teste: repita sua lógica, mas troque o while por um if. Você nem notará que o if está lá, porque ele não faz nada.

Não estou escrevendo pra criticar. É que esse raciocínio pode ser fatal e se você não entender onde errou, pode ter problemas bem sérios ao tentar códigos mais complexos.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Tempo de espera entre ações

Mensagem por CRP-Max em Sex 09 Dez 2011, 15:28

Só pra complementar a diferença do while e do if:

while, ele é um loop que para o todo o programa enquanto seu valor for verdadeiro, parecendo um "sleep".

if, caso o seu valor seja falso, ele continua executando todos os comandos menos os que estão dentro dos "{}".

Essa é a diferença entre meu código e o seu, caso o meu esteja errado o único que vai parar é o objeto que estiver usando o if, os outros vão continuar sendo executados.

CRP-Max

Ranking : Nota C
Número de Mensagens : 819
Idade : 41
Data de inscrição : 28/10/2008
Notas recebidas : C
Reputação : 29
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Tempo de espera entre ações

Mensagem por GustavoLC em Sex 09 Dez 2011, 19:08

Saim, perceba que no evento End Step, a variável v_time é incrementada em 1. O meu raciocínio foi que enquanto o while infinito estivesse acontecendo, a variável fosse continuamente incrementada, até passar 300 passos. Nesse momento, ela interromperia o loop, nos exatos 300 passos, conforme eu havia planejado.

CRP-Max, se for assim, vou testar o raciocínio usando if. Não sabia dessa particularidade do while (que ele pára tudo o que está acontecendo)...

GustavoLC

Número de Mensagens : 39
Data de inscrição : 20/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Tempo de espera entre ações

Mensagem por GustavoLC em Sex 09 Dez 2011, 19:59

Procurei nos fóruns estrangeiros e o pessoal sempre diz a mesma coisa, que o uso de alarmes não é complicado. Assim sendo, vou tentar ilustrar a facilidade que seria uma função wait().

Pra começar, a função funcionaria da seguinte forma:

Por exemplo, Wait(300): o evento pausará por 300 passos antes de realizar a próxima ação. Entendido? Agora o exemplo:

Eu quero um inimigo que tenha 2 ataques e o primeiro ataque será feito após 300 passos de sua criação. Findado este tempo, será escolhido aleatoriamente o ataque. Contudo, o ataque do primeiro projétil deve acionar uma animação que dura 24 steps e o segundo ataque, uma animação que dura 12 steps.

Como isso é feito atualmente no GM, segue abaixo:

=============
Ev Create:
image_speed=0;
alarm[0]=300;
=============
Alarm0
action=irandom_range(1,2)

if action=1
{
sprite_index= spr_lançando_projetil;
image_speed=1;
alarm[1]=24;
}

if action=2
{
sprite_index= spr_lançando projetil2;
image_speed=1;
alarm[2]=12;
============
Alarm1
instance_create(10,10,obj_projetil);
sprite_index=spr_inimigo_parado;
image_speed=0;
alarm[0]=300;
==================
Alarm2
instance_create(10,10,obj_projetil2);
sprite_index=spr_inimigo_parado;
image_speed=0;
alarm[0]=300;
===========

Percebam que a função do alarm0 cuida apenas da escolha do projétil e, dependendo do projétil, aciona alarmes diferentes para executar. No total, são utilizados 3 alarmes para tudo, onde para cada ação, é necessário a utilização de 1 alarme. Assim, se o inimigo tivesse 5 ataques, usaria 6 alarmes.

Agora, como ficaria o mesmo código se houvesse algo similar à função wait:

========
Ev Create:
image_speed=0;
alarm[0]=300;
========
Alarm0:
action=irandom_range(1,2)

if action=1
{
sprite_index= spr_lançando_projetil;
image_speed=1;
wait(24);
instance_create(10,10,obj_projetil);
sprite_index=spr_inimigo_parado;
image_speed=0;
alarm[1]=300;
}

if action=2
{
sprite_index= spr_lançando projetil2;
image_speed=1;
wait(12);
instance_create(10,10,obj_projetil2);
sprite_index=spr_inimigo_parado;
image_speed=0;
alarm[1]=300;
==============
Alarm1:
alarm[0]=300;
==============

Os dois ataques são definidos diretamente no Alarm0, sendo que o Alarm1 funciona exclusivamente como carregador do gatilho do Alarm0. Desta forma, são usados apenas 2 alarmes. E se o inimigo tivesse 5 golpes similares ao lançamento de projétil? Continuaríamos usando 2 alarmes, pois toda a ação seria feita dentro do Alarm0, independente se haveria animação ou não.

Antes que alguém diga que 5 ataques para um mesmo inimigo é exagerado ou que mesmo assim, há 12 alarmes para serem usados, é preciso dizer que o exemplo que dei é bem simples e foi utilizado apenas para ilustrar o meu raciocínio. Na prática, outros alarmes seriam utilizados para fazer outras ações como verificar pontos de saúde, recarregar variáveis,etc.

A função wait(), deixaria a escrita do código bem mais fácil de ser estudada e interpretada. não concordam?


GustavoLC

Número de Mensagens : 39
Data de inscrição : 20/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Tempo de espera entre ações

Mensagem por luiz_eldorado em Sex 09 Dez 2011, 20:46

O que você poderia fazer é um script chamado wait (claro), mas o que ele faria seria criar um objeto que faça tais ações. Vamos ver, como se fosse:
Código:

//wait(steps,acao)
var obj;
obj=object_add()
object_event_add(obj,ev_create,0,"alarm[0]="+string(argument0))
object_event_add(obj,ev_alarm,0,argument1+"
instance_destroy()
object_delete(obj)")
Algo assim. Porém, eu não testei e fiz de cabeça. O problema é que todas as ações que serão adicionadas depois do wait teriam que ser colocadas dentro de um argumento do script em forma de string.

Até mais!

luiz_eldorado

Ranking : Nota C
Número de Mensagens : 928
Idade : 17
Data de inscrição : 30/07/2011
Notas recebidas : C
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

http://luizpontes.tk/

Voltar ao Topo Ir em baixo

Re: Tempo de espera entre ações

Mensagem por GustavoLC em Sex 09 Dez 2011, 21:49

luiz, também pensei em algo do tipo, criar um objeto, mas mesmo assim seria complicado. É uma pena não ter a função wait ou algo similar a ela, facilitaria muitooo!

GustavoLC

Número de Mensagens : 39
Data de inscrição : 20/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Tempo de espera entre ações

Mensagem por saim em Sex 09 Dez 2011, 23:20

Você só quer que ele espere pelo tempo da animação? Ora, já ouviu falar no evento animation_end? Está lá na guia "other". Coloque, nesse evento:
Código:
switch(action){
  case 1: //faz o que você colocou no alarm1; break;
  case 2: //faz o que você colocou no alarm2; break;
  //etc
  }
Ou, melhor ainda, se for só criação de projéteis diferentes, armazene as informações em arrays cuidadosamente preparadas e, nessa hora... nesse evento... lasque isso aqui:
Código:
instance_create(x, y, obj_projetol[action];
alarm[0] = 300;
E, no alarm[0],
Código:
action = irandom_range(1, número de ações);
sprite_index= spr_lançando projetil[action]

Edit:
Saim, perceba que no evento End Step, a variável v_time é incrementada em 1. O meu raciocínio foi que enquanto o while infinito estivesse acontecendo, a variável fosse continuamente incrementada, até passar 300 passos. Nesse momento, ela interromperia o loop, nos exatos 300 passos, conforme eu havia planejado.
É aí que está um erro de lógica que eu levei semanas pra entender, quando comecei a programar. O while INTEIRO acontece num step só. Aliás, não é num step, é naquele conjunto de linhas do evento. Veja esse exmplo:
Código:
i=0;
while(i!=1){ //enquanto i não for 1
i=random(2)
}
Esse é um exemplo que VAI travar seu computador, portanto não teste. No começo do código, i = 0, então ao entrar no while, a condição de saída não será satisfeita.
Aí, o computador vai jogando valores aleatórios entre 0 e 2. Quando o valor 1 EXATO for lançado, a condição será satisfeita e o programa seguirá executando as linhas seguintes. Só que vai levar muito tempo pro random retornar exatamente 1. "Muito tempo" pode ser 5 minutos ou uma semana.

Existem outros loops passivos de trancar seu computador. Exemplos:
Código:
for(i=0;i<5;i+=1){
i-=1
}
Código:
do{i=0}until(i=1)
Código:
for(i=0;i<5;i+=1){
if i>=5
continue
}

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Tempo de espera entre ações

Mensagem por Conteúdo patrocinado Hoje à(s) 14:34


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

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