Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Owner94 en Octubre 31, 2010, 02:10:34 AM

Título: GM8: Env?o y llegada de datos en 39Dll (solucionado)
Publicado por: Owner94 en Octubre 31, 2010, 02:10:34 AM
Buenas, la verdad es que estoy un poco desconcertado, porque estoy hecho un l?o con este tema, he mirado muchos ejemplos, pero todos eran para juegos 1vs1, pero yo ahora tengo 4 personas online al momento, que deber?a poner para poder enviar cada paquete, a TODOS los demas personajes? ?y para recibirlos?
La cosa est? en que, hay alguna forma de poner los datos para que se envien a todos o tengo que enviar el paquete tres veces (para los otros 3 personajes)
sendmessage...
sendmessage..   ?As? tres veces? ?O hay otra manera?
sendmessage..

Muchisimas gracias por echar una mano :)
Título: Re: GM8: Env?o y llegada de datos en 39Dll
Publicado por: Texic en Octubre 31, 2010, 06:43:35 AM
con For y while Lo hago yo, creo que No hay otra manera
esto de No tener teclado Me Mata
Título: Re: GM8: Env?o y llegada de datos en 39Dll
Publicado por: eduardo960 en Octubre 31, 2010, 09:29:51 AM
Como te dijo Texic, la mejor forma es usando bucles, si guardas los socket de cada jugador en un array podr?as hacer as?:

[gml]
// Env?o de mensaje TCP a todos los clientes
// global.socket = Contiene el socket asignado por la 39dll
// global.maxjugadores = El m?ximo de jugadores posibles (Debe ser constante, con esto me refiero a que es la capacidad m?xima de jugadores en el juego, no los que est?n actualmente conectados)
// global.jugador_online = Valor booleano (0 o 1) que demuestra si el jugador esta conectado

var i;
for(i = 1; i <= global.maxjugadores; i += 1)
{
    if global.jugador_online
    {
        sendmessage(global.socket)
    }
}
[/gml]

Siguiendo esa base puedes conseguir un online estable, para leer datos en el cliente no hay ning?n problema, ya que se puede leer directo, pero para que el host lea los datos de todos los clientes, podr?a ser as?:

[gml]
// Recibe mensajes de los clientes
// global.socket = Contiene el socket asignado por la 39dll
// global.maxjugadores = El m?ximo de jugadores posibles (Debe ser constante, con esto me refiero a que es la capacidad m?xima de jugadores en el juego, no los que est?n actualmente conectados)
// global.jugador_online = Valor booleano (0 o 1) que demuestra si el jugador esta conectado

var i;
for(i = 1; i <= global.maxjugadores; i += 1)
{
    if global.jugador_online
    {
        if tcpconnected(global.socket)
        {
            clearbuffer()
            receivemessage(global.socket
            /* Aqu? continuar con la lectura de datos recibidos */
        }
    }
}
[/gml]

Saludos :)
Título: Re: GM8: Env?o y llegada de datos en 39Dll
Publicado por: Owner94 en Octubre 31, 2010, 12:40:34 PM
Muchas gracias a los dos, tomo nota! :)
Título: Re: GM8: Env?o y llegada de datos en 39Dll (solucionado)
Publicado por: Texic en Octubre 31, 2010, 06:50:14 PM
Uf, ya tengo teclado de vuelta XD
Bueno, te iba a decir q puedes meter esos c?digos en un script nuevo, y llamarlo sendmessage2 o algo por el estilo y asi podr?s seguir programando de la misma manera q antes, adem?s de ahorrarte muchas l?neas de c?digo
Título: Re: GM8: Env?o y llegada de datos en 39Dll (solucionado)
Publicado por: Hackware en Octubre 31, 2010, 07:10:16 PM
CitarY as? nuestro h?roe Texic sobrevivi? a los 1000 a?os de escasez de teclados, salv? a muchos makeros en peligro y vivi? feliz para siempre.

...Fin...
Título: Re: GM8: Env?o y llegada de datos en 39Dll (solucionado)
Publicado por: Texic en Octubre 31, 2010, 07:32:30 PM
Citar
Hackware observ? a sus alrededores... CGM estaba vac?a, vacil? un instante... "Esto me va a costar karma... Pero no debo ser egoista, el mundo debe saberlo..." Y escribi? lentamente sobre la conocida planilla. Agreg? efectos y agrand? la letra para que su comentario no pasara desapercibido. Dio vueltas en c?rculo por su habitaci?n, mir? la pantalla de su computadora, luego el mouse, y se abalanz? decidido a presionar el bot?n izquierdo.
Su karma podr? haber bajado un poco, pero nadie en CGM olvidar? el d?a en el que Hackware escribi? este comentario (http://www.comunidadgm.org/index.php?topic=12046.msg56480#msg56480), el comentario m?s directo y gracioso de la historia.

Fin
XD

PD: Recordaba esa letra un poco m?s grande y naranja, q pas???
Título: Re: GM8: Env?o y llegada de datos en 39Dll (solucionado)
Publicado por: Hackware en Noviembre 01, 2010, 01:59:40 AM
Estabas usando el zoom del navegador. XD

Suficientes tontoposts para un d?a. :P

?Saludos!