Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- o_client:
- #Create
- socket = network_create_socket(network_socket_tcp);
- buffer = buffer_create(1,buffer_grow,1);
- network_set_config(network_config_connect_timeout,1000);
- connection = network_connect_raw(socket,ip,port);
- myid = -1;
- alarm[0] = 60;
- #Alarm0
- if (myid != -1)
- {
- buffer_seek(buffer,buffer_seek_start,0);
- buffer_write(buffer,buffer_u8,0);
- buffer_write(buffer,buffer_string,myname);
- network_send_raw(socket,buffer,buffer_tell(buffer));
- }
- #Networking
- type = async_load[? "type"];
- switch(type)
- {
- case network_type_data:
- var incomingBuffer = async_load[? "buffer"];
- buffer_seek(incomingBuffer,buffer_seek_start,0);
- scr_data_process(incomingBuffer);
- break;
- }
- scr_data_process:
- buff = argument[0];
- var aaa = 0;
- do
- {
- aaa++;
- message_id = buffer_read(buff,buffer_u8);
- switch(message_id)
- {
- case 0: //Get id
- myid = buffer_read(buff,buffer_u16);
- break;
- case 1: //Server closed
- show_message("Server stoped!");
- game_end();
- break;
- case 2: //Kick
- break;
- case 3: //New player
- var idd,xx,yy,dir,name;
- idd = buffer_read(buff,buffer_u16);
- xx = buffer_read(buff,buffer_u32);
- yy = buffer_read(buff,buffer_u32);
- dir = buffer_read(buff,buffer_f64);
- name = buffer_read(buff,buffer_string);
- with(instance_create(xx,yy,o_player))
- {
- player_id = idd;
- nick = name;
- direction = dir;
- }
- break;
- case 4: //Get players
- count = buffer_read(buff,buffer_u32);
- for(var i = 0; i < count; i++)
- {
- var idd,xx,yy,dir,name;
- idd = buffer_read(buff,buffer_u16);
- xx = buffer_read(buff,buffer_u32);
- yy = buffer_read(buff,buffer_u32);
- dir = buffer_read(buff,buffer_f64);
- name = buffer_read(buff,buffer_text);
- with(instance_create(xx,yy,o_player))
- {
- player_id = idd;
- nick = name;
- direction = dir;
- // show_message(string(player_id)+" "+string(x)+" "+string(y)+" "+string(direction)+" "+nick);
- }
- }
- break;
- case 5: //When who left the game
- var idd = buffer_read(buff,buffer_u16);
- with(o_player)
- {
- if (player_id == idd)
- instance_destroy();
- }
- break;
- case 6: //Получаем координаты игроков
- var idd,xx,yy,dir;
- idd = buffer_read(buff,buffer_u16);
- xx = buffer_read(buff,buffer_u32);
- yy = buffer_read(buff,buffer_u32);
- dir = buffer_read(buff,buffer_f64);
- with(o_player)
- {
- if (player_id == idd && player_id != myid)
- {
- x = xx;
- y = yy;
- direction = dir;
- }
- }
- break;
- }
- }
- until(buffer_tell(buff) != buffer_sizeof(buff)); //На всякий случай, если пакеты склеются
- o_player:
- #Step
- image_angle = direction;
- if (player_id == myid)
- {
- direction = point_direction(x,y,mouse_x,mouse_y);
- if (keyboard_check(ord("W")))
- y-=5;
- if (keyboard_check(ord("A")))
- x-=5;
- if (keyboard_check(ord("S")))
- y+=5;
- if (keyboard_check(ord("D")))
- x+=5;
- if (keyboard_check(ord("W")) || keyboard_check(ord("A")) || keyboard_check(ord("S")) || keyboard_check(ord("D")))
- {
- buffer_seek(buffer,buffer_seek_start,0);
- buffer_write(buffer,buffer_u8,2);
- buffer_write(buffer,buffer_u32,x);
- buffer_write(buffer,buffer_u32,y);
- buffer_write(buffer,buffer_f64,direction);
- network_send_raw(socket,buffer,buffer_tell(buffer)) //Отправляем координаты
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement