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?
Como duplicar arquivos .ini?
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
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 !!
Re: Como duplicar qrquivos ini?
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:
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:
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:
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!
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++;
}
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"
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();
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!
Re: Como duplicar arquivos .ini?
Entendi seu raciocinio, mas oque eu preciso é mais complexo, dificil explicar, mas ja dei um jeito de resolver
Obrigado
Obrigado
Vlw, Flw !!
Quem está online
Usuários navegando neste fórum: Semrush [Bot] e 0 visitante