Conectar-se

Esqueci minha senha

Últimos assuntos
» [Enquete] Concursos GMBR
por Willy Ontem à(s) 19:49

» CR - Concurso Relâmpago!!
por Willy Ter 18 Jul 2017, 17:11

» 3D:como rodar a camara em horizontal?
por Cambalinho Ter 18 Jul 2017, 15:09

» [Resolvido] pode explicar a d3d_set_projection()?
por Cambalinho Ter 18 Jul 2017, 11:28

» Escrever a resposta certa muda de room
por PedroX Seg 17 Jul 2017, 21:46

» Nota de esclarecimento - GMBR voltou!
por Mentos e Coca-cola Seg 17 Jul 2017, 17:05

» [CR] Campo Minado
por Katerp Dom 16 Jul 2017, 23:09

» [CR] The Bazooka Cat
por Tedi Ripper Dom 16 Jul 2017, 23:01

» Como melhorar um protótipo(Design)
por lolandoplayer Dom 16 Jul 2017, 22:56

» Diminuir velocidade ao arrastar objeto
por LwysF Dom 16 Jul 2017, 17:33

Quem está conectado
17 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 17 Visitantes

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 324 em Ter 05 Out 2010, 13:36
Estatísticas
Temos 12700 usuários registrados
O último usuário registrado atende pelo nome de Eduardo Gomes

Os nossos membros postaram um total de 220919 mensagens em 30412 assuntos

Dúvidas de como personalizar o meu load game

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

Dúvidas de como personalizar o meu load game

Mensagem por Felipe Reis Magno 2 em Sex 17 Out 2014, 13:19

Olá a todos, gostaria de melhorar meu sistema de salvar e carregar o avanço dos meus jogos! Happy Happy Happy

Já aprendi há algum tempo como salvar o jogo e carregar, sempre uso os códigos:

Este é para salvar:
Código:

s=get_save_filename('Saves|*.extensao;',"");

if s!="" game_save(s+".extensao");

Este é para carregar:
Código:

l=get_open_filename('Saves|*.extensao;',"");

if file_exists(l) game_load(l);

É um sistema simples e prático, porém agora estou começando a ter um público de pessoas que estão testando meus minigames e por isso sinto a necessidade de evoluir o nível dos meus jogos, em especial esta área de salvar e carregar.

Gostaria de fazer um sistema em que eu salvo o avanço e que o arquivo não seja salvo desta maneira, mas que seja salvo dentro do próprio software para que quando eu abrir uma determinada room, eu possa ver os salves, igual aos games bem elaborados e de playstation e poder abrir... terei que aprender usar arquivos ".ini" ou algo do tipo? Existem códigos especiais para o que eu estou querendo fazer?

Agradeço já pelas respostas!!! Happy Happy Happy
avatar
Felipe Reis Magno 2

Ranking : Nota E
Notas recebidas : E
Data de inscrição : 08/08/2014
Número de Mensagens : 43
Insígnias de JAM :

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Dúvidas de como personalizar o meu load game

Mensagem por Isaque Onix em Sex 17 Out 2014, 14:12

eae, na minha opniao (para gm8) sempre use ini's para salvar e carregar dados, fica bem mais facil de manipular...

Agradesça novamente U.u (zoeira kk)
avatar
Isaque Onix

Data de inscrição : 15/08/2010
Número de Mensagens : 1597
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário http://spyreserver.16mb.com

Voltar ao Topo Ir em baixo

Re: Dúvidas de como personalizar o meu load game

Mensagem por Markituh em Sab 18 Out 2014, 15:37

O que essa função de save padrão do GM faz é simplesmente salvar todas as variáveis e instâncias da room no arquivo, como uma espécie de print screen (mas bem profundo, digamos assim). A forma convencional de se salvar dados do jogo no mundo de game dev é por valores esquematizados num arquivo - em jogos de Playstation, esses arquivos são binários, ou seja, existe um "formato" em que os bytes são dispostos que o jogo deve ser capaz de ler depois e aplicar no jogo. Se você já tentou abrir um .EXE no bloco de notas e só viu caracteres malígnos e cruéis, é mais ou menos assim que as coisas ficam.

De forma mais simples, você poderia usar um INI que contivesse as posições de cada objeto que estava na room e recriá-los depos (sim, o processo convencional é basicamente isso). Algo nesse formato:
Código:
[Player]
posX=350
posY=220
chaves=0 0 0 0 0 0 0 # 1 pegou a chave, 0 não. a cada espaço é outra chave
municao1=60
municao2=15
powerup=0 0 0 0 0 0 0 0 0 # mesmo esquema das chaves

[Inimigo-1]
posX=378
posY=220

... Bla bla

O problema é que qualquer um poderia chegar lá e alterar os valores. Aí que entram opções de criptografia. Usando a cabeça e gambiarras loucas alucinógenas, é possível salvar e interpretar os dados facinho tongue

Explicação sobre funções INI
Tutorial rápido sobre INI
Vídeoaula da Next Level

Abraços o/
avatar
Markituh

Ranking : Sem avaliações
Data de inscrição : 11/10/2009
Número de Mensagens : 2184
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Dúvidas de como personalizar o meu load game

Mensagem por Felipe Reis Magno 2 em Qui 23 Out 2014, 14:08

Agradeço aos dois pelas respostas!!! Muito obrigado!

Parece que vou ter estudar .ini kkkkkkkkkkkkkkk tud bem!!!
Vlw gente!!! Happy Happy
avatar
Felipe Reis Magno 2

Ranking : Nota E
Notas recebidas : E
Data de inscrição : 08/08/2014
Número de Mensagens : 43
Insígnias de JAM :

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Dúvidas de como personalizar o meu load game

Mensagem por Isaque Onix em Qui 23 Out 2014, 14:31

hehe, nao sei se te agrada, mais, voce pode cliptografar/decliptografar, usando strings, so escolher letras/characters para cada numero, assim, o valor vai ser impossivel de ser decifrado ;)

ai um exemplo meu (modificado para nao descobrirem minha codificaçao hahaha)
Código:
/*
Nome do script: encript_number_anti_hack
modo de uso: variavel=encript_number_anti_hack(valor real)
feito por: isaque onix
skype: isaque-cb
*/
number_to_encript=string(argument0)

RET=''
for(i=1; i<string_length(number_to_encript)+1; i+=1){
atual_letter=string_char_at(number_to_encript,i)
if(atual_letter='0'){RET+='-0-'}else if(atual_letter='1'){RET+='-1-'}else if(atual_letter='2'){RET+='-2-'}else if(atual_letter='3'){RET+='-3-'}else if(atual_letter='4'){RET+='-4-'}else if(atual_letter='5'){RET+='-5-'}else if(atual_letter='6'){RET+='-6-'}else if(atual_letter='7'){RET+='-7-'}else if(atual_letter='8'){RET+='-8-'}else if(atual_letter='9'){RET+='-9-'}}
return RET
Código:
/*
Nome do script: decript_number_anti_hack
modo de uso: variavel=decript_number_anti_hack(valor real)
feito por: isaque onix
skype: isaque-cb
*/
number_to_encript=string(argument0)

repeat(150){
number_to_encript=string_replace(number_to_encript,'-0-','0')
number_to_encript=string_replace(number_to_encript,'-1-','1')
number_to_encript=string_replace(number_to_encript,'-2-','2')
number_to_encript=string_replace(number_to_encript,'-3-','3')
number_to_encript=string_replace(number_to_encript,'-4-','4')
number_to_encript=string_replace(number_to_encript,'-5-','5')
number_to_encript=string_replace(number_to_encript,'-6-','6')
number_to_encript=string_replace(number_to_encript,'-7-','7')
number_to_encript=string_replace(number_to_encript,'-8-','8')
number_to_encript=string_replace(number_to_encript,'-9-','9')
}

return real(number_to_encript)
nao e la grandes coisas, mais, pode ser util...
so funcionam com valores reais (numeros)

se usar inis, voce pode usar assim:
Código:
ini_write_real('','',decript_number_anti_hack(100))//escreve o valor decodificado
variavel=encript_number_anti_hack(ini_write_real('','',0))//le o valor e encripta-o

(nao liga pro nome dos scripts...)
[edit]
remova os
Código:
<br>
que encontrar nos scripts, isso e um erro do forum....

para vc testar: (draw)
Código:
value=100
enc=encript_number_anti_hack(value)
draw_text(5,5,enc)
dec=decript_number_anti_hack(enc)
draw_text(5,25,dec)
avatar
Isaque Onix

Data de inscrição : 15/08/2010
Número de Mensagens : 1597
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário http://spyreserver.16mb.com

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