reiniciando o jogo por files externos

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

reiniciando o jogo por files externos

Mensagem por itallo em Seg 07 Set 2009, 14:55

bom no menu do meu jogo utilizo o comando instance_deactive_all()
mas quando uso o comando room_restart() ele nao funciona.... creio que o comando de pausar o jogo que fiz esteja anulando o room_restart() ou sei lah oque....
bom entao resolvi fazer o seguinte:
se selecionar a opção reiniciar{
abrir arquivo tal (um arquivo de texto que vai estar na pasta do jogo)
ler o arquivo
entao fazer o seguinte:
aonde estiver escrito "REST = false"
ele ir mudar para "REST = true"
e onde etiver escrito "rest_room = room_cred"
ficara "rest_room = (a room que estava quando selecionou reiniciar)
dai ele fecha esse arquivo de texto;
game_restart()



é isso que quero que ele faça.....
ja criei um opbjeto na primeira room que é a room_cred
esse objeto que vai ler essa ações e dependendo da resposta ele ira agir:
eu ja tentei fazer ele ler arquivo INI e arquivos de text e não consegui se alguem puder me ajudar Very Happy
ah! mais uma coisa tpw..... sempre que iniciar o jogo esse objeto ele vai ver se esse arquivo existe se o arquivo não existir ele vai criar o arquivo text e colocar

REST = false
REST_ROOM = room_cred


o arquivo ficaria mais ou menos assim quando selecionasse o reiniciar:
REST = false
REST_ROOM = (a room que tava)

RESUMINDO:

quero que ao selecionar reiniciar ele ira salvar umas configurações num arquivo.txt e ira reiniciar o jogo, quando o jogo for reiniciado um arquivo ira ler essa configurações e de acordo com as configurações irá direcionar o jogo para a room configurada no arquivo.txt.

por enquanto é só se alguém puder me ajudar com esse problema eu agradeço.
vlws t+ vou continuar tentando aqui Happy

itallo

Ranking : Sem avaliações
Número de Mensagens : 969
Idade : 24
Data de inscrição : 26/08/2009
Reputação : 12
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   :
   :

http://www.zuluhotel.com.br

Voltar ao Topo Ir em baixo

Re: reiniciando o jogo por files externos

Mensagem por Convidad em Seg 07 Set 2009, 16:33

Aqui, coloca-se o nome e endereço do ficheiro com conteúdo de texto.
É só substituir o gameconfig.txt pelo nome do teu arquivo. Smile. Você pode colocar no evento Create de um objeto qualquer ou usar como se fosse um script.

Código:
arquivo := file_text_open_read('gameconfig.txt');
arquivo_eof := -1;

while not file_text_eof(arquivo)
begin
    arquivo_eof += 1;
    linha[arquivo_eof] := file_text_read_string(arquivo);
    file_text_readln(arquivo);
end;

file_text_close(arquivo);

Substitua aqui também.
Primeiro a gente abriu o arquivo para a leitura. Agora é para a escrita:

Código:
arquivo := file_text_open_write('gameconfig.txt');

for (l = 0; l <= arquivo_eof; l += 1)
begin
    if string_pos('REST',linha[l]) > 0 then
    begin
       
        if string_pos('false',linha[l]) > 0 then
        begin
            linha[l] := string_replace(linha[l],'false','true');
            file_text_write_string(arquivo,linha[l]);
            file_text_writeln(arquivo);
        end
       
        if string_pos('_ROOM',linha[l]) > 0 then
        begin
            linha[l] := ('REST_ROOM = ' + room_get_name(room));
            file_text_write_string(arquivo,linha[l]);
            file_text_writeln(arquivo);
        end;

    end
    else
    begin
        file_text_write_string(arquivo,linha[l]);
        file_text_writeln(arquivo);       
    end;
end;

file_text_close(arquivo);


Última edição por Capitão Commando em Seg 07 Set 2009, 21:46, editado 1 vez(es)

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: reiniciando o jogo por files externos

Mensagem por itallo em Seg 07 Set 2009, 17:11

vlws vou testar

itallo

Ranking : Sem avaliações
Número de Mensagens : 969
Idade : 24
Data de inscrição : 26/08/2009
Reputação : 12
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   :
   :

http://www.zuluhotel.com.br

Voltar ao Topo Ir em baixo

Re: reiniciando o jogo por files externos

Mensagem por Convidad em Seg 07 Set 2009, 21:48

oBKo, o que eu fiz tinha uns erros mesmo. Foi mal, tinha feito de cabeça. Agora eu refiz e corrigi o meu post anterior, e testei também. Você pode escrever o que quiser em um arquivo de texto que só as linhas que você pediu vão ser modificadas.

Se quiser baixar o exemplo que eu usei de teste, segue o link:
http://www.4shared.com/file/130999957/f6c495ea/exemplo_config_texto.html

Abraço. Boa sorte.

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: reiniciando o jogo por files externos

Mensagem por itallo em Qua 09 Set 2009, 19:26

vlws...... eu tentei lá e não tinha dado o primeiro, então fiz um outro tipo de menu e continua com o mesmo problema: não funciona a função room_restart() não o que esta dando para reiniciar a room, mas só com o seu script para mim conseguir driblar esse problema.....
vlws

itallo

Ranking : Sem avaliações
Número de Mensagens : 969
Idade : 24
Data de inscrição : 26/08/2009
Reputação : 12
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   :
   :

http://www.zuluhotel.com.br

Voltar ao Topo Ir em baixo

Re: reiniciando o jogo por files externos

Mensagem por itallo em Sab 12 Set 2009, 12:20

capitão comando eu consegui fazer direitinho mas ele soh esta salvando no file de text eu dupliquei e dei uma mexida lá e não consegui fazer
begin
if linha[1] = room_1{
room_goto(room_1)}


if linha[1] = room_2{
room_goto(room_2)
}

if linha[1] = room_3{
room_goto(room_3)
}

if linha[1] = room_4{
room_goto(room_4)
}
end

itallo

Ranking : Sem avaliações
Número de Mensagens : 969
Idade : 24
Data de inscrição : 26/08/2009
Reputação : 12
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   :
   :

http://www.zuluhotel.com.br

Voltar ao Topo Ir em baixo

Re: reiniciando o jogo por files externos

Mensagem por Kabeção em Dom 13 Set 2009, 13:39

Você esta salvando no arquivo os nomes das rooms não é?
Olha, room_1 é diferente de "room_1" com aspas.

room_1 é uma variavel com o nome da sua room que contem um valor numerico (a id da room).
"room_1" com aspas é uma string (texto).

Então quando você faz isso:
Código:
if linha[1] = room_1{
room_goto(room_1)}

...você esta comparando linha[1] com um numero e não com um texto.

O certo seria assim:
Código:
if linha[1] = "room_1"{
room_goto(room_1)}

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: reiniciando o jogo por files externos

Mensagem por dungeon333 em Dom 13 Set 2009, 16:25

ini_open("gameconfig.ini")//Abre o arquivo ini//
ini_write_string("Config","Rest",false)//Escreeve se vai "restartar" ou nao
ini_write_string("Config","Room_Restart",room_cred)//Escreve a room

///Ler///
if real(ini_read_string("Config","Rest",3))=true//Se Restart=true
{
room_goto(real(ini_read_string("Config","Room_Restart",0)))//Vai a room escrita na ini
}

dungeon333

Número de Mensagens : 351
Data de inscrição : 29/05/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: reiniciando o jogo por files externos

Mensagem por Convidad em Seg 14 Set 2009, 22:54

O Kabeção está certo quanto à comparação. São dois conteúdos diferentes pois uma é texto e outra é número (os nomes correspondem aos ids dos resources). Eu fiz um script para ler o mesmo arquivo e gravar o conteúdo em duas variáveis.

Código:
Rest := '';
Rest_Room := '';

arquivo := file_text_open_read('gameconfig.txt');
arquivo_eof := -1;

while not file_text_eof(arquivo)
begin
    arquivo_eof += 1;
    linha[arquivo_eof] := file_text_read_string(arquivo);
    file_text_readln(arquivo);
end;

file_text_close(arquivo);

for (l = 0; l <= arquivo_eof; l += 1)
begin

    if string_pos('_ROOM', linha[l]) > 0 then
    begin
        linha[l] := string_replace_all(linha[l],' ','');
        linha[l] := string_copy(
                        linha[l],
                        string_pos('=',linha[l]) + 1,
                        255
                        );
        Rest_Room := linha[l];
    end
   
    if string_pos('REST', linha[l]) > 0 then
    begin
        linha[l] := string_lower(linha[l]);
        if string_pos('false', linha[l]) > 0 then Rest := false;
        if string_pos('true', linha[l]) > 0 then Rest := true;
    end
   
end;

Agora, é só usar as variáveis Rest e Rest_Room para controlar seus scripts. Se você quiser ir para a fase que estava gravada no arquivo de texto é só usar:

Código:
if Rest_Room = 'room1' then room_goto(room1);
if Rest_Room = 'room2' then room_goto(room2);
if Rest_Room = 'room3' then room_goto(room3);

O amigo dungeon333 deu uma ideia boa também. [:¬)] Usar inis seria uma outra alternativa. [:¬D]

Boa sorte!
Capitão Commando.

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: reiniciando o jogo por files externos

Mensagem por itallo em Ter 15 Set 2009, 11:21

usar inis seria mesmo, mas tpw.... teria algum problema usar varios inis?

pq o jogo que to fazendo será meio grande, utilizara mtas sprites e scripts, então queria deixar configurações fora do exe, no exe deixar só os scripts e as sprites do player, as outras sprites e os sons.ogg fora do jogo em uma pasta escondida para não haver cópias.

itallo

Ranking : Sem avaliações
Número de Mensagens : 969
Idade : 24
Data de inscrição : 26/08/2009
Reputação : 12
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   :
   :

http://www.zuluhotel.com.br

Voltar ao Topo Ir em baixo

Re: reiniciando o jogo por files externos

Mensagem por Convidad em Qua 16 Set 2009, 23:02

Olha, eu vou falar por mim, mas isso é de cada programador. Particularmente, eu não vejo problema em usar muitos inis. O único problema é que eles devem estar no mesmo diretório do executável, o que deixa os arquivos um pouco "bagunçados".

Você tem que colocá-los no mesmo diretório do .exe, senão não funciona. Mas de qualquer forma, usar inis será mais prático mesmo. [:¬)]

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: reiniciando o jogo por files externos

Mensagem por Conteúdo patrocinado Hoje à(s) 00:30


Conteúdo patrocinado


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