Hola chicos de CGM, les cuento, e armado un juego de pokemon al cual quisiera ponerle el modo online, e podido armar la conexion pero resulta que cuando juego no se me ven los personajes, por ejemplo mi personaje de la pc1 solo se aparece en la pc1 cuando en realidad tendria que aparecer tambien en la pc2 y viceversa. quisiera que me aclaren porque puede suceder esto. Gracias
Primero que nada lo ideal sería que especifiques que usas, si Mplay o 39DLL. Segundo, ese problema es algo común, todo depende de como hiciste para enviar los datos al servidor. Tendrías que corroborar si al servidor está llegando algún mensaje, probablemente si llegan bien no los estés enviando a los clientes de forma correcta o con el mismo nombre o id.
Hola, estoy usando 39dll, mi problema se basa en que nose como envier los datos al servidor, alguien me podria poner un ejemplo de como hacerlo? por ejemplo para envier y recivir los datos de movimiento del personaje.
Cita de: agustin_24 en Febrero 01, 2013, 12:45:56 AM
Hola, estoy usando 39dll, mi problema se basa en que nose como envier los datos al servidor, alguien me podria poner un ejemplo de como hacerlo? por ejemplo para envier y recivir los datos de movimiento del personaje.
amigo.....
en descargas hay ejemplos.. solo pon la palabra online y hay muchos ejemplos
Hay ejemplos, si, pero está el de PONG que hizo eduardo960.
Para enviar tenes que hacer esto:
[gml]
clearbuffer(); //Limpiamos el buffer para enviar un nuevo mensaje
writebyte(localizacion); //Definimos que vamos a escribir los siguientes datos en "localizacion"
writeshort(x); //Escribimos el valor X
writeshort(y); //Escribimos el valor Y
sendmessage(global.game); //Enviamos los datos a la conexión actual
[/gml]
Donde global.name es el tcpconnect()
Para recibir es similar, nada más necesitas recibir el mensaje con receivemessage usando la ID del socket, después haces esto:
[gml]
localizacion = readbyte(); //Leemos el byte del personaje
x = readshort(); //Leemos su posición X
y = readshort(); //Leemos su posición Y
clearbuffer(); //Limpiamos el buffer
writebyte(localizacion); //Escribimos para enviar los datos en "localizacion"
writeshort(x); //Escribimos el valor de X
writeshort(y); //Escribimos el valor de Y
sendmessage(global.game); //Enviamos el mensaje a la conexión actual.
[/gml]
Básicamente en el sendmessage del servidor tenes que chequear a que usuario pertenecen esas coordenadas, es por eso que el global.game es diferente al del servidor, ya que tenes que enviar los datos del sócalo.
En GMC tenes muchos ejemplos, aunque están en ingles, creo que había unos cuantos de diferentes niveles.