var socket; function init() { var server = "mw.hatthieves.es"; var host = "wss://" + server + "/?channelName=" + channel + "&username=" + userName; try { socket = new WebSocket(host); log('WebSocket - status ' + socket.readyState); socket.onopen = function (msg) { log("Welcome - status " + this.readyState); }; socket.onmessage = function (msg) { data = msg.data; var username = data.split(" ")[0]; var type = data.split(" ")[1]; switch (type) { case "create": map = JSON.parse(data.split(" ")[2]); map.players = {}; run(socket); break; case "left": if (map.players[username]) { map.players[username].deleted = true; $("#chatOutput").html($("#chatOutput").html() + "[" + [username] + "]" + " left the game.
"); $("#chatOutput").scrollTop($("#chatOutput").get(0).scrollHeight); } break; case "chat": $("#chatOutput").html($("#chatOutput").html() + "[" + [username] + "]" + ": " + data.replace(username + " chat ", "") + "
"); $("#chatOutput").scrollTop($("#chatOutput").get(0).scrollHeight); break; default: if (username != userName) { if (!map.players) { map.players = {}; } if (!map.players[username]) { map.players[username] = {}; } let jsonData = JSON.parse(data.replace(username + " ", "")); if (!map.players[username].item) { map.players[username].deleted = false; map.players[username].landscapeTexture = new PIXI.Texture.fromImage(map.player.url); map.players[username].texture = new PIXI.Texture(map.players[username].landscapeTexture); map.players[username].item = new PIXI.Sprite(map.players[username].texture); map.players[username].nameStyle = new PIXI.TextStyle({ fontFamily: 'komtit', fontSize: 24, fill: ['#FFF1E1', '#FFF1E1'], // gradient stroke: '#35130B', strokeThickness: 5, dropShadow: true, dropShadowColor: '#724833', dropShadowBlur: 4, dropShadowAngle: Math.PI / 2, dropShadowDistance: 1, wordWrap: false, wordWrapWidth: 440, padding: 20 }); map.players[username].username = username; map.players[username].name = new PIXI.Text([username], map.players[username].nameStyle); $("#chatOutput").html($("#chatOutput").html() + "[" + [username] + "]" + " join the game.
"); $("#chatOutput").scrollTop($("#chatOutput").get(0).scrollHeight); } map.players[username].position = jsonData.position; map.players[username].direction = jsonData.direction; map.players[username].state = jsonData.state; map.players[username].scale = jsonData.scale; map.players[username].lives = jsonData.lives; map.players[username].score = jsonData.score; } else { let jsonData = JSON.parse(data.replace(username + " ", "")) position = jsonData.position; scale = jsonData.scale; lives = jsonData.lives; score = jsonData.score; } break; } }; socket.onclose = function (msg) { reconnect(); }; } catch (ex) { log(ex); } } function quit() { if (socket != null) { log("Goodbye!"); socket.close(); socket = null; } } function reconnect() { quit(); init(); } function log(msg) { console.log(msg); } init();