Entrar
Últimos assuntos
» player não consegue andarpor 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
Página 1 de 1
problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll
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
obj_cliente
servidor
obj_controle
obj_host
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!
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:
Information about object: obj_controle
Sprite:
Solid: false
Visible: true
Depth: 0
Persistent: true
Parent:
Mask:
Create Event:
execute code:
global.Nick = get_string("Digite seu Nick: ",""); //Pegar o nick do jogador
global.Server = 0; //Guarda o Socket do Servidor.
global.MyID = -1; //ID online do jogador
global.MaxPlayers = 0;
dllinit("39dll.dll",1); //Inicializar funções de Sockets da DLL.
Draw Event:
execute code:
if room = room1
{
draw_text(200,16,"Tela de Espera");
}
if instance_exists(obj_cliente)
{
for (i=0; i < global.MaxPlayers; i += 1)
{
draw_text(5,32+i*16, string(i)+" "+obj_cliente.players[i,PL_NICK]);
}
}
if instance_exists(obj_nome){
draw_text(obj_nome.x+4,obj_nome.y+4,global.Nick)}
obj_cliente
- Spoiler:
Information about object: obj_cliente
Sprite:
Solid: false
Visible: true
Depth: 0
Persistent: true
Parent:
Mask:
Create Event:
execute code:
global.Server = tcpconnect(global.connectIP,5068,1);
if (!global.Server) //Se não conectarmos sair e exibir mensagem de erro
{instance_destroy();
show_message("Erro ao conectar");
exit;}
room_goto(room1);
alarm[0] = 30
Alarm Event for alarm 0:
execute code:
//Receber mensagens do servidor
var size, msgID;
size = 1;
while (size)
{
size = receivemessage(global.Server); //Retorna a quantidade de bytes recebidos
if (!size) //Se não recebermos nada, sair desse script.
{exit;}
msgID = readbyte(); //Lemos o primeiro byte da mensagem, ou seja o ID da mensagem.
switch (msgID)
{
case MSG_CONEXAO_ACEITA: //Fui aceito no servidor
global.MyID = readbyte(); //Pegamos o meu ID
global.MaxPlayers = readbyte(); //Lemos a quantidade de jogadores maxima no servidor
//Criar lista de Jogadores.
for (i = 0; i < global.MaxPlayers; i += 1)
{
//players[i,PL_SOCK] = -3; //Socket do player [Só usado no Host]
players[i,PL_NICK] = ""; //Nick do player
}
players[global.MyID,PL_NICK] = global.Nick;
//Para dar continuidade agora vamos enviar o meu nick para o servidor
//e ele retornara com o nick de todos os jogadores
clearbuffer();
writebyte(MSG_PLDATA);
writebyte(MSG_CRIAR_CONTA);
writestring(global.Nick);
sendmessage(global.Server);
break;
case MSG_SERVIDOR_CHEIO:
closesocket(global.Servidor); //Fechamos a conexão
show_message("Servidor lotado"); //Exibimos o erro
instance_destroy();
room_goto(rm_Menu); //Voltamos para o menu
exit;
break;
}
}
case MSG_PLDATA:
players[readbyte(), PL_NICK] = readstring();
break;
alarm[0] = 30
//
servidor
obj_controle
- Spoiler:
Information about object: obj_controle
Sprite:
Solid: false
Visible: true
Depth: 0
Persistent: true
Parent:
Mask:
Create Event:
execute code:
global.Nick = get_string("Digite seu Nick: ",""); //Pegar o nick do jogador
global.Server = 0; //Guarda o Socket do Servidor.
global.MyID = -1; //ID online do jogador
global.MaxPlayers = 0;
dllinit("39dll.dll",1); //Inicializar funções de Sockets da DLL.
Draw Event:
execute code:
if room = room1
{
draw_text(200,16,"Tela de Espera");
}
if instance_exists(obj_host)
{
for (i=0; i < global.MaxPlayers; i += 1)
{
draw_text(5,32+i*16, string(i)+" Sock: "+string(obj_host.players[i,PL_SOCK])+" Nick: "+obj_host.players[i,PL_NICK]);
}
}
obj_host
- Spoiler:
Information about object: obj_host
Sprite:
Solid: false
Visible: true
Depth: 0
Persistent: true
Parent:
Mask:
Create Event:
execute code:
//
//Criar servidor
global.Server = tcplisten(5068,5,1); //Inicializa o Servidor, fica em espera por conexões na porta 5068.
//Você pode mudar os argumentos dessa função como preferir.
//tcplisten(PORTA,CONEXÕES SIMUNTANEAS, MODO);
//PORTA -> Porta para conectar
//CONEXÕES SIMUNTANEAS -> Antes do jogador entrar mesmo no jogo, sua conexão deve ser aceita, enquanto isso ele ficara na "espera".
//Isso é para quantos você quer deixar na espera. Não é preciso um valor muito alto.
//MODO -> deixe o valor em 1, senão seu servidor ficará travado até alguem conectar
if (!global.Server) //Caso não tenha inicializado corretamente passar uma mensagem de erro.
{instance_destroy();
show_message("Erro ao criar o servidor");
exit;}
global.MaxPlayers = 10; //Limite de jogadores
//Criar lista de Jogadores.
for (i = 0; i < global.MaxPlayers; i += 1)
{
players[i,PL_SOCK] = -3; //Socket do player [Só usado no Host]
players[i,PL_NICK] = ""; //Nick do player
}
//Adicionar informações do servidor na lista [Servidor sempre é o 0]
players[0,PL_SOCK] = global.Server;
players[0,PL_NICK] = global.Nick;
global.MyID = 0;
room_goto(room1); //Depois de inicializar tudo corretamente ir para a tela de espera.
alarm[0] = 30
Alarm Event for alarm 0:
execute code:
//Aceitar novas conexões
var i, sock, newPL;
sock = tcpaccept(global.Server, 1);
if (!sock) //Se não existirem novas conexões
{exit;} //sair do script
for (i = 0; i < global.MaxPlayers; i+=1)
{
if (!players[i,PL_SOCK])
{
newPL = i;
break;
}
}
if newPL //Tem vagas no servidor
{
players[newPL,PL_SOCK] = sock;
//Enviar uma mensagem para o jogador, falando que ele foi aceito
clearbuffer(); //Limpar o buffer
writebyte(MSG_CONEXAO_ACEITA); //Byte identificador da mensagem
writebyte(newPL); //Enviar o ID do jogador
writebyte(global.MaxPlayers); //Enviar quantidade maxima de jogadores
sendmessage(sock); //Enviar mensagem
}
else //Servidor cheio
{
//Enviar uma mensagem para o jogador, falando que o servidor já está cheio e ele não pode se conectar.
clearbuffer(); //Limpar o buffer
writebyte(MSG_SERVIDOR_CHEIO); //Byte identificador da mensagem
sendmessage(sock); //Enviar mensagem
closesocket(sock);
}
execute code:
//Receber mensagens do Client
var size, msgID;
for (iPL = 1; iPL < global.MaxPlayers; iPL += 1) //Precisamos receber a mensagem de cada jogador
{ //Usamos "iPL" pois depois serão feitos outros loops e usar a variavel "i" pode gerar conflitos
size = 1;
while (size)
{
size = receivemessage(players[iPL,PL_SOCK]); //Receber a mensagem do socket de cada player
if (!size) //Se não recebermos nada, sair desse script e passar para o próximo player
{break;}
msgID = readbyte(); //Lemos o primeiro byte da mensagem, ou seja o ID da mensagem.
switch (msgID)
{
case MSG_PLDATA: //Pegar dados do jogador
var nick;
nick = readstring(); //Ler o nick do jogador.
login = readstring()
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);
//Agora guardamos o nick na variavel do jogador:
players[iPL, PL_NICK] = nick;
//Não precisamos guardar o ID porque isso já foi feito quando ele se conectou!
//Agora vamos repassar para os outros jogadores:
clearbuffer();
writebyte(MSG_PLDATA);
writebyte(iPL); //Os outros jogadores só recebem dados do servidor, então precisam saber o ID de qual player são esses dados
writestring(nick);
for (i=1; i < global.MaxPlayers; i+=1) //Como são varios jogadores, precisamos enviar para todos eles
{ //Usando um loop for isso fica bem facil! Repare que começamos do 1, porque o 0 é sempre o servidor.
if (i != iPL) //Não precisamos repassar a mensagem para quem a enviou
{sendmessage(players[i,PL_SOCK]);}
}
//O Hoster possui os dados de todos os jogadores então ele mesmo pode repassar os nicks dos demais players
for (i = 0; i < global.MaxPlayers; i += 1)
{
if (i != iPL) //Não enviar o nick do proprio jogador para ele mesmo
{
clearbuffer();
writebyte(MSG_PLDATA);
writebyte(i);
writestring(players[i,PL_NICK]);
sendmessage(players[iPL,PL_SOCK]);
}
}
break;
}
}
}
alarm[0] = 30
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- Data de inscrição : 29/04/2011
Reputação : 0
Número de Mensagens : 33
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll
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:
Re: problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll
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.
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- Data de inscrição : 29/04/2011
Reputação : 0
Número de Mensagens : 33
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll
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:
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!
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!
Re: problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll
mas eu quero criar um arquivo,o comando
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);
}
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- Data de inscrição : 29/04/2011
Reputação : 0
Número de Mensagens : 33
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll
No host, logo após o "nick = readstring() " insira o comando:
Assim poderemos descobrir o que está vindo de errado na mensagem, se for o caso.
Faça este teste e poste o resultado.
- Código:
show_message(nick)
Assim poderemos descobrir o que está vindo de errado na mensagem, se for o caso.
Faça este teste e poste o resultado.
Re: problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll
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- Data de inscrição : 29/04/2011
Reputação : 0
Número de Mensagens : 33
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll
Repita o teste com nicks variados, de tamanhos diferentes.
Continua aparecendo SÓ este caractere?
Continua aparecendo SÓ este caractere?
Re: problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll
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
edit:
cliente: http://www.mediafire.com/?id3ktuahcwuybdf
servidor: http://www.mediafire.com/?pu9mqjx3tg54ljt
Daniel Machado Alves- Data de inscrição : 29/04/2011
Reputação : 0
Número de Mensagens : 33
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll
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:
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
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.
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/
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);
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/
Re: problemas ao escrever uma variavel recebida do cliente em um arquivo .txt 39dll
Problema resolvido !
Obrigado a todos que dedicaram um tempinho para me ajudar
Obrigado a todos que dedicaram um tempinho para me ajudar
Daniel Machado Alves- Data de inscrição : 29/04/2011
Reputação : 0
Número de Mensagens : 33
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Conteúdo patrocinado
Tópicos semelhantes
» Escrever variável na tela.
» [Duvida]Escrever oque há dentro do arquivo
» Escrever uma variavel no valor de uma Sprite
» Variavel criar arquivo *.bat
» Como escrevo uma variável em um arquivo de texto NÃO INI
» [Duvida]Escrever oque há dentro do arquivo
» Escrever uma variavel no valor de uma Sprite
» Variavel criar arquivo *.bat
» Como escrevo uma variável em um arquivo de texto NÃO INI
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos