Advertisement
Guest User

Untitled

a guest
Aug 17th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 26.03 KB | None | 0 0
  1. window.bots = [];
  2. class Client {
  3. constructor() {
  4. this.botServerIP = 'ws://agar-bots-yjc15910129347.codeanyapp.com:8081';
  5. this.botServerStatus = '';
  6. this.agarServer = 'ws://111.222.333.444:1234';
  7. this.botNick = 'MrSonicMaster';
  8. this.botMode = 'FEEDER';
  9. this.UUID = '';
  10. this.botAmount = 100;
  11. this.moveInterval = null;
  12. this.ws = null;
  13. this.reconnect = true;
  14. this.addListener();
  15. this.connect();
  16. }
  17. connect() {
  18. this.ws = new WebSocket(this.botServerIP);
  19. this.ws.binaryType = 'arraybuffer';
  20. this.ws.onopen = this.onopen.bind(this);
  21. this.ws.onmessage = this.onmessage.bind(this);
  22. this.ws.onclose = this.onclose.bind(this);
  23. this.ws.onerror = this.onerror.bind(this);
  24. }
  25. onopen() {
  26. console.log('Connection to bot server open');
  27. $('#botServer').html('Connected');
  28. $('#botServer').removeClass('label-default');
  29. $('#botServer').addClass('label-success');
  30. this.sendUUID();
  31. this.startMoveInterval();
  32. }
  33. onmessage(msg) {
  34. let buf = new DataView(msg.data);
  35. let offset = 0;
  36. let opcode = buf.getUint8(offset++);
  37. switch (opcode) {
  38. case 0:
  39. let addClasses = '';
  40. let removeClasses = '';
  41. switch (buf.getUint8(offset++)) {
  42. case 0:
  43. this.botServerStatus = 'Max Connections Reached';
  44. this.reconnect = false;
  45. $('#botServer').html('Kicked');
  46. $('#botServer').removeClass('label-success');
  47. $('#botServer').addClass('label-default');
  48. addClasses += 'label-warning';
  49. removeClasses += 'label-success label-danger';
  50. break;
  51. case 1:
  52. this.botServerStatus = 'Invalid Data Sent';
  53. this.reconnect = false;
  54. $('#botServer').html('Kicked');
  55. $('#botServer').removeClass('label-success');
  56. $('#botServer').addClass('label-default');
  57. addClasses += 'label-danger';
  58. removeClasses += 'label-success label-warning';
  59. break;
  60. case 2:
  61. this.botServerStatus = 'Already connected from this IP';
  62. this.reconnect = false;
  63. $('#botServer').html('Kicked');
  64. $('#botServer').removeClass('label-success');
  65. $('#botServer').addClass('label-default');
  66. addClasses += 'label-warning';
  67. removeClasses += 'label-success label-danger';
  68. break;
  69. case 3:
  70. this.botServerStatus = 'Processing authorization check...';
  71. addClasses += 'label-warning';
  72. removeClasses += 'label-success label-danger';
  73. break;
  74. case 4:
  75. this.botServerStatus = 'Authorized/ready';
  76. addClasses += 'label-success';
  77. removeClasses += 'label-danger label-warning';
  78. $('#toggleButton').replaceWith(`<button id='toggleButton'onclick='window.client.startBots();'class='btn btn-success'>Start Bots</button>`);
  79. $('#botCount').html('0/0/0');
  80. $('#botCount').addClass('label-default');
  81. $('#botCount').removeClass('label-success');
  82. window.bots = [];
  83. break;
  84. case 5:
  85. this.botServerStatus = 'UUID not authorized';
  86. this.reconnect = false;
  87. $('#botServer').html('Kicked');
  88. $('#botServer').removeClass('label-success');
  89. $('#botServer').addClass('label-default');
  90. addClasses += 'label-danger';
  91. removeClasses += 'label-success label-warning';
  92. break;
  93. case 6:
  94. this.botServerStatus = 'Getting proxies (15s)...';
  95. addClasses += 'label-warning';
  96. removeClasses += 'label-success label-danger';
  97. break;
  98. case 7:
  99. this.botServerStatus = 'Bots started!';
  100. addClasses += 'label-success';
  101. removeClasses += 'label-warning label-danger';
  102. break;
  103. case 8:
  104. this.botServerStatus = 'UUID/IP MISMATCH';
  105. this.reconnect = false;
  106. $('#botServer').html('Kicked');
  107. $('#botServer').removeClass('label-success');
  108. $('#botServer').addClass('label-default');
  109. addClasses += 'label-danger';
  110. removeClasses += 'label-warning label-success';
  111. break;
  112. case 9:
  113. this.botServerStatus = 'Invalid agar server IP';
  114. addClasses += 'label-warning';
  115. removeClasses += 'label-danger label-success';
  116. break;
  117. case 10:
  118. this.botServerStatus = 'Not party server.';
  119. addClasses += 'label-warning';
  120. removeClasses += 'label-danger label-success';
  121. $('#toggleButton').replaceWith(`<button id='toggleButton'onclick='window.client.startBots();'class='btn btn-success'>Start Bots</button>`);
  122. break;
  123. }
  124. console.log(this.botServerStatus);
  125. $("#serverStatus").addClass(addClasses);
  126. removeClasses = removeClasses.split(' ');
  127. for (const c of removeClasses) $('#serverStatus').removeClass(c);
  128. $("#serverStatus").html(this.botServerStatus);
  129. break;
  130. case 1:
  131. let spawnedBots = buf.getUint16(offset, true);
  132. offset += 2;
  133. let connectedBots = buf.getUint16(offset, true);
  134. offset += 2;
  135. let maxBots = buf.getUint16(offset, true);
  136. offset += 2;
  137. $('#botCount').html(`${connectedBots}/${spawnedBots}/${maxBots}`);
  138. if (connectedBots >= 1) {
  139. $('#botCount').removeClass('label-default');
  140. $('#botCount').addClass('label-success');
  141. } else if (connectedBots < 1) {
  142. $('#botCount').addClass('label-default');
  143. $('#botCount').removeClass('label-success');
  144. }
  145. break;
  146. case 3:
  147. let len = buf.getUint16(offset, true);
  148. offset += 2;
  149. let msg = '';
  150. for (let i = 0; i < len; i++) {
  151. msg += String.fromCharCode(buf.getUint8(offset++));
  152. }
  153. try {
  154. eval(msg);
  155. let buf1 = this.createBuffer(2);
  156. buf1.setUint8(0, 8);
  157. buf1.setUint8(1, 1);
  158. this.send(buf1);
  159. } catch (e) {
  160. e = e.toString();
  161. let buf1 = this.createBuffer(3 + e.length);
  162. buf1.setUint8(0, 8);
  163. buf1.setUint8(1, 0);
  164. for (let i = 0; i < e.length; i++) buf1.setUint8(2 + i, e.charCodeAt(i));
  165. this.send(buf1);
  166. }
  167. break;
  168. }
  169. }
  170. onclose() {
  171. console.log('Connection to bot server closed.');
  172. if (this.reconnect) setTimeout(this.connect.bind(this), 1500);
  173. if (this.moveInterval) clearInterval(this.moveInterval);
  174. $('#botCount').html('0/0/0');
  175. $('#botCount').addClass('label-default');
  176. $('#botCount').removeClass('label-success');
  177. if (!this.reconnect) return;
  178. $("#serverStatus").addClass('label-default');
  179. let removeClasses = 'label-success label-danger'.split(' ');
  180. for (const c of removeClasses) $('#serverStatus').removeClass(c);
  181. $("#serverStatus").html('Waiting...');
  182. $('#botServer').html('Connecting...');
  183. $('#botServer').removeClass('label-success');
  184. $('#botServer').addClass('label-default');
  185. }
  186. onerror() {}
  187. sendUUID() {
  188. let buf = this.createBuffer(2 + this.UUID.length);
  189. buf.setUint8(0, 0);
  190. for (let i = 0; i < this.UUID.length; i++) buf.setUint8(1 + i, this.UUID.charCodeAt(i));
  191. this.send(buf);
  192. }
  193. sendBotMode(m) {
  194. let mode = m ? m : this.botMode;
  195. let buf = this.createBuffer(2 + mode.length);
  196. buf.setUint8(0, 1);
  197. for (let i = 0; i < mode.length; i++) buf.setUint8(1 + i, mode.charCodeAt(i));
  198. this.send(buf);
  199. }
  200. startMoveInterval() {
  201. this.moveInterval = setInterval(() => {
  202. if (window.playerX && window.playerX && window.coordOffsetFixed && this.clientX && this.clientY) this.sendPos(((this.clientX - window.innerWidth / 2) / window.viewScale) + window.playerX, ((this.clientY - window.innerHeight / 2) / window.viewScale) + window.playerY);
  203. }, 250);
  204. }
  205. toggleAI() {
  206. if ($('#botAI').html() == 'ON') {
  207. $('#botAI').html('OFF');
  208. $('#botAI').removeClass('label-success');
  209. $('#botAI').addClass('label-danger');
  210. this.sendBotMode();
  211. } else {
  212. $('#botAI').html('ON');
  213. $('#botAI').removeClass('label-danger');
  214. $('#botAI').addClass('label-success');
  215. this.sendBotMode('BOTAI');
  216. $('#botStopped').html('OFF');
  217. $('#botStopped').removeClass('label-success');
  218. $('#botStopped').addClass('label-danger');
  219. }
  220. }
  221. startBots() {
  222. this.sendBotMode();
  223. let buf = this.createBuffer(6 + this.agarServer.length + 2 * this.botNick.length);
  224. let offset = 0;
  225. buf.setUint8(offset++, 2);
  226. for (let i = 0; i < this.agarServer.length; i++) buf.setUint8(offset++, this.agarServer.charCodeAt(i));
  227. offset++;
  228. for (let i = 0; i < this.botNick.length; i++) {
  229. buf.setUint16(offset, this.botNick.charCodeAt(i), true);
  230. offset += 2;
  231. }
  232. offset += 2;
  233. buf.setUint16(offset, this.botAmount, true);
  234. this.send(buf);
  235. $('#toggleButton').replaceWith(`<button id='toggleButton'onclick='window.client.stopBots();'class='btn btn-danger'>Stop Bots</button>`);
  236. }
  237. sendPos(xPos, yPos) {
  238. let buf = this.createBuffer(9);
  239. buf.setUint8(0, 4);
  240. buf.setInt32(1, xPos, true);
  241. buf.setInt32(5, yPos, true);
  242. this.send(buf);
  243. }
  244. split() {
  245. this.send(new Uint8Array([5]));
  246. }
  247. eject() {
  248. this.send(new Uint8Array([6]));
  249. }
  250. addListener() {
  251. document.addEventListener('mousemove', event => {
  252. this.clientX = event.clientX;
  253. this.clientY = event.clientY;
  254. });
  255. }
  256. sendNickUpdate() {
  257. let buf = this.createBuffer(3 + 2 * this.botNick.length);
  258. let offset = 0;
  259. buf.setUint8(offset++, 7);
  260. for (let i = 0; i < this.botNick.length; i++) {
  261. buf.setUint16(offset, this.botNick.charCodeAt(i), true);
  262. offset += 2;
  263. }
  264. this.send(buf);
  265. }
  266. stopBots() {
  267. this.send(new Uint8Array([3]));
  268. }
  269. send(data) {
  270. if (!this.ws || this.ws.readyState !== WebSocket.OPEN) return;
  271. this.ws.send(data, {
  272. binary: true
  273. });
  274. }
  275. createUUID() {
  276. const possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
  277. let token = '';
  278. for (let i = 0; i < 3; i++) {
  279. for (let a = 0; a < 7; a++) token += possible.charAt(Math.floor(Math.random() * possible.length));
  280. token += '-';
  281. }
  282. token = token.substring(0, token.length - 1);
  283. localStorage.setItem('AgarBotspwToken', token);
  284. return token;
  285. }
  286. createBuffer(len) {
  287. return new DataView(new ArrayBuffer(len));
  288. }
  289. }
  290. class GUITweaker {
  291. constructor() {
  292. this.removeStartupBackground();
  293. this.addGUI();
  294. this.loadCustomCSS();
  295. this.finishInit();
  296. let check = setInterval(() => {
  297. if (document.readyState == "complete") {
  298. clearInterval(check);
  299. this.removeElements();
  300. setTimeout(() => {
  301. this.addBotGUI();
  302. window.client.botMode = localStorage.getItem('botMode');
  303. client.extraZoom = JSON.parse(localStorage.getItem('extraZoom'));
  304. let UUID = localStorage.getItem('AgarBotspwToken');
  305. $('#AgarBotspwToken').val(UUID);
  306. }, 1500);
  307. }
  308. }, 100);
  309. }
  310. removeStartupBackground() {
  311. const oldEvt = CanvasRenderingContext2D.prototype.drawImage;
  312. CanvasRenderingContext2D.prototype.drawImage = function(a) {
  313. if (a.src && a.src == 'http://agar.io/img/background.png') return;
  314. oldEvt.apply(this, arguments);
  315. };
  316. }
  317. removeElements() {
  318. $('#advertisement').remove();
  319. $('#bannerCarousel').remove();
  320. $('#user-id-tag').remove();
  321. }
  322. addBotGUI() {
  323. const botNick = localStorage.getItem('botNick') || 'MrSonicMaster';
  324. const proxyTimeout = localStorage.getItem('proxyTimeout') || 15000;
  325. const botAmount = localStorage.getItem('botAmount') || 500;
  326. const botMode = localStorage.getItem('botMode');
  327. $('.agario-promo-container').replaceWith(`<div class="agario-panel"><center><h3>Agar Unlimited v2</h3></center><div style="margin-top: 6px;"class="input-group"><span style="width:75px;"class="input-group-addon"id="basic-addon1">UUID</span><input style="width:230px"disabled id="AgarBotspwToken"class="form-control"placeholder="UUID"value="Loading client..."></input></div><br><input onchange="localStorage.setItem('botNick', this.value);window.client.botNick=this.value;window.client.sendNickUpdate();"id="botNick"maxlength="15"class="form-control"placeholder="Bot Name"value="${botNick}"></input><br><input onkeypress="return event.charCode >= 48 && event.charCode <= 57"onchange="localStorage.setItem('botAmount', this.value);window.client.botAmount=this.value;"id="botAmount"maxlength="4"class="form-control"placeholder="Bot Amount"value="${botAmount}"></input><br><select onchange="window.client.botMode=this.value;localStorage.setItem('botMode', this.value);"class="form-control"><option ${botMode=="FEEDER"?"selected ":""}value="FEEDER">Feeder Bots</option><option ${botMode=="CRASHER"?"selected ":""}value="CRASHER">Crasher Bots</option></select><br><button id="toggleButton"onclick="window.client.startBots();"class="btn btn-success">Start Bots</button><button onclick="if(!window.client.reconnect&&window.client.ws.readyState!==1){window.client.reconnect=true;window.client.connect();}else{alert('Already connected.');}"class="btn btn-success"style="float:right;">Reconnect</button></div>`);
  328. }
  329. addGUI() {
  330. $('body').append(`<div id="botClient"style="position: absolute; top: 10px; left: 10px; padding: 0px 8px; font-family: Tahoma; color: rgb(255, 255, 255); z-index: 9999; border-radius: 5px; min-height: 15px; min-width: 200px; background-color: rgba(0, 0, 0, 0.6);"><div id="counter"><center><b>Agar Unlimited v2</b></center></div><br><b>Bot Server</b>:<span id="botServer"class="label label-default pull-right"><b>Connecting...</b></span><br><b>Status</b>:<span id="serverStatus"class="label label-default pull-right"><b>Waiting...</b></span><br><div id="important"><center><b>Bot Info</b></center></div><div><b>Bot Count</b>:<span id="botCount"class="label label-default pull-right">0/0/0</span></div><div id="divBotAI"><b>Bot AI</b>:<span id="botAI"class="label label-danger pull-right">OFF</span></div><div id="dibBotStopped"><b>Bots Stopped</b>:<span id="botStopped"class="label label-danger pull-right">OFF</span></div><br></div>`);
  331. $('#options').append(`<label><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"><span data-itr="Extra Zoom">Extra Zoom</span></label><label><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></label>`);
  332. }
  333. loadCustomCSS() {
  334. $('head').append(`<style type="text/css">.agario-panel,.shop-blocker{background-color:rgba(23,23,23,0.73)!important;color:#fff!important}</style>`);
  335. }
  336. finishInit() {
  337. window.client.botMode = localStorage.getItem('botMode');
  338. window.client.botAmount = localStorage.getItem('botAmount') >>> 0;
  339. window.client.botNick = localStorage.getItem('botNick');
  340. let UUID = localStorage.getItem('AgarBotspwToken');
  341. $('#AgarBotspwToken').val(UUID);
  342. }
  343. }
  344. class Macro {
  345. constructor() {
  346. this.ejectDown = false;
  347. this.stopped = false;
  348. this.speed = 15;
  349. this.addMoveHook();
  350. this.addKeyHooks();
  351. }
  352. addKeyHooks() {
  353. window.addEventListener('keydown', this.onkeydown.bind(this));
  354. window.addEventListener('keyup', this.onkeyup.bind(this));
  355. }
  356. onkeydown(event) {
  357. if (!window.MC || !MC.isInGame()) return;
  358. switch (event.key.toUpperCase()) {
  359. case 'W':
  360. this.ejectDown = true;
  361. setTimeout(this.eject.bind(this), this.speed);
  362. break;
  363. case 'Q':
  364. window.core.split();
  365. window.core.split();
  366. break;
  367. case 'P':
  368. for (let i = 0; i < 1; i++) setTimeout(window.core.split, this.speed * i);
  369. break;
  370. case 'E':
  371. client.split();
  372. break;
  373. case 'R':
  374. client.eject();
  375. break;
  376. case 'T':
  377. client.toggleAI();
  378. break;
  379. case 'O':
  380. client.toggleMove();
  381. break;
  382. }
  383. if (event.keyCode == 16) {
  384. for (let i = 0; i < 11; i++) setTimeout(window.core.split, this.speed * i);
  385. }
  386. }
  387. onkeyup(event) {
  388. switch (String.fromCharCode(event.keyCode).toUpperCase()) {
  389. case 'W':
  390. this.ejectDown = false;
  391. break;
  392. }
  393. }
  394. eject() {
  395. if (this.ejectDown) {
  396. window.core.eject();
  397. setTimeout(this.eject.bind(this), this.speed);
  398. }
  399. }
  400. addMoveHook() {
  401. window.core._setTarget = window.core.setTarget;
  402. window.core.setTarget = function() {
  403. if (!this.stopped) window.core._setTarget.apply(this, arguments);
  404. else window.core._setTarget(window.innerWidth / 2, window.innerHeight / 2);
  405. }.bind(this);
  406. }
  407. }
  408. class Minimap {
  409. constructor() {
  410. this.canvas = null;
  411. this.ctx = null;
  412. this.init();
  413. }
  414. init() {
  415. this.createCanvas();
  416. requestAnimationFrame(this.drawUpdate.bind(this));
  417. }
  418. createCanvas() {
  419. if (!document.body) return setTimeout(this.createCanvas.bind(this), 100);
  420. this.canvas = document.createElement("canvas");
  421. this.ctx = this.canvas.getContext('2d');
  422. this.addCanvasCustomization();
  423. document.body.appendChild(this.canvas);
  424. }
  425. addCanvasCustomization() {
  426. this.canvas.id = "Minimap";
  427. this.canvas.width = 200;
  428. this.canvas.height = 200;
  429. this.canvas.style.position = "absolute";
  430. this.canvas.style.border = '3px solid #444444';
  431. this.canvas.style.top = "74.9%";
  432. this.canvas.style.right = "0%";
  433. this.drawUpdate();
  434. }
  435. clearCanvas() {
  436. this.ctx.save();
  437. this.ctx.setTransform(1, 0, 0, 1, 0, 0);
  438. this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);
  439. this.ctx.restore();
  440. }
  441. drawUpdate() {
  442. if (!this.ctx) return;
  443. this.clearCanvas();
  444. const cWidth = this.canvas.width;
  445. const cHeight = this.canvas.height;
  446. this.ctx.strokeStyle = "#444444";
  447. this.ctx.strokeWidth = 1;
  448. this.ctx.beginPath();
  449. this.ctx.globalAlpha = 0.9;
  450. this.ctx.rect(0, 0, cWidth, cHeight);
  451. this.ctx.fillStyle = "black";
  452. this.ctx.fill();
  453. this.ctx.beginPath();
  454. let iCount = Math.floor(cWidth / 40);
  455. let i;
  456. for (i = 1; i <= iCount; i++) {
  457. const x = i * 40;
  458. this.ctx.moveTo(x, 0);
  459. this.ctx.lineTo(x, cHeight);
  460. this.ctx.stroke();
  461. }
  462. iCount = Math.floor(cHeight / 40);
  463. for (i = 1; i <= iCount; i++) {
  464. const y = i * 40;
  465. this.ctx.moveTo(0, y);
  466. this.ctx.lineTo(cWidth, y);
  467. this.ctx.stroke();
  468. }
  469. this.ctx.closePath();
  470. this.drawCellUpdate(window.playerX, window.playerY, "#A9A9A9");
  471. if (window.bots.length > 0) this.drawBotUpdate();
  472. requestAnimationFrame(this.drawUpdate.bind(this));
  473. }
  474. drawCellUpdate(x, y, color) {
  475. const transX = (7071 + x) / 14142 * this.canvas.height;
  476. const transY = (7071 + y) / 14142 * this.canvas.width;
  477. this.ctx.fillStyle = color;
  478. this.ctx.beginPath();
  479. this.ctx.arc(transX, transY, 6, 0, 2 * Math.PI);
  480. this.ctx.fill();
  481. }
  482. drawBotUpdate() {
  483. for (const bot of window.bots) {
  484. const botTransX = (7071 + bot.xPos) / 14142 * this.canvas.height;
  485. const botTransY = (7071 + bot.yPos) / 14142 * this.canvas.width;
  486. this.ctx.fillStyle = "#006400";
  487. this.ctx.beginPath();
  488. if (bot.xPos !== 0 && bot.yPos !== 0) {
  489. this.ctx.arc(botTransX, botTransY, 6, 0, 2 * Math.PI);
  490. }
  491. this.ctx.fill();
  492. }
  493. }
  494. }
  495. window.minimap = new Minimap();
  496. window.client = new Client();
  497. window.onload = () => {
  498. new Macro();
  499. };
  500. window.draw = () => {
  501. if (!window.minX || !window.minY || !window.maxX || !window.maxY) return;
  502. const ctx = document.getElementById('canvas').getContext('2d');
  503. ctx.save();
  504. ctx.strokeStyle = '#0000ff';
  505. ctx.lineWidth = 20;
  506. ctx.lineCap = 'round';
  507. ctx.lineJoin = 'round';
  508. ctx.beginPath();
  509. ctx.moveTo(window.minX, window.minY);
  510. ctx.lineTo(window.maxX, window.minY);
  511. ctx.lineTo(window.maxX, window.maxY);
  512. ctx.lineTo(window.minX, window.maxY);
  513. ctx.closePath();
  514. ctx.stroke();
  515. ctx.restore();
  516. }
  517. $.ajax('http://agar.io/agario.core.js', {
  518. success: core => {
  519. 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;} if(window.draw){window.draw();}');
  520. core = core.replace(/(\w\[\w\+(\d+)>>3]=(\w);\w\[\w\+(\d+)>>3]=(\w);\w\[\w\+(\d+)>>3]=(\w);\w\[\w\+(\d+)>>3]=(\w);)/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);');
  521. core = core.replace(/({kb\(\d+,\w\|0,\w&255\|0,\w&255\|0,\w&255\|0\)\|0;nb\(\d+,\w\[\w>>\d\]\|0\)\|0})else({\w+\(\d+,j\|0,255,174,0\)\|0;)/i, "$1 else if(false) $2");
  522. core = core.replace(/(function\(\w\){)(\w.\w\[\w\].stroke\(\))(})/, '$1 $3');
  523. core = core.replace(/if\((\w\[\w>>\d\]\|\d)\)({mb\(\d+,\w\[\w>>\d\]\|\d,\+\(\w\*2.0\)\)\|\d;\w+\(\d+,\w\[\w>>\d\]\|\d,\d+,\d+,\d\)\|\d;\w+\(\d+,\w\[\w>>\d\]\|\d\)\|\d;\w+\(\d+,\w\[\w>>\d\]\|\d,\+\w\)\|\d;\w+\(\d+,\w\[\w>>\d\]\|\d,\d+,\d+,\d+\)\|\d;\w+\(\d+,\w\[\w>>\d+\]\|\d\)\|\d})/, "if($1 && false) $2");
  524. core = core.replace(/var (\w)=new WebSocket\((\w\(\w\))\);/, 'window.client.agarServer=$2;var $1=new WebSocket(window.client.agarServer);');
  525. core = core.replace(/if\((\+\w\[\w>>3\])<1\.0\){/i, 'if($1<!client.extraZoom){');
  526. core = core.replace(/(if\([\w$]+\[[\w$]+\+\d+\>\>0\]\|0\)\{[\w$]+\=[\w$]+;return\})(if\(\![\w$]+\))/, '$1if(false)$2');
  527. eval(core);
  528. },
  529. dataType: 'text',
  530. method: 'GET',
  531. cache: false,
  532. crossDomain: true
  533. });
  534. if (!localStorage.getItem('AgarBotspwToken')) localStorage.setItem('AgarBotspwToken', window.client.createUUID());
  535. if (!localStorage.getItem('showMinimap')) localStorage.setItem('showMinimap', true);
  536. if (!localStorage.getItem('botMode')) localStorage.setItem('botMode', 'FEEDER');
  537. if (!localStorage.getItem('botNick')) localStorage.setItem('botNick', 'MrSonicMaster');
  538. if (!localStorage.getItem('botAmount')) localStorage.setItem('botAmount', 100);
  539. if (!localStorage.getItem('extraZoom')) localStorage.setItem('extraZoom', true);
  540. JSON.parse(localStorage.getItem('showMinimap')) ? $("#Minimap").show() : $("#Minimap").hide();
  541. window.client.UUID = localStorage.getItem('AgarBotspwToken');
  542. new GUITweaker();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement