Advertisement
livolickie

Client

Jan 18th, 2018
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. o_client:
  2. #Create
  3. socket = network_create_socket(network_socket_tcp);
  4. buffer = buffer_create(1,buffer_grow,1);
  5. network_set_config(network_config_connect_timeout,1000);
  6. connection = network_connect_raw(socket,ip,port);
  7. myid = -1;
  8. alarm[0] = 60;
  9. #Alarm0
  10. if (myid != -1)
  11. {
  12.     buffer_seek(buffer,buffer_seek_start,0);
  13.     buffer_write(buffer,buffer_u8,0);
  14.     buffer_write(buffer,buffer_string,myname);
  15.     network_send_raw(socket,buffer,buffer_tell(buffer));
  16. }
  17. #Networking
  18. type = async_load[? "type"];
  19. switch(type)
  20. {
  21.     case network_type_data:
  22.         var incomingBuffer = async_load[? "buffer"];
  23.         buffer_seek(incomingBuffer,buffer_seek_start,0);
  24.         scr_data_process(incomingBuffer);
  25.     break;
  26. }
  27. scr_data_process:
  28. buff = argument[0];
  29. var aaa = 0;
  30. do
  31. {
  32. aaa++;
  33. message_id = buffer_read(buff,buffer_u8);
  34. switch(message_id)
  35. {
  36.     case 0: //Get id
  37.         myid = buffer_read(buff,buffer_u16);
  38.     break;
  39.    
  40.     case 1: //Server closed
  41.         show_message("Server stoped!");
  42.         game_end();
  43.     break;
  44.    
  45.     case 2: //Kick
  46.    
  47.     break;
  48.    
  49.     case 3: //New player
  50.         var idd,xx,yy,dir,name;
  51.         idd = buffer_read(buff,buffer_u16);
  52.         xx = buffer_read(buff,buffer_u32);
  53.         yy = buffer_read(buff,buffer_u32);
  54.         dir = buffer_read(buff,buffer_f64);
  55.         name = buffer_read(buff,buffer_string);
  56.         with(instance_create(xx,yy,o_player))
  57.         {
  58.             player_id = idd;
  59.             nick = name;
  60.             direction = dir;
  61.         }
  62.     break;
  63.    
  64.     case 4: //Get players
  65.         count = buffer_read(buff,buffer_u32);
  66.         for(var i = 0; i < count; i++)
  67.         {
  68.             var idd,xx,yy,dir,name;
  69.             idd = buffer_read(buff,buffer_u16);
  70.             xx = buffer_read(buff,buffer_u32);
  71.             yy = buffer_read(buff,buffer_u32);
  72.             dir = buffer_read(buff,buffer_f64);
  73.             name = buffer_read(buff,buffer_text);
  74.             with(instance_create(xx,yy,o_player))
  75.             {
  76.                 player_id = idd;
  77.                 nick = name;
  78.                 direction = dir;
  79.          //       show_message(string(player_id)+" "+string(x)+" "+string(y)+" "+string(direction)+" "+nick);
  80.             }
  81.         }
  82.     break;
  83.    
  84.     case 5: //When who left the game
  85.         var idd = buffer_read(buff,buffer_u16);
  86.         with(o_player)
  87.         {
  88.             if (player_id == idd)
  89.                 instance_destroy();
  90.         }
  91.     break;
  92.    
  93.     case 6: //Получаем координаты игроков
  94.         var idd,xx,yy,dir;
  95.         idd = buffer_read(buff,buffer_u16);
  96.         xx = buffer_read(buff,buffer_u32);
  97.         yy = buffer_read(buff,buffer_u32);
  98.         dir = buffer_read(buff,buffer_f64);
  99.         with(o_player)
  100.         {
  101.             if (player_id == idd && player_id != myid)
  102.             {
  103.                 x = xx;
  104.                 y = yy;
  105.                 direction = dir;
  106.             }
  107.         }
  108.     break;
  109. }
  110. }
  111. until(buffer_tell(buff) != buffer_sizeof(buff)); //На всякий случай, если пакеты склеются
  112. o_player:
  113. #Step
  114. image_angle = direction;
  115. if (player_id == myid)
  116. {
  117.     direction = point_direction(x,y,mouse_x,mouse_y);
  118.     if (keyboard_check(ord("W")))
  119.         y-=5;
  120.     if (keyboard_check(ord("A")))
  121.         x-=5;
  122.     if (keyboard_check(ord("S")))
  123.         y+=5;
  124.     if (keyboard_check(ord("D")))
  125.         x+=5;
  126.     if (keyboard_check(ord("W")) || keyboard_check(ord("A")) || keyboard_check(ord("S")) || keyboard_check(ord("D")))
  127.     {
  128.         buffer_seek(buffer,buffer_seek_start,0);
  129.         buffer_write(buffer,buffer_u8,2);
  130.         buffer_write(buffer,buffer_u32,x);
  131.         buffer_write(buffer,buffer_u32,y);
  132.         buffer_write(buffer,buffer_f64,direction);
  133.         network_send_raw(socket,buffer,buffer_tell(buffer)) //Отправляем координаты
  134.     }
  135. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement