Create:
global.is_server = false;
global.broadcast_server = -1;
global.server = -1;
global.broadcast_buffer = buffer_create(32, buffer_fixed, 1);
ip_address = "127.0.0.1";
port = 2240
clients = ds_list_create();
Step:
if (keyboard_check_pressed(ord("E")) and room == rm_main_menu)
{
room_goto(rm_multiplayer);
}
if (keyboard_check_pressed(ord("D")) and room == rm_main_menu)
{
room_goto(rm_server_browser)
}
Alarm:
buffer_seek(global.broadcast_buffer, buffer_seek_start, 0);
buffer_write(global.broadcast_buffer, buffer_u8, 19);
network_send_broadcast(global.server, port, global.broadcast_buffer, buffer_tell(global.broadcast_buffer));
global.is_server = true;
alarm[1] = room_speed;
Draw:
if (room == rm_main_menu)
{
draw_text(100,100, "Press E for Multiplayer");
}
if (room == rm_main_menu)
{
draw_text(100,200, "Press D for Server Browser");
}
if (room == rm_multiplayer)
{
draw_text(100, 100, "Multiplayer");
}
if (room == rm_server_browser)
{
draw_text(100, 100, "Server Browser");
draw_text(100,200, ip_address)
}
Room Start:
if (room == rm_multiplayer)
{
show_message("Network Created")
if (global.broadcast_server > 0)
{
network_destroy(global.broadcast_server);
}
global.broadcast_server = -1;
global.server = network_create_server(network_socket_udp, port, 4);
global.is_server = true;
alarm[1] = room_speed
}
if (room == rm_server_browser)
{
global.broadcast_server = network_create_server(network_socket_udp, port, 4);
global.is_server = false;
}
Game End:
if (global.broadcast_server > 0)
{
network_destroy(global.broadcast_server)
buffer_delete(global.broadcast_buffer)
}
if (global.is_server == true)
{
network_destroy(global.server)
}
Async - Networking:
//Detecting server broadcast
var eventid = async_load[? "id"]
if (eventid == global.broadcast_server)
{
var ip = async_load[? "ip"]
var buff = async_load[? "buffer"]
var num = buffer_read(buff, buffer_u8);
ip_address = ip;
show_message(ip)
}