Septiembre 05, 2012, 05:09:28 PM Ultima modificación: Septiembre 05, 2012, 06:48:05 PM por dark_servant
Hola, para los dioses de la 39dll :P tenia una duda.

En realidad quisiera convertir mi intento de online (funciona solo con 2 jugadores)  ya lo intente muchas veces pero no me sale en el multiplayer(más de 2 jugadores).

si alguien tiene sugerencias, teoria lo que sea son bien recibidas dejo mis 2 editables el segundo fue mi intento fallido.

edit: retiro los editables por el momento :P ya que la ayuda llego XD


Te explico con simpleza la teoría sobre multicliente-servidor
Cuando un cliente se conecta al servidor mediante tcpconnect, este devuelve el socket con el que se conecta al servidor y lo guardamos en una variable para comunicarnos, hasta ahí es simplísimo. Cuando un servidor recibe un cliente mediante tcplisten también se devuelve un socket con el cual se conecta con el cliente y lo guardamos en una variable para comunicarnos, sigue siendo simple. Pero qué pasa cuando un cliente nuevo se conecta? Bueno, se sobreescribe esa variable y perdemos la referencia que teníamos para comunicarnos con el jugador anterior sustituyéndola con la referencia para comunicarnos con el nuevo jugador, y acá es donde quiero hacer hincapié, esto no debe suceder bajo ninguna circunstancia. Para solucionar esto y tener referencia a todos los jugadores hay que crear una lista de referencias, entonces cuando un jugador nuevo se conecte añadimos el valor resultante de tcplisten a la lista. Entonces para leer datos de todos los jugadores o enviar, simplemente requerirá de un for, e ir leyendo valor por valor en esa lista. Eso es lo básico, aunque hay ciertos detalles que pueden complicarte más tarde como la comunicación jugador-jugador, si tenés más dudas contactame por msn o te voy explicando por acá con detenimiento, ambos métodos tienen sus ventajas, si lo hacés por acá sirve a toda la comunidad, pero por msn resolvería más rapido tus dudas. Saludos!




ok ya te agregue al facebook y al msn, soy jesus.

Es que lo que tenes que hacer es crear un objeto para todos los jugadores que no seas vos, y crear una instancia de ellos para cada uno. Está mal crear un objeto para cada cliente
El Manual

- Ley de la gravitación selectiva: toda herramienta se caerá donde produzca el mayor daño.
- Si todo parece estar bien, es obvio que uno no encontró el problema
- Todo aquello que se corte a medida resultara ser demasiado corto.
- Todo archivo borrado era necesario, todo archivo conservado es inutil
- Cuando a usted se le ocurra la solución ideal, alguien habrá resuelto ya el problema.

                                                               Murphy


si si un obj_player y cuando se conecte alguien crea una instancia de ese objeto pero el modo que me paso texic es mas facil creo... le estoy dando muchas leidas jaja tratando de comprender todo, y tambien busque distintos ejemplos. todos muy diferentes entre si. nadie ha subido un ejemplo limpio de eso y 100% entendible xD