您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
USEM COM SABEDORIA
// ==UserScript== // @name PODEROSOITALIAV2 // @namespace http://tampermonkey.net/ // @version 3.0 // @description USEM COM SABEDORIA // @author PODEROSOITALIA // @match http://bloble.io/* // @grant none // @icon // ==/UserScript== window.renderPlayer = function(a, d, c, b, g) {b.save();if (a.skin && 0 < a.skin && a.skin <= playerSkins && !skinSprites[a.skin]) {var e = new Image;e.onload = function() {this.readyToDraw = !0;this.onload = null;g == currentSkin && changeSkin(0);};e.src = ".././img/skins/skin_" + (a.skin - 1) + ".png";skinSprites[a.skin] = e;};a.skin && skinSprites[a.skin] && skinSprites[a.skin].readyToDraw ? (e = a.size - b.lineWidth / 4, b.lineWidth /= 2, renderCircle(d, c, a.size, b, !1, !0)) : g || (b.fillStyle = "rgba(255, 255, 255, 0)", renderCircle(d, c, a.size, b)); b.restore();}; window.ntx = function(dir, dst, uPath) {window.socket.emit("1", dir, dst, uPath)} window.resolution = 1; window.upgrInputsToIndex = {}; window.cameraSpd = 5.0; window.joinEnabled = true; window.cid = window.UTILS.getUniqueID();localStorage.setItem("cid",window.cid); window.outlineWidth = 6; window.darkColor = "#2125ff70"; window.playerColors = "#f9ff6099 #ff606099 #82ff6099 #607eff99 #60eaff99 #ff60ee99 #e360ff99 #ffaf6099 #a3ff6099 #ff609c99 #60ff8299 #cc60ff99 #c6595999 #404b7f99 #f2d95799 #c5525299 #c5525299 #498e5699 #c4515199 #c3545499 #c8575799 #c8595999 #5b74b699 #cd686899 #5c81bd99 #5bb14699 #d8c96399 #c5525299 #404b7f99 #c5525299 #c5525299 #c5525299 #c5525299 #404b7f99 #498e5699 #498e5699 #dbd24599 #ca514e99 #43427e99".split(" "); window.backgroundColor = "#000"; window.indicatorColor = "#2125ff60"; window.redColor = "#fff"; window.outerColor = "#0a0a0a"; window.lanePad = 10; window.playerSkins = 0; window.SkinBots = 0; window.playerBorderRot = undefined; /*#2 COMANDOS DE CHAT*/ enterGame = function() { socket && unitList && (showMainMenuText(randomLoadingTexts[UTILS.randInt(0, randomLoadingTexts.length - 1)]), hasStorage && localStorage.setItem("lstnmdbl", userNameInput.value), mainCanvas.focus(), grecaptcha.execute("6Ldh8e0UAAAAAFOKBv25wQ87F3EKvBzyasSbqxCE").then(function(a) { setTimeout(function() {frase();}, 1000); socket.emit("spawn", { name: ''+userNameInput.value, skin: 26 }, a)}))} function frase(){ socket.emit("ch", "")} //===================Fim===================// //base com casas e 9 gens// addEventListener('keydown', a => { a = a.keyCode; function filterUnitsUp(unitType, uPath, typeUp) { const myUnits = window.units.filter(unit => unit.owner == window.player.sid && unit.type == unitType && unit.uPath == uPath); myUnits.forEach(unitID => { socket.emit("4", unitID.id, typeUp); }); } function filterUnitsSell(unitType, uPath) { let Sell = []; const myUnits = window.units.filter(unit => unit.owner == window.player.sid && unit.type == unitType && unit.uPath == uPath); myUnits.forEach(unitID => { Sell.push(unitID.id); socket.emit("3", Sell); }); } if (a == 105){ setTimeout(function(){ gens()},1000);setTimeout(function(){ gens()},10000);setTimeout(function(){ gens()},20000);setTimeout(function(){ gens()},30000);setTimeout(function(){ gens()},50000);setTimeout(function(){ walls();},60000);setTimeout(function(){ walls()},63000);setTimeout(function(){ micro()},80000);setTimeout(function(){ micro()},95000);setTimeout(function(){ upgens()},100000);setTimeout(function(){ upgens();},130000);setTimeout(function(){ upgens();},155000);setTimeout(function(){ upgens()},160000);setTimeout(function(){ command()},170000);setTimeout(function(){ command()},180000);setTimeout(function(){ greatleadership()},185000);setTimeout(function(){ armory()},190000);setTimeout(function(){ barracks1()},195000);setTimeout(function(){ siege()},230000);setTimeout(function(){ siege()},234000);setTimeout(function(){ barracks2()},235000);setTimeout(function(){ barracks2()},240000);setTimeout(function(){ upbarracks()},250000);setTimeout(function(){ upbarracks()},255000);setTimeout(function(){ upbarracks()},260000);setTimeout(function(){ upbarracks()},270000);setTimeout(function(){ upbarracks()},280000);setTimeout(function(){ sellgens()},310000);setTimeout(function(){ base()},315000);setTimeout(function(){ sellsiege()},340000);setTimeout(function(){ centralizar()},340500);setTimeout(function(){ barracks1()},341000);setTimeout(function(){ upbarracks()},342000);setTimeout(function(){ upbarracks()},345000);setTimeout(function(){ upbarracks()},350000);setTimeout(function(){ centralizar2()},362000);setTimeout(function(){ centralizar3()},363000);setTimeout(function(){ centralizar3()},364000);setTimeout(function(){ upgens2()},365000);setTimeout(function(){ upantitank()},368000); function gens(){ socket.emit("1", 4.73, 245, 3); socket.emit("1", 5.0025, 245, 3); 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); 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); 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); 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); socket.emit("1", 10.7375, 245, 3); socket.emit("1", 5.64, 180, 3); socket.emit("1", 5.999, 180, 3); socket.emit("1", 6.51, 185, 3); socket.emit("1", 7.05, 185, 3); socket.emit("1", 7.6, 185, 3); socket.emit("1", 8.15, 185, 3); socket.emit("1", 8.675, 185, 3); socket.emit("1", 9.225, 185, 3); socket.emit("1", 9.78, 185, 3); socket.emit("1", 10.325, 185, 3); socket.emit("1", 5.36, 130, 3); socket.emit("1", 6.275, 130, 3); socket.emit("1", 6.775, 130, 3); socket.emit("1", 7.3, 130, 3); socket.emit("1", 7.85, 130, 3); socket.emit("1", 8.4, 130, 3); socket.emit("1", 8.925, 130, 3); socket.emit("1", 9.5, 130, 3); socket.emit("1", 10.05, 130, 3);socket.emit("1",-1.55, 140, 7) } function walls(){ socket.emit("1",1.57, 306, 1);socket.emit("1",1.37, 306, 1);socket.emit("1",1.77, 306, 1);socket.emit("1",2.19, 306, 1);socket.emit("1",0.95, 306.01, 1);socket.emit("1",0.75, 306, 1);socket.emit("1",0.55, 306, 1);socket.emit("1",2.39, 306, 1);socket.emit("1",2.59, 306, 1);socket.emit("1",0.13, 306, 1);socket.emit("1",3.01, 306, 1);socket.emit("1",-3.07, 306, 1);socket.emit("1",-2.87, 306, 1);socket.emit("1",-2.67, 306, 1);socket.emit("1",-2.27, 306, 1);socket.emit("1",-2.07, 306, 1);socket.emit("1",-2.47, 306, 1);socket.emit("1",-0.07, 306, 1);socket.emit("1",-0.27, 306, 1);socket.emit("1",-0.47, 306, 1);socket.emit("1",-1.87, 306, 1);socket.emit("1",-1.67, 306, 1);socket.emit("1",-1.47, 306, 1);socket.emit("1",-1.27, 306, 1);socket.emit("1",-1.07, 306, 1);socket.emit("1",-0.87, 306, 1);socket.emit("1",-0.67, 306, 1); } function base(){ socket.emit("1", -2.54, 130, 4);socket.emit("1",-1.55, 140, 7);socket.emit("1",1.57, 306, 1);socket.emit("1",1.37, 306, 1);socket.emit("1",1.77, 306, 1);socket.emit("1",2.19, 306, 1);socket.emit("1",0.95, 306.01, 1);socket.emit("1",0.75, 306, 1);socket.emit("1",0.55, 306, 1);socket.emit("1",2.39, 306, 1);socket.emit("1",2.59, 306, 1);socket.emit("1",0.13, 306, 1);socket.emit("1",3.01, 306, 1);socket.emit("1",-3.07, 306, 1);socket.emit("1",-2.87, 306, 1);socket.emit("1",-2.67, 306, 1);socket.emit("1",-2.27, 306, 1);socket.emit("1",-2.07, 306, 1);socket.emit("1",-2.47, 306, 1);socket.emit("1",-0.07, 306, 1);socket.emit("1",-0.27, 306, 1);socket.emit("1",-0.47, 306, 1);socket.emit("1",-1.87, 306, 1);socket.emit("1",-1.67, 306, 1);socket.emit("1",-1.47, 306, 1);socket.emit("1",-1.27, 306, 1);socket.emit("1",-1.07, 306, 1);socket.emit("1",-0.87, 306, 1);socket.emit("1",-0.67, 306, 1);socket.emit("1",1.16, 310, 8);socket.emit("1",1.98, 310, 8);socket.emit("1",2.8, 310, 8);socket.emit("1",-1.03, 130, 4);socket.emit("1",3.61, 245, 4);socket.emit("1",3.86, 245.01, 4);socket.emit("1",-2.17, 245.85, 4);socket.emit("1",3.08, 184, 4);socket.emit("1",3.11, 245, 4);socket.emit("1",3.36, 245, 4);socket.emit("1",4.36, 245, 4);socket.emit("1",4.86, 245, 4);socket.emit("1",4.61, 245, 4);socket.emit("1",4.39, 185, 4);socket.emit("1",5.11, 245, 4);socket.emit("1",5.36, 244.99, 4);socket.emit("1",-1.21, 184.75, 4);socket.emit("1",6.11, 245.01, 4);socket.emit("1",6.36, 245, 4);socket.emit("1",4.21, 130, 4);socket.emit("1",4.06, 186, 4);socket.emit("1",3.74, 190, 4);socket.emit("1",3.27, 130, 4);socket.emit("1",3.42, 186, 4);socket.emit("1",6.05, 186, 4);socket.emit("1",0.1, 184.35, 4);socket.emit("1",6.19, 130, 4);socket.emit("1",5.72, 130, 4);socket.emit("1",-0.88, 185.64, 4);socket.emit("1",5.73, 190, 4);socket.emit("1",5.86, 245, 4);socket.emit("1",5.61, 245, 4);socket.emit("1",6.66, 130, 4);socket.emit("1",2.79, 130, 4);socket.emit("1",2.75, 190, 4);socket.emit("1",2.86, 245.85, 4);socket.emit("1",6.61, 244.99, 4);socket.emit("1",6.72, 189.5, 4);socket.emit("1",3.74, 130, 4);socket.emit("1",0.34, 310, 8);socket.emit("1",2.43, 188, 4);socket.emit("1",2.3, 243.85, 5);socket.emit("1",7.04, 188.5, 4);socket.emit("1",0.89, 243.85, 5);socket.emit("1",0.6, 243.85, 5);socket.emit("1",2.59, 243.85, 5);socket.emit("1",2.04, 245.85, 4);socket.emit("1",1.15, 245.85, 4);socket.emit("1",1.78, 243.85, 5);socket.emit("1",1.41, 243.85, 5);socket.emit("1",2.09, 183.74, 3);socket.emit("1",1.1, 183.82, 3);socket.emit("1",2.32, 130, 4);socket.emit("1",1.84, 132, 3);socket.emit("1",1.35, 132, 3);socket.emit("1",1.59, 188.08, 3);socket.emit("1",0.86, 130, 4); } function barracks1(){ socket.emit("1",0.34, 310, 8) } function barracks2(){ socket.emit("1",1.16, 310, 8);socket.emit("1",1.98, 310, 8);socket.emit("1",2.8, 310, 8) } function greatleadership(){ filterUnitsUp(1, 9, 0) } function upbarracks(){ filterUnitsUp(2, 8, 0) } function micro(){ filterUnitsUp(3, 1, 1) } function upgens(){ filterUnitsUp(0, 3, 0) } function upgens2(){ filterUnitsUp(0, 3, 0) } function upantitank(){ filterUnitsUp(0, 5, 1) } function upgenstank(){ filterUnitsUp(0, 3, 0) } function command(){ socket.emit("4",0,0,1) } function siege(){ filterUnitsUp(2, 8, 2) } function armory(){ filterUnitsUp(0, 7, 0) } function sellgens(){ filterUnitsSell(0, 3) filterUnitsSell(0, '3,0') } function sellsiege(){ filterUnitsSell(2, '8,2') } function centralizar(){ let ty = []; for (var b = 0; b < units.length; ++b) { if (units[b].owner == player.sid && units[b].uPath == 11) { ty.push(units[b].id); } } socket.emit("5", (player.x)-1, (player.y)+1, ty, 0, -1); } function centralizar2(){ let ty = []; for (var b = 0; b < units.length; ++b) { if (units[b].owner == player.sid && units[b].uPath == 11) { ty.push(units[b].id); } } socket.emit("5", (player.x)+1, (player.y)-1, ty, 0, -1); } function centralizar3(){ let ty = []; for (var b = 0; b < units.length; ++b) { if (units[b].owner == player.sid && units[b].uPath == 11) { ty.push(units[b].id); } } socket.emit("5", (player.x)*1, (player.y)*1, ty, 0, -1); } function centralizar4(){ let ty = []; for (var b = 0; b < units.length; ++b) { if (units[b].owner == player.sid && units[b].uPath == 11) { ty.push(units[b].id); } } socket.emit("5", (player.x), (player.y), ty, 0, -1); } } if (a == 97){//full atk socket.emit("1", -2.54, 130, 4);socket.emit("1",-1.55, 140, 7);socket.emit("1",1.57, 306, 1);socket.emit("1",1.37, 306, 1);socket.emit("1",1.77, 306, 1);socket.emit("1",2.19, 306, 1);socket.emit("1",0.95, 306.01, 1);socket.emit("1",0.75, 306, 1);socket.emit("1",0.55, 306, 1);socket.emit("1",2.39, 306, 1);socket.emit("1",2.59, 306, 1);socket.emit("1",0.13, 306, 1);socket.emit("1",3.01, 306, 1);socket.emit("1",-3.07, 306, 1);socket.emit("1",-2.87, 306, 1);socket.emit("1",-2.67, 306, 1);socket.emit("1",-2.27, 306, 1);socket.emit("1",-2.07, 306, 1);socket.emit("1",-2.47, 306, 1);socket.emit("1",-0.07, 306, 1);socket.emit("1",-0.27, 306, 1);socket.emit("1",-0.47, 306, 1);socket.emit("1",-1.87, 306, 1);socket.emit("1",-1.67, 306, 1);socket.emit("1",-1.47, 306, 1);socket.emit("1",-1.27, 306, 1);socket.emit("1",-1.07, 306, 1);socket.emit("1",-0.87, 306, 1);socket.emit("1",-0.67, 306, 1);socket.emit("1",1.16, 310, 8);socket.emit("1",1.98, 310, 8);socket.emit("1",2.8, 310, 8);socket.emit("1",-1.03, 130, 4);socket.emit("1",3.61, 245, 4);socket.emit("1",3.86, 245.01, 4);socket.emit("1",-2.17, 245.85, 4);socket.emit("1",3.08, 184, 4);socket.emit("1",3.11, 245, 4);socket.emit("1",3.36, 245, 4);socket.emit("1",4.36, 245, 4);socket.emit("1",4.86, 245, 4);socket.emit("1",4.61, 245, 4);socket.emit("1",4.39, 185, 4);socket.emit("1",5.11, 245, 4);socket.emit("1",5.36, 244.99, 4);socket.emit("1",-1.21, 184.75, 4);socket.emit("1",6.11, 245.01, 4);socket.emit("1",6.36, 245, 4);socket.emit("1",4.21, 130, 4);socket.emit("1",4.06, 186, 4);socket.emit("1",3.74, 190, 4);socket.emit("1",3.27, 130, 4);socket.emit("1",3.42, 186, 4);socket.emit("1",6.05, 186, 4);socket.emit("1",0.1, 184.35, 4);socket.emit("1",6.19, 130, 4);socket.emit("1",5.72, 130, 4);socket.emit("1",-0.88, 185.64, 4);socket.emit("1",5.73, 190, 4);socket.emit("1",5.86, 245, 4);socket.emit("1",5.61, 245, 4);socket.emit("1",6.66, 130, 4);socket.emit("1",2.79, 130, 4);socket.emit("1",2.75, 190, 4);socket.emit("1",2.86, 245.85, 4);socket.emit("1",6.61, 244.99, 4);socket.emit("1",6.72, 189.5, 4);socket.emit("1",3.74, 130, 4);socket.emit("1",0.34, 310, 8);socket.emit("1",2.43, 188, 4);socket.emit("1",2.3, 243.85, 5);socket.emit("1",7.04, 188.5, 4);socket.emit("1",0.89, 243.85, 5);socket.emit("1",0.6, 243.85, 5);socket.emit("1",2.59, 243.85, 5);socket.emit("1",2.04, 245.85, 4);socket.emit("1",1.15, 245.85, 4);socket.emit("1",1.78, 243.85, 5);socket.emit("1",1.41, 243.85, 5);socket.emit("1",2.09, 183.74, 3);socket.emit("1",1.1, 183.82, 3);socket.emit("1",2.32, 130, 4);socket.emit("1",1.84, 132, 3);socket.emit("1",1.35, 132, 3);socket.emit("1",1.59, 188.08, 3);socket.emit("1",0.86, 130, 4); } }) //DEFEND// addEventListener('keydown', a => { a = a.keyCode; if (a == 88){ socket.emit("1",1.57, 306, 1);socket.emit("1",1.37, 306, 1);socket.emit("1",1.77, 306, 1);socket.emit("1",2.19, 306, 1);socket.emit("1",0.95, 306.01, 1);socket.emit("1",0.75, 306, 1);socket.emit("1",0.55, 306, 1);socket.emit("1",2.39, 306, 1);socket.emit("1",2.59, 306, 1);socket.emit("1",0.13, 306, 1);socket.emit("1",3.01, 306, 1);socket.emit("1",-3.07, 306, 1);socket.emit("1",-2.87, 306, 1);socket.emit("1",-2.67, 306, 1);socket.emit("1",-2.27, 306, 1);socket.emit("1",-2.07, 306, 1);socket.emit("1",-2.47, 306, 1);socket.emit("1",-0.07, 306, 1);socket.emit("1",-0.27, 306, 1);socket.emit("1",-0.47, 306, 1);socket.emit("1",-1.87, 306, 1);socket.emit("1",-1.67, 306, 1);socket.emit("1",-1.47, 306, 1);socket.emit("1",-1.27, 306, 1);socket.emit("1",-1.07, 306, 1);socket.emit("1",-0.87, 306, 1);socket.emit("1",-0.67, 306, 1);socket.emit("1",3.11, 245, 1);socket.emit("1",3.36, 245, 1);socket.emit("1",3.08, 184, 1);socket.emit("1",3.42, 186, 1);socket.emit("1",3.27, 130, 1);socket.emit("1",8.26, 306, 1);socket.emit("1",3.61, 245, 1);socket.emit("1",3.86, 245.01, 1);socket.emit("1",4.73, 190, 1);socket.emit("1",3.74, 190, 1);socket.emit("1",5.06, 185, 1);socket.emit("1",4.06, 186, 1);socket.emit("1",4.39, 185, 1);socket.emit("1",4.73, 130, 1);socket.emit("1",5.25, 130, 1);socket.emit("1",3.74, 130, 1);socket.emit("1",4.21, 130, 1);socket.emit("1",2.8, 306, 1);socket.emit("1",1.16, 306, 1);socket.emit("1",0.35, 306, 1);socket.emit("1",2.43, 188, 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",8.89, 246, 1);socket.emit("1",2.86, 245, 1);socket.emit("1",2.75, 190, 1);socket.emit("1",8.14, 246.01, 1);socket.emit("1",8.39, 246, 1);socket.emit("1",8.64, 246, 1);socket.emit("1",7.37, 185, 1);socket.emit("1",7.71, 187.45, 1);socket.emit("1",8.04, 188.5, 1);socket.emit("1",8.36, 185, 1);socket.emit("1",7.64, 246, 1);socket.emit("1",7.89, 246, 1);socket.emit("1",4.11, 245, 1);socket.emit("1",4.36, 245, 1);socket.emit("1",4.61, 245, 1);socket.emit("1",4.86, 245, 1);socket.emit("1",5.11, 245, 1);socket.emit("1",5.36, 245, 1);socket.emit("1",5.61, 245, 1);socket.emit("1",5.73, 190, 1);socket.emit("1",5.4, 185, 1);socket.emit("1",5.72, 129.99, 1);socket.emit("1",6.19, 130, 1);socket.emit("1",6.66, 130, 1);socket.emit("1",5.86, 245, 1);socket.emit("1",6.11, 245, 1);socket.emit("1",6.36, 245, 1);socket.emit("1",6.61, 244.99, 1);socket.emit("1",6.05, 186, 1);socket.emit("1",6.37, 185, 1);socket.emit("1",6.86, 245.01, 1);socket.emit("1",7.14, 245, 1);socket.emit("1",7.39, 245, 1);socket.emit("1",6.72, 189.5, 1);socket.emit("1",7.04, 188.5, 1); } }) //gens// addEventListener('keydown', a => { a = a.keyCode; if (a == 96){ socket.emit("1",1.57, 243.85, 3);socket.emit("1",2.44, 196.8, 3);socket.emit("1",2.24, 243.86, 3);socket.emit("1",-2.78, 194.68, 3);socket.emit("1",1.97, 243.85, 3);socket.emit("1",2.1, 185.59, 3);socket.emit("1",1.87, 132, 3);socket.emit("1",1.26, 132, 3);socket.emit("1",1.38, 194.13, 3);socket.emit("1",1.76, 194.06, 3);socket.emit("1",-2.44, 185.75, 3);socket.emit("1",-2.59, 243.85, 3);socket.emit("1",3.06, 132, 3);socket.emit("1",2.37, 132, 3);socket.emit("1",2.77, 180.64, 3);socket.emit("1",2.91, 243.85, 3);socket.emit("1",2.64, 243.85, 3);socket.emit("1",3.11, 196.06, 3);socket.emit("1",-2.97, 243.85, 3);socket.emit("1",-2.69, 132, 3);socket.emit("1",-2.31, 243.85, 3);socket.emit("1",0.76, 132, 3);socket.emit("1",0.36, 180.1, 3);socket.emit("1",0.03, 197.16, 3);socket.emit("1",-0.44, 132, 3);socket.emit("1",0.08, 132, 3);socket.emit("1",0.23, 243.85, 3);socket.emit("1",0.5, 243.85, 3);socket.emit("1",0.7, 196.11, 3);socket.emit("1",0.9, 243.85, 3);socket.emit("1",1.04, 186.08, 3);socket.emit("1",1.17, 243.86, 3);socket.emit("1",-0.17, 243.85, 3);socket.emit("1",-0.36, 194.93, 3);socket.emit("1",-0.7, 183.73, 3);socket.emit("1",-0.55, 243.85, 3);socket.emit("1",-0.82, 243.85, 3);socket.emit("1",1.16, 310, 8);socket.emit("1",1.98, 310, 8);socket.emit("1",0.34, 310, 8);socket.emit("1",2.8, 310, 8);socket.emit("1",1.57, 306, 1);socket.emit("1",1.37, 306, 1);socket.emit("1",1.77, 306, 1);socket.emit("1",2.19, 306, 1);socket.emit("1",0.95, 306.01, 1);socket.emit("1",0.75, 306, 1);socket.emit("1",0.55, 306, 1);socket.emit("1",2.39, 306, 1);socket.emit("1",2.59, 306, 1);socket.emit("1",0.13, 306, 1);socket.emit("1",3.01, 306, 1);socket.emit("1",-3.07, 306, 1);socket.emit("1",-2.87, 306, 1);socket.emit("1",-2.67, 306, 1);socket.emit("1",-2.27, 306, 1);socket.emit("1",-2.07, 306, 1);socket.emit("1",-2.47, 306, 1);socket.emit("1",-0.07, 306, 1);socket.emit("1",-0.27, 306, 1);socket.emit("1",-0.47, 306, 1);socket.emit("1",-1.87, 306, 1);socket.emit("1",-1.67, 306, 1);socket.emit("1",-1.47, 306, 1);socket.emit("1",-1.27, 306, 1);socket.emit("1",-1.07, 306, 1);socket.emit("1",-0.87, 306, 1);socket.emit("1",-0.67, 306, 1);socket.emit("1",-1.55, 140, 7);socket.emit("1",-2.19, 132, 3);socket.emit("1",-0.95, 132, 3);socket.emit("1",-2.08, 193.61, 3);socket.emit("1",-1.05, 195.4, 3);socket.emit("1",-1.56, 243.85, 3);socket.emit("1",-1.27, 243.85, 3);socket.emit("1",-1.85, 243.85, 3); } }) addEventListener('keydown', a => { a = a.keyCode; if (a == 90) {//Commander const myUnits = units.filter(unit => unit.owner == player.sid && unit.type == 0 && unit.uPath == 3); myUnits.forEach(unit => { socket.emit("4", unit.id, 0) }); } }) addEventListener('keydown', a => { a = a.keyCode; if (a == 121) {//Sell gens const my = {}; let Sell = []; my.SellWalls = window.units.filter(unit => unit.owner == window.player.sid && unit.type == 0 && unit.uPath == 3 || unit.uPath == '3,0') my.SellWalls.forEach(gensID => {Sell.push(gensID.id);window.socket.emit("3",Sell)}) } }) addEventListener('keydown', a => { a = a.keyCode; if (a == 189) {//Sell house const my = {}; let Sell = []; my.SellHouse = window.units.filter(unit => unit.owner == window.player.sid && unit.type == 0 && unit.uPath == 4) my.SellHouse.forEach(houseID => {Sell.push(houseID.id);window.socket.emit("3",Sell)}) } }) addEventListener('keydown', a => { a = a.keyCode; if (a == 103) {//Up Barrack const my = {}; my.UPbarracks = window.units.filter(unit => unit.owner == window.player.sid && unit.type == 2 && unit.uPath == 8) my.UPbarracks.forEach(barracksID => {window.socket.emit("4",barracksID.id,0)}) } }) addEventListener('keydown', a => { a = a.keyCode; if (a == 190){ 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) } }) addEventListener('keydown', a => { a = a.keyCode; if (a == 90) {//Commander window.socket.emit("4",0,0,1) window.selUnits = []; window.units.every((unit) => { if (unit.owner === window.player.sid && unit.type === 1) { if (!unit.info) unit.info = window.getUnitFromPath(unit.uPath); if (unit.info.name === 'Commander') { window.selUnits.push(unit); return false; }} return true; }); window.selUnitType = "Unit"; } }) addEventListener('keydown', a => { a = a.keyCode; if (a == 81) {//Soldiers window.selUnits = []; window.units.forEach((unit) => { if (unit.owner === window.player.sid && unit.type === 1) { if (!unit.info) unit.info = window.getUnitFromPath(unit.uPath); if (unit.info.name === 'Soldier') { window.selUnits.push(unit); return false; }} return true; }); window.selUnitType = "Unit"; } }) addEventListener('keydown', a => { a = a.keyCode; if(a == 226) {//Sell Walls const my = {}; let Sell = []; my.SellWalls = window.units.filter(unit => unit.owner == window.player.sid && unit.type == 3 && unit.uPath == 1) my.SellWalls.forEach(wallsID => {Sell.push(wallsID.id);window.socket.emit("3",Sell)}) } }) addEventListener('keydown', a => { a = a.keyCode; if (a == 110) {//Centralizador for (var e = [], b = 0; b < Math.floor(window.selUnits.length-0); ++b) e.push(window.selUnits[b].id);window.socket.emit("5", (window.player.x)-1, (window.player.y)+1, e, 0, -1); for (e = [], b = 0; b < Math.floor(window.selUnits.length-0); ++b) e.push(window.selUnits[b].id);window.socket.emit("5", (window.player.x)+1, (window.player.y)-1, e, 0, -1); for (e = [], b = 0; b < Math.floor(window.selUnits.length-0); ++b) e.push(window.selUnits[b].id);window.socket.emit("5", (window.player.x)*1, (window.player.y)*1, e, 0, -1); for (e = [], b = 0; b < Math.floor(window.selUnits.length-0); ++b) e.push(window.selUnits[b].id);window.socket.emit("5", (window.player.x), (window.player.y), e, 0, -1); } }) window.share.getUnitList = function() { return [{ name: "Soldier", shape: "circle", desc: "Expendable and perfect for rushing the enemy", typeName: "Unit", limit: 4, reward: 3, notUser: true, uPath: [0], space: 2, type: 1, size: 17, speed: 0.18, health: 30, dmg: 10 }, { name: "Wall", shape: "circle", desc: "Blocks incoming units and projectiles", typeName: "Tower", uPath: [1], type: 3, size: 30, cost: 20, health: 100, dmg: 50, upgrades: [{ name: "Boulder", shape: "hexagon", desc: "Strong barrier that blocks incoming units", typeName: "Tower", uPath: [1, 0], type: 3, size: 30, cost: 60, health: 150, dmg: 50, upgrades: [{ name: "Spikes", shape: "spike", desc: "Strong spike that blocks incoming units", typeName: "Tower", uPath: [1, 0, 0], type: 3, size: 30, cost: 200, health: 200, dmg: 100 }] }, { name: "Micro Generator", shape: "circle", desc: "Generates power over time", typeName: "Tower", uPath: [1, 1], type: 3, size: 30, iSize: 0.55, cost: 30, health: 50, dmg: 10, pts: 0.5 }] }, { name: "Simple Turret", shape: "circle", desc: "Shoots incoming enemy units", typeName: "Tower", uPath: [2], type: 0, size: 29, cost: 25, turretIndex: 1, range: 180, reload: 800, health: 20, dmg: 20, upgrades: [{ name: "Rapid Turret", shape: "circle", desc: "Shoots incoming units at faster rate", typeName: "Tower", uPath: [2, 0], type: 0, size: 30, cost: 60, turretIndex: 2, range: 180, reload: 400, health: 20, dmg: 20, upgrades: [{ name: "Gatlin Turret", shape: "circle", desc: "Rapidly shoots incoming units at close range", typeName: "Tower", uPath: [2, 0, 0], type: 0, size: 30, cost: 100, turretIndex: 7, range: 180, reload: 140, health: 20, dmg: 15 }] }, { name: "Ranged Turret", shape: "circle", desc: "Turret with higher range and damage", typeName: "Tower", uPath: [2, 1], type: 0, size: 30, cost: 60, turretIndex: 3, range: 240, reload: 800, health: 30, dmg: 30, upgrades: [{ name: "Spotter Turret", shape: "circle", desc: "Shoots at very high range and reveals cloaked units", typeName: "Tower", seeCloak: true, uPath: [2, 1, 0], type: 0, size: 30, cost: 100, turretIndex: 10, range: 290, reload: 800, health: 30, dmg: 30 }] }] }, { name: "Generator", shape: "hexagon", desc: "Generates power over time", typeName: "Tower", uPath: [3], type: 0, size: 32, iSize: 0.55, cost: 50, health: 50, dmg: 10, pts: 1, upgrades: [{ name: "Power Plant", shape: "octagon", desc: "Generates power at a faster rate", typeName: "Tower", uPath: [3, 0], type: 0, size: 32, iSize: 0.6, cost: 100, health: 80, dmg: 10, pts: 1.5 }] }, { name: "House", shape: "pentagon", desc: "Increases unit limit", typeName: "Tower", uPath: [4], type: 0, size: 30, iSize: 0.3, cost: 60, health: 40, dmg: 10, lmt: [0, 3] }, { name: "Sniper Turret", shape: "circle", desc: "Slower firerate but larger range and damage", typeName: "Tower", uPath: [5], type: 0, size: 32, cost: 80, turretIndex: 4, range: 240, reload: 2000, health: 30, tDmg: 50, dmg: 30, upgrades: [{ name: "Semi-Auto Sniper", shape: "circle", desc: "Fast firerate sniper turret", typeName: "Tower", uPath: [5, 0], type: 0, size: 32, cost: 180, turretIndex: 5, range: 240, reload: 1000, health: 60, tDmg: 50, dmg: 30 }, { name: "Anti Tank Gun", shape: "circle", desc: "High damage turret with very slow firerate", typeName: "Tower", target: 1, uPath: [5, 1], type: 0, size: 32, cost: 300, turretIndex: 6, range: 280, reload: 4500, health: 60, tDmg: 250, dmg: 30 }] }, { name: "Tank", shape: "square", desc: "More powerful unit but moves slower", typeName: "Unit", group: 0, reward: 100, notUser: true, uPath: [6], space: 15, type: 1, size: 31, speed: 0.05, health: 250, dmg: 50 }, { name: "Armory", shape: "circle", desc: "Provides improvements for your army", typeName: "Tower", uPath: [7], limit: 1, type: 0, size: 40, renderIndex: 3, cost: 100, health: 90, dmg: 30, upgrades: [{ name: "Power Armor", desc: "Increases soldier armor", powerup: true, uPath: [7, 0], cost: 500, uVals: [0, 'health', 20, 'renderIndex', 4] }, { name: "Booster Engines", desc: "Increases tank movement speed", powerup: true, uPath: [7, 1], cost: 600, uVals: [6, 'speed', 0.04, 'renderIndex', 5] }, { name: "Panzer Cannons", desc: "Adds cannons to tank units", powerup: true, uPath: [7, 2], cost: 1000, uVals: [6, 'turretIndex', 8, 'tDmg', 10, 'reload', 900, 'range', 200, 'shoot', true, 'target', 1] }, { name: "Cloaking Device", desc: "Hides tanks from enemy towers", powerup: true, uPath: [7, 3], cost: 2000, uVals: [6, 'cloak', 1, 'canCloak', 1] }] }, { name: "Barracks", shape: "square", desc: "Produces soldiers over time", typeName: "Tower", uPath: [8], limit: 4, type: 2, size: 34, iSize: 0.55, cost: 150, reload: 3500, unitSpawn: 0, health: 60, dmg: 30, upgrades: [{ name: "Greater Barracks", shape: "square", desc: "Produces soldiers more rapidly", typeName: "Tower", uPath: [8, 0], type: 2, size: 34, renderIndex: 1, cost: 500, reload: 2500, unitSpawn: 0, health: 80, dmg: 40 }, { name: "Tank Factory", shape: "square", desc: "Slowly produces tanks over time", typeName: "Tower", uPath: [8, 1], type: 2, size: 35, range: 70, renderIndex: 2, cost: 2000, reload: 10000, unitSpawn: 6, health: 140, dmg: 50, upgrades: [{ name: "Blitz Factory", shape: "square", desc: "Produces Tanks at a Faster rate", typeName: "Tower", uPath: [8, 1, 0], type: 2, size: 35, range: 70, renderIndex: 2, cost: 5000, reload: 6000, unitSpawn: 6, health: 180, dmg: 50 }] }, { name: "Siege Factory", shape: "square", desc: "Produces siege tanks over time", typeName: "Tower", uPath: [8, 2], type: 2, size: 35, range: 70, renderIndex: 8, cost: 3000, reload: 20000, unitSpawn: 11, health: 200, dmg: 100 }] }, { name: "Commander", shape: "star", hero: true, desc: "Powerful commander unit", typeName: "Unit", reward: 200, notUser: true, uPath: [9], limit: 1, type: 1, size: 32, speed: 0.16, health: 700, dmg: 100, tDmg: 30, turretIndex: 9, reload: 600, range: 160, target: 1, upgrades: [{ name: "Great Leadership", desc: "Increases population cap", powerup: true, removeOthers: true, uPath: [9, 0], cost: 500, lmt: [0, 10] }] }, { name: "Tree", desc: "Can be used for cover", typeName: "Nature", layer: 1, uPath: [10], type: 4, notUser: true, dontUpdate: true, size: 90, renderIndex: 7 }, { name: "Siege Ram", shape: "circle", desc: "Very powerful and slow siege tank", typeName: "Unit", group: 0, reward: 300, notUser: true, uPath: [11], space: 40, type: 1, size: 30, iSize: 0.5, speed: 0.015, health: 1500, dmg: 100 }]; } updatePath = function(a, d) { if (a.paths[1]) { mainContext.save(); a.dir = a.paths[0]; var c = a.paths[1], user = users.find(u => u.sid === a.owner); c -= d; 0 < c ? (a.x += d * MathCOS(a.dir), a.y += d * MathSIN(a.dir)) : (c *= -1, a.x += a.paths[1] * MathCOS(a.dir), a.y += a.paths[1] * MathSIN(a.dir), a.startTime += a.paths[1] / a.speed, a.paths.splice(0, 2), updatePath(a, c)); mainContext.lineWidth = 2; mainContext.globalAlpha = 5; var x = a.x - ((player.x || 0) - maxScreenWidth / 2 + camX), y = a.y - ((player.y || 0) - maxScreenHeight / 2 + camY); renderLine(x, y, x + c * MathCOS(a.dir), y + c * MathSIN(a.dir), mainContext, user && playerColors[user.color]); a.lastX = a.x; a.lastY = a.y; mainContext.restore(); } } renderLine = function(sX, sY, fX, fY, c, clr, sW) { c.beginPath(); c.moveTo(sX, sY); c.lineTo(fX, fY); c.strokeStyle = clr || '#eee8'; c.stroke(); c.closePath(); } addEventListener("keydown",function(a){if(document.activeElement == mainCanvas && selUnits.length){if(a.key=="/"){effect700();}}}); var rot = 0.1; function effect700(){var radiuslenght = 700;var radius = radiuslenght;var x = player.x+targetDst* MathCOS(targetDir)+camX;var y = player.y+targetDst*MathSIN(targetDir)+camY;var interval = (Math.PI*2)/selUnits.length;rot+=0.1; for(let i=0;i<selUnits.length;i++){socket.emit("5",x+(Math.cos(interval*i+rot)*radius),y+(Math.sin(interval*i+rot)*radius),[selUnits[i].id],0,0); }}; var chatkaka = document.createElement("style") addEventListener('keydown', a => { a = a.keyCode; if (a === 69) {/*Commander e soldiers*/ selUnits = []; units.forEach((unit) => { if (unit.owner === player.sid && unit.type === 1) { if (!unit.info) unit.info = getUnitFromPath(unit.uPath); unit.info.name !== 'Siege Ram' && selUnits.push(unit) } }); selUnitType = "Unit"; } }) window.ntx = function(dir, dst, uPath) {window.socket.emit("1", dir, dst, uPath)} window.resolution = 1; window.upgrInputsToIndex = {}; window.cameraSpd = 2.0; window.joinEnabled = true; window.cid = window.UTILS.getUniqueID();localStorage.setItem("cid",window.cid); window.outlineWidth = 6; // Bot // window.Bot=function(){ var bots = prompt("quantidade de bot") for (let i = 0; i < bots; i++) { window.open("http://bloble.io/?l="+partyKey) }} // Hotbar // window.UIList = window.UIList || []; window.initFuncs = window.initFuncs || []; window.statusItems = window.statusItems || []; window.UIList.push({ level:0,x:3,html:'<div onclick=Bot()>BotGuia</div>'},{ }) window.makeUI = function () { if (window.hasMadeUI) return; window.hasMadeUI = true; window.statusItems.sort(function (a, b) {return a.order - b.order;}) var levels = []; window.UIList.forEach((item) => { if (!levels[item.level]) levels[item.level] = []; levels[item.level].push(item)}) levels = levels.filter((a) => {if (a) {a.sort(function (a, b) {return a.x - b.x;}) return true;} else {return false;}}) var headAppend = document.getElementsByTagName("head")[0],style = document.createElement("div"); var toast = document.createElement('div');toast.id = "snackbar"; var css = document.createElement('div'); var height = levels.length * (14 + 19) + (levels.length - 1) * 7 + 23; style.innerHTML = "<style>\n\ #noobscriptUI, #noobscriptUI > div > div {\n\ background-color: rgba(139,0,139, 0.2);\n\ margin-left: 1px;\n\ border-radius:10px;\n\ pointer-events:all\n\ }\n\ #noobscriptUI {\n\ top: -" + (height + 12) + "px;\n\ transition: 1s;\n\ margin-left:10px;\n\ position:absolute;\n\ padding-left:25px;\n\ margin-top:9px;\n\ padding-top:15px;\n\ width:500px;\n\ height: " + height + "px;\n\ font-family:arial;\n\ left:24%\n\ }\n\ #noobscriptUI:hover{\n\ top:0px\n\ }\n\ #noobscriptUI > div > div {\n\ color:#fff;\n\ padding:7px;\n\ height:19px;\n\ display:inline-block;\n\ background-color: rgba(139,0,139, 0.2)\n\ cursor:pointer;\n\ font-size:20px\n\ }\n\ </style>" headAppend.appendChild(style);headAppend.appendChild(css); var contAppend = document.getElementById("gameUiContainer"),menuA = document.createElement("div"); var code = ['<div id="noobscriptUI">\n']; levels.forEach((items, i) => { code.push(i === 0 ? ' <div>\n' : ' <div style="margin-top:7px;">\n'); items.forEach((el) => { code.push(' ' + el.html + '\n');}) code.push(' </div>\n');}) code.push(' <div id="confinfo" style="margin-top:4px; color: white; text-align: center; font-size: 10px; white-space:pre"></div>') code.push('</div>'); menuA.innerHTML = code.join(""); contAppend.insertBefore(menuA, contAppend.firstChild) contAppend.appendChild(toast)} setTimeout(() => {window.makeUI();}, 1000); playerSkins = 0;cid = UTILS.getUniqueID();localStorage.setItem("cid",cid);upgrInputsToInde function Troops1() {selUnits = []; units.forEach((unit) => {if (unit.owner === player.sid && unit.type === 1 && unit.id%2 === 0) {if (!unit.info) unit.info = getUnitFromPath(unit.uPath);if (unit.info.name === 'Soldier') { selUnits.push(unit);return false; } } return true; });selUnitType = "Unit"; } function Troops2() {selUnits = []; units.forEach((unit) => {if (unit.owner === player.sid && unit.type === 1 && unit.id%2 !== 0) {if (!unit.info) unit.info = getUnitFromPath(unit.uPath);if (unit.info.name === 'Soldier') { selUnits.push(unit);return false; } } return true; });selUnitType = "Unit"; } addEventListener("keydown", function(a){ a = a.keyCode ? a.keyCode : a.which; if(a === 49){Troops1()} if(a === 50){Troops2()} })