Bloble.io NoobScript V4 Parte 4

NoobScript V4, Parte 4

  1. // ==UserScript==
  2. // @name Bloble.io NoobScript V4 Parte 4
  3. // @namespace http://tampermonkey.net/
  4. // @version 4.0.0
  5. // @description NoobScript V4, Parte 4
  6. // @match 54.186.116.49
  7. // @author NoobishHacker/Stamer
  8. // @match http://bloble.io/*
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12. function httpGetAsync(theUrl, callback) {
  13. var xmlHttp = new XMLHttpRequest();
  14. xmlHttp.onreadystatechange = function() {
  15. if (xmlHttp.readyState == 4)
  16. callback(xmlHttp.status == 200 ? xmlHttp.responseText : false);
  17. }
  18. xmlHttp.open("GET", theUrl, true); // true for asynchronous
  19. xmlHttp.send(null);
  20. }
  21. var customSkins = [];
  22. httpGetAsync("https://andrewprivate.github.io/skins/skinlist", (b) => {
  23. if (b) {
  24. b = b.split('\n').filter((l) => {
  25. return l
  26. });
  27. b.forEach((skin, i) => {
  28. customSkins.push(skin);
  29. })
  30. }
  31. })
  32.  
  33. window.renderPlayer = function(a, d, c, b, g) {
  34. b.save();
  35. if (a.skin && 0 < a.skin && a.skin <= playerSkins && !skinSprites[a.skin]) {
  36. var e = new Image;
  37. e.onload = function() {
  38. this.readyToDraw = !0;
  39. this.onload = null;
  40. g == currentSkin && changeSkin(0)
  41. };
  42. e.src = ".././img/skins/skin_" + (a.skin - 1) + ".png";
  43. skinSprites[a.skin] = e
  44. } else if (customSkins.length && a && a.name) {
  45. if (!a.resolvedSkin) {
  46. a.resolvedSkin = true;
  47. if (a.name[0] === ':') {
  48. var match = a.name.match(/(?:\:([0-9]*))(.*)/);
  49. if (match[1]) {
  50. a.name = match[2].length ? match[2] : "unknown";
  51. a.customSkin = parseInt(match[1]);
  52. }
  53. }
  54. }
  55. if (a.customSkin !== undefined && customSkins[a.customSkin]) {
  56.  
  57. var ind = a.customSkin + playerSkins + 1
  58. if (!skinSprites[ind]) {
  59. var e = new Image;
  60. e.onload = function() {
  61. this.readyToDraw = !0;
  62. this.onload = null;
  63. }
  64. e.onerror = function() {
  65. this.onerror = null;
  66. if (skinSprites[ind] !== false) {
  67. setTimeout(function() { // second chance
  68. skinSprites[ind] = false;
  69. }, 1000)
  70. }
  71. }
  72. e.src = "https://andrewprivate.github.io/skins/" + customSkins[a.customSkin] + ".png";
  73.  
  74. skinSprites[ind] = e
  75. }
  76. if (skinSprites[ind].readyToDraw) {
  77. e = a.size - b.lineWidth / 4
  78. b.save()
  79. b.lineWidth /= 2
  80. renderCircle(d, c, a.size, b, !1, !0)
  81. b.clip()
  82. b.drawImage(skinSprites[ind], d - e, c - e, 2 * e, 2 * e)
  83. b.restore();
  84. return;
  85. }
  86. }
  87.  
  88. }
  89. a.skin && skinSprites[a.skin] && skinSprites[a.skin].readyToDraw ? (e = a.size - b.lineWidth / 4, b.drawImage(skinSprites[a.skin], d - e, c - e, 2 * e, 2 * e), b.lineWidth /= 2, renderCircle(d, c, a.size, b, !1, !0)) : g || (b.fillStyle = playerColors[a.color], renderCircle(d,
  90. c, a.size, b));
  91. b.restore()
  92. }
  93.  
  94. var scroll = 0;
  95.  
  96. mainCanvas.addEventListener ? (window.addEventListener("mousewheel", zoom, !1),
  97. mainCanvas.addEventListener("DOMMouseScroll", zoom, !1)) : window.attachEvent("onmousewheel", zoom);
  98.  
  99. function zoom(a) {
  100. a = window.event || a;
  101. a.preventDefault();
  102. a.stopPropagation();
  103. scroll = Math.max(-1, Math.min(1, a.wheelDelta || -a.detail))
  104. if (scroll == -1) { //zoom out
  105. if (maxScreenHeight < 10000) {
  106. (maxScreenHeight += 250, maxScreenWidth += 250, resize());
  107. scroll = 0
  108. }
  109. }
  110.  
  111. if (scroll == 1) { //zoom in
  112. if (maxScreenHeight > 1000) {
  113. (maxScreenHeight -= 250, maxScreenWidth -= 250, resize())
  114. scroll = 0
  115. }
  116. }
  117. }
  118.  
  119. mainCanvas.onkeydown = function(event) {
  120. var k = event.keyCode ? event.keyCode : event.which;
  121. if (k == 70) { // F to zoom out
  122. if (maxScreenHeight < 10000) {
  123. (maxScreenHeight += 250, maxScreenWidth += 250, resize());
  124. }
  125. }
  126. if (k == 67) {// C to zoom in
  127. if (maxScreenHeight > 1000) {
  128. (maxScreenHeight -= 250, maxScreenWidth -= 250, resize())
  129. }
  130.  
  131. }
  132.  
  133. {if(65==a||37==a)cameraKeys.l=0,updateCameraInput();if(68==a||39==a)cameraKeys.r=0,updateCameraInput();if(87==a||38==a)cameraKeys.u=0,updateCameraInput();if(83==a||40==a)cameraKeys.d=0,updateCameraInput();if(32==a){var d=unitList.indexOf(activeUnit);sendUnit(d)}void 0!=upgrInputsToIndex["k"+a]&&toggleActiveUnit(upgrInputsToIndex["k"+a]);46==a&&selUnits.length&&sellSelUnits();84==a&&toggleChat("none"==chatListWrapper.style.display);
  134. 27==a&&(toggleActiveUnit(),disableSelUnit(),showSelector=!1);82==a&&(camY=camX=0)}};mainCanvas.onkeydown=function(a){a=a.keyCode?a.keyCode:a.which;socket&&player&&!player.dead&&(65!=a&&37!=a||cameraKeys.l||(cameraKeys.l=-1,cameraKeys.r=0,updateCameraInput()),68!=a&&39!=a||cameraKeys.r||(cameraKeys.r=1,cameraKeys.l=0,updateCameraInput()),87!=a&&38!=a||cameraKeys.u||(cameraKeys.u=-1,cameraKeys.d=0,updateCameraInput()),83!=a&&40!=a||cameraKeys.d||(cameraKeys.d=1,cameraKeys.u=0,updateCameraInput()))}
  135. var gotoUsers = [];
  136. var gotoIndex = 0;
  137. window.overrideSocketEvents = window.overrideSocketEvents || [];
  138. window.chatCommands = window.chatCommands || {};
  139.  
  140. window.chatCommands.find = function(split) {
  141. var name = split.slice(1).join(' ');
  142. if (name == '') {
  143. addChat('Please specify a username', 'Client')
  144. return;
  145. }
  146. window.goto(name)
  147. }
  148. window.overrideSocketEvents.push({
  149. name: "l",
  150. description: "Leaderboard Insta Find override",
  151. func: function(a) {
  152. var d = "",
  153. c = 1,
  154. b = 0;
  155. for (; b < a.length;) {
  156. d += "<div class='leaderboardItem' onclick=goto2(" + a[b] + ");><div style='display:inline-block;float:left;' class='whiteText'>" + c + ".</div> <div class='" + (player && a[b] == player.sid ? "leaderYou" : "leader") + "'>" + a[b + 1] + "</div><div class='scoreText'>" + a[b + 2] + "</div></div>", c++, b += 3;
  157. }
  158. leaderboardList.innerHTML = d;
  159. }
  160. })
  161. leaderboardList.style.pointerEvents = 'auto';
  162. chatListWrapper.style.pointerEvents = 'auto';
  163.  
  164. window.goto = function(username) {
  165. gotoUsers = users.filter((user) => {
  166. return user.name === username
  167. });
  168. gotoIndex = 0;
  169. if (gotoUsers[0]) {
  170. camX = gotoUsers[0].x - player.x;
  171. camY = gotoUsers[0].y - player.y;
  172. }
  173. addChat(gotoUsers.length + ' users found with the name ' + username, 'Client');
  174. return gotoUsers.length;
  175. }
  176. window.goto2 = function(id, go) {
  177. gotoUsers = users.filter((user) => {
  178. return user.sid === id;
  179. });
  180. gotoIndex = 0;
  181. if (!go && gotoUsers[0]) {
  182. camX = gotoUsers[0].x - player.x;
  183. camY = gotoUsers[0].y - player.y;
  184. }
  185. return gotoUsers.length;
  186. }
  187.  
  188. window.gotoLeft = function() {
  189. if (!gotoUsers.length) return;
  190.  
  191. if (camX == gotoUsers[gotoIndex].x - player.x && camY == gotoUsers[gotoIndex].y - player.y) {
  192. if (gotoIndex <= 0) gotoIndex = gotoUsers.length;
  193. gotoIndex--;
  194. }
  195. camX = gotoUsers[gotoIndex].x - player.x;
  196. camY = gotoUsers[gotoIndex].y - player.y;
  197. }
  198.  
  199. window.gotoRight = function() {
  200. if (!gotoUsers.length) return;
  201.  
  202. if (camX == gotoUsers[gotoIndex].x - player.x && camY == gotoUsers[gotoIndex].y - player.y) {
  203. if (gotoIndex >= gotoUsers.length - 1) gotoIndex = -1;
  204. gotoIndex++;
  205. }
  206. camX = gotoUsers[gotoIndex].x - player.x;
  207. camY = gotoUsers[gotoIndex].y - player.y;
  208. }
  209.  
  210. window.addChat = function(msg, from, color) {
  211. color = color || "#fff";
  212. var b = document.createElement("li");
  213. b.className = "chatother";
  214. b.innerHTML = '<span style="color:' + color + '">[' + from + ']</span> <span class="chatText">' + msg + "</span>";
  215. 10 < chatList.childNodes.length && chatList.removeChild(chatList.childNodes[0]);
  216. chatList.appendChild(b)
  217. }
  218.  
  219. window.resetCamera = function() { // Override
  220. camX = camXS = camY = camYS = 0;
  221. cameraKeys = {
  222. l: 0,
  223. r: 0,
  224. u: 0,
  225. d: 0
  226. }
  227.  
  228. if (socket && window.overrideSocketEvents && window.overrideSocketEvents.length) {
  229. window.overrideSocketEvents.forEach((item) => {
  230. socket.removeAllListeners(item.name)
  231. socket.on(item.name, item.func);
  232.  
  233. });
  234.  
  235. }
  236. }
  237.  
  238.  
  239.  
  240. window.addChatLine = function(a, d, c) {
  241. if (player) {
  242. var b = getUserBySID(a);
  243. if (c || 0 <= b) {
  244. var g = c ? "SERVER" : users[b].name;
  245. c = c ? "#fff" : playerColors[users[b].color] ? playerColors[users[b].color] : playerColors[0];
  246. player.sid == a && (c = "#fff");
  247. b = document.createElement("li");
  248. b.className = player.sid == a ? "chatme" : "chatother";
  249.  
  250. b.innerHTML = '<span style="color:' + c + '" onclick=goto2(' + a + ');>[' + g + ']</span> <span class="chatText">' + d + "</span>";
  251. 10 < chatList.childNodes.length && chatList.removeChild(chatList.childNodes[0]);
  252. chatList.appendChild(b)
  253. }
  254. }
  255. }
  256.  
  257. window.addEventListener("keyup", function(a) {
  258. a = a.keyCode ? a.keyCode : a.which;
  259. if (a === 190) {
  260. window.gotoRight()
  261. } else if (a === 188) {
  262. window.gotoLeft();
  263. }
  264.  
  265. });
  266. window.UIList = window.UIList || [];
  267. window.initFuncs = window.initFuncs || [];
  268. window.statusItems = window.statusItems || [];
  269. // Resolution and FPS chooser.
  270. var resolution = 1;
  271. var rate = 0;
  272.  
  273. window.removeEventListener("mousemove", gameInput);
  274.  
  275. window.gameInput = function (a) {
  276. a.preventDefault();
  277. a.stopPropagation();
  278. mouseX = a.clientX * resolution;
  279. mouseY = a.clientY * resolution;
  280. }
  281. window.addEventListener("mousemove", gameInput, false);
  282. window.removeEventListener("resize", resize);
  283. window.resize = function (n) {
  284. screenWidth = window.innerWidth * resolution;
  285. screenHeight = window.innerHeight * resolution;
  286. scaleFillNative = MathMAX(screenWidth / maxScreenWidth, screenHeight / maxScreenHeight);
  287. if (n !== true) {
  288. mainCanvas.width = screenWidth;
  289. mainCanvas.height = screenHeight;
  290. mainCanvas.style.width = (screenWidth / resolution) + "px";
  291. mainCanvas.style.height = (screenHeight / resolution) + "px";
  292. }
  293.  
  294. mainContext.setTransform(scaleFillNative, 0, 0, scaleFillNative, Math.floor((screenWidth - maxScreenWidth * scaleFillNative) / 2), Math.floor((screenHeight - maxScreenHeight * scaleFillNative) / 2));
  295. player || renderBackground()
  296. }
  297. window.addEventListener("resize", resize);
  298. window.statusItems.push({
  299. order: 3,
  300. value: function () {
  301. return document.getElementById('fps').textContent;
  302. }
  303. }, {
  304. order: 4,
  305. name: 'Resolution',
  306. value: function () {
  307. return document.getElementById('res').textContent;
  308. }
  309. });
  310. window.UIList.push({
  311. level: 3,
  312. x: 4,
  313. html: '<div id="res" onclick=setRes()>Normal Res</div>'
  314. }, {
  315. level: 3,
  316. x: 5,
  317. html: '<div id="fps" onclick=setFPS()>Unlim FPS</div>'
  318. }, {
  319. level: 3,
  320. x: 1,
  321. html: '<div id="afk" onclick=afk()>AFK off</div>'
  322. });
  323. var afkinterval = false;
  324. window.afk = function () {
  325. var element = document.getElementById('afk');
  326. if (afkinterval) {
  327. clearInterval(afkinterval)
  328. afkinterval = false;
  329. element.textContent = 'AFK off';
  330. } else {
  331. afkinterval = setInterval(function () {
  332. socket.emit("2", Math.round(camX), Math.round(camY));
  333. }, 1000)
  334. element.textContent = 'AFK on';
  335. }
  336. }
  337. window.setRes = function () {
  338. var el = document.getElementById('res');
  339. if (resolution === 2) {
  340. resolution = .4;
  341. el.textContent = 'Min Res';
  342. } else if (resolution === .4) {
  343. resolution = .8;
  344. el.textContent = 'Med Res';
  345. } else if (resolution === .8) {
  346. resolution = 1;
  347. el.textContent = 'Normal Res';
  348. } else if (resolution === 1) {
  349. resolution = 1.5;
  350. el.textContent = 'High Res';
  351. } else {
  352. resolution = 2;
  353. el.textContent = 'Max Res';
  354. }
  355. unitSprites = {};
  356. resize();
  357. window.statusBar();
  358. }
  359. window.setFPS = function () {
  360. var el = document.getElementById('fps');
  361. if (rate === 0) {
  362. el.textContent = 'Ant Lag: On'
  363. rate = 1;
  364. } else if (rate === 1) {
  365. el.textContent = '40 FPS'
  366. rate = 25;
  367. } else if (rate === 25) {
  368. el.textContent = '35 FPS'
  369. rate = 28;
  370. } else if (rate === 28) {
  371. el.textContent = '30 FPS';
  372. rate = 33;
  373. } else if (rate === 33) {
  374. el.textContent = '25 FPS';
  375. rate = 40;
  376. } else if (rate === 40) {
  377. el.textContent = '1 FPS';
  378. rate = 820;
  379. } else {
  380. el.textContent = 'Ant Lag: Off';
  381. rate = 0;
  382. }
  383. window.statusBar();
  384. }
  385.  
  386. window.callUpdate = function () {
  387. requestAnimFrame(callUpdate);
  388. currentTime = window.performance.now();
  389. var a = currentTime - then;
  390. if (a >= rate) {
  391. then = currentTime;
  392. updateGameLoop(a);
  393. }
  394. updateMenuLoop(a)
  395. }
  396.  
  397. window.makeUI = function () {
  398. if (window.hasMadeUI) return;
  399. window.hasMadeUI = true;
  400. window.statusItems.sort(function (a, b) {
  401. return a.order - b.order;
  402. })
  403. var levels = [];
  404. window.UIList.forEach((item) => {
  405. if (!levels[item.level]) levels[item.level] = [];
  406. levels[item.level].push(item)
  407. })
  408.  
  409. levels = levels.filter((a) => {
  410. if (a) {
  411. a.sort(function (a, b) {
  412. return a.x - b.x;
  413. })
  414. return true;
  415. } else {
  416. return false;
  417. }
  418. })
  419.  
  420. var headAppend = document.getElementsByTagName("head")[0],
  421. style = document.createElement("div");
  422.  
  423. var toast = document.createElement('div');
  424. toast.id = "snackbar";
  425. var css = document.createElement('div');
  426.  
  427. css.innerHTML = '<style>\n\
  428. #snackbar {\n\
  429. visibility: hidden;\n\
  430. min-width: 250px;\n\
  431. margin-left: -125px;\n\
  432. background-color: #ffffff;\n\
  433. color: #303f9f;\n\
  434. text-align: center;\n\
  435. border-radius: 4px;\n\
  436. padding: 10px;\n\
  437. font-family: "regularF";\n\
  438. font-size: 20px;\n\
  439. position: fixed;\n\
  440. z-index: 100;\n\
  441. left: 50%;\n\
  442. top: 30px;\n\
  443. }\n\
  444. #snackbar.show {\n\
  445. visibility: visible;\n\
  446. -webkit-animation: fadein 0.5s;\n\
  447. animation: fadein 0.5s;\n\
  448. }\n\
  449. #snackbar.hide {\n\
  450. visibility: visible;\n\
  451. -webkit-animation: fadeout 0.5s;\n\
  452. animation: fadeout 0.5s;\n\
  453. }\n\
  454. @-webkit-keyframes fadein {\n\
  455. from {top: 0; opacity: 0;}\n\
  456. to {top: 30px; opacity: 1;}\n\
  457. }\n\
  458. @keyframes fadein {\n\
  459. from {top: 0; opacity: 0;}\n\
  460. to {top: 30px; opacity: 1;}\n\
  461. }\n\
  462. @-webkit-keyframes fadeout {\n\
  463. from {top: 30px; opacity: 1;}\n\
  464. to {top: 0; opacity: 0;}\n\
  465. }\n\
  466. @keyframes fadeout {\n\
  467. from {top: 30px; opacity: 1;}\n\
  468. to {top: 0; opacity: 0;}\n\
  469. }\n\
  470. </style>'
  471. var height = levels.length * (14 + 19) + (levels.length - 1) * 7 + 15;
  472. style.innerHTML = "<style>\n\
  473. #noobscriptUI, #noobscriptUI > div > div {\n\
  474. background-color:#ffffff;\n\
  475. margin-left: 3px;\n\
  476. border-radius:4px;\n\
  477. pointer-events:all\n\
  478. }\n\
  479. #noobscriptUI {\n\
  480. top: -" + (height + 12) + "px;\n\
  481. transition: 1s;\n\
  482. margin-left:10px;\n\
  483. position:absolute;\n\
  484. padding-left:24px;\n\
  485. margin-top:9px;\n\
  486. padding-top:15px;\n\
  487. width:580px;\n\
  488. height: " + height + "px;\n\
  489. font-family:arial;\n\
  490. left:25%\n\
  491. }\n\
  492. #noobscriptUI:hover{\n\
  493. top:0px\n\
  494. }\n\
  495. #noobscriptUI > div > div {\n\
  496. color:#303f9f;\n\
  497. padding:7px;\n\
  498. height:19px;\n\
  499. display:inline-block;\n\
  500. cursor:pointer;\n\
  501. font-size:15px\n\
  502. }\n\
  503. </style>"
  504.  
  505. headAppend.appendChild(style);
  506. headAppend.appendChild(css);
  507.  
  508.  
  509. var contAppend = document.getElementById("gameUiContainer"),
  510. menuA = document.createElement("div");
  511.  
  512. var code = ['<div id="noobscriptUI">\n'];
  513.  
  514. levels.forEach((items, i) => {
  515. code.push(i === 0 ? ' <div>\n' : ' <div style="margin-top:7px;">\n');
  516. items.forEach((el) => {
  517. code.push(' ' + el.html + '\n');
  518. })
  519. code.push(' </div>\n');
  520. })
  521. code.push(' <div id="confinfo" style="margin-top:4px; color: white; text-align: center; font-size: 10px; white-space:pre"></div>')
  522. code.push('</div>');
  523.  
  524. menuA.innerHTML = code.join("");
  525. contAppend.insertBefore(menuA, contAppend.firstChild)
  526. contAppend.appendChild(toast)
  527. var toastTimeout = false;
  528. window.showToast = function (msg) {
  529. toast.textContent = msg;
  530.  
  531. if (toastTimeout) clearTimeout(toastTimeout);
  532. else toast.className = "show";
  533. toastTimeout = setTimeout(function () {
  534. toast.className = 'hide'
  535. setTimeout(function () {
  536. toast.className = '';
  537. }, 400);
  538. toastTimeout = false;
  539. }, 3000);
  540. }
  541. window.statusBar = function () {
  542. var el = document.getElementById('confinfo');
  543. var text = [];
  544.  
  545. window.statusItems.forEach((item, i) => {
  546. if (i !== 0) text.push(' ');
  547. if (item.name) text.push(item.name + ': ');
  548. text.push(item.value());
  549. })
  550.  
  551. el.textContent = text.join('');
  552. }
  553. window.statusBar();
  554.  
  555. window.initFuncs.forEach((func) => {
  556. func();
  557. })
  558. }
  559. setTimeout(() => {
  560. window.makeUI();
  561. }, 1000)
  562.  
  563.  
  564. window.addEventListener("keyup", function(a) {
  565. a = a.keyCode ? a.keyCode : a.which;
  566.  
  567. if (a === 81) { // All troops except commander
  568. selUnits = [];
  569. units.forEach((unit) => {
  570. if (unit.owner === player.sid && unit.type === 1) {
  571. if (!unit.info) unit.info = getUnitFromPath(unit.uPath);
  572. unit.info.name !== 'Commander' && selUnits.push(unit)
  573.  
  574. }
  575. });
  576. selUnitType = "Unit";
  577. } else if (a === 69) { // Everything
  578. selUnits = [];
  579. units.forEach((unit) => {
  580. if (unit.owner === player.sid && unit.type === 1) {
  581. if (!unit.info) unit.info = getUnitFromPath(unit.uPath);
  582. selUnits.push(unit)
  583. }
  584. });
  585. selUnitType = "Unit";
  586. } else if (a === 67) { // Commander
  587. selUnits = [];
  588. units.every((unit) => {
  589. if (unit.owner === player.sid && unit.type === 1) {
  590. if (!unit.info) unit.info = getUnitFromPath(unit.uPath);
  591. if (unit.info.name === 'Commander') {
  592. selUnits.push(unit)
  593. return false;
  594. }
  595. }
  596. return true;
  597. });
  598. selUnitType = "Unit";
  599. }
  600. });
  601. addEventListener("keydown", function(a) {
  602. if (a.keyCode == 117) {//Hybrid Base
  603. socket.emit("1",2.205,189.5,4);
  604. socket.emit("1",2.88,245,4);
  605. socket.emit("1",6.486,185,3);
  606. socket.emit("1",2.5425,184,5);
  607. socket.emit("1",5.725,130,3);
  608. socket.emit("1",9.975,130,3);
  609. socket.emit("1",6.875,184,5);
  610. socket.emit("1",4.375,186,3);
  611. socket.emit("1",5.065,187,3);
  612. socket.emit("1",6,245,3);
  613. socket.emit("1",6.295,245,3);
  614. socket.emit("1",7.07,245,3);
  615. socket.emit("1",7.358,245,3);
  616. socket.emit("1",2.05,245,3);
  617. socket.emit("1",2.375,245,3);
  618. socket.emit("1",3.1375,245,3);
  619. socket.emit("1",3.445,245,3);
  620. socket.emit("1",4.725,130,7);
  621. socket.emit("1",6.205,130,4);
  622. socket.emit("1",6.675,130,4);
  623. socket.emit("1",7.145,130,4);
  624. socket.emit("1",7.615,130,4);
  625. socket.emit("1",8.085,130,4);
  626. socket.emit("1",8.555,130,4);
  627. socket.emit("1",9.025,130,4);
  628. socket.emit("1",9.495,130,4);
  629. socket.emit("1",10.475,130,4);
  630. socket.emit("1",5.245,130,4);
  631. socket.emit("1",4.72,210,1);
  632. socket.emit("1",5.475,183,5);
  633. socket.emit("1",5.825,193,4);
  634. socket.emit("1",6.15,190,4);
  635. socket.emit("1",7.215,190,4);
  636. socket.emit("1",7.535,190,4);
  637. socket.emit("1",1.565,200,4);
  638. socket.emit("1",1.88,189,4);
  639. socket.emit("1",2.95,184,3);
  640. socket.emit("1",3.283,190,4);
  641. socket.emit("1",3.61,193,4);
  642. socket.emit("1",3.95,183,5);
  643. socket.emit("1",5.687,245,1);
  644. socket.emit("1",6.56,245,4);
  645. socket.emit("1",3.75,245,1);
  646. socket.emit("1",4.94,245,4);
  647. socket.emit("1",5.1875,245,4);
  648. socket.emit("1",5.435,245,4);
  649. socket.emit("1",6.81,245,1);
  650. socket.emit("1",7.65,245,4);
  651. socket.emit("1",1.75,245,4);
  652. socket.emit("1",2.6325,245,1);
  653. socket.emit("1",4,245,4);
  654. socket.emit("1",4.25,245,4);
  655. socket.emit("1",4.5,245,4);
  656. socket.emit("1",4.72,311,1);
  657. socket.emit("1",4.92,311,1);
  658. socket.emit("1",5.12,311,1);
  659. socket.emit("1",5.32,311,1);
  660. socket.emit("1",5.52,311,1);
  661. socket.emit("1",5.94,311,1);
  662. socket.emit("1",6.14,311,1);
  663. socket.emit("1",6.34,311,1);
  664. socket.emit("1",6.54,311,1);
  665. socket.emit("1",6.96,311,1);
  666. socket.emit("1",7.16,311,1);
  667. socket.emit("1",7.36,311,1);
  668. socket.emit("1",7.56,311,1);
  669. socket.emit("1",7.76,311,1);
  670. socket.emit("1",7.96,311,1);
  671. socket.emit("1",8.16,311,1);
  672. socket.emit("1",8.36,311,1);
  673. socket.emit("1",8.56,311,1);
  674. socket.emit("1",8.76,311,1);
  675. socket.emit("1",9.18,311,1);
  676. socket.emit("1",9.38,311,1);
  677. socket.emit("1",9.58,311,1);
  678. socket.emit("1",9.78,311,1);
  679. socket.emit("1",10.2,311,1);
  680. socket.emit("1",10.4,311,1);
  681. socket.emit("1",10.6,311,1);
  682. socket.emit("1",10.8,311,1);
  683. socket.emit("1",5.73,311,8);
  684. socket.emit("1",6.75,311,8);
  685. socket.emit("1",8.97,311,8);
  686. socket.emit("1",9.99,311,8);
  687. }
  688. if (a.keyCode == 120) {//Full Generators Base
  689. socket.emit("1",4.73,245,3);
  690. socket.emit("1",5.0025,245,3);
  691. socket.emit("1",5.275,245,3);
  692. socket.emit("1",5.5475,245,3);
  693. socket.emit("1",5.82,245,3);
  694. socket.emit("1",6.0925,245,3);
  695. socket.emit("1",6.365,245,3);
  696. socket.emit("1",6.6375,245,3);
  697. socket.emit("1",6.91,245,3);
  698. socket.emit("1",7.1825,245,3);
  699. socket.emit("1",7.455,245,3);
  700. socket.emit("1",7.7275,245,3);
  701. socket.emit("1",8.0025,245,3);
  702. socket.emit("1",8.275,245,3);
  703. socket.emit("1",8.5475,245,3);
  704. socket.emit("1",8.82,245,3);
  705. socket.emit("1",9.0925,245,3);
  706. socket.emit("1",9.3675,245,3);
  707. socket.emit("1",9.64,245,3);
  708. socket.emit("1",9.9125,245,3);
  709. socket.emit("1",10.1875,245,3);
  710. socket.emit("1",10.4625,245,3);
  711. socket.emit("1",10.7375,245,3);
  712. socket.emit("1",4.5889,186.5,3);
  713. socket.emit("1",5.085,180.5,3);
  714. socket.emit("1",5.64,180,3);
  715. socket.emit("1",5.999,180,3);
  716. socket.emit("1",6.51,185,3);
  717. socket.emit("1",7.05,185,3);
  718. socket.emit("1",7.6,185,3);
  719. socket.emit("1",8.15,185,3);
  720. socket.emit("1",8.675,185,3);
  721. socket.emit("1",9.225,185,3);
  722. socket.emit("1",9.78,185,3);
  723. socket.emit("1",10.325,185,3);
  724. socket.emit("1",4.81,130,3);
  725. socket.emit("1",5.36,130,3);
  726. socket.emit("1",6.275,130,3);
  727. socket.emit("1",6.775,130,3);
  728. socket.emit("1",7.3,130,3);
  729. socket.emit("1",7.85,130,3);
  730. socket.emit("1",8.4,130,3);
  731. socket.emit("1",8.925,130,3);
  732. socket.emit("1",9.5,130,3);
  733. socket.emit("1",10.05,130,3);
  734. socket.emit("1",10.6,130,3);
  735. }
  736.  
  737. if (a.keyCode == 115) {//Full Defense
  738. socket.emit("1",4.73,245,3);
  739. socket.emit("1",5.0025,245,3);
  740. socket.emit("1",5.5475,245,3);
  741. socket.emit("1",5.82,245,3);
  742. socket.emit("1",6.0925,245,3);
  743. socket.emit("1",6.6375,245,3);
  744. socket.emit("1",6.91,245,3);
  745. socket.emit("1",7.1825,245,3);
  746. socket.emit("1",7.7275,245,3);
  747. socket.emit("1",8.0025,245,3);
  748. socket.emit("1",8.5475,245,3);
  749. socket.emit("1",8.82,245,3);
  750. socket.emit("1",9.0925,245,3);
  751. socket.emit("1",9.64,245,3);
  752. socket.emit("1",9.9125,245,3);
  753. socket.emit("1",10.1875,245,3);
  754. socket.emit("1",10.7375,245,3);
  755. socket.emit("1",10.53,130,1);
  756. socket.emit("1",10.05,130,1);
  757. socket.emit("1",9.57,130,1);
  758. socket.emit("1",9.09,130,1);
  759. socket.emit("1",8.61,130,1);
  760. socket.emit("1",8.13,130,1);
  761. socket.emit("1",7.65,130,1);
  762. socket.emit("1",7.17,130,1);
  763. socket.emit("1",6.68,130,1);
  764. socket.emit("1",6.19,130,1);
  765. socket.emit("1",5.70,130,1);
  766. socket.emit("1",5.21,130,1);
  767. socket.emit("1",4.72,130,1);
  768. socket.emit("1",10.78,180,1);
  769. socket.emit("1",10.3,180,1);
  770. socket.emit("1",9.8,180,1);
  771. socket.emit("1",9.32,180,1);
  772. socket.emit("1",8.85,180,1);
  773. socket.emit("1",8.38,180,1);
  774. socket.emit("1",7.88,180,1);
  775. socket.emit("1",7.4,180,1);
  776. socket.emit("1",6.95,180,1);
  777. socket.emit("1",6.45,180,1);
  778. socket.emit("1",5.95,180,1);
  779. socket.emit("1",5.47,180,1);
  780. socket.emit("1",4.95,180,1);
  781. socket.emit("1",5.275,245,5);
  782. socket.emit("1",6.365,245,5);
  783. socket.emit("1",7.455,245,5);
  784. socket.emit("1",8.275,245,5);
  785. socket.emit("1",9.3675,245,5);
  786. socket.emit("1",10.4625,245,5);
  787. socket.emit("1",1.72,311,1);
  788. socket.emit("1",1.97,311,1);
  789. socket.emit("1",2.22,311,1);
  790. socket.emit("1",2.47,311,1);
  791. socket.emit("1",2.72,311,1);
  792. socket.emit("1",2.97,311,1);
  793. socket.emit("1",3.22,311,1);
  794. socket.emit("1",3.47,311,1);
  795. socket.emit("1",3.72,311,1);
  796. socket.emit("1",3.97,311,1);
  797. socket.emit("1",4.22,311,1);
  798. socket.emit("1",4.47,311,1);
  799. socket.emit("1",4.72,311,1);
  800. socket.emit("1",4.97,311,1);
  801. socket.emit("1",5.22,311,1);
  802. socket.emit("1",5.47,311,1);
  803. socket.emit("1",5.72,311,1);
  804. socket.emit("1",5.97,311,1);
  805. socket.emit("1",6.22,311,1);
  806. socket.emit("1",6.47,311,1);
  807. socket.emit("1",6.72,311,1);
  808. socket.emit("1",6.97,311,1);
  809. socket.emit("1",7.22,311,1);
  810. socket.emit("1",7.47,311,1);
  811. socket.emit("1",7.72,311,1);
  812. }
  813. if (a.keyCode == 57) {//Another hybrid base
  814. socket.emit("1",5.725,130,3);
  815. socket.emit("1",6.225,130,3);
  816. socket.emit("1",6.725,130,3);
  817. socket.emit("1",2.71,130,3);
  818. socket.emit("1",3.21,130,3);
  819. socket.emit("1",3.71,130,3);
  820. socket.emit("1",5.065,186,3);
  821. socket.emit("1",5.87,192.75,3);
  822. socket.emit("1",6.25,196,3);
  823. socket.emit("1",1.35,183,3);
  824. socket.emit("1",1.825,183,3);
  825. socket.emit("1",3.19,196,3);
  826. socket.emit("1",3.565,192.75,3);
  827. socket.emit("1",4.375,186,3);
  828. socket.emit("1",6.45,245,3);
  829. socket.emit("1",6.8,245,3);
  830. socket.emit("1",2.645,245,3);
  831. socket.emit("1",2.99,245,3);
  832. socket.emit("1",4.72,130,7);
  833. socket.emit("1",5.24,130,4);
  834. socket.emit("1",1.1,130,4);
  835. socket.emit("1",1.575,130,4);
  836. socket.emit("1",2.045,130,4);
  837. socket.emit("1",4.2,130,4);
  838. socket.emit("1",5.45,185,4);
  839. socket.emit("1",6.625,193,4);
  840. socket.emit("1",6.95,187,4);
  841. socket.emit("1",7.275,189,4);
  842. socket.emit("1",2.17,187,4);
  843. socket.emit("1",2.4925,187,4);
  844. socket.emit("1",2.81,193,4);
  845. socket.emit("1",4,185,4);
  846. socket.emit("1",4.72,212.5,5);
  847. socket.emit("1",4.96,245,4);
  848. socket.emit("1",5.46,245,4);
  849. socket.emit("1",7.378,245,4);
  850. socket.emit("1",7.628,245,4);
  851. socket.emit("1",7.878,245,4);
  852. socket.emit("1",8.128,245,4);
  853. socket.emit("1",2.0975,245,4);
  854. socket.emit("1",3.975,245,4);
  855. socket.emit("1",4.475,245,4);
  856. socket.emit("1",2.375,245,5);
  857. socket.emit("1",6.05,245,5);
  858. socket.emit("1",7.1,245,5);
  859. socket.emit("1",3.385,245,5);
  860. socket.emit("1",5.21,245,1);
  861. socket.emit("1",5.71,245,1);
  862. socket.emit("1",3.725,245,1);
  863. socket.emit("1",4.225,245,1);
  864. socket.emit("1",7.86,311,1);
  865. socket.emit("1",8.06,311,1);
  866. socket.emit("1",8.26,311,1);
  867. socket.emit("1",8.46,311,1);
  868. socket.emit("1",8.66,311,1);
  869. socket.emit("1",8.86,311,1);
  870. socket.emit("1",9.06,311,1);
  871. socket.emit("1",9.26,311,1);
  872. socket.emit("1",9.46,311,1);
  873. socket.emit("1",9.66,311,1);
  874. socket.emit("1",9.86,311,1);
  875. socket.emit("1",10.28,311,1);
  876. socket.emit("1",10.70,311,1);
  877. socket.emit("1",10.90,311,1);
  878. socket.emit("1",11.10,311,1);
  879. socket.emit("1",11.30,311,1);
  880. socket.emit("1",11.72,311,1);
  881. socket.emit("1",12.14,311,1);
  882. socket.emit("1",12.34,311,1);
  883. socket.emit("1",12.54,311,1);
  884. socket.emit("1",12.74,311,1);
  885. socket.emit("1",12.94,311,1);
  886. socket.emit("1",13.14,311,1);
  887. socket.emit("1",13.34,311,1);
  888. socket.emit("1",13.54,311,1);
  889. socket.emit("1",13.74,311,1);
  890. socket.emit("1",13.94,311,1);
  891. socket.emit("1",10.07,311,8);
  892. socket.emit("1",10.49,311,8);
  893. socket.emit("1",11.51,311,8);
  894. socket.emit("1",11.93,311,8);
  895. }
  896. if (a.keyCode == 45) {//Full Houses And Tanks
  897. socket.emit("1",4.725,130,7);
  898. socket.emit("1",3.985,183,5);
  899. socket.emit("1",5.475,183,5);
  900. socket.emit("1",6.47,184,5);
  901. socket.emit("1",7.85,186,5);
  902. socket.emit("1",9.26,183,5);
  903. socket.emit("1",5.245,130,4);
  904. socket.emit("1",5.725,130,4);
  905. socket.emit("1",6.205,130,4);
  906. socket.emit("1",6.675,130,4);
  907. socket.emit("1",7.145,130,4);
  908. socket.emit("1",7.615,130,4);
  909. socket.emit("1",8.085,130,4);
  910. socket.emit("1",8.555,130,4);
  911. socket.emit("1",9.025,130,4);
  912. socket.emit("1",3.225,130,4);
  913. socket.emit("1",9.975,130,4);
  914. socket.emit("1",10.485,130,4)
  915. socket.emit("1",4.72,210,4);
  916. socket.emit("1",5.06,185,4);
  917. socket.emit("1",5.81,189,4);
  918. socket.emit("1",6.13,190,4);
  919. socket.emit("1",6.81,187,4);
  920. socket.emit("1",7.13,191,4);
  921. socket.emit("1",7.45,185,4);
  922. socket.emit("1",8.25,185,4);
  923. socket.emit("1",8.6,190,4);
  924. socket.emit("1",8.92,189,4);
  925. socket.emit("1",9.6,189,4);
  926. socket.emit("1",9.925,190,4);
  927. socket.emit("1",4.39,185,4);
  928. socket.emit("1",4.94,246,4);
  929. socket.emit("1",5.1875,246,4);
  930. socket.emit("1",5.435,246,4);
  931. socket.emit("1",5.685,246,4);
  932. socket.emit("1",5.935,246,4);
  933. socket.emit("1",6.24,246,4);
  934. socket.emit("1",6.49,246,4);
  935. socket.emit("1",6.74,246,4);
  936. socket.emit("1",6.99,246,4);
  937. socket.emit("1",7.25,246,4);
  938. socket.emit("1",7.5,246,4);
  939. socket.emit("1",7.75,246,4);
  940. socket.emit("1",8,246,4);
  941. socket.emit("1",8.25,246,4);
  942. socket.emit("1",8.5,246,4);
  943. socket.emit("1",8.75,246,4);
  944. socket.emit("1",9.01,246,4);
  945. socket.emit("1",9.26,246,4);
  946. socket.emit("1",9.51,246,4);
  947. socket.emit("1",9.76,246,4);
  948. socket.emit("1",10.03,246,4);
  949. socket.emit("1",4,246,4);
  950. socket.emit("1",4.25,246,4);
  951. socket.emit("1",4.5,246,4);
  952. socket.emit("1",7.86,311,1);
  953. socket.emit("1",8.06,311,1);
  954. socket.emit("1",8.26,311,1);
  955. socket.emit("1",8.46,311,1);
  956. socket.emit("1",8.66,311,1);
  957. socket.emit("1",8.86,311,1);
  958. socket.emit("1",9.06,311,1);
  959. socket.emit("1",9.26,311,1);
  960. socket.emit("1",9.46,311,1);
  961. socket.emit("1",9.66,311,1);
  962. socket.emit("1",9.86,311,1);
  963. socket.emit("1",10.28,311,1);
  964. socket.emit("1",10.70,311,1);
  965. socket.emit("1",10.90,311,1);
  966. socket.emit("1",11.10,311,1);
  967. socket.emit("1",11.30,311,1);
  968. socket.emit("1",11.72,311,1);
  969. socket.emit("1",12.14,311,1);
  970. socket.emit("1",12.34,311,1);
  971. socket.emit("1",12.54,311,1);
  972. socket.emit("1",12.74,311,1);
  973. socket.emit("1",12.94,311,1);
  974. socket.emit("1",13.14,311,1);
  975. socket.emit("1",13.34,311,1);
  976. socket.emit("1",13.54,311,1);
  977. socket.emit("1",13.74,311,1);
  978. socket.emit("1",13.94,311,1);
  979. socket.emit("1",10.07,311,8);
  980. socket.emit("1",10.49,311,8);
  981. socket.emit("1",11.51,311,8);
  982. socket.emit("1",11.93,311,8);
  983. }
  984. if (a.keyCode == 36) {//Defend Full Houses and Tanks
  985. socket.emit("1",4.725,130,1);
  986. socket.emit("1",3.985,183,1);
  987. socket.emit("1",5.475,183,1);
  988. socket.emit("1",6.47,184,1);
  989. socket.emit("1",7.85,186,1);
  990. socket.emit("1",9.26,183,1);
  991. socket.emit("1",5.245,130,1);
  992. socket.emit("1",5.725,130,1);
  993. socket.emit("1",6.205,130,1);
  994. socket.emit("1",6.675,130,1);
  995. socket.emit("1",7.145,130,1);
  996. socket.emit("1",7.615,130,1);
  997. socket.emit("1",8.085,130,1);
  998. socket.emit("1",8.555,130,1);
  999. socket.emit("1",9.025,130,1);
  1000. socket.emit("1",3.225,130,1);
  1001. socket.emit("1",9.975,130,1);
  1002. socket.emit("1",10.485,130,1)
  1003. socket.emit("1",4.72,210,1);
  1004. socket.emit("1",5.06,185,1);
  1005. socket.emit("1",5.81,189,1);
  1006. socket.emit("1",6.13,190,1);
  1007. socket.emit("1",6.81,187,1);
  1008. socket.emit("1",7.13,191,1);
  1009. socket.emit("1",7.45,185,1);
  1010. socket.emit("1",8.25,185,1);
  1011. socket.emit("1",8.6,190,1);
  1012. socket.emit("1",8.92,189,1);
  1013. socket.emit("1",9.6,189,1);
  1014. socket.emit("1",9.925,190,1);
  1015. socket.emit("1",4.39,185,1);
  1016. socket.emit("1",4.94,246,1);
  1017. socket.emit("1",5.1875,246,1);
  1018. socket.emit("1",5.435,246,1);
  1019. socket.emit("1",5.685,246,1);
  1020. socket.emit("1",5.935,246,1);
  1021. socket.emit("1",6.24,246,1);
  1022. socket.emit("1",6.49,246,1);
  1023. socket.emit("1",6.74,246,1);
  1024. socket.emit("1",6.99,246,1);
  1025. socket.emit("1",7.25,246,1);
  1026. socket.emit("1",7.5,246,1);
  1027. socket.emit("1",7.75,246,1);
  1028. socket.emit("1",8,246,1);
  1029. socket.emit("1",8.25,246,1);
  1030. socket.emit("1",8.5,246,1);
  1031. socket.emit("1",8.75,246,1);
  1032. socket.emit("1",9.01,246,1);
  1033. socket.emit("1",9.26,246,1);
  1034. socket.emit("1",9.51,246,1);
  1035. socket.emit("1",9.76,246,1);
  1036. socket.emit("1",10.03,246,1);
  1037. socket.emit("1",4,246,1);
  1038. socket.emit("1",4.25,246,1);
  1039. socket.emit("1",4.5,246,1);
  1040. socket.emit("1",7.86,311,1);
  1041. socket.emit("1",8.06,311,1);
  1042. socket.emit("1",8.26,311,1);
  1043. socket.emit("1",8.46,311,1);
  1044. socket.emit("1",8.66,311,1);
  1045. socket.emit("1",8.86,311,1);
  1046. socket.emit("1",9.06,311,1);
  1047. socket.emit("1",9.26,311,1);
  1048. socket.emit("1",9.46,311,1);
  1049. socket.emit("1",9.66,311,1);
  1050. socket.emit("1",9.86,311,1);
  1051. socket.emit("1",10.28,311,1);
  1052. socket.emit("1",10.70,311,1);
  1053. socket.emit("1",10.90,311,1);
  1054. socket.emit("1",11.10,311,1);
  1055. socket.emit("1",11.30,311,1);
  1056. socket.emit("1",11.72,311,1);
  1057. socket.emit("1",12.14,311,1);
  1058. socket.emit("1",12.34,311,1);
  1059. socket.emit("1",12.54,311,1);
  1060. socket.emit("1",12.74,311,1);
  1061. socket.emit("1",12.94,311,1);
  1062. socket.emit("1",13.14,311,1);
  1063. socket.emit("1",13.34,311,1);
  1064. socket.emit("1",13.54,311,1);
  1065. socket.emit("1",13.74,311,1);
  1066. socket.emit("1",13.94,311,1);
  1067. socket.emit("1",10.07,311,1);
  1068. socket.emit("1",10.49,311,1);
  1069. socket.emit("1",11.51,311,1);
  1070. socket.emit("1",11.93,311,1);
  1071. }
  1072. if (a.keyCode == 118) {//Defend (hybrid and full houses) base
  1073. socket.emit("1",2.205,189.5,1);
  1074. socket.emit("1",2.88,245,1);
  1075. socket.emit("1",6.486,185,1);
  1076. socket.emit("1",2.5425,184,1);
  1077. socket.emit("1",5.725,130,1);
  1078. socket.emit("1",9.975,130,1);
  1079. socket.emit("1",6.875,184,1);
  1080. socket.emit("1",4.375,186,1);
  1081. socket.emit("1",5.065,187,1);
  1082. socket.emit("1",6,245,1);
  1083. socket.emit("1",6.295,245,1);
  1084. socket.emit("1",7.07,245,1);
  1085. socket.emit("1",7.358,245,1);
  1086. socket.emit("1",2.05,245,1);
  1087. socket.emit("1",2.375,245,1);
  1088. socket.emit("1",3.1375,245,1);
  1089. socket.emit("1",3.445,245,1);
  1090. socket.emit("1",4.725,130,1);
  1091. socket.emit("1",6.205,130,1);
  1092. socket.emit("1",6.675,130,1);
  1093. socket.emit("1",7.145,130,1);
  1094. socket.emit("1",7.615,130,1);
  1095. socket.emit("1",8.085,130,1);
  1096. socket.emit("1",8.555,130,1);
  1097. socket.emit("1",9.025,130,1);
  1098. socket.emit("1",9.495,130,1);
  1099. socket.emit("1",10.475,130,1);
  1100. socket.emit("1",5.245,130,1);
  1101. socket.emit("1",4.72,210,1);
  1102. socket.emit("1",5.475,183,1);
  1103. socket.emit("1",5.825,193,1);
  1104. socket.emit("1",6.15,190,1);
  1105. socket.emit("1",7.215,190,1);
  1106. socket.emit("1",7.535,190,1);
  1107. socket.emit("1",1.565,200,1);
  1108. socket.emit("1",1.88,189,1);
  1109. socket.emit("1",2.95,184,1);
  1110. socket.emit("1",3.283,190,1);
  1111. socket.emit("1",3.61,193,1);
  1112. socket.emit("1",3.95,183,1);
  1113. socket.emit("1",5.687,245,1);
  1114. socket.emit("1",6.56,245,1);
  1115. socket.emit("1",3.75,245,1);
  1116. socket.emit("1",4.94,245,1);
  1117. socket.emit("1",5.1875,245,1);
  1118. socket.emit("1",5.435,245,1);
  1119. socket.emit("1",6.81,245,1);
  1120. socket.emit("1",7.65,245,1);
  1121. socket.emit("1",1.75,245,1);
  1122. socket.emit("1",2.6325,245,1);
  1123. socket.emit("1",4,245,1);
  1124. socket.emit("1",4.25,245,1);
  1125. socket.emit("1",4.5,245,1);
  1126. socket.emit("1",4.72,311,1);
  1127. socket.emit("1",4.92,311,1);
  1128. socket.emit("1",5.12,311,1);
  1129. socket.emit("1",5.32,311,1);
  1130. socket.emit("1",5.52,311,1);
  1131. socket.emit("1",5.94,311,1);
  1132. socket.emit("1",6.14,311,1);
  1133. socket.emit("1",6.34,311,1);
  1134. socket.emit("1",6.54,311,1);
  1135. socket.emit("1",6.96,311,1);
  1136. socket.emit("1",7.16,311,1);
  1137. socket.emit("1",7.36,311,1);
  1138. socket.emit("1",7.56,311,1);
  1139. socket.emit("1",7.76,311,1);
  1140. socket.emit("1",7.96,311,1);
  1141. socket.emit("1",8.16,311,1);
  1142. socket.emit("1",8.36,311,1);
  1143. socket.emit("1",8.56,311,1);
  1144. socket.emit("1",8.76,311,1);
  1145. socket.emit("1",9.18,311,1);
  1146. socket.emit("1",9.38,311,1);
  1147. socket.emit("1",9.58,311,1);
  1148. socket.emit("1",9.78,311,1);
  1149. socket.emit("1",10.2,311,1);
  1150. socket.emit("1",10.4,311,1);
  1151. socket.emit("1",10.6,311,1);
  1152. socket.emit("1",10.8,311,1);
  1153. socket.emit("1",5.73,311,1);
  1154. socket.emit("1",6.75,311,1);
  1155. socket.emit("1",8.97,311,1);
  1156. socket.emit("1",9.99,311,1);
  1157. }
  1158. if (a.keyCode == 121) {//Defend generator base
  1159. socket.emit("1",4.81,130,1);
  1160. socket.emit("1",5.36,130,1);
  1161. socket.emit("1",6.275,130,1);
  1162. socket.emit("1",6.775,130,1);
  1163. socket.emit("1",7.3,130,1);
  1164. socket.emit("1",7.85,130,1);
  1165. socket.emit("1",8.4,130,1);
  1166. socket.emit("1",8.925,130,1);
  1167. socket.emit("1",9.5,130,1);
  1168. socket.emit("1",10.05,130,1);
  1169. socket.emit("1",10.6,130,1);
  1170. socket.emit("1",4.5889,186.5,1);
  1171. socket.emit("1",5.085,180.5,1);
  1172. socket.emit("1",5.64,180,1);
  1173. socket.emit("1",5.999,180,1);
  1174. socket.emit("1",6.51,185,1);
  1175. socket.emit("1",7.05,185,1);
  1176. socket.emit("1",7.6,185,1);
  1177. socket.emit("1",8.15,185,1);
  1178. socket.emit("1",8.675,185,1);
  1179. socket.emit("1",9.225,185,1);
  1180. socket.emit("1",9.78,185,1);
  1181. socket.emit("1",10.325,185,1);
  1182. socket.emit("1",4.73,245,1);
  1183. socket.emit("1",5.0025,245,1);
  1184. socket.emit("1",5.275,245,1);
  1185. socket.emit("1",5.5475,245,1);
  1186. socket.emit("1",5.82,245,1);
  1187. socket.emit("1",6.0925,245,1);
  1188. socket.emit("1",6.365,245,1);
  1189. socket.emit("1",6.6375,245,1);
  1190. socket.emit("1",6.91,245,1);
  1191. socket.emit("1",7.1825,245,1);
  1192. socket.emit("1",7.455,245,1);
  1193. socket.emit("1",7.7275,245,1);
  1194. socket.emit("1",8.0025,245,1);
  1195. socket.emit("1",8.275,245,1);
  1196. socket.emit("1",8.5475,245,1);
  1197. socket.emit("1",8.82,245,1);
  1198. socket.emit("1",9.0925,245,1);
  1199. socket.emit("1",9.3675,245,1);
  1200. socket.emit("1",9.64,245,1);
  1201. socket.emit("1",9.9125,245,1);
  1202. socket.emit("1",10.1875,245,1);
  1203. socket.emit("1",10.4625,245,1);
  1204. socket.emit("1",10.7375,245,1);
  1205. }
  1206. if (a.keyCode == 119) {//Defend -Defence Base
  1207. socket.emit("1",10.53,130,1);
  1208. socket.emit("1",10.05,130,1);
  1209. socket.emit("1",9.57,130,1);
  1210. socket.emit("1",9.09,130,1);
  1211. socket.emit("1",8.61,130,1);
  1212. socket.emit("1",8.13,130,1);
  1213. socket.emit("1",7.65,130,1);
  1214. socket.emit("1",7.17,130,1);
  1215. socket.emit("1",6.68,130,1);
  1216. socket.emit("1",6.19,130,1);
  1217. socket.emit("1",5.70,130,1);
  1218. socket.emit("1",5.21,130,1);
  1219. socket.emit("1",4.72,130,1);
  1220. socket.emit("1",10.78,180,1);
  1221. socket.emit("1",10.3,180,1);
  1222. socket.emit("1",9.8,180,1);
  1223. socket.emit("1",9.32,180,1);
  1224. socket.emit("1",8.85,180,1);
  1225. socket.emit("1",8.38,180,1);
  1226. socket.emit("1",7.88,180,1);
  1227. socket.emit("1",7.4,180,1);
  1228. socket.emit("1",6.95,180,1);
  1229. socket.emit("1",6.45,180,1);
  1230. socket.emit("1",5.95,180,1);
  1231. socket.emit("1",5.47,180,1);
  1232. socket.emit("1",4.95,180,1);
  1233. socket.emit("1",4.73,245,1);
  1234. socket.emit("1",5.0025,245,1);
  1235. socket.emit("1",5.275,245,1);
  1236. socket.emit("1",5.5475,245,1);
  1237. socket.emit("1",5.82,245,1);
  1238. socket.emit("1",6.0925,245,1);
  1239. socket.emit("1",6.365,245,1);
  1240. socket.emit("1",6.6375,245,1);
  1241. socket.emit("1",6.91,245,1);
  1242. socket.emit("1",7.1825,245,1);
  1243. socket.emit("1",7.455,245,1);
  1244. socket.emit("1",7.7275,245,1);
  1245. socket.emit("1",8.0025,245,1);
  1246. socket.emit("1",8.275,245,1);
  1247. socket.emit("1",8.5475,245,1);
  1248. socket.emit("1",8.82,245,1);
  1249. socket.emit("1",9.0925,245,1);
  1250. socket.emit("1",9.3675,245,1);
  1251. socket.emit("1",9.64,245,1);
  1252. socket.emit("1",9.9125,245,1);
  1253. socket.emit("1",10.1875,245,1);
  1254. socket.emit("1",10.4625,245,1);
  1255. socket.emit("1",10.7375,245,1);
  1256. socket.emit("1",1.72,311,1);
  1257. socket.emit("1",1.97,311,1);
  1258. socket.emit("1",2.22,311,1);
  1259. socket.emit("1",2.47,311,1);
  1260. socket.emit("1",2.72,311,1);
  1261. socket.emit("1",2.97,311,1);
  1262. socket.emit("1",3.22,311,1);
  1263. socket.emit("1",3.47,311,1);
  1264. socket.emit("1",3.72,311,1);
  1265. socket.emit("1",3.97,311,1);
  1266. socket.emit("1",4.22,311,1);
  1267. socket.emit("1",4.47,311,1);
  1268. socket.emit("1",4.72,311,1);
  1269. socket.emit("1",4.97,311,1);
  1270. socket.emit("1",5.22,311,1);
  1271. socket.emit("1",5.47,311,1);
  1272. socket.emit("1",5.72,311,1);
  1273. socket.emit("1",5.97,311,1);
  1274. socket.emit("1",6.22,311,1);
  1275. socket.emit("1",6.47,311,1);
  1276. socket.emit("1",6.72,311,1);
  1277. socket.emit("1",6.97,311,1);
  1278. socket.emit("1",7.22,311,1);
  1279. socket.emit("1",7.47,311,1);
  1280. socket.emit("1",7.72,311,1);
  1281. }
  1282. if (a.keyCode == 48) {//Defend Another hybrid base
  1283. socket.emit("1",5.725,130,1);
  1284. socket.emit("1",6.225,130,1);
  1285. socket.emit("1",6.725,130,1);
  1286. socket.emit("1",2.71,130,1);
  1287. socket.emit("1",3.21,130,1);
  1288. socket.emit("1",3.71,130,1);
  1289. socket.emit("1",5.065,186,1);
  1290. socket.emit("1",5.87,192.75,1);
  1291. socket.emit("1",6.25,196,1);
  1292. socket.emit("1",1.35,183,1);
  1293. socket.emit("1",1.825,183,1);
  1294. socket.emit("1",3.19,196,1);
  1295. socket.emit("1",3.565,192.75,1);
  1296. socket.emit("1",4.375,186,1);
  1297. socket.emit("1",6.45,245,1);
  1298. socket.emit("1",6.8,245,1);
  1299. socket.emit("1",2.645,245,1);
  1300. socket.emit("1",2.99,245,1);
  1301. socket.emit("1",4.72,130,1);
  1302. socket.emit("1",5.24,130,1);
  1303. socket.emit("1",1.1,130,1);
  1304. socket.emit("1",1.575,130,1);
  1305. socket.emit("1",2.045,130,1);
  1306. socket.emit("1",4.2,130,1);
  1307. socket.emit("1",5.45,185,1);
  1308. socket.emit("1",6.625,193,1);
  1309. socket.emit("1",6.95,187,1);
  1310. socket.emit("1",7.275,189,1);
  1311. socket.emit("1",2.17,187,1);
  1312. socket.emit("1",2.4925,187,1);
  1313. socket.emit("1",2.81,193,1);
  1314. socket.emit("1",4,185,1);
  1315. socket.emit("1",4.72,212.5,1);
  1316. socket.emit("1",4.96,245,1);
  1317. socket.emit("1",5.46,245,1);
  1318. socket.emit("1",7.378,245,1);
  1319. socket.emit("1",7.628,245,1);
  1320. socket.emit("1",7.878,245,1);
  1321. socket.emit("1",8.128,245,1);
  1322. socket.emit("1",2.0975,245,1);
  1323. socket.emit("1",3.975,245,1);
  1324. socket.emit("1",4.475,245,1);
  1325. socket.emit("1",2.375,245,1);
  1326. socket.emit("1",6.05,245,1);
  1327. socket.emit("1",7.1,245,1);
  1328. socket.emit("1",3.385,245,1);
  1329. socket.emit("1",5.21,245,1);
  1330. socket.emit("1",5.71,245,1);
  1331. socket.emit("1",3.725,245,1);
  1332. socket.emit("1",4.225,245,1);
  1333. socket.emit("1",7.86,311,1);
  1334. socket.emit("1",8.06,311,1);
  1335. socket.emit("1",8.26,311,1);
  1336. socket.emit("1",8.46,311,1);
  1337. socket.emit("1",8.66,311,1);
  1338. socket.emit("1",8.86,311,1);
  1339. socket.emit("1",9.06,311,1);
  1340. socket.emit("1",9.26,311,1);
  1341. socket.emit("1",9.46,311,1);
  1342. socket.emit("1",9.66,311,1);
  1343. socket.emit("1",9.86,311,1);
  1344. socket.emit("1",10.28,311,1);
  1345. socket.emit("1",10.70,311,1);
  1346. socket.emit("1",10.90,311,1);
  1347. socket.emit("1",11.10,311,1);
  1348. socket.emit("1",11.30,311,1);
  1349. socket.emit("1",11.72,311,1);
  1350. socket.emit("1",12.14,311,1);
  1351. socket.emit("1",12.34,311,1);
  1352. socket.emit("1",12.54,311,1);
  1353. socket.emit("1",12.74,311,1);
  1354. socket.emit("1",12.94,311,1);
  1355. socket.emit("1",13.14,311,1);
  1356. socket.emit("1",13.34,311,1);
  1357. socket.emit("1",13.54,311,1);
  1358. socket.emit("1",13.74,311,1);
  1359. socket.emit("1",13.94,311,1);
  1360. socket.emit("1",10.07,311,1);
  1361. socket.emit("1",10.49,311,1);
  1362. socket.emit("1",11.51,311,1);
  1363. socket.emit("1",11.93,311,1);
  1364. }
  1365. });
  1366. var scroll=0;
  1367. mainCanvas["addEventListener"]?(window["addEventListener"]("mousewheel",zoom,!1),mainCanvas["addEventListener"]("DOMMouseScroll",zoom,!1)):window["attachEvent"]("onmousewheel",zoom);function zoom(a)
  1368. {
  1369. a= window["event"]|| a;a["preventDefault"]();a["stopPropagation"]();scroll= Math["max"](-1,Math["min"](1,a["wheelDelta"]|| -a["detail"]));if(scroll== -1)
  1370. {
  1371. if(maxScreenHeight< 10000)
  1372. {
  1373. (maxScreenHeight+= 250,maxScreenWidth+= 250,resize());scroll= 0
  1374. }
  1375. }
  1376. if(scroll== 1)
  1377. {
  1378. if(maxScreenHeight> 1000)
  1379. {
  1380. (maxScreenHeight-= 250,maxScreenWidth-= 250,resize());scroll= 0
  1381. }
  1382. }
  1383. }
  1384. mainCanvas["onkeydown"]= function(event)
  1385. {
  1386. var k=event["keyCode"]?event["keyCode"]:event["which"];
  1387. if(k== 70)
  1388. {
  1389. if(maxScreenHeight< 10000)
  1390. {
  1391. (maxScreenHeight+= 250,maxScreenWidth+= 250,resize())
  1392. }
  1393. }
  1394. if(k== 67)
  1395. {
  1396. if(maxScreenHeight> 1000)
  1397. {
  1398. (maxScreenHeight-= 250,maxScreenWidth-= 250,resize())
  1399. }
  1400. }
  1401. {
  1402. if(65== a|| 37== a)
  1403. {
  1404. cameraKeys["l"]= 0,updateCameraInput()
  1405. }
  1406. if(68== a|| 39== a)
  1407. {
  1408. cameraKeys["r"]= 0,updateCameraInput()
  1409. }
  1410. if(87== a|| 38== a)
  1411. {
  1412. cameraKeys["u"]= 0,updateCameraInput()
  1413. }
  1414. if(83== a|| 40== a)
  1415. {
  1416. cameraKeys["d"]= 0,updateCameraInput()
  1417. }
  1418. if(32== a)
  1419. {
  1420. var d=unitList["indexOf"](activeUnit);
  1421. sendUnit(d)
  1422. }
  1423. void(0)!= upgrInputsToIndex["k"+ a]&& toggleActiveUnit(upgrInputsToIndex["k"+ a]);46== a&& selUnits["length"]&& sellSelUnits();84== a&& toggleChat("none"== chatListWrapper["style"]["display"]);27== a&& (toggleActiveUnit(),disableSelUnit(),showSelector= !1);82== a&& (camY= camX= 0)
  1424. }
  1425. }
  1426. ;mainCanvas["onkeydown"]= function(a)
  1427. {
  1428. a= a["keyCode"]?a["keyCode"]:a["which"];socket&& player&& !player["dead"]&& (65!= a&& 37!= a|| cameraKeys["l"]|| (cameraKeys["l"]= -1,cameraKeys["r"]= 0,updateCameraInput()),68!= a&& 39!= a|| cameraKeys["r"]|| (cameraKeys["r"]= 1,cameraKeys["l"]= 0,updateCameraInput()),87!= a&& 38!= a|| cameraKeys["u"]|| (cameraKeys["u"]= -1,cameraKeys["d"]= 0,updateCameraInput()),83!= a&& 40!= a|| cameraKeys["d"]|| (cameraKeys["d"]= 1,cameraKeys["u"]= 0,updateCameraInput()))
  1429. }
  1430.  
  1431. window.UIList = window.UIList || [];
  1432. window.initFuncs = window.initFuncs || [];
  1433. window.statusItems = window.statusItems || [];
  1434.  
  1435.  
  1436. window.UIList.push({
  1437. level: 0,
  1438. x: 1,
  1439. html: '<div onclick=walls()>Build Walls</div>'
  1440. }, {
  1441. level: 2,
  1442. x: 1,
  1443. html: '<div onclick=boulders()>Upgrade Boulders</div>'
  1444. }, {
  1445. level: 2,
  1446. x: 2,
  1447. html: '<div onclick=spikes()>Upgrade Spikes</div>'
  1448. }, {
  1449. level: 2,
  1450. x: 3,
  1451. html: '<div onclick=ranged()>Ranged Turret</div>'
  1452. }, {
  1453. level: 4,
  1454. x: 2,
  1455. html: '<div onclick=powerPlants()>Upgrade Power Plants</div>'
  1456. }, {
  1457. level: 3,
  1458. x: 1,
  1459. html: '<div onclick=sellGenerators()>Sell Generators</div>'
  1460. }, {
  1461. level: 3,
  1462. x: 2,
  1463. html: '<div onclick=sellall()>Sell all</div>'
  1464. },{
  1465. level: 3,
  1466. x: 3,
  1467. html: '<div onclick=antiTank()>Anti Tank</div>'
  1468. },{
  1469. level: 4,
  1470. x: 0,
  1471. html: '<div onclick=semiAuto()>Semi Auto</div>'
  1472. },{
  1473. level: 4,
  1474. x: 1,
  1475. html: '<div onclick=microGenerators()>Micro Generators</div>'
  1476. },{
  1477. level: 5,
  1478. x: 0,
  1479. html: '<div onclick=spotter()>Spotter Turret</div>'
  1480. },{
  1481. level: 5,
  1482. x: 1,
  1483. html: '<div onclick=gatlins()>Gatlin Turret</div>'
  1484. },{
  1485. level: 5,
  1486. x: 2,
  1487. html: '<div onclick=rapid()>Rapid Turret</div>'
  1488. });
  1489. //Bots
  1490. window.sockets = [];
  1491. function init() {
  1492. window.add = function() {
  1493. var xy = parseInt(prompt("Quantidade de bots"));
  1494. var name = prompt("Nome do bot");
  1495. BotAmout(xy,name);
  1496. alert("Bots Spawnados");
  1497. }
  1498. window.kill = function() {
  1499. socketClose();
  1500. window.sockets = [];
  1501. alert("Bots eliminados");
  1502. }
  1503. window.msg = function() {
  1504. var x = prompt("Bots falará...");
  1505. sendChatMessage(x);
  1506. }
  1507. window.unlockSkins();
  1508. if (localStorage.getItem("Discord")) {
  1509. function newSocket(botName) {
  1510. $.get("/getIP", {
  1511. sip: lobbyURLIP
  1512. }, function(data) {
  1513. window.socketBot = io.connect("http://" + data.ip + ":" + data.port, {
  1514. "connect timeout": 3000,
  1515. reconnection: true,
  1516. query: "cid=" + UTILS.getUniqueID() + "&rmid=" + lobbyRoomID
  1517. });
  1518. window.sockets.push(window.socketBot);
  1519. spawnBot(botName);
  1520. });
  1521. }
  1522.  
  1523. function BotAmout(number, botName) {
  1524. for (var i = 0; i < number; i++) {
  1525. newSocket(botName);
  1526. }
  1527. }
  1528.  
  1529. function spawnBot(nameBot) {
  1530. window.sockets.forEach(socket => {
  1531. socket.emit("spawn", {
  1532. name: nameBot + "_" + Math.floor(Math.random() * 10000) + 1,
  1533. skin: 0
  1534. });
  1535. });
  1536. }
  1537.  
  1538. function sendChatMessage(str) {
  1539. if (!window.sockets) return alert("no sockets");
  1540. window.sockets.forEach(socket => {
  1541. socket.emit("ch", str);
  1542. });
  1543. }
  1544.  
  1545. function socketClose() {
  1546. if (!window.sockets) return alert("no sockets");
  1547. window.sockets.forEach(socket => {
  1548. socket.close();
  1549. });
  1550. }
  1551. addEventListener("mousewheel", function(a) {
  1552. a = window.event || a;
  1553. a.preventDefault();
  1554. a.stopPropagation();
  1555. window.scroll = Math.max(-1, Math.min(1, a.wheelDelta || -a.detail))
  1556. if (window.scroll == -1) {
  1557. if (maxScreenHeight < 30000) {
  1558. (maxScreenHeight += 250, maxScreenWidth += 250, resize(true));
  1559. window.scroll = 0
  1560. }
  1561. }
  1562.  
  1563. if (window.scroll == 1) {
  1564. if (maxScreenHeight > 1080) {
  1565. (maxScreenHeight -= 250, maxScreenWidth -= 250, resize(true))
  1566. window.scroll = 0
  1567. }
  1568. }
  1569. });
  1570.  
  1571. setInterval(updatePlayer, 90000);
  1572.  
  1573. function updatePlayer() {
  1574. socket.emit("2", 0, 0);
  1575. socket.emit("2", Math.round(camX), Math.round(camY));
  1576. }
  1577. } else {
  1578. window.base64 = ["aHR0cHM6Ly9kaXNjb3JkLmdnLzlYTndTV3A="];
  1579. window.open(atob(base64));
  1580. localStorage.setItem("Discord", "Si");
  1581. }
  1582. }
  1583.  
  1584. init();
  1585.  
  1586. function emit2() {
  1587. socket.emit.apply(socket, arguments);
  1588. }
  1589.  
  1590. window.sellw = function () {
  1591. for (var a = [], d = 0; d < units.length; ++d) units[d].type === 3 && units[d].owner == player.sid && getUnitFromPath(units[d].uPath).name === 'Wall' && a.push(units[d].id);
  1592. socket.emit("3", a)
  1593. }
  1594. window.walls = function () {
  1595. for (i = -3.14; i < 3.14; i += .108) emit2("1", i, 1e3, 1)
  1596. }
  1597. window.sellGenerators = window.sellGenerators || function () {
  1598. for (var a = [], d = 0; d < units.length; ++d) {
  1599. if (units[d].type === 0 && units[d].owner == player.sid) {
  1600. var name = getUnitFromPath(units[d].uPath).name;
  1601. (name === 'Generator' || name === 'Power Plant') && a.push(units[d].id)
  1602. }
  1603. }
  1604. socket.emit("3", a)
  1605. }
  1606. window.sellhouses = function () {
  1607. for (var a = [], d = 0; d < units.length; ++d) units[d].type === 0 && units[d].owner == player.sid && getUnitFromPath(units[d].uPath).name === 'House' && a.push(units[d].id);
  1608. socket.emit("3", a)
  1609. }
  1610. window.sellwalls = function () {
  1611. for (var a = [], d = 0; d < units.length; ++d) units[d].type === 3 && units[d].owner == player.sid && getUnitFromPath(units[d].uPath).name === 'Wall' && a.push(units[d].id);
  1612. socket.emit("3", a)
  1613. }
  1614. window.sellinner = function () {
  1615. for (var a = [], d = 0; d < units.length; ++d) {
  1616. if (units[d].type === 0 && units[d].owner == player.sid) {
  1617. a.push(units[d].id)
  1618. }
  1619. }
  1620. socket.emit("3", a)
  1621. }
  1622. window.sellall = function () {
  1623. for (var a = [], d = 0; d < units.length; ++d)(units[d].type === 3 || units[d].type === 2 || units[d].type === 0) && units[d].owner == player.sid && a.push(units[d].id);
  1624. socket.emit("3", a)
  1625. }
  1626. window.boulders = window.boulders || function () {
  1627. for (var i = 0; i < units.length; ++i) 3 == units[i].type && "circle" == units[i].shape && units[i].owner == player.sid && socket.emit("4", units[i].id, 0)
  1628. }
  1629. window.microGenerators = window.microGenerators || function () {
  1630. for (var i = 0; i < units.length; ++i) 3 == units[i].type && "circle" == units[i].shape && units[i].owner == player.sid && socket.emit("4", units[i].id, 1)
  1631. }
  1632. window.spikes = window.spikes || function () {
  1633. for (var i = 0; i < units.length; ++i) 3 == units[i].type && "hexagon" == units[i].shape && units[i].owner == player.sid && socket.emit("4", units[i].id, 0)
  1634. }
  1635. window.powerPlants = window.powerPlants || function () {
  1636. for (var i = 0; i < units.length; ++i) 0 == units[i].type && "hexagon" == units[i].shape && units[i].owner == player.sid && socket.emit("4", units[i].id, 0)
  1637. }
  1638. window.rapid = window.rapid || function () {
  1639. for (var i = 0; i < units.length; ++i) 0 == units[i].type && 1 == units[i].turretIndex && "circle" == units[i].shape && units[i].owner == player.sid && socket.emit("4", units[i].id, 0)
  1640. }
  1641. window.ranged = window.ranged || function () {
  1642. for (var i = 0; i < units.length; ++i) 0 == units[i].type && 1 == units[i].turretIndex && "circle" == units[i].shape && units[i].owner == player.sid && socket.emit("4", units[i].id, 1)
  1643. }
  1644. window.antiTank = window.antiTank || function () {
  1645. for (var i = 0; i < units.length; ++i) 0 == units[i].type && 4 == units[i].turretIndex && "circle" == units[i].shape && units[i].owner == player.sid && socket.emit("4", units[i].id, 1)
  1646. }
  1647. window.semiAuto = window.semiAuto || function () {
  1648. for (var i = 0; i < units.length; ++i) 0 == units[i].type && 4 == units[i].turretIndex && "circle" == units[i].shape && units[i].owner == player.sid && socket.emit("4", units[i].id, 0)
  1649. }
  1650. window.gatlins = window.gatlins || function () {
  1651. for (var i = 0; i < units.length; ++i) 0 == units[i].type && 2 == units[i].turretIndex && "circle" == units[i].shape && units[i].owner == player.sid && socket.emit("4", units[i].id, 0)
  1652. }
  1653. window.spotter = window.spotter || function () {
  1654. for (var i = 0; i < units.length; ++i) 0 == units[i].type && 3 == units[i].turretIndex && "circle" == units[i].shape && units[i].owner == player.sid && socket.emit("4", units[i].id, 0)
  1655. };
  1656. window.build = function (instr) {
  1657. instr.forEach((ins) => {
  1658. emit2.apply({}, ins);
  1659. })
  1660. }
  1661.  
  1662. window.boulders = function () {
  1663. for (var i = 0; i < units.length; ++i) 3 == units[i].type && "circle" == units[i].shape && units[i].owner == player.sid && socket.emit("4", units[i].id, 0)
  1664. }
  1665. window.microGenerators = function () {
  1666. for (var i = 0; i < units.length; ++i) 3 == units[i].type && "circle" == units[i].shape && units[i].owner == player.sid && socket.emit("4", units[i].id, 1)
  1667. }
  1668. window.spikes = function () {
  1669. for (var i = 0; i < units.length; ++i) 3 == units[i].type && "hexagon" == units[i].shape && units[i].owner == player.sid && socket.emit("4", units[i].id, 0)
  1670. }
  1671. window.powerPlants = function () {
  1672. for (var i = 0; i < units.length; ++i) 0 == units[i].type && "hexagon" == units[i].shape && units[i].owner == player.sid && socket.emit("4", units[i].id, 0)
  1673. }
  1674. window.rapid = function () {
  1675. for (var i = 0; i < units.length; ++i) 0 == units[i].type && 1 == units[i].turretIndex && "circle" == units[i].shape && units[i].owner == player.sid && socket.emit("4", units[i].id, 0)
  1676. }
  1677. window.ranged = function () {
  1678. for (var i = 0; i < units.length; ++i) 0 == units[i].type && 1 == units[i].turretIndex && "circle" == units[i].shape && units[i].owner == player.sid && socket.emit("4", units[i].id, 1)
  1679. }
  1680. window.antiTank = function () {
  1681. for (var i = 0; i < units.length; ++i) 0 == units[i].type && 4 == units[i].turretIndex && "circle" == units[i].shape && units[i].owner == player.sid && socket.emit("4", units[i].id, 1)
  1682. }
  1683. window.semiAuto = function () {
  1684. for (var i = 0; i < units.length; ++i) 0 == units[i].type && 4 == units[i].turretIndex && "circle" == units[i].shape && units[i].owner == player.sid && socket.emit("4", units[i].id, 0)
  1685. }
  1686. window.gatlins = function () {
  1687. for (var i = 0; i < units.length; ++i) 0 == units[i].type && 2 == units[i].turretIndex && "circle" == units[i].shape && units[i].owner == player.sid && socket.emit("4", units[i].id, 0)
  1688. }
  1689. window.spotter = function () {
  1690. for (var i = 0; i < units.length; ++i) 0 == units[i].type && 3 == units[i].turretIndex && "circle" == units[i].shape && units[i].owner == player.sid && socket.emit("4", units[i].id, 0)
  1691. }
  1692. window.build(arr);
  1693. window.makeUI = function () {
  1694. if (window.hasMadeUI) return;
  1695. window.hasMadeUI = true;
  1696. window.statusItems.sort(function (a, b) {
  1697. return a.order - b.order;
  1698. })
  1699. var levels = [];
  1700. window.UIList.forEach((item) => {
  1701. if (!levels[item.level]) levels[item.level] = [];
  1702. levels[item.level].push(item)
  1703. })
  1704.  
  1705. levels = levels.filter((a) => {
  1706. if (a) {
  1707. a.sort(function (a, b) {
  1708. return a.x - b.x;
  1709. })
  1710. return true;
  1711. } else {
  1712. return false;
  1713. }
  1714. })
  1715.  
  1716. var headAppend = document.getElementsByTagName("head")[0],
  1717. style = document.createElement("div");
  1718.  
  1719. var toast = document.createElement('div');
  1720. toast.id = "snackbar";
  1721. var css = document.createElement('div');
  1722.  
  1723. css.innerHTML = '<style>\n\
  1724. #snackbar {\n\
  1725. visibility: hidden;\n\
  1726. min-width: 250px;\n\
  1727. margin-left: -125px;\n\
  1728. background-color: #ffffff;\n\
  1729. color: #303f9f;\n\
  1730. text-align: center;\n\
  1731. border-radius: 4px;\n\
  1732. padding: 10px;\n\
  1733. font-family: "regularF";\n\
  1734. font-size: 20px;\n\
  1735. position: fixed;\n\
  1736. z-index: 100;\n\
  1737. left: 50%;\n\
  1738. top: 30px;\n\
  1739. }\n\
  1740. #snackbar.show {\n\
  1741. visibility: visible;\n\
  1742. -webkit-animation: fadein 0.5s;\n\
  1743. animation: fadein 0.5s;\n\
  1744. }\n\
  1745. #snackbar.hide {\n\
  1746. visibility: visible;\n\
  1747. -webkit-animation: fadeout 0.5s;\n\
  1748. animation: fadeout 0.5s;\n\
  1749. }\n\
  1750. @-webkit-keyframes fadein {\n\
  1751. from {top: 0; opacity: 0;}\n\
  1752. to {top: 30px; opacity: 1;}\n\
  1753. }\n\
  1754. @keyframes fadein {\n\
  1755. from {top: 0; opacity: 0;}\n\
  1756. to {top: 30px; opacity: 1;}\n\
  1757. }\n\
  1758. @-webkit-keyframes fadeout {\n\
  1759. from {top: 30px; opacity: 1;}\n\
  1760. to {top: 0; opacity: 0;}\n\
  1761. }\n\
  1762. @keyframes fadeout {\n\
  1763. from {top: 30px; opacity: 1;}\n\
  1764. to {top: 0; opacity: 0;}\n\
  1765. }\n\
  1766. </style>'
  1767. var height = levels.length * (14 + 19) + (levels.length - 1) * 7 + 15;
  1768. style.innerHTML = "<style>\n\
  1769. #noobscriptUI, #noobscriptUI > div > div {\n\
  1770. background-color: #ffffff;\n\
  1771. margin-left: 3px;\n\
  1772. border-radius:4px;\n\
  1773. pointer-events:all\n\
  1774. }\n\
  1775. #noobscriptUI {\n\
  1776. top: -" + (height + 12) + "px;\n\
  1777. transition: 1s;\n\
  1778. margin-left:10px;\n\
  1779. position:absolute;\n\
  1780. padding-left:24px;\n\
  1781. margin-top:9px;\n\
  1782. padding-top:15px;\n\
  1783. width:580px;\n\
  1784. height: " + height + "px;\n\
  1785. font-family:arial;\n\
  1786. left:25%\n\
  1787. }\n\
  1788. #noobscriptUI:hover{\n\
  1789. top:0px\n\
  1790. }\n\
  1791. #noobscriptUI > div > div {\n\
  1792. color: #303f9f;\n\
  1793. padding:7px;\n\
  1794. height:19px;\n\
  1795. display:inline-block;\n\
  1796. cursor:pointer;\n\
  1797. font-size:15px\n\
  1798. }\n\
  1799. </style>"
  1800.  
  1801. headAppend.appendChild(style);
  1802. headAppend.appendChild(css);
  1803.  
  1804.  
  1805. var contAppend = document.getElementById("gameUiContainer"),
  1806. menuA = document.createElement("div");
  1807.  
  1808. var code = ['<div id="noobscriptUI">\n'];
  1809.  
  1810. levels.forEach((items, i) => {
  1811. code.push(i === 0 ? ' <div>\n' : ' <div style="margin-top:7px;">\n');
  1812. items.forEach((el) => {
  1813. code.push(' ' + el.html + '\n');
  1814. })
  1815. code.push(' </div>\n');
  1816. })
  1817. code.push(' <div id="confinfo" style="margin-top:4px; color: white; text-align: center; font-size: 10px; white-space:pre"></div>')
  1818. code.push('</div>');
  1819.  
  1820. menuA.innerHTML = code.join("");
  1821. contAppend.insertBefore(menuA, contAppend.firstChild)
  1822. contAppend.appendChild(toast)
  1823. var toastTimeout = false;
  1824. window.showToast = function (msg) {
  1825. toast.textContent = msg;
  1826.  
  1827. if (toastTimeout) clearTimeout(toastTimeout);
  1828. else toast.className = "show";
  1829. toastTimeout = setTimeout(function () {
  1830. toast.className = 'hide'
  1831. setTimeout(function () {
  1832. toast.className = '';
  1833. }, 400);
  1834. toastTimeout = false;
  1835. }, 3000);
  1836. }
  1837. window.statusBar = function () {
  1838. var el = document.getElementById('confinfo');
  1839. var text = [];
  1840.  
  1841. window.statusItems.forEach((item, i) => {
  1842. if (i !== 0) text.push(' ');
  1843. if (item.name) text.push(item.name + ': ');
  1844. text.push(item.value());
  1845. })
  1846.  
  1847. el.textContent = text.join('');
  1848. }
  1849. window.statusBar();
  1850.  
  1851. window.initFuncs.forEach((func) => {
  1852. func();
  1853. })
  1854. }
  1855. setTimeout(() => {
  1856. window.makeUI();
  1857. }, 1000)
  1858.  
  1859. //InstaFind
  1860.  
  1861. var gotoUsers = [];
  1862. var gotoIndex = 0;
  1863. window.overrideSocketEvents = window.overrideSocketEvents || [];
  1864. window.chatCommands = window.chatCommands || {};
  1865.  
  1866. window.chatCommands.find = function(split) {
  1867. var name = split.slice(1).join(' ');
  1868. if (name == '') {
  1869. addChat('Please specify a username', 'Client')
  1870. return;
  1871. }
  1872. window.goto(name)
  1873. }
  1874. window.overrideSocketEvents.push({
  1875. name: "l",
  1876. description: "Leaderboard Insta Find override",
  1877. func: function(a) {
  1878. var d = "",
  1879. c = 1,
  1880. b = 0;
  1881. for (; b < a.length;) {
  1882. d += "<div class='leaderboardItem' onclick=goto2(" + a[b] + ");><div style='display:inline-block;float:left;' class='whiteText'>" + c + ".</div> <div class='" + (player && a[b] == player.sid ? "leaderYou" : "leader") + "'>" + a[b + 1] + "</div><div class='scoreText'>" + a[b + 2] + "</div></div>", c++, b += 3;
  1883. }
  1884. leaderboardList.innerHTML = d;
  1885. }
  1886. })
  1887. leaderboardList.style.pointerEvents = 'auto';
  1888. chatListWrapper.style.pointerEvents = 'auto';
  1889.  
  1890. window.goto = function(username) {
  1891. gotoUsers = users.filter((user) => {
  1892. return user.name === username
  1893. });
  1894. gotoIndex = 0;
  1895. if (gotoUsers[0]) {
  1896. camX = gotoUsers[0].x - player.x;
  1897. camY = gotoUsers[0].y - player.y;
  1898. }
  1899. addChat(gotoUsers.length + ' users found with the name ' + username, 'Client');
  1900. return gotoUsers.length;
  1901. }
  1902. window.goto2 = function(id, go) {
  1903. gotoUsers = users.filter((user) => {
  1904. return user.sid === id;
  1905. });
  1906. gotoIndex = 0;
  1907. if (!go && gotoUsers[0]) {
  1908. camX = gotoUsers[0].x - player.x;
  1909. camY = gotoUsers[0].y - player.y;
  1910. }
  1911. return gotoUsers.length;
  1912. }
  1913.  
  1914. window.gotoLeft = function() {
  1915. if (!gotoUsers.length) return;
  1916.  
  1917. if (camX == gotoUsers[gotoIndex].x - player.x && camY == gotoUsers[gotoIndex].y - player.y) {
  1918. if (gotoIndex <= 0) gotoIndex = gotoUsers.length;
  1919. gotoIndex--;
  1920. }
  1921. camX = gotoUsers[gotoIndex].x - player.x;
  1922. camY = gotoUsers[gotoIndex].y - player.y;
  1923. }
  1924.  
  1925. window.gotoRight = function() {
  1926. if (!gotoUsers.length) return;
  1927.  
  1928. if (camX == gotoUsers[gotoIndex].x - player.x && camY == gotoUsers[gotoIndex].y - player.y) {
  1929. if (gotoIndex >= gotoUsers.length - 1) gotoIndex = -1;
  1930. gotoIndex++;
  1931. }
  1932. camX = gotoUsers[gotoIndex].x - player.x;
  1933. camY = gotoUsers[gotoIndex].y - player.y;
  1934. }
  1935.  
  1936. window.addChat = function(msg, from, color) {
  1937. color = color || "#303f9f";
  1938. var b = document.createElement("li");
  1939. b.className = "chatother";
  1940. b.innerHTML = '<span style="color:' + color + '">[' + from + ']</span> <span class="chatText">' + msg + "</span>";
  1941. 10 < chatList.childNodes.length && chatList.removeChild(chatList.childNodes[0]);
  1942. chatList.appendChild(b)
  1943. }
  1944.  
  1945. window.resetCamera = function() { // Override
  1946. camX = camXS = camY = camYS = 0;
  1947. cameraKeys = {
  1948. l: 0,
  1949. r: 0,
  1950. u: 0,
  1951. d: 0
  1952. }
  1953.  
  1954. if (socket && window.overrideSocketEvents && window.overrideSocketEvents.length) {
  1955. window.overrideSocketEvents.forEach((item) => {
  1956. socket.removeAllListeners(item.name)
  1957. socket.on(item.name, item.func);
  1958.  
  1959. });
  1960.  
  1961. }
  1962. }
  1963.  
  1964. window.addChatLine = function(a, d, c) {
  1965. if (player) {
  1966. var b = getUserBySID(a);
  1967. if (c || 0 <= b) {
  1968. var g = c ? "SERVER" : users[b].name;
  1969. c = c ? "#fff" : playerColors[users[b].color] ? playerColors[users[b].color] : playerColors[0];
  1970. player.sid == a && (c = "#fff");
  1971. b = document.createElement("li");
  1972. b.className = player.sid == a ? "chatme" : "chatother";
  1973.  
  1974. b.innerHTML = '<span style="color:' + c + '" onclick=goto2(' + a + ');>[' + g + ']</span> <span class="chatText">' + d + "</span>";
  1975. 10 < chatList.childNodes.length && chatList.removeChild(chatList.childNodes[0]);
  1976. chatList.appendChild(b)
  1977. }
  1978. }
  1979. }
  1980.  
  1981. window.addEventListener("keyup", function(a) {
  1982. a = a.keyCode ? a.keyCode : a.which;
  1983. if (a === 190) {
  1984. window.gotoRight()
  1985. } else if (a === 188) {
  1986. window.gotoLeft();
  1987. }
  1988.  
  1989. });
  1990.  
  1991. //Zoom
  1992.  
  1993. var scroll = 0;
  1994.  
  1995. mainCanvas.addEventListener ? (window.addEventListener("mousewheel", zoom, !1),
  1996. mainCanvas.addEventListener("DOMMouseScroll", zoom, !1)) : window.attachEvent("onmousewheel", zoom);
  1997.  
  1998. function zoom(a) {
  1999. a = window.event || a;
  2000. a.preventDefault();
  2001. a.stopPropagation();
  2002. scroll = Math.max(-1, Math.min(1, a.wheelDelta || -a.detail))
  2003. if (scroll == -1) { //zoom out
  2004. if (maxScreenHeight < 10000) {
  2005. (maxScreenHeight += 250, maxScreenWidth += 250, resize());
  2006. scroll = 0
  2007. }
  2008. }
  2009.  
  2010. if (scroll == 1) { //zoom in
  2011. if (maxScreenHeight > 1000) {
  2012. (maxScreenHeight -= 250, maxScreenWidth -= 250, resize())
  2013. scroll = 0
  2014. }
  2015. }
  2016. }
  2017.  
  2018. mainCanvas.onkeydown = function(event) {
  2019. var k = event.keyCode ? event.keyCode : event.which;
  2020. if (k == 70) { // F to zoom out
  2021. if (maxScreenHeight < 10000) {
  2022. (maxScreenHeight += 250, maxScreenWidth += 250, resize());
  2023. }
  2024. }
  2025. if (k == 67) {// C to zoom in
  2026. if (maxScreenHeight > 1000) {
  2027. (maxScreenHeight -= 250, maxScreenWidth -= 250, resize())
  2028. }
  2029.  
  2030. }
  2031.  
  2032. {if(65==a||37==a)cameraKeys.l=0,updateCameraInput();if(68==a||39==a)cameraKeys.r=0,updateCameraInput();if(87==a||38==a)cameraKeys.u=0,updateCameraInput();if(83==a||40==a)cameraKeys.d=0,updateCameraInput();if(32==a){var d=unitList.indexOf(activeUnit);sendUnit(d)}void 0!=upgrInputsToIndex["k"+a]&&toggleActiveUnit(upgrInputsToIndex["k"+a]);46==a&&selUnits.length&&sellSelUnits();84==a&&toggleChat("none"==chatListWrapper.style.display);
  2033. 27==a&&(toggleActiveUnit(),disableSelUnit(),showSelector=!1);82==a&&(camY=camX=0)}};mainCanvas.onkeydown=function(a){a=a.keyCode?a.keyCode:a.which;socket&&player&&!player.dead&&(65!=a&&37!=a||cameraKeys.l||(cameraKeys.l=-1,cameraKeys.r=0,updateCameraInput()),68!=a&&39!=a||cameraKeys.r||(cameraKeys.r=1,cameraKeys.l=0,updateCameraInput()),87!=a&&38!=a||cameraKeys.u||(cameraKeys.u=-1,cameraKeys.d=0,updateCameraInput()),83!=a&&40!=a||cameraKeys.d||(cameraKeys.d=1,cameraKeys.u=0,updateCameraInput()))}
  2034.  
  2035. addEventListener("keydown", function(a) {
  2036. if (a.keyCode == 77){
  2037. for(i=0;i<users.length;++i){
  2038. if(users[i].name.startsWith("[G]")&&users[i].name !== player.name){
  2039. camX = users[i].x-player.x;
  2040. camY = users[i].y-player.y;
  2041. }
  2042. }
  2043. }
  2044. });
  2045. window.UIList = window.UIList || [];
  2046. window.initFuncs = window.initFuncs || [];
  2047. window.statusItems = window.statusItems || [];
  2048.  
  2049. window.sendIndex = 0;
  2050. window.loops = 0;
  2051. window.hasSentTarget = false;
  2052. window.usePatch = true;
  2053. window.cache = [];
  2054. window.cacheHeight = 0;
  2055. window.cacheIndexes = 0;
  2056. window.shift = false;
  2057. window.sendFrequency = 1E3 / 15
  2058. window.UIList.push({
  2059. level: 3,
  2060. x: 0,
  2061. description: 'Zoom Patch',
  2062. html: '<div id="patch" onclick=patch()>Desabilitar Zoom</div>'
  2063. });
  2064.  
  2065. window.statusItems.push({
  2066. name: 'Zoom Patch',
  2067. order: 2,
  2068. value: function () {
  2069. return usePatch ? 'On' : 'Off';
  2070. }
  2071. });
  2072.  
  2073. window.patch = function () {
  2074. var el = document.getElementById('patch');
  2075. if (usePatch) {
  2076. usePatch = false
  2077. socket.emit("2", Math.round(camX), Math.round(camY))
  2078. el.textContent = 'Habilitar Zoom'
  2079. } else {
  2080. usePatch = true;
  2081. el.textContent = 'Desabilitar Zoom';
  2082. populate();
  2083. }
  2084. window.statusBar();
  2085. return usePatch;
  2086. }
  2087.  
  2088.  
  2089. function populate() {
  2090. if (!usePatch) return;
  2091. cacheHeight = Math.round(maxScreenHeight / 1080);
  2092. cacheIndexes = cacheHeight * cacheHeight - 1;
  2093. for (var i = cache.length; i < cacheIndexes; i++) {
  2094. cache[i] = spiral(i);
  2095. }
  2096. }
  2097. populate();
  2098.  
  2099.  
  2100. window.addEventListener('keyup', function (a) {
  2101. a = a.keyCode ? a.keyCode : a.which;
  2102. if (a == 70) { // F to out
  2103. (maxScreenHeight = 30000, maxScreenWidth = 53333, resize(true));
  2104. cameraSpd = (shift ? 1.8 : .85) * (Math.log(maxScreenHeight / 1080) + 1)
  2105. populate()
  2106. }
  2107. if (a == 67) { // C to zoom in
  2108. (maxScreenHeight = 1080, maxScreenWidth = 1920, resize(true))
  2109. cameraSpd = shift ? 1.8 : .85;
  2110. populate()
  2111. }
  2112. if (a === 16) {
  2113. shift = false;
  2114. cameraSpd = .85 * (Math.log(maxScreenHeight / 1080) + 1);
  2115. }
  2116.  
  2117. })
  2118. window.addEventListener('keydown', function (a) {
  2119. a = a.keyCode ? a.keyCode : a.which;
  2120. if (a === 16) {
  2121. shift = true;
  2122. cameraSpd = 1.8 * (Math.log(maxScreenHeight / 1080) + 1);
  2123. }
  2124. })
  2125.  
  2126. function zoom(a) {
  2127. a = window.event || a;
  2128. a.preventDefault();
  2129. a.stopPropagation();
  2130. scroll = Math.max(-1, Math.min(1, a.wheelDelta || -a.detail))
  2131. if (scroll == -1) { //zoom out
  2132. if (maxScreenHeight < 30000) {
  2133. (maxScreenHeight += 250, maxScreenWidth += 250, resize(true));
  2134. cameraSpd = (shift ? 1.8 : .85) * (Math.log(maxScreenHeight / 1080) + 1)
  2135. scroll = 0
  2136. populate()
  2137. }
  2138. }
  2139.  
  2140. if (scroll == 1) { //zoom in
  2141. if (maxScreenHeight > 1080) {
  2142. (maxScreenHeight -= 250, maxScreenWidth -= 250, resize(true))
  2143. cameraSpd = (shift ? 1.8 : .85) * (Math.log(maxScreenHeight / 1080) + 1)
  2144. scroll = 0
  2145. populate()
  2146. }
  2147. }
  2148. }
  2149. mainCanvas.addEventListener ? (window.addEventListener("mousewheel", zoom, !1),
  2150. mainCanvas.addEventListener("DOMMouseScroll", zoom, !1)) : window.attachEvent("onmousewheel", zoom);
  2151.  
  2152. function spiral(n) {
  2153. var r = Math.floor((Math.sqrt(n + 1) - 1) / 2) + 1;
  2154. var p = (8 * r * (r - 1)) / 2;
  2155. var en = r * 2;
  2156. var a = (1 + n - p) % (r * 8);
  2157. var pos = [0, 0, r];
  2158. switch (Math.floor(a / (r * 2))) {
  2159. case 0:
  2160. pos[0] = a - r;
  2161. pos[1] = -r;
  2162. break;
  2163. case 1:
  2164. pos[0] = r;
  2165. pos[1] = (a % en) - r;
  2166. break;
  2167. case 2:
  2168. pos[0] = r - (a % en);
  2169. pos[1] = r;
  2170. break;
  2171. case 3:
  2172. pos[0] = -r;
  2173. pos[1] = r - (a % en);
  2174. break;
  2175. }
  2176. return pos;
  2177. }
  2178.  
  2179. window.initFuncs.push(function () {
  2180. var js = window.updateGameLoop.toString();
  2181.  
  2182. var ind = js.indexOf('if (gameState && mapBounds) {');
  2183. if (ind === -1) ind = js.indexOf('if (gameState&&mapBounds) {');
  2184. if (ind === -1) ind = js.indexOf('if(gameState&&mapBounds){');
  2185.  
  2186. var ind2 = js.indexOf('}', ind);
  2187.  
  2188. var n = js.substring(0, ind) + 'if(gameState&&mapBounds){if(camXS||camYS)camX+=camXS*cameraSpd*a,camY+=camYS*cameraSpd*a;player.x+camX<mapBounds[0]?camX=mapBounds[0]-player.x:player.x+camX>mapBounds[0]+mapBounds[2]&&(camX=mapBounds[0]+mapBounds[2]-player.x);player.y+camY<mapBounds[1]?camY=mapBounds[1]-player.y:player.y+camY>mapBounds[1]+mapBounds[3]&&(camY=mapBounds[1]+mapBounds[3]-player.y);if(currentTime-lastCamSend>=sendFrequency)if(lastCamSend=currentTime,usePatch&&cacheIndexes)if(lastCamX!=camX||lastCamY!=camY)lastCamX=camX,lastCamY=camY,loop=sendIndex=0;else{if(4>=loop){if(sendIndex%2)(sendIndex-1)%6?socket.emit("2",Math.round(camX),Math.round(camY)):socket.emit("2",0,0);else{var index=sendIndex/2;index>=cacheIndexes?(sendIndex=0,loop++):socket.emit("2",Math.round(camX+1920*cache[index][0]),Math.round(camY+1080*cache[index][1]))}hasSentTarget=!1;sendIndex++}}else lastCamX==camX&&lastCamY==camY&&hasSentTarget||(lastCamX=camX,hasSentTarget=!0,lastCamY=camY,loop=0,socket.emit("2",Math.round(camX),Math.round(camY)))}' +
  2189. js.substr(ind2 + 1);
  2190. n = n.substring(n.indexOf('{') + 1, n.lastIndexOf('}'));
  2191. window.updateGameLoop = new Function('a', n)
  2192.  
  2193. });
  2194.  
  2195. window.makeUI = function () {
  2196. if (window.hasMadeUI) return;
  2197. window.hasMadeUI = true;
  2198. window.statusItems.sort(function (a, b) {
  2199. return a.order - b.order;
  2200. })
  2201. var levels = [];
  2202. window.UIList.forEach((item) => {
  2203. if (!levels[item.level]) levels[item.level] = [];
  2204. levels[item.level].push(item)
  2205. })
  2206.  
  2207. levels = levels.filter((a) => {
  2208. if (a) {
  2209. a.sort(function (a, b) {
  2210. return a.x - b.x;
  2211. })
  2212. return true;
  2213. } else {
  2214. return false;
  2215. }
  2216. })
  2217.  
  2218. var headAppend = document.getElementsByTagName("head")[0],
  2219. style = document.createElement("div");
  2220.  
  2221. var toast = document.createElement('div');
  2222. toast.id = "snackbar";
  2223. var css = document.createElement('div');
  2224.  
  2225. css.innerHTML = '<style>\n\
  2226. #snackbar {\n\
  2227. visibility: hidden;\n\
  2228. min-width: 250px;\n\
  2229. margin-left: -125px;\n\
  2230. background-color: #ffffff;\n\
  2231. color:#303f9f;\n\
  2232. text-align: center;\n\
  2233. border-radius: 4px;\n\
  2234. padding: 10px;\n\
  2235. font-family: "regularF";\n\
  2236. font-size: 20px;\n\
  2237. position: fixed;\n\
  2238. z-index: 100;\n\
  2239. left: 50%;\n\
  2240. top: 30px;\n\
  2241. }\n\
  2242. #snackbar.show {\n\
  2243. visibility: visible;\n\
  2244. -webkit-animation: fadein 0.5s;\n\
  2245. animation: fadein 0.5s;\n\
  2246. }\n\
  2247. #snackbar.hide {\n\
  2248. visibility: visible;\n\
  2249. -webkit-animation: fadeout 0.5s;\n\
  2250. animation: fadeout 0.5s;\n\
  2251. }\n\
  2252. @-webkit-keyframes fadein {\n\
  2253. from {top: 0; opacity: 0;}\n\
  2254. to {top: 30px; opacity: 1;}\n\
  2255. }\n\
  2256. @keyframes fadein {\n\
  2257. from {top: 0; opacity: 0;}\n\
  2258. to {top: 30px; opacity: 1;}\n\
  2259. }\n\
  2260. @-webkit-keyframes fadeout {\n\
  2261. from {top: 30px; opacity: 1;}\n\
  2262. to {top: 0; opacity: 0;}\n\
  2263. }\n\
  2264. @keyframes fadeout {\n\
  2265. from {top: 30px; opacity: 1;}\n\
  2266. to {top: 0; opacity: 0;}\n\
  2267. }\n\
  2268. </style>'
  2269. var height = levels.length * (14 + 19) + (levels.length - 1) * 7 + 15;
  2270. style.innerHTML = "<style>\n\
  2271. #noobscriptUI, #noobscriptUI > div > div {\n\
  2272. background-color:#ffffff;\n\
  2273. margin-left: 3px;\n\
  2274. border-radius:4px;\n\
  2275. pointer-events:all\n\
  2276. }\n\
  2277. #noobscriptUI {\n\
  2278. top: -" + (height + 12) + "px;\n\
  2279. transition: 1s;\n\
  2280. margin-left:10px;\n\
  2281. position:absolute;\n\
  2282. padding-left:24px;\n\
  2283. margin-top:9px;\n\
  2284. padding-top:15px;\n\
  2285. width:580px;\n\
  2286. height: " + height + "px;\n\
  2287. font-family:arial;\n\
  2288. left:25%\n\
  2289. }\n\
  2290. #noobscriptUI:hover{\n\
  2291. top:0px\n\
  2292. }\n\
  2293. #noobscriptUI > div > div {\n\
  2294. color:#303f9f;\n\
  2295. padding:7px;\n\
  2296. height:19px;\n\
  2297. display:inline-block;\n\
  2298. cursor:pointer;\n\
  2299. font-size:15px\n\
  2300. }\n\
  2301. </style>"
  2302.  
  2303. headAppend.appendChild(style);
  2304. headAppend.appendChild(css);
  2305.  
  2306.  
  2307. var contAppend = document.getElementById("gameUiContainer"),
  2308. menuA = document.createElement("div");
  2309.  
  2310. var code = ['<div id="noobscriptUI">\n'];
  2311.  
  2312. levels.forEach((items, i) => {
  2313. code.push(i === 0 ? ' <div>\n' : ' <div style="margin-top:7px;">\n');
  2314. items.forEach((el) => {
  2315. code.push(' ' + el.html + '\n');
  2316. })
  2317. code.push(' </div>\n');
  2318. })
  2319. code.push(' <div id="confinfo" style="margin-top:4px; color: white; text-align: center; font-size: 10px; white-space:pre"></div>')
  2320. code.push('</div>');
  2321.  
  2322. menuA.innerHTML = code.join("");
  2323. contAppend.insertBefore(menuA, contAppend.firstChild)
  2324. contAppend.appendChild(toast)
  2325. var toastTimeout = false;
  2326. window.showToast = function (msg) {
  2327. toast.textContent = msg;
  2328.  
  2329. if (toastTimeout) clearTimeout(toastTimeout);
  2330. else toast.className = "show";
  2331. toastTimeout = setTimeout(function () {
  2332. toast.className = 'hide'
  2333. setTimeout(function () {
  2334. toast.className = '';
  2335. }, 400);
  2336. toastTimeout = false;
  2337. }, 3000);
  2338. }
  2339. window.statusBar = function () {
  2340. var el = document.getElementById('confinfo');
  2341. var text = [];
  2342.  
  2343. window.statusItems.forEach((item, i) => {
  2344. if (i !== 0) text.push(' ');
  2345. if (item.name) text.push(item.name + ': ');
  2346. text.push(item.value());
  2347. })
  2348.  
  2349. el.textContent = text.join('');
  2350. }
  2351. window.statusBar();
  2352.  
  2353. window.initFuncs.forEach((func) => {
  2354. func();
  2355. })
  2356. }
  2357. setTimeout(() => {
  2358. window.makeUI();
  2359. }, 1000)
  2360. var headAppend=document.getElementsByTagName("head")[0],style=document.createElement("div");style.innerHTML="<style>#upgradeScriptCont,.buttonClass{background-color:rgba(40,40,40,.5);margin-left: 3px;border-radius:4px;pointer-events:all}#upgradeScriptCont{top: -138px;transition: 1s;margin-left:10px;position:absolute;padding-left:24px;margin-top:9px;padding-top:15px;width:530px;height:128px;font-family:arial;left:28%}#upgradeScriptCont:hover{top:0px}.buttonClass{color:#fff;padding:7px;height:19px;display:inline-block;cursor:pointer;font-size:15px}.hoverMessage{color: white;font-size: 14px;position: relative;left: 457px;bottom: 2px;pointer-events: none;}</style>",headAppend.appendChild(style);var contAppend=document.getElementById("gameUiContainer"),menuA=document.createElement("div");menuA.innerHTML="<div id=upgradeScriptCont><div id=layer1><div id=walls class=buttonClass onclick=walls()>Buy Walls</div><div id=upgradeBoulders class=buttonClass onclick=boulders()>Upgrade Boulders</div><div id=upgradeSpikes class=buttonClass onclick=spikes()>Upgrade Spikes</div><div id=upgradeGen class=buttonClass onclick=powerPlants()>Upgrade Power Plants</div></div><div id=layer2 style=margin-top:7px;margin-left:7px><div id=walls class=buttonClass onclick=generators()>Buy Generators</div><div id=upgradeBoulders class=buttonClass onclick=rapid()>Upgrade Rapid</div><div id=upgradeSpikes class=buttonClass onclick=ranged()>Upgrade Ranged</div><div id=upgradeGen class=buttonClass onclick=antiTank()>Upgrade anti-tank</div></div><div id=layer3 style=margin-top:7px;margin-left:-16px><div id=walls class=buttonClass onclick=gatlins()>Upgrade Gatlins</div><div id=upgradeBoulders class=buttonClass onclick=spotter()>Upgrade spotter</div><div id=upgradeMicro class=buttonClass onclick=microGenerators()>Upgrade Micro-Gen</div><div id=upgradeSpikes class=buttonClass onclick=semiAuto()>Upgrade Semi-auto</div></div><span class=hoverMessage>Hover over</span></div>",contAppend.insertBefore(menuA,contAppend.firstChild),window.walls=function(){for(i=-3.14;i<3.14;i+=.108)socket.emit("1",i,1e3,1)},window.generators=function(){for(i=-3.14;i<3.14;i+=.075)socket.emit("1",i,132,3)},window.boulders=function(){for(i=0;i<units.length;++i)3==units[i].type&&"circle"==units[i].shape&&units[i].owner==player.sid&&socket.emit("4",units[i].id,0)},window.microGenerators=function(){for(i=0;i<units.length;++i)3==units[i].type&&"circle"==units[i].shape&&units[i].owner==player.sid&&socket.emit("4",units[i].id,1)},window.spikes=function(){for(i=0;i<units.length;++i)3==units[i].type&&"hexagon"==units[i].shape&&units[i].owner==player.sid&&socket.emit("4",units[i].id,0)},window.powerPlants=function(){for(i=0;i<units.length;++i)0==units[i].type&&"hexagon"==units[i].shape&&units[i].owner==player.sid&&socket.emit("4",units[i].id,0)},window.rapid=function(){for(i=0;i<units.length;++i)0==units[i].type&&1==units[i].turretIndex&&"circle"==units[i].shape&&units[i].owner==player.sid&&socket.emit("4",units[i].id,0)},window.ranged=function(){for(i=0;i<units.length;++i)0==units[i].type&&1==units[i].turretIndex&&"circle"==units[i].shape&&units[i].owner==player.sid&&socket.emit("4",units[i].id,1)},window.antiTank=function(){for(i=0;i<units.length;++i)0==units[i].type&&4==units[i].turretIndex&&"circle"==units[i].shape&&units[i].owner==player.sid&&socket.emit("4",units[i].id,1)},window.semiAuto=function(){for(i=0;i<units.length;++i)0==units[i].type&&4==units[i].turretIndex&&"circle"==units[i].shape&&units[i].owner==player.sid&&socket.emit("4",units[i].id,0)},window.gatlins=function(){for(i=0;i<units.length;++i)0==units[i].type&&2==units[i].turretIndex&&"circle"==units[i].shape&&units[i].owner==player.sid&&socket.emit("4",units[i].id,0)},window.spotter=function(){for(i=0;i<units.length;++i)0==units[i].type&&3==units[i].turretIndex&&"circle"==units[i].shape&&units[i].owner==player.sid&&socket.emit("4",units[i].id,0)};
  2361.  
  2362. var correct = `<div class="correctness incorrect">Errado</div>`;
  2363. //document.body.style.backgroundImage = "url('http://eskipaper.com/images/blue-background-2.jpg')";
  2364.  
  2365.  
  2366. function clickelementbyname(elementname){
  2367. document.getElementsByName(elementname)[0].click();
  2368. }
  2369. /*
  2370. function clickelementbyclassname(elementclassname){
  2371. document.getElementsByClassName(elementclassname)[0].click();
  2372. }
  2373. */
  2374.  
  2375. if(window.location.href.indexOf("nead.pro.br/mod/quiz/attempt.php?") > -1){
  2376. console.log("Questionary page detected.");
  2377. //var id = document.getElementsByName('questionids')[0].value;
  2378. var s1 = document.getElementsByClassName('submit btn')[0].getAttribute('onclick').split(`'`)[1];
  2379. var id = s1.split('q')[1];
  2380. var questionID = document.getElementsByName('questionids')[0].value;
  2381. var questioncode = document.getElementById(`q${id}`).innerHTML;
  2382. var correctness = document.getElementsByClassName("correctness correct")[0];
  2383. console.log("Checking question grading.");
  2384. if(correctness !== undefined){
  2385. console.log("Question is right, saving data.");
  2386. localStorage.setItem('que'+ id, questioncode);
  2387. if(document.getElementsByClassName("next")[0] !== undefined){
  2388. console.log("Going to next page.");
  2389. document.getElementsByClassName("next")[0].click();
  2390. }
  2391. if(document.getElementsByClassName("next")[0] === undefined){
  2392. console.log("Questionary is finished.");
  2393. alert("Questionary is finished.");
  2394. }
  2395. }
  2396. if(correctness === undefined){
  2397. console.log("Question isn't right, looking for question data");
  2398. if(localStorage.getItem('que' + id) === null){
  2399. alert("No data found, you must answer this question");
  2400. console.log("No data found, human must answer");
  2401. }
  2402. if(localStorage.getItem('que' + id) !== null){
  2403. document.getElementById(`q${id}`).innerHTML = localStorage.getItem('que' + id);
  2404. setTimeout(clickelementbyname, 250, 'resp' + id + '_submit');
  2405. console.log("Data found, changing page.");
  2406. }
  2407. }
  2408. }
  2409.  
  2410.  
  2411.  
  2412.  
  2413. //CHAT IS SELECTED OR NO
  2414. chatInput.onfocus=function(){chatInput.isFocused=true;};
  2415. chatInput.onblur=function(){chatInput.isFocused=false;};
  2416.  
  2417. //DELETE PLAYER
  2418. addEventListener("keydown", function(a) {
  2419. if(chatInput.isFocused===false&&a.keyCode==46){
  2420. if(selUnits.length!==0){
  2421. local.emit('del',selUnits[0].owner);
  2422. }
  2423. }
  2424. });
  2425.  
  2426. //AGROUP UNITS
  2427. addEventListener("keydown", function(a) {
  2428. if(chatInput.isFocused===false&&a.keyCode==16){
  2429. if(selUnits.length==4&&selUnits.length!==0){
  2430. var center = selUnitsMidPoint();
  2431. var points = [];
  2432. points.push({x:center[0],y:center[1],moving:false});
  2433. points.push({x:center[0]+275,y:center[1]+275,moving:false});
  2434. points.push({x:center[0]+275,y:center[1],moving:false});
  2435. points.push({x:center[0],y:center[1]+275,moving:false});
  2436. for(o=0,e=selUnits;o<e.length;++o){
  2437. var closest = 1000000000;
  2438. for(i=0,e=points;i<points.length;++i){
  2439. var d=UTILS.getDistance(e[i].x,e[i].y,selUnits[o].x,selUnits[o].y);
  2440. if(i!==4){
  2441. if(e[i].moving===false&&d<closest){
  2442. closest=d;
  2443. local.emit("5",points[i].x,points[i].y,[selUnits[o].id],0,0);
  2444. if(selUnits[o].owner==player.sid){socket.emit("5",UTILS.roundToTwo(points[i].x),UTILS.roundToTwo(points[i].y),[selUnits[o].id],0,0);}
  2445. }
  2446. }
  2447. else{
  2448. closest=d;
  2449. if(selUnits[o].owner==player.sid){socket.emit("5",UTILS.roundToTwo(points[i].x),UTILS.roundToTwo(points[i].y),[selUnits[o].id],0,0);}
  2450. local.emit("5",points[i].x,points[i].y,[selUnits[o].id],0,0);
  2451. }
  2452. }
  2453. }
  2454. }
  2455. }
  2456. });
  2457.  
  2458.  
  2459. //CONNECT TO BOTS
  2460. var local = connectLocal();
  2461. function connectLocal(){
  2462. const locallIo = io;
  2463. return locallIo.connect('http://localhost:8080');
  2464. }
  2465.  
  2466.  
  2467. //MID POS BETWEN UNITS
  2468. function selUnitsMidPoint(){
  2469. x=0;
  2470. y=0;
  2471. for(i=0,a=selUnits;i<a.length;++i){
  2472. y=selUnits[i].y+y;
  2473. x=selUnits[i].x+x;
  2474. }
  2475. return [x/a.length,y/a.length];
  2476. }
  2477.  
  2478. //CREATE NEW SOLDIER
  2479. addEventListener("keydown", function(a) {
  2480. if (chatInput.isFocused===false&&a.keyCode == 107) {
  2481. local.emit("create");
  2482. }
  2483. });
  2484.  
  2485.  
  2486. //GET BOTS CODE
  2487. addEventListener("keydown", function(a) {
  2488. if (chatInput.isFocused===false&&a.keyCode == 9) {
  2489. alert('node . '+socket.io.uri+' '+player.sid+' '+[KM]+'SOLDIER'+' 0');
  2490. }
  2491. });
  2492.  
  2493.  
  2494. addEventListener("keydown", function(a) {
  2495. if (a.keyCode == 97){
  2496. for(i=-3.14;i<=3.14;i+=0.5233){
  2497. socket.emit("1",i,132,1);
  2498. }
  2499. }
  2500. if (a.keyCode == 97){
  2501. for(i=-2.965;i<=3.14;i+=0.3488){
  2502. socket.emit("1",i,243.85,1);
  2503. }
  2504. }
  2505. if (a.keyCode == 97){
  2506. for(i=0;i<units.length;++i){
  2507. if(0===units[i].type&&"hexagon"==units[i].shape&&units[i].owner==player.sid){
  2508. socket.emit("4",units[i].id,0);
  2509. }
  2510. }
  2511. }
  2512. if (a.keyCode == 97){
  2513. for(i=-3.14;i<=3.14;i+=0.3488){
  2514. socket.emit("1",i,194,1);
  2515. }
  2516. }
  2517. if (a.keyCode == 97){
  2518. for(i=0;i<units.length;++i){
  2519. if(0===units[i].type&&1==units[i].turretIndex&&"circle"==units[i].shape&&units[i].owner==player.sid){
  2520. socket.emit("4",units[i].id,1);
  2521. }
  2522. }
  2523. }
  2524. if (a.keyCode == 97){
  2525. for(i=0;i<units.length;++i){
  2526. if(0===units[i].type&&3==units[i].turretIndex&&"circle"==units[i].shape&&units[i].owner==player.sid){
  2527. socket.emit("4",units[i].id,0);
  2528. }
  2529. }
  2530. }
  2531. if (a.keyCode == 97){
  2532. for(i=-3.05;i<3.05;i+=0.216){
  2533. socket.emit("1",i,1e3,1);
  2534. }
  2535. }
  2536. if (a.keyCode == 97){
  2537. for(i=0;i<units.length;++i){
  2538. if(3==units[i].type&&"circle"==units[i].shape&&units[i].owner==player.sid){
  2539. socket.emit("4",units[i].id,0);
  2540. }
  2541. }
  2542. }
  2543. if (a.keyCode == 67){
  2544. for(i=0;i<units.length;++i){
  2545. if(1==units[i].type&&"star"==units[i].shape&&units[i].owner==player.sid){
  2546. camX = units[i].x-player.x;
  2547. camY = units[i].y-player.y;
  2548. }
  2549. }
  2550. }
  2551. });
  2552.  
  2553.  
  2554. addEventListener("keydown", function(a) {
  2555. if (a.keyCode == 88){
  2556. for(i=0;i<users.length;++i){
  2557. if(users[i].name.startsWith("??")&&users[i].name !== player.name){
  2558. camX = users[i].x-player.x;
  2559. camY = users[i].y-player.y;
  2560. }
  2561. }
  2562. }
  2563. });
  2564. //PRESS "I" FOR INFORMATIONS
  2565. window.sockets = [];
  2566. function init() {
  2567.  
  2568. window.unlockSkins();
  2569. if (localStorage.getItem("Discord")) {
  2570. function newSocket(botName) {
  2571. $.get("/getIP", {
  2572. sip: lobbyURLIP
  2573. }, function(data) {
  2574. window.socketBot = io.connect("http://" + data.ip + ":" + data.port, {
  2575. "connect timeout": 3000,
  2576. reconnection: true,
  2577. query: "cid=" + UTILS.getUniqueID() + "&rmid=" + lobbyRoomID
  2578. });
  2579. window.sockets.push(window.socketBot);
  2580. spawnBot(botName);
  2581. });
  2582. }
  2583.  
  2584. function BotAmout(number, botName) {
  2585. for (var i = 0; i < number; i++) {
  2586. newSocket(botName);
  2587. }
  2588. }
  2589.  
  2590. function spawnBot(nameBot) {
  2591. window.sockets.forEach(socket => {
  2592. socket.emit("spawn", {
  2593. name: nameBot,
  2594. skin: 0
  2595. });
  2596. });
  2597. }
  2598.  
  2599. function sendChatMessage(str) {
  2600. if (!window.sockets) return alert("no sockets");
  2601. window.sockets.forEach(socket => {
  2602. socket.emit("ch", str);
  2603. });
  2604. }
  2605.  
  2606. function socketClose() {
  2607. if (!window.sockets) return alert("no sockets");
  2608. window.sockets.forEach(socket => {
  2609. socket.close();
  2610. });
  2611. }
  2612. function sendChatMessage2(str) {
  2613. if (!window.sockets) return alert("no sockets");
  2614. window.sockets.forEach(socket => {
  2615. socket.emit("ch", str);
  2616. });
  2617. }
  2618.  
  2619. function generateRandomBlocks() {//Upgrade Power Plants(Generators)
  2620. socket.emit("2", Math.round(camX), Math.round(camY));
  2621. for (var i = 0; i < units.length; ++i) 0 == units[i].type && "hexagon" == units[i].shape && units[i].owner == player.sid && socket.emit("4", units[i].id, 0)
  2622.  
  2623. socket.emit("1",5.999,180,3);socket.emit("1",6.275,130,3);socket.emit("1",6.51,185,3);socket.emit("1",6.775,130,3);socket.emit("1",7.05,185,3);
  2624. socket.emit("1",7.3,130,3);socket.emit("1",7.6,185,3);socket.emit("1",7.85,130,3);socket.emit("1",8.15,185,3);socket.emit("1",8.4,130,3);
  2625. socket.emit("1",8.675,185,3);socket.emit("1",8.925,130,3);socket.emit("1",9.225,185,3);socket.emit("1",9.5,130,3);socket.emit("1",9.78,185,3);
  2626. socket.emit("1",10.05,130,3);socket.emit("1",10.325,185,3);socket.emit("1",10.6,130,3);socket.emit("1",4.5889,186.5,3);socket.emit("1",4.81,130,3);
  2627. socket.emit("1",5.085,180.5,3);socket.emit("1",5.36,130,3);socket.emit("1",5.64,180,3);socket.emit("1",4.73,245,3);socket.emit("1",5.0025,245,3);
  2628. socket.emit("1",5.275,245,3);socket.emit("1",5.5475,245,3);socket.emit("1",5.82,245,3);socket.emit("1",6.0925,245,3);socket.emit("1",6.365,245,3);
  2629. socket.emit("1",6.6375,245,3);socket.emit("1",6.91,245,3);socket.emit("1",7.1825,245,3);socket.emit("1",7.455,245,3);socket.emit("1",7.7275,245,3);
  2630. socket.emit("1",8.0025,245,3);socket.emit("1",8.275,245,3);socket.emit("1",8.5475,245,3);socket.emit("1",8.82,245,3);socket.emit("1",9.0925,245,3);
  2631. socket.emit("1",9.3675,245,3);socket.emit("1",9.64,245,3);socket.emit("1",9.9125,245,3);socket.emit("1",10.1875,245,3);socket.emit("1",10.4625,245,3);
  2632. socket.emit("1",10.7375,245,3);
  2633. if (!window.sockets) return alert("no sockets");
  2634. window.sockets.forEach(socket => {
  2635. for (var i = 0; i < units.length; ++i) 0 == units[i].type && "hexagon" == units[i].shape && units[i].owner == player.sid && socket.emit("4", units[i].id, 0)
  2636.  
  2637. socket.emit("1",5.999,180,3);socket.emit("1",6.275,130,3);socket.emit("1",6.51,185,3);socket.emit("1",6.775,130,3);socket.emit("1",7.05,185,3);
  2638. socket.emit("1",7.3,130,3);socket.emit("1",7.6,185,3);socket.emit("1",7.85,130,3);socket.emit("1",8.15,185,3);socket.emit("1",8.4,130,3);
  2639. socket.emit("1",8.675,185,3);socket.emit("1",8.925,130,3);socket.emit("1",9.225,185,3);socket.emit("1",9.5,130,3);socket.emit("1",9.78,185,3);
  2640. socket.emit("1",10.05,130,3);socket.emit("1",10.325,185,3);socket.emit("1",10.6,130,3);socket.emit("1",4.5889,186.5,3);socket.emit("1",4.81,130,3);
  2641. socket.emit("1",5.085,180.5,3);socket.emit("1",5.36,130,3);socket.emit("1",5.64,180,3);socket.emit("1",4.73,245,3);socket.emit("1",5.0025,245,3);
  2642. socket.emit("1",5.275,245,3);socket.emit("1",5.5475,245,3);socket.emit("1",5.82,245,3);socket.emit("1",6.0925,245,3);socket.emit("1",6.365,245,3);
  2643. socket.emit("1",6.6375,245,3);socket.emit("1",6.91,245,3);socket.emit("1",7.1825,245,3);socket.emit("1",7.455,245,3);socket.emit("1",7.7275,245,3);
  2644. socket.emit("1",8.0025,245,3);socket.emit("1",8.275,245,3);socket.emit("1",8.5475,245,3);socket.emit("1",8.82,245,3);socket.emit("1",9.0925,245,3);
  2645. socket.emit("1",9.3675,245,3);socket.emit("1",9.64,245,3);socket.emit("1",9.9125,245,3);socket.emit("1",10.1875,245,3);socket.emit("1",10.4625,245,3);
  2646. socket.emit("1",10.7375,245,3);
  2647. });
  2648. }
  2649. addEventListener("keydown", function (i) {
  2650. if (i.keyCode == 51) {// mensagem de spam
  2651. var x = ("CHAT INTERROMPIDO CHAT INTERROMPIDO")
  2652. sendChatMessage(x);
  2653. }
  2654. });
  2655. addEventListener("keydown", function (i) {
  2656. if (i.keyCode == 53) {// mensagem de spam
  2657. var f = ("SPAM SPAM SPAM SPAM SPAM SPAM SPAM")
  2658. sendChatMessage(f);
  2659. }
  2660. });
  2661. addEventListener("keydown", function (i) {
  2662. if (i.keyCode == 54) {// mensagem de spam
  2663. var o = ("TIREM OS BOTS!! TIREM OS BOTS!!")
  2664. sendChatMessage(o);
  2665. }
  2666. });
  2667. addEventListener("keydown", function(ev) {
  2668. if (ev.keyCode == 52) {
  2669. var y = prompt("Bots vão falar:");
  2670. sendChatMessage(y)
  2671. }
  2672. if (ev.keyCode == 50) {
  2673. socketClose();
  2674. window.sockets = [];
  2675. }
  2676. if (ev.keyCode == 49) {
  2677. var xy = parseInt(prompt("Número de BOTs:"));
  2678. var name = prompt("Nome dos BOTs:")
  2679. BotAmout(xy, name);
  2680. }
  2681. if (ev.keyCode == 56) {
  2682. alert("HIHHIHIHIHI" + window.sockets.length);
  2683. }
  2684. if (ev.keyCode == 55) {
  2685. generateRandomBlocks();
  2686. }
  2687. });
  2688.  
  2689.  
  2690. setInterval(updatePlayer, 90000);
  2691.  
  2692. function updatePlayer() {
  2693. socket.emit("2", 0, 0);
  2694. socket.emit("2", Math.round(camX), Math.round(camY));
  2695. }
  2696. } else {
  2697. window.base64 = ["aHR0cHM6Ly9kaXNjb3JkLmdnLzlYTndTV3A="];
  2698. window.open(atob(base64));
  2699. localStorage.setItem("Discord", "Si");
  2700. }
  2701. }
  2702.  
  2703. init();
  2704.  
  2705.  
  2706. (function() {
  2707. 'use strict';
  2708.  
  2709. // Your code here...
  2710. })();addEventListener("keydown", function(a) {
  2711. if (a.keyCode == 100) {//Full Houses Base (179 soldiers)
  2712. socket.emit("1",4.725,130,7);
  2713. socket.emit("1",5.245,130,4);
  2714. socket.emit("1",5.715,130,4);
  2715. socket.emit("1",6.185,130,4);
  2716. socket.emit("1",6.655,130,4);
  2717. socket.emit("1",7.13,130,4);
  2718. socket.emit("1",7.6,130,4);
  2719. socket.emit("1",1.85,130,4);
  2720. socket.emit("1",2.32,130,4);
  2721. socket.emit("1",2.79,130,4);
  2722. socket.emit("1",3.265,130,4);
  2723. socket.emit("1",3.735,130,4);
  2724. socket.emit("1",4.205,130,4);
  2725. socket.emit("1",5.06,185,4);
  2726. socket.emit("1",5.4,185,4);
  2727. socket.emit("1",5.725,190,4);
  2728. socket.emit("1",6.045,186,4);
  2729. socket.emit("1",6.374,185,4);
  2730. socket.emit("1",6.7215,189.5,4);
  2731. socket.emit("1",7.0425,188.5,4);
  2732. socket.emit("1",7.365,185,4);
  2733. socket.emit("1",7.712,187.45,4);
  2734. socket.emit("1",8.035,188.5,4);
  2735. socket.emit("1",8.36,185,4);
  2736. socket.emit("1",2.425,188,4);
  2737. socket.emit("1",2.75,190,4);
  2738. socket.emit("1",3.075,184,4);
  2739. socket.emit("1",3.42,186,4);
  2740. socket.emit("1",3.74,190,4);
  2741. socket.emit("1",4.06,186,4);
  2742. socket.emit("1",4.39,185,4);
  2743. socket.emit("1",4.8625,245,4);
  2744. socket.emit("1",5.1125,245,4);
  2745. socket.emit("1",5.3625,245,4);
  2746. socket.emit("1",5.6125,245,4);
  2747. socket.emit("1",5.8625,245,4);
  2748. socket.emit("1",6.1125,245,4);
  2749. socket.emit("1",6.3625,245,4);
  2750. socket.emit("1",6.6125,245,4);
  2751. socket.emit("1",6.8625,245,4);
  2752. socket.emit("1",7.14,245,4);
  2753. socket.emit("1",7.39,245,4);
  2754. socket.emit("1",7.64,246,4);
  2755. socket.emit("1",7.89,246,4);
  2756. socket.emit("1",8.14,246,4);
  2757. socket.emit("1",8.39,246,4);
  2758. socket.emit("1",8.635,246,4);
  2759. socket.emit("1",8.885,246,4);
  2760. socket.emit("1",2.5825,245,4);
  2761. socket.emit("1",2.8625,245,4);
  2762. socket.emit("1",3.1125,245,4);
  2763. socket.emit("1",3.3625,245,4);
  2764. socket.emit("1",3.6125,245,4);
  2765. socket.emit("1",3.8625,245,4);
  2766. socket.emit("1",4.1125,245,4);
  2767. socket.emit("1",4.3625,245,4);
  2768. socket.emit("1",4.6125,245,4);
  2769. socket.emit("1",7.86,311,1);
  2770. socket.emit("1",8.06,311,1);
  2771. socket.emit("1",8.26,311,1);
  2772. socket.emit("1",8.46,311,1);
  2773. socket.emit("1",8.66,311,1);
  2774. socket.emit("1",8.86,311,1);
  2775. socket.emit("1",9.06,311,1);
  2776. socket.emit("1",9.26,311,1);
  2777. socket.emit("1",9.46,311,1);
  2778. socket.emit("1",9.66,311,1);
  2779. socket.emit("1",9.86,311,1);
  2780. socket.emit("1",10.28,311,1);
  2781. socket.emit("1",10.70,311,1);
  2782. socket.emit("1",10.90,311,1);
  2783. socket.emit("1",11.10,311,1);
  2784. socket.emit("1",11.30,311,1);
  2785. socket.emit("1",11.72,311,1);
  2786. socket.emit("1",12.14,311,1);
  2787. socket.emit("1",12.34,311,1);
  2788. socket.emit("1",12.54,311,1);
  2789. socket.emit("1",12.74,311,1);
  2790. socket.emit("1",12.94,311,1);
  2791. socket.emit("1",13.14,311,1);
  2792. socket.emit("1",13.34,311,1);
  2793. socket.emit("1",13.54,311,1);
  2794. socket.emit("1",13.74,311,1);
  2795. socket.emit("1",13.94,311,1);
  2796. socket.emit("1",10.07,311,8);
  2797. socket.emit("1",10.49,311,8);
  2798. socket.emit("1",11.51,311,8);
  2799. socket.emit("1",11.93,311,8);
  2800. }
  2801. if (a.keyCode == 99) {//defend full houses
  2802. socket.emit("1",7.86,311,1);socket.emit("1",7.86,311,1);socket.emit("1",8.06,311,1);socket.emit("1",8.26,311,1);socket.emit("1",8.46,311,1);socket.emit("1",8.66,311,1);socket.emit("1",8.86,311,1);socket.emit("1",9.06,311,1);socket.emit("1",9.26,311,1);socket.emit("1",9.46,311,1);socket.emit("1",9.66,311,1);socket.emit("1",9.86,311,1);socket.emit("1",10.28,311,1);socket.emit("1",10.70,311,1);socket.emit("1",10.90,311,1);socket.emit("1",11.10,311,1);socket.emit("1",11.30,311,1);socket.emit("1",11.72,311,1);socket.emit("1",12.14,311,1);socket.emit("1",12.34,311,1);socket.emit("1",12.54,311,1);socket.emit("1",12.74,311,1);socket.emit("1",12.94,311,1);socket.emit("1",13.14,311,1);socket.emit("1",13.34,311,1);socket.emit("1",13.54,311,1);socket.emit("1",13.74,311,1);socket.emit("1",13.94,311,1);socket.emit("1",10.07,311,1);socket.emit("1",10.49,311,1);socket.emit("1",11.51,311,1);socket.emit("1",11.93,311,1);socket.emit("1",4.8625,245,1);socket.emit("1",5.1125,245,1);socket.emit("1",5.3625,245,1);socket.emit("1",5.6125,245,1);socket.emit("1",5.8625,245,1);socket.emit("1",6.1125,245,1);socket.emit("1",6.3625,245,1);socket.emit("1",6.6125,245,1);socket.emit("1",6.8625,245,1);socket.emit("1",7.14,245,1);socket.emit("1",7.39,245,1);socket.emit("1",7.64,246,1);socket.emit("1",7.89,246,1);socket.emit("1",8.14,246,1);socket.emit("1",8.39,246,1);socket.emit("1",8.635,246,1);socket.emit("1",8.885,246,1);socket.emit("1",2.5825,245,1);socket.emit("1",2.8625,245,1);socket.emit("1",3.1125,245,1);socket.emit("1",3.3625,245,1);socket.emit("1",3.6125,245,1);socket.emit("1",3.8625,245,1);socket.emit("1",4.1125,245,1);socket.emit("1",4.3625,245,1);socket.emit("1",4.6125,245,1);socket.emit("1",4.726,190,1);socket.emit("1",5.725,190,1);socket.emit("1",2.75,190,1);socket.emit("1",3.74,190,1);socket.emit("1",5.725,190,1);socket.emit("1",2.75,190,1);socket.emit("1",6.7215,189.5,1);socket.emit("1",5.06,185,1);socket.emit("1",5.4,185,1);socket.emit("1",6.045,186,1);socket.emit("1",6.374,185,1);socket.emit("1",5.4,185,1);socket.emit("1",7.0425,188.5,1);socket.emit("1",7.365,185,1);socket.emit("1",7.712,187.45,1);socket.emit("1",8.035,188.5,1);socket.emit("1",8.36,185,1);socket.emit("1",2.425,188,1);socket.emit("1",3.075,184,1);socket.emit("1",5.06,185,1);socket.emit("1",3.42,186,1);socket.emit("1",3.74,190,1);socket.emit("1",4.06,186,1);socket.emit("1",4.39,185,1);socket.emit("1",4.725,130,1);socket.emit("1",5.245,130,1);socket.emit("1",5.715,130,1);socket.emit("1",6.185,130,1);socket.emit("1",6.655,130,1);socket.emit("1",7.13,130,1);socket.emit("1",7.6,130,1);socket.emit("1",1.85,130,1);socket.emit("1",2.32,130,1);socket.emit("1",2.79,130,1);socket.emit("1",3.265,130,1);socket.emit("1",3.735,130,1);socket.emit("1",4.205,130,1);
  2803. }
  2804. });
  2805.  
  2806.  
  2807.  
  2808. function moveSelUnits() {
  2809. if (selUnits.length) {
  2810. var a = player.x + targetDst * MathCOS(targetDir) + camX,
  2811. d = player.y + targetDst * MathSIN(targetDir) + camY;
  2812. for (var e = [], b = 0; b < selUnits.length; ++b) e.push(selUnits[b].id);
  2813. socket.emit("5", UTILS.roundToTwo(a), UTILS.roundToTwo(d), e, 0, -2)
  2814. }
  2815. }