Guest User

Untitled

a guest
Jul 16th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.99 KB | None | 0 0
  1. var socket = null; // The socket, globally accessable
  2. var url = 'ws://127.0.0.1:8000/tracker'; // Socket host
  3. var players; // All players
  4.  
  5. function doSetupSocket() {
  6. // Get a WebSocket - browser dependent!
  7. socket = ("MozWebSocket" in window ? new MozWebSocket(url) : new WebSocket(url));
  8. socket.onclose = function(msg) {
  9. alert("Connection closed");
  10. }
  11. socket.onmessage = handleUpdate;
  12. }
  13.  
  14. function login() {
  15. var command = new Object();
  16. command.action = "Login";
  17. nick = document.getElementById('name').value;
  18. command.data = nick;
  19. var stringversion = JSON.stringify(command);
  20. socket.send(stringversion);
  21. }
  22.  
  23. function sendStart() {
  24. var command = new Object();
  25. command.action = "Start";
  26. command.data = "";
  27. var stringversion = JSON.stringify(command);
  28. socket.send(stringversion);
  29. }
  30.  
  31. function updatePosition(x,y) {
  32. var command = new Object();
  33. command.action = "Move";
  34. command.data = new Array(x,y);
  35. var stringversion = JSON.stringify(command);
  36. socket.send(stringversion);
  37. }
  38.  
  39. function fire() {
  40. var command = new Object();
  41. command.action = "Fire";
  42. command.data = new Array(x,y,player_direction);
  43. var stringversion = JSON.stringify(command);
  44. socket.send(stringversion);
  45. }
  46.  
  47. function handleUpdate(msg)
  48. {
  49. var info = JSON.parse(msg.data);
  50.  
  51. var infoaction = info['action'];
  52. var infodata = info['data'];
  53.  
  54. if (infoaction=="Map") {
  55. init(); // Map becomes the confirmation of successful login
  56. mazedata = infodata;
  57. MAZE_WIDTH = infodata[0].length;
  58. MAZE_HEIGHT = infodata.length;
  59. } else if (infoaction=="LoginFail") {
  60. alert('Username already taken, please choose another');
  61. } else if (infoaction=="Position") {
  62. x = infodata['x'];
  63. y = infodata['y'];
  64. player_direction = infodata['direction'];
  65. colour = infodata['colour'];
  66. draw();
  67. }
  68. if (gamestarted==true) {
  69. if (infoaction=="ActivePlayersList") {
  70. players = infodata;
  71. document.getElementById('players').innerHTML = '<font face="verdana" color="#FFFFFF"><b>Players: </b></font>'; // clear players list
  72. for (var i=0; i<players.length; i++) {
  73. if (players[i]['x']!=null)
  74. document.getElementById('players').innerHTML += '<font face="verdana" color="#'+players[i]['colour']+'">'+players[i]['nick']+'</font>, ';
  75. if (players[i]['nick']==nick)
  76. updateHealth(players[i]['health']);
  77. }
  78. document.getElementById('players').innerHTML = document.getElementById('players').innerHTML.slice(0,-2); // slice off last ", "
  79. draw();
  80. } else if (infoaction=="Die") {
  81. if (infodata==null)
  82. alert('You have died due to running into a wall');
  83. else
  84. alert('You have died due to colliding with '+infodata);
  85. gamestarted = false;
  86. drawSplash();
  87. } else if (infoaction=="DieShot") {
  88. alert('You have died due to being shot by '+infodata);
  89. gamestarted = false;
  90. drawSplash();
  91. } else if (infoaction=="Fire") {
  92. draw();
  93. drawfire(infodata[0],infodata[1],infodata[2]);
  94. }
  95. }
  96. }
Add Comment
Please, Sign In to add comment