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

Esqueci-me da senha

Últimos assuntos
» Retorno da GMBR!!!
por theguitarmester Ter 19 Mar 2024, 22:38

» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Mudar cor de apenas uma palavra
por lunalol Sex 01 Mar 2024, 13:42

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21

» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21

» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39

» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16

» a funçao approach ainda existe?
por PEDRINDEV Ter 26 Dez 2023, 20:05

» Inimigo ataca até por trás! >:(
por saim Sex 22 Dez 2023, 08:55

» [RESOLVIDO]Spawn após morte
por Deception_1999 Dom 17 Dez 2023, 16:39

» Remunerado $$$ - Procuro programador para ajudar a "montar" um jogo
por theguitarmester Sáb 02 Dez 2023, 16:28

» Game maker nao abre
por Cerf Dom 26 Nov 2023, 12:01


[Tutorial] Criando Missões

4 participantes

Ir para baixo

[Tutorial] Criando Missões Empty [Tutorial] Criando Missões

Mensagem por Gonçalves Qua 13 Mar 2013, 23:42

Tutorial
Criando Missões com Objetivos

Você quer adicionar um pouco mais de diversão aos seu jogos? Que tal adicionar um sistema bem simples de missão? É bem simples de fazer, funciona pra qualquer tipo de jogo e é fácil de deixar do seu jeito. Primeiramente vamos baixar essa engine que servirá de base pra gente:

Engine Base

Veja bem como funciona tudo na engine, nosso foco não é ela, mas é bom que entenda como tudo ocorre. Ela tem um jogador, que se move com WSAD e atira com o mouse, um obj_aliado, que não faz nada, e um obj_inimigo, que ataca quem estiver mais próximo.

Desenvolvimento

Primeiro vamos criar nosso objeto missao1, com depth -100000, já coloque-o na room. Agora exclua todos os outros objetos, exceto os blocos e o jogador.

No Create, vamos colocar tudo que terá no início da missão, no nosso caso, definiremos a variável objetivo como 0 e logo depois a mensagem inicial.

Código:
objetivo = 0
show_message("Está a nossa missão.")

Agora criaremos um inimigo (crie onde quiser) salvando-o numa variável. E logo após, outra mensagem:

Código:
show_message("Seu primeiro objetivo é matar um inimigo.")

E pra finalizar, criaremos a variável desc que salvará a descrição do objetivo atual:

Código:
desc = ""

No todo, ficará assim:

Código:
objetivo = 0
show_message("Está a nossa missão.")
meu_inimigo = instance_create(600,300,obj_inimigo1)
show_message("Seu primeiro objetivo é matar um inimigo.")
desc = ""

Vamos desenhar no Draw o objetivo atual.

Código:
draw_set_color(c_red)
draw_text(10,room_height-30,desc)

Agora começaremos a criar o sistema de objetivos, que vai no Step. Vamos começar com a seguinte estrutura:

Código:
if objetivo = 0
{
    // Descrição do objetivo
    Código

    // Outros
    Código

    // Condição de fracasso
    Código

    // Condição de sucesso
    Código
}

Onde está "código" vamos adicionar o conteúdo do objetivo, em cada "aba". Vamos usar esse exemplo:

Código:
if objetivo = 0
{
    // Descrição do objetivo
    desc = "Mate o inimigo"
   
    // Outros

    // Condição de fracasso
    if ! instance_exists(obj_jogador)
    {
        show_message("MISSÃO FRACASSADA!")
        game_restart()
    }
   
    // Condição de sucesso
    if ! instance_exists(meu_inimigo)
    {
        objetivo += 1
    }
}

Explicando as abas:

"Descrição do objetivo": O código atualiza a descrição atual. A atualização é feita a cada Step, o que não é a forma mais adequada apesar de que muito dificilmente isso pesará no jogo. Cabe ao programador otimizar da melhor mais viável pra ele. Eu costumava atualizar a descrição de objetivo apenas quando cumprisse o anterior, mas prefiro assim.

"Outros": Nessa "aba", eu deixo tudo que não se encaixa no resto, como timers por exemplo, o que não usaremos nesse exemplo.

"Condição de fracasso": Condição para que a missão seja dada como fracassada. Nesse caso, apenas a morte do jogador nos dará esse resultado.

"Condição de sucesso": Condição para que o objetivo seja alcançado e a missão avance, ou se for o caso do último, a missão seja dada como cumprida. Nela checamos se o meu_inimigo, criado no início da missão, não existe/está morto, se sim, avançar.

Agora, como teste, colocaremos abaixo dessa estrutura (fora dela, claro) essa:

Código:
else if objetivo = 1
{
    // Descrição do objetivo
    desc = "Espere 5 segundos para que a missão seja dada como cumprida"
   
    // Outros
    tempo += 1
   
    // Condição de fracasso
    if ! instance_exists(obj_jogador)
    {
        show_message("MISSÃO FRACASSADA!")
        game_restart()
    }
   
    // Condição de sucesso
    if tempo >= room_speed*5
    {
        show_message("MISSÃO CUMPRIDA!")
        game_restart()
    }
}

Crie a variável tempo no Create e defina como 0.

O objetivo é apenas esperar 5 segundos, e aí então será decretada como cumprida a missão.

Apague esse último objetivo, agora vamos adicionar ao efeito da condição de sucesso do objetivo 0 a criação de um obj_aliado, salvando-o numa variável. Que ficará assim:

Código:
// Condição de sucesso
    if ! instance_exists(meu_inimigo)
    {
        objetivo += 1
        meu_aliado = instance_create(room_width/2,room_height/2,obj_aliado)
    }

Criaremos o objetivo 1, que ficará assim:

Código:
else if objetivo = 1
{
    // Descrição do objetivo
    desc = "Proteja a seu aliado dos inimigos ("+string(20-floor(tempo/room_speed))+" segundos restantes)"
   
    // Outros
    tempo += 1
    spawn += 1
   
    if spawn >= 30
    {
        ox = random(room_width)
        oy = random(room_height)
       
        if ! collision_circle(ox,oy,50,obj_bloco,0,0)
        and ! collision_circle(ox,oy,120,obj_jogador,0,0)
        and ! collision_circle(ox,oy,120,obj_aliado,0,0)
        {
            instance_create(ox,oy,obj_inimigo1)
            spawn = 0
        }
    }
   
    // Condição de fracasso
    if ! instance_exists(obj_jogador)
    or ! instance_exists(meu_aliado)
    {
        show_message("MISSÃO FRACASSADA!")
        game_restart()
    }
   
    // Condição de sucesso
    if tempo >= room_speed*20
    {
        show_message("MISSÃO CUMPRIDA!")
        game_restart()
    }
}

Crie a variável spawn no Create e defina como 0.

Ele é um pouco mais complexo. O que acontece nesse?

A descrição tem um contador do tempo restante.

Em "Outros" temos o temporizador da missão e de spawn dos inimigos. Logo após fazemos a checagem do tempo de spawn e criamos um inimigo, também, checamos se ele não está perto demais do jogador, do aliado, e dos blocos.

A condição de fracasso agora, além da morte do jogador, é também a do aliado.

A condição de sucesso é a variável tempo bater 20 segundos, que dará a missão como cumprida.

Engine

A engine final você pode baixar aqui:

  • Engine Exemplo (Básico)
  • Engine Exemplo (Intermediário)
  • Engine Exemplo (Avançado)


Obrigado pela atenção, espero que seja útil!


Última edição por Gonçalves em Sáb 16 Mar 2013, 08:16, editado 5 vez(es)
Gonçalves
Gonçalves

Games Ranking : Nota B

Notas recebidas : B + A + C
Data de inscrição : 29/10/2010
Reputação : 79
Número de Mensagens : 1013
Prêmios : [Tutorial] Criando Missões Empty

Medalhas x 0 Tutoriais x 4 Moedas x 0

Ouro x 2 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Tutorial] Criando Missões Empty Re: [Tutorial] Criando Missões

Mensagem por Isaque Onix Qua 13 Mar 2013, 23:52

Ótimo tutorial, gostei mesmo!!! Feliz
Isaque Onix
Isaque Onix

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 15/08/2010
Reputação : 147
Número de Mensagens : 1625
Prêmios : [Tutorial] Criando Missões Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Unity
  • C#
  • Outros


http://spyreserver.16mb.com

Ir para o topo Ir para baixo

[Tutorial] Criando Missões Empty Re: [Tutorial] Criando Missões

Mensagem por Gonçalves Qui 14 Mar 2013, 02:49

@MC D_LIRIO:

Obrigado! Criei um outro exemplo de missão:

Engine Exemplo (Intermediário)

Spoiler:

Nesse tem contador de mortes, objetivo de "falar com...", e um exemplo de como retornar o motivo do fracasso (no último objetivo). A engine do próprio TDS é um pouquinho mais complexa, mas nada grave, rs.

Até mais! elephant


Última edição por Gonçalves em Qui 14 Mar 2013, 06:16, editado 2 vez(es)
Gonçalves
Gonçalves

Games Ranking : Nota B

Notas recebidas : B + A + C
Data de inscrição : 29/10/2010
Reputação : 79
Número de Mensagens : 1013
Prêmios : [Tutorial] Criando Missões Empty

Medalhas x 0 Tutoriais x 4 Moedas x 0

Ouro x 2 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Tutorial] Criando Missões Empty Re: [Tutorial] Criando Missões

Mensagem por Isaque Onix Qui 14 Mar 2013, 03:40

flw, só num vou baixar agora purque estou baixando umas parada pra um outro projeto É MAIS PESADO QUE BAIXAR O GTA SAN ANDREAS mais é um arquivo particular de um amigo meu e ele vai deletar... mais assim q o download terminar, se eu ainda tiver vivo, eu baixo a nova engine o/
Isaque Onix
Isaque Onix

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 15/08/2010
Reputação : 147
Número de Mensagens : 1625
Prêmios : [Tutorial] Criando Missões Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Unity
  • C#
  • Outros


http://spyreserver.16mb.com

Ir para o topo Ir para baixo

[Tutorial] Criando Missões Empty Re: [Tutorial] Criando Missões

Mensagem por Gonçalves Qui 14 Mar 2013, 09:03

Criei outra engine, com todas as missões anteriores juntas, numa engine melhorzinha:

Engine Exemplo (Avançado)

Com cutscenes, etc. Pode ser que a última missão dê algum erro (não chegou a acontecer comigo), estou testando ainda pra ver se acho algum erro.
Gonçalves
Gonçalves

Games Ranking : Nota B

Notas recebidas : B + A + C
Data de inscrição : 29/10/2010
Reputação : 79
Número de Mensagens : 1013
Prêmios : [Tutorial] Criando Missões Empty

Medalhas x 0 Tutoriais x 4 Moedas x 0

Ouro x 2 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Tutorial] Criando Missões Empty Re: [Tutorial] Criando Missões

Mensagem por DNilo Qui 14 Mar 2013, 09:24

Gonçalves Realmente uma ótima engine =) vai me ajudar em um projeto !

e você estava falando sobre algum erro, quando joga no modo avançado, assim que você fracassa na missão ela fica reiniciando sem ter fim =) aqui pelo menos aconteceu isso 2 vezes, mais como irei usar só pra estudos pra mim esta de boa =)

Obrigado por compartilhar !
DNilo
DNilo

Data de inscrição : 22/02/2013
Reputação : 8
Número de Mensagens : 108
Prêmios : [Tutorial] Criando Missões Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.gamindie.com.br

Ir para o topo Ir para baixo

[Tutorial] Criando Missões Empty Re: [Tutorial] Criando Missões

Mensagem por saim Qui 14 Mar 2013, 10:41

Não cheguei a baixar a engine, mas pelo texto, parece que dá pra melhorar em alguns aspectos.
Scripts, aqui, podem ser muito úteis. Vou considerar que todo mundo concorda e dar minhas sugestões com base nisso.
Seria legal fazer uma variável pra ver se EXISTE uma missão ativa ou não. Só rode os scripts de missão se houver alguma missão ativa. Isso vai deixar o step ridiculamente leve, se não houver uma missão em andamento, e tão leve quanto possível se houver.
Aí, comece o jogo com as missões desativadas e defina eventos pra iniciar uma missão.
No objeto "objMissoes"
>create<
Código:
ativo = false; // se está rolando uma missão ou não
objetivo = 0; // qual a missão a ser cumprida
Nmissoes = 3; // número de missões (alterar conforme o jogo)
>step<
Código:
if (ativo){
   verificaStatusDaMissao(objetivo);
   }
>evento que inicia a missão - pode ser apertar uma tecla, um trigger ou user event, pode ser um evento desencadeado por NPCs, pode ser o diabo a quatro<
Código:
ativo = true;
// outras alterações na room - volto nesse assunto mais pra frente
Aí, você tem o script "verificaStatusDaMissao" - que ainda não mostrei como pode ser (é o próximo). Ele, na verdade, vai usar a missão que está rolando como argumento pra chamar um outro script. Esse outro script é que vai controlar a missão, de fato, com as condições de sucesso ou fracasso. O script pode ser assim:
Código:
// verificaStatusDaMissao(missaoAgora)
// roda o script da missão em andamento
var emAndamento;
emAndamento = argument0; // só pra deixar o script mais legível - poderia usar argument0, mesmo.
switch (emAndamento){ // um switch é sempre melhor que dezenas de if-elses
   case 0: scriptDaMissao0();
      break;
   case 1: scriptDaMissao1();
      break;
   case 2: scriptDaMissao2();
      break;
   // e assim vai.
   }
Por fim tem os scripts das missões. Acho legal tirar o andamento da missão assim que ela chegar ao fim, tanto em caso de sucesso quanto de fracasso. Lembrando que esses scripts vão rodar a cada step que tiver uma missão em andamento, a alteração pro seu primeiro exemplo (matar 1 inimigo) ficaria mais ou menos assim:
Código:
if (!instance_exists(obj_jogador){ // falhou
   show_message("MISSÃO FRACASSADA!"); // mostra que falhou
   ativo = false; // finaliza a missão
   }
if (! instance_exists(meu_inimigo)){ // sucesso
   show_message("MISSÃO COMPLETA!"); // mostra que teve sucesso
   ativo = false; // finaliza a missão
   objetivo += 1; // pra não repetir a missão
   }
E você pode fazer o que quiser quando o valor de "objetivo" for igual a "nMissoes": voltar pra zero, parar as missões, finalizar o jogo, dar um bônus, o que quiser. Pode criar outro script pra isso!


Agora, quanto ao comentário que eu fiz no evento que inicializa a missão, o mesmo raciocínio pode ser aplicado: rode um script que faz uma coisa diferente pra cada valor de "objetivo". Se for "0", cria um inimigo na posição tal, se for "1", não faz nada, se for "2", cria um monte de inimigos em posições aleatórias, etc.

Ainda é possível eliminar a necessidade do script "verificaStatusDaMissao" se no crate event você colocar todos os scripts de missões numa array. Aí, ao invés de chamar um script pra chamar outro, você usa a função "script_execute" e usa como argumento a array no índice "objetivo". O create ficaria assim:
Código:
//parte inalterada
ativo = false; // se está rolando uma missão ou não
objetivo = 0; // qual a missão a ser cumprida
Nmissoes = 3; // número de missões (alterar conforme o jogo)
//coloca os scripts numa array
arrayDeScripts[0] = scriptDaMissao0;
arrayDeScripts[1] = scriptDaMissao1;
arrayDeScripts[2] = scriptDaMissao2;
E o step ficaria assim:
Código:
if (ativo){
   script_execute(arrayDeScripts[objetivo]);
   }
saim
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : [Tutorial] Criando Missões Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Tutorial] Criando Missões Empty Re: [Tutorial] Criando Missões

Mensagem por Gonçalves Qui 14 Mar 2013, 18:29

@DNilo:

Obrigado, cara. Vou ver se faço mais uns exemplos.

@saim:

Então cara, eu vou fazer um exemplo de missões de cidade mesmo, no qual tem isso de usar um mesmo mapa pra várias missões. Talvez você possa ter entendido errado algumas coisas, por exemplo:

Nesses exemplos que fiz, cada objeto de missão fica em um mapa, ou seja, você já entra numa missão com ela ativa, e os outros não chegam a rodar sem necessidade.

objetivo é a variável que aumenta a cada objetivo da missão que você completa, por exemplo, uma missão pode ter uns 10 deles. Eu poderia criar uma variável missões pro caso que você citou ali.

Você acha que ficaria melhor se o Step das missão ficasse num script? De qualquer forma, farei um exemplo assim aí quem for usar decide como é melhor.

Não vou comentar tudo que você escreveu mas levei em consideração também, vou ver se crio um exemplo de uma cidadezinha com algumas missões pra fazer, inclusive com missões que só podem ser desbloqueadas se outras forem feitas, etc.

VALEU! =D
Gonçalves
Gonçalves

Games Ranking : Nota B

Notas recebidas : B + A + C
Data de inscrição : 29/10/2010
Reputação : 79
Número de Mensagens : 1013
Prêmios : [Tutorial] Criando Missões Empty

Medalhas x 0 Tutoriais x 4 Moedas x 0

Ouro x 2 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Tutorial] Criando Missões Empty Re: [Tutorial] Criando Missões

Mensagem por Isaque Onix Qui 14 Mar 2013, 18:41

que aliado legal esse que mata a gente kkk brincadeira

ta muito boa essa engine, só achei ruim os 'caras que atiram' atirarem antes mesmo de ver a gente, mais é só uma engine, quem quiser que edite né XD
Isaque Onix
Isaque Onix

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 15/08/2010
Reputação : 147
Número de Mensagens : 1625
Prêmios : [Tutorial] Criando Missões Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Unity
  • C#
  • Outros


http://spyreserver.16mb.com

Ir para o topo Ir para baixo

[Tutorial] Criando Missões Empty Re: [Tutorial] Criando Missões

Mensagem por saim Sex 15 Mar 2013, 09:18

O que eu mostrei é só uma forma diferente de fazer a mesma coisa. Realmente eu tinha entendido que você estava usando "objetivos" como "missões", mas meio que pode ser assim. A condição de sucesso da missão é que teria que ser um "if" cheio de "and's".

Dessa forma que eu mostrei, a missão pode ser ativada em qualquer momento, não existe a necessidade de entrar no mapa com ela ativa, basta definir qual evento irá ativá-la. Sei que do seu jeito isso é possível também, mas assim já está pronto.
Isso é importante pra jogos com história não-linear, como GTA, mas realmente não me preocupei em possibilitar que existam mais de uma missão ativa ao mesmo tempo, como na maioria dos RPGs. Se eu me lembrar, mais tarde, vou tentar melhorar isso (mas não imediatamente, o bicho tá pegando aqui tonto ).

Não fica MELHOR se usar scripts, na verdade eu acho é mais maleável, no sentido de que você pode bolar uma missão nova na cabeça, acrescentar um script à parte e mudar o valor de "nMissoes". Fazer tudo no step é mais complicado de alterar. No mínimo, o trabalho de achar a posição de editar o código você já economiza. Parece uma bobagem, mas se cada missão ocupar umas 15-20 linhas e você tiver 10 missões, ficar "catando milho" vai ser uma droga.
saim
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : [Tutorial] Criando Missões Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Tutorial] Criando Missões Empty Re: [Tutorial] Criando Missões

Mensagem por Gonçalves Sáb 16 Mar 2013, 08:12

Parece uma bobagem, mas se cada missão ocupar umas 15-20 linhas e você tiver 10 missões, ficar "catando milho" vai ser uma droga.
Cada missão fica em um objeto diferente, entende? Aí basta, quando for iniciar a missão, criar a instância da mesma. Por exemplo, na última engine que postei, tem três missões, uma em cada objeto (missao1, missao2 e missao3).

No mais, já estou quase acabando o sistema de missões no mesmo mapa. Devo postar amanhã porquê hoje estou meio "atolado".

Até mais! elephant
Gonçalves
Gonçalves

Games Ranking : Nota B

Notas recebidas : B + A + C
Data de inscrição : 29/10/2010
Reputação : 79
Número de Mensagens : 1013
Prêmios : [Tutorial] Criando Missões Empty

Medalhas x 0 Tutoriais x 4 Moedas x 0

Ouro x 2 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Tutorial] Criando Missões Empty Re: [Tutorial] Criando Missões

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


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