Obrigado por visitar a The Game Makers Brasil 😁 Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais.

Não recebe os dados do buffer

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
Riccardoric
Membro
Membro
Reações: 0
Mensagens: 24

Contato:

Não recebe os dados do buffer

Mensagem por Riccardoric » Sáb Set 30, 2017 6:10 pm

Eae galera, 
Estou aprendendo a mexer com networking, já vi vários tutoriais... Já sei a mecânica toda, como funciona tudo basicamente. Só que quase nenhum tutorial ensina como mexer de forma dinâmica, o que é bastante difícil. Mas chega de bla bla bla.

È o seguinte, to tentando fazer um chat online. Por enquanto to fazendo algo bem simples. Meu problema é que quando eu mando o buffer pro meu servidor, ele não recebe ou não sei o que acontece, mas não aparece nada no draw.
Lá vai o script do client para mandar pro server:

Código: Selecionar todos

//ISSO TA NO STEP DO OBJETO CLIENT
txt = keyboard_string;
if(keyboard_check_released(vk_enter)) {
    txt = message_to_send;
    keyboard_string = "";
    buffer_seek(client_buff,buffer_seek_start,0);
    buffer_write(client_buff,buffer_string,txt);
    buffer_write(client_buff,buffer_string,name);
    network_send_packet(client_sock,client_buff,buffer_tell(client_buff));
}
Certo, agora vai o script para receber os dados

Código: Selecionar todos

//ISSO TA NO ASYNC DO SERVIDOR
switch(type) {
    case network_type_connect:
        ds_list_add(sockets,socket);
    break;
    case network_type_disconnect:
        var index = ds_list_find_index(sockets,socket);
        ds_list_delete(sockets,index);
    break;
    case network_type_data:
     //data
     var index = ds_list_find_index(sockets,socket);
     var buff = ds_map_find_value(async_load,"buffer");
     txt_line[index] = buffer_read(buff,buffer_string);
     txt_name = buffer_read(buff,buffer_string);
    break;
}
E agora, o script do draw do servidor

Código: Selecionar todos

for(i=0;i<= ds_list_size(sockets); i++){ 
    draw_text(x,y+16+i*16,string(txt_name) + ": "+string(txt_line[i]));
}
O problema é que praticamente quando aperto enter pra enviar a mensagem, nao acontece nada... Nem o nome do player aparece. Só fica os ":" ... 

Agradeço desde já :)

Responder

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitante