Obrigado por visitar a The Game Makers Brasil 😁 Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais.

Como duplicar arquivos .ini?

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
Adilson
Membro
Membro
Reações: 0
Mensagens: 114
Localização: Curitiba Parana

Como duplicar arquivos .ini?

Mensagem por Adilson » Sex Out 14, 2016 11:48 am

Bem o próprio titulo ja diz oque quero, como fasso para duplicar arquivos inis?
Na verdade oque eu queria seria o seguinte:
Tem a ini progress que armazena tudo que aconteceu no jogo, como levels alcançados pelo jogador, caixas pegas, e chefes passados.
Dai eu queria que, se o jogador escolhesse salvar, salvasse o ini progress com outro nome. Para possibilitar ter varios saves
Editado pela última vez por gabrielsch em Sex Out 14, 2016 7:08 pm, em um total de 1 vez.
Vlw, Flw !!

Avatar do usuário
All-x
Administrador
Administrador
Reações: 8
Mensagens: 621
Localização: Dourados-MS

Contato:

Re: Como duplicar qrquivos ini?

Mensagem por All-x » Sex Out 14, 2016 5:17 pm

Adilson,

Eu criaria algumas listas para cada save e salvaria cada lista em uma chave diferente no INI. Seria mais simples de lidar com os dados, além de abrir apenas um arquivo.

Usando Vários INIS

Basta criar um prefixo para os arquivos, como 'save', por exemplo. Usar a função file_exists em um loop que verificaria o prefixo + número (save0, save1, save2 e etc) numa string. Caso o aquivo existir, desenhá-lo na tela. A função de verificação de existência seria algo assim:

Código: Selecionar todos

while (file_exists('save' + string(nSaves) + ".ini"))
{
    //Aqui estamos apenas contando quantos saves existem
    //Caso necessite de algum dado a mais, abra o INI aqui('save' + string(nSaves) + ".ini")
    //E guarde os dados que deseja ixibir em vetores
    nSaves++;
}
Usando listas e apenas 1 INI

Na lista você colocaria, os dados que precisa em uma posição especifica (A posição 0 seria o nome do save, a 1 seria da pontuação e assim por diante). Recomendo que use ds_lis_add para acrescentar em sequência. Lembrando que uma lista suporta mesclagem de dados, ou seja, você pode ter textos e números na mesma lista.

No processo de salvar o jogo você criaria um lista temporária, adicionaria os dados e por fim guardaria a lista em uma string com ds_list_write. Dai sim você utilizaria um arquivo INI e salvaria o jogo. 

Porém, nesta etapa você teria que verificar a existência das chaves antes de salvar. Logo você teria que ler o arquivo antes.

Recomendaria que as chaves do INI tivessem algum prefixo, como 'sv' por exemplo:

Código: Selecionar todos

[GAMEDATA]
sv0="ASUHA15S4D5A4DA56SF4DA65SD4AS65D4AS56D4ASSDS"
sv1="ASUHA15S4D5A4DA56SF4DA65SD4AS65D4AS56D4ASSDS"
sv2="FDSKJFADUFDS51AD7SDFFBSAUDSAD55D5ASDSA5DDD"
Lembrando que é salva uma string codificada (Que eu digitei genericamente acima nos 3 saves).

Para carregar os saves tu faria algo assim logo após abrir o INI para leitura:

Código: Selecionar todos

ini_open("game.ini");

nSaves = 0;

while (ini_key_exists("GAMEDATA", 'sv' + string(nSaves)))
{
    lista[nSaves] = ds_list_create();
    ds_list_read(lista[nSaves], ini_read_string("GAMEDATA", 'sv' + string(nSaves), ""))
    nSaves++;
}

ini_close();
Com isso você já pode desenhar as informações na tela, já que tem o número total de saves guardados na variável nSaves e as informações dos saves gravados nas listas que estão no vetor lista.

Agora que você pode ler e desenhar os saves, basta usar essas informações e criar o procedimento para salvar. 

Resumindo: clicaria no save desejado e salvaria (criava uma nova string de lista com os dados e guardava no INI na posição nSaves), caso não existisse (checar com a função ini_key_exists()) já iria direto para salvar no 'sv0' (Basta saber que na leitura nSaves == 0).

Bom, essa seria uma forma de fazer. Caso tenha dúvidas com ds_list veja este tutorial.

Nesse FDS postarei um vídeo sobre listas também, fica a dica.

Não testei os códigos ainda, mas deve funcionar sim.

FLWS!
Começando com o Game Maker? Olhou para assinatura certa!

Imagem

Tutoriais e vídeo aulas de programação! Clique no Banner e confira!

Avatar do usuário
Adilson
Membro
Membro
Reações: 0
Mensagens: 114
Localização: Curitiba Parana

Re: Como duplicar arquivos .ini?

Mensagem por Adilson » Dom Out 16, 2016 1:33 pm

Entendi seu raciocinio, mas oque eu preciso é mais complexo, dificil explicar, mas ja dei um jeito de resolver
Obrigado
Vlw, Flw !!

Trancado

Quem está online

Usuários navegando neste fórum: Semrush [Bot] e 0 visitante