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
» player não consegue andar
por lovn7 Qui 21 Nov 2024, 13:33

» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22

» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31

» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23

» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49

» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58

» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36

» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36

» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33

» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51

» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28

» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18

» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08

» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10

» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16

» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40

» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01

» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45

» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34

» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28

» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48

» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54

» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14

» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50


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