SaMmOd v0.7

a real mod with the best insta by :(sam-_-): and more cool feature ENJOY!!!

  1. // ==UserScript==
  2. // @name SaMmOd v0.7
  3. // @namespace -
  4. // @version 0.7
  5. // @description a real mod with the best insta by :(sam-_-): and more cool feature ENJOY!!!
  6. // @author PANDAE86
  7. // @match *://moomoo.io/*
  8. // @match *://domoev.moo.io/*
  9. // @match *://sandbox.moomoo.io/*
  10. // @match *://https://moomoo.io/bundle.js/*
  11. // @match *://https://sandbox.moomoo.io/bundle.js/*
  12. // @icon data:image/png;base64,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
  13. // @grant none
  14. // @require https://greasyfork.org/scripts/368273-msgpack/code/msgpack.js?version=598723
  15. // @require http://code.jquery.com/jquery-3.3.1.min.js
  16. // @require https://cdn.jsdelivr.net/npm/msgpack-lite@0.1.26/dist/msgpack.min.js
  17. // @require https://cdn.jsdelivr.net/npm/fontfaceobserver@2.1.0/fontfaceobserver.standalone.min.js
  18. // ==/UserScript==
  19.  
  20.  
  21.  
  22. $('#menuContainer').append('THANK FOR PLAYING SaMmOd 0.7 WE WISH YOU A GOOD TRY TO THIS MOD # :(sam-_-):')
  23. alert('▂▃▅▇█▓▒░♚click the ESC on your keyboard to open mod menu♚░▒▓█▇▅▃▂');
  24.  
  25. setInterval(() => window.follmoo && follmoo(), 10);
  26.  
  27. if(location.hostname == "sandbox.moomoo.io") {
  28. document.getElementById("foodDisplay").style.display = "none";
  29. document.getElementById("woodDisplay").style.display = "none";
  30. document.getElementById("stoneDisplay").style.display = "none";
  31. }
  32.  
  33. document.getElementById("enterGame").addEventListener("click", autohide);
  34. function autohide() {
  35. $("#ot-sdk-btn-floating").hide();
  36. }
  37. document.getElementById("linksContainer2").innerHTML = " ";
  38. let changes = `<div id="subConfirmationElement"><a href="nextupdatein547daySORRY!">next update???</a></div>`;
  39. $('#linksContainer2').prepend(changes);
  40. $('#subConfirmationElement').click( () => {
  41. try { window.follmoo(); } catch(e){};
  42. localStorage["moofoll"] = "1"; localStorage["moofol"] = "1";
  43. });
  44. document.querySelector("#joinPartyButton").remove();
  45. document.querySelector("#pre-content-container").remove(); //ANTI AD
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52. // ==/UserScript==
  53. setInterval(() => {
  54. setTimeout( () => {
  55. document.getElementById('chatBox').placeholder = "💬Message💬";
  56. setTimeout( () => {
  57. document.getElementById('chatBox').placeholder = "💬Message.💬";
  58. setTimeout( () => {
  59. document.getElementById('chatBox').placeholder = "💬Message..💬";
  60. setTimeout( () => {
  61. document.getElementById('chatBox').placeholder = "💬Message...💬";
  62. }, 100);
  63. }, 100);
  64. }, 100);
  65. }, 100);}
  66. , 500);
  67.  
  68. setInterval(() => {
  69. setTimeout( () => {
  70. document.getElementById("woodDisplay").style.color = "";
  71. setTimeout( () => {
  72. document.getElementById("woodDisplay").style.color = "";
  73. setTimeout( () => {
  74. document.getElementById("woodDisplay").style.color = "";
  75. setTimeout( () => {
  76. document.getElementById("woodDisplay").style.color = "";
  77. setTimeout( () => {
  78. document.getElementById("woodDisplay").style.color = "";
  79. setTimeout( () => {
  80. document.getElementById("woodDisplay").style.color = "";
  81. setTimeout( () => {
  82. document.getElementById("woodDisplay").style.color = "";
  83. }, 100);
  84. }, 100);
  85. }, 100);
  86. }, 100);
  87. }, 100);
  88. }, 100);
  89. }, 100);}
  90. , 700);
  91. setInterval(() => {
  92. setTimeout( () => {
  93. document.getElementById("scoreDisplay").style.color = "";
  94. setTimeout( () => {
  95. document.getElementById("scoreDisplay").style.color = "";
  96. setTimeout( () => {
  97. document.getElementById("scoreDisplay").style.color = "";
  98. setTimeout( () => {
  99. document.getElementById("scoreDisplay").style.color = "";
  100. setTimeout( () => {
  101. document.getElementById("scoreDisplay").style.color = "";
  102. setTimeout( () => {
  103. document.getElementById("scoreDisplay").style.color = "";
  104. setTimeout( () => {
  105. document.getElementById("scoreDisplay").style.color = "";
  106. }, 100);
  107. }, 100);
  108. }, 100);
  109. }, 100);
  110. }, 100);
  111. }, 100);
  112. }, 100);}
  113. , 700);
  114. setInterval(() => {
  115. setTimeout( () => {
  116. document.getElementById("stoneDisplay").style.color = "";
  117. setTimeout( () => {
  118. document.getElementById("stoneDisplay").style.color = "";
  119. setTimeout( () => {
  120. document.getElementById("stoneDisplay").style.color = "";
  121. setTimeout( () => {
  122. document.getElementById("stoneDisplay").style.color = "";
  123. setTimeout( () => {
  124. document.getElementById("stoneDisplay").style.color = "";
  125. setTimeout( () => {
  126. document.getElementById("stoneDisplay").style.color = "";
  127. setTimeout( () => {
  128. document.getElementById("stoneDisplay").style.color = "";
  129. }, 100);
  130. }, 100);
  131. }, 100);
  132. }, 100);
  133. }, 100);
  134. }, 100);
  135. }, 100);}
  136. , 700);
  137. setInterval(() => {
  138. setTimeout( () => {
  139. document.getElementById("foodDisplay").style.color = "";
  140. setTimeout( () => {
  141. document.getElementById("foodDisplay").style.color = "";
  142. setTimeout( () => {
  143. document.getElementById("foodDisplay").style.color = "";
  144. setTimeout( () => {
  145. document.getElementById("foodDisplay").style.color = "";
  146. setTimeout( () => {
  147. document.getElementById("foodDisplay").style.color = "";
  148. setTimeout( () => {
  149. document.getElementById("foodDisplay").style.color = "";
  150. setTimeout( () => {
  151. document.getElementById("foodDisplay").style.color = "";
  152. }, 100);
  153. }, 100);
  154. }, 100);
  155. }, 100);
  156. }, 100);
  157. }, 100);
  158. }, 100);}
  159. , 700);
  160. setInterval(() => {
  161. setTimeout( () => {
  162. document.getElementById("killCounter").style.color = "";
  163. setTimeout( () => {
  164. document.getElementById("killCounter").style.color = "";
  165. setTimeout( () => {
  166. document.getElementById("killCounter").style.color = "";
  167. setTimeout( () => {
  168. document.getElementById("killCounter").style.color = "";
  169. setTimeout( () => {
  170. document.getElementById("killCounter").style.color = "";
  171. setTimeout( () => {
  172. document.getElementById("killCounter").style.color = "";
  173. setTimeout( () => {
  174. document.getElementById("killCounter").style.color = "";
  175. }, 100);
  176. }, 100);
  177. }, 100);
  178. }, 100);
  179. }, 100);
  180. }, 100);
  181. }, 100);}
  182. , 700);
  183. document.getElementById("setupCard").style.color = "babyblue";
  184. setInterval(() => {
  185. setTimeout( () => {
  186. document.getElementById("gameName").style.color = "red";
  187. setTimeout( () => {
  188. document.getElementById("gameName").style.color = "babyblue";
  189. setTimeout( () => {
  190. document.getElementById("gameName").style.color = "red";
  191. setTimeout( () => {
  192. document.getElementById("gameName").style.color = "babyblue";
  193. setTimeout( () => {
  194. document.getElementById("gameName").style.color = "red";
  195. setTimeout( () => {
  196. document.getElementById("gameName").style.color = "babyblue";
  197. setTimeout( () => {
  198. document.getElementById("gameName").style.color = "red";
  199. }, 100);
  200. }, 100);
  201. }, 100);
  202. }, 100);
  203. }, 100);
  204. }, 100);
  205. }, 100);}
  206. , 700);
  207. document.getElementById("gameName").style.color = "red";
  208. setInterval(() => {
  209. setTimeout( () => {
  210. document.getElementById("gameName").innerHTML = "Sammod 0.5"
  211. setTimeout( () => {
  212. document.getElementById("gameName").innerHTML = "s_mmod 0.5"
  213. setTimeout( () => {
  214. document.getElementById("gameName").innerHTML = "sa_mod 0.5"
  215. setTimeout( () => {
  216. document.getElementById("gameName").innerHTML = "sam_od 0.5"
  217. setTimeout( () => {
  218. document.getElementById("gameName").innerHTML = "samm_d 0.5"
  219. setTimeout( () => {
  220. document.getElementById("gameName").innerHTML = "sammo_ 0.5"
  221. setTimeout( () => {
  222. document.getElementById("gameName").innerHTML = "sammod _.5"
  223. setTimeout( () => {
  224. document.getElementById("gameName").innerHTML = "sammod 0._"
  225. }, 100);
  226. }, 100);
  227. }, 100);
  228. }, 100);
  229. }, 100);
  230. }, 100);
  231. }, 100);
  232. }, 100);}
  233. , 800);
  234. document.getElementById("gameName").innerHTML = "sammod 0.5"
  235.  
  236.  
  237. let changes2 = `<div id="customMenuName"><h3 style="font-size: 50px;" class = "indent">New OP hack✔️</a></div>`;
  238. $('#gameName').prepend(changes2);
  239. $("#gameName").css({
  240. color: "#333",
  241. "text-blue": "#188bc2",
  242. "text-align": "center",
  243. "font-size": "156px",
  244. "margin-bottom": "-30px",
  245. });
  246. document.getElementById("loadingText").innerHTML = `<div id="" class="loader">`
  247. //document.getElementById("loadingText").innerHTML = "VN Loading";
  248. document.getElementById("diedText").innerHTML = "Skill is died✔️";
  249. document.getElementById("diedText").style.color = "#03f03f";
  250. setTimeout(() => {
  251. document.getElementById("diedText").style.color = "#ff0000";
  252. setTimeout(() => {
  253. document.getElementById("diedText").style.color = "#ffd300";
  254. setTimeout(() => {
  255. document.getElementById("diedText").style.color = "#03f03f";
  256. setTimeout(() => {
  257.  
  258. }, 100);
  259. }, 100);
  260. }, 100);
  261. }, 100);
  262. document.title = " SaMm0dPro";
  263. document.getElementById("leaderboard").append("☠️SaMm0d☠️");
  264. $("#mapDisplay").css("background", "url('https://wormax.org/chrome3kafa/moomooio-background.png')");
  265. document.getElementById("storeHolder").style = "height: 600px; width: 900px;";
  266. document.getElementById('promoImgHolder').innerHTML =
  267. `
  268.  
  269.  
  270. </div><br>
  271. `
  272. $("#itemInfoHolder").css({ top: "0px", left: "15px" });
  273. $("#youtuberOf").remove();
  274. $("#adCard").remove();
  275. $("#mobileInstructions").remove();
  276. $("#downloadButtonContainer").remove();
  277. $("#mobileDownloadButtonContainer").remove();
  278. $(".downloadBadge").remove();
  279.  
  280. const shadowStyle = "box-blue: 0 0 0px 0px rgba(0, 0, 680, 0)";
  281.  
  282. const setupCardDiv = document.getElementById("setupCard");
  283. if (setupCardDiv) {
  284. setupCardDiv.style.cssText += shadowStyle;
  285. }
  286.  
  287. const serverBrowserSelect = document.getElementById("serverBrowser");
  288. if (serverBrowserSelect) {
  289. serverBrowserSelect.style.color = "#f4a460";
  290. serverBrowserSelect.style.backgroundColor = "#ff00cf";
  291. }
  292.  
  293. const enterGameButton = document.getElementById("enterGame");
  294. if (enterGameButton) {
  295. enterGameButton.style.backgroundColor = "#f4a460";
  296. }
  297.  
  298. const style = document.createElement("style");
  299. style.innerHTML = `
  300. .menuLink {
  301. font-size: 20px;
  302. color: #ff00cf;
  303. }
  304. a {
  305. color: #fff;
  306. text-decoration: none;
  307. }
  308. `;
  309. document.head.appendChild(style);
  310.  
  311. const nameInputElement = document.getElementById("nameInput");
  312. if (nameInputElement) {
  313. nameInputElement.style.color = "1ff00cf";
  314. }
  315.  
  316. const guideCardDiv = document.getElementById("guideCard");
  317. if (guideCardDiv) {
  318. guideCardDiv.style.cssText += shadowStyle;
  319. setupCardDiv.style.backgroundColor = "#56a0d3";
  320. guideCardDiv.style.backgroundColor = "#56a0d3";
  321. }
  322.  
  323.  
  324.  
  325. let lastPing = -1;
  326. let cvs = document.getElementById("gameCanvas"),
  327. ctx = cvs.getContext("2d");
  328. let Ie = document.getElementById("pingDisplay");
  329. Ie.replaceWith(document.createElement("div"));
  330. Ie.style.fontSize = "0px";
  331. Ie.style.fontFamily = "arial";
  332. Ie.style.display = "10000000000000000000000000000000000000000000000000000";
  333. Ie.style.zIndex = "100000000000000000000000000000000000000000000000000000";
  334. document.body.appendChild(Ie);
  335. setInterval(() => {
  336. Ie.style.display = "block";
  337. Ie.innerText = `${window.pingTime} ping | ${fps} SaMm0d v??`;
  338. }, 0);
  339. const times = [];
  340. let fps;
  341.  
  342. function refreshLoop() {
  343. window.requestAnimationFrame(() => {
  344. const now = performance.now();
  345. while (times.length > 0 && times[0] <= now - 1000) {
  346. times.shift();
  347. }
  348. times.push(now);
  349. fps = times.length;
  350. refreshLoop();
  351. });
  352. }
  353.  
  354. refreshLoop();
  355. Ie.style.fontSize = "0px";
  356. Ie.style.display = "9999999999px";
  357. Ie.style.color = "#fff";
  358. Ie.style.textShadow = "3px 3px 3px black";
  359. Ie.style.zIndex = "1";
  360. let anti = true;
  361. let tankspamming = false;
  362. let tankspam = false;
  363. let hitBack = false;
  364. let stackInsta = false;
  365. let lastDamageTick = 0;
  366. let HP = 100;
  367. let gameTick = 0;
  368. var shame = 0;
  369. let shameTime,
  370. damageTimes = 0;
  371. let mouseX;
  372. let mouseY;
  373.  
  374. let width;
  375. let height;
  376. //autoaim1
  377. setInterval(() => {
  378. if (autoaim == true) {
  379. doNewSend(["D", [nearestEnemyAngle]]);
  380. }
  381. }, 10);
  382.  
  383. setInterval(() => {
  384. if (hatToggle == 1) {
  385. if (oldHat != normalHat) {
  386. hat(normalHat);
  387. console.log("Tried. - Hat")
  388. }
  389. if (oldAcc != normalAcc) {
  390. acc(normalAcc);
  391. console.log("Tried. - Acc")
  392. }
  393. oldHat = normalHat;
  394. oldAcc = normalAcc
  395. }
  396. }, 25);
  397.  
  398.  
  399. // COUNTER TERRORIST
  400. setInterval(function () {
  401. if (myPlayer.hat == 45) {
  402. doNewSend(["6", ["Im Noob", "Dont kill me pls", "Im Newbie", "Dont bully me pls"]]);
  403. }
  404. }, 590);
  405. function normal() {
  406. hat(normalHat);
  407. acc(normalAcc);
  408. }
  409.  
  410. function aim(x, y) {
  411. var cvs = document.getElementById("gameCanvas");
  412. cvs.dispatchEvent(new MouseEvent("mousemove", {
  413. clientX: x,
  414. clientY: y
  415.  
  416. }));
  417. }
  418.  
  419. let coreURL = new URL(window.location.href);
  420. window.sessionStorage.force = coreURL.searchParams.get("fc");
  421.  
  422. var packet
  423. var nearestEnemy;
  424. var nearestEnemyAngle;
  425. var oppositeEnemyAngle;
  426. var enemyRan;
  427. let trap_a = null;
  428. let intrap = false;
  429. let trapid = null;
  430. var antitrap = false;
  431. var isEnemyNear;
  432. var primary;
  433. var secondary;
  434. var foodType;
  435. var wallType;
  436. var spikeType;
  437. var millType;
  438. var mineType;
  439. var boostType;
  440. var turretType;
  441. var spawnpadType;
  442. var autoaim = false;
  443. var autoprimary = false;
  444. var autosecondary = false;
  445. var tick = 1;
  446. var oldHat;
  447. var oldAcc;
  448. var enemiesNear;
  449. var normalHat;
  450. var normalAcc;
  451. var ws;
  452. var msgpack5 = msgpack;
  453. var boostDir;
  454. let myPlayer = {
  455. id: null,
  456. x: null,
  457. y: null,
  458. dir: null,
  459. object: null,
  460. weapon: null,
  461. clan: null,
  462. isLeader: null,
  463. hat: null,
  464. accessory: null,
  465. isSkull: null,
  466. };
  467.  
  468. let healSpeed = 99;
  469. var messageToggle = 0;
  470. var clanToggle = 0;
  471. let healToggle = 1;
  472. let hatToggle = 1;
  473. document.msgpack = msgpack;
  474.  
  475. function n() {
  476. this.buffer = new Uint8Array([0]);
  477. this.buffer.__proto__ = new Uint8Array;
  478. this.type = 0;
  479. }
  480.  
  481. WebSocket.prototype.oldSend = WebSocket.prototype.send;
  482. WebSocket.prototype.send = function(m) {
  483. if (!ws) {
  484. document.ws = this;
  485.  
  486. ws = this;
  487. socketFound(this);
  488. }
  489. this.oldSend(m);
  490. };
  491.  
  492.  
  493. function socketFound(socket) {
  494. socket.addEventListener('message', function(message) {
  495. handleMessage(message);
  496. });
  497. }
  498.  
  499. function handleMessage(m) {
  500. let temp = msgpack5.decode(new Uint8Array(m.data));
  501. let data;
  502. if (temp.length > 1) {
  503. data = [temp[0], ...temp[1]];
  504. if (data[1] instanceof Array) {
  505. data = data;
  506. }
  507. } else {
  508. data = temp;
  509. }
  510. let item = data[0];
  511. if (!data) {
  512. return
  513. };
  514.  
  515.  
  516. if (item === "io-init") {
  517. let cvs = document.getElementById("gameCanvas");
  518. width = cvs.clientWidth;
  519. height = cvs.clientHeight;
  520. $(window).resize(function() {
  521. width = cvs.clientWidth;
  522. height = cvs.clientHeight;
  523. });
  524. cvs.addEventListener("mousemove", e => {
  525. mouseX = e.clientX;
  526. mouseY = e.clientY;
  527. });
  528. }
  529.  
  530. if (item == "C" && myPlayer.id == null) {
  531. myPlayer.id = data[1];
  532. }
  533.  
  534. if (item == "a") {
  535. enemiesNear = [];
  536. for (let i = 0; i < data[1].length / 13; i++) {
  537. let playerInfo = data[1].slice(13 * i, 13 * i + 13);
  538. if (playerInfo[0] == myPlayer.id) {
  539. myPlayer.x = playerInfo[1];
  540. myPlayer.y = playerInfo[2];
  541. myPlayer.dir = playerInfo[3];
  542. myPlayer.object = playerInfo[4];
  543. myPlayer.weapon = playerInfo[5];
  544. myPlayer.clan = playerInfo[7];
  545. myPlayer.isLeader = playerInfo[8];
  546. myPlayer.hat = playerInfo[9];
  547. myPlayer.accessory = playerInfo[10];
  548. myPlayer.isSkull = playerInfo[11];
  549. } else if (playerInfo[7] != myPlayer.clan || playerInfo[7] === null) {
  550. enemiesNear.push(playerInfo);
  551. }
  552. }
  553. }
  554. update();
  555. if (item == "H") {
  556. for(let i = 0; i < data[1].length / 8; i++) {
  557. let info = data[1].slice(8*i, 8*i+8);
  558. if(info[6] == millType && info[7] == myPlayer.id){
  559. friendlyMillLocs.push(info)
  560. }
  561.  
  562. if(info[7] == myPlayer.id){
  563. onWeapon = true;
  564. }
  565. }
  566.  
  567. }
  568. update();
  569.  
  570. if(item == "Q"){
  571. removeArraysWithValue(friendlyMillLocs, data[1])
  572. }
  573. update();
  574. if(item == "R"){
  575. removeArraysWithValue(friendlyMillLocs, data[1])
  576. }
  577. update();
  578. if(item == "S"){
  579. if(data[1] == 3){
  580. millCount = data[2];
  581. }
  582. }
  583. update();
  584. if(friendlyMillLocs){
  585. nearestFriendlyMill = friendlyMillLocs.sort((a,b) => dist(a, myPlayer) - dist(b, myPlayer))[0];
  586.  
  587. if(nearestFriendlyMill){
  588. nearestFriendlyMillX = nearestFriendlyMill[1]
  589. nearestFriendlyMillY = nearestFriendlyMill[2]
  590. nearestFriendlyMillScale = nearestFriendlyMill[4]
  591. }
  592. }
  593. if(Math.sqrt(Math.pow((myPlayer.y-nearestFriendlyMillY), 2) + Math.pow((myPlayer.x-nearestFriendlyMillX), 2)) < nearestFriendlyMillScale + 100) {
  594. console.log(true)
  595. isNextToFriendlyMill = true;
  596. } else {
  597. isNextToFriendlyMill = false;
  598. }
  599. WebSocket.prototype.send = function(m){
  600. let xcc = new Uint8Array(m);
  601. this.oldSend(m);
  602. let realData = {};
  603. let realInfo = msgpack5.decode(xcc);
  604. if (realInfo[1] instanceof Array){
  605. realData.data = [realInfo[0], ...realInfo[1]]
  606. }
  607. let rd0 = realData.data[0];
  608. let rd1 = realData.data[1];
  609. let rd2 = realData.data[2]
  610.  
  611. if(rd0 == 'a'){
  612. movementDirection = rd1
  613. }
  614. };
  615. isEnemyNear = false;
  616. if (enemiesNear) {
  617. nearestEnemy = enemiesNear.sort((a, b) => dist(a, myPlayer) - dist(b, myPlayer))[0];
  618. }
  619.  
  620. if (nearestEnemy) {
  621. nearestEnemyAngle = Math.atan2(nearestEnemy[2] - myPlayer.y, nearestEnemy[1] - myPlayer.x);
  622. oppositeEnemyAngle = Math.atan2(nearestEnemy[2] + myPlayer.y, nearestEnemy[1] + myPlayer.x);
  623. enemyRan = Math.sqrt(Math.pow((myPlayer.y - nearestEnemy[2]), 2) + Math.pow((myPlayer.x - nearestEnemy[1]), 2));
  624. if (Math.sqrt(Math.pow((myPlayer.y - nearestEnemy[2]), 2) + Math.pow((myPlayer.x - nearestEnemy[1]), 2)) < 285) {
  625. isEnemyNear = true;
  626. if (autoaim == false && myPlayer.hat != 7 && myPlayer.hat != 53) {
  627. normalHat = 6;
  628. if (primary != 8) {
  629. normalAcc = 21
  630. }
  631. };
  632. }
  633. }
  634. if (isEnemyNear == false && autoaim == false) {
  635. if (myPlayer.y < 2400) {
  636. normalHat = 15;
  637. } else if (myPlayer.y > 6850 && myPlayer.y < 7550) {
  638. normalHat = 31;
  639. } else {
  640. normalHat = 19;
  641. }
  642. }
  643. if(isEnemyNear == true && nearestEnemy[5] == 4 && nearestEnemy[9] == 7 && hitBack == true && myPlayer.hat != 7 && myPlayer.hat != 53 && myPlayer.hat != 22 && myPlayer.hat != 11){
  644. doNewSend(["c", [0, 11, 0]]);
  645. setTimeout(()=>{
  646. doNewSend(["c", [0, 21, 1]]);
  647. },60);
  648. }
  649. if (!nearestEnemy) {
  650. nearestEnemyAngle = myPlayer.dir;
  651. }
  652.  
  653. if (item == "X") {
  654. //this INSTA
  655. if (data[5] == 3.6) {
  656. let dir_1 = (dir) => Math.atan2(Math.sin(dir), Math.cos(dir));
  657. let a1 = dir_1(
  658. (Math.atan2(data[2] - myPlayer.y, data[1] - myPlayer.x) +
  659. Math.PI +
  660. Math.PI) %
  661. (Math.PI * 2)
  662. );
  663. let a2 = dir_1((dir_1(data[3]) + Math.PI) % (Math.PI * 2));
  664. let a3 = a1 - a2;
  665. if (0.36 > a3 && -0.36 < a3) {
  666. doNewSend(["6", ["Anti Insta Detect By Sam"]]);
  667. doNewSend(["D",[Math.atan2(data[2] - myPlayer.y, data[1] - myPlayer.x)],]);
  668. if (data[2] < 80 && data[2] > 0) {
  669. doNewSend(["c", [0, 6, 0]]);
  670. place(foodType);
  671. place(foodType);
  672. }
  673. }
  674. }
  675. }
  676. if (myPlayer.hat == 45 && shame) shameTime = 30000;
  677. if (myPlayer.hat == 45 && shame) shame = 30000;
  678. if (data[0] == "a") {
  679. gameTick++;
  680. }
  681. if (item == "O" && data[1] == myPlayer.id) {
  682. gameTick = 0;
  683. lastDamageTick = 0;
  684. shame = 0;
  685. HP = 100;
  686. shameTime = 0;
  687. if (item == "O" && data[1] == myPlayer.id) {
  688. let damage = HP - data[2];
  689. HP = data[2];
  690. if (damage <= -1) {
  691. damageTimes++;
  692. if (!lastDamageTick) return;
  693. let healTime = gameTick - lastDamageTick;
  694. lastDamageTick = 0;
  695. if (healTime <= 1) {
  696. shame = shame++;
  697. } else {
  698. shame = Math.max(0, shame - 2);
  699. }
  700. } else {
  701. lastDamageTick = gameTick;
  702. }
  703. }
  704. if (data[2] < 100 && data[2] > 0 && healToggle == true) {
  705. //normal heal
  706. console.log("normal healing");
  707. setTimeout(() => {
  708. place(foodType);
  709. place(foodType);
  710. doNewSend(["c", [0, 6, 0]]);
  711. // doNewSend(["6", ["Heal"]]);
  712. }, 115);
  713. }
  714. if (data[2] < 48 && data[2] > 0 && anti == true && (nearestEnemy[5] == 5 || nearestEnemy[5] == 3)) {
  715. healToggle = false;
  716. //antiinsta no sold for pol
  717. console.log("no soldier anti - polearm");
  718. doNewSend(["c", [0, 22, 0]]);
  719. //doNewSend(["6", ["Anti"]]);
  720. place(foodType);
  721. setTimeout(() => {
  722. place(foodType);
  723. doNewSend(["c", [0, 6, 0]]);
  724. healToggle = true;
  725. }, 200);
  726. setTimeout(() => {
  727. doNewSend(["c", [0, 7, 0]]);
  728. }, 700);
  729. setTimeout(() => {
  730. doNewSend(["c", [0, 6, 0]]);
  731. }, 1900);
  732. }
  733. if (data[2] < 62 && data[2] > 41 && anti == true && (nearestEnemy[5] == 5 || nearestEnemy[5] == 3)) {
  734. healToggle = false;
  735. //antiinsta for pol
  736. console.log("anti insta - polearm");
  737. doNewSend(["c", [0, 22, 0]]);
  738. //doNewSend(["6", ["Anti"]]);
  739. place(foodType);
  740. setTimeout(() => {
  741. place(foodType);
  742. doNewSend(["c", [0, 6, 0]]);
  743. healToggle = true;
  744. }, 200);
  745. setTimeout(() => {
  746. doNewSend(["c", [0, 7, 0]]);
  747. }, 700);
  748. setTimeout(() => {
  749. doNewSend(["c", [0, 6, 0]]);
  750. }, 1900);
  751. }
  752. if (data[2] < 56 && data[2] > 50) {
  753. healToggle = false;
  754. //bullspam heal
  755. console.log("anti bullspam");
  756. setTimeout(() => {
  757. place(foodType);
  758. place(foodType);
  759. doNewSend(["c", [0, 6, 0]]);
  760. //doNewSend(["6", ["BHeal1"]]);
  761. healToggle = true;
  762. }, 140);
  763. }
  764. if (data[2] < 41 && data[2] > 0 && hitBack == true && nearestEnemy[5] == 4) {
  765. console.log("hitbacking");
  766. healToggle = false;
  767. autoaim = true;
  768. setTimeout(() => {
  769. place(foodType);
  770. place(foodType);
  771. }, 133);
  772. place(spikeType, nearestEnemyAngle);
  773. doNewSend(["d", [1]]);
  774. doNewSend(["c", [0, 7, 0]]);
  775. doNewSend(["G", [primary, true]]);
  776. setTimeout(() => {
  777. doNewSend(["c", [0, 53, 0]]);
  778. doNewSend(["d", [0]]);
  779. healToggle = true;
  780. }, 150);
  781. setTimeout(() => {
  782. doNewSend(["c", [0, 11, 0]]);
  783. autoaim = false;
  784. }, 300);
  785. }
  786. }
  787. update();
  788. }
  789.  
  790. function doNewSend(sender) {
  791. ws.send(new Uint8Array(Array.from(msgpack5.encode(sender))));
  792. }
  793.  
  794. function acc(id) {
  795. doNewSend(["c", [0, 0, 1]]);
  796. doNewSend(["c", [0, id, 1]]);
  797. }
  798.  
  799. function hat(id) {
  800. doNewSend(["c", [0, id, 0]]);
  801. }
  802.  
  803. function placeO(id, angle = Math.atan2(mouseY - height / 2, mouseX - width / 2)) {
  804. doNewSend(["G", [myPlayer.weapon, true]]);
  805. doNewSend(["G", [id, null]]);
  806. doNewSend(["d", [1, angle]]);
  807. doNewSend(["d", [0, angle]]);
  808. doNewSend(["G", [myPlayer.weapon, true]]);
  809. }
  810.  
  811. function place(id, angle = Math.atan2(mouseY - height / 2, mouseX - width / 2)) {
  812. doNewSend(["G", [id, null]]);
  813. doNewSend(["d", [1, angle]]);
  814. doNewSend(["d", [0, angle]]);
  815. doNewSend(["G", [myPlayer.weapon, true]]);
  816. }
  817.  
  818. var repeater = function(key, action, interval, bu) {
  819. let _isKeyDown = false;
  820. let _intervalId = undefined;
  821.  
  822. return {
  823. start(keycode) {
  824. if (keycode == key && document.activeElement.id.toLowerCase() !== 'chatbox') {
  825. _isKeyDown = true;
  826. if (_intervalId === undefined) {
  827. _intervalId = setInterval(() => {
  828. action();
  829. if (!_isKeyDown) {
  830. clearInterval(_intervalId);
  831. _intervalId = undefined;
  832. console.log("claered");
  833. }
  834. }, interval);
  835. }
  836. }
  837. },
  838.  
  839. stop(keycode) {
  840. if (keycode == key && document.activeElement.id.toLowerCase() !== 'chatbox') {
  841. _isKeyDown = false;
  842. }
  843. }
  844. };
  845.  
  846.  
  847. }
  848.  
  849. function removeArraysWithValue(arr, valueToRemove) {
  850. for (let i = arr.length - 1; i >= 0; i--) {
  851. const innerArray = arr[i];
  852. if (innerArray.includes(valueToRemove)) {
  853. arr.splice(i, 1);
  854. }
  855. }
  856. }
  857. let movementDirection
  858. let millCount = 0;
  859. let nearestRandomObjectX;
  860. let nearestRandomObjectY;
  861. let friendlyMillLocs = [];
  862. let nearestFriendlyMill;
  863. let nearestFriendlyMillX;
  864. let nearestFriendlyMillY;
  865. let nearestFriendlyMillScale;
  866. let isNextToFriendlyMill = false;
  867. let automilling = false
  868. let automill = false
  869. setInterval(()=>{
  870. if(automill == true && isNextToFriendlyMill == false && millCount < 298 && automilling == false){
  871. automilling = true;
  872. doNewSend(["G",[millType, null]])
  873. doNewSend(["d",[1, (movementDirection - 1.90)]])
  874. doNewSend(["d",[0, (movementDirection - 1.90)]])
  875. doNewSend(["G",[myPlayer.weapon, true]])
  876. doNewSend(["G",[millType, null]])
  877. doNewSend(["d",[1, (movementDirection - 3.14)]])
  878. doNewSend(["d",[0, (movementDirection - 3.14)]])
  879. doNewSend(["G",[myPlayer.weapon, true]])
  880. doNewSend(["G",[millType, null]])
  881. doNewSend(["d",[1, (movementDirection + 1.90)]])
  882. doNewSend(["d",[0, (movementDirection + 1.90)]])
  883. doNewSend(["G",[myPlayer.weapon, true]])
  884. automilling = false
  885. }
  886. }, 100)
  887. const boostPlacer = repeater(70,() => {place(boostType);},50);
  888. const spikePlacer = repeater(86,() => {place(spikeType);},50);
  889. const placers = [boostPlacer, spikePlacer];
  890. let prevCount = 0;
  891. const handleMutations = (mutationsList) => {
  892. for (const mutation of mutationsList) {
  893. if (mutation.target.id === "killCounter") {
  894. const count = parseInt(mutation.target.innerText, 10) || 0;
  895. if (count > prevCount) {
  896. doNewSend(["6", ["By samHacks Discord=sam#7707"]]);
  897. prevCount = count;
  898. }
  899. }
  900. }
  901. };
  902.  
  903.  
  904. const observer = new MutationObserver(handleMutations);
  905. observer.observe(document, {
  906. subtree: true,
  907. childList: true,
  908. });
  909.  
  910. document.addEventListener('keydown', (e) => {
  911. if (["allianceinput", "chatbox", "nameinput", "storeHolder"].includes(document.activeElement.id.toLowerCase()))
  912. return null;
  913. placers.forEach((t) => {
  914. t.start(e.keyCode);
  915. });
  916.  
  917. if (e.keyCode == 78 && document.activeElement.id.toLowerCase() !== "chatbox") {// N = Automill
  918. automill = !automill;
  919.  
  920. }
  921.  
  922. if (e.keyCode == 72 && document.activeElement.id.toLowerCase() !== "chatbox") {// H = Turret/Teleporter
  923. for (let i = 0; i < Math.PI * 1; i+= Math.PI / 2) {
  924. place(turretType, myPlayer.dir + i);
  925. }
  926. }
  927.  
  928. if (e.keyCode == 32 && document.activeElement.id.toLowerCase() !== "chatbox") {
  929. // spiketick
  930. autoaim = true;
  931. console.log("spiektick");
  932. place(spikeType, nearestEnemyAngle);
  933. doNewSend(["d", [1]]);
  934. doNewSend(["c", [0, 7, 0]]);
  935. doNewSend(["G", [primary, true]]);
  936. doNewSend(["c", [0, 53, 0]]);
  937. doNewSend(["d", [1]]);
  938. setTimeout(() => {
  939. doNewSend(["c", [0, 6, 0]]);
  940. doNewSend(["d", [0]]);
  941. autoaim = false;
  942. }, 400);
  943. }
  944. if (e.keyCode == 89 && document.activeElement.id.toLowerCase() !== "chatbox") {//diamond pol 1 tick
  945. autoaim = true;
  946. doNewSend(["G", [primary, true]]);
  947. doNewSend(["c", [0, 53, 0]]);
  948. setTimeout(() => {
  949. doNewSend(["c", [0, 7, 0]]);
  950. doNewSend(["c", [0, , 0]]);
  951. doNewSend(["d", [1]]);
  952. }, 100);
  953. setTimeout(() => {
  954. doNewSend(["G", [primary, true]]);
  955. doNewSend(["c", [0, 19, 1]]);
  956. doNewSend(["d", [0]]);
  957. autoaim = false;
  958. }, 500);
  959. }
  960. if (e.keyCode == 82 &&document.activeElement.id.toLowerCase() !== "chatbox") {
  961. if (stackInsta == false) {
  962. console.log("normal insta");
  963. autoaim = true;
  964. doNewSend(["c", [0, 7, 0]]);
  965. doNewSend(["G", [primary, true]]);
  966. doNewSend(["c", [0, 0, 1]])
  967. doNewSend(["d", [1]]);
  968. acc(18)
  969. doNewSend(["c", [1]]);
  970. setTimeout(() => {
  971. doNewSend(["G", [secondary, true]]);
  972. doNewSend(["c", [0, 53, 0]]);
  973. doNewSend(["c", [0, 0, 1]]);
  974. acc(21)
  975. }, 105);
  976. setTimeout(() => {
  977. doNewSend(["G", [secondary, true]]);
  978. }, 110);
  979. setTimeout(() => {
  980. doNewSend(["G", [secondary, true]]);
  981. }, 115);
  982. setTimeout(() => {
  983. doNewSend(["G", [primary, true]]);
  984. doNewSend(["d", [0, null]]);
  985. doNewSend(["c", [0, 6, 0]]);
  986. doNewSend(["c", [0, 0, 0]]);
  987. doNewSend(["c", [0, 0, 1]]);
  988. hat(6)
  989. acc(21)
  990. autoaim = false;
  991. }, 215);
  992. } else {
  993. console.log("stack insta");autoaim = true;doNewSend(["c", [0, 18, 1]]);doNewSend(["c", [0, 7, 0]]);doNewSend(["G", [primary, true]]);doNewSend(["c", [0, 21, 1]]);doNewSend(["d", [1]]);acc(18);doNewSend(["c", [1]]);setTimeout( () => {var sck = "";doNewSend(["G", [secondary, true]]);doNewSend(["c", [0, 53, 0]]);doNewSend(["c", [0, 18, 1]]);for(let i = 0; i < 850; i++){let caas = new Uint8Array(550);for(let i = 0; i <caas.length;i++){caas[i] = Math.floor(Math.random()*270);sck += caas[i]}}ws.send(caas);}, 105);setTimeout(() => {doNewSend(["G", [secondary, true]]);}, 200);setTimeout(() => {doNewSend(["G", [primary, true]]);doNewSend(["d", [0, null]]);doNewSend(["c", [0, 6, 0]]);doNewSend(["c", [0, 0, 0]]);doNewSend(["c", [0, 0, 1]]);hat(6);acc(21);autoaim = false;}, 215);}}
  994. if (e.keyCode == 188 &&document.activeElement.id.toLowerCase() !== "chatbox") {
  995. console.log("boost tick");
  996. autoaim = true;
  997. setTimeout(()=>{
  998. doNewSend(["d", [1]]);
  999. doNewSend(["G", [secondary, true]]);
  1000. },99);
  1001. setTimeout(()=>{
  1002. doNewSend(["c", [0, 53, 0]]);
  1003. place(boostType);
  1004. },50);
  1005. setTimeout(() => {
  1006. doNewSend(["G", [primary, true]]);
  1007. doNewSend(["c", [0, 7, 0]]);
  1008. doNewSend(["d", [1]]);
  1009. doNewSend(["d", [0]]);
  1010. }, 175);
  1011. setTimeout(() => {
  1012. doNewSend(["G", [primary, true]]);
  1013. doNewSend(["c", [0, 6, 0]]);
  1014. doNewSend(["d", [0]]);
  1015. autoaim = false;
  1016. }, 500);
  1017. }
  1018. if (e.keyCode == 84 && document.activeElement.id.toLowerCase() !== "chatbox") {
  1019. if(stackInsta == false){
  1020. // insta
  1021. autoaim = true;
  1022. console.log("reverse insta");
  1023. doNewSend(["d", [1]]);
  1024. doNewSend(["G", [secondary, true]]);
  1025. doNewSend(["c", [0, 53, 0]]);
  1026. setTimeout(() => {
  1027. doNewSend(["G", [primary, true]]);
  1028. doNewSend(["c", [0, 7, 0]]);
  1029. doNewSend(["d", [1]]);
  1030. doNewSend(["d", [0]]);
  1031. }, 80);
  1032. setTimeout(() => {
  1033. doNewSend(["G", [primary, true]]);
  1034. doNewSend(["c", [0, 6, 0]]);
  1035. doNewSend(["d", [0]]);
  1036. autoaim = false;
  1037. }, 500);
  1038. } else {
  1039. autoaim = true;
  1040. console.log("stacked reverse insta");
  1041. doNewSend(["d", [1]]);
  1042. doNewSend(["c", [0, 18, 1]]);
  1043. doNewSend(["G", [secondary, true]]);
  1044. doNewSend(["c", [0, 53, 0]]);
  1045. setTimeout(() => {
  1046. var sck = "";
  1047. doNewSend(["G", [primary, true]]);
  1048. doNewSend(["c", [0, 7, 0]]);
  1049. doNewSend(["d", [1]]);
  1050. doNewSend(["d", [0]]);
  1051. for(let i = 0; i < 850; i++){
  1052. let caas = new Uint8Array(550);
  1053. for(let i = 0; i <caas.length;i++){
  1054. caas[i] = Math.floor(Math.random()*270);
  1055. sck += caas[i]
  1056. }
  1057. }
  1058. ws.send(caas);
  1059. }, 80);
  1060. setTimeout(() => {
  1061. doNewSend(["G", [primary, true]]);
  1062. doNewSend(["c", [0, 6, 0]]);
  1063. doNewSend(["d", [0]]);
  1064. autoaim = false;
  1065. }, 500);
  1066. }
  1067. }
  1068. if (e.keyCode == 66 &&document.activeElement.id.toLowerCase() !== "chatbox") {// BullTick
  1069. doNewSend(["c", [0, 7, 0]]);
  1070. setTimeout(()=>{
  1071. doNewSend(["c", [0, 13, 1]]);
  1072. doNewSend(["c", [0, 11, 1]]);
  1073. },60);
  1074. }
  1075. })
  1076.  
  1077. document.addEventListener('keyup', (e) => {
  1078. if (["allianceinput", "chatbox", "nameinput", "storeHolder"].includes(document.activeElement.id.toLowerCase()))
  1079. return null;
  1080. placers.forEach((t) => {
  1081. t.stop(e.keyCode);
  1082. })
  1083. })
  1084.  
  1085. let holdInterval;
  1086.  
  1087. document.addEventListener("mousedown", (event) => {
  1088. if (event.button == 2 && secondary != 10) {
  1089. holdInterval = setInterval(() => {
  1090. doNewSend(["d", [1]]);
  1091. doNewSend(["c", [0, 40, 0]]);
  1092. doNewSend(["G", [primary, true]]);
  1093. setTimeout(()=>{
  1094. doNewSend(["d", [0]]);
  1095. doNewSend(["c", [0, 6, 0]]);
  1096. }, 100);
  1097. }, 200); // Ajustez l'intervalle selon vos besoins
  1098. } else if (event.button == 2) {
  1099. holdInterval = setInterval(() => {
  1100. doNewSend(["d", [1]]);
  1101. doNewSend(["c", [0, 40, 0]]);
  1102. doNewSend(["G", [secondary, true]]);
  1103. setTimeout(()=>{
  1104. doNewSend(["d", [0]]);
  1105. doNewSend(["c", [0, 6, 0]]);
  1106. }, 100);
  1107. }, 200); // Ajustez l'intervalle selon vos besoins
  1108. } else if (event.button == 0) {
  1109. holdInterval = setInterval(() => {
  1110. doNewSend(["d", [1]]);
  1111. doNewSend(["c", [0, 7, 0]]);
  1112. doNewSend(["G", [primary, true]]);
  1113. setTimeout(()=>{
  1114. doNewSend(["d", [0]]);
  1115. doNewSend(["c", [0, 7, 0]]);
  1116. }, 100);
  1117. }, 200); // Ajustez l'intervalle selon vos besoins
  1118. }
  1119. });
  1120.  
  1121. document.addEventListener("mouseup", () => {
  1122. clearInterval(holdInterval);
  1123. });
  1124.  
  1125.  
  1126.  
  1127.  
  1128.  
  1129. function isElementVisible(e) {
  1130. return (e.offsetParent !== null);
  1131. }
  1132.  
  1133. function toRad(angle) {
  1134. return angle * 0.01745329251;
  1135. }
  1136.  
  1137. function dist(a, b) {
  1138. return Math.sqrt(Math.pow((b.y - a[2]), 2) + Math.pow((b.x - a[1]), 2));
  1139. }
  1140.  
  1141. function update() {
  1142. for (let i = 0; i < 9; i++) {
  1143. if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))) {
  1144. primary = i;
  1145. }
  1146. }
  1147.  
  1148. for (let i = 9; i < 16; i++) {
  1149. if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))) {
  1150. secondary = i;
  1151. }
  1152. }
  1153.  
  1154. for (let i = 16; i < 19; i++) {
  1155. if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))) {
  1156. foodType = i - 16;
  1157. }
  1158. }
  1159.  
  1160. for (let i = 19; i < 22; i++) {
  1161. if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))) {
  1162. wallType = i - 16;
  1163. }
  1164. }
  1165.  
  1166. for (let i = 22; i < 26; i++) {
  1167. if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))) {
  1168. spikeType = i - 16;
  1169. }
  1170. }
  1171.  
  1172. for (let i = 26; i < 29; i++) {
  1173. if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))) {
  1174. millType = i - 16;
  1175. }
  1176. }
  1177.  
  1178. for (let i = 29; i < 31; i++) {
  1179. if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))) {
  1180. mineType = i - 16;
  1181. }
  1182. }
  1183.  
  1184. for (let i = 31; i < 33; i++) {
  1185. if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))) {
  1186. boostType = i - 16;
  1187. }
  1188. }
  1189.  
  1190. for (let i = 33; i < 39; i++) {
  1191. if (isElementVisible(document.getElementById("actionBarItem" + i.toString())) && i != 36) {
  1192. turretType = i - 16;
  1193. }
  1194. }
  1195.  
  1196. spawnpadType = 36;
  1197. }
  1198.  
  1199. var styleItem = document.createElement("style");
  1200. styleItem.type = "text/css";
  1201. styleItem.appendChild(document.createTextNode(`
  1202. }`));
  1203. document.head.appendChild(styleItem);
  1204.  
  1205. window.addEventListener("load", () => {
  1206.  
  1207. let toggleRender = true;
  1208. let canvas = document.getElementById("gameCanvas");
  1209. let ctx = canvas.getContext("2d");
  1210. let screenWidth = 1920;
  1211. let screenHeight = 1080;
  1212. let screenW = screenWidth / 2;
  1213. let screenH = screenHeight / 2;
  1214.  
  1215. function render() {
  1216.  
  1217. if (toggleRender) {
  1218.  
  1219. ctx.beginPath();
  1220.  
  1221. let gradient = ctx.createRadialGradient(screenW, screenH, 0, screenW, screenH, screenWidth);
  1222. for (let i = 0; i <= 1; i++) {
  1223. gradient.addColorStop(i, "rgba(0, 0, 0, " + i + ")");
  1224. }
  1225.  
  1226. ctx.fillStyle = gradient;
  1227. ctx.rect(0, 0, screenWidth, screenHeight);
  1228. ctx.fill();
  1229.  
  1230. }
  1231.  
  1232. window.requestAnimFrame(render);
  1233.  
  1234. }
  1235.  
  1236. render();
  1237. });
  1238.  
  1239. document.addEventListener("keydown", function (e) {
  1240. if (e.keyCode == 27) {
  1241. $('#infomenu').toggle();
  1242. ext = !ext;
  1243. };
  1244. });
  1245.  
  1246.  
  1247.  
  1248. // hatttttttttttttttttttttttttttttttt
  1249. (function() {
  1250. // EQUP!
  1251. if (document.activeElement.id !== 'chatBox'){
  1252. document.addEventListener('keydown', function(e) {
  1253. switch (e.keyCode) {
  1254. case 16: storeEquip(11, 1); break; // Shift
  1255. case 90: storeEquip(19, 1); break; // Z
  1256. case 71: storeEquip(12); break; // G
  1257. case 74: storeEquip(22); break; // J
  1258. case 85: storeEquip(11); break; // U
  1259. }
  1260. });
  1261.  
  1262. }})();
  1263.  
  1264.  
  1265. // MENU BODY AND INFO
  1266. $("body").after(`
  1267. <div id="infomenu">
  1268. <hr>
  1269. <div class="nameblock"></div>
  1270. <hr>
  1271. <ul>
  1272. <li></label><label><div class="text">ANTI INSTA BY SAM<input type="checkbox" id="anti" checked><span class="checkmark"></div></li>
  1273. <li></label><label><div class="text">insta stack by SAM<input type="checkbox" id="hitBack"><span class="checkmark"></div></li>
  1274. <li></label><label><div class="text">LAG INSTA BY SAM<input type="checkbox" id="stackInsta"><span class="checkmark"></div></li>
  1275. <br>
  1276. <li></label><label><div class="text">Anti insta by sam<input type="checkbox" id="none"><span class="checkmark"></div></li>
  1277. <li></label><label><div class="text">insta stack by sam<input type="checkbox" id="none"><span class="checkmark"></div></li>
  1278. <li></label><label><div class="text">Anti insta by sam<input type="checkbox" id="none"><span class="checkmark"></div></li>
  1279. <li></label><label><div class="text">insta stack by sam<input type="checkbox" id="none"><span class="checkmark"></div></li>
  1280. </ul>
  1281. <hr>
  1282. <div class="nameblock">Controls:</div>
  1283. KEY Z : To Black Wings<br>
  1284. KEY R: To Insta<br>
  1285.  
  1286.  
  1287.  
  1288. <hr>
  1289.  
  1290. </div>
  1291. <style>
  1292.  
  1293. </script>
  1294.  
  1295. button:active,
  1296. button:focus {
  1297. outline: none !important;
  1298. }
  1299. button::-moz-focus-inner {
  1300. border: 0 !important;
  1301. }
  1302. .nameblock {
  1303. font-size: 20px;
  1304. color: #dbdbdb;
  1305. text-align: center;
  1306. }
  1307. li {
  1308. font-size: 13px;
  1309. }
  1310. .text {
  1311. display: block;
  1312. font-size: 17px;
  1313. color: #fff;
  1314. text-align: left;
  1315. }
  1316. .menuToggle:hover{
  1317. cursor: pointer;
  1318. position: absolute;
  1319. background: linear-gradient(to right, red, orange, yellow, green, cyan, blue, violet);
  1320. background-size: 400% 400%;
  1321. -webkit-background-clip: text;
  1322. -webkit-text-fill-color: transparent;
  1323. -webkit-animation: colorR 20s ease infinite;
  1324. animation: colorR 20s ease infinite;
  1325. font-family: "Hammersmith One";
  1326. display: block !important;
  1327. top: 20px;
  1328. left: 20px;
  1329. font-size: 17px;
  1330. }
  1331. .menuToggle{
  1332. cursor: pointer;
  1333. position: absolute;
  1334. background: linear-gradient(to right, gray, black);
  1335. background-size: 400% 400%;
  1336. -webkit-background-clip: text;
  1337. -webkit-text-fill-color: transparent;
  1338. -webkit-animation: colorR 20s ease infinite;
  1339. animation: colorR 20s ease infinite;
  1340. font-family: "Hammersmith One";
  1341. display: block !important;
  1342. top: 80px;
  1343. left: 1517px;
  1344. font-size: 17px;
  1345. }
  1346. #infomenu {
  1347. overflow-x: hidden;
  1348. padding: 80px;
  1349. position: absolute;
  1350. display: none;
  1351. background: rgba(70, 0, 30, 0);
  1352. width: 310px;
  1353. height: 450px;
  1354. border: 2px solid black;
  1355. border-radius: 4px;
  1356. top: 20px;
  1357. left: 15px;
  1358. z-index: 1;
  1359. }
  1360. input {outline: 0 !important;}
  1361. .Input_Text_style, .Input_Buttob_style {
  1362. background: rgba(102, 102, 102);
  1363. border: 2px solid black;
  1364. border-radius: 10px;
  1365. color: #fff;
  1366. -o-transition: all 1s ease;
  1367. -ms-transition: all 1s ease;
  1368. -moz-transition: all 1s ease;
  1369. -webkit-transition: all 1s ease;
  1370. transition: all 1s ease;
  1371. }
  1372. .Input_Text_style:focus,.Input_Buttob_style:focus {
  1373. border: 2px solid #fff;
  1374. }
  1375. </style>
  1376. <script>
  1377. function InfoMenu() {
  1378. $("#infomenu").css({
  1379. "display" : "block"
  1380. });
  1381. }
  1382.  
  1383. /*(function() {
  1384. var UPDATE_DELAY = 700;
  1385. var lastUpdate = 0;
  1386. var frames = 0;
  1387. var values;
  1388. function updateCounter() {
  1389. var now = Date.now();
  1390. var elapsed = now - lastUpdate;
  1391. if (elapsed < UPDATE_DELAY) {
  1392. ++frames;
  1393. } else {
  1394. var fps = Math.round(frames / (elapsed / 1000));
  1395. document.getElementById("fps").textContent ="Fps: " + fps ;
  1396. frames = 0;
  1397. lastUpdate = now;
  1398. }
  1399. requestAnimationFrame(updateCounter);
  1400. }
  1401. lastUpdate = Date.now();
  1402. requestAnimationFrame(updateCounter);
  1403. })();
  1404. setInterval(()=>{
  1405. document.getElementById("ping").textContent = "Ping: " + window.pingTime;
  1406. },0);*/
  1407.  
  1408. </script>
  1409. `);
  1410.  
  1411.  
  1412. var antii = document.querySelector("#anti")
  1413. antii.addEventListener('change', function() {
  1414. if (this.checked) {
  1415. anti = true;
  1416. } else {
  1417. anti = false;
  1418. }
  1419. });
  1420. var hitBackk = document.querySelector("#hitBack")
  1421. hitBackk.addEventListener('change', function() {
  1422. if (this.checked) {
  1423. hitBack = true;
  1424. } else {
  1425. hitBack = false;
  1426. }
  1427. });
  1428. var stackInstaa = document.querySelector("#stackInsta")
  1429. stackInstaa.addEventListener('change', function() {
  1430. if (this.checked) {
  1431. stackInsta = true;
  1432. } else {
  1433. stackInsta = false;
  1434. }
  1435. });