"Conquistas" para game maker

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

"Conquistas" para game maker

Mensagem por mathfirez em Qui 09 Dez 2010, 10:41

OI pessoal estou com uma duvida...Queria saber como faz para tipo fazer conquistas (como no xbox ou no ps3) Exemplo:Você completa 3000 pontos vc ganha um trofeuzinho...

mathfirez

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

Voltar ao Topo Ir em baixo

Re: "Conquistas" para game maker

Mensagem por Markituh em Qui 09 Dez 2010, 10:59

Quando vi o nome Conquistas já me pensei jogando Call of Duty Happy Para fazer uma conquista, você tem de criar o seu próprio sistema de conquista, é obvio. Mas aí é você checar o score do jogador e ativar um script que ganha a conquista.

Se não conseguir, posso fazer um sistema pra você.

___________

"Não deixe para amanhã o que se pode fazer hoje"

Links úteis:
Índice de Tutoriais
Manual online do GMS

Markituh

Ranking : Sem avaliações
Número de Mensagens : 2183
Data de inscrição : 11/10/2009
Reputação : 106
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: "Conquistas" para game maker

Mensagem por mathfirez em Qui 09 Dez 2010, 11:05

Mas como faz um script que faz isso? Sou novato ainda albino

mathfirez

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

Voltar ao Topo Ir em baixo

Re: "Conquistas" para game maker

Mensagem por Markituh em Qui 09 Dez 2010, 11:13

Hmm... Pode mostrar uma mensagem, ou se for algo mais complexo, a própria sprite de conquista do Xbox. Para criar um script, clique com o botão direito na pastinha Scripts da Árvore de Recursos e depois clique com o botão esquerdo em Create Script.

Em GML seria algo assim(até porque script só é em GML):
Código:
show_message("Você ganhou a conquista:#"+string(argument0))
global.conquistas+=1
global.dinheiro+=argument1
Então chamaríamos o script da seguinte forma: nome_do_script("Matou o chefão da Fase 1",50"). A conqusita vai ser a que matou o chefão, e vai receber 50 Gold por essa conquista(ou qualquer outra unidade monetária). Lembrando novamente, que se estiver com problemas, eu posso fazer uma engine para você.

___________

"Não deixe para amanhã o que se pode fazer hoje"

Links úteis:
Índice de Tutoriais
Manual online do GMS

Markituh

Ranking : Sem avaliações
Número de Mensagens : 2183
Data de inscrição : 11/10/2009
Reputação : 106
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: "Conquistas" para game maker

Mensagem por Konnor em Qui 09 Dez 2010, 11:19

Como eu uso pouco o Game Maker,desse jeito pode não ser um dos melhores...

Create:
Código:

pontos=3000
trofeus=0

Draw:
Código:

if pontos > 2999
{
trofeus=+1
draw_text(0,0,"Você ganhou um premio")
draw_text(0,20,trofeus)
}

Konnor

Número de Mensagens : 153
Idade : 19
Data de inscrição : 07/11/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://socialbook.grouply.com/

Voltar ao Topo Ir em baixo

Re: "Conquistas" para game maker

Mensagem por Henrique_GJ em Qui 09 Dez 2010, 12:15

Konnor escreveu:Como eu uso pouco o Game Maker,desse jeito pode não ser um dos melhores...

Create:
Código:

pontos=3000
trofeus=0

Draw:
Código:

if pontos > 2999
{
trofeus=+1
draw_text(0,0,"Você ganhou um premio")
draw_text(0,20,trofeus)
}

desse jeito ele irá ganhar um trofeu a cada step, e ja vai começar o jogo ganhando trofeus

primeiro: você colocou pontos = 3000 que é maior que 2999, coloque pontos = 0

depois na segunda parte do codigo onde ele checa se passou de 2999 e dá um trofeu, você não colocou nada para que os pontos voltem a zero, nesse caso, os pontos continuarão a ser > 2999 e ele ganhará um trofeu a cada step

modo correto:

Create:
Código:

pontos=0
trofeus=0

Draw:
Código:

if pontos > 2999
{
trofeus=+1
draw_text(0,0,"Você ganhou um premio")
draw_text(0,20,trofeus)
pontos = 0
}

Henrique_GJ

Número de Mensagens : 1344
Idade : 19
Data de inscrição : 30/12/2009
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://sitedosjogos.forumeiros.com

Voltar ao Topo Ir em baixo

Re: "Conquistas" para game maker

Mensagem por Konnor em Qui 09 Dez 2010, 12:19

Cara,eu fiz do jeito que eu achei melhor.
O código tá ai,agora é só ele editar do gosto dele.
Além do mais,ele não especificou que queria que voltasse a 0.

Konnor

Número de Mensagens : 153
Idade : 19
Data de inscrição : 07/11/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://socialbook.grouply.com/

Voltar ao Topo Ir em baixo

Re: "Conquistas" para game maker

Mensagem por Henrique_GJ em Qui 09 Dez 2010, 12:21

mas se os pontos não voltarem a zero, do jeito que você fez ele vai começar a receber trofeus a cada step, e como ele exibe uma mensagem a cada trofeu ganho, o jogo vai travar se ficar em full screen é capaz até de travar se não conseguir o gerenciador de tarefas, ele não sabe editar codigos porque é novato ;)

Henrique_GJ

Número de Mensagens : 1344
Idade : 19
Data de inscrição : 30/12/2009
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://sitedosjogos.forumeiros.com

Voltar ao Topo Ir em baixo

Re: "Conquistas" para game maker

Mensagem por Janx em Qui 09 Dez 2010, 13:55

Acho que o tipo de conquistas que ele quer não envolve exclusivamente o "score". Pode ser por matar uma quantidade X de Y inimigo, passar uma fase sem perder vida, etc.

Para isso você precisa de um sistema mais complexo.
Tente fazer da seguinte forma:
Crie uma array de conquistas, assim:
Código:
for (i=0; i<10; i+=1)
{
 conquistas[i] = false; //Ja completei essa conquista? True/False
}

Muito bem, agora temos 10 conquistas possíveis, nenhuma feita por enquanto. Agora você deve decidir o que cada um dos valores de 0~9 significam. Para facilitar a leitura do código posteriormente, vamos usar "CONSTANTS", constantes.
Como adicionar constantes?
No GM7: Global game settings -> Constants
No GM8: aperte ctrl+shift+N

Muito bem, agora vamos fazer assim:
Nome_da_Constante | valor
CONQ_PONTOS1000 | 0
CONQ_PONTOS5000 | 1
CONQ_LIFE100F1 | 2
..
.. //Outras conquistas.

Ótimo, fiz 3 conquistas, mas você pode fazer mais. Eu só estou fazendo para mostrar como ficaria.
Agora em TODOS os eventos que o personagem ganha pontos, adicione o seguinte código:

Código:
if conquistas[CONQ_PONTOS1000] = false && PONTOS >= 1000
{
conquistas[CONQ_PONTOS1000] = true;
show_message("Você ganhou uma conquista: 1000 pontos");
}

if conquistas[CONQ_PONTOS5000] = false && PONTOS >= 5000
{
conquistas[CONQ_PONTOS5000] = true;
show_message("Você ganhou uma conquista: 5000 pontos");
}

Agora vamos fazer a de passar a FASE 1 (CONQ_LIFE100F1), com 100% de vida: (CONQ_LIFE100F1). Use nomes auto-explicativos para facilitar na hora de fazer o código!

Quando o personagem passar a fase 1, faça executar o seguinte código:
Código:
if conquistas[CONQ_LIFE100F1] = false && VIDA = 100
{
 conquistas[CONQ_LIFE100F1]  = true;
 show_message("Você ganhou uma conquista: Passar a fase 1 com vida cheia");
}

Aa legal, agora como eu faço para mostrar as conquistas em uma tela diferente?
Não é dificil, basta fazer um loop.
Por exemplo no DRAW:
Código:
for (i=0; i<10; i+=1)
{
 if conquistas[i] = true
 {draw_text(20,60+16*i,"Conquista "+string(i+1)+" Completada!")}
else
 {draw_text(20,60+16*i,"Conquista "+string(i+1)+" Ainda não foi feita!")}
}

Mas e se eu quiser adicionar uma descrição para cada uma? Bom, você tem o método dificil, e o facil.
O dificil seria fazer
Código:
if conquistas[0] = true
{draw_text(20,60,"Conquista 1 completada: Fazer 1000 pontos");}
else
{draw_text(20,60,"Conquista 1 não foi completada: Fazer 1000 pontos");}
..
..

O mais fácil seria fazer uma Array 2D, sendo uma das colunas a descrição. Dai você usaria um loop para desenhar tudo de uma vez.
"AA você já podia ter feito assim!"
Mas dai você teria tudo pronto, você precisa aprender um pouco por sua conta também!

Boa sorte!

Janx

Número de Mensagens : 2417
Idade : 23
Data de inscrição : 24/05/2008
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 0

Voltar ao Topo Ir em baixo

Re: "Conquistas" para game maker

Mensagem por mathfirez em Qui 09 Dez 2010, 14:34

Mas os constants são pra pro edition e outra especifiquem onde eu ponho os codigos o jogo é de scrooling shooter

mathfirez

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

Voltar ao Topo Ir em baixo

Re: "Conquistas" para game maker

Mensagem por Konnor em Qui 09 Dez 2010, 18:39

Ótimo Janx,estou estudando C e o código do for é realmente parecido com o do Game Maker (é igual).
Por isso dizem que GML foi feito baseado em C e Delphi.

Amigo de cima,creio que agora é por sua conta,tenta arranjar o PRO ou fazer do jeito menos complicado que falamos.

Konnor

Número de Mensagens : 153
Idade : 19
Data de inscrição : 07/11/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://socialbook.grouply.com/

Voltar ao Topo Ir em baixo

Re: "Conquistas" para game maker

Mensagem por Adriel em Qui 09 Dez 2010, 19:52

OI pessoal estou com uma duvida...Queria saber como faz para tipo fazer conquistas (como no xbox ou no ps3) Exemplo:Você completa 3000 pontos vc ganha um trofeuzinho...

Apenas isso :

STEP:

Código:
if score=3000{show_message="Parabéns! Você ganhou um troféu!" ; trofeus=1}

if trofeus=1 {instance_create(x,y,trofeu1)//aqui no "x", "y" você escolhe o local na room que quer que apareça o troféu, e o objeto "trofeu1" tem que ter sprite de um troféu

if trofeus=2 {instance_create(x,y,trofeu2)//aqui no "x", "y" você escolhe o local na room que quer que apareça o troféu, e o objeto "trofeu1" tem que ter sprite de um troféu

CREATE:

Código:
trofeus=0

Adriel

Número de Mensagens : 922
Idade : 18
Data de inscrição : 18/07/2009
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: "Conquistas" para game maker

Mensagem por Konnor em Qui 09 Dez 2010, 19:56

Dependendo do jogo do cara,esse teu código pode não dar certo pois por exemplo:

Se o jogo de o personagem não ganha os mesmos pontos,alguns objetos (que ganha ponto) ganha 40,outros 20,outros 60 e assim por diante.

Ai,se ele tivesse 2990 pontos,e ele pegasse um de 11 ou superior,não faria efeito pois não é igual a 3000,ficaria igual a 3001,3020...

O certo é fazer como o nosso amigo falou:

Se maior que 3000
{
pontos é igual a zero
}

Mas lembre-se que eu disse depende do jogo que ele quer criar...

Konnor

Número de Mensagens : 153
Idade : 19
Data de inscrição : 07/11/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://socialbook.grouply.com/

Voltar ao Topo Ir em baixo

Re: "Conquistas" para game maker

Mensagem por mathfirez em Sex 10 Dez 2010, 08:26

o jogo é para scrooling shooter e a minha preocupação é exatamente essa se o trofeu for para 3000 e eu derrotar um avião de 50 quando meu score é 2990 eu não ganho o trofeu e seu colocar larger than 3000 se eu conseguir 3001 vai aparecer milkhares de mensagens"Você ganhou tal tal"podendo ate travar o jogo

mathfirez

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

Voltar ao Topo Ir em baixo

Re: "Conquistas" para game maker

Mensagem por Konnor em Sex 10 Dez 2010, 09:14

Então é só zerar os pontos:

Código:

if pontos > 2999
{
trofeus=+1
draw_text(0,0,"Você ganhou um premio")
draw_text(0,20,trofeus)
pontos=0
}

De qualquer forma eu dúvido que trave,pois é draw_text e não show_message().

Konnor

Número de Mensagens : 153
Idade : 19
Data de inscrição : 07/11/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://socialbook.grouply.com/

Voltar ao Topo Ir em baixo

Re: "Conquistas" para game maker

Mensagem por mathfirez em Sex 10 Dez 2010, 09:39

Mas o texto não aparece eu coloquei assim

if score > 100
{
trofeus=+1
draw_text(0,0,"Você ganhou um premio")
draw_text(0,20,trofeus)
score=0
}
dai ele só zera não aparece nenhum texto nem nada...e não dava pra fazer os pontos continuarem sem zerar porque se zerasse o jogo não teria graça porque é scrooling shooter

mathfirez

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

Voltar ao Topo Ir em baixo

Re: "Conquistas" para game maker

Mensagem por Konnor em Sex 10 Dez 2010, 09:49

Basta usar uma variável,no Create adiciona uma variável "trofeu=false"
e no draw:

Código:

if score>99
{
trofeus=+1
trofeu=true
score=0
}
if trofeu=true
{
draw_text(0,0,"Você ganhou um premio")
draw_text(0,20,trofeus)
}

Ou,se não quiser adicionar a variável,em:

Código:

if trofeu=true
{
draw_text(0,0,"Você ganhou um premio")
draw_text(0,20,trofeus)
}

Mude para:

Código:

if trofeus>0
{
draw_text(0,0,"Você ganhou um premio")
draw_text(0,20,trofeus)
}

E retire a variável trofeu=true do Draw e do Create.

Konnor

Número de Mensagens : 153
Idade : 19
Data de inscrição : 07/11/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://socialbook.grouply.com/

Voltar ao Topo Ir em baixo

Re: "Conquistas" para game maker

Mensagem por mathfirez em Sex 10 Dez 2010, 09:58

unknow expression trofeu <<aparece

mathfirez

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

Voltar ao Topo Ir em baixo

Re: "Conquistas" para game maker

Mensagem por Konnor em Sex 10 Dez 2010, 10:01

Você deve ter usado a do trofeu=true?
Se sim,lembrou de por no Create?

Juro que não consegui achar esse error,eu testei e deu tudo certo!

Konnor

Número de Mensagens : 153
Idade : 19
Data de inscrição : 07/11/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://socialbook.grouply.com/

Voltar ao Topo Ir em baixo

Re: "Conquistas" para game maker

Mensagem por mathfirez em Sex 10 Dez 2010, 10:08

fui no obj_player e coloquei.Create/Set variable trofeu to true depois cirei o event draw no mesmo obj e pus/execute a piece of code:
if score>99
{
trofeus=+1
trofeu=true
score=0
}
if trofeu=true
{
draw_text(0,0,"Você ganhou um premio")
draw_text(0,20,trofeus)
}
e aparece o erro quando da play:
ERROR in
action number 1
of Draw Event
for object obj_player:

Error in code at line 10:
draw_text(0,20,trofeus)
^
at position 17: Unknown variable trofeus

e obrigado por estar me ajudando

mathfirez

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

Voltar ao Topo Ir em baixo

Re: "Conquistas" para game maker

Mensagem por Konnor em Sex 10 Dez 2010, 10:11

Você esqueceu de por a variável TROFEUS no create.

Konnor

Número de Mensagens : 153
Idade : 19
Data de inscrição : 07/11/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://socialbook.grouply.com/

Voltar ao Topo Ir em baixo

Re: "Conquistas" para game maker

Mensagem por mathfirez em Sex 10 Dez 2010, 10:20

aaa então eu vou por...ei cara eu tenho que sair um pouco mais eu vou voltar depois dio almoço cara sério muito obrigado pela sua ajuda sério mesmo...

mathfirez

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

Voltar ao Topo Ir em baixo

Re: "Conquistas" para game maker

Mensagem por Adriel em Sex 10 Dez 2010, 12:18

Konnor escreveu:Então é só zerar os pontos:

Código:

if pontos > 2999
{
trofeus=+1
draw_text(0,0,"Você ganhou um premio")
draw_text(0,20,trofeus)
pontos=0
}

De qualquer forma eu dúvido que trave,pois é draw_text e não show_message().

Konnor, percebi um erro no seu code. Você colocou "trofeus=+1" quando, na verdade, era "trofeus+=1". E eu ia dizer a mesma coisa que o carinha, que, naquele código, sempre que conseguisse mais um ponto, ia aparecer direto! Mas eu tinha que ir dormir, estava tarde, não deu pra postar.

Adriel

Número de Mensagens : 922
Idade : 18
Data de inscrição : 18/07/2009
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: "Conquistas" para game maker

Mensagem por Konnor em Sex 10 Dez 2010, 12:32

Obrigado pela correção,mas eu testei e deu da mesma forma ;)

Pois é,eu estou meio confuso pois estou estudando C,mas ainda sei o básicão.

Konnor

Número de Mensagens : 153
Idade : 19
Data de inscrição : 07/11/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://socialbook.grouply.com/

Voltar ao Topo Ir em baixo

Re: "Conquistas" para game maker

Mensagem por Conteúdo patrocinado Hoje à(s) 17:56


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