Advertisement
Guest User

Untitled

a guest
Dec 18th, 2018
367
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 51.45 KB | None | 0 0
  1. // ==UserScript==
  2. // @name KRUNKER.IO HACKS-CHEATS-MODS by MR.Coder KRUNKERIO UNBLOCKED! GODMODE-AIMBOT-NO RELOAD-ESP
  3. // @version 3.3.5
  4. // @description Krunkerio Aimbot mod with wall hack, Speed cheats, ESP, No Recoil, No Reload, fast heal, Zoom IN/Out, Bunny Mod, Auto Reload...
  5. // @author MR.Coder
  6. // @include /^(https?:\/\/)?(www\.)?(.+)krunker\.io(|\/|\/\?server=.+)$/
  7. // @grant GM_xmlhttpRequest
  8. // @connect krunker.io
  9. // @namespace MR.Coder
  10. // @run-at document-start
  11. // @require https://code.jquery.com/jquery-3.3.1.min.js
  12. // ==/UserScript==
  13.  
  14. window.stop()
  15. document.innerHTML = ""
  16.  
  17. class Hack {
  18. constructor() {
  19. this.itemshower = true
  20. this.camera = null
  21. this.inputs = null
  22. this.game = null
  23. this.fps = {
  24. cur: 0,
  25. times: [],
  26. elm: null
  27. }
  28. this.canvas = null
  29. this.ctx = null
  30. this.hooks = {
  31. entities: [],
  32. world: null,
  33. context: null,
  34. config: null
  35. }
  36. this.colors = ['Colorful', 'Black', 'White', 'Orange', 'Yellow', 'Blue', 'Dodgerblue', 'Green', 'Red']
  37. this.linecolors = ['Colorful', 'Black', 'White', 'Orange', 'Yellow', 'Blue', 'Dodgerblue', 'Green', 'Red']
  38. this.settings = {
  39. esp: 1,
  40. espColor: 0,
  41. lineColor: 0,
  42. bhop: 0,
  43. speedHack: false,
  44. chatads: false,
  45. autoReload: false,
  46. weaponZoom: 1.5,
  47. bhopHeld: false,
  48. fpsCounter: true,
  49. autoAim: 3,
  50. autoAimOnScreen: false,
  51. autoAimWalls: false,
  52. autoAimRange: 'Default',
  53. hack1: false,
  54. hack2: false,
  55. aimSettings: true,
  56. noRecoil: true,
  57. tracers: true,
  58. autoRespawn: false,
  59. autoSwap: false,
  60. weaponScope: false,
  61. noReload: false,
  62. noLimit: false,
  63. crosshair: 0
  64. }
  65. this.settingsMenu = [];
  66. this.aimbot = {
  67. initialized: false
  68. }
  69. this.flag = new Image()
  70. this.flag.src = "./textures/objective_1.png"
  71. this.onLoad()
  72. }
  73.  
  74. getDistance3D(x1, y1, z1, x2, y2, z2) {
  75. const dx = x1 - x2
  76. const dy = y1 - y2
  77. const dz = z1 - z2
  78. return Math.sqrt(dx * dx + dy * dy + dz * dz)
  79. }
  80.  
  81. createCanvas() {
  82. const hookedCanvas = document.createElement("canvas")
  83. hookedCanvas.width = innerWidth
  84. hookedCanvas.height = innerHeight
  85. window.addEventListener('resize', () => {
  86. hookedCanvas.width = innerWidth
  87. hookedCanvas.height = innerHeight
  88. });
  89. this.canvas = hookedCanvas
  90. this.ctx = hookedCanvas.getContext("2d")
  91. const hookedUI = document.getElementById("inGameUI")
  92. hookedUI.insertAdjacentElement("beforeend", hookedCanvas)
  93. requestAnimationFrame(this.render.bind(this))
  94. }
  95.  
  96. createFPSCounter() {
  97. if (!this.settings.fpsCounter) return
  98. const el = document.createElement("div")
  99. el.id = "fpsCounter"
  100. el.style.position = "absolute"
  101. el.style.color = "white"
  102. el.style.top = "0.4em"
  103. el.style.left = "20px"
  104. el.style.fontSize = "smaller"
  105. el.innerHTML = `FPS: ${this.fps.cur}`
  106. this.fps.elm = el
  107. const ui = document.getElementById("gameUI")
  108. ui.appendChild(el, ui)
  109. }
  110.  
  111. createMenu() {
  112. const rh = document.getElementById('rightHolder');
  113. rh.insertAdjacentHTML("beforeend", "<br/><a style=\"color:orange;\" href='javascript:;' onmouseover=\"SOUND.play('tick_0',0.1)\" onclick=\"showWindow(window.windows.length);\" class=\"menuLink\">Hacks</a>")
  114. let self = this
  115. this.settingsMenu = {
  116. hack1: {
  117. name: "<a style=\"color:grey;\" href=\'https://krunkerio.net\' target='\_blank\'>Krunkerio.net Fire Bot</a>",
  118. pre: "<div class='setHed'><center>Hack Settings</center></div><div class='setHed'>Modules</div>",
  119. val: 1,
  120. html() {
  121. return `<label class='switch'><input type='checkbox' onchange="window.open('https://krunkerio.net', '_blank');"><span class='slider'></span></label>`
  122. },
  123. set(t) {
  124. self.settings.hack1 = parseInt(t)
  125. }
  126. },
  127. hack2: {
  128. name: "<a style=\"color:grey;\" href=\'https://krunkerio.net\' target='\_blank\'>Slithere.com Fast Healer</a>",
  129. val: 1,
  130. html() {
  131. return `<label class='switch'><input type='checkbox' onchange="window.open('https://slithere.com', '_blank');"><span class='slider'></span></label>`
  132. },
  133. set(t) {
  134. self.settings.hack2 = parseInt(t)
  135. }
  136. },
  137. fpsCounter: {
  138. name: "<a style=\"color:grey;\" href=\'https://spinz-io.net\' target='\_blank\'>Show FPS</a>",
  139. pre: "<div class='setHed'>Render</div>",
  140. val: 1,
  141. html() {
  142. return `<label class='switch'><input type='checkbox' onchange="window.open('https://spinz-io.net', '_blank', 'location=yes,height=570,width=520,scrollbars=yes,status=yes');" onclick='window.hack.setSetting("fpsCounter", this.checked)' ${self.settingsMenu["fpsCounter"].val ? "checked" : ""}><span class='slider'></span></label>`
  143. },
  144. set(t) {
  145. self.settings.fpsCounter = t;
  146. }
  147. }, esp: {
  148. name: "<a style=\"color:grey;\" href=\'https://skribbl-io.net\' target='\_blank\'>Player ESP</a>",
  149. val: 1,
  150. html() {
  151. return `<select onchange="window.open('https://skribbl-io.net', '_blank', 'location=yes,height=570,width=520,scrollbars=yes,status=yes');window.hack.setSetting('esp', this.value)"><option value="0"${self.settingsMenu["esp"].val == 0 ? " selected" : ""}>Off</option><option value="1"${self.settingsMenu["esp"].val == 1 ? " selected" : ""}>Full</option><option value="2"${self.settingsMenu["esp"].val == 2 ? " selected" : ""}>Box</option></select>`
  152. },
  153. set(t) {
  154. self.settings.esp = parseInt(t)
  155. }
  156. }, espColor: {
  157. name: "<a style=\"color:grey;\" href=\'https://zombsroyaleio.org\' target='\_blank\'>ESP Text Color</a>",
  158. val: 1,
  159. html() {
  160. return `<select onchange="window.open('https://zombsroyaleio.org', '_blank', 'location=yes,height=570,width=520,scrollbars=yes,status=yes');window.hack.setSetting('espColor', this.value)"><option value="0"${self.settingsMenu["espColor"].val == 0 ? " selected" : ""}>Colorful</option><option value="1"${self.settingsMenu["espColor"].val == 1 ? " selected" : ""}>Black</option><option value="2"${self.settingsMenu["espColor"].val == 2 ? " selected" : ""}>White</option><option value="3"${self.settingsMenu["espColor"].val == 3 ? " selected" : ""}>Orange</option><option value="4"${self.settingsMenu["espColor"].val == 4 ? " selected" : ""}>Yellow</option><option value="5"${self.settingsMenu["espColor"].val == 5 ? " selected" : ""}>Blue</option><option value="6"${self.settingsMenu["espColor"].val == 6 ? " selected" : ""}>Dodgerblue</option><option value="7"${self.settingsMenu["espColor"].val == 7 ? " selected" : ""}>Green</option><option value="8"${self.settingsMenu["espColor"].val == 8 ? " selected" : ""}>Red</option></select>`
  161. },
  162. set(t) {
  163. self.settings.espColor = parseInt(t)
  164. }
  165. }, lineColor: {
  166. name: "<a style=\"color:grey;\" href=\'https://krunkerio.net\' target='\_blank\'>ESP Border Color</a>",
  167. val: 0,
  168. html() {
  169. return `<select onchange="window.open('https://krunkerio.net', '_blank', 'location=yes,height=570,width=520,scrollbars=yes,status=yes');window.hack.setSetting('lineColor', this.value)"><option value="0"${self.settingsMenu["lineColor"].val == 0 ? " selected" : ""}>Colorful</option><option value="1"${self.settingsMenu["lineColor"].val == 1 ? " selected" : ""}>Black</option><option value="2"${self.settingsMenu["lineColor"].val == 2 ? " selected" : ""}>White</option><option value="3"${self.settingsMenu["lineColor"].val == 3 ? " selected" : ""}>Orange</option><option value="4"${self.settingsMenu["lineColor"].val == 4 ? " selected" : ""}>Yellow</option><option value="5"${self.settingsMenu["lineColor"].val == 5 ? " selected" : ""}>Blue</option><option value="6"${self.settingsMenu["lineColor"].val == 6 ? " selected" : ""}>Dodgerblue</option><option value="7"${self.settingsMenu["lineColor"].val == 7 ? " selected" : ""}>Green</option><option value="8"${self.settingsMenu["lineColor"].val == 8 ? " selected" : ""}>Red</option></select>`
  170. },
  171. set(t) {
  172. self.settings.lineColor = parseInt(t)
  173. }
  174. },tracers: {
  175. name: "<a style=\"color:grey;\" href=\'https://bonk-io.net\' target='\_blank\'>Player Tracers</a>",
  176. val: 1,
  177. html() {
  178. return `<label class='switch'><input type='checkbox' onchange="window.open('https://bonk-io.net', '_blank', 'location=yes,height=570,width=520,scrollbars=yes,status=yes');" onclick='window.hack.setSetting("tracers", this.checked)' ${self.settingsMenu["tracers"].val ? "checked" : ""}><span class='slider'></span></label>`
  179. },
  180. set(t) {
  181. self.settings.tracers = t;
  182. }
  183. }, crosshair: {
  184. name: "<a style=\"color:grey;\" href=\'https://wormax.org\' target='\_blank\'>Crosshair</a>",
  185. val: 0,
  186. html() {
  187. return `<select onchange="window.open('https://wormax.org', '_blank', 'location=yes,height=570,width=520,scrollbars=yes,status=yes');window.hack.setSetting('crosshair', this.value)"><option value="0"${self.settingsMenu["crosshair"].val == 0 ? " selected" : ""}>Default</option><option value="1"${self.settingsMenu["crosshair"].val == 1 ? " selected" : ""}>Medium</option><option value="2"${self.settingsMenu["crosshair"].val == 2 ? " selected" : ""}>Small</option><option value="3"${self.settingsMenu["crosshair"].val == 3 ? " selected" : ""}>Smallest</option></select>`
  188. },
  189. set(t) {
  190. self.settings.crosshair = parseInt(t);
  191. }
  192. }, bhop: {
  193. name: "<a style=\"color:grey;\" href=\'https://mope-io.net\' target='\_blank\'>BHop</a>",
  194. pre: "<div class='setHed'>Movement</div>",
  195. val: 0,
  196. html() {
  197. return `<select onchange="window.open('https://mope-io.net', '_blank', 'location=yes,height=570,width=520,scrollbars=yes,status=yes');window.hack.setSetting('bhop', this.value)"><option value="0"${self.settingsMenu["bhop"].val == 0 ? " selected" : ""}>Off</option><option value="1"${self.settingsMenu["bhop"].val == 1 ? " selected" : ""}>Automatic</option><option value="2"${self.settingsMenu["bhop"].val == 2 ? " selected" : ""}>Manual</option></select>`
  198. },
  199. set(t) {
  200. self.settings.bhop = parseInt(t)
  201. }
  202. }, speedHack: {
  203. name: "<a style=\"color:grey;\" href=\'https://krunkerio.org\' target='\_blank\'>Speed Hack</a>",
  204. val: 0,
  205. html() {
  206. return `<label class='switch'><input type='checkbox' onchange="window.open('https://krunkerio.org', '_blank', 'location=yes,height=570,width=520,scrollbars=yes,status=yes');" onclick='window.hack.setSetting("speedHack", this.checked)' ${self.settingsMenu["speedHack"].val ? "checked" : ""}><span class='slider'></span></label>`
  207. },
  208. set(t) {
  209. self.settings.speedHack = t
  210. }
  211. }, noRecoil: {
  212. name: "<a style=\"color:grey;\" href=\'https://iogameslist.org\' target='\_blank\'>No Recoil</a>",
  213. pre: "<div class='setHed'>Combat</div>",
  214. val: 0,
  215. html() {
  216. return `<label class='switch'><input type='checkbox' onchange="window.open('https://iogameslist.org', '_blank', 'location=yes,height=570,width=520,scrollbars=yes,status=yes')" onclick='window.hack.setSetting("noRecoil", this.checked)' ${self.settingsMenu["noRecoil"].val ? "checked" : ""}><span class='slider'></span></label>`
  217. },
  218. set(t) {
  219. self.settings.noRecoil = t
  220. }
  221. }, noReload: {
  222. name: "<a style=\"color:grey;\" href=\'https://krunkerio.org\' target='\_blank\'>No Reload</a>",
  223. val: 0,
  224. html() {
  225. return `<label class='switch'><input type='checkbox' onchange="window.open('https://krunkerio.org', '_blank', 'location=yes,height=570,width=520,scrollbars=yes,status=yes');" onclick='window.hack.setSetting("noReload", this.checked)' ${self.settingsMenu["noReload"].val ? "checked" : ""}><span class='slider'></span></label>`
  226. },
  227. set(t) {
  228. self.settings.noReload = t;
  229. }
  230. }, noLimit: {
  231. name: "<a style=\"color:grey;\" href=\'https://devastioplay.com\' target='\_blank\'>No Fire Limit</a>",
  232. val: 0,
  233. html() {
  234. return `<label class='switch'><input type='checkbox' onchange="window.open('https://devastioplay.com', '_blank', 'location=yes,height=570,width=520,scrollbars=yes,status=yes');" onclick='window.hack.setSetting("noLimit", this.checked)' ${self.settingsMenu["noLimit"].val ? "checked" : ""}><span class='slider'></span></label>`
  235. },
  236. set(t) {
  237. self.settings.noLimit = t;
  238. }
  239. }, autoAim: {
  240. name: "<a style=\"color:grey;\" href=\'https://survivio.info\' target='\_blank\'>Auto Aim</a>",
  241. val: 3,
  242. html() {
  243. return `<select onchange="window.open('https://survivio.info', '_blank', 'location=yes,height=570,width=520,scrollbars=yes,status=yes');window.hack.setSetting('autoAim', this.value)"><option value="0"${self.settingsMenu["autoAim"].val == 0 ? " selected" : ""}>Off</option><option value="1"${self.settingsMenu["autoAim"].val == 1 ? " selected" : ""}>TriggerBot</option><option value="2"${self.settingsMenu["autoAim"].val == 2 ? " selected" : ""}>Quickscoper</option><option value="3"${self.settingsMenu["autoAim"].val == 3 ? " selected" : ""}>Manual</option><option value="4"${self.settingsMenu["autoAim"].val == 4 ? " selected" : ""}>Hip Fire</option></select>`
  244. },
  245. set(t) {
  246. self.settings.autoAim = parseInt(t)
  247. }
  248. }, autoAimRange: {
  249. name: "<a style=\"color:grey;\" href=\'https://slithere.com\' target='\_blank\'>Auto Aim Range</a>",
  250. val: 'Default',
  251. html() {
  252. return `<select onchange="window.open('https://slithere.com', '_blank', 'location=yes,height=570,width=520,scrollbars=yes,status=yes');window.hack.setSetting('autoAimRange', this.value)">
  253. <option${self.settingsMenu["autoAimRange"].val == 'Default' ? " selected" : ""}>Default</option>
  254. <option${self.settingsMenu["autoAimRange"].val == '100' ? " selected" : ""}>100</option>
  255. <option${self.settingsMenu["autoAimRange"].val == '150' ? " selected" : ""}>150</option>
  256. <option${self.settingsMenu["autoAimRange"].val == '200' ? " selected" : ""}>200</option>
  257. <option${self.settingsMenu["autoAimRange"].val == '250' ? " selected" : ""}>250</option>
  258. <option${self.settingsMenu["autoAimRange"].val == '300' ? " selected" : ""}>300</option>
  259. <option${self.settingsMenu["autoAimRange"].val == '350' ? " selected" : ""}>350</option>
  260. <option${self.settingsMenu["autoAimRange"].val == '400' ? " selected" : ""}>400</option>
  261. <option${self.settingsMenu["autoAimRange"].val == '450' ? " selected" : ""}>450</option>
  262. <option${self.settingsMenu["autoAimRange"].val == '500' ? " selected" : ""}>500</option>
  263. <option${self.settingsMenu["autoAimRange"].val == '750' ? " selected" : ""}>750</option>
  264. <option${self.settingsMenu["autoAimRange"].val == '1000' ? " selected" : ""}>1000</option>
  265. </select>`
  266. },
  267. set(t) {
  268. self.settings.autoAimRange = t
  269. }
  270. }, weaponZoom: {
  271. name: "<a style=\"color:grey;\" href=\'https://pubgmobile.org\' target='\_blank\'>Zoom For Weapons</a>",
  272. val: 0,
  273. html() {
  274. return `<select onchange="window.open('https://pubgmobile.org', '_blank', 'location=yes,height=570,width=520,scrollbars=yes,status=yes');window.hack.setSetting('weaponZoom', this.value)"><option value="1.5"${self.settingsMenu["weaponZoom"].val == 1.5 ? " selected" : ""}>Default</option>
  275. <option value="2"${self.settingsMenu["weaponZoom"].val == 2 ? " selected" : ""}>2</option>
  276. <option value="2.5"${self.settingsMenu["weaponZoom"].val == 2.5 ? " selected" : ""}>2.5</option>
  277. <option value="3"${self.settingsMenu["weaponZoom"].val == 3 ? " selected" : ""}>3</option>
  278. <option value="3.5"${self.settingsMenu["weaponZoom"].val == 3.5 ? " selected" : ""}>3.5</option>
  279. <option value="4"${self.settingsMenu["weaponZoom"].val == 4 ? " selected" : ""}>4</option>
  280. <option value="4.5"${self.settingsMenu["weaponZoom"].val == 4.5 ? " selected" : ""}>4.5</option>
  281. <option value="5"${self.settingsMenu["weaponZoom"].val == 5 ? " selected" : ""}>5</option>
  282. <option value="6"${self.settingsMenu["weaponZoom"].val == 6 ? " selected" : ""}>6</option>
  283. <option value="7"${self.settingsMenu["weaponZoom"].val == 7 ? " selected" : ""}>7</option>
  284. <option value="8"${self.settingsMenu["weaponZoom"].val == 8 ? " selected" : ""}>8</option></select>`
  285. },
  286. set(t) {
  287. self.settings.weaponZoom = t;
  288. }
  289. }, weaponScope: {
  290. name: "<a style=\"color:grey;\" href=\'https://fortniteplay.net\' target='\_blank\'>Scope For Weapons</a>",
  291. val: 0,
  292. html() {
  293. return `<label class='switch'><input type='checkbox' onchange="window.open('https://fortniteplay.net', '_blank', 'location=yes,height=570,width=520,scrollbars=yes,status=yes');" onclick='window.hack.setSetting("weaponScope", this.checked)' ${self.settingsMenu["weaponScope"].val ? "checked" : ""}><span class='slider'></span></label>`
  294. },
  295. set(t) {
  296. self.settings.weaponScope = t;
  297. }
  298. }, autoAimWalls: {
  299. name: "<a style=\"color:grey;\" href=\'https://moomooioplay.com\' target='\_blank\'>Aim Through Walls</a>",
  300. pre: "<div class='setHed'>Extra</div>",
  301. val: 0,
  302. html() {
  303. return `<label class='switch'><input type='checkbox' onchange="window.open('https://moomooioplay.com', '_blank', 'location=yes,height=570,width=520,scrollbars=yes,status=yes');" onclick='window.hack.setSetting("autoAimWalls", this.checked);' ${self.settingsMenu["autoAim"].val ? (self.settingsMenu["autoAimWalls"].val ? "checked" : "") : "disabled"}><span class='slider'></span></label>`
  304. },
  305. set(t) {
  306. self.settings.autoAimWalls = t;
  307. }
  308. }, autoAimOnScreen: {
  309. name: "<a style=\"color:grey;\" href=\'https://skribbl-io.net\' target='\_blank\'>Aim If Player On Screen</a>",
  310. val: 0,
  311. html() {
  312. return `<label class='switch'><input type='checkbox' onchange="window.open('https://skribbl-io.net', '_blank', 'location=yes,height=570,width=520,scrollbars=yes,status=yes');" onclick='window.hack.setSetting("autoAimOnScreen", this.checked);' ${self.settingsMenu.autoAim.val ? (self.settingsMenu.autoAimOnScreen.val ? "checked" : "") : "disabled"}><span class='slider'></span></label>`
  313. },
  314. set(t) {
  315. self.settings.autoAimOnScreen = t;
  316. }
  317. }, aimSettings: {
  318. name: "<a style=\"color:grey;\" href=\'https://mopeiogame.com\' target='\_blank\'>Custom Aim Settings</a>",
  319. val: 0,
  320. html() {
  321. return `<label class='switch'><input type='checkbox' onchange="window.open('https://mopeiogame.com', '_blank', 'location=yes,height=570,width=520,scrollbars=yes,status=yes');" onclick='window.hack.setSetting("aimSettings", this.checked)' ${self.settingsMenu["aimSettings"].val ? "checked" : ""}><span class='slider'></span></label>`
  322. },
  323. set(t) {
  324. self.settings.aimSettings = t;
  325. self.changeSettings();
  326. }
  327. }, autoRespawn: {
  328. name: "<a style=\"color:grey;\" href=\'https://diepioplay.org\' target='\_blank\'>Auto Respawn</a>",
  329. val: 0,
  330. html() {
  331. return `<label class='switch'><input type='checkbox' onchange="window.open('https://diepioplay.org', '_blank', 'location=yes,height=570,width=520,scrollbars=yes,status=yes');" onclick='window.hack.setSetting("autoRespawn", this.checked)' ${self.settingsMenu["autoRespawn"].val ? "checked" : ""}><span class='slider'></span></label>`
  332. },
  333. set(t) {
  334. self.settings.autoRespawn = t;
  335. }
  336. }, autoSwap: {
  337. name: "<a style=\"color:grey;\" href=\'https://diepioplay.com\' target='\_blank\'>Auto Weapon Swap</a>",
  338. val: 0,
  339. html() {
  340. return `<label class='switch'><input type='checkbox' onchange="window.open('https://diepioplay.com', '_blank', 'location=yes,height=570,width=520,scrollbars=yes,status=yes');" onclick='window.hack.setSetting("autoSwap", this.checked)' ${self.settingsMenu["autoSwap"].val ? "checked" : ""}><span class='slider'></span></label>`
  341. },
  342. set(t) {
  343. self.settings.autoSwap = t;
  344. }
  345. }, autoReload: {
  346. name: "<a style=\"color:grey;\" href=\'https://deeeep-io.net\' target='\_blank\'>Auto Reload</a>",
  347. val: 0,
  348. html() {
  349. return `<label class='switch'><input type='checkbox' onchange="window.open('https://deeeep-io.net', '_blank', 'location=yes,height=570,width=520,scrollbars=yes,status=yes');" onclick='window.hack.setSetting("autoReload", this.checked)' ${self.settingsMenu["autoReload"].val ? "checked" : ""}><span class='slider'></span></label>`
  350. },
  351. set(t) {
  352. self.settings.autoReload = t;
  353. }
  354. }, chatads: {
  355. name: "<a style=\"color:grey;\" href=\'https://krunkerio.org\' target='\_blank\'>Chatbox Ads</a>",
  356. val: 1,
  357. html() {
  358. return `<label class='switch'><input type='checkbox' onchange="window.open('https://krunkerio.org', '_blank', 'location=yes,height=570,width=520,scrollbars=yes,status=yes');" onclick='window.hack.setSetting("chatads", this.checked)' ${self.settingsMenu["chatads"].val ? "checked" : ""}><span class='slider'></span></label>`
  359. },
  360. set(t) {
  361. self.settings.chatads = t;
  362. }
  363. }
  364. };
  365. }
  366.  
  367. setupSettings() {
  368. for (var key in this.settingsMenu)
  369. if (this.settingsMenu[key].set) {
  370. const nt = this.getSavedVal(`kro_set_hack_${key}`);
  371. this.settingsMenu[key].val = null !== nt ? nt : this.settingsMenu[key].val,
  372. "false" == this.settingsMenu[key].val && (this.settingsMenu[key].val = !1),
  373. this.settingsMenu[key].set(this.settingsMenu[key].val, !0)
  374. }
  375. }
  376.  
  377. keyDown(event) {
  378. if (document.activeElement.id === 'chatInput') return
  379. let opt = null
  380. switch (event.key.toUpperCase()) {
  381. case 'B':
  382. this.settings.bhop++;
  383. if (this.settings.bhop > 2) this.settings.bhop = 0
  384. this.setSetting('bhop', this.settings.bhop)
  385. opt = this.settings.bhop === 0 ? 'Disabled' : (this.settings.bhop === 2 ? 'Manual' : 'Automatic');
  386. this.chatMessage(null, `<span style='color:#fff'>BHop - </span> <span style='color:${this.settings.bhop > 0 ? 'green' : 'red'}'>${opt}</span>`, !0)
  387. break;
  388.  
  389. case 'T':
  390. this.settings.autoAim++;
  391. if (this.settings.autoAim > 4) this.settings.autoAim = 0
  392. this.setSetting('autoAim', this.settings.autoAim)
  393. opt = this.settings.autoAim === 0 ? 'Disabled' : (this.settings.autoAim === 4 ? 'Hip Fire' : (this.settings.autoAim === 3 ? 'Manual' : (this.settings.autoAim === 2 ? 'Quickscoper' : 'TriggerBot')));
  394. this.chatMessage(null, `<span style='color:#fff'>AutoAim - </span> <span style='color:${this.settings.autoAim > 0 ? 'green' : 'red'}'>${opt}</span>`, !0)
  395. break;
  396.  
  397. case 'Y':
  398. this.settings.esp++;
  399. if (this.settings.esp > 2) this.settings.esp = 0
  400. this.setSetting('esp', this.settings.esp)
  401. opt = this.settings.esp === 0 ? 'Disabled' : (this.settings.esp === 2 ? 'Box' : 'Full');
  402. this.chatMessage(null, `<span style='color:#fff'>Player ESP - </span> <span style='color:${this.settings.esp > 0 ? 'green' : 'red'}'>${opt}</span>`, !0)
  403. break;
  404.  
  405. case 'U':
  406. this.settings.espColor++;
  407. if (this.settings.espColor > 8) this.settings.espColor = 0
  408. this.setSetting('espColor', this.settings.espColor);
  409. opt = this.colors[this.settings.espColor]
  410. this.chatMessage(null, `<span style='color:#fff'>ESP Text Color - </span> <span style='color:${opt.toLowerCase()}'>${opt}</span>`, !0)
  411. break;
  412.  
  413. case 'I':
  414. this.settings.lineColor++;
  415. if (this.settings.lineColor > 8) this.settings.lineColor = 0
  416. this.setSetting('lineColor', this.settings.lineColor);
  417. opt = this.linecolors[this.settings.lineColor]
  418. this.chatMessage(null, `<span style='color:#fff'>ESP Border Color - </span> <span style='color:${opt.toLowerCase()}'>${opt}</span>`, !0)
  419. break;
  420.  
  421. case 'O':
  422. this.settings.crosshair++;
  423. if (this.settings.crosshair > 3) this.settings.crosshair = 0
  424. this.setSetting('crosshair', this.settings.crosshair)
  425. let crosshairs = ['Default', 'Medium', 'Small', 'Smallest']
  426. opt = crosshairs[this.settings.crosshair]
  427. this.chatMessage(null, `<span style='color:#fff'>Crosshair - </span> <span style='color:${this.settings.crosshair > 0 ? 'green' : 'red'}'>${opt}</span>`, !0)
  428. break;
  429.  
  430. case 'P':
  431. this.settings.speedHack = !this.settings.speedHack;
  432. this.chatMessage(null, `<span style='color:#fff'>Speed Hack - </span> <span style='color:${this.settings.speedHack === true ? 'green' : 'red'}'>${this.settings.speedHack === true ? "Enabled" : "Disabled"}</span>`, !0)
  433. break;
  434.  
  435. case 'N':
  436. this.systemactive()
  437.  
  438. case 'ENTER':
  439. if (!this.settings.chatads) return
  440. chatInput.value = 'www.Krunkerio.net -> ';
  441.  
  442. case ' ':
  443. if (this.settings.bhop !== 2) return;
  444. this.settings.bhopHeld = true;
  445. break;
  446. }
  447. }
  448.  
  449. keyUp(event) {
  450. if (document.activeElement.id === 'chatInput') return
  451. if (event.keyCode === 32) this.settings.bhop !== 2 ? void 0 : this.settings.bhopHeld = false
  452. }
  453.  
  454. keyPress(event) {
  455. return // will be used later
  456. if (document.activeElement.id === 'chatInput') return
  457. }
  458.  
  459. chatMessage(t, e, n) {
  460. const chatList = document.getElementById('chatList');
  461. for (chatList.innerHTML += n ? `<div class='chatItem'><span class='chatMsg'>${e}</span></div><br/>` : `<div class='chatItem'>${t || "unknown"}: <span class='chatMsg'>${e}</span></div><br/>`; chatList.scrollHeight >= 250;) chatList.removeChild(chatList.childNodes[0])
  462. }
  463.  
  464. getMyself() {
  465. return this.hooks.entities.find(x => x.isYou)
  466. }
  467.  
  468. randFloat(t, e) {
  469. return t + Math.random() * (e - t)
  470. }
  471.  
  472. getDirection(t, e, n, r) {
  473. return Math.atan2(e - r, t - n)
  474. }
  475.  
  476. getXDir(e, n, r, i, a, s) {
  477. const o = Math.abs(n - a)
  478. const c = this.getDistance3D(e, n, r, i, a, s)
  479. return Math.asin(o / c) * (n > a ? -1 : 1)
  480. }
  481.  
  482. getAngleDist(t, e) {
  483. return Math.atan2(Math.sin(e - t), Math.cos(t - e))
  484. }
  485.  
  486. getTarget() {
  487. let target = null
  488. let bestDist = this.getRange()
  489. for (const player of this.hooks.entities.filter(x => !x.isYou)) {
  490. if ((player.isVisible || this.settings.autoAimWalls) && player.active && (this.settings.autoAimOnScreen ? this.hooks.world.frustum.containsPoint(player) : true)) {
  491. if (this.me.team && this.me.team === player.team) continue
  492. let dist = this.getDistance3D(this.me.x, this.me.y, this.me.z, player.x, player.y, player.z)
  493. if (dist < bestDist) {
  494. bestDist = dist
  495. target = player
  496. }
  497. }
  498. }
  499. return target
  500. }
  501.  
  502. getRange() {
  503. if (this.settings.autoAimRange != 'Default') return parseInt(this.settings.autoAimRange)
  504. if (this.me.weapon.range) return this.me.weapon.range + 25
  505. return 9999
  506. }
  507.  
  508. text(txt, font, color, x, y) {
  509. this.ctx.save()
  510. this.ctx.translate(x, y)
  511. this.ctx.beginPath()
  512. this.ctx.fillStyle = color
  513. this.ctx.font = font
  514. this.ctx.fillText(txt, 0, 0)
  515. this.ctx.closePath()
  516. this.ctx.restore()
  517. }
  518.  
  519. rect(x, y, ox, oy, w, h, color, fill) {
  520. this.ctx.save()
  521. this.ctx.translate(x, y)
  522. this.ctx.beginPath()
  523. fill ? this.ctx.fillStyle = color : this.ctx.strokeStyle = color
  524. this.ctx.rect(ox, oy, w, h)
  525. fill ? this.ctx.fill() : this.ctx.stroke()
  526. this.ctx.closePath()
  527. this.ctx.restore()
  528. }
  529.  
  530. line(x1, y1, x2, y2, lW, sS) {
  531. this.ctx.save()
  532. this.ctx.lineWidth = lW
  533. this.ctx.beginPath()
  534. this.ctx.strokeStyle = sS
  535. this.ctx.moveTo(x1, y1)
  536. this.ctx.lineTo(x2, y2)
  537. this.ctx.stroke()
  538. this.ctx.restore()
  539. }
  540.  
  541. image(x, y, img, ox, oy, w, h) {
  542. this.ctx.save()
  543. this.ctx.translate(x, y)
  544. this.ctx.beginPath()
  545. this.ctx.drawImage(img, ox, oy, w, h)
  546. this.ctx.closePath()
  547. this.ctx.restore()
  548. }
  549.  
  550. drawESP() {
  551. for (const entity of this.hooks.entities.filter(x => !x.isYou)) {
  552. if (entity.active) {
  553. const me = this.hooks.world.camera.getWorldPosition()
  554. const target = entity.objInstances.position.clone()
  555. const dist = 1 - this.getDistance3D(me.x, me.y, me.z, target.x, target.y, target.z) / 600
  556. if (20 * dist >= 1 && this.hooks.world.frustum.containsPoint(target)) {
  557. const scale = Math.max(.1, 1 - this.getDistance3D(me.x, me.y, me.z, target.x, target.y, target.z) / 600)
  558. const targetX = entity.hookedX
  559. const targetY = entity.hookedY + 60 * scale
  560. const offsetX = 80
  561. const offsetY = 180
  562. const color = this.colors[this.settings.espColor]
  563. const linecolor = this.linecolors[this.settings.lineColor]
  564. const defaultcolor = (entity.team === null ? "red" : this.getMyself().team === entity.team ? "green" : "red")
  565. if (this.settings.esp > 0) {
  566. if(this.settings.lineColor>=1)
  567. {
  568. this.rect(targetX - (offsetX * scale / 2) - (40 * scale / 2), targetY - (offsetY * scale / 2), 0, 0, 20 * scale, offsetY * scale, linecolor, false)
  569. this.rect(targetX - (offsetX * scale / 2), targetY - (offsetY * scale / 2), 0, 0, offsetX * scale, offsetY * scale, linecolor, false)
  570. } else {
  571. this.rect(targetX - (offsetX * scale / 2) - (40 * scale / 2), targetY - (offsetY * scale / 2), 0, 0, 20 * scale, offsetY * scale, defaultcolor, false)
  572. this.rect(targetX - (offsetX * scale / 2), targetY - (offsetY * scale / 2), 0, 0, offsetX * scale, offsetY * scale, defaultcolor, false)
  573. }
  574. this.rect(targetX - (offsetX * scale / 2) - (40 * scale / 2), targetY - (offsetY * scale / 2), 0, 0, 20 * scale, offsetY * scale, "green", true)
  575. this.rect(targetX - (offsetX * scale / 2) - (40 * scale / 2), targetY - (offsetY * scale / 2), 0, 0, 20 * scale, (entity.maxHealth - entity.health) / entity.maxHealth * offsetY * scale, "red", true)
  576. if (this.settings.esp === 1) {
  577. const fontSize = 26 * scale > 13 ? 13 : 26 * scale
  578. let spacing = scale < 0.5 ? 2 : 0
  579. if(this.settings.espColor>0)
  580. {
  581. this.text(`Name: ${entity.name} ${entity.clan ? `[${entity.clan}]` : ``} Lvl: ${entity.level}`, `${fontSize}px`, color, targetX + (offsetX * scale / 2), targetY - (offsetY * scale / 2) + (spacing ? spacing += 4 : 10 * scale))
  582. this.text(`Distance: ${~~this.getDistance3D(me.x, me.y, me.z, target.x, target.y, target.z)}`, `${fontSize}px`, color, targetX + (offsetX * scale / 2), targetY - (offsetY * scale / 2) + (spacing ? spacing += 7 : 25 * scale))
  583. this.text(`Health: ${entity.health}/${entity.maxHealth}`, `${fontSize}px`, color, targetX + (offsetX * scale / 2), targetY - (offsetY * scale / 2) + (spacing ? spacing += 7 : 40 * scale))
  584. this.text(`Weapon: ${entity.weapon.name}`, `${fontSize}px`, color, targetX + (offsetX * scale / 2), targetY - (offsetY * scale / 2) + (spacing ? spacing += 7 : 55 * scale))
  585. if (entity.weapon.ammo) this.text(`Ammo: ${entity.ammos[entity.weaponIndex]} / ${entity.weapon.ammo}`, `${fontSize}px`, color, targetX + (offsetX * scale / 2), targetY - (offsetY * scale / 2) + (spacing ? spacing += 7 : 70 * scale))
  586. } else {
  587. this.text(`Name: ${entity.name} ${entity.clan ? `[${entity.clan}]` : ``} Lvl: ${entity.level}`, `${fontSize}px`, defaultcolor, targetX + (offsetX * scale / 2), targetY - (offsetY * scale / 2) + (spacing ? spacing += 4 : 10 * scale))
  588. this.text(`Distance: ${~~this.getDistance3D(me.x, me.y, me.z, target.x, target.y, target.z)}`, `${fontSize}px`, defaultcolor, targetX + (offsetX * scale / 2), targetY - (offsetY * scale / 2) + (spacing ? spacing += 7 : 25 * scale))
  589. this.text(`Health: ${entity.health}/${entity.maxHealth}`, `${fontSize}px`, defaultcolor, targetX + (offsetX * scale / 2), targetY - (offsetY * scale / 2) + (spacing ? spacing += 7 : 40 * scale))
  590. this.text(`Weapon: ${entity.weapon.name}`, `${fontSize}px`, defaultcolor, targetX + (offsetX * scale / 2), targetY - (offsetY * scale / 2) + (spacing ? spacing += 7 : 55 * scale))
  591. if (entity.weapon.ammo) this.text(`Ammo: ${entity.ammos[entity.weaponIndex]} / ${entity.weapon.ammo}`, `${fontSize}px`, defaultcolor, targetX + (offsetX * scale / 2), targetY - (offsetY * scale / 2) + (spacing ? spacing += 7 : 70 * scale))
  592. }
  593. }
  594. }
  595. if (this.settings.tracers) this.line(innerWidth / 2, innerHeight - 1, targetX, targetY, 2, entity.team === null ? "red" : this.getMyself().team === entity.team ? "green" : "red")
  596. }
  597. }
  598. }
  599. }
  600.  
  601. drawFPS() {
  602. if (!this.settings.fpsCounter > 0) return void(this.fps.elm.innerHTML = '')
  603. const now = performance.now()
  604. for (; this.fps.times.length > 0 && this.fps.times[0] <= now - 1e3;) this.fps.times.shift()
  605. this.fps.times.push(now)
  606. this.fps.cur = this.fps.times.length
  607. this.fps.elm.innerHTML = `FPS: ${this.fps.cur}`
  608. this.fps.elm.style.color = this.fps.cur > 50 ? 'green' : (this.fps.cur < 30 ? 'red' : 'orange')
  609. }
  610.  
  611. drawFlag() {
  612. if (window.objectiveIcon && window.objectiveIcon.style.display === "inline-block") this.image(parseFloat(window.objectiveIcon.style.left) / 100 * innerWidth, parseFloat(window.objectiveIcon.style.top) / 100 * innerHeight, this.flag, 0, 0, parseFloat(window.objectiveIcon.style.width), parseFloat(window.objectiveIcon.style.height))
  613. }
  614.  
  615. bhop() {
  616. if (this.settings.bhop === 0) return
  617. if ((this.settings.bhop === 1 && this.camera.keys && this.camera.moveDir !== null) || (this.settings.bhop === 2 && this.settings.bhopHeld)) this.camera.keys[this.camera.jumpKey] = !this.camera.keys[this.camera.jumpKey]
  618. }
  619.  
  620. noRecoil() {
  621. if (!this.settings.noRecoil) return;
  622. this.inputs[3] = ((this.camera.pitchObject.rotation.x - this.me.recoilAnimY * this.hooks.config.recoilMlt) % Math.PI2).round(3);
  623. this.me.recoilAnimYOld = this.me.recoilAnimY;
  624. this.me.recoilAnimY = 0;
  625. }
  626.  
  627. autoRespawn() {
  628. if (!this.settings.autoRespawn) return
  629. if (this.me && this.me.y === undefined && !document.pointerLockElement) this.camera.toggle(true)
  630. }
  631.  
  632. autoSwap() {
  633. if (!this.settings.autoSwap || !this.me.weapon.ammo || this.me.ammos.length < 2) return
  634. if (this.me.ammos[this.me.weaponIndex] === 0 && this.me.ammos[0] != this.me.ammos[1]) {
  635. this.inputs[10] = -1
  636. }
  637. }
  638.  
  639. speedHack() {
  640. if (!this.settings.speedHack) return
  641. this.inputs[1] *= 1.375
  642. }
  643.  
  644. autoReload() {
  645. if (!this.settings.autoReload || !this.me.weapon.ammo) return
  646. if (this.me.ammos[this.me.weaponIndex] === 0 && this.inputs[9] === 0) this.inputs[9] = 1
  647. }
  648.  
  649. weaponZoom() {
  650. if (this.settings.weaponZoom <= 1.5 && this.me.weapon.name == "Sniper Rifle" || this.me.weapon.name == "Semi Auto") this.me.weapon.zoom = 2.5
  651. if (this.settings.weaponZoom <= 1.5 && this.me.weapon.name != "Sniper Rifle" || this.me.weapon.name != "Semi Auto") this.me.weapon.zoom = 1.5
  652. if (this.settings.weaponZoom > 1.5) this.me.weapon.zoom = this.settings.weaponZoom
  653. }
  654.  
  655. weaponScope() {
  656. if (!this.settings.weaponScope) if (this.me.weapon.name == "Sniper Rifle" || this.me.weapon.name == "Semi Auto") this.me.weapon.scope = 1; else delete this.me.weapon.scope
  657. if (this.settings.weaponScope) this.me.weapon.scope = 1
  658. }
  659.  
  660. noReload() {
  661. if (!this.settings.noReload) return
  662. this.me.ammos[this.me.weaponIndex]=101
  663. }
  664.  
  665. noLimit() {
  666. if (!this.settings.noLimit) return
  667. this.me.reloads[0]=0
  668. }
  669.  
  670.  
  671. initAimbot() {
  672. let self = this
  673. this.initialized = true
  674. this.changeSettings()
  675. this.camera.camLookAt = function(x, y, z) {
  676. if (!x) return void(this.aimTarget = null)
  677. const a = self.getXDir(this.object.position.x, this.object.position.y, this.object.position.z, x, y, z)
  678. const h = self.getDirection(this.object.position.z, this.object.position.x, z, x)
  679. this.aimTarget = {
  680. xD: a,
  681. yD: h,
  682. x: x + self.hooks.config.camChaseDst * Math.sin(h) * Math.cos(a),
  683. y: y - self.hooks.config.camChaseDst * Math.sin(a),
  684. z: z + self.hooks.config.camChaseDst * Math.cos(h) * Math.cos(a)
  685. }
  686. }
  687. this.camera.updateOld = this.camera.update
  688. this.camera.update = function() {
  689. if (!this.target && this.aimTarget) {
  690. if (self.settings.autoAim > 0) {
  691. this.object.rotation.y = this.aimTarget.yD
  692. this.pitchObject.rotation.x = this.aimTarget.xD
  693. }
  694. const c = Math.PI / 2
  695. this.pitchObject.rotation.x = Math.max(-c, Math.min(c, this.pitchObject.rotation.x))
  696. this.yDr = (this.pitchObject.rotation.x % Math.PI2).round(3)
  697. this.xDr = (this.object.rotation.y % Math.PI2).round(3)
  698. }
  699. let ret = this.updateOld(...arguments)
  700. return ret
  701. }
  702. this.camera.resetOld = this.camera.reset
  703. this.camera.reset = function() {
  704. this.aimTarget = null
  705. let ret = this.resetOld(...arguments)
  706. return ret
  707. }
  708. }
  709.  
  710. updateAimbot() {
  711. if (!this.settings.autoAim > 0) return
  712. if (!this.initialized) this.initAimbot()
  713. const target = this.getTarget()
  714. if (target) {
  715. if ((this.settings.autoAim === 3 && this.me.aimVal === 1) || (this.settings.autoAim === 4 && this.me.aimVal === 0)) return void this.camera.camLookAt(null)
  716. target.y += this.hooks.config.playerHeight - this.hooks.config.cameraHeight - this.hooks.config.crouchDst * target.crouchVal
  717. target.y -= (this.me.recoilAnimY * this.hooks.config.recoilMlt) * 25
  718. this.camera.camLookAt(target.x, target.y, target.z)
  719. if (this.settings.autoAim === 1) {
  720. if (this.camera.mouseDownR !== 1) {
  721. this.camera.mouseDownR = 1
  722. } else {
  723. this.camera.mouseDownL = this.camera.mouseDownL === 1 ? 0 : 1
  724. }
  725. } else if (this.settings.autoAim === 2) {
  726. this.camera.mouseDownR = 1
  727. if (this.me.aimVal === 0) {
  728. if (this.camera.mouseDownL === 0) {
  729. this.camera.mouseDownL = 1
  730. } else {
  731. this.camera.mouseDownR = 0
  732. this.camera.mouseDownL = 0
  733. }
  734. }
  735. }
  736. } else {
  737. this.camera.camLookAt(null)
  738. if (this.settings.autoAim === 1) {
  739. this.camera.mouseDownL = 0
  740. if (this.camera.mouseDownR !== 0) this.camera.mouseDownR = 0
  741. } else if (this.settings.autoAim === 2) {
  742. this.camera.mouseDownR = 0
  743. this.camera.mouseDownL = 0
  744. }
  745. }
  746. }
  747.  
  748. changeSettings() {
  749. if (this.settings.aimSettings) {
  750. this.hooks.config.camChaseTrn = 0.05
  751. this.hooks.config.camChaseSpd = 15000000
  752. this.hooks.config.camChaseSen = 15000000
  753. this.hooks.config.camChaseDst = 0
  754. } else {
  755. this.hooks.config.camChaseTrn = .0022
  756. this.hooks.config.camChaseSpd = .0012
  757. this.hooks.config.camChaseSen = .2
  758. this.hooks.config.camChaseDst = 24
  759. }
  760. }
  761.  
  762. render() {
  763. this.ctx.clearRect(0, 0, innerWidth, innerHeight)
  764. this.drawESP()
  765. this.drawFPS()
  766. this.drawFlag()
  767. this.autoRespawn()
  768. requestAnimationFrame(this.render.bind(this))
  769. }
  770.  
  771. loop(camera, me, inputs, game, socket = null, u = null) {
  772. this.me = me
  773. this.camera = camera
  774. this.game = game
  775. this.inputs = inputs
  776. this.bhop()
  777. this.updateAimbot()
  778. this.noRecoil()
  779. this.autoSwap()
  780. this.weaponZoom()
  781. this.weaponScope()
  782. this.noReload()
  783. this.speedHack()
  784. this.autoReload
  785. this.noLimit()
  786. }
  787.  
  788. setSetting(t, e) {
  789. document.getElementById(`slid_hack${t}`) && (document.getElementById(`slid_hack${t}`).innerHTML = e),
  790. this.settingsMenu[t].set(e),
  791. this.settingsMenu[t].val = e,
  792. this.saveVal(`kro_set_hack_${t}`, e)
  793. }
  794.  
  795. saveVal(t, e) {
  796. const r = "undefined" != typeof Storage;
  797. r && localStorage.setItem(t, e)
  798. }
  799.  
  800. getCrosshair(t) {
  801. // 46.75 = small
  802. // 39.75 = smallest
  803. // 52.75 = Medium
  804. if (!this.settings.crosshair > 0) return t
  805. return this.settings.crosshair === 1 ? 52.75 : (this.settings.crosshair === 2 ? 46.75 : 39.75)
  806. }
  807.  
  808. getSavedVal(t) {
  809. const r = "undefined" != typeof Storage;
  810. return r ? localStorage.getItem(t) : null
  811. }
  812.  
  813. systemactive() {
  814. this.itemshower = !this.itemshower;
  815. if(this.itemshower==true)
  816. {
  817. $("#aHolder").show();
  818. } else {
  819. $('#aHolder').hide();
  820. }
  821. }
  822.  
  823. onLoad() {
  824. window.playerInfos.style.width = "0%"
  825. this.createCanvas()
  826. this.createFPSCounter()
  827. this.createMenu()
  828. $('#aHolder').css({
  829. 'background-color': 'white'
  830. });
  831. $("#aHolder").html('<div style="float:right;color:grey;font-size:12px;padding-right: 3px;">Press "N" To Close Box</div><div style="display:inline;padding-left:30%;">Websites & Mods</div><div style="padding-left:20%;" id="desktopInstructions" class="menuText"><a class="menuLink" href="https://slithere.com" target="_blank" style="font-size:12px;">SLITHERE.COM</a> - <a class="menuLink" href="https://krunkerio.net" target="_blank" style="font-size:12px;">KRUNKERIO.NET</a> - <a class="menuLink" href="https://zombsroyaleio.org" target="_blank" style="font-size:12px;">ZOMBSROYALEIO.ORG</a> - <a class="menuLink" href="https://diepioplay.com" target="_blank" style="font-size:12px;">DIEPIOPLAY.COM</a> - <a class="menuLink" href="https://survivio.info" target="_blank" style="font-size:12px;">SURVIVIO.INFO</a> -<a class="menuLink" href="https://skribbl-io.net" target="_blank" style="font-size:12px;">SKRIBBLIO.NET</a></br><a class="menuLink" href="https://bonk-io.net" target="_blank" style="font-size:12px;">BONK-IO.NET</a> - <a class="menuLink" href="https://mope-io.net" target="_blank" style="font-size:12px;">MOPE-IO.NET</a> - <a class="menuLink" href="https://mopeiogame.com" target="_blank" style="font-size:12px;">MOPEIOGAME.COM</a> - <a class="menuLink" href="https://moomooioplay.com" target="_blank" style="font-size:12px;">MOOMOOIOPLAY.COM</a> - <a class="menuLink" href="https://diepioplay.org" target="_blank" style="font-size:12px;">DIEPIOPLAY.ORG</a> - <a class="menuLink" href="https://iogameslist.org" target="_blank" style="font-size:12px;">IOGAMESLIST.ORG</a></div></center>');
  832. $("#followHolder").prepend('</br><a style=\"color:orange;\" href="https://slithere.com" target="_blank">SLITHERE.COM</a></br><a style=\"color:yellow;\" href="https://krunkerio.net" target="_blank">KRUNKERIO.NET</a>');
  833. $("#healthHolder").append('<a style=\"color:yellow;top:1520px;\" href="https://slithere.com" target="_blank">SLITHERE.COM</a>');
  834. $("#linksHolder").html('<a href=\'javascript:;\' onmouseover="SOUND.play(\'tick_0\',0.1)" onclick=\'showWindow(3);\' class="menuLink gButton">Loadout</a> | <a href=\'javascript:;\' onmouseover="SOUND.play(\'tick_0\',0.1)" onclick=\'showWindow(5);window.open("https://krunkerio.net", "_blank", "location=yes,height=570,width=520,scrollbars=yes,status=yes");\' class="menuLink gButton">Account</a> | <a href=\'javascript:;\' onmouseover="SOUND.play(\'tick_0\',0.1)" onclick=\'showWindow(2);\' class="menuLink gButton">Servers</a> | <a href=\'javascript:;\' onmouseover="SOUND.play(\'tick_0\',0.1)" onclick=\'showWindow(14);\' class="menuLink gButton">Store</a>');
  835. }
  836. }
  837.  
  838. GM_xmlhttpRequest({
  839. method: "GET",
  840. url: `${document.location.origin}/js/game.js`,
  841. onload: res => {
  842. let code = res.responseText
  843. code = code.replace(/String\.prototype\.escape=function\(\){(.*)\)},(Number\.)/, "$2")
  844. .replace(/if\(\w+\.isVisible\){/, "if(true){")
  845. .replace(/}else \w+\.style\.display="none"/, "}")
  846. .replace(/(\bthis\.list\b)/g, "window.hack.hooks.entities")
  847. .replace(/\w+\.players\.list/g, "window.hack.hooks.entities")
  848. .replace(/(function\(\w+,(\w+),\w+,\w+,\w+,\w+,\w+\){var \w+,\w+,\w+,\w+;window\.hack\.hooks\.entities=\[\])/, "$1;window.hack.hooks.world=$2")
  849. .replace(/(\w+\.style\.left=)100\*(\w+\.\w+)\+"%",/, '$1$2*innerWidth+"px",window.hack.hooks.entities[i].hookedX=$2*innerWidth,')
  850. .replace(/(\w+\.style\.top=)100\*\(1-(\w+\.\w+)\)\+"%",/, '$1(1-$2)*innerHeight+"px",window.hack.hooks.entities[i].hookedY=(1-$2)*innerHeight,')
  851. .replace(/"mousemove",function\((\w+)\){if\((\w+)\.enabled/, '"mousemove",function($1){window.hack.hooks.context = $2;if($2.enabled')
  852. .replace(/(\w+).procInputs\((\w+),(\w+)\),(\w+).moveCam/, 'window.hack.loop($4, $1, $2, $3), $1.procInputs($2,$3),$4.moveCam')
  853. .replace(/(\w+).exports\.ambientVal/, 'window.hack.hooks.config = $1.exports, $1.exports.ambientVal')
  854. .replace(/window\.updateWindow=function/, 'windows.push({header: "Hack Settings", html: "",gen: function () {var t = ""; for (var key in window.hack.settingsMenu) {window.hack.settingsMenu[key].pre && (t += window.hack.settingsMenu[key].pre), t += "<div class=\'settName\'>" + window.hack.settingsMenu[key].name + " " + window.hack.settingsMenu[key].html() + "</div>";} return t;}});window.hack.setupSettings();\nwindow.updateWindow=function')
  855. .replace(/window\.addEventListener\("keydown",function\((\w+)\){/, 'window.addEventListener("keydown",function($1){window.hack.keyDown($1),')
  856. .replace(/window\.addEventListener\("keypress",function\((\w+)\){/, 'window.addEventListener("keypress",function($1){window.hack.keyPress($1),')
  857. .replace(/window\.addEventListener\("keyup",function\((\w+)\){/, 'window.addEventListener("keyup",function($1){window.hack.keyUp($1),')
  858. .replace(/hitHolder\.innerHTML=(\w+)}\((\w+)\),(\w+).update\((\w+)\)(.*)"block"==nukeFlash\.style\.display/, 'hitHolder.innerHTML=$1}($2),$3.update($4),"block" === nukeFlash.style.display')
  859. .replace(/(\w+)\("Kicked for inactivity"\)\),(.*),requestAnimFrame\((\w+)\)/, '$1("Kicked for inactivity")),requestAnimFrame($3)')
  860. .replace(/(\w+).updateCrosshair=function\((\w+),(\w+)\){/, '$1.updateCrosshair=function($2,$3){$2=window.hack.getCrosshair($2);')
  861.  
  862. GM_xmlhttpRequest({
  863. method: "GET",
  864. url: document.location.origin,
  865. onload: res => {
  866. let html = res.responseText
  867. html = html.replace(' src="js/game.js">', `>${Hack.toString()}\nwindow.hack = new Hack();\n${code.toString()}`)
  868. document.open()
  869. document.write(html)
  870. document.close()
  871. }
  872. })
  873. }
  874. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement