Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: josesito1432 en Octubre 22, 2015, 06:31:47 PM

Título: problema con la funcion mplay_ipaddress()
Publicado por: josesito1432 en Octubre 22, 2015, 06:31:47 PM
hola tengo un problema estoy queriendo hacer algo multiplayer, y quiero devolver mi misma direccion ip para poder mostrarla en la pantalla,
pero estuve mirando y probando pero mi gamemaker no me reconoce ninguna de las funciones mplay.. como por ejemplo la que quiero usar
mplay_ipaddress()
me da como si no existiera, tendria que bajar alguna extension o algo???
a para agregar tambien tengo la 39dll creo que tambien tiene una funcion para devolver la ip propia alguien me puede dar una mano,, desde ya muchas gracias...
Título: Re:problema con la funcion mplay_ipaddress()
Publicado por: kostra en Octubre 22, 2015, 06:37:27 PM
exactamente, mplay en game maker studio, no existe, son todas funciones obsoletas, busca tutoriales de networking con las nuevas y mejores funciones.
Título: Re:problema con la funcion mplay_ipaddress()
Publicado por: josesito1432 en Octubre 22, 2015, 06:48:10 PM
muchas gracias, alguna pagina de recomendacion o algo similar tutoriales etc.
Título: Re:problema con la funcion mplay_ipaddress()
Publicado por: kostra en Octubre 22, 2015, 08:10:06 PM
youtube xD
Título: Re:problema con la funcion mplay_ipaddress()
Publicado por: Guacusio en Octubre 22, 2015, 09:40:02 PM
Esta es una manera de obtener la IP local del equipo:

-Crea un servidor udp y luego un socket udp
-Crea un buffer pequeño y envíalo usando un broadcast (da lo mismo lo que contenga)
-borra el socket y el buffer
-en el evento asíncrono Networking rescata la IP de la cual proviene el paquete recibido, que corresponde a la IP del equipo, leyéndola del mapa async_load
-destruye el servidor.

Llevando esto a código:
host=network_create_server(network_socket_udp,64198,1);//puede ser cualquier puerto libre disponible
if host>=0
    {
    var tsock=network_create_socket(network_socket_udp);
    var tbuff=buffer_create(32,buffer_fixed,1);
    network_send_broadcast(tsock,64198,tbuff,buffer_get_size(tbuff));
    network_destroy(tsock);
    buffer_delete(tbuff);
    }


Evento Networking:
ip=ds_map_find_value(async_load, "ip");
network_destroy(host);


La variable ip contendrá la IP local del equipo.