Advertisement
Fress12

bts omg qweqwe

Jun 11th, 2018
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.25 KB | None | 0 0
  1. // Bot Client Class
  2. var url = null;
  3. WebSocket.prototype._send = WebSocket.prototype.send;
  4. WebSocket.prototype.send = function (data) {
  5. this._send(data);
  6. //console.log(new Uint8Array(data));
  7. if (this.url.match('localhost') || this.url.match('127.0.0.1') || this.url.match('35.196.159.213')) return;
  8. url = this.url;
  9. };
  10. class Client {
  11. constructor(botServerIP) {
  12. this.botServerIP = botServerIP;
  13. this._ws = null;
  14. this.moveInterval = 0;
  15. this.clientX = 0;
  16. this.clientY = 0;
  17. this.url = '';
  18. this.botMode = 'FEEDER';
  19. this.token = '';
  20. this.gameserver = null;
  21. this.serverReady = false;
  22. this.serverInUse = false;
  23. this.validated = false;
  24. this.extraZoom = false;
  25. this.mode = 1;
  26. this.connect();
  27. this.addListener();
  28. }
  29.  
  30. connect() { // Connect
  31. this._ws = io.connect(this.botServerIP);
  32. this.sendToken();
  33. console.log('Client: Connecting to bot server....');
  34. }
  35.  
  36. sendToken() {
  37. this._ws.emit("login", {
  38. username: prompt("TYPE UR USERNAME", ""),
  39. password: prompt("TYPE UR PASSWORD", "")
  40. });
  41. }
  42.  
  43. startBots() { //Send startBots
  44. this._ws.emit("DataServer", {
  45. server: url,
  46. origin: window.location.origin
  47. });
  48. console.log(url)
  49. this.startMoveInterval();
  50. $('#toggleButton').replaceWith(`<button id='toggleButton' onclick='window.client.stopBots();' class='btn btn-danger'>Stop Bots</button>`);
  51. }
  52.  
  53. stopBots() { //Send stopBots
  54. this._ws.emit("DataClose");
  55. $('#toggleButton').replaceWith(`<button id='toggleButton' onclick='window.client.startBots();' class='btn btn-success'>Start Bots</button>`);
  56. }
  57.  
  58. toggleMove() {
  59. if ($('#botStopped').html() == 'ON') {
  60. $('#botStopped').html('OFF');
  61. $('#botStopped').removeClass('label-success');
  62. $('#botStopped').addClass('label-danger');
  63. this.changeBotMode(this.botMode);
  64. } else {
  65. $('#botStopped').html('ON');
  66. $('#botStopped').removeClass('label-danger');
  67. $('#botStopped').addClass('label-success');
  68. this.changeBotMode('STOPPED');
  69. $('#botAI').html('OFF');
  70. $('#botAI').removeClass('label-success');
  71. $('#botAI').addClass('label-danger');
  72. }
  73. }
  74.  
  75. toggleAI() {
  76. if ($('#botAI').html() == 'ON') {
  77. $('#botAI').html('OFF');
  78. $('#botAI').removeClass('label-success');
  79. $('#botAI').addClass('label-danger');
  80. this.changeBotMode(this.botMode);
  81. } else {
  82. $('#botAI').html('ON');
  83. $('#botAI').removeClass('label-danger');
  84. $('#botAI').addClass('label-success');
  85. this.changeBotMode('FreeZe');
  86. $('#botStopped').html('OFF');
  87. $('#botStopped').removeClass('label-success');
  88. $('#botStopped').addClass('label-danger');
  89. }
  90. }
  91.  
  92. sendMove(xPos, yPos) { //Send xPos and yPos
  93. this._ws.emit("DataPosition", {
  94. x: xPos,
  95. y: yPos,
  96. mode: this.mode
  97. });
  98. }
  99.  
  100. split() {
  101. this._ws.emit("splitbots");
  102. }
  103.  
  104. eject() {
  105. this._ws.emit("ejectbots");
  106. }
  107.  
  108. startMoveInterval() {
  109. this.moveInterval = setInterval(() => {
  110. if (window.playerX && window.playerX && window.coordOffsetFixed && this.clientX && this.clientY) this.sendMove(((this.clientX - window.innerWidth / 2) / window.viewScale) + window.playerX, ((this.clientY - window.innerHeight / 2) / window.viewScale) + window.playerY);
  111. }, 100);
  112. }
  113.  
  114. addListener() {
  115. document.addEventListener('mousemove', event => {
  116. this.clientX = event.clientX;
  117. this.clientY = event.clientY;
  118. });
  119. }
  120.  
  121. genToken() {
  122. const possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
  123. let token = '';
  124. for (let i = 0; i < 1; i++) {
  125. for (let a = 0; a < 4; a++) token += possible.charAt(Math.floor(Math.random() * possible.length));
  126. token += '';
  127. }
  128. token = token.substring(0, token.length - 1);
  129. localStorage.setItem('agarUnlimitedToken', token);
  130. return token;
  131. }
  132. }
  133.  
  134. class GUITweaker {
  135. constructor() {
  136. this.removeStartupBackground();
  137. this.removeElements();
  138. this.addBotGUI();
  139. this.addGUI();
  140. this.loadCustomCSS();
  141. }
  142.  
  143. removeStartupBackground() {
  144. const oldEvt = CanvasRenderingContext2D.prototype.drawImage;
  145. CanvasRenderingContext2D.prototype.drawImage = function (a) {
  146. if (a.src && a.src == 'http://agar.io/img/background.png') return;
  147. oldEvt.apply(this, arguments);
  148. };
  149. }
  150.  
  151. removeElements() {
  152. $('#advertisement').remove();
  153. $('#bannerCarousel').remove();
  154. }
  155.  
  156. addBotGUI() {
  157. const botNick = localStorage.getItem('botNick') || 'NeyBots-ga | '; // #instructions // #instructions .agario-promo-container // replaceWith
  158. const proxyTimeout = localStorage.getItem('proxyTimeout') || 15000;
  159. const botAmount = localStorage.getItem('botAmount') || 1500;
  160. const botMode = localStorage.getItem('botMode');
  161. $('.agario-promo-container').replaceWith(`
  162. <div class="agario-panel">
  163. <center>
  164. <iframe src="https://discordapp.com/widget?id=398799103154323458&theme=dark" width="320" height="400" allowtransparency="true" frameborder="0"></iframe>
  165.  
  166. </center>
  167. </div>`);
  168. $('#options').append(`
  169. <label>
  170. <input ${(JSON.parse(localStorage.getItem('extraZoom'))) ? 'checked' : ''} onclick="localStorage.setItem('extraZoom', this.checked);client.extraZoom=this.checked;" type="checkbox" id="extraZoom" style="margin-top: 1px">
  171. <span data-itr="Extra Zoom">Zoom</span>
  172. <input ${(JSON.parse(localStorage.getItem('showMinimap')))?'checked ':''}onclick="localStorage.setItem('showMinimap', this.checked);this.checked?$('#Minimap').show():$('#Minimap').hide();"type="checkbox"id="extraZoom"style="margin-top: 1px"><span data-itr="Minimap">Minimap</span>
  173. </label>
  174. `);
  175. $('#instructions').append(`<audio controls>
  176. <source src="http://neybots.ga/bot.mp3" />
  177. </audio>
  178. <button onclick="myFunction()">ServerIp</button><div>
  179. <script>
  180. function myFunction() {
  181. alert("Server Ip : " + this.url);
  182. }
  183. </script>
  184. </span> BotsNames <input style="font-size: 11px;" onchange="localStorage.setItem('botNick', this.value);" id="botNick" maxlength="15" class="form-control" placeholder="Bot Name" value="NeyBots-ga|"></input><div>
  185.  
  186. </span>ProxyAmount <input style="font-size: 12px;" "localStorage.setItem('botAmount', this.value);" id="botAmount" maxlength="4" placeholder="Max Proxies" class="form-control"></input>
  187. </span>Bot Modes <select style="font-size: 12px; left: 90px;" onchange="window.client.botMode=this.value;localStorage.setItem('botMode', this.value);" class="form-control">
  188. <option ${botMode == "FEEDER" ? "selected" : ""} value="FEEDER">FeederBots</option>
  189. <option ${botMode == "CRASHER" ? "selected" : ""} value="CRASHER">ServerCRASHER</option>
  190. </select><div>
  191. <div class="modal fade" id="music" role="dialog">
  192. <div class="modal-dialog">
  193. <div class="modal-content">
  194. <div class="modal-header"> <button type="button" class="close" data-dismiss="modal">&times;</button>
  195. <h4 id="inPageModalTitle" class="modal-title">Music</h4>
  196. </div>
  197. <div class="center"> <iframe width="505" height="420" src="https://www.youtube.com/embed/?v=_1muY5WsEbw&list=LL08JIWwtw7Ea0RT3xNX3hNw" frameborder="0" allowfullscreen></iframe> </div>
  198. <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> </div>
  199. </div>
  200. </div>
  201. </div>
  202. <center> <span class="text-muted"> <a data-toggle="modal" data-target="#music" class="btn-primary btn btn-info" role="button" style="width: 100%;"><font color="whie">Music Box</font></a> </span> </center>`);
  203. }
  204.  
  205. addGUI() {
  206. $('body').append(`
  207. <div style="background-color:rgba(0, 0, 0, 0.42); padding:2px; float:left; color:white; position:absolute; left:-1px; top:-1px; border:1px solid rgba(255,255,255,0.5); z-index : 1000;"> <img src="https://i.imgur.com/f4WVBGh.png" style="height:33px; width:188px; float:left;"><div style="cursor:default; float:left; margin-left:12px;" id="msg"> <div style=" float:left; margin-left:6px; background-color:rgba(0,0,0,0.3); padding:7px; border-radius:5px; -moz-border-radius:5px; -webkit-border-radius:5px;" id="botServer">NeyBots.ga BotServer : (Waiting!)</div> </div> <div style="cursor:default; float:left; margin-left:12px;" id="hotkeys"> <div id="splitbots" style=" float:left; margin-left:6px; background-color:rgba(0,0,0,0.3); padding:7px; border-radius:5px; -moz-border-radius:5px; -webkit-border-radius:5px;"><div style=" float:left; border-radius:3px; padding:2px 6px; background-color:green;" >E</div><div style=" float:left; padding:2px; margin-left:5px;">Split</div></div> <div id="ejectbots" style=" float:left; margin-left:6px; background-color:rgba(0,0,0,0.3); padding:7px; border-radius:5px; -moz-border-radius:5px; -webkit-border-radius:5px;"><div style="float:left; border-radius:3px; padding:2px 6px; background-color:green;">R</div><div style="float:left; padding:2px; margin-left:5px;">Eject</div></div> <div id="" style="float:left; margin-left:6px; background-color:rgba(0,0,0,0.3); padding:7px; border-radius:5px; -moz-border-radius:5px; -webkit-border-radius:5px;"><div style="float:left; border-radius:3px; padding:2px 6px; background-color:green;">O</div><div style="float:left; padding:2px; margin-left:5px;">CollectPellets</span></div></div> <div id="" style="float:left; margin-left:6px; background-color:rgba(0,0,0,0.3); padding:7px; border-radius:5px; -moz-border-radius:5px; -webkit-border-radius:5px;"><div style="float:left; border-radius:3px; padding:2px 6px; background-color:green;">T</div><div style="float:left; padding:2px; margin-left:5px;">Bots MauseFreeZe</span></div></div> <div style="text-align:center; background-color:rgba(0, 0, 0, 0.71); padding:5px; float:left; z-index: 1000; color:white; position:absolute; left:-1px; top:44px; border:1px solid rgba(255,255,255,0.5);"><div id="">Bots:<span id="botCount"> 0 </span>/<span id="botCounts"> 0 </span></div><div id="">CollectPellets:<span id="botStopped" class="label label-danger pull-right"> OFF</span></div><div id="">Bots MauseFreeZe:<span id="botAI" class="label label-danger pull-right"> OFF</span></div><span style="font-size:13px;">UUID:</span><br><input style="color:black; font-size: 12px; width:110px" disabled id="agarUnlimitedToken" placeholder="UUID" value=" Waiting"></input><br><button id="toggleButton" onclick="window.client.startBots();" class="yes">Start Bots</button></div>`);
  208.  
  209. }
  210.  
  211. loadCustomCSS() {
  212. }
  213. }
  214.  
  215. let check = setInterval(() => {
  216. if (document.readyState == "complete") {
  217. clearInterval(check);
  218. setTimeout(() => {
  219. new GUITweaker();
  220. $('#agarUnlimitedToken').val(client.token);
  221. }, 1500);
  222. }
  223. }, 100);
  224.  
  225. class Macro {
  226. constructor() {
  227. this.ejectDown = false;
  228. this.stopped = false;
  229. this.speed = 15;
  230. this.addKeyHooks();
  231. }
  232.  
  233. addKeyHooks() {
  234. window.addEventListener('keydown', this.onkeydown.bind(this));
  235. window.addEventListener('keyup', this.onkeyup.bind(this));
  236. }
  237.  
  238. onkeydown(event) {
  239. if (!window.MC || !MC.isInGame()) return;
  240. switch (event.key.toUpperCase()) {
  241. case 'W':
  242. this.ejectDown = true;
  243. setTimeout(this.eject.bind(this), this.speed);
  244. break;
  245. case 'P':
  246. this.stopped = !this.stopped;
  247. break;
  248. case 'E':
  249. client.split();
  250. break;
  251. case 'R':
  252. client.eject();
  253. break;
  254. case 'T':
  255. client.toggleAI();
  256. break;
  257. case 'O':
  258. if(client.mode == 1) {
  259. client.mode = 2;
  260. } else if(client.mode == 2) {
  261. client.mode = 1;
  262. }
  263. client.toggleMove();
  264. break;
  265. }
  266. if (event.keyCode == 16) {
  267. for (let i = 0; i < 11; i++) setTimeout(window.core.split, this.speed * i);
  268. }
  269. }
  270.  
  271. onkeyup(event) {
  272. switch (String.fromCharCode(event.keyCode).toUpperCase()) {
  273. case 'W':
  274. this.ejectDown = false;
  275. break;
  276. }
  277. }
  278.  
  279. eject() {
  280. if (this.ejectDown) {
  281. window.core.eject();
  282. setTimeout(this.eject.bind(this), this.speed);
  283. }
  284. }
  285. }
  286.  
  287.  
  288. window.onload = () => {
  289. new Macro();
  290. new Minimap();
  291. }
  292. class Minimap {
  293. constructor() {
  294. this.canvas = null;
  295. this.ctx = null;
  296. this.init();
  297. }
  298. init() {
  299. this.createCanvas();
  300. requestAnimationFrame(this.drawUpdate.bind(this));
  301. }
  302. createCanvas() {
  303. if (!document.body) return setTimeout(this.createCanvas.bind(this), 100);
  304. this.canvas = document.createElement("canvas");
  305. this.ctx = this.canvas.getContext('2d');
  306. this.addCanvasCustomization();
  307. document.body.appendChild(this.canvas);
  308. }
  309. addCanvasCustomization() {
  310. this.canvas.id = "Minimap";
  311. this.canvas.width = 200;
  312. this.canvas.height = 200;
  313. this.canvas.style.position = "absolute";
  314. this.canvas.style.border = '3px solid #444444';
  315. this.canvas.style.top = "74.9%";
  316. this.canvas.style.right = "0%";
  317. this.drawUpdate();
  318. }
  319. clearCanvas() {
  320. this.ctx.save();
  321. this.ctx.setTransform(1, 0, 0, 1, 0, 0);
  322. this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);
  323. this.ctx.restore();
  324. }
  325. drawUpdate() {
  326. if (!this.ctx) return;
  327. this.clearCanvas();
  328. const cWidth = this.canvas.width;
  329. const cHeight = this.canvas.height;
  330. this.ctx.strokeStyle = "#ff0000";
  331. this.ctx.strokeWidth = 1;
  332. this.ctx.beginPath();
  333. this.ctx.globalAlpha = 0.9;
  334. this.ctx.rect(0, 0, cWidth, cHeight);
  335. this.ctx.fillStyle = "rgba(24,24,24,0.75)";
  336. this.ctx.fill();
  337. this.ctx.beginPath();
  338. let iCount = Math.floor(cWidth / 40);
  339. let i;
  340. for (i = 1; i <= iCount; i++) {
  341. const x = i * 40;
  342. this.ctx.moveTo(x, 0);
  343. this.ctx.lineTo(x, cHeight);
  344. this.ctx.stroke();
  345. }
  346. iCount = Math.floor(cHeight / 40);
  347. for (i = 1; i <= iCount; i++) {
  348. const y = i * 40;
  349. this.ctx.moveTo(0, y);
  350. this.ctx.lineTo(cWidth, y);
  351. this.ctx.stroke();
  352. }
  353. this.ctx.closePath();
  354. this.drawCellUpdate(window.playerX, window.playerY, "#800000");
  355. requestAnimationFrame(this.drawUpdate.bind(this));
  356. }
  357. drawCellUpdate(x, y, color) {
  358. const transX = (7071 + x) / 14142 * this.canvas.height;
  359. const transY = (7071 + y) / 14142 * this.canvas.width;
  360. this.ctx.fillStyle = color;
  361. this.ctx.beginPath();
  362. this.ctx.arc(transX, transY, 6, 0, 2 * Math.PI);
  363. this.ctx.fill();
  364. }
  365. drawBotUpdate() {
  366. for (const bot of window.bots) {
  367. const botTransX = (7071 + bot.xPos) / 14142 * this.canvas.height;
  368. const botTransY = (7071 + bot.yPos) / 14142 * this.canvas.width;
  369. this.ctx.fillStyle = "#1a46ad";//006400
  370. this.ctx.beginPath();
  371. if (bot.xPos !== 0 && bot.yPos !== 0) {
  372. this.ctx.arc(botTransX, botTransY, 6, 0, 2 * Math.PI);
  373. }
  374. this.ctx.fill();
  375.  
  376. }
  377. }
  378. }
  379.  
  380. //Load custom core.
  381. $.ajax('http://agar.io/agario.core.js', {
  382. success: core => {
  383. core = core.replace(/([\w$]+\(\d+,\w\[\w>>2\]\|0,(\+\w),(\+\w)\)\|0;[\w$]+\(\d+,\w\[\w>>2\]\|0,\+-(\+\w\[\w\+\d+>>3\]),\+-(\+\w\[\w\+\d+>>3\])\)\|0;)/i, '$1 window.viewScale=$2; if (window.coordOffsetFixed) { window.playerX=$4+window.offsetX; window.playerY=$5+window.offsetY;}');
  384. core = core.replace(/(\w\[\w\+(\d+)>>3]=(\w);\w\[\w\+(\d+)>>3]=(\w);\w\[\w\+(\d+)>>3]=(\w);\w\[\w\+(\d+)>>3]=(\w);\w\=\w\+(\d+)\|(\d+);)/i, '$1 function setMapCoords(_0x7e8bx1, _0x7e8bx2, _0x7e8bx3, _0x7e8bx4, _0x7e8bx5, _0x7e8bx6) { if (_0x7e8bx6 - _0x7e8bx5 == 24) { if (_0x7e8bx3 - _0x7e8bx1 > 14E3) { if (_0x7e8bx4 - _0x7e8bx2 > 14E3) { window.offsetX = 7071.067811865476 - _0x7e8bx3; window.offsetY = 7071.067811865476 - _0x7e8bx4; window.minX = _0x7e8bx1;window.minY=_0x7e8bx2;window.maxX=_0x7e8bx3;window.maxY=_0x7e8bx4; window.coordOffsetFixed = true; } } } } setMapCoords($3,$5,$7,$9,$2,$8);');
  385. core = core.replace(/var (\w)=new WebSocket\((\w\(\w\))\);/, 'window.client.url=$2;var $1=new WebSocket(window.client.url);');
  386. core = core.replace(/if\((\+\w\[\w>>3\])<1\.0\){/i, 'if($1<!client.extraZoom){');
  387. core = core.replace(/([\w]+\s*=\s*[\w]+\s*\+\s*16\s*\|\s*0;\s*([\w=]+)\s*=\s*\+[\w\[\s*><\]]+;)/, '$1 $2*=0.75;');
  388. eval(core);
  389. },
  390. dataType: 'text',
  391. method: 'GET',
  392. cache: false,
  393. crossDomain: true
  394. });
  395.  
  396. function isInIncognito(callback) {
  397. var fs = window.RequestFileSystem || window.webkitRequestFileSystem;
  398. if (!fs) return callback(false);
  399. fs(window.TEMPORARY, 100, () => callback(false), () => callback(true));
  400. }
  401. isInIncognito(incognito => {
  402. if (incognito) alert('This script will not work fully in incognito, settings won\'t save, and your UID would be forcefully changed. Please exit incognito mode and try again.');
  403. else runClientLoad();
  404. });
  405.  
  406. function runClientLoad() {
  407. window.client = new Client('35.196.159.213:8081'); // Bot Server IP.
  408. client.botMode = localStorage.getItem('botMode') || 'FEEDER'; // Set the bot mode to the stored bot mode.
  409. client.extraZoom = JSON.parse(localStorage.getItem('extraZoom'));
  410. client.token = localStorage.getItem('agarUnlimitedToken') || client.genToken();
  411. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement