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
» 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

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


problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll

4 participantes

Ir para baixo

problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll Empty problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll

Mensagem por Daniel Machado Alves Dom 12 Fev 2012, 18:34

asim,eu estou mandando uma menssagem do cliente para o servidor e estou conseguindo,porem quando a menssagem chega no host e o comando que escreve essa variavel em um arquivo txt esta dando problema porque a variavel esta vindo com um caractere nao reconhecido segue abaixo os comandos envouvidos.

a comunicaçao esta sendo feita de 2 projetos diferentes,o projeto host e o projeto cliente

eu estou enviando a variavel global.Nick da seguinte forma

clearbuffer();
writestring(global.Nick);
sendmessage(global.Server);

e usando no host:

nick = readstring()

para ler a variavel nick ke foi enviada pelo cliente
e em seguida usando:

file=file_text_open_write(nick+".txt");
file_text_write_string(file,nick);
file_text_writeln(file)
file_text_close(file);

para criar um arquivo de texto com o jome do cliente ke é a variavel nick
porem o host aponta o seguinte erro :

ERROR in
action number 2
of Alarm Event for alarm 0
for object obj_host:

Error opening file for writing.

--------------

eu fiz um teste e ao inves de colokar nick+".txt"
usei um nome qualquer "testando.txt"

e funcionou,o host gravou o nome que eu colokei na variavel global.nick no cliente
e gravo no arquivo "testando.txt",porem,nao foi só a variavel,outra coisa antes da variavel
tbm foi escrita,um caratere nao reconhecido e que creio eu foi o motivo do erro na hora de dar o nome que estava na variavel ao arquivo txt:

jack

aki em casa esse caratere desconhecido aparece como 1 quadrado com com 3 zeros e 1 quatro,+ ou - asim :

|00|
|04|

abaixo segue todos os objetos dos 2 projetos,cliente e host.

cliente

obj_controle
Spoiler:

obj_cliente

Spoiler:

servidor

obj_controle

Spoiler:

obj_host

Spoiler:

menssagem de erro

ERROR in
action number 2
of Alarm Event for alarm 0
for object obj_host:

Error opening file for writing.







constantes de ambos os projetos

constante | valor

PL_NICK | 1
PL_SOCK | 0
MSG_CONEXAO_ACEITA | 3
MSG_SERVIDOR_CHEIO | 255
MSG_PLDATA | 2

Dez de já agradeço!




Última edição por Daniel Machado Alves em Seg 13 Fev 2012, 14:52, editado 2 vez(es)
Daniel Machado Alves
Daniel Machado Alves

Data de inscrição : 29/04/2011
Reputação : 0
Número de Mensagens : 33
Prêmios : problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll 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

problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll Empty Re: problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll

Mensagem por PedroX Dom 12 Fev 2012, 23:36

file=file_text_open_write(nick".txt");
file_text_write_string(file,nick); //Se for uma variável string
file_text_writeln(file)
file_text_close(file);

Você colocou (nick".txt") sem o mais.

Imagino que por você ter colado os códigos aqui, realmente esteja desse jeito no gmk.

Veja ai.

_________________


Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.

Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.

Aprenda a calcular a velocidade de suas animações


Entre para o Clube do Inglês:
PedroX
PedroX

Games Ranking : Nota B

Notas recebidas : C+B
Data de inscrição : 26/07/2008
Reputação : 311
Número de Mensagens : 6087
Prêmios : problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll Empty

Medalhas x 0 Tutoriais x 17 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

https://web.whatsapp.com/send?phone=5519995935953&text=Pedro

Ir para o topo Ir para baixo

problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll Empty Re: problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll

Mensagem por Daniel Machado Alves Seg 13 Fev 2012, 00:08

malz erro meu foi na hora de colar no topco pq no gmk eu fui testar se a variavel estava sendo escrita se o nome foce um nome qualquer EX: "testando.txt" e a variavel nick foi escrita só ke com 1 caractere desconhecido antes da variavel

isso aki > 
=/

edit:

quando eu tento criar um arquivo de testo fora do gm,clicando com o direito do mouse>novo>documento de texto e em seguida tento reprodusir o que o codigo tenta fazer,ke é criar um arquivo com a variavel que foi escrita dentro dele EX: jack.txt o Windows aponta o seguinte erro"os nomes de arquivo não podem conter nenhum dos seguintes caracteres: \/ : * ? " <> |"
eu pensso que algun caractere invalido esta sendo inserido na menssagem durante o envio,mas onde isso acontece eu nao faço a menor idéia =/,espero que ajude.
Daniel Machado Alves
Daniel Machado Alves

Data de inscrição : 29/04/2011
Reputação : 0
Número de Mensagens : 33
Prêmios : problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll 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

problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll Empty Re: problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll

Mensagem por Mr.Brum Seg 13 Fev 2012, 01:49

cara, que tal testar se o arquivo existe , antes de abri-lo??
Pois o erro diz que a falha está ao abrir o arquivo e isso acontece quando ele não é encontrado.
Coloque assim:
Código:
if file_exists(nick+".txt")
{
file=file_text_open_write(nick+".txt");
file_text_write_string(file,nick);
file_text_writeln(file)
file_text_close(file);
}

Pode ser que resolva o problema, mas de qualquer forma, não te aconselho a usar .txt, e sim .ini, que são mais estruturados, e tem funções específicas no gml!
Mr.Brum
Mr.Brum

Games Ranking : Nota C

Notas recebidas : D + D + C + C + D + B
Data de inscrição : 28/04/2011
Reputação : 41
Número de Mensagens : 915
Prêmios : problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll 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

http://mrbrumgames.blogspot.com/

Ir para o topo Ir para baixo

problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll Empty Re: problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll

Mensagem por Daniel Machado Alves Seg 13 Fev 2012, 12:04


cara, que tal testar se o arquivo existe , antes de abri-lo??
Pois o erro diz que a falha está ao abrir o arquivo e isso acontece quando ele não é encontrado.
Coloque assim:


if file_exists(nick+".txt")
{
file=file_text_open_write(nick+".txt");
file_text_write_string(file,nick);
file_text_writeln(file)
file_text_close(file);
}
mas eu quero criar um arquivo,o comando
file=file_text_open_write(nick+".txt");
criar um arquivo com o nome nick+".txt" e escreve dentro do arquivo
file_text_write_string(file,nick);
e caso o arquivo ja exista ele abre o arquivo que ele encontrou com o nome dado a ele e grava a variavel nick
file_text_close(file);
e por ultimo fecha o arquivo

eu ja testei esse comando em um teste "offline" e funciono,acontecia exatamento como eu disse,o problema no online é que a variavel esta vindo com uma coisa a + que eu nao colokei nela,um caractere invalido que nao pode ser colocado em um nome de arquivo e por isso aponta o erro,e eu nao faço a menor idéia de onde esse caratere esta sendo inserido na variavel durante o envio de cliente pra servidor =/


Daniel Machado Alves
Daniel Machado Alves

Data de inscrição : 29/04/2011
Reputação : 0
Número de Mensagens : 33
Prêmios : problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll 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

problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll Empty Re: problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll

Mensagem por MatheusReis Seg 13 Fev 2012, 12:21

No host, logo após o "nick = readstring() " insira o comando:
Código:
show_message(nick)
E, ao efetuar a conexão normalmente, diga o conteudo da mensagem que aparecerá na tela do host ( deverá ser o nick enviado pelo client E o(s) caractere(s) indesejado(s)).
Assim poderemos descobrir o que está vindo de errado na mensagem, se for o caso.
Faça este teste e poste o resultado.
MatheusReis
MatheusReis

Games Ranking : Nota A

Notas recebidas : B-A-A
Data de inscrição : 13/01/2010
Reputação : 31
Número de Mensagens : 1093
Prêmios : problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Unity
  • Java
  • C#
  • Javascript


http://www.mathaeuz.deviantart.com

Ir para o topo Ir para baixo

problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll Empty Re: problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll

Mensagem por Daniel Machado Alves Seg 13 Fev 2012, 12:45

problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll Imagendeerro

https://2img.net/r/ihimg/photo/my-images/18/imagendeerro.png/
o caratere que acho ke ta dando problema é esse retangulo antes do nome jack,ke é a variavel que enviei,esse retangulo no bloco de notas aparece como um quadrado e no navegador um simbulo estranho com tres 0 e um 4 formando um quadrado nessa ordem

"0004"
00
04

complicado =/


Última edição por Daniel Machado Alves em Seg 13 Fev 2012, 12:47, editado 1 vez(es)
Daniel Machado Alves
Daniel Machado Alves

Data de inscrição : 29/04/2011
Reputação : 0
Número de Mensagens : 33
Prêmios : problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll 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

problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll Empty Re: problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll

Mensagem por MatheusReis Seg 13 Fev 2012, 12:46

Repita o teste com nicks variados, de tamanhos diferentes.
Continua aparecendo SÓ este caractere?
MatheusReis
MatheusReis

Games Ranking : Nota A

Notas recebidas : B-A-A
Data de inscrição : 13/01/2010
Reputação : 31
Número de Mensagens : 1093
Prêmios : problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Unity
  • Java
  • C#
  • Javascript


http://www.mathaeuz.deviantart.com

Ir para o topo Ir para baixo

problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll Empty Re: problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll

Mensagem por Daniel Machado Alves Seg 13 Fev 2012, 12:54

aham,sempre aparese esse traço estranho antes,testei nicks com letras maiusculas,com espaços,nick + diferente que testei foi "Daniel Machado Alves"exatamente asim e o traço continua aparecendo =/

edit:
cliente: http://www.mediafire.com/?id3ktuahcwuybdf
servidor: http://www.mediafire.com/?pu9mqjx3tg54ljt
Daniel Machado Alves
Daniel Machado Alves

Data de inscrição : 29/04/2011
Reputação : 0
Número de Mensagens : 33
Prêmios : problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll 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

problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll Empty Re: problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll

Mensagem por MatheusReis Seg 13 Fev 2012, 14:01

A minha solução não descobre o por que do caractere aparecer... mas elimina ele antes de usar o nick para criar o arquivo.

Por hora, faça um backup do que tem pronto até agora.
Então, após o "nick=readstring()" use:
Código:
nick=string_delete(nick,1,1);
Isto irá deletar 1 char apartir da posição 1 na string nick (ou seja, vai apagar o primeiro caractere, o indesejado). Assim você poderá usar a nova variável nick para salvar o arquivo. Vou baixar seus editáveis para ver se descubro a causa do caractere.

EDIT

Olha cara... por mais bizarro que seja, o erro vem direto da dll...
Possivelmente este simbolo é residuo de alguma mensagem anterior no buffer. Ou seja, algum dos dados enviados foi lido no formato errado, antes do nick=readstring(), deixando esse caractere para trás. Vou continuar testando.

EDIT 2

Dito e feito!!!

No obj_client você envia o nick constantemente usando a sequencia de dados

byte,byte,string

Código:
writebyte(MSG_PLDATA);
writebyte(MSG_CRIAR_CONTA);
writestring(global.Nick);

Mas no obj_host você só leu 1 byte e 1 string!!!

Primeiro no msgID = readbyte(); e depois no nick=readstring();
O segundo byte enviado no client é adicionado à string no host.

Portanto para corrigir, apenas leia este byte extra antes de ler a string.

Código:
case MSG_PLDATA: //Pegar dados do jogador
var nick;
readbyte()//ignora este byte
nick = readstring();

Com isso, o defeito é sanado e a string do nick será idêntica à enviada pelo client (e poderá ser usada no txt, se o nick enviado nao contiver caracteres especiais).
Você não precisa mais usar aquele code do 'string_delete'. o/
MatheusReis
MatheusReis

Games Ranking : Nota A

Notas recebidas : B-A-A
Data de inscrição : 13/01/2010
Reputação : 31
Número de Mensagens : 1093
Prêmios : problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Unity
  • Java
  • C#
  • Javascript


http://www.mathaeuz.deviantart.com

Ir para o topo Ir para baixo

problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll Empty Re: problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll

Mensagem por Daniel Machado Alves Seg 13 Fev 2012, 14:51

Problema resolvido ! cheers cheers cheers
Obrigado a todos que dedicaram um tempinho para me ajudar Very Happy
Daniel Machado Alves
Daniel Machado Alves

Data de inscrição : 29/04/2011
Reputação : 0
Número de Mensagens : 33
Prêmios : problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll 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

problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll Empty Re: problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll

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