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
» Retorno da GMBR!!!
por theguitarmester Ter 19 Mar 2024, 22:38

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

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

» Mudar cor de apenas uma palavra
por lunalol Sex 01 Mar 2024, 13:42

» 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

» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39

» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16

» a funçao approach ainda existe?
por PEDRINDEV Ter 26 Dez 2023, 20:05

» Inimigo ataca até por trás! >:(
por saim Sex 22 Dez 2023, 08:55

» [RESOLVIDO]Spawn após morte
por Deception_1999 Dom 17 Dez 2023, 16:39

» Remunerado $$$ - Procuro programador para ajudar a "montar" um jogo
por theguitarmester Sáb 02 Dez 2023, 16:28

» Game maker nao abre
por Cerf Dom 26 Nov 2023, 12:01


Ler arquivos externos

2 participantes

Ir para baixo

Ler arquivos externos Empty Ler arquivos externos

Mensagem por Need 90 Sáb 28 Jan 2012, 20:24

Bom, já vi os tutoriais então não precisa passar nenhum.

Estou trabalhando em um jogo e, eu queria que sempre ficasse salva as variáveis que foram editadas, mais ou menos assim :
[GLOBAIS]
0=global.ragdown=false
1=global.moneycity=false
2=global.eua=false
[ARMAS]
3=global.pistola=true
4=global.pistola3tiro=false
5=global.metralha=false

E sempre salvas-se, tipo, se algo ficou true atualizar a lista acima. Dai quando terminar uma missão mudar o valor da que for mudada
Eu ia fazer um sistema de save mas ficou ruim.
Por isso pessoa ajuda, para qundo o jogo ser fechado ele salvar todo o progresso ali.
E quando o jogo iniciar ele carregar todo o processo.

Ps :
Os GLOBAIS são as missões. Começa com nenhuma missão liberada.
As armas ganha quando termina serta missão, só a pistola que já é true.

Estou usando esse código que não funciona :
Game Start :
Código:
//Abre a Ini
ini_open ("gameConfig.ini")
//lê
if global.ragdown=false{ini_read_string ("FASES","0","global.ragdown=false")}else{ini_read_string ("FASES","0","global.ragdown=true")}
if global.moneycity=false {ini_read_string ("FASES","1","global.moneycity=false")}else{ini_read_string ("FASES","1","global.moneycity=true")}
if global.eua=false {ini_read_string ("FASES","2","global.eua=false")}else{ini_read_string ("FASES","2","global.eua=true")}
if global.pistola3tiro=false {ini_read_string ("ARMAS","3","global.pistola3tiro=false")}else{ini_read_string ("ARMAS","3","global.pistola3tiro=true")}
if global.metralha=false {ini_read_string ("ARMAS","4","global.metralha=false")}else{ini_read_string ("ARMAS","4","global.metralha=true")}
Game End :
Código:
//Fases
if global.ragdown=false {ini_write_string ("FASES","0","global.ragdown=false")}else{ini_write_string ("FASES","1","global.ragdown=true")}
if global.moneycity=false {ini_write_string ("FASES","1","global.moneycity=false")}else{ini_write_string ("FASES","2","global.moneycity=true")}
if global.eua=false {ini_write_string ("FASES","2","global.eua=false")}else{ini_write_string ("FASES","3","global.eua=true")}
//Armas
if global.pistola3tiro=false {ini_write_string ("ARMAS","3","global.pistola3tiro=false")}else{ini_write_string ("ARMAS","5","global.pistola3tiro=true")}
if global.metralha=false {ini_write_string ("ARMAS","4","global.metralha=false")}else{ini_write_string ("ARMAS","6","global.metralha=true")}
//close
ini_close()
Need 90
Need 90

Games Ranking : Nota B

Notas recebidas : D+A+B
Data de inscrição : 16/01/2012
Reputação : 7
Número de Mensagens : 787
Prêmios : Ler arquivos externos 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://need90games.blogspot.com.br

Ir para o topo Ir para baixo

Ler arquivos externos Empty Re: Ler arquivos externos

Mensagem por Markituh Sáb 28 Jan 2012, 22:38

Dei uma olhada no Game Start. Está simplesmente... ilógico. Dá uma olhada nisso aqui - funciona que é uma beleza:

Código:
//================================
// Abre a Ini
//================================
ini_open ("gameConfig.ini")
//================================
// Lê os dados
//================================
execute_string
(
    ini_read_string ("FASES","0","global.ragdown=false")
);

execute_string
(
    ini_read_string ("FASES","1","global.moneycity=false")
);

global.eua = execute_string
(
    ini_read_string ("FASES","2","global.eua=false")
);

execute_string
(
    ini_read_string ("ARMAS","3","global.pistola3tiro=false")
);

execute_string
(
    ini_read_string ("ARMAS","4","global.metralha=false")
);

ini_close();
A lógica do ini_read_string é a seguinte:
A função vai pegar o valor que se encontra na seção e chave especificada. Se o valor não existe, o valor estipulado no argument "default", no caso, "global.variavel = false", é retornado pela função.
Dada a explicação acima, nada mais lógico que executar a declaração usando execute_string. Então, já que o único valor que é true é o da pistola, você só define esse no ini.
Código:
[ARMAS]
3 = global.pistola3tiro=true
Você ainda poderia colocar só valores true e false nos valores. Assim a função daqueles valores ficava oculta e evitava a ação de alguns malandrinhos. Então, você mudaria o execute_string para esse:
Código:
execute_sting
(
    string("global.variavel=") + ini_read_string("ARMAS", "3", "false")
);
Entendeu? Very Happy

Quanto à salvar, tá tranquilo do jeito que você fez. Boa sorte no projeto.
Markituh
Markituh

Games Ranking : Sem avaliações

Data de inscrição : 11/10/2009
Reputação : 106
Número de Mensagens : 2184
Prêmios : Ler arquivos externos Empty

Medalhas x 0 Tutoriais x 1 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

Ler arquivos externos Empty Re: Ler arquivos externos

Mensagem por Need 90 Dom 29 Jan 2012, 09:53

está dando errado, fiz o código da metralhadora e fechei o jogo, mas ele não muda o mesmo item, ele adiciona um item com o true e deixa o mesmo item com o false, tipo isso :
[FASES]
0=global.ragdown=false
1=global.moneycity=false
2=global.eua=false
[ARMAS]
3=global.pistola3tiro=false
4=global.metralha=false
5=global.pistola3tiro=true
6=global.metralha=true
esse problema é no game end
Need 90
Need 90

Games Ranking : Nota B

Notas recebidas : D+A+B
Data de inscrição : 16/01/2012
Reputação : 7
Número de Mensagens : 787
Prêmios : Ler arquivos externos 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://need90games.blogspot.com.br

Ir para o topo Ir para baixo

Ler arquivos externos Empty Re: Ler arquivos externos

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