Ember

SocketStep

Oct 13th, 2013
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //--Parse Incoming Messages--//
  2. while(tcp_receive(Socket, 1))
  3. {
  4.     Timeout = 0;
  5.     switch(read_ubyte(Socket))
  6.     {
  7.         //Player initialization  (logging in and stuff)
  8.         case 0:
  9.         break;
  10.  
  11.         //Name change
  12.         case 1:
  13.           tcp_receive(Socket, 1);
  14.           Length = read_ubyte(Socket);
  15.           tcp_receive(Socket, Length);
  16.           Name = read_string(Socket, Length);
  17.           //Send new name to connected clients
  18.           buffer_clear(Buffer);
  19.           write_ubyte(Buffer, 1);
  20.           write_ubyte(Buffer, ID);
  21.           write_ubyte(Buffer, Length);
  22.           write_string(Buffer, Name);
  23.           socket_send_all(Buffer, Socket);
  24.         break;
  25.  
  26.         //Player input update
  27.         case 2:
  28.             tcp_receive(Socket, 9);
  29.             Input = read_ubyte(Socket);
  30.             x = read_float(Socket);
  31.             y = read_float(Socket);
  32.             //Send new input and position to clients
  33.             buffer_clear(Buffer);
  34.             write_ubyte(Buffer, 2);
  35.             write_ubyte(Buffer, ID);
  36.             write_ubyte(Buffer, Input);
  37.             write_float(Buffer, x);
  38.             write_float(Buffer, y);
  39.             socket_send_all(Buffer, Socket);
  40.         break;
  41.  
  42.         //Player position (Direct)
  43.         case 3:
  44.           tcp_receive(Socket, 8);
  45.           x = read_float(Socket);
  46.           y = read_float(Socket);
  47.           //Send new position to clients
  48.           buffer_clear(Buffer);
  49.           write_ubyte(Buffer, 3);
  50.           write_ubyte(Buffer, ID);
  51.           write_float(Buffer, x);
  52.           write_float(Buffer, y);
  53.           socket_send_all(Buffer, Socket);
  54.         break;
  55.  
  56.         //Exit game (client closed)
  57.         case 4:
  58.           instance_destroy();
  59.         break;
  60.  
  61.         default:
  62.           //Do unknown message stuff here ...like crash
  63.           instance_destroy();
  64.     }
  65. }
  66.  
  67. //--Update connection timeout--//
  68. Timeout += current_time - TimeDelta;
  69. TimeDelta = current_time;
  70. if(Timeout > 8000) {instance_destroy();}
Advertisement
Add Comment
Please, Sign In to add comment