Octubre 31, 2010, 02:10:34 AM Ultima modificación: Octubre 31, 2010, 12:40:50 PM por Owner94
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 :)

con For y while Lo hago yo, creo que No hay otra manera
esto de No tener teclado Me Mata




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 :)
W.I.P:            RaceBall, SceneChat, MMOPTG
Contacto:    Twitter, Facebook


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




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

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, 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???




Estabas usando el zoom del navegador. XD

Suficientes tontoposts para un d?a. :P

?Saludos!