1st-cheat

Cheat for brofist.io

当前为 2024-10-20 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name 1st-cheat
  3. // @name:uk 1-й-чіт
  4. // @name:ru 1-й-чит
  5. // @namespace http://tampermonkey.net/
  6. // @version 1.12.8-beta-2
  7. // @description Cheat for brofist.io
  8. // @description:uk Програма для шахрайства в brofist.io
  9. // @description:ru Чит для brofist.io
  10. // @author CiNoP
  11. // @match http://brofist.io/modes/twoPlayer/*
  12. // @icon https://www.google.com/s2/favicons?sz=64&domain=brofist.io
  13. // @grant none
  14. // @license GPL-3.0-only
  15. // ==/UserScript==
  16. /* jshint esversion: 11 */
  17. /* jshint asi: true */
  18.  
  19. function activateMain(temp1) {
  20. const hack = {
  21. keyBindings: {
  22. isCPressed: false,
  23. cTimer: null,
  24. isZPressed: false
  25. },
  26. playerMoveData: {
  27. lastHorizontalDirection: 1,
  28. isDashingDown: false,
  29. isDashingUp: false,
  30. lastDashTime: 0,
  31. dashDuration: 100,
  32. dashEndTime: 0,
  33. isDoubleJumpAllowed: false,
  34. airDashAvailable: true,
  35. newMovementIsOn: true
  36. },
  37. bindKeys: function () {
  38. document.addEventListener('keydown', function (event) {
  39. if (event.key === 'Escape') {
  40. const panel = document.getElementById('someData')
  41. const panel1 = document.getElementById('controlPanel')
  42. if (panel.style.display === 'none') {
  43. panel.style.display = 'inherit'
  44. } else {
  45. panel.style.display = 'none'
  46. }
  47. if (panel1.style.display === 'none') {
  48. panel1.style.display = 'inherit'
  49. } else {
  50. panel1.style.display = 'none'
  51. }
  52. }
  53. if (event.key.toLowerCase() === 's' && event.repeat) {
  54. if (!hack.vars.modeIsOn) {
  55. hack.getters.me.p.mass = 3
  56. }
  57. }
  58. if (event.key.toLowerCase() === 'z' && !event.repeat) {
  59. hack.keyBindings.isZPressed = true
  60. } else if (event.repeat) {
  61. hack.keyBindings.isZPressed = false
  62. }
  63. if (event.key.toLowerCase() === 'c') {
  64. hack.keyBindings.isCPressed = true
  65. if (!hack.keyBindings.cTimer) {
  66. hack.keyBindings.cTimer = setTimeout(() => {
  67. hack.keyBindings.isCPressed = false
  68. hack.keyBindings.cTimer = null
  69. }, 250)
  70. }
  71. }
  72. })
  73. document.addEventListener('keyup', function (event) {
  74. if (event.key.toLowerCase() === 's') {
  75. if (!hack.vars.modeIsOn) {
  76. hack.getters.me.p.mass = 1
  77. }
  78. }
  79. if (event.key.toLowerCase() === 'z') {
  80. hack.keyBindings.isZPressed = false
  81. }
  82. if (event.key.toLowerCase() === 'c') {
  83. hack.keyBindings.isCPressed = false
  84. if (hack.keyBindings.cTimer) {
  85. clearTimeout(hack.keyBindings.cTimer)
  86. hack.keyBindings.cTimer = null
  87. }
  88. }
  89. })
  90. },
  91. getters: {
  92. get client() { return temp1[1].exports },
  93. get gf() { return temp1[5].exports },
  94. get gp() { return temp1[6].exports },
  95. get graphics() { return temp1[7].exports },
  96. get mode() { return temp1[11].exports },
  97. get envirData() { return temp1[15].exports },
  98. get rGho() { return temp1[26].exports },
  99. get modules_resultScreen() { return temp1[35].exports },
  100. get network() { return temp1[36].exports },
  101. get physics() { return temp1[332].exports },
  102. get me() { return hack.getters.mode.player.gpData },
  103. get ray() { return hack.getters.me.ray },
  104. get velocity() { return hack.getters.me.p.velocity },
  105. get otherPlayers() { return hack.getters.mode.otherPlayers }
  106. },
  107. vars: {
  108. get isGround() {return isGrounded()},
  109. mult: 1,
  110. lrSpd: 3,
  111. udSpd: 3,
  112. 'POSITION INFO ': '-----------------------',
  113. get currentPosX() {return Math.round(hack.getters.me.getX()*100)/100},
  114. get currentPosY() {return Math.round(hack.getters.me.getY()*100)/100},
  115. 'SPEED INFO ': '----------------------------',
  116. get totalSpd() {return (((this.lrSpd + this.udSpd) / 2) * this.mult)},
  117. get currentSpdX() {return Math.round(hack.getters.me.p.velocity[0]*100)/100},
  118. get currentSpdY() {return Math.round(hack.getters.me.p.velocity[1]*100)/100},
  119. 'SCRIPT VALUES ': '----------------------',
  120. multSpdIsOn: false,
  121. modeIsOn: false,
  122. immIsOn: false,
  123. MMGIsOn: false,
  124. interTpToOtherIsOn: false,
  125. ghost1: false,
  126. ghost2: false,
  127. isPlayerDead: false,
  128. 'MOVEMENT VALUES ': '---------------'
  129. },
  130. suppFuncs: {/*
  131. searchShapesById: function(b, a = temp1[6].exports.list) {
  132. for (n = [], i = 0; i < a.length; i++) {
  133. if (a[i]?.id == b) {
  134. n.push(a[i])
  135. }
  136. } return n
  137. },
  138. getDistanceToShape: function(spawn = this.searchShapesById('spawn')[0], checkpoints = this.searchShapesById('checkpoint')) {
  139. let distances = checkpoints.map((checkpoint, index) => {
  140. const distance = Math.sqrt(
  141. (spawn.getX() - checkpoint.getX()) ** 2 +
  142. (spawn.getY() - checkpoint.getY()) ** 2
  143. );
  144. return { index, distance };
  145. });
  146. distances.sort((a, b) => a.distance - b.distance);
  147. return distances.map(d => d.index);
  148. },*/
  149. getMult: () => {
  150. if (hack.vars.mult < 3) {
  151. return 1
  152. } else if (hack.vars.mult < 4) {
  153. return 2
  154. }
  155. },
  156. setMult: function (e) {
  157. if (e != undefined) {
  158. return (hack.vars.lrSpd = hack.vars.udSpd = e)
  159. }
  160. if (hack.suppFuncs.getMult() === 1) {
  161. hack.vars.mult++
  162. } else if (hack.suppFuncs.getMult() === 2) {
  163. hack.vars.mult += 2
  164. } else {
  165. hack.vars.mult = 1
  166. }
  167. },
  168. getIndexByName: function(playerName) {
  169. const index = hack.getters.otherPlayers.findIndex(player => player?.myName === playerName)
  170. return index === -1 ? false : index
  171. }
  172. },
  173. functions: {
  174. tp: function (x, y) {
  175. hack.getters.me.setX(x)
  176. hack.getters.me.setY(y)
  177. },/*
  178. tpShape: function(e,o = 0) {
  179. this.tp(e[o].getX(),e[o].getY())
  180. },*/
  181. tpDoor: () => {
  182. hack.functions.tp(
  183. hack.getters.mode.exitGate.exitGateCounter.refP.getX(),
  184. hack.getters.mode.exitGate.exitGateCounter.refP.getY()
  185. )
  186. },
  187. tpSpawn: () => {
  188. hack.functions.tp(
  189. hack.getters.mode.spawn.refP.getX(),
  190. hack.getters.mode.spawn.refP.getY()
  191. )
  192. },
  193. setTpToOther: function (playerIndex) {
  194. if (!hack.vars.interTpToOtherIsOn && playerIndex !== false) {
  195. this.interTpToOther = setInterval(() => {
  196. hack.getters.me.p.position[0] = hack.getters.otherPlayers[playerIndex].gpData.p.position[0]
  197. hack.getters.me.p.position[1] = hack.getters.otherPlayers[playerIndex].gpData.p.position[1]
  198. }, 100 / 14.4)
  199. hack.vars.interTpToOtherIsOn = true
  200. } else if (playerIndex === false) {
  201. try {
  202. clearInterval(this.interTpToOther)
  203. hack.vars.interTpToOtherIsOn = false
  204. } catch {
  205. console.log('не существующий интервал')
  206. }
  207. }
  208. },
  209. MMGEnable: function () {
  210. hack.getters.mode.makeMeGhost = function () {
  211. hack.getters.me.setAlpha(0.3)
  212. hack.getters.me.p.shapes[0].sensor = true
  213. hack.getters.me.p.gravityScale = 0
  214. hack.getters.velocity[0] = 0
  215. hack.getters.velocity[1] = 0
  216. hack.getters.me.me = void 0
  217. hack.vars.ghost2 = true
  218. hack.vars.isPlayerDead = true
  219. if (hack.vars.multSpdIsOn) { hack.functions.multSpdDisable() }
  220. hack.getters.rGho.fire(hack.getters.network.gsSocket)
  221. if (hack.getters.mode.md.mobile()) {hack.getters.mode.setupTouchButtons(true)}
  222. }
  223. hack.vars.MMGIsOn = true
  224. },
  225. MMGDisable: function () {
  226. hack.getters.mode.makeMeGhost = () => { }
  227. hack.vars.MMGIsOn = false
  228. },
  229. immEnable: () => {
  230. hack.getters.me.me = void 0
  231. hack.vars.immIsOn = true
  232. },
  233. immDisable: () => {
  234. hack.getters.me.me = true
  235. hack.vars.immIsOn = false
  236. },
  237. godModeEnable: () => {
  238. hack.vars.ghost1 = true
  239. hack.getters.me.p.collisionResponse = false
  240. hack.getters.me.p.mass = 0
  241. hack.vars.modeIsOn = true
  242. hack.getters.velocity[0] = 0
  243. hack.getters.velocity[1] = 0
  244. },
  245. godModeDisable: () => {
  246. hack.vars.ghost1 = false
  247. hack.getters.me.p.collisionResponse = true
  248. hack.getters.me.p.mass = 1
  249. hack.vars.modeIsOn = false
  250. hack.getters.velocity[0] = 0
  251. hack.getters.velocity[1] = 0
  252. },
  253. multSpdEnable: () => {
  254. hack.vars.lrSpd *= hack.vars.mult
  255. hack.vars.udSpd *= hack.vars.mult
  256. hack.vars.multSpdIsOn = true
  257. },
  258. multSpdDisable: () => {
  259. hack.vars.lrSpd /= hack.vars.mult
  260. hack.vars.udSpd /= hack.vars.mult
  261. hack.vars.multSpdIsOn = false
  262. }
  263. },
  264. logFuncs: {
  265. logModeIsOn: () => {
  266. console.log('modeIsOn:', hack.vars.modeIsOn)
  267. },
  268. logImmIsOn: () => {
  269. console.log('immIsOn:', hack.vars.immIsOn)
  270. },
  271. logSpd: () => {
  272. console.log('speed:', ((hack.vars.lrSpd + hack.vars.udSpd) / 2) * hack.vars.mult)
  273. },
  274. logMMGIsOn: () => {
  275. console.log('MMGIsOn:', hack.vars.MMGIsOn)
  276. }
  277. }
  278. }
  279.  
  280. document.body.insertAdjacentHTML("beforebegin", `
  281. <div id="someData" style="display: inherit; width: auto; position: fixed; top: 25px; left: 0px; height: auto; text-align: left; font-size: 14px; background: rgb(0, 0, 0); color: rgb(255, 255, 255); opacity: 0.7; padding: 2px 2px;"></div>
  282. `)
  283.  
  284. const updateData = () => {
  285. const o = []
  286. for (let i in hack.vars) {
  287. o.push(`${i}: ${hack.vars[i]}`)
  288. }
  289. for (let i in hack.playerMoveData) {
  290. o.push(`${i}: ${hack.playerMoveData[i]}`)
  291. }
  292. document.getElementById("someData").innerHTML = o.join('<br>')
  293. }
  294.  
  295. setInterval(updateData, 100 / 6)
  296.  
  297. document.body.insertAdjacentHTML("beforebegin", `
  298. <div id="controlPanel" style="display: inherit; width: auto; position: fixed; bottom: 0px; left: 0px; height: auto; text-align: left; font-size: 14px; background: rgb(0, 0, 0); color: rgb(255, 255, 255); opacity: 0.7; padding: 2px 2px;">
  299. <div>
  300. <span>new movement: </span>
  301. <button id="newMoveBtn" style="background: rgba(255, 255, 255, 0.7); color: black;">${hack.playerMoveData.newMovementIsOn}</button>
  302. </div>
  303. <div>
  304. <span>poison immunity: </span>
  305. <button id="immBtn" style="background: rgba(255, 255, 255, 0.7); color: black;">${hack.vars.immIsOn}</button>
  306. </div>
  307. <div>
  308. <span>death immunity: </span>
  309. <button id="MMGBtn" style="background: rgba(255, 255, 255, 0.7); color: black;">${!hack.vars.MMGIsOn}</button>
  310. </div>
  311. </div>
  312. `)
  313.  
  314. const updateButtonStates = () => {
  315. document.getElementById("newMoveBtn").innerText = hack.playerMoveData.newMovementIsOn
  316. document.getElementById("immBtn").innerText = hack.vars.immIsOn
  317. document.getElementById("MMGBtn").innerText = !hack.vars.MMGIsOn
  318. }
  319.  
  320. document.getElementById("newMoveBtn").addEventListener("click", () => {
  321. if (!hack.playerMoveData.newMovementIsOn) {
  322. newMovement()
  323. } else {
  324. oldMovement()
  325. }
  326. updateButtonStates()
  327. })
  328.  
  329. document.getElementById("immBtn").addEventListener("click", () => {
  330. if (hack.vars.immIsOn) {
  331. hack.functions.immDisable()
  332. } else {
  333. hack.functions.immEnable()
  334. }
  335. updateButtonStates()
  336. })
  337.  
  338. document.getElementById("MMGBtn").addEventListener("click", () => {
  339. if (hack.vars.MMGIsOn) {
  340. hack.functions.MMGDisable()
  341. } else {
  342. hack.functions.MMGEnable()
  343. }
  344. updateButtonStates()
  345. })
  346.  
  347. updateButtonStates()
  348.  
  349. setInterval(updateButtonStates, 100 / 6)
  350.  
  351. hack.functions.MMGDisable()
  352.  
  353. let scrActivate = function() {
  354. hack.getters.client.loopFunctions[2].timeOut = 100 / 6
  355. newMovement()
  356. Object.defineProperty(hack.vars, 'mult', { enumerable: false })
  357. Object.defineProperty(hack.vars, 'lrSpd', { enumerable: false })
  358. Object.defineProperty(hack.vars, 'udSpd', { enumerable: false })
  359. Object.defineProperty(hack.vars, 'ghost2', { enumerable: false })
  360. Object.defineProperty(hack.playerMoveData, 'lastDashTime', { enumerable: false })
  361. Object.defineProperty(hack.playerMoveData, 'lastHorizontalDirection', { enumerable: false })
  362. Object.defineProperty(hack.playerMoveData, 'lastDashTime', { enumerable: false })
  363. Object.defineProperty(hack.playerMoveData, 'dashDuration', { enumerable: false })
  364. Object.defineProperty(hack.playerMoveData, 'dashEndTime', { enumerable: false })
  365. Object.defineProperty(hack.playerMoveData, 'newMovementIsOn', { enumerable: false })
  366. document.getElementById('timer').style.background = 'rgb(0, 0, 0)'
  367. document.getElementById('timer').style.color = 'rgb(255, 255, 255)'
  368. document.getElementById('mapCredits').style.background = 'rgb(0, 0, 0)'
  369. document.getElementById('mapCredits').style.color = 'rgb(255, 255, 255)'
  370. document.getElementById('leaderboard').style.background = 'rgb(0, 0, 0)'
  371. document.getElementById('timer').style.opacity = 0.7
  372. document.getElementById('leaderboard').style.opacity = 0.7
  373. document.getElementById('mapCredits').style.opacity = 0.7
  374. }
  375.  
  376. hack.bindKeys()
  377.  
  378. hack.getters.mode.onChangeMap = function (e) {
  379. try {
  380. scrActivate()
  381. scrActivate = null
  382. } catch {}
  383. clearInterval(hack.getters.mode.startTimeId)
  384. clearTimeout(hack.getters.mode.smallStepTimeId)
  385. hack.getters.modules_resultScreen.hideResultScreen()
  386. hack.getters.gp.unload(hack.getters.gp)
  387. hack.getters.gp.list = hack.getters.gp.load(e, hack.getters.gp)
  388. hack.getters.mode.syncArr = []
  389. hack.getters.mode.ghost = false
  390. hack.getters.mode.tweenObjects = []
  391. hack.getters.mode.defineBehaviours(hack.getters.gp.list, hack.getters.mode.syncArr, hack.getters.gp)
  392. hack.getters.mode.md.mobile() && hack.getters.mode.setupTouchButtons(false)
  393. hack.getters.mode.setMyBio()
  394. hack.getters.mode.setBio(hack.getters.me, hack.getters.mode.myName, hack.getters.mode.mySkin, hack.getters.mode.whatBro, hack.getters.mode.chatColor, hack.getters.mode.teamColor)
  395. for (let n = 0; n < hack.getters.otherPlayers.length; n++) {
  396. if (hack.getters.otherPlayers[n]) {
  397. let t = hack.getters.otherPlayers[n].gpData.g.myIndex
  398. hack.getters.otherPlayers[n].gpData = hack.getters.mode.createPlayer()
  399. hack.getters.otherPlayers[n].gpData.g.myIndex = t
  400. hack.getters.gp.gWorld.removeChild(hack.getters.otherPlayers[n].gpData.g)
  401. hack.getters.gp.gWorld.mid.addChild(hack.getters.otherPlayers[n].gpData.g)
  402. hack.getters.mode.setBio(
  403. hack.getters.otherPlayers[n].gpData,
  404. hack.getters.otherPlayers[n].myName,
  405. hack.getters.otherPlayers[n].mySkin,
  406. hack.getters.otherPlayers[n].whatBro,
  407. hack.getters.otherPlayers[n].chatColor,
  408. hack.getters.otherPlayers[n].teamColor
  409. )
  410. }
  411. }
  412. hack.getters.mode.firstTimeMapChange = hack.getters.mode.firstTimeMapChange || true
  413. hack.getters.mode.smallStepTimeId = setTimeout(function () {
  414. document.getElementById("startTime").style.display = "inherit"
  415. document.getElementById("startTime").innerHTML = hack.getters.mode.startTime
  416. hack.getters.client.runPhysics = false
  417. hack.getters.mode.startTimeId = setInterval(function () {
  418. hack.getters.mode.startTime++
  419. document.getElementById("startTime").innerHTML = hack.getters.mode.startTime
  420. if (hack.getters.mode.startTime == 3) {
  421. hack.getters.mode.startTime = 0
  422. hack.getters.client.runPhysics = true
  423. clearInterval(hack.getters.mode.startTimeId)
  424. document.getElementById("startTime").style.display = "none"
  425. }
  426. }, 1000)
  427. }, 0)
  428. hack.getters.me.me = true
  429. if (hack.vars.modeIsOn) {
  430. hack.functions.godModeEnable()
  431. } else {
  432. hack.functions.godModeDisable()
  433. }
  434. if (hack.vars.immIsOn) {
  435. hack.functions.immEnable()
  436. } else {
  437. hack.functions.immDisable()
  438. }
  439. hack.vars.ghost2 = false
  440. hack.vars.isPlayerDead = false
  441. }
  442.  
  443. document.body.onkeydown = (event) => {
  444. const keyCode = event.keyCode
  445. switch (keyCode) {
  446. case 17:
  447. hack.getters.mode.makeMeGhost()
  448. break
  449. case 113:
  450. if (!hack.vars.modeIsOn) {
  451. hack.functions.godModeEnable()
  452. hack.logFuncs.logModeIsOn()
  453. hack.functions.multSpdEnable()
  454. } else {
  455. hack.functions.godModeDisable()
  456. hack.logFuncs.logModeIsOn()
  457. hack.functions.multSpdDisable()
  458. }
  459. break
  460. case 36:
  461. hack.functions.tpSpawn()
  462. break
  463. case 35:
  464. hack.functions.tpDoor()
  465. break
  466. case 120:
  467. if (!hack.vars.MMGIsOn) {
  468. hack.functions.MMGEnable()
  469. hack.logFuncs.logMMGIsOn()
  470. } else {
  471. hack.functions.MMGDisable()
  472. hack.logFuncs.logMMGIsOn()
  473. }
  474. break
  475. case 192:
  476. case 190:
  477. if (hack.vars.modeIsOn) {
  478. hack.suppFuncs.setMult()
  479. hack.logFuncs.logSpd()
  480. }
  481. break
  482. case 45:
  483. case 96:
  484. hack.functions.setTpToOther(hack.suppFuncs.getIndexByName(prompt('Введите корректный никнейм. Чтобы выйти из интервала нажмите Esc.')))
  485. break
  486. case 115:
  487. if (!hack.vars.immIsOn) {
  488. hack.functions.immEnable()
  489. hack.logFuncs.logImmIsOn()
  490. } else {
  491. hack.functions.immDisable()
  492. hack.logFuncs.logImmIsOn()
  493. }
  494. break
  495. }
  496. }
  497.  
  498. function isGrounded() {
  499. const meX = hack.getters.me.getX()
  500. const meY = hack.getters.me.getY()
  501. const ray = hack.getters.ray
  502. const physics = hack.getters.physics
  503. const gpPWorld = hack.getters.gp.pWorld
  504. const rayResult = hack.getters.me.ray.result
  505. const rayHitPoint = (hack.getters.ray.hitPoint = [Infinity, Infinity])
  506.  
  507. const verticalOffset = 50
  508. const checkYPosition = meY + 45
  509.  
  510. for (let i = 0; i < 121; i++) {
  511. const o = meX - 15 + i * (30 / 120)
  512. const s = checkYPosition
  513. const u = s + verticalOffset
  514.  
  515. ray.from = [physics.xAxis(o, 0), physics.yAxis(s, 0)]
  516. ray.to = [physics.xAxis(o, 0), physics.yAxis(u, 0)]
  517.  
  518. ray.update()
  519. rayResult.reset()
  520.  
  521. if (gpPWorld.raycast(rayResult, ray)) {
  522. rayResult.getHitPoint(rayHitPoint, ray)
  523. const hitDistance = rayResult.getHitDistance(ray)
  524.  
  525. if (rayResult.shape.ref.getCollision() && hitDistance < 0.1) {
  526. return true
  527. }
  528. }
  529. }
  530.  
  531. return false
  532. }
  533.  
  534. function newMovement() {
  535. hack.getters.client.loopFunctions[2].fun = function() {
  536. const currentTime = Date.now()
  537. const dashCooldown = 250
  538. const dashDistance = 2.5
  539. const dashSpeed = 25
  540. const grounded = isGrounded()
  541.  
  542. if (grounded) {
  543. hack.playerMoveData.airDashAvailable = true
  544. }
  545.  
  546. if (hack.getters.mode.moveLeft) {
  547. hack.playerMoveData.lastHorizontalDirection = -1
  548. } else if (hack.getters.mode.moveRight) {
  549. hack.playerMoveData.lastHorizontalDirection = 1
  550. }
  551.  
  552. if (
  553. hack.keyBindings.isCPressed &&
  554. hack.getters.mode.moveDown &&
  555. currentTime - hack.playerMoveData.lastDashTime >= dashCooldown &&
  556. !hack.playerMoveData.isDashingDown &&
  557. (grounded || (!grounded && hack.playerMoveData.airDashAvailable))
  558. ) {
  559. hack.playerMoveData.lastDashTime = currentTime
  560. hack.playerMoveData.isDashingDown = true
  561. hack.playerMoveData.dashDuration = (dashDistance / dashSpeed) * 1000
  562. hack.playerMoveData.dashEndTime = currentTime + hack.playerMoveData.dashDuration
  563. if (!grounded) {
  564. hack.playerMoveData.airDashAvailable = false
  565. }
  566. }
  567.  
  568. if (
  569. hack.keyBindings.isCPressed &&
  570. hack.getters.mode.moveUp &&
  571. currentTime - hack.playerMoveData.lastDashTime >= dashCooldown &&
  572. !hack.playerMoveData.isDashingUp &&
  573. (grounded || (!grounded && hack.playerMoveData.airDashAvailable))
  574. ) {
  575. hack.playerMoveData.lastDashTime = currentTime
  576. hack.playerMoveData.isDashingUp = true
  577. hack.playerMoveData.dashDuration = (dashDistance / dashSpeed) * 1000
  578. hack.playerMoveData.dashEndTime = currentTime + hack.playerMoveData.dashDuration
  579. if (!grounded) {
  580. hack.playerMoveData.airDashAvailable = false
  581. }
  582. }
  583.  
  584. if (
  585. hack.keyBindings.isCPressed &&
  586. currentTime - hack.playerMoveData.lastDashTime >= dashCooldown &&
  587. !hack.playerMoveData.isDashing &&
  588. (grounded || (!grounded && hack.playerMoveData.airDashAvailable))
  589. ) {
  590. hack.playerMoveData.lastDashTime = currentTime
  591. hack.playerMoveData.isDashing = true
  592. hack.playerMoveData.dashVelocity = dashSpeed * hack.playerMoveData.lastHorizontalDirection
  593. hack.playerMoveData.dashDuration = (dashDistance / dashSpeed) * 1000
  594. hack.playerMoveData.dashEndTime = currentTime + hack.playerMoveData.dashDuration
  595. if (!grounded) {
  596. hack.playerMoveData.airDashAvailable = false
  597. }
  598. }
  599.  
  600. if (hack.playerMoveData.isDashingDown) {
  601. hack.getters.mode.player.gpData.p.velocity[1] = -dashSpeed
  602. hack.getters.mode.player.gpData.p.velocity[0] = 0
  603. hack.getters.me.p.collisionResponse = false
  604. if (currentTime >= hack.playerMoveData.dashEndTime) {
  605. hack.playerMoveData.isDashingDown = false
  606. hack.getters.mode.player.gpData.p.velocity[1] = 0
  607. if (!hack.vars.modeIsOn) {
  608. hack.getters.me.p.collisionResponse = true
  609. }
  610. }
  611. return
  612. }
  613.  
  614. if (hack.playerMoveData.isDashingUp) {
  615. hack.getters.mode.player.gpData.p.velocity[1] = dashSpeed
  616. hack.getters.mode.player.gpData.p.velocity[0] = 0
  617. hack.getters.me.p.collisionResponse = false
  618. if (currentTime >= hack.playerMoveData.dashEndTime) {
  619. hack.playerMoveData.isDashingUp = false
  620. hack.getters.mode.player.gpData.p.velocity[1] = 0
  621. if (!hack.vars.modeIsOn) {
  622. hack.getters.me.p.collisionResponse = true
  623. }
  624. }
  625. return
  626. }
  627.  
  628. if (hack.playerMoveData.isDashing) {
  629. hack.getters.mode.player.gpData.p.velocity[0] = hack.playerMoveData.dashVelocity
  630. hack.getters.mode.player.gpData.p.velocity[1] = 0
  631. hack.getters.me.p.collisionResponse = false
  632. if (currentTime >= hack.playerMoveData.dashEndTime) {
  633. hack.playerMoveData.isDashing = false
  634. hack.getters.mode.player.gpData.p.velocity[0] = 0
  635. if (!hack.vars.modeIsOn) {
  636. hack.getters.me.p.collisionResponse = true
  637. }
  638. }
  639. return
  640. } else {
  641. if (hack.getters.mode.moveRight) {
  642. hack.getters.mode.player.gpData.p.velocity[0] = hack.vars.lrSpd * hack.vars.mult
  643. } else if (hack.getters.mode.moveLeft) {
  644. hack.getters.mode.player.gpData.p.velocity[0] = -hack.vars.lrSpd * hack.vars.mult
  645. } else {
  646. hack.getters.mode.player.gpData.p.velocity[0] = 0
  647. }
  648. }
  649.  
  650. if (grounded) {
  651. hack.playerMoveData.isDoubleJumpAllowed = true
  652. if (hack.keyBindings.isZPressed) {
  653. hack.keyBindings.isZPressed = false
  654. hack.getters.velocity[1] = 8*(hack.getters.me.p.gravityScale)
  655. }
  656. } else if (hack.playerMoveData.isDoubleJumpAllowed && hack.keyBindings.isZPressed) {
  657. hack.keyBindings.isZPressed = false
  658. hack.getters.velocity[1] = 8*(hack.getters.me.p.gravityScale)
  659. hack.playerMoveData.isDoubleJumpAllowed = false
  660. }
  661.  
  662. if (hack.vars.ghost1 || hack.vars.ghost2) {
  663. if (hack.getters.mode.moveUp) {
  664. hack.getters.velocity[1] = hack.vars.udSpd * hack.vars.mult
  665. }
  666. if (hack.getters.mode.moveDown) {
  667. hack.getters.velocity[1] = -hack.vars.udSpd * hack.vars.mult
  668. }
  669. if (!hack.getters.mode.moveUp && !hack.getters.mode.moveDown) {
  670. hack.getters.velocity[1] = 0
  671. }
  672. }
  673. }
  674. hack.playerMoveData.newMovementIsOn = true}
  675.  
  676. function oldMovement() {
  677. hack.getters.client.loopFunctions[2].fun = function() {
  678. const grounded = isGrounded()
  679.  
  680. if (hack.getters.mode.moveRight) {
  681. hack.getters.mode.player.gpData.p.velocity[0] = hack.vars.lrSpd * hack.vars.mult
  682. } else if (hack.getters.mode.moveLeft) {
  683. hack.getters.mode.player.gpData.p.velocity[0] = -hack.vars.lrSpd * hack.vars.mult
  684. } else {
  685. hack.getters.mode.player.gpData.p.velocity[0] = 0
  686. }
  687. if (grounded) {
  688. if (hack.getters.mode.moveUp) {
  689. hack.getters.velocity[1] = 8
  690. }
  691. }
  692. if (hack.vars.ghost1 || hack.vars.ghost2) {
  693. if (hack.getters.mode.moveUp) {
  694. hack.getters.velocity[1] = hack.vars.udSpd * hack.vars.mult
  695. }
  696. if (hack.getters.mode.moveDown) {
  697. hack.getters.velocity[1] = -hack.vars.udSpd * hack.vars.mult
  698. }
  699. if (!hack.getters.mode.moveUp && !hack.getters.mode.moveDown) {
  700. hack.getters.velocity[1] = 0
  701. }
  702. }
  703. }
  704. hack.playerMoveData.newMovementIsOn = false}
  705. }
  706.  
  707. let temp1 = {};
  708. const _call = Function.prototype.call;
  709. new Promise((resolve, reject) => {
  710. Function.prototype.call = function (...args) {
  711. if (args[2]?.exports) {
  712. temp1 = args[6]
  713. Function.prototype.call = _call
  714. console.log(temp1)
  715. resolve(temp1)
  716. }
  717. return _call.apply(this, args)
  718. };
  719. }).then((result) => {
  720. if (Object.keys(result).length > 0) {
  721. activateMain(result)
  722. } else {
  723. console.log("temp1 is empty")
  724. }
  725. }).catch((error) => {
  726. console.error("An error occurred:", error)
  727. })