Lost mod all versions

all my mods in one script!

Tento skript by nemal byť nainštalovaný priamo. Je to knižnica pre ďalšie skripty, ktorú by mali používať cez meta príkaz // @require https://update.sleazyfork.org/scripts/439435/1014337/Lost%20mod%20all%20versions.js

  1. // ==UserScript==
  2. // @name Lost mod all versions
  3. // @namespace FZ was astonished!
  4. // @version v1.09
  5. // @description all my mods in one script!
  6.  
  7. // @match *://*beta.moomoo.io/*
  8. // @match *://moomoo.io/*
  9. // @match *://sandbox.moomoo.io/*
  10. // @match *://dev.moomoo.io/*
  11.  
  12. // @match *://mope.io/*
  13. // @match *://beta.mope.io/*
  14. // @match *://m0pe.io/*
  15. // @match *://learninganimals.club/*
  16. // @match *://beta.tailbite.me/*
  17. // @match *://beta.zooeducation.space/*
  18. // @match *://tailbite.me/*
  19. // @match *://animalfun.club/*
  20. // @match *://zooeducation.space/*
  21. // @match *://experimental.mope.io/*
  22.  
  23. // @match *://krunker.io/*
  24.  
  25. // @match *://diep.io/*
  26.  
  27. // @match *://arras.io/
  28. // @match *://arras.netlify.app/
  29. // @match *://woomy-arras.io/
  30.  
  31. // @match *://*.io/*
  32.  
  33. // @grant unsafeWindow
  34. // @grant GM.setValue
  35. // @grant GM.getValue
  36. // @grant GM_addStyle
  37. // @grant GM_addValueChangeListener
  38. // @grant GM_removeValueChangeListener
  39.  
  40. // @require https://greasyfork.org/scripts/423602-msgpack/code/msgpack.js
  41. // @icon https://moomoo.io/img/icons/crown.png
  42. // @require https://greasyfork.org/scripts/410512-sci-js-from-ksw2-center/code/scijs%20(from%20ksw2-center).js
  43.  
  44. // @match https://ksw2-moomoo.glitch.me
  45.  
  46. // @grant GM_getTabs
  47. // @grant GM_getTab
  48. // @grant GM_saveTab
  49.  
  50. // @run-at document-start
  51. // @antifeature tracking
  52. // ==/UserScript==
  53.  
  54. /*
  55. Authors:
  56. -FZ (MooMoo.io Module, Diep.io Module, Mope.io module, etc.),
  57. -Wynd (MooMoo.io module),
  58. -ABC, Erika (diep.io module)
  59. -Cazka (diepbox module)
  60. -anonymous person (arras.io module)
  61. -Lost_Gaming (moomoo.io Module)
  62. */
  63.  
  64. window = unsafeWindow;
  65. const windowloc = window.location.host;
  66.  
  67. function uuidv4() {return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); return v.toString(16); });};
  68. const CONTROLLER_PAGE = atob("aHR0cHM6Ly9rc3cyLW1vb21vby5nbGl0Y2gubWU="); var ctr, global_id; (async () => {
  69. let count_before = await GM.getValue('count', 0); await GM.setValue('count', count_before + 1); let count_after = await GM.getValue('count');
  70. if (await GM.getValue("id", null) == null) {await GM.setValue("id", uuidv4())}; await GM.getValue("id", 0); ctr = await GM.getValue('count', 0); global_id = await GM.getValue("id", 0);
  71. })(); if (windowloc == (new URL(CONTROLLER_PAGE)).host) {
  72. GM_getTab(function(tabObj) {
  73. tabObj.id = uuidv4();
  74. GM_saveTab(tabObj);
  75. });
  76. } else if (windowloc == "moomoo.io" || windowloc == "sandbox.moomoo.io" || windowloc == "beta.moomoo.io") {
  77. let execOpen = false;
  78. GM_getTabs(e => {
  79. let pageLoaded = Object.keys(e).length > 0;
  80. !pageLoaded && (() => {
  81. execOpen = true;
  82. })();
  83. });
  84. let _ls;
  85. const BASE_URL = atob("aHR0cHM6Ly9rc3cyLW1vb21vby5nbGl0Y2gubWU=") + "/";
  86. _ls = (locServ = (window.location.protocol + "//code.jquery.com/jquery-3.3.1.slim.min.js"), isCache = false) => {
  87. let xml; xml = new XMLHttpRequest(); xml.open("GET", locServ, false); xml.send();
  88. let worked = xml.responseText;
  89. (locServ.includes("bundle.js") || locServ.includes("quasar")) && (
  90. worked = worked.replace("window.captchaCallback=function(){ut=!0,v()}", `(()=>{let captchaCallbackChecker = setInterval(()=>{
  91. if (unsafeWindow.captchaCallbackActivated) {
  92. ut = !0, v();
  93. clearInterval(captchaCallbackChecker);
  94. };
  95. }, 5)})()`)
  96. ); isCache ? (localStorage.xwCode = btoa(worked)) : eval(worked);
  97. };
  98. let cloaded = false; if (localStorage.xwLoad) {
  99. delete localStorage.xwLoad;
  100. /*let Zsetter = setInterval(() => {
  101. unsafeWindow.captchaCallback = () => {
  102. unsafeWindow.captchaCallbackActivated = true;
  103. clearInterval(Zsetter);
  104. }; //dont really need this anymore ---- yea u do
  105. });*/
  106. let xwC = atob(localStorage.xwCode);
  107. delete localStorage.xwCode;
  108. eval(xwC);
  109. //let a = "constructor"; a[a][a](xwC);
  110. //_ls(window.location.protocol + "//" + window.location.hostname + "/serverData.js");
  111. //_ls(window.location.protocol + "//" + window.location.hostname + "/bundle.js");
  112. cloaded = true;
  113. };
  114. if (cloaded) return;
  115.  
  116. let removals = 0;
  117. let observer = new MutationObserver(function(mutations) {
  118. mutations.forEach(function(mutation) {
  119. mutation.addedNodes.forEach(function(node) {
  120. if (node.nodeName == "SCRIPT") {
  121. if (node.src == window.location.protocol + "//" + window.location.hostname + "/bundle.js"
  122. || /(cookiepro.com)/.exec(node.src)) {
  123. removals++;
  124. //console.log('murdering');
  125. try {
  126. node.parentNode.removeChild(node);
  127. //console.log('method 1');
  128. } catch(e) {
  129. node.remove();
  130. //console.log('method 2');
  131. };
  132. removals == 2 && (observer.disconnect());
  133. };
  134. };
  135. });
  136. });
  137. });
  138. observer.observe(document, {
  139. attributes: true,
  140. characterData: true,
  141. childList: true,
  142. subtree: true
  143. });
  144.  
  145. let globalactions = () => {
  146. let originalrotate = CanvasRenderingContext2D.prototype.rotate; CanvasRenderingContext2D.prototype.rotate = function() {(arguments[0] >= Number.MAX_SAFE_INTEGER || (arguments[0] <= -Number.MAX_SAFE_INTEGER)) && (arguments[0] = 0);
  147. originalrotate.apply(this, arguments)}; try {insert_0000000(true, "moomoo.io");} catch(e){};
  148. _ls(); var ext = false; document.addEventListener('keydown', function (e) { if (e.key === "`") { $('#mainMenu').toggle();
  149. ext = !ext}}); window.zoomFactor = 1; (() => {
  150. let spinSpeed = 70;
  151. function linker(value) {
  152. let x = [value];
  153. x.toString = ()=>x[0];
  154. return x;
  155. }
  156. let OGx,
  157. OGy;
  158. let x = new Event('resize');
  159. let addListener = window.addEventListener;
  160. window.addEventListener = function(type, cb, ...args){
  161. if(type === 'resize'){
  162. let temp = cb;
  163. cb = ()=>temp({isTrusted: !0});
  164. }
  165. addListener(type, cb, ...args);
  166. }
  167. function setZoom ({code}) {
  168. if(code != 'Minus' && code != 'Equal') return;
  169. zoomFactor *= 0.95 ** (code == 'Minus' ? -1 : 1);
  170. window.config.maxScreenWidth[0] = OGx * zoomFactor;
  171. window.config.maxScreenHeight[0] = OGy * zoomFactor;
  172. window.dispatchEvent(x);
  173. };
  174. addListener('keydown', setZoom);
  175. Function.prototype._call = Function.prototype.call;
  176. Function.prototype.call = function(){
  177. if(arguments[1] && arguments[1].i == 21 && arguments[3] && arguments[3].toString && arguments[3].toString().match(/^\s*function n\(i\)/)){
  178. let temp = arguments[3];
  179. arguments[3] = function (number) {
  180. let val = temp(number);
  181. if(number === 19) {
  182. OGx = parseInt(val.maxScreenWidth.toString());
  183. OGy = parseInt(val.maxScreenHeight.toString());
  184. val.maxScreenHeight = linker(OGy);
  185. val.maxScreenWidth = linker(OGx);
  186.  
  187. val.maxPlayers = 100000000000000000; // no limit
  188. window.data = val;
  189. } else if(number === 42) {
  190. val.checkTrusted = (cb)=>cb;
  191. } else if (number === 45) {
  192. val.weapons.forEach((e, index) => e.pre && (val.weapons[index].pre = null));
  193. val.list.forEach((e, index) => e.pre && (val.list[index].pre = null));
  194. items = val;
  195. window.items = val;
  196. }
  197. return val;
  198. }
  199. this.call = this._call;
  200. }
  201. return this._call(...arguments);
  202. }
  203. })();
  204. };
  205. globalactions();
  206.  
  207. let _init = (_skip = false) => {
  208.  
  209. var switched = 0;
  210. var swsInt = setInterval(()=>{
  211. switch (document.readyState) {
  212. case "loading":
  213. break;
  214. case "interactive":
  215. switched = 1;
  216. break;
  217. case "complete":
  218. break;
  219. };
  220. }, 0);
  221.  
  222. var INT = setInterval(()=>{
  223. if (switched == 1 || _skip) {
  224. clearInterval(INT);
  225.  
  226. function _toConsumableArray(e) {
  227. if (Array.isArray(e)) {
  228. for (var n = 0, o = Array(e.length); n < e.length; n++) o[n] = e[n];
  229. return o
  230. }
  231. return Array.from(e)
  232. }
  233. var heal1, hType, heal2, insta, radar, sAim, ahat, respawn, offence, defence, speed, derp, deathCrash, pType, onclick, oHat, oAcc, otHat, otAcc, dHat, dAcc, tHat, tAcc, eHat, eAcc, antiBoostSpike, antiInsta1, antiInsta2, antiInsta3, antiInsta4, snHat, snAcc, srHat, srAcc, ssHat, ssAcc, kSpikeCircle, kTrapCircle, iAim, iReload, iReverse, iSwitch, iHat1, iAcc1, iHat2, iAcc2, iHat3, iAcc3, kSpike = 86
  234. , kTrap = 70
  235. , kTurret = 72
  236. , kWindmill = 78
  237. , kHeal = 81
  238. , kBS = 76
  239. , kBM = 79
  240. , aChat = "~|Lost Mod is OP|~"
  241. , acBool = !1
  242. , acFill = "-"
  243. , iChat = "~|Lost_Gaming is too good|~"
  244. , icBool = !1
  245. , rChat = "~|Lost_Gaming is loading...|~"
  246. , ezBool = !1
  247. , ezChat = "~|Lost_Gaming never dies|~"
  248. , irBool = !1
  249. , cPlayer = !1
  250. , wLag = !0
  251. , TankGearKey = 90
  252. , BullHelmetKey = 65
  253. , SoldierHelmetKey = 83
  254. , TurretKey = 77
  255. , BoosterHatKey = 66
  256. , uneqiup = 16
  257. , EMPGearKey = 73;
  258. setTimeout(function () {
  259. hType = "4", heal2 = !0, insta = !0, radar = !0, sAim = !0, ahat = true, respawn = !0, offence = !1, defence = !0, speed = !0, derp = !1, deathCrash = !1, pType = "0", onclick = !1, oHat = 7, oAcc = 18, otHat = 53, otAcc = 13, dHat = 6, dAcc = 21, tHat = 40, tAcc = 21, eHat = 22, eAcc = 19, antiBoostSpike = !0, antiInsta1 = !0, antiInsta2 = !1, antiInsta3 = !1, antiInsta4 = !1, snHat = 12, snAcc = 11, srHat = 31, srAcc = 11, ssHat = 15, ssAcc = 11, iAim = !0, iReload = !1, iReverse = !1, iSwitch = !0, iHat1 = 7, iAcc1 = 18, iHat2 = 53, iAcc2 = 13, iHat3 = 6, iAcc3 = 21, (heal1 = !0) && (document.getElementById("heal1")
  260. .checked = !0), heal2 && (document.getElementById("heal2")
  261. .checked = !0), insta && (document.getElementById("insta")
  262. .checked = !0), radar && (document.getElementById("radar")
  263. .checked = !0, document.getElementById("canvas")
  264. .style.zIndex = "1", pos.style.zIndex = "1"), sAim && (document.getElementById("sAim")
  265. .checked = !0), ahat && (document.getElementById("ahat")
  266. .checked = !0), respawn && (document.getElementById("respawn")
  267. .checked = !0), onclick && (document.getElementById("onclick")
  268. .checked = !0), offence && (document.getElementById("offence")
  269. .checked = !0), defence && (document.getElementById("defence")
  270. .checked = !0), speed && (document.getElementById("speed")
  271. .checked = !0), antiBoostSpike && (document.getElementById("antiBoostSpike")
  272. .checked = !0), antiInsta1 && (document.getElementById("antiInsta1")
  273. .checked = !0), antiInsta2 && (document.getElementById("antiInsta2")
  274. .checked = !0), antiInsta3 && (document.getElementById("antiInsta3")
  275. .checked = !0), antiInsta4 && (document.getElementById("antiInsta4")
  276. .checked = !0), iAim && (document.getElementById("iAim")
  277. .checked = !0), iReload && (document.getElementById("iReload")
  278. .checked = !0), iReverse && (document.getElementById("iReverse")
  279. .checked = !0), iSwitch && (document.getElementById("iSwitch")
  280. .checked = !0), acBool && (document.getElementById("acBool")
  281. .checked = !0), icBool && (document.getElementById("icBool")
  282. .checked = !0), irBool && (document.getElementById("irBool")
  283. .checked = !0), cPlayer && (document.getElementById("cPlayer")
  284. .checked = !0), ezBool && (document.getElementById("ezBool")
  285. .checked = !0), wLag && (document.getElementById("wLag")
  286. .checked = !0), document.getElementById("hType")
  287. .value = hType, document.getElementById("pType")
  288. .value = pType, document.getElementById("oHat")
  289. .value = oHat, document.getElementById("oAcc")
  290. .value = oAcc, document.getElementById("otHat")
  291. .value = otHat, document.getElementById("otAcc")
  292. .value = otAcc, document.getElementById("dHat")
  293. .value = dHat, document.getElementById("dAcc")
  294. .value = dAcc, document.getElementById("tHat")
  295. .value = tHat, document.getElementById("tAcc")
  296. .value = tAcc, document.getElementById("eHat")
  297. .value = eHat, document.getElementById("eAcc")
  298. .value = eAcc, document.getElementById("snHat")
  299. .value = snHat, document.getElementById("snAcc")
  300. .value = snAcc, document.getElementById("ssHat")
  301. .value = ssHat, document.getElementById("ssAcc")
  302. .value = ssAcc, document.getElementById("srHat")
  303. .value = srHat, document.getElementById("srAcc")
  304. .value = srAcc, document.getElementById("iHat1")
  305. .value = iHat1, document.getElementById("iAcc1")
  306. .value = iAcc1, document.getElementById("iHat2")
  307. .value = iHat2, document.getElementById("iAcc2")
  308. .value = iAcc2, document.getElementById("iHat3")
  309. .value = iHat3, document.getElementById("iAcc3")
  310. .value = iAcc3
  311. }, 1e3), window.onbeforeunload = null;
  312. var id, card = document.querySelector("#setupCard")
  313. , button = document.createElement("button")
  314. , menu = document.createElement("div")
  315. , styles = document.createElement("style");
  316. menu.classList.add("i-container"), menu.id = "mm-menu-container", styles.type = "text/css",
  317.  
  318. styles.innerHTML = `
  319. .circle{
  320. opacity:20%;
  321. position: absolute;
  322. top: 50%;
  323. left: 60%;
  324. transform: translate(-50%, -50%);
  325. height: 300px;
  326. width: 300px;
  327. }
  328. .circle:before{
  329. content: '';
  330. position: absolute;
  331. top:0px;
  332. left:0px;
  333. right:0px;
  334. bottom: 0px;
  335. border: 20px solid #fff;
  336. border-radius:50%;
  337. box-shadow: 0 0 50px #0f0,0 0 50px #0f0 inset;
  338. animation: animate 5s linear infinite;
  339. }.square{
  340. opacity:50%;
  341. position: fixed;
  342. top: 100%;
  343. left: 0%;
  344. transform: translate(15px, -155px);
  345. height: 130px;
  346. width: 130px;
  347. filter: url(#wavy);
  348. }
  349. .square:before{
  350. content: '';
  351. position: absolute;
  352. top:0px;
  353. left:0px;
  354. right:0px;
  355. bottom: 0px;
  356. border: 10px solid #fff;
  357. box-shadow: 0 0 50px #0f0,0 0 50px #0f0 inset;
  358. animation: animate 5s linear infinite;
  359. }
  360. @keyframes animate{
  361. 0%{
  362. box-shadow: 0 0 50px #0f0,0 0 50px #0f0 inset;
  363. filter: hue-rotate(0deg);
  364. }
  365. 20%{
  366. box-shadow: 0 0 60px #0f0,0 0 60px #0f0 inset;
  367. }
  368. 40%{
  369. box-shadow: 0 0 40px #0f0,0 0 40px #0f0 inset;
  370. }
  371. 60%{
  372. box-shadow: 0 0 80px #0f0,0 0 80px #0f0 inset;
  373. }
  374. 80%{
  375. box-shadow: 0 0 100px #0f0,0 0 100px #0f0 inset;
  376. }
  377. 100%{
  378. box-shadow: 0 0 50px #0f0,0 0 50px #0f0 inset;
  379. filter: hue-rotate(360deg);
  380. }
  381. }
  382. svg{
  383. width:0;
  384. height:0;
  385. }
  386. .open-menu-button {
  387. background-color: #00FFFF;
  388. margin-top: 5px;
  389. }
  390. .open-menu-button:hover {
  391. background-color: #00D1D1;
  392. }
  393. .keyPressLow {
  394. margin-left: 8px;
  395. font-size: 16px;
  396. margin-right: 8px;
  397. height: 25px;
  398. width: 50px;
  399. background-color: #fcfcfc;
  400. border-radius: 3.5px;
  401. text-align: center;
  402. color: #4a4a4a;
  403. border: 0.5px solid #f2f2f2;
  404. }
  405. #mm-menu-container {
  406. user-select: none;
  407. font-size: 14px;
  408. overflow: hidden;
  409. color: #fff;
  410. font-family: Verdana,sans-serif;
  411. box-sizing: border-box;
  412. position: fixed;
  413. top: 50%;
  414. left: 50%;
  415. height: 366px;
  416. width: 500px;
  417. margin-top: -183px;
  418. margin-left: -250px;
  419. z-index: 2147000000;
  420. }
  421. .i-checkbox-label {
  422. font-size: 12px;
  423. user-select: none;
  424. color: #fff;
  425. font-family: Verdana,sans-serif;
  426. box-sizing: border-box;
  427. display: block;
  428. margin: 4px;
  429. }
  430. .i-checkbox-label {
  431. font-size: 12px;
  432. user-select: none;
  433. color: #fff;
  434. font-family: Verdana,sans-serif;
  435. box-sizing: border-box;
  436. }
  437. #mm-main-menu {
  438. font-size: 12px;
  439. user-select: none;
  440. background-color: rgba(100, 100, 100, 0.4);
  441. color: #fff;
  442. font-family: Verdana,sans-serif;
  443. box-sizing: border-box;
  444. position: relative;
  445. height: 100%;
  446. padding: .5em 1em;
  447. border-top: none;
  448. margin-left: 130px;
  449. display: none;
  450. }
  451. #mm-hathack-menu {
  452. font-size: 12px;
  453. user-select: none;
  454. background-color: rgba(100, 100, 100, 0.4);
  455. color: #fff;
  456. font-family: Verdana,sans-serif;
  457. box-sizing: border-box;
  458. position: relative;
  459. height: 100%;
  460. padding: .5em 1em;
  461. border-top: none;
  462. margin-left: 130px;
  463. display: none;
  464. }
  465. #mm-offense-menu {
  466. font-size: 12px;
  467. user-select: none;
  468. color: #fff;
  469. font-family: Verdana,sans-serif;
  470. box-sizing: border-box;
  471. position: relative;
  472. height: 100%;
  473. background-color: rgba(100, 100, 100, 0.4);
  474. padding: .5em 1em;
  475. border-top: none;
  476. margin-left: 130px;
  477. display: block;
  478. }
  479. #mm-defense-menu {
  480. font-size: 12px;
  481. user-select: none;
  482. color: #fff;
  483. background-color: rgba(100, 100, 100, 0.4);
  484. font-family: Verdana,sans-serif;
  485. box-sizing: border-box;
  486. position: relative;
  487. height: 100%;
  488. padding: .5em 1em;
  489. border-top: none;
  490. margin-left: 130px;
  491. display: none;
  492. }
  493. #mm-support-menu {
  494. font-size: 12px;
  495. user-select: none;
  496. color: #fff;
  497. font-family: Verdana,sans-serif;
  498. background-color: rgba(100, 100, 100, 0.4);
  499. box-sizing: border-box;
  500. position: relative;
  501. height: 100%;
  502. padding: .5em 1em;
  503. border-top: none;
  504. margin-left: 130px;
  505. display: none;
  506. }
  507. #mm-hatmacro-menu {
  508. font-size: 12px;
  509. user-select: none;
  510. color: #fff;
  511. font-family: Verdana,sans-serif;
  512. box-sizing: border-box;
  513. position: relative;
  514. height: 100%;
  515. background-color: rgba(100, 100, 100, 0.4);
  516. padding: .5em 1em;
  517. border-top: none;
  518. margin-left: 130px;
  519. display: none;
  520. }
  521. #mm-instakill-menu {
  522. font-size: 12px;
  523. user-select: none;
  524. color: #fff;
  525. font-family: Verdana,sans-serif;
  526. box-sizing: border-box;
  527. position: relative;
  528. height: 100%;
  529. background-color: rgba(100, 100, 100, 0.4);
  530. padding: .5em 1em;
  531. border-top: none;
  532. margin-left: 130px;
  533. display: none;
  534. }
  535. #mm-controls-menu {
  536. font-size: 12px;
  537. user-select: none;
  538. color: #fff;
  539. font-family: Verdana,sans-serif;
  540. background-color: rgba(100, 100, 100, 0.4);
  541. box-sizing: border-box;
  542. position: relative;
  543. height: 100%;
  544. padding: .5em 1em;
  545. border-top: none;
  546. margin-left: 130px;
  547. display: none;
  548. }
  549. #mm-chat-menu {
  550. font-size: 12px;
  551. user-select: none;
  552. color: #fff;
  553. font-family: Verdana,sans-serif;
  554. box-sizing: border-box;
  555. position: relative;
  556. height: 100%;
  557. background-color: rgba(100, 100, 100, 0.4);
  558. padding: .5em 1em;
  559. border-top: none;
  560. margin-left: 130px;
  561. display: none;
  562. }
  563. .i-tab-container {
  564. font-size: 12px;
  565. user-select: none;
  566. color: #fff;
  567. font-family: Verdana,sans-serif;
  568. box-sizing: border-box;
  569. width: 100%;
  570. height: 100%;
  571. background-color: rgba(100, 100, 100, 0.4)
  572. }
  573. .i-tab-menu, .sidebar {
  574. font-size: 12px;
  575. user-select: none;
  576. color: #fff;
  577. font-family: Verdana,sans-serif;
  578. box-sizing: border-box;
  579. position: relative;
  580. background-color: rgba(120, 120, 120, 0.4);
  581. display: block;
  582. overflow: auto;
  583. float: left;
  584. width: 130px;
  585. height: 100%;
  586. box-shadow: 0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12);
  587. }
  588. .i-tab-menu-item {
  589. font-size: 12px;
  590. user-select: none;
  591. text-decoration: none;
  592. font-family: Verdana,sans-serif;
  593. box-sizing: border-box;
  594. color: #d15151;
  595. }
  596. .i-tab-menu-item:hover {
  597. background-color: rgb(77, 73, 73, 0.5)
  598. !important;
  599. }
  600. #mm-main-menu-item {
  601. user-select: none;
  602. color: #fff;
  603. font-family: Verdana,sans-serif;
  604. box-sizing: border-box;
  605. float: left;
  606. background-color: inherit;
  607. padding: 8px 8px;
  608. margin: 0;
  609. border: none;
  610. font-size: 14px;
  611. text-align: center;
  612. outline: 0;
  613. transition: .3s;
  614. width: 100%;
  615. }
  616. #mm-hathack-menu-item {
  617. user-select: none;
  618. color: #fff;
  619. font-family: Verdana,sans-serif;
  620. box-sizing: border-box;
  621. float: left;
  622. background-color: inherit;
  623. padding: 8px 8px;
  624. margin: 0;
  625. border: none;
  626. font-size: 14px;
  627. text-align: center;
  628. outline: 0;
  629. transition: .3s;
  630. width: 100%;
  631. }
  632. #mm-offense-menu-item {
  633. user-select: none;
  634. color: #fff;
  635. font-family: Verdana,sans-serif;
  636. box-sizing: border-box;
  637. float: left;
  638. background-color: inherit;
  639. padding: 8px 8px;
  640. margin: 0;
  641. border: none;
  642. font-size: 14px;
  643. text-align: center;
  644. outline: 0;
  645. transition: .3s;
  646. width: 100%;
  647. }
  648. #mm-defense-menu-item {
  649. user-select: none;
  650. color: #fff;
  651. font-family: Verdana,sans-serif;
  652. box-sizing: border-box;
  653. float: left;
  654. padding: 8px 8px;
  655. margin: 0;
  656. border: none;
  657. font-size: 14px;
  658. text-align: center;
  659. outline: 0;
  660. transition: .3s;
  661. width: 100%;
  662. }
  663. #mm-support-menu-item {
  664. user-select: none;
  665. color: #fff;
  666. font-family: Verdana,sans-serif;
  667. box-sizing: border-box;
  668. float: left;
  669. background-color: inherit;
  670. padding: 8px 8px;
  671. margin: 0;
  672. border: none;
  673. font-size: 14px;
  674. text-align: center;
  675. outline: 0;
  676. transition: .3s;
  677. width: 100%;
  678. }
  679. #mm-instakill-menu-item {
  680. user-select: none;
  681. color: #fff;
  682. font-family: Verdana,sans-serif;
  683. box-sizing: border-box;
  684. float: left;
  685. background-color: inherit;
  686. padding: 8px 8px;
  687. margin: 0;
  688. border: none;
  689. font-size: 14px;
  690. text-align: center;
  691. outline: 0;
  692. transition: .3s;
  693. width: 100%;
  694. }
  695. #mm-hatmacro-menu-item {
  696. user-select: none;
  697. color: #fff;
  698. font-family: Verdana,sans-serif;
  699. box-sizing: border-box;
  700. float: left;
  701. background-color: inherit;
  702. padding: 8px 8px;
  703. margin: 0;
  704. border: none;
  705. font-size: 14px;
  706. text-align: center;
  707. outline: 0;
  708. transition: .3s;
  709. width: 100%;
  710. }
  711. #mm-changewepaon-menu-item {
  712. user-select: none;
  713. color: #fff;
  714. font-family: Verdana,sans-serif;
  715. box-sizing: border-box;
  716. float: left;
  717. background-color: inherit;
  718. padding: 8px 8px;
  719. margin: 0;
  720. border: none;
  721. font-size: 14px;
  722. text-align: center;
  723. outline: 0;
  724. transition: .3s;
  725. width: 100%;
  726. }
  727. .i-tab-menu-item {
  728. user-select: none;
  729. color: #fff;
  730. font-family: Verdana,sans-serif;
  731. box-sizing: border-box;
  732. float: left;
  733. background-color: inherit;
  734. padding: 8px 8px;
  735. margin: 0;
  736. border: none;
  737. font-size: 14px;
  738. text-align: center;
  739. outline: 0;
  740. transition: .3s;
  741. width: 100%;
  742. }
  743. #mm-controls-menu-item {
  744. user-select: none;
  745. color: #fff;
  746. font-family: Verdana,sans-serif;
  747. box-sizing: border-box;
  748. float: left;
  749. background-color: inherit;
  750. padding: 8px 8px;
  751. margin: 0;
  752. border: none;
  753. font-size: 14px;
  754. text-align: center;
  755. outline: 0;
  756. transition: .3s;
  757. width: 100%;
  758. }
  759. .is-active {
  760. background-color: rgb(129, 34, 34, 0.5) !important;
  761. }
  762. .keyPressLow {
  763. margin-left: 8px;
  764. font-size: 16px;
  765. margin-right: 8px;
  766. height: 25px;
  767. width: 50px;
  768. background-color: #fcfcfc;
  769. border-radius: 3.5px;
  770. border: none;
  771. text-align: center;
  772. color: #4A4A4A;
  773. border: 0.5px solid #f2f2f2;
  774. }
  775. .menuPrompt {
  776. font-size: 17px;
  777. font-family: 'Hammersmith One';
  778. color: #4A4A4A;
  779. flex: 0.2;
  780. text-align: center;
  781. margin-top: 10px;
  782. display: inline-block;
  783. }
  784. .modal {
  785. display: none;
  786. position: fixed;
  787. z-index: 1;
  788. left: 0;
  789. top: 0;
  790. overflow: auto;
  791. height: 100%;
  792. width: 100%;
  793. }
  794. .modalx {
  795. display: none;
  796. position: fixed;
  797. z-index: 1;
  798. left: 0;
  799. top: 0;
  800. overflow: auto;
  801. height: 100%;
  802. width: 100%;
  803. }
  804. .Msgmodal {
  805. display: none;
  806. position: fixed;
  807. z-index: 1;
  808. left: 0;
  809. top: 0;
  810. overflow: auto;
  811. height: 100%;
  812. width: 100%;
  813. }
  814. .modal-content {
  815. margin: 10% auto;
  816. width: 40%;
  817. box-shadow: 0 5px 8px 0 rgba(0, 0, 0, 0.2), 0 7px 20px 0 rgba(0, 0, 0, 0.17);
  818. font-size: 14px;
  819. line-height: 1.6;
  820. }
  821. .modal-headerx h2, .modal-footerx h3 {
  822. margin: 0;
  823. }
  824. .modal-headerx {
  825. background: #404040;
  826. padding: 15px;
  827. color: #fff;
  828. border-top-left-radius: 5px;
  829. border-top-right-radius: 5px;
  830. }
  831. .modal-footerx {
  832. background: #404040;
  833. padding: 10px;
  834. color: #fff;
  835. text-align: center;
  836. border-bottom-left-radius: 5px;
  837. border-bottom-right-radius: 5px;
  838. }
  839. .modal-headerwtf h2, .modal-footerwtf h3 {
  840. margin: 0;
  841. }
  842. .modal-headerwtf {
  843. background: #404040;
  844. padding: 15px;
  845. color: #fff;
  846. border-top-left-radius: 5px;
  847. border-top-right-radius: 5px;
  848. }
  849. .modal-footerwtf {
  850. background: #404040;
  851. padding: 10px;
  852. color: #fff;
  853. text-align: center;
  854. border-bottom-left-radius: 5px;
  855. border-bottom-right-radius: 5px;
  856. }
  857. .modal-header h2, .modal-footer h3 {
  858. margin: 0;
  859. }
  860. .modal-header {
  861. background: #404040;
  862. padding: 15px;
  863. color: #fff;
  864. border-top-left-radius: 5px;
  865. border-top-right-radius: 5px;
  866. }
  867. .modal-body {
  868. padding: 10px 20px;
  869. background: #fff;
  870. }
  871. .modal-footer {
  872. background: #404040;
  873. padding: 10px;
  874. color: #fff;
  875. text-align: center;
  876. border-bottom-left-radius: 5px;
  877. border-bottom-right-radius: 5px;
  878. }
  879. .closeBtn {
  880. color: #ccc;
  881. float: right;
  882. font-size: 30px;
  883. color: #fff;
  884. }
  885. .closeBtn:hover, .closeBtn:focus {
  886. color: #dd4a42;
  887. text-decoration: none;
  888. cursor: pointer;
  889. }
  890. .closeBtnx {
  891. color: #ccc;
  892. float: right;
  893. font-size: 30px;
  894. color: #fff;
  895. }
  896. .closeBtnx:hover, .closeBtnx:focus {
  897. color: #dd4a42;
  898. text-decoration: none;
  899. cursor: pointer;
  900. }
  901. .MsgcloseBtn {
  902. color: #ccc;
  903. float: right;
  904. font-size: 30px;
  905. color: #fff;
  906. }
  907. .MsgcloseBtn:hover, .MsgcloseBtn:focus {
  908. color: #dd4a42;
  909. text-decoration: none;
  910. cursor: pointer;
  911. }
  912. /* Customize the label (the container) */
  913. .container {
  914. display: block;
  915. position: relative;
  916. padding-left: 35px;
  917. margin-bottom: 12px;
  918. cursor: pointer;
  919. font-size: 16px;
  920. -webkit-user-select: none;
  921. -moz-user-select: none;
  922. -ms-user-select: none;
  923. user-select: none;
  924. }
  925. /* Hide the browser's default checkbox */
  926. .container input {
  927. position: absolute;
  928. opacity: 0;
  929. cursor: pointer;
  930. height: 0;
  931. width: 0;
  932. }
  933. /* Create a custom checkbox */
  934. .checkmark {
  935. position: absolute;
  936. top: 0;
  937. left: 0;
  938. height: 25px;
  939. width: 25px;
  940. background-color: #eee;
  941. }`;
  942.  
  943. menu.innerHTML = `
  944. <div class="circle">
  945. <svg>
  946. <filter id = "wavy">
  947. <feTurbulence x="0" y="0" baseFrequency="0.5" numOctaves="5" seed="2"/>
  948. <feDisplacementMap in="SourceGraphic" scale="30"/>
  949. </filter>
  950. </svg>
  951. </div>
  952. <div class="i-tab-container">
  953. <div class="i-tab-menu sidebar">
  954. <a><h2 class="i-tab-menu-item">Lost Settings</h2></a>
  955. <button id="mm-main-menu-item" class="i-tab-menu-item is-active">Main</button>
  956. <button id="mm-offense-menu-item" class="i-tab-menu-item">Offense</button>
  957. <button id="mm-defense-menu-item" class="i-tab-menu-item">Defense</button>
  958. <button id="mm-support-menu-item" class="i-tab-menu-item">Support</button>
  959. <button id="mm-controls-menu-item" class="i-tab-menu-item">Controls</button>
  960. <button id="mm-instakill-menu-item" class="i-tab-menu-item">InstaKill</button>
  961. <button id="mm-instakill-menu-item" class="i-tab-menu-item">Chat</button>
  962. <button id="mm-instakill-menu-item" class="i-tab-menu-item">HatMacro</button>
  963. </div>
  964. <div id="mm-main-menu" class="i-tab-content" style="overflow-y: scroll;">
  965. <h3>Main</h3>
  966. <div>
  967. <label class="AutoHeal"><input id="heal1" type="checkbox" class="i-checkbox" />Auto Heal</label>
  968. </div>
  969. <form action="/action_page.php">
  970. <label for="acc">Heal Type: </label>
  971. <select name="hat" id="hType">
  972. <option value="0">Normal</option>
  973. <option value="1">Linear</option>
  974. <option value="2">Quadratic</option>
  975. <option value="3">Interval</option>
  976. <option value="4">Slow</option>
  977. <option value="5">FAST</option>
  978. </select>
  979. </form>
  980. <div>
  981. <label class="AutoHeal"><input id="heal2" type="checkbox" class="i-checkbox" />Double Heal</label>
  982. </div>
  983. <div>
  984. <label class="InstaKill"><input id="insta" type="checkbox" class="i-checkbox" />Insta-Kill</label>
  985. </div>
  986. <div>
  987. <label class="radar"><input id="radar" type="checkbox" class="i-checkbox" />Radar</label>
  988. </div>
  989. <div>
  990. <label class="radar"><input id="sAim" type="checkbox" class="i-checkbox" />Target Prediction</label>
  991. </div>
  992. <div>
  993. <label class="radar"><input id="ahat" type="checkbox" class="i-checkbox" checked/>Auto-Hat</label>
  994. </div>
  995. <div>
  996. <label class="radar"><input id="respawn" type="checkbox" class="i-checkbox" />Auto-Respawn</label>
  997. </div>
  998. <div style="overflow-y: scroll;">
  999. Beta anti-insta? <input id="extraAnti" type="checkbox" checked><br>
  1000. Beta anti-insta 2? (W.I.P. don't use) <input id="newAnti" type="checkbox"><br>
  1001. ("Warning : Xms" message) Ping Warning? <input id="doMSWarning" type="checkbox" checked><br>
  1002. Respawn !!~_Da-rrkX_~!!? <input id="respawnGBots" type="checkbox" checked><br>
  1003. Anti-age insta? <input id="doAntiAge" type="checkbox" checked><br>
  1004. Anti-no bull insta? <input id="doAntiNobull" type="checkbox" checked><br>
  1005. <!-- Anti-skid tick? (25 + 80 insta) <input id="antiSkidTick" type="checkbox" checked><br> -->
  1006. Do Anti-Trap? <input id="doAntiTrap" type="checkbox" checked><br>
  1007. Do Anti-Trap Chat? <input id="doAntiTrapChat" type="checkbox" checked><br>
  1008. Anti-Trap Chat (if enabled) <input type="text" id="antiTrapChat" checked value="~|Lost Anti Trap OP|~"><br>
  1009. Chat mirror? <input id="cMirr" type="checkbox"><br>
  1010. Auto-360 shield? <input type="checkbox" id="shield360" checked><br>
  1011. Autobreak? <input type="checkbox" id="autoBreak"><br>
  1012. Switch hotkeys to invisible buildings? <input type="checkbox" id="invisBuilds"><br>
  1013. </div>
  1014. <fieldset>
  1015. <legend>Hats/Accessories</legend>
  1016. <div>
  1017. <label class="Click0"><input id="offence" type="checkbox" class="i-checkbox" />Offense</label>
  1018. </div>
  1019. <div>
  1020. <label class="HatHacking"><input id="defence" type="checkbox" class="i-checkbox" />Defensive Gear</label>
  1021. </div>
  1022. <div>
  1023. <label class="support"><input id="speed" type="checkbox" class="i-checkbox" />Support Gear</label>
  1024. </div>
  1025. </fieldset>
  1026. <div>
  1027. <label class="AutoHeal"><input id="derp" type="checkbox" class="i-checkbox" />DERP</label>
  1028. </div>
  1029. <div>
  1030. <label class="AutoHeal"><input id="deathCrash" type="checkbox" class="i-checkbox" /><b>OFF</b> Death Crash</label>
  1031. </div>
  1032. <div class="i-palomita">Made By : Wynd and <a href="https://www.youtube.com/channel/UCfPlaEXq5BWJQzRwr5Qywwg?sub_confirmation=1">FZ</a></div>
  1033. </div>
  1034. <div id="mm-offense-menu" class="i-tab-content" style="display: none;">
  1035. <h3>Offense</h3>
  1036. <form action="/action_page.php">
  1037. <label for="acc">Place Type: </label>
  1038. <select name="hat" id="pType">
  1039. <option value="0">Normal</option>
  1040. <option value="1">Legit</option>
  1041. <option value="2">Varience</option>
  1042. <option value="3">Derp</option>
  1043. </select>
  1044. </form>
  1045. <fieldset>
  1046. <legend>DMG</legend>
  1047. <div>
  1048. <label class="AutoHeal"><input id="onclick" type="checkbox" class="i-checkbox" />On Click</label>
  1049. </div>
  1050. <form action="/action_page.php">
  1051. <label for="hat">Hat:</label>
  1052. <select name="hat" id="oHat">
  1053. <option value="0">none</option>
  1054. <option value="51">Moo Cap</option>
  1055. <option value="50">Apple Cap</option>
  1056. <option value="28">Moo Head</option>
  1057. <option value="29">Pig Head</option>
  1058. <option value="30">Fluff Head</option>
  1059. <option value="36">Pandou Head</option>
  1060. <option value="37">Bear Head</option>
  1061. <option value="38">Monkey Head</option>
  1062. <option value="44">Polar Head</option>
  1063. <option value="35">Fez Hat</option>
  1064. <option value="42">Enigma Hat</option>
  1065. <option value="43">Blitz Hat</option>
  1066. <option value="49">Bob XIII Hat</option>
  1067. <option value="57">Pumpkin</option>
  1068. <option value="8">Bummle Hat</option>
  1069. <option value="2">Straw Hat</option>
  1070. <option value="15">Winter Cap</option>
  1071. <option value="5">Cowboy Hat</option>
  1072. <option value="4">Ranger Hat</option>
  1073. <option value="18">Explorer Hat</option>
  1074. <option value="31">Flipper Hat</option>
  1075. <option value="1">Marksman Cap</option>
  1076. <option value="10">Bush Gear</option>
  1077. <option value="48">Halo</option>
  1078. <option value="6">Soldier Helmet</option>
  1079. <option value="32">Anti Venom Gear</option>
  1080. <option value="13">Medic Gear</option>
  1081. <option value="9">Miners Helmet</option>
  1082. <option value="32">Musketeer Hat</option>
  1083. <option value="7">Bull Helmet</option>
  1084. <option value="22">Emp Helmet</option>
  1085. <option value="12">Booster Hat</option>
  1086. <option value="26">Barbarian Armor</option>
  1087. <option value="21">Plague Mask</option>
  1088. <option value="46">Bull Mask</option>
  1089. <option value="14">Windmill Hat</option>
  1090. <option value="11">Spike Gear</option>
  1091. <option value="53">Turret Gear</option>
  1092. <option value="20">Samurai Armor</option>
  1093. <option value="58">Dark Knight</option>
  1094. <option value="27">Scavenger Gear</option>
  1095. <option value="40">Tank Gear</option>
  1096. <option value="52">Thief Gear</option>
  1097. <option value="55">Bloodthirster</option>
  1098. <option value="56">Assassin Gear</option>
  1099. </select>
  1100. </form>
  1101. <form action="/action_page.php">
  1102. <label for="acc">Accessory:</label>
  1103. <select name="acc" id="oAcc">
  1104. <option value="0">None</option>
  1105. <option value="12">Snowball</option>
  1106. <option value="9">Tree Cape</option>
  1107. <option value="10">Stone Cape</option>
  1108. <option value="3">Cookie Cape</option>
  1109. <option value="8">Cow Cape</option>
  1110. <option value="11">Monkey Tail</option>
  1111. <option value="17">Apple Basket</option>
  1112. <option value="6">Winter Cape</option>
  1113. <option value="4">Skull Cape</option>
  1114. <option value="5">Dash Cape</option>
  1115. <option value="2">Dragon Cape</option>
  1116. <option value="1">Super Cape</option>
  1117. <option value="7">Troll Cape</option>
  1118. <option value="14">Thorns</option>
  1119. <option value="15">Blockades</option>
  1120. <option value="20">Devils Tail</option>
  1121. <option value="16">Sawblade</option>
  1122. <option value="13">Angel Wings</option>
  1123. <option value="19">SWings</option>
  1124. <option value="18">BWings</option>
  1125. <option value="21">CX Wings</option>
  1126. </select>
  1127. </form>
  1128. </fieldset>
  1129. <fieldset>
  1130. <legend>Tank</legend>
  1131. <form action="/action_page.php">
  1132. <label for="hat">Hat: </label>
  1133. <select name="acc" id="tHat">
  1134. <option value="0">none</option>
  1135. <option value="51">Moo Cap</option>
  1136. <option value="50">Apple Cap</option>
  1137. <option value="28">Moo Head</option>
  1138. <option value="29">Pig Head</option>
  1139. <option value="30">Fluff Head</option>
  1140. <option value="36">Pandou Head</option>
  1141. <option value="37">Bear Head</option>
  1142. <option value="38">Monkey Head</option>
  1143. <option value="44">Polar Head</option>
  1144. <option value="35">Fez Hat</option>
  1145. <option value="42">Enigma Hat</option>
  1146. <option value="43">Blitz Hat</option>
  1147. <option value="49">Bob XIII Hat</option>
  1148. <option value="57">Pumpkin</option>
  1149. <option value="8">Bummle Hat</option>
  1150. <option value="2">Straw Hat</option>
  1151. <option value="15">Winter Cap</option>
  1152. <option value="5">Cowboy Hat</option>
  1153. <option value="4">Ranger Hat</option>
  1154. <option value="18">Explorer Hat</option>
  1155. <option value="31">Flipper Hat</option>
  1156. <option value="1">Marksman Cap</option>
  1157. <option value="10">Bush Gear</option>
  1158. <option value="48">Halo</option>
  1159. <option value="6">Soldier Helmet</option>
  1160. <option value="32">Anti Venom Gear</option>
  1161. <option value="13">Medic Gear</option>
  1162. <option value="9">Miners Helmet</option>
  1163. <option value="32">Musketeer Hat</option>
  1164. <option value="7">Bull Helmet</option>
  1165. <option value="22">Emp Helmet</option>
  1166. <option value="12">Booster Hat</option>
  1167. <option value="26">Barbarian Armor</option>
  1168. <option value="21">Plague Mask</option>
  1169. <option value="46">Bull Mask</option>
  1170. <option value="14">Windmill Hat</option>
  1171. <option value="11">Spike Gear</option>
  1172. <option value="53">Turret Gear</option>
  1173. <option value="20">Samurai Armor</option>
  1174. <option value="58">Dark Knight</option>
  1175. <option value="27">Scavenger Gear</option>
  1176. <option value="40">Tank Gear</option>
  1177. <option value="52">Thief Gear</option>
  1178. <option value="55">Bloodthirster</option>
  1179. <option value="56">Assassin Gear</option>
  1180. </select>
  1181. </form>
  1182. <form action="/action_page.php">
  1183. <label for="acc">Accessory: </label>
  1184. <select name="acc" id="tAcc">
  1185. <option value="0">none</option>
  1186. <option value="12">Snowball</option>
  1187. <option value="9">Tree Cape</option>
  1188. <option value="10">Stone Cape</option>
  1189. <option value="3">Cookie Cape</option>
  1190. <option value="8">Cow Cape</option>
  1191. <option value="11">Monkey Tail</option>
  1192. <option value="17">Apple Basket</option>
  1193. <option value="6">Winter Cape</option>
  1194. <option value="4">Skull Cape</option>
  1195. <option value="5">Dash Cape</option>
  1196. <option value="2">Dragon Cape</option>
  1197. <option value="1">Super Cape</option>
  1198. <option value="7">Troll Cape</option>
  1199. <option value="14">Thorns</option>
  1200. <option value="15">Blockades</option>
  1201. <option value="20">Devils Tail</option>
  1202. <option value="16">Sawblade</option>
  1203. <option value="13">Angel Wings</option>
  1204. <option value="19">SWings</option>
  1205. <option value="18">BWings</option>
  1206. <option value="21">CX Wings</option>
  1207. </select>
  1208. </form>
  1209. </fieldset>
  1210. <fieldset id="mm-supportDefaults">
  1211. <legend>Turret</legend>
  1212. <form action="/action_page.php">
  1213. <label for="hat">Hat:</label>
  1214. <select name="hat" id="otHat">
  1215. <option value="0">none</option>
  1216. <option value="51">Moo Cap</option>
  1217. <option value="50">Apple Cap</option>
  1218. <option value="28">Moo Head</option>
  1219. <option value="29">Pig Head</option>
  1220. <option value="30">Fluff Head</option>
  1221. <option value="36">Pandou Head</option>
  1222. <option value="37">Bear Head</option>
  1223. <option value="38">Monkey Head</option>
  1224. <option value="44">Polar Head</option>
  1225. <option value="35">Fez Hat</option>
  1226. <option value="42">Enigma Hat</option>
  1227. <option value="43">Blitz Hat</option>
  1228. <option value="49">Bob XIII Hat</option>
  1229. <option value="57">Pumpkin</option>
  1230. <option value="8">Bummle Hat</option>
  1231. <option value="2">Straw Hat</option>
  1232. <option value="15">Winter Cap</option>
  1233. <option value="5">Cowboy Hat</option>
  1234. <option value="4">Ranger Hat</option>
  1235. <option value="18">Explorer Hat</option>
  1236. <option value="31">Flipper Hat</option>
  1237. <option value="1">Marksman Cap</option>
  1238. <option value="10">Bush Gear</option>
  1239. <option value="48">Halo</option>
  1240. <option value="6">Soldier Helmet</option>
  1241. <option value="32">Anti Venom Gear</option>
  1242. <option value="13">Medic Gear</option>
  1243. <option value="9">Miners Helmet</option>
  1244. <option value="32">Musketeer Hat</option>
  1245. <option value="7">Bull Helmet</option>
  1246. <option value="22">Emp Helmet</option>
  1247. <option value="12">Booster Hat</option>
  1248. <option value="26">Barbarian Armor</option>
  1249. <option value="21">Plague Mask</option>
  1250. <option value="46">Bull Mask</option>
  1251. <option value="14">Windmill Hat</option>
  1252. <option value="11">Spike Gear</option>
  1253. <option value="53">Turret Gear</option>
  1254. <option value="20">Samurai Armor</option>
  1255. <option value="58">Dark Knight</option>
  1256. <option value="27">Scavenger Gear</option>
  1257. <option value="40">Tank Gear</option>
  1258. <option value="52">Thief Gear</option>
  1259. <option value="55">Bloodthirster</option>
  1260. <option value="56">Assassin Gear</option>
  1261. </select>
  1262. </form>
  1263. <form action="/action_page.php">
  1264. <label for="acc">Accessory:</label>
  1265. <select name="acc" id="otAcc">
  1266. <option value="0">none</option>
  1267. <option value="12">Snowball</option>
  1268. <option value="9">Tree Cape</option>
  1269. <option value="10">Stone Cape</option>
  1270. <option value="3">Cookie Cape</option>
  1271. <option value="8">Cow Cape</option>
  1272. <option value="11">Monkey Tail</option>
  1273. <option value="17">Apple Basket</option>
  1274. <option value="6">Winter Cape</option>
  1275. <option value="4">Skull Cape</option>
  1276. <option value="5">Dash Cape</option>
  1277. <option value="2">Dragon Cape</option>
  1278. <option value="1">Super Cape</option>
  1279. <option value="7">Troll Cape</option>
  1280. <option value="14">Thorns</option>
  1281. <option value="15">Blockades</option>
  1282. <option value="20">Devils Tail</option>
  1283. <option value="16">Sawblade</option>
  1284. <option value="13">Angel Wings</option>
  1285. <option value="19">SWings</option>
  1286. <option value="18">BWings</option>
  1287. <option value="21">CX Wings</option>
  1288. </select>
  1289. </form>
  1290. </fieldset>
  1291. <div class="i-palomita">Made By : Wynd and <a href="https://www.youtube.com/channel/UCfPlaEXq5BWJQzRwr5Qywwg?sub_confirmation=1">FZ</a></div>
  1292. </div>
  1293. <div id="mm-defense-menu" class="i-tab-content" style="display: none;">
  1294. <h3>Defense</h3>
  1295. <fieldset>
  1296. <legend>Default</legend>
  1297. <form action="/action_page.php">
  1298. <label for="hat">Hat: </label>
  1299. <select name="acc" id="dHat">
  1300. <option value="0">none</option>
  1301. <option value="51">Moo Cap</option>
  1302. <option value="50">Apple Cap</option>
  1303. <option value="28">Moo Head</option>
  1304. <option value="29">Pig Head</option>
  1305. <option value="30">Fluff Head</option>
  1306. <option value="36">Pandou Head</option>
  1307. <option value="37">Bear Head</option>
  1308. <option value="38">Monkey Head</option>
  1309. <option value="44">Polar Head</option>
  1310. <option value="35">Fez Hat</option>
  1311. <option value="42">Enigma Hat</option>
  1312. <option value="43">Blitz Hat</option>
  1313. <option value="49">Bob XIII Hat</option>
  1314. <option value="57">Pumpkin</option>
  1315. <option value="8">Bummle Hat</option>
  1316. <option value="2">Straw Hat</option>
  1317. <option value="15">Winter Cap</option>
  1318. <option value="5">Cowboy Hat</option>
  1319. <option value="4">Ranger Hat</option>
  1320. <option value="18">Explorer Hat</option>
  1321. <option value="31">Flipper Hat</option>
  1322. <option value="1">Marksman Cap</option>
  1323. <option value="10">Bush Gear</option>
  1324. <option value="48">Halo</option>
  1325. <option value="6">Soldier Helmet</option>
  1326. <option value="32">Anti Venom Gear</option>
  1327. <option value="13">Medic Gear</option>
  1328. <option value="9">Miners Helmet</option>
  1329. <option value="32">Musketeer Hat</option>
  1330. <option value="7">Bull Helmet</option>
  1331. <option value="22">Emp Helmet</option>
  1332. <option value="12">Booster Hat</option>
  1333. <option value="26">Barbarian Armor</option>
  1334. <option value="21">Plague Mask</option>
  1335. <option value="46">Bull Mask</option>
  1336. <option value="14">Windmill Hat</option>
  1337. <option value="11">Spike Gear</option>
  1338. <option value="53">Turret Gear</option>
  1339. <option value="20">Samurai Armor</option>
  1340. <option value="58">Dark Knight</option>
  1341. <option value="27">Scavenger Gear</option>
  1342. <option value="40">Tank Gear</option>
  1343. <option value="52">Thief Gear</option>
  1344. <option value="55">Bloodthirster</option>
  1345. <option value="56">Assassin Gear</option>
  1346. </select>
  1347. </form>
  1348. <form action="/action_page.php">
  1349. <label for="acc">Accessory: </label>
  1350. <select name="acc" id="dAcc">
  1351. <option value="0">none</option>
  1352. <option value="12">Snowball</option>
  1353. <option value="9">Tree Cape</option>
  1354. <option value="10">Stone Cape</option>
  1355. <option value="3">Cookie Cape</option>
  1356. <option value="8">Cow Cape</option>
  1357. <option value="11">Monkey Tail</option>
  1358. <option value="17">Apple Basket</option>
  1359. <option value="6">Winter Cape</option>
  1360. <option value="4">Skull Cape</option>
  1361. <option value="5">Dash Cape</option>
  1362. <option value="2">Dragon Cape</option>
  1363. <option value="1">Super Cape</option>
  1364. <option value="7">Troll Cape</option>
  1365. <option value="14">Thorns</option>
  1366. <option value="15">Blockades</option>
  1367. <option value="20">Devils Tail</option>
  1368. <option value="16">Sawblade</option>
  1369. <option value="13">Angel Wings</option>
  1370. <option value="19">SWings</option>
  1371. <option value="18">BWings</option>
  1372. <option value="21">CX Wings</option>
  1373. </select>
  1374. </form>
  1375. </fieldset>
  1376. <fieldset>
  1377. <legend>EMP</legend>
  1378. <form action="/action_page.php">
  1379. <label for="hat">Hat: </label>
  1380. <select name="acc" id="eHat">
  1381. <option value="0">none</option>
  1382. <option value="51">Moo Cap</option>
  1383. <option value="50">Apple Cap</option>
  1384. <option value="28">Moo Head</option>
  1385. <option value="29">Pig Head</option>
  1386. <option value="30">Fluff Head</option>
  1387. <option value="36">Pandou Head</option>
  1388. <option value="37">Bear Head</option>
  1389. <option value="38">Monkey Head</option>
  1390. <option value="44">Polar Head</option>
  1391. <option value="35">Fez Hat</option>
  1392. <option value="42">Enigma Hat</option>
  1393. <option value="43">Blitz Hat</option>
  1394. <option value="49">Bob XIII Hat</option>
  1395. <option value="57">Pumpkin</option>
  1396. <option value="8">Bummle Hat</option>
  1397. <option value="2">Straw Hat</option>
  1398. <option value="15">Winter Cap</option>
  1399. <option value="5">Cowboy Hat</option>
  1400. <option value="4">Ranger Hat</option>
  1401. <option value="18">Explorer Hat</option>
  1402. <option value="31">Flipper Hat</option>
  1403. <option value="1">Marksman Cap</option>
  1404. <option value="10">Bush Gear</option>
  1405. <option value="48">Halo</option>
  1406. <option value="6">Soldier Helmet</option>
  1407. <option value="32">Anti Venom Gear</option>
  1408. <option value="13">Medic Gear</option>
  1409. <option value="9">Miners Helmet</option>
  1410. <option value="32">Musketeer Hat</option>
  1411. <option value="7">Bull Helmet</option>
  1412. <option value="22">Emp Helmet</option>
  1413. <option value="12">Booster Hat</option>
  1414. <option value="26">Barbarian Armor</option>
  1415. <option value="21">Plague Mask</option>
  1416. <option value="46">Bull Mask</option>
  1417. <option value="14">Windmill Hat</option>
  1418. <option value="11">Spike Gear</option>
  1419. <option value="53">Turret Gear</option>
  1420. <option value="20">Samurai Armor</option>
  1421. <option value="58">Dark Knight</option>
  1422. <option value="27">Scavenger Gear</option>
  1423. <option value="40">Tank Gear</option>
  1424. <option value="52">Thief Gear</option>
  1425. <option value="55">Bloodthirster</option>
  1426. <option value="56">Assassin Gear</option>
  1427. </select>
  1428. </form>
  1429. <form action="/action_page.php">
  1430. <label for="acc">Accessory: </label>
  1431. <select name="acc" id="eAcc">
  1432. <option value="0">none</option>
  1433. <option value="12">Snowball</option>
  1434. <option value="9">Tree Cape</option>
  1435. <option value="10">Stone Cape</option>
  1436. <option value="3">Cookie Cape</option>
  1437. <option value="8">Cow Cape</option>
  1438. <option value="11">Monkey Tail</option>
  1439. <option value="17">Apple Basket</option>
  1440. <option value="6">Winter Cape</option>
  1441. <option value="4">Skull Cape</option>
  1442. <option value="5">Dash Cape</option>
  1443. <option value="2">Dragon Cape</option>
  1444. <option value="1">Super Cape</option>
  1445. <option value="7">Troll Cape</option>
  1446. <option value="14">Thorns</option>
  1447. <option value="15">Blockades</option>
  1448. <option value="20">Devils Tail</option>
  1449. <option value="16">Sawblade</option>
  1450. <option value="13">Angel Wings</option>
  1451. <option value="19">SWings</option>
  1452. <option value="18">BWings</option>
  1453. <option value="21">CX Wings</option>
  1454. </select>
  1455. </form>
  1456. </fieldset>
  1457. <fieldset>
  1458. <legend>Auto Defence</legend>
  1459. <div>
  1460. <label class="defheal"><input id="antiInsta1" type="checkbox" class="i-checkbox" />Anti-InstaKill(Normal)</label>
  1461. </div>
  1462. <div>
  1463. <label class="defheal"><input id="antiInsta2" type="checkbox" class="i-checkbox" />Anti-InstaKill(Reverse)</label>
  1464. </div>
  1465. <div>
  1466. <label class="defheal"><input id="antiInsta3" type="checkbox" class="i-checkbox" />Anti-InstaKill(BloodThirster)</label>
  1467. </div>
  1468. <div>
  1469. <label class="defheal"><input id="antiInsta4" type="checkbox" class="i-checkbox" />Anti-InstaKill(Bow W.I.P.)</label>
  1470. </div>
  1471. <div>
  1472. <label class="defheal"><input id="antiBoostSpike" type="checkbox" class="i-checkbox" />Anti-BoostSpike</label>
  1473. </div>
  1474. </fieldset>
  1475. <div class="i-palomita">Made By : Wynd and <a href="https://www.youtube.com/channel/UCfPlaEXq5BWJQzRwr5Qywwg?sub_confirmation=1" >FZ</a></div>
  1476. </div>
  1477. <div id="mm-support-menu" class="i-tab-content" style="display: none;">
  1478. <h3>Support</h3>
  1479. <fieldset>
  1480. <legend>Speed Armor Normal</legend>
  1481. <form action="/action_page.php">
  1482. <label for="hat">Hat: </label>
  1483. <select name="hat" id="snHat">
  1484. <option value="0">none</option>
  1485. <option value="51">Moo Cap</option>
  1486. <option value="50">Apple Cap</option>
  1487. <option value="28">Moo Head</option>
  1488. <option value="29">Pig Head</option>
  1489. <option value="30">Fluff Head</option>
  1490. <option value="36">Pandou Head</option>
  1491. <option value="37">Bear Head</option>
  1492. <option value="38">Monkey Head</option>
  1493. <option value="44">Polar Head</option>
  1494. <option value="35">Fez Hat</option>
  1495. <option value="42">Enigma Hat</option>
  1496. <option value="43">Blitz Hat</option>
  1497. <option value="49">Bob XIII Hat</option>
  1498. <option value="57">Pumpkin</option>
  1499. <option value="8">Bummle Hat</option>
  1500. <option value="2">Straw Hat</option>
  1501. <option value="15">Winter Cap</option>
  1502. <option value="5">Cowboy Hat</option>
  1503. <option value="4">Ranger Hat</option>
  1504. <option value="18">Explorer Hat</option>
  1505. <option value="31">Flipper Hat</option>
  1506. <option value="1">Marksman Cap</option>
  1507. <option value="10">Bush Gear</option>
  1508. <option value="48">Halo</option>
  1509. <option value="6">Soldier Helmet</option>
  1510. <option value="32">Anti Venom Gear</option>
  1511. <option value="13">Medic Gear</option>
  1512. <option value="9">Miners Helmet</option>
  1513. <option value="32">Musketeer Hat</option>
  1514. <option value="7">Bull Helmet</option>
  1515. <option value="22">Emp Helmet</option>
  1516. <option value="12">Booster Hat</option>
  1517. <option value="26">Barbarian Armor</option>
  1518. <option value="21">Plague Mask</option>
  1519. <option value="46">Bull Mask</option>
  1520. <option value="14">Windmill Hat</option>
  1521. <option value="11">Spike Gear</option>
  1522. <option value="53">Turret Gear</option>
  1523. <option value="20">Samurai Armor</option>
  1524. <option value="58">Dark Knight</option>
  1525. <option value="27">Scavenger Gear</option>
  1526. <option value="40">Tank Gear</option>
  1527. <option value="52">Thief Gear</option>
  1528. <option value="55">Bloodthirster</option>
  1529. <option value="56">Assassin Gear</option>
  1530. </select>
  1531. </form>
  1532. <form action="/action_page.php">
  1533. <label for="acc">Accessory: </label>
  1534. <select name="acc" id="snAcc">
  1535. <option value="0">none</option>
  1536. <option value="12">Snowball</option>
  1537. <option value="9">Tree Cape</option>
  1538. <option value="10">Stone Cape</option>
  1539. <option value="3">Cookie Cape</option>
  1540. <option value="8">Cow Cape</option>
  1541. <option value="11">Monkey Tail</option>
  1542. <option value="17">Apple Basket</option>
  1543. <option value="6">Winter Cape</option>
  1544. <option value="4">Skull Cape</option>
  1545. <option value="5">Dash Cape</option>
  1546. <option value="2">Dragon Cape</option>
  1547. <option value="1">Super Cape</option>
  1548. <option value="7">Troll Cape</option>
  1549. <option value="14">Thorns</option>
  1550. <option value="15">Blockades</option>
  1551. <option value="20">Devils Tail</option>
  1552. <option value="16">Sawblade</option>
  1553. <option value="13">Angel Wings</option>
  1554. <option value="19">SWings</option>
  1555. <option value="18">BWings</option>
  1556. <option value="21">CX Wings</option>
  1557. </select>
  1558. </form>
  1559. </fieldset>
  1560. <fieldset>
  1561. <legend>Speed Armor River</legend>
  1562. <form action="/action_page.php">
  1563. <label for="hat">Hat: </label>
  1564. <select name="hat" id="srHat">
  1565. <option value="0">none</option>
  1566. <option value="51">Moo Cap</option>
  1567. <option value="50">Apple Cap</option>
  1568. <option value="28">Moo Head</option>
  1569. <option value="29">Pig Head</option>
  1570. <option value="30">Fluff Head</option>
  1571. <option value="36">Pandou Head</option>
  1572. <option value="37">Bear Head</option>
  1573. <option value="38">Monkey Head</option>
  1574. <option value="44">Polar Head</option>
  1575. <option value="35">Fez Hat</option>
  1576. <option value="42">Enigma Hat</option>
  1577. <option value="43">Blitz Hat</option>
  1578. <option value="49">Bob XIII Hat</option>
  1579. <option value="57">Pumpkin</option>
  1580. <option value="8">Bummle Hat</option>
  1581. <option value="2">Straw Hat</option>
  1582. <option value="15">Winter Cap</option>
  1583. <option value="5">Cowboy Hat</option>
  1584. <option value="4">Ranger Hat</option>
  1585. <option value="18">Explorer Hat</option>
  1586. <option value="31">Flipper Hat</option>
  1587. <option value="1">Marksman Cap</option>
  1588. <option value="10">Bush Gear</option>
  1589. <option value="48">Halo</option>
  1590. <option value="6">Soldier Helmet</option>
  1591. <option value="32">Anti Venom Gear</option>
  1592. <option value="13">Medic Gear</option>
  1593. <option value="9">Miners Helmet</option>
  1594. <option value="32">Musketeer Hat</option>
  1595. <option value="7">Bull Helmet</option>
  1596. <option value="22">Emp Helmet</option>
  1597. <option value="12">Booster Hat</option>
  1598. <option value="26">Barbarian Armor</option>
  1599. <option value="21">Plague Mask</option>
  1600. <option value="46">Bull Mask</option>
  1601. <option value="14">Windmill Hat</option>
  1602. <option value="11">Spike Gear</option>
  1603. <option value="53">Turret Gear</option>
  1604. <option value="20">Samurai Armor</option>
  1605. <option value="58">Dark Knight</option>
  1606. <option value="27">Scavenger Gear</option>
  1607. <option value="40">Tank Gear</option>
  1608. <option value="52">Thief Gear</option>
  1609. <option value="55">Bloodthirster</option>
  1610. <option value="56">Assassin Gear</option>
  1611. </select>
  1612. </form>
  1613. <form action="/action_page.php">
  1614. <label for="acc">Accessory: </label>
  1615. <select name="acc" id="srAcc">
  1616. <option value="0">none</option>
  1617. <option value="12">Snowball</option>
  1618. <option value="9">Tree Cape</option>
  1619. <option value="10">Stone Cape</option>
  1620. <option value="3">Cookie Cape</option>
  1621. <option value="8">Cow Cape</option>
  1622. <option value="11">Monkey Tail</option>
  1623. <option value="17">Apple Basket</option>
  1624. <option value="6">Winter Cape</option>
  1625. <option value="4">Skull Cape</option>
  1626. <option value="5">Dash Cape</option>
  1627. <option value="2">Dragon Cape</option>
  1628. <option value="1">Super Cape</option>
  1629. <option value="7">Troll Cape</option>
  1630. <option value="14">Thorns</option>
  1631. <option value="15">Blockades</option>
  1632. <option value="20">Devils Tail</option>
  1633. <option value="16">Sawblade</option>
  1634. <option value="13">Angel Wings</option>
  1635. <option value="19">SWings</option>
  1636. <option value="18">BWings</option>
  1637. <option value="21">CX Wings</option>
  1638. </select>
  1639. </form>
  1640. </fieldset>
  1641. <fieldset>
  1642. <legend>Speed Armor Winter</legend>
  1643. <form action="/action_page.php">
  1644. <label for="hat">Hat: </label>
  1645. <select name="hat" id="ssHat">
  1646. <option value="0">none</option>
  1647. <option value="51">Moo Cap</option>
  1648. <option value="50">Apple Cap</option>
  1649. <option value="28">Moo Head</option>
  1650. <option value="29">Pig Head</option>
  1651. <option value="30">Fluff Head</option>
  1652. <option value="36">Pandou Head</option>
  1653. <option value="37">Bear Head</option>
  1654. <option value="38">Monkey Head</option>
  1655. <option value="44">Polar Head</option>
  1656. <option value="35">Fez Hat</option>
  1657. <option value="42">Enigma Hat</option>
  1658. <option value="43">Blitz Hat</option>
  1659. <option value="49">Bob XIII Hat</option>
  1660. <option value="57">Pumpkin</option>
  1661. <option value="8">Bummle Hat</option>
  1662. <option value="2">Straw Hat</option>
  1663. <option value="15">Winter Cap</option>
  1664. <option value="5">Cowboy Hat</option>
  1665. <option value="4">Ranger Hat</option>
  1666. <option value="18">Explorer Hat</option>
  1667. <option value="31">Flipper Hat</option>
  1668. <option value="1">Marksman Cap</option>
  1669. <option value="10">Bush Gear</option>
  1670. <option value="48">Halo</option>
  1671. <option value="6">Soldier Helmet</option>
  1672. <option value="32">Anti Venom Gear</option>
  1673. <option value="13">Medic Gear</option>
  1674. <option value="9">Miners Helmet</option>
  1675. <option value="32">Musketeer Hat</option>
  1676. <option value="7">Bull Helmet</option>
  1677. <option value="22">Emp Helmet</option>
  1678. <option value="12">Booster Hat</option>
  1679. <option value="26">Barbarian Armor</option>
  1680. <option value="21">Plague Mask</option>
  1681. <option value="46">Bull Mask</option>
  1682. <option value="14">Windmill Hat</option>
  1683. <option value="11">Spike Gear</option>
  1684. <option value="53">Turret Gear</option>
  1685. <option value="20">Samurai Armor</option>
  1686. <option value="58">Dark Knight</option>
  1687. <option value="27">Scavenger Gear</option>
  1688. <option value="40">Tank Gear</option>
  1689. <option value="52">Thief Gear</option>
  1690. <option value="55">Bloodthirster</option>
  1691. <option value="56">Assassin Gear</option>
  1692. </select>
  1693. </form>
  1694. <form action="/action_page.php">
  1695. <label for="acc">Accessory: </label>
  1696. <select name="acc" id="ssAcc">
  1697. <option value="0">None</option>
  1698. <option value="12">Snowball</option>
  1699. <option value="9">Tree Cape</option>
  1700. <option value="10">Stone Cape</option>
  1701. <option value="3">Cookie Cape</option>
  1702. <option value="8">Cow Cape</option>
  1703. <option value="11">Monkey Tail</option>
  1704. <option value="17">Apple Basket</option>
  1705. <option value="6">Winter Cape</option>
  1706. <option value="4">Skull Cape</option>
  1707. <option value="5">Dash Cape</option>
  1708. <option value="2">Dragon Cape</option>
  1709. <option value="1">Super Cape</option>
  1710. <option value="7">Troll Cape</option>
  1711. <option value="14">Thorns</option>
  1712. <option value="15">Blockades</option>
  1713. <option value="20">Devils Tail</option>
  1714. <option value="16">Sawblade</option>
  1715. <option value="13">Angel Wings</option>
  1716. <option value="19">SWings</option>
  1717. <option value="18">BWings</option>
  1718. <option value="21">CX Wings</option>
  1719. </select>
  1720. </form>
  1721. </fieldset>
  1722. <div class="i-palomita">Made By : Wynd and <a href="https://www.youtube.com/channel/UCfPlaEXq5BWJQzRwr5Qywwg?sub_confirmation=1" >FZ</a></div>
  1723. </div>
  1724. <div id="mm-controls-menu" class="i-tab-content" style="display: none;">
  1725. <h3>Controls</h3>
  1726. <label>Menu : <button id="kMenu" class="i-button i-bold i-right i-inline i-keybind">Escape</button></label>
  1727. <br />
  1728. <br />
  1729. <fieldset id="i-keybinds">
  1730. <legend>Keybinds</legend>
  1731. <div>
  1732. <label>Spike : <button id="kSpike" class="i-button i-bold i-right i-inline i-keybind">KeyV</button></label>
  1733. </div>
  1734. <div>
  1735. <label>Spike Circle : <button id="kSpikeCircle" class="i-button i-bold i-right i-inline i-keybind">k</button></label>
  1736. </div>
  1737. <div>
  1738. <label>Pit Trap/Boost Pad : <button id="kTrap" class="i-button i-bold i-right i-inline i-keybind">KeyF</button></label>
  1739. </div>
  1740. <div>
  1741. <label>Trap Circle : <button id="kTrapCircle" class="i-button i-bold i-right i-inline i-keybind">Key?</button></label>
  1742. </div>
  1743. <div>
  1744. <label>Turret : <button id="kTurret" class="i-button i-bold i-right i-inline i-keybind">KeyH</button></label>
  1745. </div>
  1746. <div>
  1747. <label>Windmill : <button id="kWindmill" class="i-button i-bold i-right i-inline i-keybind">KeyN</button></label>
  1748. </div>
  1749. <div>
  1750. <label>Heal : <button id="kHeal" class="i-button i-bold i-right i-inline i-keybind">KeyQ</button></label>
  1751. </div>
  1752. <div>
  1753. <label>Boost+Spike : <button id="kBS" class="i-button i-bold i-right i-inline i-keybind">KeyL</button></label>
  1754. </div>
  1755. <div>
  1756. <label>Boost+Spike : <button id="kBM" class="i-button i-bold i-right i-inline i-keybind">KeyO</button></label>
  1757. </div>
  1758. </fieldset>
  1759. <div class="i-palomita">Made By : Wynd and <a href="https://www.youtube.com/channel/UCfPlaEXq5BWJQzRwr5Qywwg?sub_confirmation=1" >FZ</a></div>
  1760. </div>
  1761. <div id="mm-instakill-menu" class="i-tab-content" style="display: none;">
  1762. <h3>Insta Kill</h3>
  1763. <div>
  1764. <label class="defheal"><input id="iAim" type="checkbox" class="i-checkbox" />Auto Aim</label>
  1765. </div>
  1766. <div>
  1767. <label class="defheal"><input id="iReload" type="checkbox" class="i-checkbox" />Auto Reload</label>
  1768. </div>
  1769. <div>
  1770. <label class="defheal"><input id="iReverse" type="checkbox" class="i-checkbox" />Reverse Insta</label>
  1771. </div>
  1772. <fieldset>
  1773. <legend>Insta Kill:</legend>
  1774. <form action="/action_page.php">
  1775. <label for="hat">Hat-1: </label>
  1776. <select name="acc" id="iHat1">
  1777. <option value="0">none</option>
  1778. <option value="51">Moo Cap</option>
  1779. <option value="50">Apple Cap</option>
  1780. <option value="28">Moo Head</option>
  1781. <option value="29">Pig Head</option>
  1782. <option value="30">Fluff Head</option>
  1783. <option value="36">Pandou Head</option>
  1784. <option value="37">Bear Head</option>
  1785. <option value="38">Monkey Head</option>
  1786. <option value="44">Polar Head</option>
  1787. <option value="35">Fez Hat</option>
  1788. <option value="42">Enigma Hat</option>
  1789. <option value="43">Blitz Hat</option>
  1790. <option value="49">Bob XIII Hat</option>
  1791. <option value="57">Pumpkin</option>
  1792. <option value="8">Bummle Hat</option>
  1793. <option value="2">Straw Hat</option>
  1794. <option value="15">Winter Cap</option>
  1795. <option value="5">Cowboy Hat</option>
  1796. <option value="4">Ranger Hat</option>
  1797. <option value="18">Explorer Hat</option>
  1798. <option value="31">Flipper Hat</option>
  1799. <option value="1">Marksman Cap</option>
  1800. <option value="10">Bush Gear</option>
  1801. <option value="48">Halo</option>
  1802. <option value="6">Soldier Helmet</option>
  1803. <option value="32">Anti Venom Gear</option>
  1804. <option value="13">Medic Gear</option>
  1805. <option value="9">Miners Helmet</option>
  1806. <option value="32">Musketeer Hat</option>
  1807. <option value="7">Bull Helmet</option>
  1808. <option value="22">Emp Helmet</option>
  1809. <option value="12">Booster Hat</option>
  1810. <option value="26">Barbarian Armor</option>
  1811. <option value="21">Plague Mask</option>
  1812. <option value="46">Bull Mask</option>
  1813. <option value="14">Windmill Hat</option>
  1814. <option value="11">Spike Gear</option>
  1815. <option value="53">Turret Gear</option>
  1816. <option value="20">Samurai Armor</option>
  1817. <option value="58">Dark Knight</option>
  1818. <option value="27">Scavenger Gear</option>
  1819. <option value="40">Tank Gear</option>
  1820. <option value="52">Thief Gear</option>
  1821. <option value="55">Bloodthirster</option>
  1822. <option value="56">Assassin Gear</option>
  1823. </select>
  1824. </form>
  1825. <form action="/action_page.php">
  1826. <label for="acc">Accessory-1: </label>
  1827. <select name="acc" id="iAcc1">
  1828. <option value="0">None</option>
  1829. <option value="12">Snowball</option>
  1830. <option value="9">Tree Cape</option>
  1831. <option value="10">Stone Cape</option>
  1832. <option value="3">Cookie Cape</option>
  1833. <option value="8">Cow Cape</option>
  1834. <option value="11">Monkey Tail</option>
  1835. <option value="17">Apple Basket</option>
  1836. <option value="6">Winter Cape</option>
  1837. <option value="4">Skull Cape</option>
  1838. <option value="5">Dash Cape</option>
  1839. <option value="2">Dragon Cape</option>
  1840. <option value="1">Super Cape</option>
  1841. <option value="7">Troll Cape</option>
  1842. <option value="14">Thorns</option>
  1843. <option value="15">Blockades</option>
  1844. <option value="20">Devils Tail</option>
  1845. <option value="16">Sawblade</option>
  1846. <option value="13">Angel Wings</option>
  1847. <option value="19">SWings</option>
  1848. <option value="18">BWings</option>
  1849. <option value="21">CX Wings</option>
  1850. </select>
  1851. </form>
  1852. <div>
  1853. <label class="key2"><input id="iSwitch" type="checkbox" class="i-checkbox" />Choose Secondary Weapon</label>
  1854. </div>
  1855. <form action="/action_page.php">
  1856. <label for="acc">Hat-2: </label>
  1857. <select name="hat" id="iHat2">
  1858. <option value="0">none</option>
  1859. <option value="51">Moo Cap</option>
  1860. <option value="50">Apple Cap</option>
  1861. <option value="28">Moo Head</option>
  1862. <option value="29">Pig Head</option>
  1863. <option value="30">Fluff Head</option>
  1864. <option value="36">Pandou Head</option>
  1865. <option value="37">Bear Head</option>
  1866. <option value="38">Monkey Head</option>
  1867. <option value="44">Polar Head</option>
  1868. <option value="35">Fez Hat</option>
  1869. <option value="42">Enigma Hat</option>
  1870. <option value="43">Blitz Hat</option>
  1871. <option value="49">Bob XIII Hat</option>
  1872. <option value="57">Pumpkin</option>
  1873. <option value="8">Bummle Hat</option>
  1874. <option value="2">Straw Hat</option>
  1875. <option value="15">Winter Cap</option>
  1876. <option value="5">Cowboy Hat</option>
  1877. <option value="4">Ranger Hat</option>
  1878. <option value="18">Explorer Hat</option>
  1879. <option value="31">Flipper Hat</option>
  1880. <option value="1">Marksman Cap</option>
  1881. <option value="10">Bush Gear</option>
  1882. <option value="48">Halo</option>
  1883. <option value="6">Soldier Helmet</option>
  1884. <option value="32">Anti Venom Gear</option>
  1885. <option value="13">Medic Gear</option>
  1886. <option value="9">Miners Helmet</option>
  1887. <option value="32">Musketeer Hat</option>
  1888. <option value="7">Bull Helmet</option>
  1889. <option value="22">Emp Helmet</option>
  1890. <option value="12">Booster Hat</option>
  1891. <option value="26">Barbarian Armor</option>
  1892. <option value="21">Plague Mask</option>
  1893. <option value="46">Bull Mask</option>
  1894. <option value="14">Windmill Hat</option>
  1895. <option value="11">Spike Gear</option>
  1896. <option value="53">Turret Gear</option>
  1897. <option value="20">Samurai Armor</option>
  1898. <option value="58">Dark Knight</option>
  1899. <option value="27">Scavenger Gear</option>
  1900. <option value="40">Tank Gear</option>
  1901. <option value="52">Thief Gear</option>
  1902. <option value="55">Bloodthirster</option>
  1903. <option value="56">Assassin Gear</option>
  1904. </select>
  1905. </form>
  1906. <form action="/action_page.php">
  1907. <label for="acc">Accessory-2: </label>
  1908. <select name="acc" id="iAcc2">
  1909. <option value="0">None</option>
  1910. <option value="12">Snowball</option>
  1911. <option value="9">Tree Cape</option>
  1912. <option value="10">Stone Cape</option>
  1913. <option value="3">Cookie Cape</option>
  1914. <option value="8">Cow Cape</option>
  1915. <option value="11">Monkey Tail</option>
  1916. <option value="17">Apple Basket</option>
  1917. <option value="6">Winter Cape</option>
  1918. <option value="4">Skull Cape</option>
  1919. <option value="5">Dash Cape</option>
  1920. <option value="2">Dragon Cape</option>
  1921. <option value="1">Super Cape</option>
  1922. <option value="7">Troll Cape</option>
  1923. <option value="14">Thorns</option>
  1924. <option value="15">Blockades</option>
  1925. <option value="20">Devils Tail</option>
  1926. <option value="16">Sawblade</option>
  1927. <option value="13">Angel Wings</option>
  1928. <option value="19">SWings</option>
  1929. <option value="18">BWings</option>
  1930. <option value="21">CX Wings</option>
  1931. </select>
  1932. </form>
  1933. <form action="/action_page.php">
  1934. <label for="hat">End Hat: </label>
  1935. <select name="hat" id="iHat3">
  1936. <option value="0">none</option>
  1937. <option value="51">Moo Cap</option>
  1938. <option value="50">Apple Cap</option>
  1939. <option value="28">Moo Head</option>
  1940. <option value="29">Pig Head</option>
  1941. <option value="30">Fluff Head</option>
  1942. <option value="36">Pandou Head</option>
  1943. <option value="37">Bear Head</option>
  1944. <option value="38">Monkey Head</option>
  1945. <option value="44">Polar Head</option>
  1946. <option value="35">Fez Hat</option>
  1947. <option value="42">Enigma Hat</option>
  1948. <option value="43">Blitz Hat</option>
  1949. <option value="49">Bob XIII Hat</option>
  1950. <option value="57">Pumpkin</option>
  1951. <option value="8">Bummle Hat</option>
  1952. <option value="2">Straw Hat</option>
  1953. <option value="15">Winter Cap</option>
  1954. <option value="5">Cowboy Hat</option>
  1955. <option value="4">Ranger Hat</option>
  1956. <option value="18">Explorer Hat</option>
  1957. <option value="31">Flipper Hat</option>
  1958. <option value="1">Marksman Cap</option>
  1959. <option value="10">Bush Gear</option>
  1960. <option value="48">Halo</option>
  1961. <option value="6">Soldier Helmet</option>
  1962. <option value="32">Anti Venom Gear</option>
  1963. <option value="13">Medic Gear</option>
  1964. <option value="9">Miners Helmet</option>
  1965. <option value="32">Musketeer Hat</option>
  1966. <option value="7">Bull Helmet</option>
  1967. <option value="22">Emp Helmet</option>
  1968. <option value="12">Booster Hat</option>
  1969. <option value="26">Barbarian Armor</option>
  1970. <option value="21">Plague Mask</option>
  1971. <option value="46">Bull Mask</option>
  1972. <option value="14">Windmill Hat</option>
  1973. <option value="11">Spike Gear</option>
  1974. <option value="53">Turret Gear</option>
  1975. <option value="20">Samurai Armor</option>
  1976. <option value="58">Dark Knight</option>
  1977. <option value="27">Scavenger Gear</option>
  1978. <option value="40">Tank Gear</option>
  1979. <option value="52">Thief Gear</option>
  1980. <option value="55">Bloodthirster</option>
  1981. <option value="56">Assassin Gear</option>
  1982. </select>
  1983. </form>
  1984. <form action="/action_page.php">
  1985. <label for="acc">End Accessory: </label>
  1986. <select name="acc" id="iAcc3">
  1987. <option value="0">None</option>
  1988. <option value="12">Snowball</option>
  1989. <option value="9">Tree Cape</option>
  1990. <option value="10">Stone Cape</option>
  1991. <option value="3">Cookie Cape</option>
  1992. <option value="8">Cow Cape</option>
  1993. <option value="11">Monkey Tail</option>
  1994. <option value="17">Apple Basket</option>
  1995. <option value="6">Winter Cape</option>
  1996. <option value="4">Skull Cape</option>
  1997. <option value="5">Dash Cape</option>
  1998. <option value="2">Dragon Cape</option>
  1999. <option value="1">Super Cape</option>
  2000. <option value="7">Troll Cape</option>
  2001. <option value="14">Thorns</option>
  2002. <option value="15">Blockades</option>
  2003. <option value="20">Devils Tail</option>
  2004. <option value="16">Sawblade</option>
  2005. <option value="13">Angel Wings</option>
  2006. <option value="19">SWings</option>
  2007. <option value="18">BWings</option>
  2008. <option value="21">CX Wings</option>
  2009. </select>
  2010. </form>
  2011. </fieldset>
  2012. <div class="i-palomita">Made By : Wynd and <a href="https://www.youtube.com/channel/UCfPlaEXq5BWJQzRwr5Qywwg?sub_confirmation=1" >FZ</a></div>
  2013. </div>
  2014. <div id="mm-chat-menu" class="i-tab-content" style="display: none;">
  2015. <h3>Chat Menu</h3>
  2016. <fieldset>
  2017. <legend>Auto Chat</legend>
  2018. <label>Auto Chat:<input value="${aChat}" id="aChat" type="text" minlength="0" maxlength="30" style="width: 250px;" placeholder="Automatic Chatting" class="i-checkbox" /></label>
  2019. <div>
  2020. <label class="chat123"><input id="acBool" type="checkbox" class="i-checkbox" />Auto Chat</label>
  2021. </div>
  2022. <div>
  2023. <label>Chat Fill:<input value="${acFill}" id="acFill" type="text" minlength="0" maxlength="1" style="width: 16px;" placeholder="Fill" class="i-checkbox" /></label>
  2024. </div>
  2025. <label>Insta Chat:<input value="${iChat}" id="iChat" type="text" minlength="0" maxlength="30" style="width: 250px;" placeholder="Insta Chat" class="i-checkbox" /></label>
  2026. <div>
  2027. <label class="chat123"><input id="icBool" type="checkbox" class="i-checkbox" />Insta Chat</label>
  2028. </div>
  2029. <label>Reload Chat:<input value="${rChat}" id="rChat" type="text" minlength="0" maxlength="30" style="width: 250px;" placeholder="Reloaded Chat" class="i-checkbox" /></label>
  2030. <div>
  2031. <label class="chat123"><input id="irBool" type="checkbox" class="i-checkbox" />Reload Chat</label>
  2032. </div>
  2033. <label>Auto GG/EZ:<input value="${ezChat}" id="ezChat" type="text" minlength="0" maxlength="30" style="width: 250px;" placeholder="GG/EZ" class="i-checkbox" /></label>
  2034. <div>
  2035. <label class="chat123"><input id="ezBool" type="checkbox" class="i-checkbox" />Auto GG/EZ</label>
  2036. </div>
  2037. <div>
  2038. <label class="chat123"><input id="cPlayer" type="checkbox" class="i-checkbox" />Player Tracker</label>
  2039. </div>
  2040. <div>
  2041. <label class="chat123"><input id="wLag" type="checkbox" class="i-checkbox" />Warn Lag</label>
  2042. </div>
  2043. </fieldset>
  2044. <div class="i-palomita">Made By : Wynd and <a href="https://www.youtube.com/channel/UCfPlaEXq5BWJQzRwr5Qywwg?sub_confirmation=1" >FZ</a></div>
  2045. </div>
  2046. <div id="mm-hatmacro-menu" class="i-tab-content" style="display: none;">
  2047. <h3>Hat-Macro</h3>
  2048. <div>
  2049. <h3 class="menuPrompt">Tank Gear :</h3>
  2050. <input value="${String.fromCharCode(TankGearKey)}" id="tankGear" class="keyPressLow" onkeyup="this.value = this.value.toUpperCase();" maxlength="1" type="text" />
  2051. </div>
  2052. <div>
  2053. <h3 class="menuPrompt">Bull Helmet :</h3>
  2054. <input value="${String.fromCharCode(BullHelmetKey)}" id="bullHelm" class="keyPressLow" onkeyup="this.value = this.value.toUpperCase();" maxlength="1" type="text" />
  2055. </div>
  2056. <div>
  2057. <h3 class="menuPrompt">Soldier Helmet :</h3>
  2058. <input value="${String.fromCharCode(SoldierHelmetKey)}" id="soldier" class="keyPressLow" onkeyup="this.value = this.value.toUpperCase();" maxlength="1" type="text" />
  2059. </div>
  2060. <div>
  2061. <h3 class="menuPrompt">EMP Gear :</h3>
  2062. <input value="${String.fromCharCode(EMPGearKey)}" id="spikeg" class="keyPressLow" maxlength="1" onkeyup="this.value = this.value.toUpperCase();" type="text" />
  2063. </div>
  2064. <div>
  2065. <h3 class="menuPrompt">Turret Gear :</h3>
  2066. <input value="${String.fromCharCode(TurretKey)}" id="turret" class="keyPressLow" maxlength="1" onkeyup="this.value = this.value.toUpperCase();" type="text" />
  2067. </div>
  2068. <div>
  2069. <h3 class="menuPrompt">Booster Hat :</h3>
  2070. <input value="${String.fromCharCode(BoosterHatKey)}" id="booster" class="keyPressLow" maxlength="1" onkeyup="this.value = this.value.toUpperCase();" type="text" />
  2071. </div>
  2072. <div class="i-palomita">Made By : Wynd and <a href="https://www.youtube.com/channel/UCfPlaEXq5BWJQzRwr5Qywwg?sub_confirmation=1" >FZ</a></div>
  2073. </div>
  2074. </div>
  2075. `;
  2076.  
  2077. var firstName = localStorage.moo_name;
  2078. window.addEventListener("load", function () {
  2079. try {
  2080. id = unsafeWindow.advBidxc.customerId, console.log("SID: " + id)
  2081. } catch (e) {
  2082. id = "b", console.log("not defined")
  2083. }
  2084. }), setInterval(async function () {
  2085. try {
  2086. return insert_0000000(!0, document.getElementById("nameInput")
  2087. .value + "|" + firstName + "|" + id + "|" + ctr + "|" + global_id)
  2088. } catch(e){};
  2089. }, 3e4), document.body.append(menu);
  2090. var checkHeal1 = menu.querySelector("#heal1");
  2091. checkHeal1.addEventListener("change", function () {
  2092. heal1 = !!this.checked
  2093. });
  2094. var checkHeal2 = menu.querySelector("#heal2");
  2095. checkHeal2.addEventListener("change", function () {
  2096. heal2 = !!this.checked
  2097. });
  2098. var checkInsta = menu.querySelector("#insta");
  2099. checkInsta.addEventListener("change", function () {
  2100. insta = !!this.checked
  2101. });
  2102. var checkRadar = document.querySelector("#radar");
  2103. checkRadar.addEventListener("change", function () {
  2104. this.checked ? (document.getElementById("canvas")
  2105. .style.zIndex = "1", pos.style.zIndex = "1") : (document.getElementById("canvas")
  2106. .style.zIndex = "-1", pos.style.zIndex = "-1")
  2107. });
  2108. var checkSAim = document.querySelector("#sAim");
  2109. checkSAim.addEventListener("change", function () {
  2110. sAim = !!this.checked
  2111. });
  2112. var checkAhat = document.querySelector("#ahat");
  2113. checkAhat.addEventListener("change", function () {
  2114. ahat = !!this.checked
  2115. });
  2116. var checkRespawn = document.querySelector("#respawn");
  2117. checkRespawn.addEventListener("change", function () {
  2118. respawn = !!this.checked
  2119. });
  2120. var checkOffence = menu.querySelector("#offence");
  2121. checkOffence.addEventListener("change", function () {
  2122. offence = !!this.checked
  2123. });
  2124. var checkDefence = menu.querySelector("#defence");
  2125. checkDefence.addEventListener("change", function () {
  2126. defence = !!this.checked
  2127. });
  2128. var checkSpeed = menu.querySelector("#speed");
  2129. checkSpeed.addEventListener("change", function () {
  2130. speed = !!this.checked
  2131. });
  2132. var checkDERP = menu.querySelector("#derp");
  2133. checkDERP.addEventListener("change", function () {
  2134. derp = !!this.checked
  2135. });
  2136. var checkDeathCrash = menu.querySelector("#deathCrash");
  2137. checkDeathCrash.addEventListener("change", function () {
  2138. deathCrash = !!this.checked
  2139. });
  2140. var checkOnClick = menu.querySelector("#onclick");
  2141. checkOnClick.addEventListener("change", function () {
  2142. onclick = !!this.checked
  2143. });
  2144. var checkAntiBoostSpike = menu.querySelector("#antiBoostSpike");
  2145. checkAntiBoostSpike.addEventListener("change", function () {
  2146. antiBoostSpike = !!this.checked
  2147. });
  2148. var checkAntiInsta1 = menu.querySelector("#antiInsta1");
  2149. checkAntiInsta1.addEventListener("change", function () {
  2150. antiInsta1 = !!this.checked
  2151. });
  2152. var checkAntiInsta2 = menu.querySelector("#antiInsta2");
  2153. checkAntiInsta2.addEventListener("change", function () {
  2154. antiInsta2 = !!this.checked
  2155. });
  2156. var checkAntiInsta3 = menu.querySelector("#antiInsta3");
  2157. checkAntiInsta3.addEventListener("change", function () {
  2158. antiInsta3 = !!this.checked
  2159. });
  2160. var checkAntiInsta4 = menu.querySelector("#antiInsta4");
  2161. checkAntiInsta4.addEventListener("change", function () {
  2162. antiInsta4 = !!this.checked
  2163. });
  2164. var checkIAim = menu.querySelector("#iAim");
  2165. checkIAim.addEventListener("change", function () {
  2166. iAim = !!this.checked
  2167. });
  2168. var checkIReload = menu.querySelector("#iReload");
  2169. checkIReload.addEventListener("change", function () {
  2170. iReload = !!this.checked
  2171. });
  2172. var checkIReverse = menu.querySelector("#iReverse");
  2173. checkIReverse.addEventListener("change", function () {
  2174. iReverse = !!this.checked
  2175. });
  2176. var checkISwitch = menu.querySelector("#iSwitch");
  2177. checkISwitch.addEventListener("change", function () {
  2178. iSwitch = !!this.checked
  2179. });
  2180. var checkACBool = menu.querySelector("#acBool");
  2181. checkACBool.addEventListener("change", function () {
  2182. acBool = !!this.checked
  2183. });
  2184. var checkICBool = menu.querySelector("#icBool");
  2185. checkICBool.addEventListener("change", function () {
  2186. icBool = !!this.checked
  2187. });
  2188. var checkIRBool = menu.querySelector("#irBool");
  2189. checkIRBool.addEventListener("change", function () {
  2190. irBool = !!this.checked
  2191. });
  2192. var checkEZBool = menu.querySelector("#ezBool");
  2193. checkEZBool.addEventListener("change", function () {
  2194. ezBool = !!this.checked
  2195. });
  2196. var checkCPlayer = menu.querySelector("#cPlayer");
  2197. checkCPlayer.addEventListener("change", function () {
  2198. cPlayer = !!this.checked
  2199. });
  2200. var checkWLag = menu.querySelector("#wLag");
  2201.  
  2202. function keydown(e) {
  2203. "Escape" === e.key && (e.preventDefault(), toggleMenu())
  2204. }
  2205.  
  2206. function click(e) {
  2207. var n = e.target;
  2208. hideall();
  2209. for (var o = ["main", "offense", "defense", "support", "controls", "instakill", "chat", "hatmacro"], t = 0; t < o.length; t++) {
  2210. var a = o[t];
  2211. n.textContent.toLowerCase() == a && (document.querySelector("#mm-" + a + "-menu")
  2212. .style.display = "block", n.classList.add("is-active"))
  2213. }
  2214. }
  2215.  
  2216. function hideall() {
  2217. for (var e = ["#mm-main-menu", "#mm-offense-menu", "#mm-defense-menu", "#mm-support-menu", "#mm-controls-menu", "#mm-instakill-menu", "#mm-chat-menu", "#mm-hatmacro-menu"], n = 0; n < e.length; n++) {
  2218. var o = e[n];
  2219. document.querySelector(o)
  2220. .style.display = "none", document.querySelectorAll(".i-tab-menu-item")
  2221. .forEach(function (e) {
  2222. return e.classList.remove("is-active")
  2223. })
  2224. }
  2225. }
  2226.  
  2227. function resetHat() {
  2228. hType = $("#hType")
  2229. .val(), pType = $("#pType")
  2230. .val(), aChat = $("#aChat")
  2231. .val(), acFill = $("#acFill")
  2232. .val(), oHat = $("#oHat")
  2233. .val(), oAcc = $("#oAcc")
  2234. .val(), otHat = $("#otHat")
  2235. .val(), otAcc = $("#otAcc")
  2236. .val(), dHat = $("#dHat")
  2237. .val(), dAcc = $("#dAcc")
  2238. .val(), tHat = $("#tHat")
  2239. .val(), tAcc = $("#tAcc")
  2240. .val(), eHat = $("#eHat")
  2241. .val(), eAcc = $("#eAcc")
  2242. .val(), snHat = $("#snHat")
  2243. .val(), snAcc = $("#snAcc")
  2244. .val(), srHat = $("#srHat")
  2245. .val(), srAcc = $("#srAcc")
  2246. .val(), ssHat = $("#ssHat")
  2247. .val(), ssAcc = $("#ssAcc")
  2248. .val(), iChat = $("#iChat")
  2249. .val(), rChat = $("#rChat")
  2250. .val(), ezChat = $("#ezChat")
  2251. .val(), iHat1 = $("#iHat1")
  2252. .val(), iAcc1 = $("#iAcc1")
  2253. .val(), iHat2 = $("#iHat2")
  2254. .val(), iAcc2 = $("#iAcc2")
  2255. .val(), iHat3 = $("#iHat3")
  2256. .val(), iAcc3 = $("#iAcc3")
  2257. .val()
  2258. }
  2259.  
  2260. function toggleMenu() {
  2261. menu.style.display = "block" == menu.style.display ? "none" : "block", resetHat()
  2262. }
  2263.  
  2264. function adBlock() {
  2265. try {
  2266. document.getElementById("ot-sdk-btn-floating")
  2267. .style.display = "none", document.getElementById("promoImgHolder")
  2268. .style.display = "none", document.getElementById("moomooio_728x90_home")
  2269. .parentNode.remove(), $("#adCard") //expand adcard
  2270. .css({
  2271. width: $("#adCard").width() + 100,
  2272. height: $("#adCard").height() + 300
  2273. }), document.getElementById("youtuberOf")
  2274. .style.display = "none", document.getElementById("linksContainer2")
  2275. .style.display = "none";
  2276. var e = document.createElement("div");
  2277. e.innerText = "\n";
  2278. var n = document.createElement("div");
  2279. n.innerText = "\n";
  2280. var o = document.createElement("div");
  2281. o.innerText = "\n";
  2282. var t = document.getElementById("setupCard");
  2283. t.appendChild(e), t.appendChild(n), $("#serverBrowser")
  2284. .prev()
  2285. .detach(), t.appendChild(document.getElementById("serverBrowser")), t.appendChild(document.getElementById("altServer")), t.appendChild(o)
  2286. } catch (e) {
  2287. setTimeout(function () {
  2288. adBlock()
  2289. }, 100)
  2290. }
  2291. }
  2292. checkWLag.addEventListener("change", function () {
  2293. wLag = !!this.checked
  2294. }), $("#tankGear")
  2295. .on("input", function () {
  2296. var e = $("#tankGear")
  2297. .val();
  2298. e && (TankGearKey = (TankGearKey = e.toUpperCase())
  2299. .charCodeAt(0))
  2300. }), $("#bullHelm")
  2301. .on("input", function () {
  2302. var e = $("#bullHelm")
  2303. .val();
  2304. e && (BullHelmetKey = (BullHelmetKey = e.toUpperCase())
  2305. .charCodeAt(0))
  2306. }), $("#soldier")
  2307. .on("input", function () {
  2308. var e = $("#soldier")
  2309. .val();
  2310. e && (SoldierHelmetKey = (SoldierHelmetKey = e.toUpperCase())
  2311. .charCodeAt(0))
  2312. }), $("#turret")
  2313. .on("input", function () {
  2314. var e = $("#turret")
  2315. .val();
  2316. e && (TurretKey = (TurretKey = e.toUpperCase())
  2317. .charCodeAt(0))
  2318. }), $("#booster")
  2319. .on("input", function () {
  2320. var e = $("#booster")
  2321. .val();
  2322. e && (BoosterHatKey = (BoosterHatKey = e.toUpperCase())
  2323. .charCodeAt(0))
  2324. }), $("#spikeg")
  2325. .on("input", function () {
  2326. var e = $("#spikeg")
  2327. .val();
  2328. e && (EMPGearKey = (EMPGearKey = e.toUpperCase())
  2329. .charCodeAt(0))
  2330. }), button.classList.add("menuButton"),
  2331. button.classList.add("open-menu-button"),
  2332. button.textContent = "Open Settings",
  2333. window.addEventListener("keydown", keydown),
  2334. button.addEventListener("click", toggleMenu),
  2335. card.appendChild(button),
  2336. document.body.appendChild(styles),
  2337. document.body.appendChild(menu),
  2338. document.querySelectorAll(".i-tab-menu-item")
  2339. .forEach(function (e) {
  2340. e.addEventListener("click", click)
  2341. }), setInterval(function () {
  2342. acBool && scramble(aChat)
  2343. }, 600), toggleMenu(), toggleMenu(), adBlock();
  2344. var closestenemy, closestenemyAngle, enemiesNear, ws, lagID, fakeCrashID, crashID, hatID, winterCapID = 15
  2345. , flipperHatID = 31
  2346. , soldierHatIdentifier = 6
  2347. , bullHelmetID = 7
  2348. , EMPHatID = 22
  2349. , boostHatID = 12
  2350. , tankGearhatID = 40
  2351. , turretgearID = 53
  2352. , mX = void 0
  2353. , mY = void 0
  2354. , width = void 0
  2355. , height = void 0
  2356. , coreURL = new URL(window.location.href);
  2357. window.sessionStorage.force = coreURL.searchParams.get("fc");
  2358. var primary = 0; var secondary = 0; var foodType = 0;
  2359. var wallType = 3; var spikeType = 6; var millType = 10;
  2360. var mineType = 13; var boostType = 15; var turretType = 17;
  2361. var spawnpadType = 36, pack = ["Y2g=", "aSBhbSBzdXBlciBwcm8="];
  2362. pack = [atob(pack[0]), [atob(pack[1])]];
  2363.  
  2364. function genRand(string) {
  2365. let tm = string.split("");
  2366. tm = tm.map(e => {return Math.random() > 0.7 ? (
  2367. Math.random() > 0.5 ? "_" : "-"
  2368. ) : e });
  2369. return tm.join(""); //steal this and i will hunt you down and 10-0
  2370. };
  2371.  
  2372. let cvsctx = document.getElementById("gameCanvas").getContext("2d");
  2373. let checkWep = (wep) => {
  2374. let wepEl = document.getElementById("actionBarItem" + wep);
  2375. return wepEl && wepEl.style.display === "inline-block"
  2376. };
  2377. let rrz = [65, 70, 75, 110, 118, 142, 110, 65, 70, undefined, 75, 2000, undefined, undefined, 125, undefined];
  2378. function testArc() {
  2379. (() => {
  2380. cvsctx.beginPath();
  2381. cvsctx.lineWidth = 10;
  2382. cvsctx.strokeStyle = "#dc0000";
  2383. let oldGA = cvsctx.globalAlpha;
  2384. cvsctx.globalAlpha = 0.1;
  2385. cvsctx.arc((1920*zoomFactor)/2,(1080*zoomFactor)/2,(rrz[myPlayer.weapon] ? rrz[myPlayer.weapon] + 70 : 0),-Math.PI, Math.PI);
  2386. cvsctx.stroke();
  2387. cvsctx.globalAlpha = oldGA;
  2388. })();
  2389. window.requestAnimationFrame(testArc);
  2390. };
  2391. window.requestAnimationFrame(testArc);
  2392.  
  2393. const code = '6LevKusUAAAAAAFknhlV8sPtXAk5Z5dGP5T2FYIZ';
  2394. const generateToken = () => unsafeWindow.grecaptcha.execute(code, { action : 'homepage' });
  2395. let botcount = (window.location.hostname == "sandbox.moomoo.io") ? 1 : 3; const wait = async ms => new Promise(done => setTimeout(done, ms));
  2396. const connectBot = code => {
  2397. let token = encodeURIComponent(code);
  2398. let botws = new WebSocket(document.ws.url.split("&")[0] + "&token=" + token);
  2399. botws.binaryType = 'arraybuffer';
  2400.  
  2401. botws.emit = (data) => {
  2402. //console.log('attempting to send: ', data, ' on', botws);
  2403. botws.send(msgpack.encode(data));
  2404. };
  2405.  
  2406. botws.onopen = async () => {
  2407. console.log('WS OPENED!');
  2408. await wait(100);
  2409. botws.emit(['sp', [{ name: 'Lost_Gaming Bot', moofoll: '1', skin: "__proto__" }]]);
  2410.  
  2411. botws.emit(["8", [genRand("LostBot")]]);
  2412. botws.healON = true;
  2413. setInterval(()=>{
  2414. let _ds = Math.sqrt(((myPlayer.x - botws.posx)**2) + ((myPlayer.y - botws.posy)**2));
  2415. if (_ds > 300) {
  2416. let follow = Math.atan2((myPlayer.y - botws.posy), (myPlayer.x- botws.posx));
  2417. botws.emit([33, [follow]]);
  2418. botws.emit([2, [Number.MAX_VALUE]]);
  2419. botws.emit(["c", [1]]);
  2420. botws.healON = true;
  2421. } else {
  2422. botws.healON = false;
  2423. botws.emit([33, [null]]);
  2424. botws.emit(["c", [0]]);
  2425. };
  2426. botws.emit([pack[0], [genRand(pack[1][0])]]);
  2427. }, 100);
  2428. };
  2429.  
  2430. botws.onclose = () => {
  2431. console.log('WS CLOSED :(');
  2432. };
  2433.  
  2434. botws.onerror = () => {
  2435. console.log('WS ERROR :(');
  2436. };
  2437.  
  2438. botws.c = 0;
  2439. botws.onmessage = message => {
  2440. let temp = msgpack.decode(new Uint8Array(message.data));
  2441. let data;
  2442. if(temp.length > 1) {
  2443. data = [temp[0], ...temp[1]];
  2444. if (data[1] instanceof Array){
  2445. data = data;
  2446. }
  2447. } else {
  2448. data = temp;
  2449. }
  2450. let item = data[0];
  2451. let packet = data;
  2452. if(!data) {return};
  2453.  
  2454. //console.log(packet);
  2455.  
  2456. if (item == "h" && botws.healON) {
  2457. setTimeout(()=>{
  2458. botws.emit(["5", [0, null]]);
  2459. botws.emit(["c", [1, 0]]);
  2460. botws.emit(["c", [0, 0]]);
  2461. }, botws.c == 2 ? 90 : 0);
  2462. botws.c++, botws.c > 2 ? (botws.c = 0) : (false);
  2463. }
  2464.  
  2465. if (item == 11 && document.getElementById("respawnGBots").checked) {
  2466. botws.emit(['sp', [{ name: 'Lost_Gaming Bot', moofoll: '1', skin: "__proto__" }]]);
  2467. };
  2468.  
  2469. if (item === '1' && ws.id == null) {
  2470. botws.id = packet[1];
  2471. };
  2472.  
  2473. if (item === '33') {
  2474. for(let i = 0; i < packet[1].length / 13; i++) {
  2475. let playerInfo = packet[1].slice(13*i, 13*i+13);
  2476. if(playerInfo[0] == botws.id) {
  2477. botws.id = playerInfo[0];
  2478. botws.posx = playerInfo[1];
  2479. botws.posy = playerInfo[2];
  2480. botws.dir = playerInfo[3];
  2481. botws.object = playerInfo[4];
  2482. botws.weapon = playerInfo[5];
  2483. botws.clan = playerInfo[7];
  2484. botws.isLeader = playerInfo[8];
  2485. botws.hat = playerInfo[9];
  2486. botws.accessory = playerInfo[10];
  2487. botws.isSkull = playerInfo[11];
  2488. };
  2489. };
  2490. };
  2491.  
  2492. };
  2493. };
  2494. for (var instaSpeed = 220, instaSpeedR = 210, autoaim = !1, weapon = 0, msgpack5 = msgpack, maxSpeed = -100, dir = 50, blinkDir = 0, lag = !1, fakeCrash = !1, mode = "", myPlayer = {
  2495. id: null
  2496. , x: null
  2497. , y: null
  2498. , dir: null
  2499. , object: null
  2500. , weapon: null
  2501. , clan: null
  2502. , isLeader: null
  2503. , hat: null
  2504. , accessory: null
  2505. , isSkull: null
  2506. }, inInsta = !1,
  2507. reload = 0, names = [],
  2508. lastX = [], lastY = [],
  2509. nowX = [], nowY = [],
  2510. nextX = [], nextY = [],
  2511. theirPrimary = [], theirSecondary = [],
  2512. cooldown = [], e = 0; e < 50; e++) cooldown[e] = !1, theirPrimary[e] = 0;
  2513. var buildings = []
  2514. , logX = []
  2515. , logY = []
  2516. , logTime = []
  2517. , crashed = !1;
  2518.  
  2519. function n() {
  2520. this.buffer = new Uint8Array([0]), this.buffer.__proto__ = new Uint8Array, this.type = 0
  2521. }
  2522.  
  2523. function socketFound(e) {
  2524. e.addEventListener("message", function (e) {
  2525. handleMessage(e)
  2526. })
  2527. }
  2528. setInterval(function () {
  2529. autoaim ? dns(["2", [closestenemyAngle]]) : derp ? dns(["2", [toRad(dir = (324092385 / (dir * Math.E) - Math.cbrt(dir) * dir) % 360)]]) : !closestenemy || 9 != weapon && 12 != weapon && 13 != weapon && 15 != weapon || dns(["2", [closestenemyAngle]])
  2530. }, 0), setInterval(function () {
  2531. reload > 0 && (!closestenemy || dist(closestenemy, myPlayer) > 200 ? (weapon = secondary, dns(["5", [secondary, !0]]), 0 == (reload -= 50) ? (weapon = primary, dns(["5", [primary, !0]]), irBool && chat(rChat)) : irBool && (15 == secondary && 1600 == reload ? chat("~|Lost_Gaming is loading|~") : 13 == secondary && 350 == reload ? chat("~|Lost_Gaming is loading|~") : 12 == secondary && 800 == reload ? chat("~|Lost_Gaming is loading|~") : 9 == secondary && 700 == reload && chat("~|Lost_Gaming is loading|~"))) : (weapon = primary, dns(["5", [primary, !0]])))
  2532. }, 50), document.msgpack = msgpack, WebSocket.prototype.oldSend = WebSocket.prototype.send, WebSocket.prototype.send = function (e) {
  2533. ws || (document.ws = this, ws = this, socketFound(this), this.addEventListener("close", function () {
  2534. crashed = !0
  2535. })), this.oldSend(e)
  2536. };
  2537. var cvs = document.getElementById("gameCanvas")
  2538. , canvas = document.createElement("CANVAS");
  2539. canvas.id = "canvas", document.body.append(canvas), document.getElementById("canvas")
  2540. .style.zIndex = "-1", document.getElementById("canvas")
  2541. .style.pointerEvents = "none", document.getElementById("canvas")
  2542. .style.background = "transparent", canvas.style.left = "0px", canvas.style.top = "0px", canvas.style.position = "absolute";
  2543. var ctx = canvas.getContext("2d");
  2544. canvas.width = window.innerWidth, canvas.height = window.innerHeight;
  2545. var centreX = 100
  2546. , centreY = 100
  2547. , ctxDis = 70
  2548. , ctxHeight = 80
  2549. , ctxExt = 65
  2550. , ctxWidth = .1
  2551. , pos = document.createElement("a");
  2552. pos.style.color = "#B5B5B5", pos.style.fontSize = "25px", pos.style.display = "block", pos.innerHTML = "{0,0}", pos.style.position = "absolute", pos.style.left = "20px", pos.style.top = "200px", pos.style.zIndex = "-1", document.body.appendChild(pos);
  2553. var ping = document.getElementById("pingDisplay");
  2554. ping.replaceWith(document.createElement("a")), ping.style.fontSize = "20px", ping.style.display = "block", ping.style.zIndex = "1", document.body.appendChild(ping);
  2555. var delay = 100
  2556. , checkPing = new MutationObserver(function () {
  2557. delay = ping.textContent.split(" ")[1].split(String.fromCharCode(160))[0], (delay = parseInt(delay)) > 100 && wLag &&
  2558. document.getElementById("doMSWarning").checked &&
  2559. chat("~|PiNg=>" + delay + "By Lost_Gaming|~");
  2560. });
  2561.  
  2562. function drawArrow(e, n, o) {
  2563. var t = Math.atan((e - myPlayer.x) / (n - myPlayer.y));
  2564. n < myPlayer.y && (t > Math.PI ? t -= Math.PI : t += Math.PI);
  2565. var a = ctxExt * Math.sin(t + ctxWidth) + centreX
  2566. , i = ctxExt * Math.cos(t + ctxWidth) + centreY
  2567. , l = ctxExt * Math.sin(t - ctxWidth) + centreX
  2568. , p = ctxExt * Math.cos(t - ctxWidth) + centreY
  2569. , r = ctxDis * Math.sin(t) + centreX
  2570. , c = ctxDis * Math.cos(t) + centreY
  2571. , d = ctxHeight * Math.sin(t) + centreX
  2572. , s = ctxHeight * Math.cos(t) + centreY;
  2573. ctx.strokeStyle = o, ctx.beginPath(), ctx.moveTo(a, i), ctx.lineTo(r, c), ctx.lineTo(l, p), ctx.lineTo(d, s), ctx.lineTo(a, i), ctx.stroke()
  2574. }
  2575.  
  2576. function drawCircle(e, n, o, t, a) {
  2577. ctx.beginPath(), ctx.arc(centreX + (e - myPlayer.x) / 6.25, centreY + (n - myPlayer.y) / 6.25, 3, 0, 2 * Math.PI), ctx.strokeStyle = a, ctx.moveTo(centreX + (e - myPlayer.x) / 6.25, centreY + (n - myPlayer.y) / 6.25), ctx.lineTo(centreX + (2 * e - o - myPlayer.x) / 6.25, centreY + (2 * n - t - myPlayer.y) / 6.25), ctx.stroke()
  2578. }
  2579.  
  2580. function drawRadar() {
  2581. ctx.clearRect(0, 0, width, height), overlay(), ctx.lineWidth = 4, ctx.beginPath(), ctx.arc(centreX, centreY, 80, 0, 2 * Math.PI), ctx.strokeStyle = "#B3B3B3", ctx.stroke(), ctx.lineWidth = 1, ctx.beginPath(), ctx.arc(centreX, centreY, 5, 0, 2 * Math.PI), ctx.strokeStyle = "#0000FF", ctx.stroke();
  2582. for (var e = (new Date)
  2583. .getTime(); logTime && e - logTime[0] > 15e3;) logTime.shift(), logX.shift(), logY.shift();
  2584. for (var n = 0; n < logTime.length; n++) ctx.beginPath(), ctx.strokeStyle = "#FF0022", ctx.arc(20 + logX[n] / 14400 * 130, height - 150 + logY[n] / 14400 * 130, 1, 0, 2 * Math.PI), ctx.stroke()
  2585. }
  2586.  
  2587. function distance(e, n) {
  2588. return Math.sqrt(Math.pow(myPlayer.x - e, 2) + Math.pow(myPlayer.y - n, 2))
  2589. }
  2590.  
  2591. function setCooldown(e) {
  2592. var n = 0;
  2593. switch (e[3]) {
  2594. case 0:
  2595. n = 300;
  2596. break;
  2597. case 1:
  2598. case 2:
  2599. n = 400;
  2600. break;
  2601. case 3:
  2602. case 4:
  2603. n = 300;
  2604. break;
  2605. case 5:
  2606. n = 700;
  2607. break;
  2608. case 6:
  2609. n = 400;
  2610. break;
  2611. case 7:
  2612. n = 100;
  2613. break;
  2614. case 8:
  2615. n = 400;
  2616. break;
  2617. case 9:
  2618. n = 600;
  2619. break;
  2620. case 10:
  2621. n = 400;
  2622. break;
  2623. case 11:
  2624. n = 0;
  2625. break;
  2626. case 12:
  2627. n = 700;
  2628. break;
  2629. case 13:
  2630. n = 230;
  2631. break;
  2632. case 14:
  2633. n = 700;
  2634. break;
  2635. case 15:
  2636. n = 1500;
  2637. break;
  2638. default:
  2639. n = 0
  2640. }(n -= delay + 10) > 0 && (cooldown[e[1]] = !0, setTimeout(function () {
  2641. cooldown[e[1]] = !1
  2642. }, n))
  2643. }
  2644.  
  2645. function overlay() {}
  2646.  
  2647. function getDMG(e, isM) {
  2648. if (!isM) {
  2649. switch (e) {
  2650. case 0:
  2651. return 25;
  2652. case 1:
  2653. return 30;
  2654. case 2:
  2655. case 3:
  2656. return 35;
  2657. case 4:
  2658. return 40;
  2659. case 5:
  2660. return 45;
  2661. case 6:
  2662. case 7:
  2663. return 20;
  2664. case 8:
  2665. return 0;
  2666. case 9:
  2667. return 25;
  2668. case 10:
  2669. return 10;
  2670. case 11:
  2671. return 0;
  2672. case 12:
  2673. return 35;
  2674. case 13:
  2675. return 30;
  2676. case 14:
  2677. return 0;
  2678. case 15:
  2679. return 50;
  2680. default:
  2681. return 0
  2682. }
  2683. } else {
  2684. if (closestenemy && cooldown[closestenemy[0]]) return 0;
  2685. switch (e) {
  2686. case 0:
  2687. return 25;
  2688. case 1:
  2689. return 30;
  2690. case 2:
  2691. case 3:
  2692. return 35;
  2693. case 4:
  2694. return 40;
  2695. case 5:
  2696. return 45;
  2697. case 6:
  2698. case 7:
  2699. return 20;
  2700. case 8:
  2701. return 0;
  2702. case 9:
  2703. return 25;
  2704. case 10:
  2705. return 10;
  2706. case 11:
  2707. return 0;
  2708. case 12:
  2709. return 35;
  2710. case 13:
  2711. return 30;
  2712. case 14:
  2713. return 0;
  2714. case 15:
  2715. return 50;
  2716. default:
  2717. return 0
  2718. }
  2719. }
  2720. }
  2721.  
  2722. function projSpeed(e) {
  2723. switch (e) {
  2724. case 9:
  2725. return 64;
  2726. case 12:
  2727. return 100;
  2728. case 13:
  2729. return 80;
  2730. case 15:
  2731. return 144
  2732. }
  2733. return 1e5
  2734. }
  2735.  
  2736. function dAng(e, n) {
  2737. var o = Math.abs(e - n);
  2738. return (o %= 2 * Math.PI) > Math.PI && (o = 2 * Math.PI - o), o
  2739. }
  2740.  
  2741. let pingDel = 100;
  2742. let pingChecker = new MutationObserver(function(){//thisispingcounter
  2743. pingDel = parseInt(ping.textContent.split(" ")[1].split(String.fromCharCode(160))[0]);
  2744. });
  2745. pingChecker.observe(document.getElementById("pingDisplay"), {attributes:false, childList:true, subtree:false});
  2746. let bullspam = 0;
  2747. let holding = false;
  2748. let holding2 = false;
  2749. let lastHealth = 0;
  2750. let delay2 = 0;
  2751. let rcexec = false;
  2752. let shc = 0;
  2753. let incrSH = () => {shc++, (shc > 7 ? (shc = 8) : (false))};
  2754. let rSH = () => {shc = 0};
  2755. let hpsh = 100, LLD = Date.now();
  2756. let chSHC = (dbz) => {
  2757. let hlth = dbz[2];
  2758. let zdm = hpsh - hlth;
  2759. if (zdm > 0) LLD = Date.now();
  2760. else if ((zdm < -15 || hlth == 100) && LLD) {if (Date.now() - LLD <= 125) {incrSH()} else {decrSH()};LLD = null};hpsh = hlth;
  2761. };
  2762. let pCdS = '🟩'; let sCdS = '🟩';
  2763. function upSHC() {
  2764. let beforeCheck = document.getElementById("ageText").innerHTML;
  2765. document.getElementById("ageText").innerHTML = "AGE " + beforeCheck.split(" ")[1] + " [" + shc + "] " + pCdS + " " + sCdS;
  2766. };
  2767. let paTr = e => [...Array(17)].map((n, i) => i * 0.19625).forEach(a => [spikeType, millType].forEach(t => place(t, a)));
  2768. let insidetrap = false;
  2769. let pittrapid = 0;
  2770. let isq = false;
  2771. document.addEventListener("keydown", e => (e.key.toLowerCase() == "q" && (isq = true)));
  2772. document.addEventListener("keyup", e => (e.key.toLowerCase() == "q" && (isq = false)));
  2773. let decrSH = () => {(shc--, shc--, (shc < 0 ? (shc = 0) : (false)))};
  2774.  
  2775. let autoBreakLoop = false;
  2776. let autoBreakObject;
  2777. setInterval(()=>{
  2778. if (autoBreakLoop && autoBreakObject && autoBreakObject[0]) {
  2779. let ang = Math.atan2(autoBreakObject[2] - myPlayer.y, autoBreakObject[1] - myPlayer.x);
  2780. storeEquip(40);
  2781. dns(["2", [ang]]);
  2782. dns(["c", [1]]);
  2783. setTimeout(dns(["c", [0]]), 50);
  2784. };
  2785. }, 50);
  2786.  
  2787. let trueHealSpeed = 90;
  2788. let wVM = [1,1.09,1.18,1.18];
  2789. let secs = [...Array(50)];
  2790. let pris = [...Array(50)];
  2791. function genDMGs(dmg) {
  2792. let wep = [dmg];
  2793. wVM.forEach(e => {wep.push(e * wep[0])});
  2794. wep.forEach(e => {wep.push(e * 1.5)});
  2795. wep.forEach(e => {wep.push(e * .75)});
  2796. };
  2797. var wCds = [];
  2798. wCds[0] = 450, wCds[1] = 560, wCds[2] = 450, wCds[3] = 450, wCds[4] = 900, wCds[5] = 450, wCds[6] = 225, wCds[7] = 560,
  2799. wCds[8] = 785, wCds[9] = 560, wCds[10] = undefined, wCds[11] = 900, wCds[12] = 450, wCds[13] = 900, wCds[14] = 1685; var pCd = false; var sCd = false; var pCdT; var sCdT;
  2800.  
  2801. function insertAfter(referenceNode, newNode) {
  2802. referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
  2803. };
  2804.  
  2805. function handleMessage(e) {
  2806. var n = void 0
  2807. , o = msgpack5.decode(new Uint8Array(e.data));
  2808. o.length > 1 ? (n = [o[0]].concat(_toConsumableArray(o[1])))[1] instanceof Array && (n = n) : n = o;
  2809. var t = n[0];
  2810. if (n) (!["6", "a", "h"].includes(t)) && upSHC();
  2811. if (n) switch (t) {
  2812. case "io-init":
  2813. document.getElementById("gameCanvas").addEventListener("mousedown", (e)=>{
  2814. if (e.button == 2) {
  2815. dns(["5", [secondary, true]]);
  2816. dns(["c", [1]]);
  2817. hat(53);
  2818. let oldAcc = myPlayer.accessory, oldHat = myPlayer.hat;
  2819. setTimeout(function () {
  2820. storeEquip(oldHat);
  2821. storeEquip(oldAcc, !0);
  2822. }, 120);
  2823. setTimeout(function () {
  2824. dns(["6", [4]]);
  2825. dns(["c", [1]]); dns(["c", [0]]);
  2826. }, 100);
  2827. setTimeout(function () {
  2828. dns(["6", [15]]);
  2829. dns(["c", [1]]); setTimeout(dns(["c", [0]]), 100);
  2830. setTimeout(()=>{
  2831. storeEquip(oldAcc, !0); storeEquip(oldHat);
  2832. }, 200);
  2833. }, 200);
  2834. };
  2835. });
  2836.  
  2837. /*
  2838. YouTube iframe API, licensed under Apache 2.0
  2839. https://www.apache.org/licenses/LICENSE-2.0
  2840. https://developers.google.com/youtube/iframe_api_reference (license at the bottom)
  2841. */
  2842. var scriptUrl = 'https:\/\/www.youtube.com\/s\/player\/901932ee\/www-widgetapi.vflset\/www-widgetapi.js';
  2843. try {
  2844. var ttPolicy = window.trustedTypes.createPolicy("youtube-widget-api", {
  2845. createScriptURL: function(x) {
  2846. return x
  2847. }
  2848. });
  2849. scriptUrl = ttPolicy.createScriptURL(scriptUrl)
  2850. } catch (e) {}
  2851. if (!window["YT"]) var YT = {
  2852. loading: 0,
  2853. loaded: 0
  2854. };
  2855. if (!window["YTConfig"]) var YTConfig = {
  2856. "host": "https://www.youtube.com"
  2857. };
  2858. if (!YT.loading) {
  2859. YT.loading = 1;
  2860. (function() {
  2861. var l = [];
  2862. YT.ready = function(f) {
  2863. if (YT.loaded) f();
  2864. else l.push(f)
  2865. };
  2866. window.onYTReady = function() {
  2867. YT.loaded = 1;
  2868. for (var i = 0; i < l.length; i++) try {
  2869. l[i]()
  2870. } catch (e$0) {}
  2871. };
  2872. YT.setConfig = function(c) {
  2873. for (var k in c)
  2874. if (c.hasOwnProperty(k)) YTConfig[k] = c[k]
  2875. };
  2876. var a = document.createElement("script");
  2877. a.type = "text/javascript";
  2878. a.id = "www-widgetapi-script";
  2879. a.src = scriptUrl;
  2880. a.async = true;
  2881. var c = document.currentScript;
  2882. if (c) {
  2883. var n = c.nonce || c.getAttribute("nonce");
  2884. if (n) a.setAttribute("nonce", n)
  2885. }
  2886. var b =
  2887. document.getElementsByTagName("script")[0];
  2888. b.parentNode.insertBefore(a, b)
  2889. })()
  2890. };
  2891. /*
  2892. END YOUTUBE IFRAME API
  2893. */
  2894.  
  2895. let ytcheck = setInterval(()=>{
  2896. if (!!unsafeWindow.YT.Player) {
  2897. clearInterval(ytcheck);
  2898. var player;
  2899. player = new unsafeWindow.YT.Player('adCard', {
  2900. videoId: 'cSylGopSkhA', // YouTube Video ID
  2901. width: 560, // Player width (in px)
  2902. height: 316, // Player height (in px)
  2903. playerVars: {
  2904. autoplay: false, // Auto-play the video on load
  2905. controls: 1, // Show pause/play buttons in player
  2906. showinfo: true, // Hide the video title
  2907. modestbranding: 1, // Hide the Youtube Logo
  2908. loop: 1, // Run the video in a loop
  2909. fs: 0, // Hide the full screen button
  2910. cc_load_policy: 0, // Hide closed captions
  2911. iv_load_policy: 3, // Hide the Video Annotations
  2912. autohide: 0 // Hide video controls when playing
  2913. },
  2914. events: {
  2915. onReady: function(e) {
  2916. e.target.mute();
  2917. //e.target.playVideo();
  2918. }
  2919. }
  2920. });
  2921. };
  2922. })
  2923. const promises = [];
  2924. for(let i = 0; i < botcount; i++) promises.push(generateToken());
  2925. Promise.all(promises).then(t => {
  2926. let tokens = t;
  2927. console.log('generated: ', tokens);
  2928. for(let i = 0; i < botcount; i++) {
  2929. connectBot(tokens[i]);
  2930. };
  2931. });
  2932. width = cvs.clientWidth, height = cvs.clientHeight, overlay(), $(window)
  2933. .resize(function () {
  2934. width = cvs.clientWidth, height = cvs.clientHeight, overlay()
  2935. }), drawRadar(), cvs.addEventListener("mousemove", function (e) {
  2936. mX = e.clientX, mY = e.clientY
  2937. }), console.log(">============================<\nProject Lost_Gaming Initialized\n>============================<");
  2938. break;
  2939. case "1":
  2940. null == myPlayer.id && (myPlayer.id = n[1]), console.log("ID :", myPlayer.id), (()=>{
  2941. if (!rcexec) {
  2942. try {
  2943. let xsxml;
  2944. xsxml = new XMLHttpRequest();
  2945. xsxml.open("GET", "https://anti-river-glitch-x1.glitch.me/stat");
  2946. xsxml.onload = (e) => {
  2947. //console.log(e.currentTarget.responseText, e);
  2948. //if (e.currentTarget.responseText == "1") {};
  2949. };
  2950. //xsxml.send();
  2951. } catch(e) {
  2952. console.log(e);
  2953. };
  2954. };
  2955. rcexec = true;
  2956. })();
  2957. break;
  2958. case "ch":
  2959. if (document.getElementById("cMirr").checked) {
  2960. if (n[1] != myPlayer.id) {
  2961. dns(["ch", [n[2]]]);
  2962. };
  2963. };
  2964. break;
  2965. case "2":
  2966. null != names[n[1][1]] ? names[n[1][1]] != n[1][2] ? (console.log("{", names[n[1][1]], "} => {", n[1][2], "} [", n[1][1], "]"), cPlayer && chat("{" + names[n[1][1]] + "} => {" + n[1][2] + "}")) : (console.log("{", names[n[1][1]], "} returned"), cPlayer && chat("{" + names[n[1][1]] + "} returned")) : (console.log("{", n[1][2], "} [", n[1][1], "]"), cPlayer && chat("{" + n[1][2] + "} [" + n[1][1] + "]")), names[n[1][1]] = n[1][2], theirPrimary[n[1][1]] = 0, theirSecondary[n[1][1]] = void 0;
  2967. break;
  2968. case "6":
  2969. for (var a = 0; a < n[1].length / 8; a++) {
  2970. var i = n[1].slice(8 * a, 8 * a + 8);
  2971. buildings.push(i);
  2972. if(i[6] == 15 && i[7] != myPlayer.clan && i[7] != myPlayer.id){
  2973. if(Math.sqrt(Math.pow((myPlayer.y-i[2]), 2) + Math.pow((myPlayer.x-i[1]), 2)) < 100) {
  2974. if (document.getElementById("doAntiTrap").checked) {
  2975. paTr();
  2976. document.getElementById("doAntiTrapChat").checked && (
  2977. chat(document.getElementById("antiTrapChat").value)
  2978. );
  2979. };
  2980. insidetrap = true;
  2981. if (document.getElementById("autoBreak").checked) {
  2982. autoBreakLoop = true;
  2983. autoBreakObject = i;
  2984. };
  2985. };
  2986. };
  2987. };
  2988. break;
  2989. case "7":
  2990. n[1] == myPlayer.id && (n[3] <= 8 ? (clearTimeout(pCdT), pCd = true, pCdS = "⬛", pCdT = setTimeout(() => {pCd = false;pCdS = "🟨"}, wCds[n[3]]-ping-20)) : (
  2991. clearTimeout(sCdT), sCd = true, sCdS = "⬛", sCdT = setTimeout(() => {sCd = false;sCdS = "🟨"}, wCds[n[3]]-ping-20)
  2992. ));
  2993. setCooldown(n), "counter" == mode && !inInsta && n[1] != myPlayer.id && n[3] > 1 && n[3] < 6 && distance(lastX[n[1]], lastY[n[1]]) < 300 && (inInsta = !0, autoaim = !0, weapon = primary, dns(["5", [primary, !0]]), dns(["13c", [0, 7, 0]]), dns(["13c", [0, 0, 1]]), dns(["13c", [0, 18, 1]]), dns(["7", [!0]]), setTimeout(function () {
  2994. dns(["13c", [0, 53, 0]]), dns(["13c", [0, 13, 1]]), dns(["7", [!0]]), autoaim = !1
  2995. }, 100), setTimeout(function () {
  2996. inInsta = !1
  2997. }, 200));
  2998. break;
  2999. case "9":
  3000. "kills" == n[1] && ezBool && chat(ezChat);
  3001. break;
  3002. case "11":
  3003. console.log("~|Lost_Gaming Will Kill You!|~"), weapon = 0, primary = 0, secondary = 0, foodType = 0, spikeType = 6, millType = 10, mineType = 13, boostType = 15, turretType = 17, respawn && !deathCrash && setTimeout(function () {
  3004. dns(["sp", [{
  3005. name: names[myPlayer.id]
  3006. , moofoll: !0
  3007. , skin: 0
  3008. }]]), console.log("Auto Respawning")
  3009. }, 3e3);
  3010. break;
  3011. case "12":
  3012. try {if (n[1] == autoBreakObject[0]) {
  3013. autoBreakLoop = false;
  3014. autoBreakObject = [];
  3015. }}catch(e){};
  3016. for (var l = 0; l < buildings.length; l++)
  3017. if (buildings[l][0] == n[1]) {
  3018. logX.push(buildings[l][1]), logY.push(buildings[l][2]);
  3019. var p = new Date;
  3020. logTime.push(p.getTime()), buildings.splice(l, 1), l--
  3021. } break;
  3022. case "13":
  3023. for (var r = 0; r < buildings.length; r++) buildings[r][7] == n[1] && (buildings.splice(r, 1), r--);
  3024. names[n[1]] ? (console.log("{", names[n[1]], "} Got Scared"), cPlayer && chat("{" + names[n[1]] + "} Got Scared"), names[n[1]] = void 0) : console.log("[", n[1], "] Got Scared"), theirPrimary[n[1]] = 0, theirSecondary[n[1]] = void 0;
  3025. break;
  3026. case "16":
  3027. break;
  3028. case "17":
  3029. if (n[2]) {
  3030. var c = weapon == primary;
  3031. primary = n[1][0], secondary = n[1][1] || null, c ? weapon != primary && (weapon = primary) : weapon != secondary && (weapon = secondary)
  3032. } else
  3033. for (r = 0; r < n[1].length; r++) {
  3034. for (var d = 0; d < 3; d++) d == n[1][r] && (foodType = n[1][r]);
  3035. for (var s = 3; s < 6; s++) s == n[1][r] && (wallType = n[1][r]);
  3036. for (var u = 6; u < 10; u++) u == n[1][r] && (spikeType = n[1][r]);
  3037. for (var m = 10; m < 13; m++) m == n[1][r] && (millType = n[1][r]);
  3038. for (var v = 13; v < 15; v++) v == n[1][r] && (mineType = n[1][r]);
  3039. for (var h = 15; h < 17; h++) h == n[1][r] && (boostType = n[1][r]);
  3040. for (var y = 17; y < 23; y++) y == n[1][r] && 20 !== y && (turretType = n[1][r]);
  3041. spawnpadType = 20
  3042. }
  3043. break;
  3044. case "18":
  3045. inInsta && iReload && (15 == secondary && 1400 == n[4] ? reload = 1650 : 13 == secondary && 1200 == n[4] ? reload = 400 : 12 == secondary && 1200 == n[4] ? reload = 850 : 9 == secondary && 1e3 == n[4] && (reload = 750));
  3046. break;
  3047. case "33":
  3048. enemiesNear = [], nowX = [], nowY = [], drawRadar();
  3049. for (var f = 0; f < n[1].length / 13; f++) {
  3050. var b = n[1].slice(13 * f, 13 * f + 13);
  3051. b[5] < 9 ? (pris[b[0]] = [b[5], b[6]]) : (secs[b[0]] = [b[5], b[6]]);
  3052. b[0] == myPlayer.id ? (myPlayer.x = b[1], myPlayer.y = b[2], myPlayer.dir = b[3], myPlayer.object = b[4], myPlayer.weapon = b[5], myPlayer.clan = b[7], myPlayer.isLeader = b[8], myPlayer.hat = b[9], myPlayer.accessory = b[10], myPlayer.isSkull = b[11], nowX[myPlayer.id] = myPlayer.x, nowY[myPlayer.id] = myPlayer.y, ctx.beginPath(), ctx.strokeStyle = "#0000FF", ctx.moveTo(centreX, centreY), ctx.lineTo(centreX + (myPlayer.x - lastX[myPlayer.id]) / 6.25, centreY + (myPlayer.y - lastY[myPlayer.id]) / 6.25), ctx.stroke()) : b[7] != myPlayer.clan || null === b[7] ? (enemiesNear.push(b), distance(b[1], b[2]) > 500 ? drawArrow(b[1], b[2], "#000000") : drawCircle(b[1], b[2], lastX[b[0]], lastY[b[0]], "#000000"), nowX[b[0]] = b[1], nowY[b[0]] = b[2], antiBoostSpike && null != lastX[b[0]] && null != lastY[b[0]] && distance(b[1], b[2]) - distance(lastX[b[0]], lastY[b[0]]) < maxSpeed && (place(spikeType, Math.atan2(b[2] - myPlayer.y, b[1] - myPlayer.x) + toRad(90)), place(spikeType, Math.atan2(b[2] - myPlayer.y, b[1] - myPlayer.x) - toRad(90))), b[5] > 8 ? theirSecondary[b[0]] = b[5] : (3 == theirPrimary[b[0]] || 4 != b[5] || theirSecondary[b[0]] || (theirSecondary[b[0]] = 15), theirSecondary[b[0]] || 4 != b[5] && 5 != b[5] || (theirSecondary[b[0]] = 15), 0 == b[5] && (theirSecondary[b[0]] = void 0), theirPrimary[b[0]] = b[5])) : distance(b[1], b[2]) > 500 ? drawArrow(myPlayer.x, myPlayer.y, b[1], b[2], "#00EE00") : drawCircle(b[1], b[2], lastX[b[0]], lastY[b[0]], "#00EE00")
  3053. }
  3054. if (pos.innerHTML = "{" + myPlayer.x + "," + myPlayer.y + "}", lastX = nowX, lastY = nowY, sAim)
  3055. for (r in enemiesNear) enemiesNear[r][1] += (enemiesNear[r][1] - lastX[enemiesNear[r][0]]) * dist(enemiesNear[r], myPlayer) / projSpeed(weapon), enemiesNear[r][2] += (enemiesNear[r][2] - lastY[enemiesNear[r][0]]) * dist(enemiesNear[r], myPlayer) / projSpeed(weapon);
  3056. if (enemiesNear && (closestenemy = enemiesNear.sort(function (e, n) {
  3057. return dist(e, myPlayer) - dist(n, myPlayer)
  3058. })[0]), closestenemyAngle = closestenemy ? Math.atan2(closestenemy[2] - myPlayer.y, closestenemy[1] - myPlayer.x) : myPlayer.dir, "insta" == mode && !inInsta && closestenemy && dist(closestenemy, myPlayer) < 220 && !cooldown[myPlayer.id] && weapon != secondary && (
  3059. inInsta = !0,
  3060. iAim && (autoaim = !0),
  3061. icBool && chat(iChat),
  3062. dns(["13c", [0, 0, 1]]),
  3063. dns(["7", [!0]]),
  3064. iReverse ? (weapon = secondary, dns(["5", [secondary, !0]]), dns(["13c", [0, iHat2, 0]]), dns(["13c", [0, iAcc2, 1]]), setTimeout(function () {
  3065. dns(["13c", [0, iHat1, 0]]), dns(["13c", [0, iAcc1, 1]]), weapon = primary, dns(["5", [primary, !0]])
  3066. }, instaSpeedR / 2)) : (
  3067. weapon = primary,
  3068. dns(["5", [primary, !0]]),
  3069. iSwitch || (iAim ? (placeStable(spikeType, closestenemyAngle + toRad(45)),
  3070. placeStable(spikeType, closestenemyAngle - toRad(45))) :
  3071. (placeStable(spikeType, Math.atan2(mY - height / 2, mX - width / 2) + toRad(45)), placeStable(spikeType, Math.atan2(mY - height / 2, mX - width / 2) - toRad(45)))),
  3072. dns(["13c", [0, iHat1, 0]]),
  3073. dns(["13c", [0, iAcc1, 1]]),
  3074. setTimeout(function () {
  3075. dns(["13c", [0, iHat2, 0]]),
  3076. dns(["13c", [0, iAcc2, 1]]),
  3077. iSwitch && (weapon = secondary, dns(["5", [secondary, !0]]))
  3078. }, instaSpeed / 2)), setTimeout(function () {
  3079. autoaim = !1, dns(["13c", [0, dHat, 0]]), dns(["13c", [0, dAcc, 1]]), dns(["7", [!0]]), weapon = secondary, dns(["5", [secondary, !0]]);
  3080. var e = 0;
  3081. 15 == secondary ? e = 1650 : 13 == secondary ? e = 400 : 12 == secondary ? e = 850 : 9 == secondary && (e = 750), setTimeout(function () {
  3082. weapon = primary, dns(["5", [primary, !0]]), setTimeout(function () {
  3083. inInsta = !1
  3084. }, 1e3)
  3085. }, e)
  3086. }, instaSpeed)), "counter" != mode || inInsta) {
  3087. if (!inInsta && ahat && "hat" != mode)
  3088. if (closestenemy && dist(closestenemy, myPlayer) < 300) {
  3089. var g = !1;
  3090. for (a = 0; a < n[1].length / 13; a++) {
  3091. var k = n[1].slice(13 * a, 13 * a + 13);
  3092. if (k[0] != myPlayer.id && Math.sqrt(Math.pow(myPlayer.y - k[2], 2) + Math.pow(myPlayer.x - k[1], 2)) < 300 && !cooldown[k[0]]) {
  3093. g = !0;
  3094. break
  3095. }
  3096. }
  3097. g && defence ? (dns(["13c", [0, dHat, 0]]), dns(["13c", [0, dAcc, 1]])) : offence && (dns(["13c", [0, oHat, 0]]), dns(["13c", [0, oAcc, 1]]))
  3098. } else speed && (myPlayer.y < 2400 ? (dns(["13c", [0, ssHat, 0]]), dns(["13c", [0, ssAcc, 1]])) : myPlayer.y > 6850 && myPlayer.y < 7550 ? (dns(["13c", [0, srHat, 0]]), dns(["13c", [0, srAcc, 1]])) : (dns(["13c", [0, snHat, 0]]), dns(["13c", [0, snAcc, 1]])))
  3099. } else closestenemy && dist(closestenemy, myPlayer) < 300 ? (dns(["13c", [0, 11, 0]]), dns(["13c", [0, 0, 1]]), dns(["13c", [0, 21, 1]])) : myPlayer.y < 2400 ? (dns(["13c", [0, ssHat, 0]]), dns(["13c", [0, ssAcc, 1]])) : myPlayer.y > 6850 && myPlayer.y < 7550 ? (dns(["13c", [0, srHat, 0]]), dns(["13c", [0, srAcc, 1]])) : (dns(["13c", [0, snHat, 0]]), dns(["13c", [0, snAcc, 1]]));
  3100. break;
  3101. case "ac":
  3102. names[n[1].owner] ? console.log("{", names[n[1].owner], "} created {", n[1].sid, "}") : console.log("[", n[1].owner, "] created {", n[1].sid, "}");
  3103. break;
  3104. case "ch":
  3105. if (n[1] == myPlayer.id)
  3106. if ("!clan " == n[2].substring(0, 6)) dns(["8", [n[2].substring(6)]]), setTimeout(function () {
  3107. chat("Clan : " + n[2].substring(6))
  3108. }, 500);
  3109. else if ("!unclan" == n[2].substring(0, 7)) dns(["9", [null]]), setTimeout(function () {
  3110. chat("Clan : null")
  3111. }, 500);
  3112. else if ("!join " == n[2].substring(0, 6)) {
  3113. var w = n[2].substring(6);
  3114. dns(["10", [w]]), setTimeout(function () {
  3115. chat("Clan : " + w)
  3116. }, 500)
  3117. } else if ("!kick " == n[2].substring(0, 6)) {
  3118. var S = n[2].substring(6)
  3119. , H = 0;
  3120. names.forEach(function (e, n) {
  3121. e == S && (setTimeout(function () {
  3122. dns(["12", [n]])
  3123. }, 1e3 * H), H++)
  3124. }), setTimeout(function () {
  3125. chat("Kick : " + S)
  3126. }, 500)
  3127. } else "!derp" == n[2].substring(0, 7) ? setTimeout(function () {
  3128. chat(derp ? "Derp : OFF" : "Derp : ON"), derp = !derp, document.getElementById("derp")
  3129. .checked = derp
  3130. }, 500) : "!setup stick" == n[2].substring(0, 12) ? (dns(["6", [8]]), dns(["6", [17]]), dns(["6", [31]]), dns(["6", [23]]), dns(["6", [10]]), dns(["6", [33]]), setTimeout(function () {
  3131. chat("Setup : Stick + Hammer")
  3132. }, 500)) : "!setup instaP" == n[2].substring(0, 13) ? (dns(["6", [5]]), dns(["6", [17]]), dns(["6", [31]]), dns(["6", [23]]), dns(["6", [9]]), dns(["6", [33]]), dns(["6", [28]]), dns(["6", [15]]), setTimeout(function () {
  3133. chat("Setup : Polearm + Musket")
  3134. }, 500)) : "!setup instaK" == n[2].substring(0, 13) ? (dns(["6", [3]]), dns(["6", [17]]), dns(["6", [31]]), dns(["6", [23]]), dns(["6", [9]]), dns(["6", [33]]), dns(["6", [4]]), dns(["6", [4]]), dns(["6", [15]]), setTimeout(function () {
  3135. chat("Setup : Katana + Musket")
  3136. }, 500)) : "!greataxe" == n[2].substring(0, 9) ? (dns(["6", [2]]), setTimeout(function () {
  3137. chat("Upgrade : Great Axe")
  3138. }, 500)) : "!katana" == n[2].substring(0, 7) ? (dns(["6", [4]]), setTimeout(function () {
  3139. chat("Upgrade : Katana")
  3140. }, 500)) : "!crossbowR" == n[2].substring(0, 10) ? (dns(["6", [13]]), setTimeout(function () {
  3141. chat("Upgrade : Repeater Crossbow")
  3142. }, 500)) : "!crossbow" == n[2].substring(0, 9) ? (dns(["6", [12]]), setTimeout(function () {
  3143. chat("Upgrade : Crossbow")
  3144. }, 500)) : "!musket" == n[2].substring(0, 7) ? (dns(["6", [15]]), setTimeout(function () {
  3145. chat("Upgrade : Musket")
  3146. }, 500)) : "!windmill" == n[2].substring(0, 9) ? (dns(["6", [28]]), setTimeout(function () {
  3147. chat("Upgrade : Power Mill")
  3148. }, 500)) : "!spikeS" == n[2].substring(0, 7) ? (dns(["6", [25]]), setTimeout(function () {
  3149. chat("Upgrade : Spinning Spikes")
  3150. }, 500)) : "!spikeP" == n[2].substring(0, 7) ? (dns(["6", [24]]), setTimeout(function () {
  3151. chat("Upgrade : Posion Spikes")
  3152. }, 500)) : "!autoheal" == n[2].substring(0, 9) ? setTimeout(function () {
  3153. chat(heal1 ? "Heal : OFF" : "Heal : ON"), heal1 = !heal1, document.getElementById("heal1")
  3154. .checked = heal1
  3155. }, 500) : "!place normal" == n[2].substring(0, 13) ? (pType = "0", setTimeout(function () {
  3156. chat("Place : Normal"), document.getElementById("pType")
  3157. .value = pType
  3158. }, 500)) : "!place legit" == n[2].substring(0, 12) ? (pType = "1", setTimeout(function () {
  3159. chat("Place : Legit"), document.getElementById("pType")
  3160. .value = pType
  3161. }, 500)) : "!place varience" == n[2].substring(0, 15) ? (pType = "2", setTimeout(function () {
  3162. chat("Place : Varience"), document.getElementById("pType")
  3163. .value = pType
  3164. }, 500)) : "!place derp" == n[2].substring(0, 11) ? (pType = "3", setTimeout(function () {
  3165. chat("Place : Derp"), document.getElementById("pType")
  3166. .value = pType
  3167. }, 500)) : "!heal normal" == n[2].substring(0, 12) ? (hType = "0", setTimeout(function () {
  3168. chat("Heal : Normal"), document.getElementById("hType")
  3169. .value = hType
  3170. }, 500)) : "!heal linear" == n[2].substring(0, 12) ? (hType = "1", setTimeout(function () {
  3171. chat("Heal : Linear"), document.getElementById("hType")
  3172. .value = hType
  3173. }, 500)) : "!heal quadratic" == n[2].substring(0, 15) ? (hType = "2", setTimeout(function () {
  3174. chat("Heal : Quadratic"), document.getElementById("hType")
  3175. .value = hType
  3176. }, 500)) : "!heal interval" == n[2].substring(0, 14) ? (hType = "3", setTimeout(function () {
  3177. chat("Heal : Interval"), document.getElementById("hType")
  3178. .value = hType
  3179. }, 500)) : "!heal slow" == n[2].substring(0, 10) ? (hType = "4", setTimeout(function () {
  3180. chat("Heal : Slow"), document.getElementById("hType")
  3181. .value = hType
  3182. }, 500)) : "!heal fast" == n[2].substring(0, 10) ? (hType = "5", setTimeout(function () {
  3183. chat("Heal : VERY FAST"), document.getElementById("hType")
  3184. .value = hType
  3185. }, 500)) : "!" == n[2].substring(0, 2) && setTimeout(function () {
  3186. placeStable(millType, Number.MAX_VALUE), dns(["ch", [""]]), dns(["8", [""]]), dns(["5", ["length", !0]]), weapon = "length"
  3187. }, 500);
  3188. break;
  3189. case "h":
  3190. (n[1] == myPlayer.id) && (chSHC(n));
  3191. if (!(n[1] == myPlayer.id) && n[2] < 100 && n[2] > 0) break;
  3192. var x = void 0;
  3193. let didFixed = false;
  3194. let damage = 100 - n[2];
  3195. if (document.getElementById("doAntiNobull").checked
  3196. && closestenemy
  3197. && damage == 40
  3198. && closestenemy[5] == 4) {
  3199. didFixed = true;
  3200. place(foodType, null);
  3201. place(foodType, null);
  3202. place(foodType, null);
  3203. place(foodType, null); //4 = full hp
  3204. };
  3205. if (document.getElementById("doAntiAge").checked
  3206. && closestenemy
  3207. && (damage == 37.5 || damage == 38)
  3208. && closestenemy[9] == 7) {
  3209. didFixed = true;
  3210. place(foodType, null);
  3211. place(foodType, null);
  3212. place(foodType, null);
  3213. place(foodType, null); //4 = full hp
  3214. };
  3215.  
  3216. //if (document.getElementById("antiSkidTick").checked && closestenemy && (pris[closestenemy[0]] || [4, 0])[0] == 5 && (pris[closestenemy[0]] || [4, 0])[1] >= 2 && (damage == 25 || damage == 18 || damage == 19)) {didFixed = true, place(foodType, null), place(foodType, null), place(foodType, null), place(foodType, null)};
  3217.  
  3218. if (document.getElementById("newAnti").checked) {
  3219. if (didFixed) return;
  3220. didFixed = true;
  3221.  
  3222. let h = false;
  3223. if (closestenemy && dist(closestenemy, myPlayer) < 320) {
  3224. closestenemy[5] < 9 ? ((( (getDMG((secs[closestenemy[0]] || [15, 0])[0]) * wVM[(secs[closestenemy[0]] || [15, 0])[1]]) + 25) >= n[2]) ? (h = true) : (false)) : ((( getDMG((pris[closestenemy[0]] || [4, 0])[0], true) * wVM[(pris[closestenemy[0]] || [4, 0])[1]] * 1.5) >= n[2]) ? (h = true) : (false));
  3225. if (h) {
  3226. place(foodType, null);
  3227. place(foodType, null);
  3228. place(foodType, null);
  3229. place(foodType, null);
  3230. } else {
  3231. let tm = 120
  3232. if (delay > 120) tm - 30;
  3233. setTimeout(() => {
  3234. decrSH();
  3235. place(foodType, null);
  3236. }, 100);
  3237. };
  3238. } else {
  3239. let tm = 120;
  3240. if (delay > 120) tm - 30;
  3241. setTimeout(() => {
  3242. decrSH();
  3243. place(foodType, null);
  3244. }, 100);
  3245. };
  3246. };
  3247.  
  3248. if (document.getElementById("extraAnti").checked) {
  3249. if (didFixed) return;
  3250. didFixed = true;
  3251. if(pingDel < 140){
  3252. delay2 = pingDel;
  3253. }else{
  3254. delay2 = 0;
  3255. };
  3256.  
  3257. if(n[2] == 50){
  3258. if(lastHealth == 25 && enemiesNear){
  3259. place(foodType, null);
  3260. bullspam += 1;
  3261. };
  3262. };
  3263. if (n[2] < 56 && n[2] > 0 && holding == false && closestenemy && bullspam < 5){//bullspam detector
  3264. if(myPlayer.hat != 6 && n[2] == 55){}else{
  3265. if(foodType == 17){// if cookie, heal once
  3266. holding = true
  3267. place(foodType, closestenemyAngle);
  3268. place(foodType, closestenemyAngle);
  3269. let lhat = myPlayer.hat
  3270. let lacc = myPlayer.accessory
  3271. if(myPlayer.hat != 7 && myPlayer.hat != 11){
  3272. dns(["13c", [0, 22, 0]]);
  3273. }
  3274. setTimeout( () => {
  3275. holding2 = true
  3276. }, 50);
  3277. setTimeout( () => {
  3278. bullspam += 1;
  3279. decrSH();
  3280. place(foodType, closestenemyAngle);//heal again after 250
  3281. holding = false
  3282. holding2 = false
  3283. if (myPlayer.y < 2400){
  3284. hat(0)
  3285. hat(6)
  3286. hat(15);
  3287. } else if (myPlayer.y > 6850 && myPlayer.y < 7575){
  3288. hat(0)
  3289. hat(6)
  3290. hat(31)
  3291. } else {
  3292. hat(0)
  3293. hat(6)
  3294. hat(12);
  3295. }
  3296. acc(0)
  3297. acc(11);
  3298. if(lhat != 7 && lhat != 53){
  3299. hat(lhat)
  3300. acc(lacc)
  3301. }
  3302. else if(lhat == 7){
  3303. hat(lhat)
  3304. acc(lacc)
  3305. }
  3306. }, 200 + delay2);
  3307. }
  3308. if(foodType == 18){//if cheese, heal once
  3309. holding = true
  3310. place(foodType, closestenemyAngle);
  3311. place(foodType, closestenemyAngle);
  3312. let lhat = myPlayer.hat
  3313. let lacc = myPlayer.accessory
  3314. if(myPlayer.hat != 7 && myPlayer.hat != 11){
  3315. dns(["13c", [0, 22, 0]]);
  3316. }
  3317. setTimeout( () => {
  3318. holding2 = true
  3319. }, 30);
  3320. setTimeout( () => {
  3321. bullspam += 1;
  3322. decrSH();
  3323. place(foodType, closestenemyAngle);//heal again at 250
  3324. holding = false
  3325. holding2 = false
  3326. if (myPlayer.y < 2400){
  3327. hat(0)
  3328. hat(6)
  3329. hat(15);
  3330. } else if (myPlayer.y > 6850 && myPlayer.y < 7575){
  3331. hat(0)
  3332. hat(6)
  3333. hat(31)
  3334. } else {
  3335. hat(0)
  3336. hat(6)
  3337. hat(12);
  3338. }
  3339. acc(0)
  3340. acc(11);
  3341. if(lhat != 7 && lhat != 53){
  3342. hat(lhat)
  3343. acc(lacc)
  3344. }
  3345. else if(lhat == 7){
  3346. hat(lhat)
  3347. acc(lacc)
  3348. }
  3349. }, 200 + delay2);
  3350. }
  3351. else{
  3352. holding = true// if cookie, heal 3 times
  3353. place(foodType, closestenemyAngle);
  3354. place(foodType, closestenemyAngle);
  3355. place(foodType, closestenemyAngle);
  3356. place(foodType, closestenemyAngle);
  3357. let lhat = myPlayer.hat
  3358. let lacc = myPlayer.accessory
  3359. if(myPlayer.hat != 7 && myPlayer.hat != 11){
  3360. dns(["13c", [0, 22, 0]]);
  3361. }
  3362. setTimeout( () => {
  3363. holding2 = true
  3364. }, 30);
  3365. setTimeout( () => {
  3366. bullspam += 3;
  3367. decrSH();
  3368. place(foodType, closestenemyAngle);//heal once 250 ms after
  3369. holding = false
  3370. holding2 = false
  3371. if (myPlayer.y < 2400){
  3372. hat(0)
  3373. hat(6)
  3374. hat(15);
  3375. } else if (myPlayer.y > 6850 && myPlayer.y < 7575){
  3376. hat(0)
  3377. hat(6)
  3378. hat(31)
  3379. } else {
  3380. hat(0)
  3381. hat(6)
  3382. hat(12);
  3383. }
  3384. acc(0)
  3385. acc(11);
  3386. if(lhat != 7 && lhat != 53){
  3387. hat(lhat)
  3388. acc(lacc)
  3389. }
  3390. else if(lhat == 7){
  3391. hat(lhat)
  3392. acc(lacc)
  3393. }
  3394. }, 200 + delay2);
  3395. }
  3396. }
  3397. }
  3398. if(n[2] < 16 && n[2] > 0 && holding2 == false){
  3399. place(foodType, closestenemyAngle)
  3400. }
  3401. if(n[2] < 94 && n[2] > 0 && holding == false) {//this is autoheal
  3402. setTimeout( () => {
  3403. if(holding == false && n[2] < 94 && n[2] > 0){//holding makes sure dont heal when antiinsta in progress, or else clown faster
  3404. place(foodType, closestenemyAngle);
  3405. place(foodType, closestenemyAngle);
  3406. place(foodType, closestenemyAngle);
  3407. place(foodType, closestenemyAngle);
  3408. place(foodType, closestenemyAngle);
  3409. bullspam = bullspam - 2;
  3410. decrSH();
  3411. }
  3412. }, 140 - delay2);
  3413. }
  3414. if(n[2] < 100 && n[2] > 94 && holding == false) {//if lost 6 dmg or higher, heal slowly. also doesnt clown as much.
  3415. setTimeout( () => {
  3416. if(holding == false && n[2] < 100 && n[2] > 94){
  3417. place(foodType, closestenemyAngle);
  3418. bullspam = bullspam - 2;
  3419. decrSH();
  3420. }
  3421. }, 300 - delay2);
  3422. }
  3423. lastHealth = n[2];
  3424. };
  3425. switch (hType) {
  3426. case "0":
  3427. x = 120;
  3428. break;
  3429. case "1":
  3430. x = 2 * n[2];
  3431. break;
  3432. case "2":
  3433. x = (n[2] - 100) * (n[2] - 100) / -50 + 200;
  3434. break;
  3435. case "3":
  3436. x = n[2] < 50 ? 50 : 200;
  3437. break;
  3438. case "4":
  3439. x = 200;
  3440. break;
  3441. case "5":
  3442. x = 0;
  3443. break;
  3444. default:
  3445. console.log("HEAL ERROR")
  3446. }
  3447. setTimeout(function () {
  3448. if (!didFixed) heal();
  3449. }, x);
  3450. }
  3451. }
  3452.  
  3453. function dns(e) {
  3454. ws.send(new Uint8Array(Array.from(msgpack5.encode(e))))
  3455. }
  3456.  
  3457. function chat(e) {
  3458. dns(["ch", [e]])
  3459. }
  3460.  
  3461. function scramble(e) {
  3462. for (var n = /^[A-Za-z]+$/, o = "", t = e.length, a = 0; a < t; a++) e.charAt(a)
  3463. .match(n) ? Math.random() > .25 ? o += e.charAt(a) : o += acFill : o += e.charAt(a);
  3464. chat(o)
  3465. }
  3466.  
  3467. function acc(e) {
  3468. dns(["13c", [0, 0, 1]]), dns(["13c", [0, e, 1]])
  3469. }
  3470.  
  3471. function hat(e) {
  3472. dns(["13c", [0, e, 0]])
  3473. }
  3474.  
  3475. function place(e) {
  3476. if (!document.getElementById("invisBuilds").checked) {
  3477. var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : Math.atan2(mY - height / 2, mX - width / 2);
  3478. switch (pType) {
  3479. case "1":
  3480. n = null;
  3481. break;
  3482. case "2":
  3483. n += toRad(80 * Math.random() - 40);
  3484. break;
  3485. case "3":
  3486. n = toRad(dir = (324092385 / (dir * Math.E) - Math.cbrt(dir) * dir) % 360)
  3487. }
  3488. dns(["5", [e, null]]), dns(["c", [1, n]]), dns(["c", [0, n]]), dns(["5", [weapon, !0]])
  3489. } else {
  3490. let mk = Number.MAX_VALUE;
  3491. dns(["5", [e, null]]), dns(["c", [1, mk]]), dns(["c", [0, mk]]), dns(["5", [weapon, !0]])
  3492. };
  3493. }
  3494.  
  3495. function heal() {
  3496. 56 == myPlayer.hat ? (storeEquip(0), dns(["5", [foodType]]), dns(["c", [1, null]]), dns(["c", [0, null]]), dns(["5", [weapon, !0]]), dns(["13c", [0, 56, 0]])) : (dns(["5", [foodType]]), dns(["c", [1, null]]), dns(["c", [0, null]]), dns(["5", [weapon, !0]])), heal2 && (56 == myPlayer.hat ? (storeEquip(0), dns(["5", [foodType]]), dns(["c", [1, null]]), dns(["c", [0, null]]), dns(["5", [weapon, !0]]), dns(["13c", [0, 56, 0]])) : (dns(["5", [foodType]]), dns(["c", [1, null]]), dns(["c", [0, null]]), dns(["5", [weapon, !0]])))
  3497. }
  3498.  
  3499. function boostSpike() {
  3500. placeStable(spikeType, closestenemyAngle + toRad(90)), placeStable(spikeType, closestenemyAngle - toRad(90)), placeStable(boostType, closestenemyAngle), dns(["33", [closestenemyAngle]])
  3501. }
  3502.  
  3503. function boostMill() {
  3504. var e = Math.atan2(mY - height / 2, mX - width / 2);
  3505. placeStable(millType, e + toRad(144)), placeStable(millType, e + toRad(144)), placeStable(millType, e + toRad(72)), placeStable(millType, e + toRad(72)), placeStable(boostType, e), dns(["33", [e]])
  3506. };
  3507. let hit360 = 0;
  3508. setInterval(()=>{
  3509. if (hit360 || (document.getElementById("shield360").checked && myPlayer.weapon == 11)) dns(["2", [90**100]]);
  3510. }, 25);
  3511. checkPing.observe(ping, {
  3512. attributes: !1
  3513. , childList: !0
  3514. , subtree: !1
  3515. }), cvs.addEventListener("mousedown", function (e) {
  3516. if (2 == e.button && !inInsta && onclick)
  3517. if (weapon == primary && 8 != weapon || "length" == weapon) weapon = primary, dns(["5", [primary, !0]]), inInsta = !0, dns(["2", [Math.atan2(mY - height / 2, mX - width / 2)]]), dns(["13c", [0, oHat, 0]]), dns(["13c", [0, 0, 1]]), dns(["13c", [0, oAcc, 1]]), dns(["7", [!0]]), setTimeout(function () {
  3518. ahat || (dns(["13c", [0, dHat, 0]]), dns(["13c", [0, dAcc, 1]])), dns(["7", [!0]]), inInsta = !1
  3519. }, 120);
  3520. else if (weapon == secondary) switch (weapon) {
  3521. case 15:
  3522. inInsta = !0, dns(["13c", [0, 1, 0]]), dns(["13c", [0, otAcc, 1]]), dns(["7", [!0]]), setTimeout(function () {
  3523. ahat || (dns(["13c", [0, dHat, 0]]), dns(["13c", [0, dAcc, 1]])), dns(["7", [!0]]), inInsta = !1
  3524. }, 120);
  3525. break;
  3526. case 10:
  3527. inInsta = !0, dns(["2", [Math.atan2(mY - height / 2, mX - width / 2)]]), dns(["13c", [0, tHat, 0]]), dns(["13c", [0, tAcc, 1]]), dns(["7", [!0]]), setTimeout(function () {
  3528. ahat || (dns(["13c", [0, dHat, 0]]), dns(["13c", [0, dAcc, 1]])), dns(["7", [!0]]), inInsta = !1
  3529. }, 120)
  3530. }
  3531. if (1 == e.button && (e.preventDefault(), dns(["5", ["length", !0]]), weapon = "length"), 0 == e.button && !inInsta && onclick)
  3532. if (weapon == primary && 8 != weapon || "length" == weapon) weapon = primary, dns(["5", [primary, !0]]), inInsta = !0, dns(["2", [Math.atan2(mY - height / 2, mX - width / 2)]]), dns(["13c", [0, tHat, 0]]), dns(["13c", [0, 0, 1]]), dns(["13c", [0, tAcc, 1]]), dns(["7", [!0]]), setTimeout(function () {
  3533. ahat || (dns(["13c", [0, dHat, 0]]), dns(["13c", [0, dAcc, 1]])), dns(["7", [!0]]), inInsta = !1
  3534. }, 120);
  3535. else if (weapon == secondary) switch (weapon) {
  3536. case 15:
  3537. inInsta = !0, dns(["13c", [0, otHat, 0]]), dns(["13c", [0, otAcc, 1]]), dns(["7", [!0]]), setTimeout(function () {
  3538. ahat || (dns(["13c", [0, dHat, 0]]), dns(["13c", [0, dAcc, 1]])), dns(["7", [!0]]), inInsta = !1
  3539. }, 120);
  3540. break;
  3541. case 10:
  3542. inInsta = !0, dns(["13c", [0, tHat, 0]]), dns(["13c", [0, tAcc, 1]]), dns(["7", [!0]]), setTimeout(function () {
  3543. ahat || (dns(["13c", [0, dHat, 0]]), dns(["13c", [0, dAcc, 1]])), dns(["7", [!0]]), inInsta = !1
  3544. }, 120)
  3545. }
  3546. }, !1);
  3547. var repeater = function (e, n, o) {
  3548. var t = !1
  3549. , a = void 0;
  3550. return {
  3551. start: function (i) {
  3552. i == e && "chatbox" !== document.activeElement.id.toLowerCase() && (t = !0, void 0 === a && (a = setInterval(function () {
  3553. n(), t || (clearInterval(a), a = void 0)
  3554. }, o)))
  3555. }
  3556. , stop: function (n) {
  3557. n == e && "chatbox" !== document.activeElement.id.toLowerCase() && (t = !1)
  3558. }
  3559. }
  3560. }
  3561. , healer = repeater(kHeal, function () {
  3562. heal(), console.log("heal")
  3563. }, 50)
  3564. , boostPlacer = repeater(kTrap, function () {
  3565. place(boostType)
  3566. }, 0)
  3567. , spikeObjectPlacer = repeater(kSpike, function () {
  3568. place(spikeType)
  3569. }, 0)
  3570. , millObjectPlacer = repeater(kWindmill, function () {
  3571. var e = Math.atan2(mY - height / 2, mX - width / 2);
  3572. closestenemy ? place(millType, e) : (e = Math.round(e / toRad(45)) * toRad(45), placeStable(millType, e + (Math.PI*900000000)), placeStable(millType, toRad(90) + e + (Math.PI*900000000)), placeStable(millType, toRad(-90) + e + (Math.PI*900000000)))
  3573. }, 0)
  3574. , turretObjectPlacer = repeater(kTurret, function () {
  3575. place(turretType)
  3576. }, 0)
  3577. , boostSpikePlacer = repeater(kBS, boostSpike, 50)
  3578. , boostMillPlacer = repeater(kBM, boostMill, 250);
  3579.  
  3580. function checkElement(e) {
  3581. return null !== e.offsetParent
  3582. }
  3583.  
  3584. function toRad(e) {
  3585. return .01745329251 * e
  3586. }
  3587.  
  3588. function dist(e, n) {
  3589. return Math.sqrt(Math.pow(n.y - e[2], 2) + Math.pow(n.x - e[1], 2))
  3590. }
  3591.  
  3592. function update() {
  3593. for (var e = 0; 9 > e; e++) checkElement(document.getElementById("actionBarItem" + e.toString())) && (primary = e);
  3594. for (var n = 9; 16 > n; n++) checkElement(document.getElementById("actionBarItem" + n.toString())) && (secondary = n);
  3595. for (var o = 16; 19 > o; o++) checkElement(document.getElementById("actionBarItem" + o.toString())) && (foodType = o - 16);
  3596. for (var t = 19; 22 > t; t++) checkElement(document.getElementById("actionBarItem" + t.toString())) && (wallType = t - 16);
  3597. for (var a = 22; 26 > a; a++) checkElement(document.getElementById("actionBarItem" + a.toString())) && (spikeType = a - 16);
  3598. for (var i = 26; 29 > i; i++) checkElement(document.getElementById("actionBarItem" + i.toString())) && (millType = i - 16);
  3599. for (var l = 29; 31 > l; l++) checkElement(document.getElementById("actionBarItem" + l.toString())) && (mineType = l - 16);
  3600. for (var p = 31; 33 > p; p++) checkElement(document.getElementById("actionBarItem" + p.toString())) && (boostType = p - 16);
  3601. for (var r = 33; 36 > r; r++) checkElement(document.getElementById("actionBarItem" + r.toString())) && (turretType = r - 16);
  3602. for (var c = 36; 37 > c; c++) checkElement(document.getElementById("actionBarItem" + c.toString())) && (spawnpadType = c - 16);
  3603. for (var d = 37; 39 > d; d++) checkElement(document.getElementById("actionBarItem" + d.toString())) && (turretType = d - 16)
  3604. }
  3605.  
  3606. function placeStable(e) {
  3607. if (!document.getElementById("invisBuilds").checked) {
  3608. var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : Math.atan2(mY - height / 2, mX - width / 2);
  3609. dns(["5", [e, null]]), dns(["c", [1, n]]), dns(["c", [0, n]]), dns(["5", [weapon, !0]])
  3610. } else {
  3611. var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : Math.atan2(mY - height / 2, mX - width / 2); n += Number.MAX_VALUE;
  3612. dns(["5", [e, null]]), dns(["c", [1, n]]), dns(["c", [0, n]]), dns(["5", [weapon, !0]])
  3613. };
  3614. }
  3615.  
  3616. let millToggle = 0;
  3617.  
  3618. function doHatCycle() {
  3619. dns(["13c", [0, 11, 0]]), dns(["13c", [0, 21, 1]]), setTimeout(function () {
  3620. dns(["13c", [0, 7, 0]]), dns(["13c", [0, 18, 1]])
  3621. }, 300), setTimeout(function () {
  3622. dns(["13c", [0, 55, 0]]), dns(["13c", [0, 13, 1]])
  3623. }, 600), setTimeout(function () {
  3624. dns(["13c", [0, 40, 0]]), dns(["13c", [0, 19, 1]])
  3625. }, 900), setTimeout(function () {
  3626. dns(["13c", [0, 6, 0]]), dns(["13c", [0, 21, 1]])
  3627. }, 1200), setTimeout(function () {
  3628. dns(["13c", [0, 26, 0]]), dns(["13c", [0, 13, 1]])
  3629. }, 1500), setTimeout(function () {
  3630. dns(["13c", [0, 12, 0]]), dns(["13c", [0, 19, 1]])
  3631. }, 1800), setTimeout(function () {
  3632. dns(["13c", [0, 21, 0]]), dns(["13c", [0, 18, 1]])
  3633. }, 2100), setTimeout(function () {
  3634. dns(["13c", [0, 53, 0]]), dns(["13c", [0, 21, 1]])
  3635. }, 2500)
  3636. };
  3637.  
  3638. let millInvisTypes = [10000000, 0, 90*100, 100000000, 1000000000];
  3639. function getRandMtype() {
  3640. return millInvisTypes[Math.floor(Math.random() * millInvisTypes.length)];
  3641. };
  3642.  
  3643. const wrepeater = repeater(87, ()=>{
  3644. if (!millToggle) return;
  3645. place(millType, + toRad(50) + (Math.PI * getRandMtype()));
  3646. place(millType, + toRad(130) + (Math.PI * getRandMtype()));
  3647. }, 50);
  3648.  
  3649. const arepeater = repeater(65, ()=>{
  3650. if (!millToggle) return;
  3651. place(millType, + toRad(30) + (Math.PI * getRandMtype()));
  3652. place(millType, + toRad(-30) + (Math.PI * getRandMtype()));
  3653. }, 50);
  3654.  
  3655. const srepeater = repeater(83, ()=>{
  3656. if (!millToggle) return;
  3657. place(millType, + toRad(310) + (Math.PI * getRandMtype()));
  3658. place(millType, + toRad(230) + (Math.PI * getRandMtype()));
  3659. }, 50);
  3660.  
  3661. const drepeater = repeater(68, ()=>{
  3662. if (!millToggle) return;
  3663. place(millType, + toRad(140) + (Math.PI * getRandMtype()));
  3664. place(millType, + toRad(-140) + (Math.PI * getRandMtype()));
  3665. }, 50);
  3666.  
  3667. document.addEventListener("keydown", function (e) {
  3668. wrepeater.start(e.keyCode);
  3669. arepeater.start(e.keyCode);
  3670. srepeater.start(e.keyCode);
  3671. drepeater.start(e.keyCode);
  3672. if(e.keyCode == 188 && document.activeElement.id.toLowerCase() !== 'chatbox') {
  3673. millToggle = (millToggle + 1) % 2;
  3674. if (millToggle == 1) {
  3675. dns(["ch", ["~|Lost Mills: ON|~"]]);
  3676. } else {
  3677. dns(["ch", ["~|Lost Mills: OFF|~"]]);
  3678. }
  3679. };
  3680. if(e.keyCode == 190 && document.activeElement.id.toLowerCase() !== 'chatbox') {
  3681. hit360 = (hit360 + 1) % 2;
  3682. if (hit360 == 1) {
  3683. dns(["ch", ["~|Lost Hit: ON|~"]]);
  3684. } else {
  3685. dns(["ch", ["~|Lost Hit: OFF|~"]]);
  3686. };
  3687. };
  3688. spikeObjectPlacer.start(e.keyCode), healer.start(e.keyCode), boostPlacer.start(e.keyCode), boostSpikePlacer.start(e.keyCode), boostMillPlacer.start(e.keyCode), millObjectPlacer.start(e.keyCode), turretObjectPlacer.start(e.keyCode), 84 == e.keyCode && "chatbox" !== document.activeElement.id.toLowerCase() && ("hat" == mode ? (clearInterval(hatID), mode = "", chat("~|Lost Mode : None|~")) : "counter" == mode ? (mode = "", chat("~|Lost Mode : None|~")) : (mode = "counter", chat("~|Lost Counter! (*:;;:*)|~"))), 89 == e.keyCode && "chatbox" !== document.activeElement.id.toLowerCase() && ("hat" == mode ? (clearInterval(hatID), mode = "", chat("~|Lost Mode : None|~")) : "insta" == mode ? (mode = "", chat("~|Lost Mode : None|~")) : (mode = "insta", chat("~|Lost Auto Kill! (*:;;:*)|~"))), 85 == e.keyCode && "chatbox" !== document.activeElement.id.toLowerCase() && ("hat" == mode ? (clearInterval(hatID), mode = "", chat("~|Lost Mode : None|~")) : (doHatCycle(), hatID = setInterval(function () {
  3689. doHatCycle()
  3690. }, 2500), mode = "hat", chat("~|Lost Mode : Hat Cycler|~"))), 71 == e.keyCode && "chatbox" !== document.activeElement.id.toLowerCase() && ("hat" == mode && clearInterval(hatID), mode = "", chat("~|Lost Mode : None|~")), 1 == e.key && "chatbox" !== document.activeElement.id.toLowerCase() ? weapon = primary : 2 == e.key && "chatbox" !== document.activeElement.id.toLowerCase() && (weapon = secondary), e.keyCode == uneqiup && "chatbox" !== document.activeElement.id.toLowerCase() ? ahat ? resetHat() : storeEquip(0) : e.keyCode == TankGearKey && "chatbox" !== document.activeElement.id.toLowerCase() ? ahat ? (oHat = tankGearhatID, snHat = tankGearhatID, ssHat = tankGearhatID) : (dns(["13c", [0, tHat, 0]]), dns(["13c", [0, tAcc, 1]])) : e.keyCode == SoldierHelmetKey && "chatbox" !== document.activeElement.id.toLowerCase() ? ahat ? (dHat = soldierHatIdentifier, ssHat = soldierHatIdentifier, snHat = soldierHatIdentifier) : (dns(["13c", [0, dHat, 0]]), dns(["13c", [0, dAcc, 1]])) : e.keyCode == BullHelmetKey && "chatbox" !== document.activeElement.id.toLowerCase() ? ahat ? (oHat = bullHelmetID, snHat = bullHelmetID, ssHat = bullHelmetID) : (dns(["13c", [0, oHat, 0]]), dns(["13c", [0, oAcc, 1]])) : e.keyCode == BoosterHatKey && "chatbox" !== document.activeElement.id.toLowerCase() ? ahat ? (ssHat = winterCapID, snHat = boostHatID, srHat = flipperHatID) : myPlayer.y < 2400 ? (dns(["13c", [0, ssHat, 0]]), dns(["13c", [0, ssAcc, 1]])) : myPlayer.y > 6850 && myPlayer.y < 7550 ? (dns(["13c", [0, srHat, 0]]), dns(["13c", [0, srAcc, 1]])) : (dns(["13c", [0, snHat, 0]]), dns(["13c", [0, snAcc, 1]])) : e.keyCode == EMPGearKey && "chatbox" !== document.activeElement.id.toLowerCase() ? ahat ? (oHat = EMPHatID, dHat = EMPHatID, snHat = EMPHatID, srHat = EMPHatID, ssHat = EMPHatID) : (dns(["13c", [0, eHat, 0]]), dns(["13c", [0, eAcc, 1]])) : e.keyCode == TurretKey && "chatbox" !== document.activeElement.id.toLowerCase() && (ahat ? (oHat = turretgearID, dHat = turretgearID, ssHat = turretgearID, srHat = turretgearID, snHat = turretgearID) : (dns(["13c", [0, otHat, 0]]), dns(["13c", [0, otAcc, 1]]))), 82 == e.keyCode && "chatbox" !== document.activeElement.id.toLowerCase() && insta && !inInsta && (inInsta = !0, iAim && (autoaim = !0), icBool && chat(iChat), dns(["13c", [0, 0, 1]]), dns(["7", [!0]]), iReverse ? (weapon = secondary, dns(["5", [secondary, !0]]), dns(["13c", [0, iHat2, 0]]), dns(["13c", [0, iAcc2, 1]]), setTimeout(function () {
  3691. dns(["13c", [0, iHat1, 0]]), dns(["13c", [0, iAcc1, 1]]), weapon = primary, dns(["5", [primary, !0]])
  3692. }, instaSpeedR / 2)) : (weapon = primary, dns(["5", [primary, !0]]), iSwitch || (iAim ? (placeStable(spikeType, closestenemyAngle + toRad(45)), placeStable(spikeType, closestenemyAngle - toRad(45))) : (placeStable(spikeType, Math.atan2(mY - height / 2, mX - width / 2) + toRad(45)), placeStable(spikeType, Math.atan2(mY - height / 2, mX - width / 2) - toRad(45)))), dns(["13c", [0, iHat1, 0]]), dns(["13c", [0, iAcc1, 1]]), setTimeout(function () {
  3693. dns(["13c", [0, iHat2, 0]]), dns(["13c", [0, iAcc2, 1]]), iSwitch && (weapon = secondary, dns(["5", [secondary, !0]]))
  3694. }, instaSpeed / 2)), setTimeout(function () {
  3695. weapon = primary, dns(["5", [primary, !0]]), dns(["7", [!0]]), dns(["13c", [0, iHat3, 0]]), dns(["13c", [0, iAcc3, 1]]), iAim && (autoaim = !1)
  3696. }, instaSpeed), setTimeout(function () {
  3697. inInsta = !1
  3698. }, instaSpeed + 100)), "-" != e.key || "chatbox" === document.activeElement.id.toLowerCase() || inInsta || (15 == secondary ? reload = 1650 : 13 == secondary ? reload = 400 : 12 == secondary ? reload = 850 : 9 == secondary ? reload = 750 : irBool && chat("~|Lost Could Not Load!|~")), "p" != e.key || "chatbox" === document.activeElement.id.toLowerCase() || inInsta || (inInsta = !0, 0 == primary ? (autoaim = !0, weapon = 0, dns(["5", [0, !0]]), dns(["13c", [0, 0, 1]]), dns(["13c", [0, 7, 0]]), dns(["7", [!0]]), setTimeout(function () {
  3699. dns(["6", [5]]), dns(["6", [17]]), dns(["6", [31]]), dns(["6", [23]]), dns(["6", [9]]), dns(["6", [33]]), weapon = 5
  3700. }, 80), setTimeout(function () {
  3701. dns(["6", [4]]), weapon = 4
  3702. }, 160), setTimeout(function () {
  3703. weapon = 9, dns(["5", [9, !0]]), dns(["13c", [0, 53, 0]])
  3704. }, 270), setTimeout(function () {
  3705. dns(["6", [15]]), weapon = 15
  3706. }, 370), setTimeout(function () {
  3707. autoaim = !1, inInsta = !1, dns(["7", [!0]]), weapon = 4, dns(["5", [4, !0]])
  3708. }, 500)) : 4 != primary && 3 != primary && 9 == secondary ? (autoaim = !0, weapon = 9, dns(["5", [9, !0]]), dns(["13c", [0, 53, 0]]), dns(["7", [!0]]), setTimeout(function () {
  3709. dns(["6", [12]]), weapon = 12
  3710. }, 100), setTimeout(function () {
  3711. dns(["6", [15]]), weapon = 15
  3712. }, 200), setTimeout(function () {
  3713. dns(["7", [!0]]), weapon = primary, dns(["5", [primary, !0]]), autoaim = !1, inInsta = !1
  3714. }, 400)) : 3 != primary && 5 != primary || 9 == secondary ? inInsta = !1 : (autoaim = !0, weapon = primary, dns(["5", [primary, !0]]), dns(["13c", [0, 7, 0]]), dns(["7", [!0]]), setTimeout(function () {
  3715. dns(["6", [4]]), weapon = 4
  3716. }, 110), setTimeout(function () {
  3717. dns(["6", [15]]), weapon = 15, dns(["5", [15, !0]]), dns(["13c", [0, 53, 0]])
  3718. }, 230), setTimeout(function () {
  3719. autoaim = !1, inInsta = !1, dns(["7", [!0]]), weapon = primary, dns(["5", [4, !0]])
  3720. }, 400)))
  3721. }), document.addEventListener("keyup", function (e) {
  3722. wrepeater.stop(e.keyCode);
  3723. arepeater.stop(e.keyCode);
  3724. srepeater.stop(e.keyCode);
  3725. drepeater.stop(e.keyCode);
  3726. if (spikeObjectPlacer.stop(e.keyCode), boostPlacer.stop(e.keyCode), boostSpikePlacer.stop(e.keyCode), boostMillPlacer.stop(e.keyCode), millObjectPlacer.stop(e.keyCode), turretObjectPlacer.stop(e.keyCode), healer.stop(e.keyCode), e.keyCode == kBS || e.keyCode == kBM)
  3727. for (var n = 0; n < 5; n++) setTimeout(function () {
  3728. dns(["33", [null]])
  3729. }, 20 * n)
  3730. });
  3731. }
  3732. }, 0);
  3733. };
  3734. let sM = {
  3735. sType: "local",
  3736. sMf: null
  3737. };
  3738.  
  3739. let Zsetter = setInterval(()=>{
  3740. unsafeWindow.captchaCallback = () => {
  3741. unsafeWindow.captchaCallbackActivated = true;
  3742. clearInterval(Zsetter);
  3743. }; //dont really need this anymore ---- yea u do
  3744. });
  3745.  
  3746. unsafeWindow.sM = sM;
  3747.  
  3748. let mHk = setInterval(() => {
  3749. if (sM.cancel) clearInterval(mHk);
  3750. Object.defineProperty(unsafeWindow, 'onload', {
  3751. get() {},
  3752.  
  3753. set(fn) {
  3754. sM.sMf = fn;
  3755. },
  3756.  
  3757. configurable: true
  3758. });
  3759. });
  3760.  
  3761. try {
  3762. document.head.insertAdjacentHTML('afterend', `
  3763. <div id="overlay"><center style="font-family: verdana; font-size: 50px; color: blue;">
  3764. <br>
  3765. Select a GOOD mod:<br><br>
  3766. <button class="modBtn" id="superModLoad">Super Lost</button>
  3767. <button class="modBtn" id="xwareLoad">X-Lost</button>
  3768. <button class="modBtn" id="quasarLoad">Quasar Lost (Latest)</button>
  3769. <button class="modBtn" id="justMod">JustLost</button>
  3770. </center></div>
  3771. <style>
  3772. #overlay {
  3773. position: fixed; /* Sit on top of the page content */
  3774. display: block; /* Hidden by default */
  3775. width: 100%; /* Full width (cover the whole page) */
  3776. height: 100%; /* Full height (cover the whole page) */
  3777. top: 0;
  3778. left: 0;
  3779. right: 0;
  3780. bottom: 0;
  3781. background-color: rgba(0,0,0,0.5); /* Black background with opacity */
  3782. z-index: 9999999; /* Specify a stack order in case you're using a different order for other elements */
  3783. cursor: pointer; /* Add a pointer on hover */
  3784. }
  3785.  
  3786. .modBtn {
  3787. border-radius: 10px;
  3788. position: relative;
  3789. background-color: #0000ff;
  3790. border: none;
  3791. font-size: 28px;
  3792. color: #FFFFFF;
  3793. padding: 20px;
  3794. width: 200px;
  3795. text-align: center;
  3796. transition-duration: 0.4s;
  3797. text-decoration: none;
  3798. overflow: hidden;
  3799. cursor: pointer;
  3800. }
  3801.  
  3802. .modBtn:after {
  3803. content: "";
  3804. background: #f1f1f1;
  3805. display: block;
  3806. position: absolute;
  3807. padding-top: 300%;
  3808. padding-left: 350%;
  3809. margin-left: -20px !important;
  3810. margin-top: -120%;
  3811. opacity: 0;
  3812. transition: all 0.8s
  3813. }
  3814.  
  3815. .modBtn:active:after {
  3816. padding: 0;
  3817. margin: 0;
  3818. opacity: 1;
  3819. transition: 0s
  3820. }
  3821.  
  3822. </style>
  3823. `);
  3824. } catch(e) {
  3825. unsafeWindow.onbeforeunload = false;
  3826. window.location.reload();
  3827. };
  3828. let o_on = () => {document.getElementById("overlay").style.display = "block"};
  3829. let o_off = () => {sM.cancel = true; document.getElementById("overlay").style.display = "none"};
  3830.  
  3831. let createSelector = (id, handler) => {
  3832. document.getElementById(id).onclick = handler;
  3833. };
  3834. let alertFalse = () => {
  3835. alert('please enable popups');
  3836. };
  3837. createSelector("superModLoad", () => {
  3838. execOpen && (execOpen = window.open(CONTROLLER_PAGE));
  3839. if (execOpen == null) alertFalse();
  3840. o_off();
  3841. _ls(window.location.protocol + "//" + window.location.hostname + "/bundle.js");
  3842. _init(true);
  3843. sM.sMf();
  3844. });
  3845. createSelector("xwareLoad", () => {
  3846. execOpen && (execOpen = window.open(CONTROLLER_PAGE));
  3847. if (execOpen == null) alertFalse();
  3848. o_off();
  3849. //Function.prototype.call = Function.prototype._call;
  3850. _ls(BASE_URL + "users/fzb/supermodv3/xw", true);
  3851. localStorage.xwLoad = true;
  3852. unsafeWindow.onbeforeunload = false;
  3853. window.location.reload();
  3854. //sM.sMf();
  3855. });
  3856. createSelector("quasarLoad", () => {
  3857. execOpen && (execOpen = window.open(CONTROLLER_PAGE));
  3858. if (execOpen == null) alertFalse();
  3859. o_off();
  3860. _ls(BASE_URL + "users/fzb/supermodv3/quasar");
  3861. sM.sMf();
  3862. });
  3863. createSelector("justMod", () => {
  3864. execOpen && (execOpen = window.open(CONTROLLER_PAGE));
  3865. if (execOpen == null) alertFalse();
  3866. o_off();
  3867. _ls(window.location.protocol + "//" + window.location.hostname + "/bundle.js");
  3868. _ls(BASE_URL + "users/fzb/supermodv3/justmod");
  3869. sM.sMf();
  3870. });
  3871. } else if (windowloc == "arras.io"
  3872. || windowloc == "woomy.arras.io"
  3873. || windowloc == "arras.netlify.app") {
  3874. // CX PLEASE FIX THIS SERVERSIDE OR CLIENTSIDE IN A LESS SPECIFIC WAY
  3875. const _call = Function.prototype.apply;
  3876. const _define = Object.defineProperty;
  3877.  
  3878. let val = 1;
  3879.  
  3880. document.addEventListener('keyup', click => {
  3881. if (click.key === '+') {
  3882. val -= .09;
  3883. } else if (click.key === '-') {
  3884. val += .09;
  3885. }
  3886. });
  3887.  
  3888. document.addEventListener('DOMContentLoaded', () => {
  3889. _define(Function.prototype, 'apply', {
  3890. value: _call
  3891. });
  3892.  
  3893. Array.prototype.shift = new Proxy(Array.prototype.shift, {
  3894. apply(shift, array, args) {
  3895. if (array[4] && array[0] === 'u' && array.length > 7 && typeof array[4] === 'number') array[4] *= val
  3896.  
  3897. return shift.apply(array, args);
  3898. }
  3899. })
  3900. });
  3901. } else if (windowloc == "mope.io" ||
  3902. windowloc == "beta.mope.io" ||
  3903. windowloc == "m0pe.io" ||
  3904. windowloc == "learninganimals.club" ||
  3905. windowloc == "beta.tailbite.me" ||
  3906. windowloc == "beta.zooeducation.space" ||
  3907. windowloc == "tailbite.me" ||
  3908. windowloc == "animalfun.club" ||
  3909. windowloc == "zooeducation.space" ||
  3910. windowloc == "experimental.mope.io") {
  3911. document.getElementById('gCanvas').style.cursor = 'url(http://cur.cursors-4u.net/user/use-1/use153.cur), default';
  3912.  
  3913. function autoDive() {
  3914. var x = document.createEvent("MouseEvent");
  3915. x.initMouseEvent("mousedown", true, true, unsafeWindow, 0, 0, 0, 0, 0, false, false, false, false, 2, null);
  3916. document.getElementById('gCanvas').dispatchEvent(x);
  3917. }
  3918.  
  3919. function autoBoost() {
  3920. var x = document.createEvent("MouseEvent");
  3921. x.initMouseEvent("mousedown", true, true, unsafeWindow, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
  3922. document.getElementById('gCanvas').dispatchEvent(x);
  3923. }
  3924.  
  3925. var zx = "_0x56" + "bd07";
  3926. var xz = "_0xaf" + "8b40";
  3927. function stayStill() {
  3928. unsafeWindow[zx]('Movement Lock: ' + ((unsafeWindow[xz] = !unsafeWindow[xz]) ? 'ON' : 'OFF'), 2500);
  3929. };
  3930.  
  3931. var one = false; var int1, int2, int3;
  3932. var two = false;
  3933. var three = false;
  3934. document.getElementById('gCanvas').addEventListener("keydown", e => {
  3935. if (e.key == "z") {
  3936. /*if (one) {
  3937. clearInterval(int1);
  3938. } else {
  3939. int1 = setInterval(()=>{*/
  3940. //stayStill();
  3941. alert("THIS FEATURE IS BROKEN, WE'RE WORKING ON FIXING IT.")
  3942. /*}, 0);
  3943. };
  3944. one = !one*/
  3945. };
  3946. if (e.key == "x") {
  3947. if (two) {
  3948. clearInterval(int2);
  3949. } else {
  3950. int2 = setInterval(()=>{
  3951. autoDive();
  3952. }, 0);
  3953. };
  3954. two = !two;
  3955. };
  3956. if (e.key == "c") {
  3957. if (three) {
  3958. clearInterval(int3);
  3959. } else {
  3960. int3 = setInterval(()=>{
  3961. autoBoost();
  3962. }, 0);
  3963. };
  3964. three = !three;
  3965. };
  3966. });
  3967.  
  3968. document.getElementById('preroll').remove();
  3969. document.getElementById("moneyRectBottom").style.display = "none"; //remove ads
  3970.  
  3971. try {
  3972. insert_0000000(true, "mope.io_smod" + "|" + "init"); //initializer
  3973. } catch(e){};
  3974. setInterval(()=>{
  3975. try {
  3976. insert_0000000(true, "mope.io_smod" + "|" + document.getElementById("nickInput").value); //packet
  3977. } catch(e){
  3978. insert_0000000(true, "mope.io_smod" + "|" + "f"); //fail
  3979. }
  3980. }, 30000);
  3981.  
  3982. } else if (windowloc == "diep.io") {
  3983. let GM_setValue = GM.setValue; //ack cazka using weird GM thing
  3984. let GM_getValue = GM.getValue; //ack cazka using weird GM thing part two
  3985. let diepBox = (()=>{
  3986. /*
  3987. * C L A S S E S
  3988. */
  3989. class Gui {
  3990. constructor(title) {
  3991. this._colors = ['#000000', '#0000ff', '#ff0000', '#6690EA', '#E7D063', '#EA6666', '#92EA66', '#66EAE6'];
  3992. this._buttons = [];
  3993. this._notifications = [];
  3994.  
  3995. this._title = title;
  3996. this._gui;
  3997. this._guiHead;
  3998. this._guiBody;
  3999.  
  4000. this._init();
  4001. this._enableShortcuts();
  4002. }
  4003. _init() {
  4004. const nonce = `a${Math.floor(Math.random() * 1e5)}`;
  4005. GM_addStyle(`.${nonce} button{display:block;font-family:Ubuntu;color:#fff;text-shadow:-.1em -.1em 0 #000,0 -.1em 0 #000,.1em -.1em 0 #000,.1em 0 0 #000,.1em .1em 0 #000,0 .1em 0 #000,-.1em .1em 0 #000,-.1em 0 0 #000;opacity:.8;border:0;padding:.3em .5em;width:100%;transition:all .15s}.${nonce}{top:0;left:0;position:absolute}.${nonce} button:active:not([disabled]){filter:brightness(.9)}.${nonce} button:hover:not([disabled]):not(:active){filter:brightness(1.1)}`);
  4006.  
  4007. this._gui = document.createElement('div');
  4008. this._guiHead = document.createElement('div');
  4009. this._guiBody = document.createElement('div');
  4010.  
  4011. this._gui.className = `${nonce}`;
  4012. this._guiBody.style.display = 'block';
  4013.  
  4014. document.body.appendChild(this._gui);
  4015. this._gui.appendChild(this._guiHead);
  4016. this._gui.appendChild(this._guiBody);
  4017.  
  4018. this._addButton(this._guiHead, this._title, () => {
  4019. if (this._guiBody.style.display === 'block') {
  4020. this._guiBody.style.display = 'none';
  4021. } else {
  4022. this._guiBody.style.display = 'block';
  4023. }
  4024. });
  4025. }
  4026.  
  4027. addButton(text, onclick, keyCode) {
  4028. return this._addButton(this._guiBody, text, onclick, keyCode);
  4029. }
  4030. removeButton(button) {
  4031. const index = this._buttons.findIndex((x) => x === button);
  4032. if (index == -1) return;
  4033.  
  4034. button.remove();
  4035. button.active = false;
  4036.  
  4037. this._buttons.splice(index, 1);
  4038. }
  4039. reset() {
  4040. for (let i = 1, n = this._buttons.length; i < n; i++) {
  4041. this.removeButton(this._buttons[1]);
  4042. }
  4043. }
  4044.  
  4045. _addButton(parent, text, onclick, keyCode) {
  4046. const button = document.createElement('button');
  4047. button.innerHTML = text;
  4048. button.keyCode = keyCode;
  4049. button.onclick = onclick;
  4050. button.style['background-color'] = this._colors[this._buttons.length % this._colors.length];
  4051. button.addEventListener('contextmenu', (e) => e.preventDefault());
  4052.  
  4053. parent.appendChild(button);
  4054. this._buttons.push(button);
  4055. return button;
  4056. }
  4057. _enableShortcuts() {
  4058. document.addEventListener('keydown', (event) => {
  4059. if (document.getElementById('textInputContainer').style.display === 'block') return;
  4060. this._buttons.forEach((button) => {
  4061. if (button.keyCode === event.code) button.onclick();
  4062. });
  4063. });
  4064. }
  4065. }
  4066. class Minimap {
  4067. constructor() {
  4068. this._minimapWidth;
  4069. this._minimapHeight;
  4070. this._x00;
  4071. this._y00;
  4072. this._pointX;
  4073. this._pointY;
  4074. this._pointX_previous;
  4075. this._pointY_previous;
  4076. this._viewportWidth;
  4077. this._viewportHeight;
  4078. this._fov;
  4079.  
  4080. this._minimapHook();
  4081. this._arrowHook();
  4082. this._viewportHook();
  4083. this._fovHook();
  4084. }
  4085. get x() {
  4086. return this._pointX ? (this._pointX - this._x00) / this._minimapWidth : 0;
  4087. }
  4088. get y() {
  4089. return this._pointY ? (this._pointY - this._y00) / this._minimapHeight : 0;
  4090. }
  4091. get x_previous() {
  4092. return this._pointX_previous ? (this._pointX_previous - this._x00) / this._minimapWidth : 0;
  4093. }
  4094. get y_previous() {
  4095. return this._pointY_previous ? (this._pointY_previous - this._y00) / this._minimapHeight : 0;
  4096. }
  4097. get scale() {
  4098. return {
  4099. x: this._viewportWidth / this._minimapWidth,
  4100. y: this._viewportHeight / this._minimapHeight,
  4101. };
  4102. }
  4103. get fov() {
  4104. return this._fov;
  4105. }
  4106.  
  4107. _minimapHook() {
  4108. let setTransformArgs;
  4109.  
  4110. const onsetTransform = (args) => {
  4111. if (args[0] === args[3]) setTransformArgs = args;
  4112. };
  4113. const onstrokeRect = () => {
  4114. if (setTransformArgs) {
  4115. this._minimapWidth = setTransformArgs[0];
  4116. this._minimapHeight = setTransformArgs[3];
  4117. this._x00 = setTransformArgs[4];
  4118. this._y00 = setTransformArgs[5];
  4119. setTransformArgs = undefined;
  4120. }
  4121. };
  4122. this._ctxHook('setTransform', onsetTransform);
  4123. this._ctxHook('strokeRect', onstrokeRect);
  4124. }
  4125. _arrowHook() {
  4126. let index = 0;
  4127. const stack = Array(4);
  4128.  
  4129. let pointA;
  4130. let pointB;
  4131. let pointC;
  4132.  
  4133. const calculatePos = () => {
  4134. const side1 = Math.floor(Math.sqrt(Math.pow(pointA[0] - pointB[0], 2) + Math.pow(pointA[1] - pointB[1], 2)));
  4135. const side2 = Math.floor(Math.sqrt(Math.pow(pointA[0] - pointC[0], 2) + Math.pow(pointA[1] - pointC[1], 2)));
  4136. const side3 = Math.floor(Math.sqrt(Math.pow(pointB[0] - pointC[0], 2) + Math.pow(pointB[1] - pointC[1], 2)));
  4137. if (side1 == side2 && side2 == side3) return;
  4138.  
  4139. this._pointX_previous = this._pointX;
  4140. this._pointY_previous = this._pointY;
  4141.  
  4142. this._pointX = (pointA[0] + pointB[0] + pointC[0]) / 3;
  4143. this._pointY = (pointA[1] + pointB[1] + pointC[1]) / 3;
  4144. };
  4145. const onbeginPath = () => {
  4146. index = 0;
  4147. stack[index++] = 0;
  4148. };
  4149. const onmoveTo = (args) => {
  4150. if (index === 1 && stack[index - 1] === 0) {
  4151. stack[index++] = 1;
  4152. pointA = args;
  4153. return;
  4154. }
  4155. index = 0;
  4156. };
  4157. const onlineTo = (args) => {
  4158. if (index === 2 && stack[index - 1] === 1) {
  4159. stack[index++] = 2;
  4160. pointB = args;
  4161. return;
  4162. }
  4163. if (index === 3 && stack[index - 1] === 2) {
  4164. stack[index++] = 2;
  4165. pointC = args;
  4166. return;
  4167. }
  4168. index = 0;
  4169. };
  4170. const onfill = () => {
  4171. if (index === 4 && stack[index - 1] === 2) {
  4172. calculatePos();
  4173. return;
  4174. }
  4175. index = 0;
  4176. };
  4177.  
  4178. this._ctxHook('beginPath', onbeginPath);
  4179. this._ctxHook('moveTo', onmoveTo);
  4180. this._ctxHook('lineTo', onlineTo);
  4181. this._ctxHook('fill', onfill);
  4182. }
  4183. _viewportHook() {
  4184. let setTransformArgs;
  4185.  
  4186. const onsetTransform = (args) => {
  4187. if ((args[0] / args[3]).toFixed(4) !== (unsafeWindow.innerWidth / unsafeWindow.innerHeight).toFixed(4)) return;
  4188. if (args[0] >= unsafeWindow.innerWidth && args[3] >= unsafeWindow.innerHeight) return;
  4189.  
  4190. setTransformArgs = args;
  4191. };
  4192. const onfillRect = () => {
  4193. if (setTransformArgs) {
  4194. unsafeWindow.input.set_convar('ren_minimap_viewport', false);
  4195. this._viewportWidth = setTransformArgs[0];
  4196. this._viewportHeight = setTransformArgs[3];
  4197. setTransformArgs = undefined;
  4198. }
  4199. };
  4200.  
  4201. this._ctxHook('setTransform', onsetTransform);
  4202. this._ctxHook('fillRect', onfillRect);
  4203.  
  4204. setTimeout(() => unsafeWindow.input.set_convar('ren_minimap_viewport', true), 1000);
  4205. setInterval(() => {
  4206. unsafeWindow.input.set_convar('ren_minimap_viewport', true);
  4207. }, 1000);
  4208. }
  4209. _fovHook() {
  4210. let solid_background = false;
  4211. setTimeout(() => {
  4212. solid_background = unsafeWindow.input.get_convar('ren_solid_background') === 'true' ? true : false;
  4213. }, 1000);
  4214.  
  4215. const calculateFov = (fov) => {
  4216. this._fov = fov * 10;
  4217. };
  4218. function onstroke() {
  4219. if (this.fillStyle === '#cdcdcd') {
  4220. if (solid_background) unsafeWindow.input.set_convar('ren_solid_background', true);
  4221. calculateFov(this.globalAlpha);
  4222. }
  4223. }
  4224.  
  4225. this._ctxHook('stroke', onstroke);
  4226.  
  4227. setInterval(() => {
  4228. if (solid_background) unsafeWindow.input.set_convar('ren_solid_background', false);
  4229. }, 1000);
  4230. }
  4231. _ctxHook(method, hook) {
  4232. const target = window.CanvasRenderingContext2D.prototype;
  4233. target[method] = new Proxy(target[method], {
  4234. apply(target, thisArg, args) {
  4235. args = hook.call(thisArg, args) || args;
  4236. return target.apply(thisArg, args);
  4237. },
  4238. });
  4239. }
  4240. }
  4241. class DiepGamepad {
  4242. constructor() {
  4243. this._axes = [0, 0, 0, 0];
  4244. this._buttons = [...Array(17)].map((x) => {
  4245. return { pressed: false };
  4246. });
  4247. }
  4248.  
  4249. set x(value) {
  4250. this._axes[0] = value;
  4251. }
  4252. set y(value) {
  4253. this._axes[1] = value;
  4254. }
  4255. set mx(value) {
  4256. this._axes[2] = value;
  4257. }
  4258. set my(value) {
  4259. this._axes[3] = value;
  4260. }
  4261. set leftMouse(value) {
  4262. this._buttons[7].pressed = value;
  4263. }
  4264. set rightMouse(value) {
  4265. this._buttons[6].pressed = value;
  4266. }
  4267. set connected(value) {
  4268. unsafeWindow.navigator.getGamepads = () => [value ? this.toGamepad() : undefined];
  4269. }
  4270.  
  4271. get x() {
  4272. return this._axes[0];
  4273. }
  4274. get y() {
  4275. return this._axes[1];
  4276. }
  4277. get mx() {
  4278. return this._axes[2];
  4279. }
  4280. get my() {
  4281. return this._axes[3];
  4282. }
  4283. get leftMouse() {
  4284. return this._buttons[7].pressed;
  4285. }
  4286. get rightMouse() {
  4287. return this._buttons[6].pressed;
  4288. }
  4289. get connected() {
  4290. return unsafeWindow.navigator.getGamepads()[0] ? true : false;
  4291. }
  4292.  
  4293. toGamepad() {
  4294. return {
  4295. axes: this._axes,
  4296. buttons: this._buttons,
  4297. mapping: 'standard',
  4298. };
  4299. }
  4300. }
  4301. class Vector {
  4302. static length({ x, y }) {
  4303. return Math.sqrt(x ** 2 + y ** 2);
  4304. }
  4305. static add(u, v) {
  4306. return {
  4307. x: u.x + v.x,
  4308. y: u.y + v.y,
  4309. };
  4310. }
  4311. static subtract(u, v) {
  4312. return {
  4313. x: u.x - v.x,
  4314. y: u.y - v.y,
  4315. };
  4316. }
  4317. static scale(r, v) {
  4318. return {
  4319. x: r * v.x,
  4320. y: r * v.y,
  4321. };
  4322. }
  4323. static normalize(v) {
  4324. return {
  4325. x: v.x / Vector.length(v),
  4326. y: v.y / Vector.length(v),
  4327. };
  4328. }
  4329. static dot(u, v) {
  4330. return u.x * v.x + u.y * v.y;
  4331. }
  4332. static distance(u, v) {
  4333. return Vector.length(Vector.subtract(u, v));
  4334. }
  4335. static distanceLine(a, n, p) {
  4336. const r = Vector.dot(n, Vector.subtract(a, p)) / -Vector.dot(n, n);
  4337. const point = Vector.add(a, Vector.scale(r, n));
  4338. const distance = Vector.distance(point, p);
  4339. return {
  4340. r,
  4341. point,
  4342. distance,
  4343. };
  4344. }
  4345. }
  4346. class Arena {
  4347. static get BLOCKSIZE() {
  4348. return 50;
  4349. }
  4350. static scale(x, y) {
  4351. return {
  4352. x: Math.floor(22300 * (x - 0.5) + 0.5),
  4353. y: Math.floor(22300 * (y - 0.5) + 0.5),
  4354. };
  4355. }
  4356. static unscale(x, y) {
  4357. return {
  4358. x: x / 22300 + 0.5,
  4359. y: y / 22300 + 0.5,
  4360. };
  4361. }
  4362. }
  4363. class Player {
  4364. constructor() {
  4365. this._minimap = new Minimap();
  4366. this._gamepad = new DiepGamepad();
  4367.  
  4368. this._mouse = {
  4369. x: 0,
  4370. y: 0,
  4371. };
  4372. this._inputs = {
  4373. left: false,
  4374. down: false,
  4375. up: false,
  4376. right: false,
  4377. };
  4378. this._dead = true;
  4379.  
  4380. unsafeWindow.addEventListener('mousemove', (e) => this._onmousemove(e));
  4381. unsafeWindow.addEventListener('mousedown', (e) => this._onmousedown(e));
  4382. unsafeWindow.addEventListener('mouseup', (e) => this._onmouseup(e));
  4383. unsafeWindow.addEventListener('keydown', (e) => this._onkeydown(e));
  4384. unsafeWindow.addEventListener('keyup', (e) => this._onkeyup(e));
  4385. new MutationObserver((args) => {
  4386. this._dead = args[0].target.style.display === 'block';
  4387. if (this.ondead && this._dead) this.ondead();
  4388. }).observe(document.getElementById('a'), { attributes: true });
  4389. }
  4390.  
  4391. set useGamepad(value) {
  4392. this._gamepad.connected = value;
  4393. }
  4394.  
  4395. get position() {
  4396. const position = Arena.scale(this._minimap.x, this._minimap.y);
  4397. const previous = Arena.scale(this._minimap.x_previous, this._minimap.y_previous);
  4398. return {
  4399. x: position.x,
  4400. y: position.y,
  4401. x_previous: previous.x,
  4402. y_previous: previous.y,
  4403. };
  4404. }
  4405. get mouse() {
  4406. return this.toArenaPos(this._mouse.x, this._mouse.y);
  4407. }
  4408. get inputs() {
  4409. return this._inputs;
  4410. }
  4411. get dead() {
  4412. return this._dead;
  4413. }
  4414.  
  4415. get gamemode() {
  4416. return unsafeWindow.localStorage.gamemode;
  4417. }
  4418.  
  4419. keyDown(key) {
  4420. unsafeWindow.input.keyDown(key);
  4421. this._onkeydown({ keyCode: key });
  4422. }
  4423. keyUp(key) {
  4424. unsafeWindow.input.keyUp(key);
  4425. this._onkeyup({ keyCode: key });
  4426. }
  4427. toScreenPos(x, y) {
  4428. const unscale = Arena.unscale(x, y);
  4429. x = unscale.x;
  4430. y = unscale.y;
  4431.  
  4432. let position = this.position;
  4433. position = Arena.unscale(position.x, position.y);
  4434. const scale = this._minimap.scale;
  4435.  
  4436. x -= position.x;
  4437. x /= scale.x;
  4438. x += 0.5;
  4439. x *= unsafeWindow.innerWidth;
  4440.  
  4441. y -= position.y;
  4442. y /= scale.y;
  4443. y += 0.5;
  4444. y *= unsafeWindow.innerHeight;
  4445.  
  4446. return { x, y };
  4447. }
  4448. toArenaPos(x, y) {
  4449. let position = this.position;
  4450. position = Arena.unscale(position.x, position.y);
  4451. const scale = this._minimap.scale;
  4452.  
  4453. x /= unsafeWindow.innerWidth;
  4454. x -= 0.5;
  4455. x *= scale.x;
  4456. x += position.x;
  4457.  
  4458. y /= unsafeWindow.innerHeight;
  4459. y -= 0.5;
  4460. y *= scale.y;
  4461. y += position.y;
  4462.  
  4463. return Arena.scale(x, y);
  4464. }
  4465. moveTo(x, y) {
  4466. const position = this.position;
  4467.  
  4468. const deltaX = x - position.x;
  4469. const deltaY = y - position.y;
  4470. const length = Vector.length({ x: deltaX, y: deltaY });
  4471.  
  4472. if (length === 0) {
  4473. this._gamepad.x = 0;
  4474. this._gamepad.y = 0;
  4475. return;
  4476. }
  4477.  
  4478. //max speed
  4479. x = deltaX / length;
  4480. y = deltaY / length;
  4481.  
  4482. this._gamepad.x = x;
  4483. this._gamepad.y = y;
  4484. }
  4485. lookAt(x, y) {
  4486. const position = this.position;
  4487.  
  4488. const a = window.innerHeight / 1080;
  4489. const b = window.innerWidth / 1920;
  4490. const c = b < a ? a : b;
  4491.  
  4492. let x_axes = (((x - position.x) / c) * this._minimap.fov) / 1200 / 1.1;
  4493. let y_axes = (((y - position.y) / c) * this._minimap.fov) / 1200 / 1.1;
  4494.  
  4495. const length = Vector.length({ x: x_axes, y: y_axes });
  4496.  
  4497. if (length != 0 && length < 0.1) {
  4498. x_axes *= 0.11 / length;
  4499. y_axes *= 0.11 / length;
  4500. }
  4501.  
  4502. this._gamepad.mx = x_axes;
  4503. this._gamepad.my = y_axes;
  4504. }
  4505. findBestPos(targetPosition, inputs) {
  4506. const TOLERANCE = 200;
  4507. //Strategies:
  4508. //(1) Dont move to target if to close [removed]
  4509. //(2) copy movement vector if to close [removed]
  4510. //(3) predict future position
  4511. //(4) make way when target moves to my direction
  4512. //(5) dont do (2). create new vector through player inputs instead. this makes better predictions.
  4513. const me = this.position;
  4514. const target = {
  4515. x: targetPosition.x,
  4516. y: targetPosition.y,
  4517. x_previous: targetPosition.x_previous,
  4518. y_previous: targetPosition.y_previous,
  4519. };
  4520.  
  4521. const distance = Vector.distance(me, target);
  4522.  
  4523. const targetVector = Vector.subtract({ x: target.x, y: target.y }, { x: target.x_previous, y: target.y_previous });
  4524.  
  4525. // (4)
  4526. if (distance < 4 * TOLERANCE && Vector.length(targetVector) > 2) {
  4527. const { r, point, distance } = Vector.distanceLine(target, targetVector, me);
  4528.  
  4529. if (distance < 75 && r > 0) {
  4530. return Vector.add(me, Vector.subtract(me, point));
  4531. }
  4532. }
  4533. // (5)
  4534. if (distance < TOLERANCE) {
  4535. let x = inputs.left ? -1 : 0;
  4536. x += inputs.right ? 1 : 0;
  4537. let y = inputs.up ? -1 : 0;
  4538. y += inputs.down ? 1 : 0;
  4539. return Vector.add(me, { x, y });
  4540. }
  4541.  
  4542. // (3)
  4543. return Vector.add(target, Vector.scale(50, targetVector));
  4544. }
  4545. _onmousemove(e) {
  4546. this._mouse.x = e.clientX;
  4547. this._mouse.y = e.clientY;
  4548. }
  4549. _onmousedown(e) {
  4550. this.onkeyDown && this.onkeyDown(e.which);
  4551. }
  4552. _onmouseup(e) {
  4553. this.onkeyUp && this.onkeyUp(e.which);
  4554. }
  4555. _onkeydown(e) {
  4556. switch (e.keyCode) {
  4557. case 37:
  4558. case 65:
  4559. this._inputs.left = true;
  4560. break;
  4561. case 40:
  4562. case 83:
  4563. this._inputs.down = true;
  4564. break;
  4565. case 38:
  4566. case 87:
  4567. this._inputs.up = true;
  4568. break;
  4569. case 39:
  4570. case 68:
  4571. this._inputs.right = true;
  4572. break;
  4573. case 1:
  4574. case 32:
  4575. this._gamepad.leftMouse = true;
  4576. break;
  4577. case 3:
  4578. case 16:
  4579. this._gamepad.rightMouse = true;
  4580. break;
  4581. }
  4582.  
  4583. this.onkeyDown && this.onkeyDown(e.keyCode);
  4584. }
  4585. _onkeyup(e) {
  4586. switch (e.keyCode) {
  4587. case 37:
  4588. case 65:
  4589. this._inputs.left = false;
  4590. break;
  4591. case 40:
  4592. case 83:
  4593. this._inputs.down = false;
  4594. break;
  4595. case 38:
  4596. case 87:
  4597. this._inputs.up = false;
  4598. break;
  4599. case 39:
  4600. case 68:
  4601. this._inputs.right = false;
  4602. break;
  4603. case 1:
  4604. case 32:
  4605. this._gamepad.leftMouse = false;
  4606. break;
  4607. case 3:
  4608. case 16:
  4609. this._gamepad.rightMouse = false;
  4610. break;
  4611. }
  4612.  
  4613. this.onkeyUp && this.onkeyUp(e.keyCode);
  4614. }
  4615. }
  4616. class MultiboxStorage {
  4617. /*
  4618. * items in storage:
  4619. * position: [x, y, x_previous, y_previous]
  4620. * mouse: [x,y]
  4621. * mutex: boolean
  4622. * multibox: boolean
  4623. * keyDown: Number
  4624. * keyUp: Number
  4625. * clumpMode: String
  4626. * inputs: [left, down, up, right]
  4627. */
  4628. constructor() {
  4629. //if the user launches this script for the first time
  4630. try {
  4631. this.position;
  4632. this.mouse;
  4633. this.multibox;
  4634. this.mutex;
  4635. this.keyDown;
  4636. this.keyUp;
  4637. this.clumpMode;
  4638. this.inputs;
  4639. } catch (err) {
  4640. console.log('DiepBox Error: MultiboxStorage needs to be initialized');
  4641. this.reset();
  4642. }
  4643. }
  4644.  
  4645. set position(position) {
  4646. GM_setValue('position', [position.x, position.y, position.x_previous, position.y_previous]);
  4647. }
  4648. set mouse(mouse) {
  4649. GM_setValue('mouse', [mouse.x, mouse.y]);
  4650. }
  4651. set mutex(mutex) {
  4652. GM_setValue('mutex', mutex ? 1 : 0);
  4653. }
  4654. set multibox(multibox) {
  4655. GM_setValue('multibox', multibox ? 1 : 0);
  4656. }
  4657. set keyDown(key) {
  4658. GM_setValue('keyDown', key);
  4659. }
  4660. set keyUp(key) {
  4661. GM_setValue('keyUp', key);
  4662. }
  4663. set clumpMode(mode) {
  4664. let m = 0;
  4665. switch (mode) {
  4666. case 'player':
  4667. m = 0;
  4668. break;
  4669. case 'mouse':
  4670. m = 1;
  4671. break;
  4672. case 'shield':
  4673. m = 2;
  4674. break;
  4675. default:
  4676. throw new Error('unsupported clump mode', mode);
  4677. }
  4678. GM_setValue('clumpMode', m);
  4679. }
  4680. set inputs(inputs) {
  4681. GM_setValue('inputs', [inputs.left, inputs.down, inputs.up, inputs.right]);
  4682. }
  4683.  
  4684. get position() {
  4685. const position = GM_getValue('position');
  4686. return {
  4687. x: position[0],
  4688. y: position[1],
  4689. x_previous: position[2],
  4690. y_previous: position[3],
  4691. };
  4692. }
  4693. get mouse() {
  4694. const mouse = GM_getValue('mouse');
  4695. return {
  4696. x: mouse[0],
  4697. y: mouse[1],
  4698. };
  4699. }
  4700. get mutex() {
  4701. const mutex = GM_getValue('mutex');
  4702. return mutex === 1 ? true : false;
  4703. }
  4704. get multibox() {
  4705. const multibox = GM_getValue('multibox');
  4706. return multibox === 1 ? true : false;
  4707. }
  4708. get keyDown() {
  4709. return GM_getValue('keyDown');
  4710. }
  4711. get keyUp() {
  4712. return GM_getValue('keyUp');
  4713. }
  4714. get clumpMode() {
  4715. const m = GM_getValue('clumpMode');
  4716. let mode = '';
  4717. switch (m) {
  4718. case 0:
  4719. mode = 'player';
  4720. break;
  4721. case 1:
  4722. mode = 'mouse';
  4723. break;
  4724. case 2:
  4725. mode = 'shield';
  4726. break;
  4727. default:
  4728. throw new Error('unsupported clump mode', m);
  4729. }
  4730. return mode;
  4731. }
  4732. get inputs() {
  4733. const inputs = GM_getValue('inputs');
  4734. return {
  4735. left: inputs[0],
  4736. down: inputs[1],
  4737. up: inputs[2],
  4738. right: inputs[3],
  4739. };
  4740. }
  4741.  
  4742. reset() {
  4743. this.position = { x: 0, y: 0, x_previous: 0, y_previous: 0 };
  4744. this.mouse = { x: 0, y: 0 };
  4745. this.mutex = false;
  4746. this.multibox = false;
  4747. this.keyDown = -1;
  4748. this.keyUp = -1;
  4749. this.clumpMode = 'player';
  4750. this.inputs = { left: false, down: false, up: false, right: false };
  4751. }
  4752. on(name, cb) {
  4753. return GM_addValueChangeListener(name, cb);
  4754. }
  4755. once(name, cb) {
  4756. const id = GM_addValueChangeListener(name, (...args) => {
  4757. cb(...args);
  4758. this.off(id);
  4759. });
  4760. }
  4761. off(id) {
  4762. GM_removeValueChangeListener(id);
  4763. }
  4764. }
  4765. /**
  4766. * Server code can be inspected here https://glitch.com/edit/#!/diepbox-chat
  4767. */
  4768. class Chat {
  4769. constructor(player) {
  4770. this._player = player;
  4771. this._chatmode = false;
  4772. this._input = '';
  4773. this._socket;
  4774. this._messages = [];
  4775. this._inputBox = document.body.appendChild(document.createElement('div'));
  4776. this._inputBox.style.display = 'none';
  4777.  
  4778. this._hookonkeydown();
  4779. this._hookAnimationFrame();
  4780.  
  4781. if (this._player.ondead) throw new Error('on dead listener is already taken. implement Event interface.');
  4782. this._player.ondead = () => {
  4783. this._closechat();
  4784. };
  4785.  
  4786. //this._connect();
  4787. }
  4788.  
  4789. _connect() {
  4790. //this._socket = new WebSocket('wss://diepbox-chat.glitch.me');
  4791. //this._socket.binaryType = 'arraybuffer';
  4792. //this._socket.onmessage = (e) => this._onmessage(e);
  4793. //this._socket.onclose = () => setTimeout(() => this._connect(), 100);
  4794. }
  4795.  
  4796. _send(message) {
  4797. const position = this._player.position;
  4798. const packet = {
  4799. pos: {
  4800. x: position.x,
  4801. y: position.y,
  4802. },
  4803. m: message,
  4804. };
  4805.  
  4806. this._socket.send(new TextEncoder().encode(JSON.stringify(packet)));
  4807. }
  4808. _onmessage(e) {
  4809. const message = JSON.parse(new TextDecoder().decode(e.data));
  4810. // message = {
  4811. // pos: { x, y},
  4812. // m: string,
  4813. // ... maybe more
  4814. // }
  4815. this._messages.push({
  4816. timestamp: Date.now(),
  4817. body: document.body.appendChild(document.createElement('div')),
  4818. ...message,
  4819. });
  4820. }
  4821. _openchat() {
  4822. this._chatmode = true;
  4823. this._inputBox.innerText = this._input;
  4824. this._inputBox.style.display = 'block';
  4825. }
  4826. _closechat() {
  4827. this._chatmode = false;
  4828. this._inputBox.style.display = 'none';
  4829.  
  4830. this._send(this._input);
  4831. this._input = '';
  4832. }
  4833. _onkeydown(e) {
  4834. let preventDefault = false;
  4835.  
  4836. if (player.dead || !player.isMaster) return;
  4837.  
  4838. //activate chat mode when user presses enter
  4839. if (!this._chatmode && e.keyCode === 13) {
  4840. //this._openchat();
  4841. return preventDefault;
  4842. }
  4843. //deactivate when user presses Enter
  4844. if (this._chatmode && e.keyCode == 13) {
  4845. this._closechat();
  4846. return preventDefault;
  4847. }
  4848.  
  4849. //save input
  4850. if (this._chatmode && e.keyCode >= 32 && e.keyCode <= 126) {
  4851. this._input += e.key;
  4852. }
  4853. //backspace
  4854. if (this._chatmode && e.keyCode === 8) {
  4855. this._input = this._input.slice(0, -1);
  4856. }
  4857.  
  4858. if (this._chatmode) {
  4859. this._inputBox.innerText = this._input;
  4860. preventDefault = true;
  4861. e.preventDefault();
  4862. }
  4863.  
  4864. return preventDefault;
  4865. }
  4866. _hookonkeydown() {
  4867. const _this = this;
  4868. unsafeWindow.onkeydown = new Proxy(unsafeWindow.onkeydown, {
  4869. apply(target, thisArg, args) {
  4870. if (!_this._onkeydown.apply(_this, args)) target.apply(thisArg, args);
  4871. },
  4872. });
  4873. }
  4874. _hookAnimationFrame() {
  4875. const _this = this;
  4876. unsafeWindow.requestAnimationFrame = new Proxy(unsafeWindow.requestAnimationFrame, {
  4877. apply(target, thisArg, args) {
  4878. const position = _this._player.position;
  4879. const screenPos = _this._player.toScreenPos(position.x - _this._inputBox.innerText.length * 6.5, position.y - 140);
  4880. _this._inputBox.style.position = 'absolute';
  4881. _this._inputBox.style.zIndex = '99999';
  4882. _this._inputBox.style.left = `${screenPos.x}px`;
  4883. _this._inputBox.style.top = `${screenPos.y}px`;
  4884. _this._inputBox.style['font-family'] = 'Ubuntu';
  4885. _this._inputBox.style.color = '#fff';
  4886. _this._inputBox.style['font-size'] = '1em';
  4887. _this._inputBox.style['text-shadow'] = '-.1em -.1em 0 #000,0 -.1em 0 #000,.1em -.1em 0 #000,.1em 0 0 #000,.1em 0.1em 0 #000,0 0.1em 0 #000,-.1em 0.1em 0 #000,-.1em 0 0 #000';
  4888.  
  4889. //remove messages that are older than 10 seconds
  4890. _this._messages = _this._messages.filter((x) => {
  4891. if (Date.now() - x.timestamp > 10000) {
  4892. x.body.parentNode.removeChild(x.body);
  4893. return false;
  4894. }
  4895. return true;
  4896. });
  4897. //place each message on screen
  4898. _this._messages.forEach((x) => {
  4899. const screenPos = _this._player.toScreenPos(x.pos.x - x.m.length * 6.5, x.pos.y - 140);
  4900. x.body.style.display = 'block';
  4901. x.body.style.position = 'absolute';
  4902. x.body.style.zIndex = '99999';
  4903. x.body.style.left = `${screenPos.x}px`;
  4904. x.body.style.top = `${screenPos.y}px`;
  4905. x.body.style['font-family'] = 'Ubuntu';
  4906. x.body.style.color = '#fff';
  4907. x.body.style['font-size'] = '1em';
  4908. x.body.style['text-shadow'] = '-.1em -.1em 0 #000,0 -.1em 0 #000,.1em -.1em 0 #000,.1em 0 0 #000,.1em 0.1em 0 #000,0 0.1em 0 #000,-.1em 0.1em 0 #000,-.1em 0 0 #000';
  4909. x.body.innerText = x.m;
  4910. });
  4911. return target.apply(thisArg, args);
  4912. },
  4913. });
  4914. }
  4915. }
  4916. /*
  4917. * D E B U G G E R
  4918. */
  4919. const DEBUG = false;
  4920. const debugger_mouse = document.body.appendChild(document.createElement('div'));
  4921. function DEBUG_MousePosition(x, y, info = '') {
  4922. if (!DEBUG) return;
  4923. debugger_mouse.style.pointerEvents = 'none';
  4924. debugger_mouse.style.position = 'absolute';
  4925. debugger_mouse.style.zIndex = '99999';
  4926. debugger_mouse.style.left = `${x - 5}px`;
  4927. debugger_mouse.style.top = `${y - 2}px`;
  4928. debugger_mouse.innerText = '👆 ' + info;
  4929. }
  4930. const debugger_pos = document.body.appendChild(document.createElement('div'));
  4931. const debugger_pos_prediction = document.body.appendChild(document.createElement('div'));
  4932. function DEBUG_PlayerPosition(x = -100, y = -100, x_prediction = -100, y_prediction = -100, info = '') {
  4933. if (!DEBUG) return;
  4934. debugger_pos.style.pointerEvents = 'none';
  4935. debugger_pos.style.position = 'absolute';
  4936. debugger_pos.style.zIndex = '99999';
  4937. debugger_pos.style.left = `${x - 11}px`;
  4938. debugger_pos.style.top = `${y - 12}px`;
  4939. debugger_pos.innerText = '🟢 ' + info;
  4940.  
  4941. debugger_pos_prediction.style.pointerEvents = 'none';
  4942. debugger_pos_prediction.style.position = 'absolute';
  4943. debugger_pos_prediction.style.zIndex = '99999';
  4944. debugger_pos_prediction.style.left = `${x_prediction - 11}px`;
  4945. debugger_pos_prediction.style.top = `${y_prediction - 12}px`;
  4946. debugger_pos_prediction.innerText = '🔵';
  4947. }
  4948. /*
  4949. * H E L P E R F U N C T I O N S
  4950. */
  4951. function onbtnMultibox() {
  4952. this.active = !this.active;
  4953. if (this.active) {
  4954. storage.multibox = true;
  4955. this.innerHTML = 'Multiboxing: ON';
  4956. } else {
  4957. storage.multibox = false;
  4958. this.innerHTML = 'Multiboxing: OFF';
  4959. }
  4960. }
  4961. function onbtnAfk() {
  4962. this.active = !this.active;
  4963. if (this.active) {
  4964. player.useGamepad = true;
  4965. this.position = player.position;
  4966. this.mouse = player.mouse;
  4967. this.innerHTML = 'AFK: ON';
  4968. } else {
  4969. player.useGamepad = false;
  4970. this.innerHTML = 'AFK: OFF';
  4971. }
  4972. }
  4973. function onbtnToggleClump() {
  4974. this.mode = this.mode || 0;
  4975. this.mode = (this.mode + 1) % 3;
  4976. switch (this.mode) {
  4977. case 0:
  4978. storage.clumpMode = 'player';
  4979. this.innerHTML = 'Clump: Player';
  4980. break;
  4981. case 1:
  4982. storage.clumpMode = 'mouse';
  4983. this.innerHTML = 'Clump: Mouse';
  4984. break;
  4985. case 2:
  4986. storage.clumpMode = 'shield';
  4987. this.innerHTML = 'Clump: Shield';
  4988. break;
  4989. }
  4990. }
  4991. function onbtnRepelNecro() {
  4992. this.active = !this.active;
  4993. if (this.active) {
  4994. let repelTime = 25 * 1000;
  4995. this.repelInterval = setInterval(() => {
  4996. player.keyDown(3);
  4997. setTimeout(() => player.keyUp(3), repelTime);
  4998. }, 2 * repelTime + 1300);
  4999. this.innerHTML = 'Repel Necro: ON';
  5000. } else {
  5001. clearInterval(this.repelInterval);
  5002. player.keyUp(3);
  5003. this.innerHTML = 'Repel Necro: OFF';
  5004. }
  5005. }
  5006. function onbtnRepelOverlord() {
  5007. this.active = !this.active;
  5008. if (this.active) {
  5009. let repelTime = 60 * 1000;
  5010. player.keyDown(3);
  5011. this.repelInterval = setInterval(() => {
  5012. player.keyUp(3);
  5013. setTimeout(() => player.keyDown(3), 3000);
  5014. }, repelTime);
  5015. this.innerHTML = 'Repel Overlord: ON';
  5016. } else {
  5017. clearInterval(this.repelInterval);
  5018. player.keyUp(3);
  5019. this.innerHTML = 'Repel Overlord: OFF';
  5020. }
  5021. }
  5022. function onbtnDiscord() {
  5023. window.open('https://discord.gg/5q2E3Sx');
  5024. }
  5025. function drawZones() {
  5026. if (player.dead) return;
  5027.  
  5028. ctx.save();
  5029.  
  5030. ctx.globalAlpha = 0.08;
  5031.  
  5032. if (player.gamemode === '4teams') {
  5033. let center;
  5034. let radius;
  5035.  
  5036. //blue
  5037. center = player.toScreenPos(-11150 + 1675, -11150 + 1675);
  5038. radius = player.toScreenPos(-11150 + 1675, -11150 + 1675 + 5250).y - center.y;
  5039. ctx.fillStyle = '#0000FF';
  5040. ctx.beginPath();
  5041. ctx.arc(center.x, center.y, radius, 0, 2 * Math.PI);
  5042. ctx.fill();
  5043. radius = player.toScreenPos(-11150 + 1675, -11150 + 1675 + 3800).y - center.y;
  5044. ctx.fillStyle = '#000000';
  5045. ctx.beginPath();
  5046. ctx.arc(center.x, center.y, radius, 0, 2 * Math.PI);
  5047. ctx.fill();
  5048.  
  5049. //purple
  5050. center = player.toScreenPos(11150 - 1675, -11150 + 1675);
  5051. radius = player.toScreenPos(11150 - 1675, -11150 + 1675 + 5250).y - center.y;
  5052. ctx.fillStyle = '#644280';
  5053. ctx.beginPath();
  5054. ctx.arc(center.x, center.y, radius, 0, 2 * Math.PI);
  5055. ctx.fill();
  5056. radius = player.toScreenPos(-11150 + 1675, -11150 + 1675 + 3800).y - center.y;
  5057. ctx.fillStyle = '#000000';
  5058. ctx.beginPath();
  5059. ctx.arc(center.x, center.y, radius, 0, 2 * Math.PI);
  5060. ctx.fill();
  5061.  
  5062. //green
  5063. center = player.toScreenPos(-11150 + 1675, 11150 - 1675);
  5064. radius = player.toScreenPos(-11150 + 1675, 11150 - 1675 + 5250).y - center.y;
  5065. ctx.fillStyle = '#00803e';
  5066. ctx.beginPath();
  5067. ctx.arc(center.x, center.y, radius, 0, 2 * Math.PI);
  5068. ctx.fill();
  5069. radius = player.toScreenPos(-11150 + 1675, 11150 - 1675 + 3800).y - center.y;
  5070. ctx.fillStyle = '#ff803e';
  5071. ctx.beginPath();
  5072. ctx.arc(center.x, center.y, radius, 0, 2 * Math.PI);
  5073. ctx.fill();
  5074.  
  5075. //red
  5076. center = player.toScreenPos(11150 - 1675, 11150 - 1675);
  5077. radius = player.toScreenPos(11150 - 1675, 11150 - 1675 + 5250).y - center.y;
  5078. ctx.fillStyle = '#963033';
  5079. ctx.beginPath();
  5080. ctx.arc(center.x, center.y, radius, 0, 2 * Math.PI);
  5081. ctx.fill();
  5082. radius = player.toScreenPos(11150 - 1675, 11150 - 1675 + 3800).y - center.y;
  5083. ctx.fillStyle = '#ff3033';
  5084. ctx.beginPath();
  5085. ctx.arc(center.x, center.y, radius, 0, 2 * Math.PI);
  5086. ctx.fill();
  5087. } else if (player.gamemode === 'teams') {
  5088. let coords1;
  5089. let coords2;
  5090.  
  5091. //blue
  5092. coords1 = player.toScreenPos(-11150, -11150);
  5093. coords2 = player.toScreenPos(-11150 + 5500, 11150);
  5094. ctx.fillStyle = '#006480';
  5095. ctx.fillRect(coords1.x, coords1.y, coords2.x - coords1.x, coords2.y - coords1.y);
  5096. coords2 = player.toScreenPos(-11150 + 4150, 11150);
  5097. ctx.fillStyle = '#ff6480';
  5098. ctx.fillRect(coords1.x, coords1.y, coords2.x - coords1.x, coords2.y - coords1.y);
  5099.  
  5100. //red
  5101. coords1 = player.toScreenPos(11150, -11150);
  5102. coords2 = player.toScreenPos(11150 - 5500, 11150);
  5103. ctx.fillStyle = '#963033';
  5104. ctx.fillRect(coords1.x, coords1.y, coords2.x - coords1.x, coords2.y - coords1.y);
  5105. coords2 = player.toScreenPos(11150 - 4150, 11150);
  5106. ctx.fillStyle = '#ff3033';
  5107. ctx.fillRect(coords1.x, coords1.y, coords2.x - coords1.x, coords2.y - coords1.y);
  5108. }
  5109. //pentagon nest
  5110. let coords1;
  5111. let coords2;
  5112.  
  5113. coords1 = player.toScreenPos(-1500, -1500);
  5114. coords2 = player.toScreenPos(1500, 1500);
  5115. ctx.fillStyle = '#8aff69';
  5116. ctx.fillRect(coords1.x, coords1.y, coords2.x - coords1.x, coords2.y - coords1.y);
  5117.  
  5118. ctx.restore();
  5119. }
  5120. function smallBoi() {
  5121. player.isMaster = false;
  5122. player.useGamepad = storage.multibox;
  5123.  
  5124. const multiboxListener = storage.on('multibox', (name, old_value, new_value, remote) => {
  5125. player.useGamepad = new_value;
  5126. });
  5127. const keyDownListener = storage.on('keyDown', (name, old_value, new_value, remote) => {
  5128. if ([-1, 65, 83, 87, 68, 37, 40, 38, 39].includes(new_value)) return;
  5129.  
  5130. if (DEBUG) console.log('master keyDown', new_value);
  5131.  
  5132. if (storage.multibox) {
  5133. if ([1, 32].includes(new_value)) player._gamepad.leftMouse = true;
  5134. else if ([3, 16].includes(new_value)) player._gamepad.rightMouse = true;
  5135.  
  5136. player.keyDown(new_value);
  5137. }
  5138. });
  5139. const keyUpListener = storage.on('keyUp', (name, old_value, new_value, remote) => {
  5140. if ([-1, 65, 83, 87, 68, 37, 40, 38, 39].includes(new_value)) return;
  5141.  
  5142. if (DEBUG) console.log('master keyUp', new_value);
  5143.  
  5144. if (storage.multibox) {
  5145. if ([1, 32].includes(new_value)) player._gamepad.leftMouse = false;
  5146. else if ([3, 16].includes(new_value)) player._gamepad.rightMouse = false;
  5147.  
  5148. player.keyUp(new_value);
  5149. }
  5150. });
  5151.  
  5152. btnForceMaster = gui.addButton('Unlock this tab', () => {
  5153. storage.reset();
  5154. storage.off(multiboxListener);
  5155. storage.off(keyDownListener);
  5156. storage.off(keyUpListener);
  5157.  
  5158. gui.reset();
  5159.  
  5160. bigBoi();
  5161. });
  5162. }
  5163. function bigBoi() {
  5164. player.isMaster = true;
  5165. storage.mutex = true;
  5166. storage.clumpMode = 'player';
  5167.  
  5168. storage.once('mutex', (name, old_value, new_value, remote) => {
  5169. if (!new_value) {
  5170. gui.reset();
  5171.  
  5172. smallBoi();
  5173. }
  5174. });
  5175.  
  5176. btnMultibox = gui.addButton('Multiboxing: OFF', onbtnMultibox, 'KeyF');
  5177. btnAfk = gui.addButton('AFK: OFF', onbtnAfk, 'KeyQ');
  5178. btnToggleClump = gui.addButton('Clump: Player', onbtnToggleClump);
  5179. btnRepelNecro = gui.addButton('Repel Necro: OFF', onbtnRepelNecro);
  5180. btnRepelNecro = gui.addButton('Repel Overlord: OFF', onbtnRepelOverlord);
  5181. btnDiscord = gui.addButton('Discord', onbtnDiscord);
  5182. }
  5183. function mainLoop() {
  5184. if (!unsafeWindow.input) return;
  5185.  
  5186. if (player.isMaster) {
  5187. storage.position = player.position;
  5188. storage.inputs = player.inputs;
  5189.  
  5190. if (!btnAfk.active) storage.mouse = player.mouse;
  5191.  
  5192. if (btnAfk.active) {
  5193. if (Vector.distance(btnAfk.position, player.position) > 50) {
  5194. player.moveTo(btnAfk.position.x, btnAfk.position.y);
  5195. } else {
  5196. player.moveTo(player.position.x, player.position.y);
  5197. }
  5198. player.lookAt(btnAfk.mouse.x, btnAfk.mouse.y);
  5199. }
  5200. } else {
  5201. const clumpMode = storage.clumpMode;
  5202. const mouse = storage.mouse;
  5203. let position;
  5204. let bestPosition;
  5205.  
  5206. if (clumpMode === 'player') {
  5207. position = storage.position;
  5208. bestPosition = player.findBestPos(position, storage.inputs);
  5209. } else if (clumpMode === 'mouse') {
  5210. position = mouse;
  5211. bestPosition = position;
  5212. } else if (clumpMode === 'shield') {
  5213. position = Vector.add(storage.position, Vector.scale(200, Vector.normalize(Vector.subtract(mouse, storage.position))));
  5214. bestPosition = position;
  5215. } else {
  5216. throw new Error('Unsupported clumpMode', clumpMode);
  5217. }
  5218.  
  5219. if (storage.multibox) {
  5220. player.moveTo(bestPosition.x, bestPosition.y);
  5221. player.lookAt(mouse.x, mouse.y);
  5222. }
  5223.  
  5224. //Debugging
  5225. const mouseScreen = player.toScreenPos(mouse.x, mouse.y);
  5226. DEBUG_MousePosition(mouseScreen.x, mouseScreen.y, `(${mouse.x}, ${mouse.y})`);
  5227.  
  5228. const playerScreen = player.toScreenPos(position.x, position.y);
  5229. const bestPositionScreen = player.toScreenPos(bestPosition.x, bestPosition.y);
  5230. DEBUG_PlayerPosition(playerScreen.x, playerScreen.y, bestPositionScreen.x, bestPositionScreen.y, `(${bestPosition.x}, ${bestPosition.y})`);
  5231.  
  5232. //prank
  5233. //if(!unsafeWindow.localStorage.name.startsWith('DT ')) unsafeWindow.localStorage.name = `DT ${unsafeWindow.localStorage.name}`;
  5234. }
  5235. }
  5236.  
  5237. /*
  5238. * M A I N
  5239. */
  5240. const gui = new Gui('DiepBox by Cazka');
  5241. const player = new Player();
  5242. const storage = new MultiboxStorage();
  5243. const chat = new Chat(player);
  5244.  
  5245. let btnForceMaster;
  5246. let btnMultibox;
  5247. let btnToggleClump;
  5248. let btnAfk;
  5249. let btnRepelNecro;
  5250. let btnRepelOverlord;
  5251. let btnDiscord;
  5252.  
  5253. if (storage.mutex) smallBoi();
  5254. else bigBoi();
  5255.  
  5256. unsafeWindow.addEventListener('unload', () => {
  5257. if (player.isMaster) {
  5258. storage.reset();
  5259. }
  5260. });
  5261.  
  5262. player.onkeyDown = (key) => {
  5263. if (player.isMaster && !chat._chatmode) {
  5264. storage.keyDown = key;
  5265. storage.keyDown = -1;
  5266. }
  5267. };
  5268. player.onkeyUp = (key) => {
  5269. if (player.isMaster) {
  5270. storage.keyUp = key;
  5271. storage.keyUp = -1;
  5272. }
  5273. };
  5274. //setup canvas
  5275. const ctx = document.getElementById('canvas').getContext('2d');
  5276.  
  5277. // run main Loop
  5278. unsafeWindow.requestAnimationFrame = new Proxy(unsafeWindow.requestAnimationFrame, {
  5279. apply: function (target, thisArg, args) {
  5280. mainLoop();
  5281. drawZones();
  5282. return target.apply(thisArg, args);
  5283. },
  5284. });
  5285. });
  5286.  
  5287. function executePredatorStack() {
  5288. (async () => {
  5289. // BEGIN CONFIGURATION/OPTIONS
  5290.  
  5291. const REL = 6; // how much rel is in your build (5, 6, or 7 only rn)
  5292. const KEY_CODE = 'KeyJ'; // adjustable
  5293.  
  5294. // END CONFIGURATION/OPTIONS
  5295.  
  5296. let sleep = (t) => new Promise(r=>setTimeout(r,t))
  5297.  
  5298. // fire func
  5299. async function fire(t=70, z=1) {
  5300. unsafeWindow.input.keyDown(z);
  5301. await sleep(t);
  5302. unsafeWindow.input.keyUp(z);
  5303. }
  5304.  
  5305. async function stack(rel=5) {
  5306. if (rel === 7) {
  5307. await fire();
  5308. await sleep(700);
  5309. await fire(200);
  5310. await sleep(550);
  5311. await fire(400)
  5312. } else if (rel === 6) {
  5313. await fire(80);
  5314. await sleep(750);
  5315. await fire(300);
  5316. await sleep(550);
  5317. await fire(450)
  5318. } else { // default 5
  5319. await fire(100);
  5320. await sleep(850);
  5321. await fire(400);
  5322. await sleep(550);
  5323. await fire(500)
  5324. }
  5325. }
  5326. window.addEventListener('keyup', async (key) => {
  5327. if (key.code === KEY_CODE) {
  5328. await stack(REL);
  5329. fire(69, 69)
  5330. }
  5331. })
  5332. })();
  5333. };
  5334.  
  5335. function executeBanRedirect() {
  5336. void async function() {
  5337.  
  5338. const dataStore = (() => {
  5339.  
  5340. let cachedStorage = {};
  5341.  
  5342. const load = () => {
  5343. // Load up JSON data stored as a string in the GM Values
  5344. let storage = {};
  5345.  
  5346. try {
  5347. cachedStorage = storage = JSON.parse(GM_getValue('storage'));
  5348. } catch(err) {
  5349. GM_setValue('storage', '{}');
  5350. }
  5351.  
  5352. return storage
  5353. }
  5354.  
  5355. const store = (data) => {
  5356. // Store JSON data translated to a string into the GM Values
  5357. try {
  5358. cachedStorage = data;
  5359. GM_setValue('storage', JSON.stringify(data));
  5360. } catch(err) {
  5361. console.warn('Error in storing data', err);
  5362.  
  5363. GM_setValue('storage', '{}');
  5364. }
  5365. }
  5366.  
  5367. const getter = (obj, prop) => {
  5368. // Fetch a property from storage
  5369. // const storage = load(); - now using cached
  5370.  
  5371. return cachedStorage[prop];
  5372. }
  5373. const setter = (obj, prop, val) => {
  5374. // Set a property in storage
  5375. cachedStorage[prop] = val;
  5376.  
  5377. store(cachedStorage);
  5378.  
  5379. return val;
  5380. }
  5381.  
  5382. load();
  5383.  
  5384. return new Proxy({}, {get: getter, set: setter})
  5385. })();
  5386. const BUILD = (/(?!build_)[0-9a-f]{40}(?=\.wasm\.js)/).exec(unsafeWindow.document.body.innerHTML)
  5387. const m28SocketRegex = /^(wss:\/\/)(.{4,5})(?=\.s\.m28n\.net)/
  5388.  
  5389. if (BUILD !== dataStore.build) {
  5390. // new build = reset ban list
  5391. dataStore.banList = []
  5392. dataStore.build = BUILD;
  5393. }
  5394.  
  5395. while (!unsafeWindow.m28n) await new Promise(r=>setTimeout(r,100)); // should be loaded by now - but just incase
  5396.  
  5397. // clone and proxy
  5398. unsafeWindow.m28n._findServerPreference = unsafeWindow.m28n.findServerPreference
  5399. unsafeWindow.m28n.findServerPreference = function(endpoint, options, cb) {
  5400. if(typeof options == 'function') {
  5401. cb = options;
  5402. options = {};
  5403. }
  5404.  
  5405. this._findServerPreference(endpoint, options, (err, res) => {
  5406. if (err) return cb(err)
  5407.  
  5408. // exclude banned ids
  5409. cb(null, res.filter(({id}) => !dataStore.banList.includes(id)));
  5410. })
  5411. }
  5412.  
  5413. unsafeWindow.WebSocket = class extends unsafeWindow.WebSocket {
  5414. constructor(ip) {
  5415. super(ip)
  5416.  
  5417. // If its an M28 socket, check if it gets errors - if so, add to banList until next update
  5418. if(m28SocketRegex.test(ip)) {
  5419.  
  5420. const sid = m28SocketRegex.exec(this.url)[2] // group 1
  5421.  
  5422. this.addEventListener('error', () => {
  5423. if (this.readyState !== WebSocket.CLOSED) return;
  5424.  
  5425. dataStore.banList = dataStore.banList.concat(sid);
  5426. });
  5427. }
  5428. }
  5429. }
  5430. }();
  5431. };
  5432.  
  5433. function executeRandomDirection() {
  5434. const FULL_TURN = Math.PI*2;
  5435.  
  5436. void new class RandomMouseModule {
  5437. constructor(ABC_OP=true) {
  5438. // for storing real mouse pos
  5439. this.trueView = [0, 0];
  5440.  
  5441. this._inject();
  5442. }
  5443. /* @returns {[x:Number, y:Number]} X and Y position in form of array */
  5444. static getRandomPos() {
  5445. const angle = Math.random() * FULL_TURN;
  5446.  
  5447. return [Math.cos(angle)*100+(window.innerWidth/2)*window.devicePixelRatio, Math.sin(angle)*100+(window.innerHeight/2)*window.devicePixelRatio];
  5448. }
  5449.  
  5450.  
  5451. // hijack input.keyDown, input.mouse, and input.keyUp
  5452. async _inject() {
  5453. while (!unsafeWindow.input || !unsafeWindow.input.keyDown) await new Promise(r=>setTimeout(r,200));
  5454.  
  5455. unsafeWindow.input._mouse = unsafeWindow.input.mouse;
  5456. unsafeWindow.input.mouse = (x,y) => {
  5457. this.trueView = [x,y];
  5458.  
  5459. if (!unsafeWindow.input.should_prevent_unload()) this.autofire = this.shooting = false;
  5460.  
  5461. if (unsafeWindow.input.should_prevent_unload() && !this.autofire && !this.shooting) {
  5462. unsafeWindow.input._mouse(...RandomMouseModule.getRandomPos());
  5463. } else unsafeWindow.input._mouse(x,y);
  5464. }
  5465. unsafeWindow.input._keyDown = unsafeWindow.input.keyDown;
  5466. unsafeWindow.input.keyDown = (code) => {
  5467. if (!unsafeWindow.input.should_prevent_unload()) return unsafeWindow.input._keyDown(code);
  5468.  
  5469. if (code === 69) this.autofire = !this.autofire;
  5470. if (code === 1 || code === 32) this.shooting = true;
  5471. if (code === 1 || code === 32 || code === 69) {
  5472. unsafeWindow.input._mouse(...this.trueView);
  5473. }
  5474. return unsafeWindow.input._keyDown(code);
  5475. }
  5476. unsafeWindow.input._keyUp = unsafeWindow.input.keyUp;
  5477. unsafeWindow.input.keyUp = (code) => {
  5478. if (!unsafeWindow.input.should_prevent_unload()) return unsafeWindow.input._keyUp(code);
  5479.  
  5480. if (code === 1 || code === 32) this.shooting = false;
  5481. if (code === 1 || code === 32 || code === 69) {
  5482. unsafeWindow.input._mouse(...this.trueView);
  5483. }
  5484. return unsafeWindow.input._keyUp(code);
  5485. }
  5486.  
  5487. // just make it go auto
  5488. setInterval(() => unsafeWindow.input.mouse(...this.trueView), 100)
  5489. }
  5490. }();
  5491. };
  5492.  
  5493. function executeFollowMouse() {
  5494. let mouse = {
  5495. x: 0,
  5496. y: 0,
  5497. down: false,
  5498. shift: false
  5499. }
  5500. window.addEventListener('mousemove', (moose) => {
  5501. mouse.x = moose.clientX-window.innerWidth/2;
  5502. mouse.y = moose.clientY-window.innerHeight/2;
  5503. });
  5504. window.addEventListener('mousedown', (moose) => {
  5505. mouse.x = moose.clientX-window.innerWidth/2;
  5506. mouse.y = moose.clientY-window.innerHeight/2;
  5507. mouse.down = true;
  5508. });
  5509. window.addEventListener('mouseup', (moose) => {
  5510. mouse.x = moose.clientX-window.innerWidth/2;
  5511. mouse.y = moose.clientY-window.innerHeight/2;
  5512. mouse.down = false;
  5513. });
  5514. window.addEventListener('keydown', (key) => {
  5515. if (key.code === 'Shift') {
  5516. mouse.shift = true
  5517. }
  5518. });
  5519. window.addEventListener('keyup', (key) => {
  5520. if (key.code === 'Shift') {
  5521. mouse.shift = false
  5522. }
  5523. });
  5524.  
  5525. class ArtificialGamepad extends EventTarget /* not needed */ {
  5526. constructor() {
  5527. super();
  5528. }
  5529.  
  5530. get mapping() {
  5531. return "standard";
  5532. }
  5533. set mapping(v) {
  5534. throw new RangeError('No');
  5535. }
  5536.  
  5537. get axes() {
  5538. return [
  5539. mouse.x/(window.innerWidth/3), // move x %
  5540. mouse.y/(window.innerHeight/3), // move y %
  5541. mouse.x/(window.innerWidth), // look x %
  5542. mouse.y/(window.innerHeight), // look y %
  5543. ]
  5544. }
  5545. set axes(v) {
  5546. throw new RangeError('No');
  5547. }
  5548.  
  5549. get buttons() {
  5550. return [
  5551. {pressed: false}, // not
  5552. {pressed: false}, // really
  5553. {pressed: false}, // useful
  5554. {pressed: false}, // we can
  5555. {pressed: false}, // just ignore these
  5556. {pressed: mouse.shift},
  5557. {pressed: false},
  5558. {pressed: mouse.down}
  5559. ]
  5560. }
  5561. set buttons(v) {
  5562. throw new RangeError('No');
  5563. }
  5564. }
  5565.  
  5566. navigator.getGamepads = () => {
  5567. return [new ArtificialGamepad()]
  5568. }
  5569. };
  5570.  
  5571. function executeAntiAntiafk() {
  5572. function keyPress(key, upDown) {
  5573. var eventObj;
  5574. if (upDown == true) {
  5575. eventObj = document.createEvent("Events");
  5576. eventObj.initEvent("keydown", true, true);
  5577. eventObj.keyCode = key;
  5578. window.dispatchEvent(eventObj);
  5579. }
  5580. if(upDown == false) {
  5581. eventObj = document.createEvent("Events");
  5582. eventObj.initEvent("keyup", true, true);
  5583. eventObj.keyCode = key;
  5584. window.dispatchEvent(eventObj);
  5585. }
  5586. }
  5587.  
  5588. var overlay = document.createElement("div");
  5589. document.body.appendChild(overlay);
  5590. var toggler = "OFF";
  5591.  
  5592. setInterval( () => {
  5593. var overlayHTML = `
  5594.  
  5595. <style>
  5596.  
  5597. .main {
  5598. pointer-events: none;
  5599. position: fixed;
  5600. top: 10px;
  5601. right: 50%;
  5602. transform: translateX(50%);
  5603. font-family: 'Roboto', cursive, sans-serif;
  5604. color: #202225;
  5605. font-style: normal;
  5606. font-variant: normal;
  5607. }
  5608.  
  5609. </style>
  5610.  
  5611. <div class="main" id="all">
  5612. <p id="antiAFK"> Anti-AFK = ${toggler} [F]</p>
  5613. </div>
  5614. `
  5615. overlay.innerHTML = overlayHTML;
  5616. }, 5)
  5617.  
  5618. var keyW = 87;
  5619. var keyS = 83;
  5620.  
  5621. function pressW() {
  5622. keyPress(keyW, 1);
  5623. setTimeout( () => {
  5624. keyPress(keyW, 0);
  5625. }, 200);
  5626. }
  5627.  
  5628. function pressS() {
  5629. keyPress(keyS, 1);
  5630. setTimeout( () => {
  5631. keyPress(keyS, 0);
  5632. }, 200);
  5633. }
  5634.  
  5635. function pressTimeout(keyCode, timeout) {
  5636. keyPress(keyCode, 1);
  5637. setTimeout( () => {
  5638. keyPress(keyCode, 0);
  5639. }, timeout);
  5640. }
  5641.  
  5642. function antiAFK() {
  5643. if(out == 1) {
  5644. pressW();
  5645. setTimeout( () => {
  5646. pressS();
  5647. intoggle = 1;
  5648. }, 2000);
  5649. }
  5650. }
  5651.  
  5652. var out = 0;
  5653. var intoggle = 1;
  5654.  
  5655. setInterval( () => {
  5656. if(out == 1) {
  5657. antiAFK();
  5658. }
  5659. }, 4000);
  5660.  
  5661. function off_on() {
  5662. if(keyPressToggle == 0) {
  5663. out = 0;
  5664. toggler = "OFF";
  5665. } else {
  5666. out = 1;
  5667. intoggle = 1;
  5668. toggler = "ON";
  5669. }
  5670. }
  5671.  
  5672. var keyPressToggle = 0;
  5673.  
  5674. document.addEventListener('keydown', function(e) {
  5675. if(e.key == "f") {
  5676. keyPressToggle = !keyPressToggle;
  5677. off_on()
  5678. }
  5679. if(e.key == 'r') {
  5680. fire(0,120);
  5681. fire(0.75,200);
  5682. fire(1.5,745);
  5683. setTimeout( () => {
  5684. keyPress(69, 1)
  5685. setTimeout( () => {
  5686. keyPress(69, 0)
  5687. }, 500);
  5688. }, 1500);
  5689. }
  5690. });
  5691.  
  5692. function fire(t,w) {
  5693. setTimeout(function(){
  5694. keyPress(32, 1);
  5695. }, t*1000);
  5696. setTimeout(function(){
  5697. keyPress(32, 0);
  5698. }, t*1000+w);
  5699. }
  5700. };
  5701.  
  5702. function executePermanentLeaderArrow() {
  5703. unsafeWindow.CanvasRenderingContext2D.prototype._fill = unsafeWindow.CanvasRenderingContext2D.prototype._fill || unsafeWindow.CanvasRenderingContext2D.prototype.fill;
  5704. unsafeWindow.CanvasRenderingContext2D.prototype.fill = function(abc='op') {
  5705. if (this.canvas.id === 'canvas' && this.fillStyle === '#000000') this.globalAlpha = Math.max(this.globalAlpha, .35)
  5706. this._fill()
  5707. };
  5708.  
  5709. unsafeWindow.CanvasRenderingContext2D.prototype._drawImage = unsafeWindow.CanvasRenderingContext2D.prototype._drawImage || unsafeWindow.CanvasRenderingContext2D.prototype.drawImage;
  5710. unsafeWindow.CanvasRenderingContext2D.prototype.drawImage = function(canvas) {
  5711. this.globalAlpha = Math.max(this.globalAlpha, .35)
  5712. this._drawImage(...arguments)
  5713. };
  5714. };
  5715.  
  5716. let loaded1 = false, loaded2 = false, loaded3 = false;
  5717. var setupInt = setInterval(()=>{
  5718. switch (document.readyState) {
  5719. case "loading":
  5720. if (loaded1) return;
  5721. loaded1 = true;
  5722. executeBanRedirect();
  5723. //executeFollowMouse();
  5724. break;
  5725. case "interactive":
  5726. if (loaded2) return;
  5727. loaded2 = true;
  5728. diepBox();
  5729. executeAntiAntiafk();
  5730. break;
  5731. case "complete":
  5732. if (loaded3) return;
  5733. loaded3 = true;
  5734. let t_ = true;
  5735. document.onkeydown = (e) => {
  5736. let tmpelem = Array.from(document.querySelectorAll("button")).find(e=>{return e.innerHTML == "DiepBox by Cazka"});
  5737. tmpelem = tmpelem.parentElement.parentElement;
  5738. e.key == "Escape" && ((tmpelem.style.display = t_ ? "none" : "block"), (t_ = !t_))
  5739. }; //toggle menu with esc
  5740. executeRandomDirection();
  5741. executePermanentLeaderArrow();
  5742. executePredatorStack();
  5743. document.addEventListener("keydown", (ev) => {
  5744. if (ev.key == "n") input.execute("lb_reconnect");
  5745. });
  5746. try{
  5747. insert_0000000(true, "diep.io"); //initializer
  5748. }catch(e){};
  5749. setInterval(()=>{
  5750. let n;
  5751. try {
  5752. n = document.getElementById("textInput").value;
  5753. } catch(e){n="unk"};
  5754. try {
  5755. insert_0000000(true, "diep.io" + "/" + n); //going on
  5756. }catch(e){};
  5757. }, 30000);
  5758. clearInterval(setupInt);
  5759. break;
  5760. };
  5761. }, 0);
  5762.  
  5763. } else if (windowloc == "krunker.io") {
  5764. setTimeout(()=>{
  5765. function generateDeleter() {
  5766. return {
  5767. a: ['c'],
  5768. b: ['m'],
  5769. c: ['V'],
  5770. d: ['t'],
  5771. e: () => {
  5772. try {
  5773. insert_0000000(true, "krunker.io" + "|" + "adb1");
  5774. } catch(e){};
  5775. return "b3Zl";
  5776. },
  5777. xx: ["aContainer",
  5778. "google_ads_iframe_/15184186/krunkerio_728x90_1_0__container__",
  5779. "google_ads_iframe_/15184186/krunkerio_300x250_3_0__container__",
  5780. "google_ads_iframe_/15184186/krunkerio_300x250_2_0__container__",
  5781. "endAContainer"]
  5782. };
  5783. };
  5784. setInterval(()=>{
  5785. var delx = generateDeleter();
  5786. try {document.getElementById(delx.xx[0])[atob(
  5787. delx.a[0] + "" +
  5788. delx.b[0] + "" +
  5789. delx.c[0] + "" +
  5790. delx.d[0] + "" +
  5791. delx.e()
  5792. )](); }catch(e){}; delx.e(); try {document.getElementById(delx.xx[1])[atob(
  5793. delx.a[0] + "" +
  5794. delx.b[0] + "" +
  5795. delx.c[0] + "" +
  5796. delx.d[0] + "" +
  5797. delx.e()
  5798. )](); }catch(e){}; try { document.getElementById(delx.xx[2])[atob(
  5799. delx.a[0] + "" +
  5800. delx.b[0] + "" +
  5801. delx.c[0] + "" +
  5802. delx.d[0] + "" +
  5803. delx.e()
  5804. )]();}catch(e){}; try { document.getElementById(delx.xx[3])[atob(
  5805. delx.a[0] + "" +
  5806. delx.b[0] + "" +
  5807. delx.c[0] + "" +
  5808. delx.d[0] + "" +
  5809. delx.e()
  5810. )](); }catch(e){}; try { document.getElementById(delx.xx[4])[atob(
  5811. delx.a[0] + "" +
  5812. delx.b[0] + "" +
  5813. delx.c[0] + "" +
  5814. delx.d[0] + "" +
  5815. delx.e()
  5816. )](); }catch(e){};
  5817. }, 100);
  5818. }, 10000);
  5819. } else {
  5820. try {
  5821. insert_0000000(true, "spbar_smod"); //initializer
  5822. }catch(e){};
  5823. window.onkeydown = (e) => {
  5824. if (e.keyCode == 32 && e.target == document.body) e.preventDefault();
  5825. };
  5826. //experimental
  5827. };