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
» Colisões não funcionando
por RastaMaan Hoje à(s) 19:49

» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Hoje à(s) 16:45

» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18

» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30

» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07

» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45

» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51

» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31

» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11

» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39

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

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

» 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


Aula 03 - Manipulando o arquivo.ini

+7
Arkd
PODEROS ARAN
paladini
Dancity
Denbs
Carlos Mahnke
Willy
11 participantes

Ir para baixo

Aula 03 - Manipulando o arquivo.ini Empty Aula 03 - Manipulando o arquivo.ini

Mensagem por Willy Dom 06 Nov 2011, 14:12

Manipulando o arquivo.ini
Aula 03/03

Finalmente chegamos na parte interessante das aulas sobre arquivos.ini,  agora você vai aprender como usar as funções aprendidas anteriormente. Antes de começar, crie um novo projeto e salve em algum lugar. Se você não sabe o que são INIs, significa que você pulou algumas aulas, seu danadinho... Se achar necessário, consulte a primeira aula e também a segunda aula.

Primeiro passo - Abrir/Criar um INI:
Sempre que formos trabalhar com um INI, a primeira coisa que devemos fazer é carregar/criar um. Para isso, usamos a função ini_open(“nome.ini”).
Usar esta função é muito simples, basta definirmos um nome e uma extensão desejada. Você pode colocar qualquer nome e qualquer extensão, pois o resultado vai ser o mesmo, como por exemplo, “NomeDoJogo.sav”. Note que, você sempre deve escrever entre aspas(""). Se você executar o jogo, você não encontrará o arquivo.ini que você criou. Mas por quê? Saberemos disso posteriormente...

Segundo Passo – Criando variáveis carregáveis.
Se você quisesse criar uma variável normal em um objeto, você procederia da seguinte forma:
Create:
Variável=Valor
Mas, se quisermos criar uma variável “carregável”, ou seja, que será carregado do ini, deveremos proceder de uma forma um pouco diferente.
Create:
Variável=ini_read_real("Seção","Chave",Default)
Como vimos na aula anterior, existem dois tipos de valor, a do tipo real e a do tipo string, então, sempre preste atenção quando for criar uma variável com INI. No caso acima, estamos definindo o valor da “Variável” através do arquivo.ini. Default é o valor inicial dele, ou seja:
Pontos=0
É o mesmo que:
Pontos=ini_read_real(“Progresso”,”Pontos”,0)
Note que, quando nos referimos a uma seção ou a uma chave, sempre escrevemos entre aspas.

Terceiro Passo – Salvando o novo valor:
Agora que já sabemos como criar as variáveis, devemos saber como gravar os valores delas, para que depois, possamos iniciar o jogo com as variáveis do jeito que deixamos!
O procedimento é semelhante ao de carregar, fazemos da seguinte forma:
ini_write_real(“Progresso”,”Pontos”,Pontos)
O que fizemos acima é bem simples. Chamamos a função ini_write_real() e salvamos o valor de “Pontos” na chave “Pontos” pertencente a seção “Progresso”. Cuidado para não confundir a chave “Pontos” com a variável “Pontos”. Embora a escrita seja a mesma, uma não possui aspas, logo, é uma variável.

Agora que você salvou algo no INI, adivinha o que aconteceu? O arquivo que abrimos que, antes não existia agora existe, e está no mesmo lugar que a sua gmk! Seu arquivo.ini só será criado depois que você gravar algo nele. Agora você já sabe responder a pergunta do primeiro passo!

Pronto, isto é tudo o que você precisa saber para manipular dados de um arquivo.ini! As outras funções você raramente irá usar. A lógica é a mesma, basta informar qual chave/seção você gostaria de manipular. Por exemplo, para checar a existência de uma chave e exclui-la.
Código:
if ini_key_exists(“Perfil”,”Nome”){ //Checa se a chave existe...
ini_key_delete(“Perfil”,”Nome”)//...e a deleta!
}
Isto encerra as aulas sobre arquivos.ini. Agora, você já sabe como usar arquivos.ini! Seja criativo, bole soluções para seus problemas com save/load, tudo depende apenas de seu raciocínio. Duvidas, criticas e elogios são bem vindos!

Espero que tenha gostado!
blz


Última edição por Willy em Qua 13 Nov 2013, 16:49, editado 1 vez(es)
Willy
Willy

Games Ranking : Nota A

Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Reputação : 264
Número de Mensagens : 1890
Prêmios : Aula 03 - Manipulando o arquivo.ini Empty

Medalhas x 0 Tutoriais x 2 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

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

http://willy-gmbr.blogspot.com/

Ir para o topo Ir para baixo

Aula 03 - Manipulando o arquivo.ini Empty Re: Aula 03 - Manipulando o arquivo.ini

Mensagem por Carlos Mahnke Dom 06 Nov 2011, 14:17

Muito legal a série Willy. Como sugestão, vc poderia ensinar a utilizar um sistema bem simplificado de criptografia pra usar com um save em ini, já que "puro" ele pode ser editado livremente pelo jogador.

(Sei que há uma gama de DLLs pra criptografia mas em casos onde não se faz necessário um simples sistema de "chaves" substituindo caracteres é perfeitamente funcional)
avatar
Carlos Mahnke

Games Ranking : Sem avaliações

Notas recebidas : A+B (não colocar conceito)
Data de inscrição : 27/07/2011
Reputação : 0
Número de Mensagens : 202
Prêmios : Aula 03 - Manipulando o arquivo.ini 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

Ir para o topo Ir para baixo

Aula 03 - Manipulando o arquivo.ini Empty Re: Aula 03 - Manipulando o arquivo.ini

Mensagem por Denbs Dom 06 Nov 2011, 14:22

Cara, bom tutorial(ou aula), ta tudo bem explicado e agora sei como usar ini, tava esperando logo esse tuto ainda bem q vc postou logo^^

flw
Denbs
Denbs

Data de inscrição : 19/01/2011
Reputação : 0
Número de Mensagens : 204
Prêmios : Aula 03 - Manipulando o arquivo.ini 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

Ir para o topo Ir para baixo

Aula 03 - Manipulando o arquivo.ini Empty Re: Aula 03 - Manipulando o arquivo.ini

Mensagem por Willy Dom 06 Nov 2011, 14:24

Eu havia pensado em fazer isso também, mas acabei esquecendo...
Porém, já existe um tópico falando sobre isso (resposta do Kabeção).
Codificar e Descodificar INI

Se der tempo, talvez eu faça algo do tipo, mas ultimamente o tempo está meio corrido...

Obrigado pelos comentários!
blz
Willy
Willy

Games Ranking : Nota A

Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Reputação : 264
Número de Mensagens : 1890
Prêmios : Aula 03 - Manipulando o arquivo.ini Empty

Medalhas x 0 Tutoriais x 2 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

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

http://willy-gmbr.blogspot.com/

Ir para o topo Ir para baixo

Aula 03 - Manipulando o arquivo.ini Empty Re: Aula 03 - Manipulando o arquivo.ini

Mensagem por Dancity Dom 06 Nov 2011, 14:25

Muito bom, Willy. Explicou direitinho, passo-a-passo como se abre, carrega e se fecha um .ini, parabéns.

Gostaria de mais tutoriais como estes, são de ótima qualidade, e de grande ajuda ;D
Dancity
Dancity

Games Ranking : Nota A

Notas recebidas : A
Data de inscrição : 11/01/2009
Reputação : 8
Número de Mensagens : 1339
Prêmios : Aula 03 - Manipulando o arquivo.ini Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 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

Aula 03 - Manipulando o arquivo.ini Empty Re: Aula 03 - Manipulando o arquivo.ini

Mensagem por paladini Dom 01 Jan 2012, 20:52

Ei Willy, muito bom o tutorial, porém estou com um problema. Não sou nada bom em GML, mas tô tentando aprender, para isso criei uma engine bem simples pra aprender a usar os ini. Criei uma room, e um objeto.

Esse objeto tem um evento Create e tem o seguinte código (acho que está errado):

Código:

ini_open("config.ini");
global.Option = ini_read_string("Config","Tela-cheia",0);
ini_write_string("Config","Tela-cheia",0)

Quando executo o programa, ele cria o ini, e ele fica assim:

Código:


[Config]
Tela-cheia=

Porque ele não fica assim:
Código:

[Config]
Tela-cheia=0

??

O que eu fiz de errado?

Valeu Willy, mto bom o seu tutorial!
paladini
paladini

Data de inscrição : 01/12/2010
Reputação : 0
Número de Mensagens : 175
Prêmios : Aula 03 - Manipulando o arquivo.ini 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.techsempre.com

Ir para o topo Ir para baixo

Aula 03 - Manipulando o arquivo.ini Empty Re: Aula 03 - Manipulando o arquivo.ini

Mensagem por Willy Sáb 07 Jan 2012, 16:41

Isto acontece porque você está salvando um valor "real" em um campo onde deveria ser "string". Para isso, no ini_write_string, coloque o zero da seguinte forma: string(0); Isso converte real em string.
Ou se preferir, troque o ini_write_string por ini_write_real

Qualquer coisa é so falar.
flws...
blz
Willy
Willy

Games Ranking : Nota A

Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Reputação : 264
Número de Mensagens : 1890
Prêmios : Aula 03 - Manipulando o arquivo.ini Empty

Medalhas x 0 Tutoriais x 2 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

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

http://willy-gmbr.blogspot.com/

Ir para o topo Ir para baixo

Aula 03 - Manipulando o arquivo.ini Empty Re: Aula 03 - Manipulando o arquivo.ini

Mensagem por PODEROS ARAN Qui 24 maio 2012, 16:19

Parabéns velho!

Nota 10 o teu tutorial. Fiz o que eu precisava rapidamente gastando 5 minutos lendo as três aulas.
PODEROS ARAN
PODEROS ARAN

Data de inscrição : 16/12/2011
Reputação : 1
Número de Mensagens : 19
Prêmios : Aula 03 - Manipulando o arquivo.ini 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

Ir para o topo Ir para baixo

Aula 03 - Manipulando o arquivo.ini Empty Re: Aula 03 - Manipulando o arquivo.ini

Mensagem por Arkd Qui 31 Jan 2013, 21:33

Muito bom cara Very Happy cheers muito bom mesmo, eu precisava mesmo disso, bolei um belo sistema de save Very Happy, valeu Willy, Parabens, otimo tutorial Very Happy
Arkd
Arkd

Data de inscrição : 03/04/2012
Reputação : 1
Número de Mensagens : 293
Prêmios : Aula 03 - Manipulando o arquivo.ini 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.arkadesgames.blogspot.com

Ir para o topo Ir para baixo

Aula 03 - Manipulando o arquivo.ini Empty Re: Aula 03 - Manipulando o arquivo.ini

Mensagem por dharrison Sáb 26 Abr 2014, 01:25

Willy

Preciso carregar um valor de uma ini para as opções do jogador, porém não posso predefiní-la.

No caso está da seguinte forma
Código:
ini_read_real("options","tela",2)

O problema é: não quero que ele configure como 2, e sim que use o valor que está contido na ini... comofas?
dharrison
dharrison

Games Ranking : Nota B

Notas recebidas : A - B
Data de inscrição : 04/02/2009
Reputação : 120
Número de Mensagens : 1363
Prêmios : Aula 03 - Manipulando o arquivo.ini Empty

Medalhas x 0 Tutoriais x 9 Moedas x 0

Ouro x 0 Prata x 1 Bronze x 0

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


Ir para o topo Ir para baixo

Aula 03 - Manipulando o arquivo.ini Empty Re: Aula 03 - Manipulando o arquivo.ini

Mensagem por Willy Sáb 26 Abr 2014, 01:44

Os valores default só entram em cena quando o INI não encontra a chave na seção. Portanto, se você está tentando carregar um valor do INI mas o mesmo não corresponde ao esperado, significa que o o INI não está carregando, logo, um erro na programação.
Willy
Willy

Games Ranking : Nota A

Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Reputação : 264
Número de Mensagens : 1890
Prêmios : Aula 03 - Manipulando o arquivo.ini Empty

Medalhas x 0 Tutoriais x 2 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

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

http://willy-gmbr.blogspot.com/

Ir para o topo Ir para baixo

Aula 03 - Manipulando o arquivo.ini Empty Re: Aula 03 - Manipulando o arquivo.ini

Mensagem por Gabreel Sáb 26 Abr 2014, 01:51

Se você não achar o erro, usa o file_exists() para ver se o caminho ao arquivo está certo! (lembrando que precisa estar na mesma pasta do jogo, no caso do GM8, e no included files no caso do GMS)
Gabreel
Gabreel

Data de inscrição : 02/10/2009
Reputação : 52
Número de Mensagens : 2232
Prêmios : Aula 03 - Manipulando o arquivo.ini 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
  • Javascript
  • Outros


Ir para o topo Ir para baixo

Aula 03 - Manipulando o arquivo.ini Empty Re: Aula 03 - Manipulando o arquivo.ini

Mensagem por dharrison Sáb 26 Abr 2014, 09:15

Ja verifiquei o arquivo, ele esta alterando corretamente.
Porém acho que não estou conseguindo fazer a variável lê-lo, pois mesmo mudando o default nada acontece.
Código:
escolha1=
ini_open("userconfig.cfg");
ini_read_real("options","tela",0);
ini_close()

É assim que se atribui o valor da ini a variavel?
dharrison
dharrison

Games Ranking : Nota B

Notas recebidas : A - B
Data de inscrição : 04/02/2009
Reputação : 120
Número de Mensagens : 1363
Prêmios : Aula 03 - Manipulando o arquivo.ini Empty

Medalhas x 0 Tutoriais x 9 Moedas x 0

Ouro x 0 Prata x 1 Bronze x 0

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


Ir para o topo Ir para baixo

Aula 03 - Manipulando o arquivo.ini Empty Re: Aula 03 - Manipulando o arquivo.ini

Mensagem por Willy Sáb 26 Abr 2014, 13:05

Ah, é por isso... Me desculpe, eu não reparei isso no primeiro código.

ini_read_* retorna um valor, portanto, a variável que deve ser atualizada deve estar antes do comando da seguinte forma:
Código:
ini_open("userconfig.cfg");
escolha1 = ini_read_real("options","tela",0);
ini_close();
Willy
Willy

Games Ranking : Nota A

Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Reputação : 264
Número de Mensagens : 1890
Prêmios : Aula 03 - Manipulando o arquivo.ini Empty

Medalhas x 0 Tutoriais x 2 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

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

http://willy-gmbr.blogspot.com/

Ir para o topo Ir para baixo

Aula 03 - Manipulando o arquivo.ini Empty Re: Aula 03 - Manipulando o arquivo.ini

Mensagem por DUDU951 Sex 27 Jun 2014, 23:53

Se tiver apenas 1 arquivo ini no jogo, não terá a necessidade de fecha-lo?


Última edição por DUDU951 em Sáb 28 Jun 2014, 21:39, editado 1 vez(es)
avatar
DUDU951

Data de inscrição : 24/06/2014
Reputação : 2
Número de Mensagens : 90
Prêmios : Aula 03 - Manipulando o arquivo.ini 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

Ir para o topo Ir para baixo

Aula 03 - Manipulando o arquivo.ini Empty Re: Aula 03 - Manipulando o arquivo.ini

Mensagem por Witen Sáb 28 Jun 2014, 08:07

DUDU951 escreveu:1 arquivo ini pode salvar apenas 1 seção, chave, valor por vez?

Se tiver apenas 1 arquivo ini no jogo, não terá a necessidade de fecha-lo?

1- Você pode salvar vários valores em uma seção, na chave somente um, a chave representa a variável que vai guardar o valor. Exemplo.
Código:
[Configuracao do server]//Seção
//Chave = valor
Porta = 888
2-O bom é sempre recolher seus valores e fechar, economizando assim memoria.
Witen
Witen

Games Ranking : Sem avaliações

Data de inscrição : 23/05/2012
Reputação : 36
Número de Mensagens : 515
Prêmios : Aula 03 - Manipulando o arquivo.ini 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.wibix.webs.com

Ir para o topo Ir para baixo

Aula 03 - Manipulando o arquivo.ini Empty Re: Aula 03 - Manipulando o arquivo.ini

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