bloxd.io Hack v3

Hack completo para Sword Masters.io (Speed + Ad Block)

  1. // ==UserScript==
  2. // @name bloxd.io Hack v3
  3. // @namespace http://tampermonkey.net/
  4. // @version v3
  5. // @description Hack completo para Sword Masters.io (Speed + Ad Block)
  6. // @author Discord >> pedecoca
  7. // @match https://bloxd.io/
  8. // @icon https://bloxd.io/
  9. // @grant none
  10. // @license MIT
  11. // ==/UserScript==
  12.  
  13. (function() {
  14. 'use strict';
  15.  
  16. const config = {
  17. active: true,
  18. autoReward: true,
  19. debug: true,
  20. speedMultiplier: 1,
  21. attackMultiplier: 1,
  22. intervalMultiplier: 1,
  23. timeoutMultiplier: 1,
  24. blockedDomains: new Set([
  25. 'poki.com',
  26. 'poki-gdn.com',
  27. 'google-analytics.com',
  28. 'doubleclick.net',
  29. 'adservice.google.com',
  30. 'analytics.google.com'
  31. ])
  32. };
  33.  
  34. function setupAntiKnockbackMonitor() {
  35. setInterval(() => {
  36. if (antiKnockback) {
  37. const script = document.createElement('script');
  38. script.textContent = `
  39. if (window.pc?.app) {
  40. const playerEntity = pc.app.root.findByName('Player');
  41. if (playerEntity && !window.antiKnockbackEnabled) {
  42. console.log('[Hack] Reapplying Anti Knockback after respawn');
  43. window.antiKnockbackEnabled = true;
  44. }
  45. }
  46. `;
  47. document.documentElement.appendChild(script);
  48. script.remove();
  49. }
  50. }, 5000);
  51. }
  52.  
  53.  
  54. let speedMultiplierDate = 1;
  55. let intervalMultiplier = 1;
  56. let timeoutMultiplier = 1;
  57. const originalDateNow = Date.now;
  58. const originalSetInterval = window.setInterval;
  59. const originalSetTimeout = window.setTimeout;
  60. let baseTime = originalDateNow();
  61.  
  62. let antiKnockback = true;
  63.  
  64. function updateSpeedDate() {
  65. Date.now = () => {
  66. const currentTime = originalDateNow();
  67. return baseTime + (currentTime - baseTime) * speedMultiplierDate;
  68. };
  69. }
  70.  
  71.  
  72. function updateIntervalSpeed() {
  73. window.setInterval = (callback, delay, ...args) => {
  74. const adjustedDelay = delay / config.intervalMultiplier;
  75. return originalSetInterval(callback, adjustedDelay, ...args);
  76. };
  77. }
  78.  
  79.  
  80. function updateTimeoutSpeed() {
  81. window.setTimeout = (callback, delay, ...args) => {
  82. const adjustedDelay = delay / config.timeoutMultiplier;
  83. return originalSetTimeout(callback, adjustedDelay, ...args);
  84. };
  85. }
  86.  
  87.  
  88. function applyAntiKnockback() {
  89. const script = document.createElement('script');
  90. script.textContent = `
  91. if (window.pc?.app) {
  92. try {
  93. const playerEntity = pc.app.root.findByName('Player');
  94. if (playerEntity && playerEntity.script && playerEntity.script.playerController) {
  95. console.log('[Hack] Applying enhanced Anti-Knockback');
  96.  
  97. const originalGetDamage = playerEntity.script.playerController.getDamage;
  98.  
  99.  
  100. playerEntity.script.playerController.getDamage = function(amount, attacker) {
  101.  
  102. const originalPosition = this.entity.getPosition().clone();
  103. const originalRotation = this.entity.getRotation().clone();
  104.  
  105.  
  106. const result = originalGetDamage.call(this, amount, attacker);
  107.  
  108. if (window.antiKnockbackEnabled) {
  109.  
  110. this.entity.setPosition(originalPosition);
  111. this.entity.setRotation(originalRotation);
  112.  
  113.  
  114. setTimeout(() => {
  115. this.entity.setPosition(originalPosition);
  116. this.entity.setRotation(originalRotation);
  117. }, 5);
  118.  
  119.  
  120. setTimeout(() => {
  121. this.entity.setPosition(originalPosition);
  122. this.entity.setRotation(originalRotation);
  123. }, 10);
  124. }
  125.  
  126. return result;
  127. };
  128.  
  129.  
  130. if (playerEntity.script.movement && playerEntity.script.movement.knockback) {
  131. const originalKnockback = playerEntity.script.movement.knockback;
  132. playerEntity.script.movement.knockback = function() {
  133. if (window.antiKnockbackEnabled) {
  134.  
  135. return;
  136. }
  137. return originalKnockback.apply(this, arguments);
  138. };
  139. }
  140.  
  141.  
  142. if (playerEntity.rigidbody) {
  143. const originalApplyImpulse = playerEntity.rigidbody.applyImpulse;
  144. playerEntity.rigidbody.applyImpulse = function(impulse) {
  145. if (window.antiKnockbackEnabled) {
  146.  
  147. if (impulse.y < 0 || Math.abs(impulse.x) > 1 || Math.abs(impulse.z) > 1) {
  148.  
  149. return;
  150. }
  151. }
  152. return originalApplyImpulse.apply(this, arguments);
  153. };
  154. }
  155.  
  156.  
  157. const app = pc.app;
  158. if (app.systems && app.systems.script) {
  159. const originalUpdate = app.systems.script.update;
  160. let lastPosition = null;
  161. let isRestoringPosition = false;
  162.  
  163. app.systems.script.update = function(dt) {
  164.  
  165. const result = originalUpdate.call(this, dt);
  166.  
  167.  
  168. if (window.antiKnockbackEnabled && playerEntity) {
  169. const currentPos = playerEntity.getPosition();
  170.  
  171.  
  172. if (lastPosition && !isRestoringPosition) {
  173. const diff = new pc.Vec3();
  174. diff.sub2(currentPos, lastPosition);
  175.  
  176.  
  177. if (diff.length() > 0.1) {
  178. isRestoringPosition = true;
  179. playerEntity.setPosition(lastPosition);
  180. setTimeout(() => {
  181. isRestoringPosition = false;
  182. }, 20);
  183. }
  184. }
  185.  
  186.  
  187. if (!isRestoringPosition && playerEntity.script.playerController &&
  188. !playerEntity.script.playerController.isMoving) {
  189. lastPosition = currentPos.clone();
  190. }
  191. }
  192.  
  193. return result;
  194. };
  195. }
  196.  
  197.  
  198. window.antiKnockbackEnabled = ${antiKnockback};
  199. console.log('[Hack] Enhanced Anti Knockback ' + (window.antiKnockbackEnabled ? 'Enabled' : 'Disabled'));
  200. }
  201. } catch(e) {
  202. console.error('[Anti Knockback] Error:', e);
  203. }
  204. }
  205. `;
  206. document.documentElement.appendChild(script);
  207. script.remove();
  208. }
  209.  
  210. function toggleAntiKnockback() {
  211. antiKnockback = !antiKnockback;
  212. const script = document.createElement('script');
  213. script.textContent = `
  214. window.antiKnockbackEnabled = ${antiKnockback};
  215. console.log('[Hack] Anti Knockback ' + (window.antiKnockbackEnabled ? 'Enabled' : 'Disabled'));
  216. `;
  217. document.documentElement.appendChild(script);
  218. script.remove();
  219. return antiKnockback;
  220. }
  221.  
  222. function applySpeedHack() {
  223. const script = document.createElement('script');
  224. script.textContent = `
  225. if (window.originalRequestAnimationFrame) {
  226. window.requestAnimationFrame = function(callback) {
  227. return window.originalRequestAnimationFrame(function(timestamp) {
  228. timestamp *= ${config.speedMultiplier};
  229. callback(timestamp);
  230. });
  231. };
  232. }
  233.  
  234. if (window.pc?.app) {
  235. try {
  236. pc.app.timeScale = ${config.speedMultiplier};
  237. pc.app.systems.script.update = function(dt) {
  238. dt *= ${config.speedMultiplier};
  239. this._callScriptMethod('update', dt);
  240. };
  241. } catch(e) {
  242. console.error('[Speed Hack] Error:', e);
  243. }
  244. }
  245. `;
  246. document.documentElement.appendChild(script);
  247. }
  248.  
  249.  
  250. function disableAutoAttack() {
  251. const script = document.createElement('script');
  252. script.textContent = `
  253. function disableAutoAttack() {
  254. if (window.pc?.app) {
  255. try {
  256. const app = window.pc.app;
  257. const root = app.root;
  258. if (root) {
  259. const autoAttacks = root.findByTag('AutoAttack');
  260. autoAttacks?.forEach(component => {
  261. if (component?.enabled) {
  262. component.enabled = false;
  263. }
  264. });
  265. }
  266. } catch(e) {
  267. console.error('[Hack] Error:', e);
  268. }
  269. }
  270. }
  271.  
  272. const autoAttackInterval = setInterval(() => {
  273. if (window.pc?.app) {
  274. disableAutoAttack();
  275. clearInterval(autoAttackInterval);
  276. }
  277. }, 1000);
  278. `;
  279. document.documentElement.appendChild(script);
  280. }
  281.  
  282.  
  283. function updateSpeed(value) {
  284. config.speedMultiplier = Math.min(value, 9999999999999999);
  285.  
  286. const speedValueElement = document.getElementById('speed-value');
  287. if (speedValueElement) {
  288. speedValueElement.textContent = config.speedMultiplier + 'x';
  289. }
  290.  
  291. applyPCSpeedHack();
  292.  
  293. if (config.useRequestAnimationFrame) {
  294. applyRAFSpeedHack();
  295. }
  296. }
  297.  
  298.  
  299. const styles = `
  300. #hack-menu {
  301. position: fixed;
  302. top: 206px;
  303. left: 3px;
  304. background: rgba(0,0,0,0.8);
  305. color: #00ff00;
  306. padding: 15px;
  307. border-radius: 10px;
  308. z-index: 9999;
  309. width: 240px;
  310. font-family: Arial, sans-serif;
  311. border: 2px solid #00ff00;
  312. cursor: move;
  313. animation: rainbow 2s infinite;
  314. }
  315. #hack-menu h3 {
  316. text-align: center;
  317. margin-bottom: 10px;
  318. color: #00ff00;
  319. display: flex;
  320. justify-content: center;
  321. align-items: center;
  322. position: relative;
  323. }
  324. .discord-icon {
  325. width: 64px;
  326. height: 64px;
  327. position: absolute;
  328. left: -15px;
  329. top: -40px;
  330. }
  331. .slider-container {
  332. display: flex;
  333. justify-content: center;
  334. align-items: center;
  335. gap: 10px;
  336. margin: 10px 0;
  337. }
  338. .btn, .hack-btn {
  339. width: 40px;
  340. height: 30px;
  341. background-color: #444;
  342. color: #00ff00;
  343. border: 1px solid #ff0;
  344. border-radius: 5px;
  345. cursor: pointer;
  346. font-size: 14px;
  347. }
  348. .control-btn {
  349. background-color: #333;
  350. width: 100%;
  351. font-size: 14px;
  352. margin-top: 10px;
  353. border: 1px solid #ff3300;
  354. color: #00ff00;
  355. padding: 5px;
  356. cursor: pointer;
  357. }
  358. #speed-slider {
  359. width: 180px;
  360. }
  361. @keyframes rainbow {
  362. 0% { border-color: red; }
  363. 14% { border-color: orange; }
  364. 28% { border-color: yellow; }
  365. 42% { border-color: green; }
  366. 57% { border-color: blue; }
  367. 71% { border-color: indigo; }
  368. 85% { border-color: violet; }
  369. 100% { border-color: red; }
  370. }
  371. .minimize-btn {
  372. position: absolute;
  373. top: 5px;
  374. right: 5px;
  375. background: none;
  376. border: none;
  377. color: #00ff00;
  378. cursor: pointer;
  379. font-size: 16px;
  380. padding: 5px;
  381. }
  382. .floating-icon {
  383. position: fixed;
  384. width: 40px;
  385. height: 40px;
  386. background: rgba(0,0,0,0.8);
  387. border-radius: 50%;
  388. display: flex;
  389. justify-content: center;
  390. align-items: center;
  391. cursor: pointer;
  392. font-size: 24px;
  393. z-index: 9999;
  394. border: 2px solid #00ff00;
  395. animation: rainbow 2s infinite;
  396. transition: transform 0.2s;
  397. }
  398. .floating-icon:hover {
  399. transform: scale(1.1);
  400. }
  401. .hack-menu.minimized {
  402. display: none;
  403. }
  404. .toggle-btn {
  405. background-color: #333;
  406. color: #00ff00;
  407. border: 1px solid #ff3300;
  408. border-radius: 5px;
  409. padding: 5px 10px;
  410. margin-top: 5px;
  411. cursor: pointer;
  412. font-size: 14px;
  413. display: flex;
  414. justify-content: space-between;
  415. align-items: center;
  416. }
  417.  
  418. .toggle-btn.active {
  419. background-color: #006600;
  420. border-color: #00ff00;
  421. }
  422.  
  423. .toggle-indicator {
  424. display: inline-block;
  425. width: 12px;
  426. height: 12px;
  427. border-radius: 50%;
  428. background-color: #ff3300;
  429. margin-left: 10px;
  430. }
  431.  
  432. .toggle-indicator.active {
  433. background-color: #00ff00;
  434. }
  435. `;
  436.  
  437.  
  438. function createHackMenu() {
  439. const menu = document.createElement('div');
  440. menu.id = 'hack-menu';
  441. menu.className = 'hack-menu';
  442. menu.innerHTML = `
  443. <button class="minimize-btn">−</button>
  444. <h3>
  445. <span>PeDeCoca</span>
  446. <a href="https://discord.gg/Tsa7dtJe5R" target="_blank">
  447. <img src="https://img.icons8.com/?size=100&id=61604&format=png&color=000000" alt="Discord" class="discord-icon">
  448. </a>
  449. </h3>
  450. <div style="eight:10px">
  451. <div class="hack-section">
  452. <span>Game Speed: <strong id="speed-value">${config.speedMultiplier}x</strong></span>
  453. <div style="eight:10px">
  454. <div class="slider-container">
  455. <input type="range" id="speed-slider" min="0.1" max="9999999999999999" step="0.1" value="${config.speedMultiplier}">
  456. </div>
  457. </div>
  458. <div class="hack-section">
  459. <span>Attack Speed: <strong id="attack-value">${speedMultiplierDate}x</strong></span>
  460. <div class="slider-container">
  461. <input type="range" id="attack-slider" min="1" max="9999999999999999" step="1" value="${speedMultiplierDate}">
  462. </div>
  463. </div>
  464.  
  465. <!-- New interval speed slider -->
  466. <div class="hack-section">
  467. <span>Interval Speed: <strong id="interval-value">${config.intervalMultiplier}x</strong></span>
  468. <div class="slider-container">
  469. <input type="range" id="interval-slider" min="1" max="9999999999999999" step="1" value="${config.intervalMultiplier}">
  470. </div>
  471. </div>
  472.  
  473. <!-- New timeout speed slider -->
  474. <div class="hack-section">
  475. <span>Timeout Speed: <strong id="timeout-value">${config.timeoutMultiplier}x</strong></span>
  476. <div class="slider-container">
  477. <input type="range" id="timeout-slider" min="1" max="9999999999999999" step="1" value="${config.timeoutMultiplier}">
  478. </div>
  479. </div>
  480.  
  481. <button id="max-attack" class="control-btn">Max Attack</button>
  482. <button id="reset-all" class="control-btn">Reset All</button>
  483. `;
  484.  
  485. const floatingIcon = document.createElement('div');
  486. floatingIcon.className = 'floating-icon';
  487. floatingIcon.innerHTML = '🕹️';
  488. floatingIcon.style.display = 'none';
  489.  
  490. document.body.appendChild(menu);
  491. document.body.appendChild(floatingIcon);
  492.  
  493.  
  494. const minimizeBtn = menu.querySelector('.minimize-btn');
  495. minimizeBtn.addEventListener('click', () => {
  496. const menuPos = menu.getBoundingClientRect();
  497. menu.classList.add('minimized');
  498. floatingIcon.style.display = 'flex';
  499. floatingIcon.style.left = `${menuPos.left}px`;
  500. floatingIcon.style.top = `${menuPos.top}px`;
  501. });
  502.  
  503. floatingIcon.addEventListener('click', () => {
  504. const iconPos = floatingIcon.getBoundingClientRect();
  505. menu.classList.remove('minimized');
  506. menu.style.left = `${iconPos.left}px`;
  507. menu.style.top = `${iconPos.top}px`;
  508. floatingIcon.style.display = 'none';
  509. });
  510.  
  511. setupMenuControls();
  512. makeMenuMovable();
  513. }
  514.  
  515.  
  516. window.PokiSDK = {
  517. init() {
  518. console.log('[Hack] PokiSDK initialized');
  519. return Promise.resolve();
  520. },
  521. rewardedBreak(beforeBreak) {
  522. console.log('[Hack] Rewarded break called');
  523. if (beforeBreak) beforeBreak();
  524. return new Promise(resolve => {
  525. setTimeout(() => {
  526. if (window.pc?.app) {
  527. window.pc.app.fire('adSuccess', true);
  528. window.pc.app.fire('rewardedBreakComplete', true);
  529. window.pc.app.fire('rewardedBreakReward', true);
  530. }
  531. resolve(true);
  532. }, 10);
  533. });
  534. },
  535. commercialBreak() { return Promise.resolve(); },
  536. gameplayStart() { return Promise.resolve(); },
  537. gameplayStop() { return Promise.resolve(); },
  538. customEvent() { return Promise.resolve(); },
  539. enableEventTracking() { return Promise.resolve(); },
  540. setDebug() { return Promise.resolve(); },
  541. gameLoadingStart() { return Promise.resolve(); },
  542. gameLoadingFinished() { return Promise.resolve(); },
  543. gameInteractive() { return Promise.resolve(); },
  544. happyTime() { return Promise.resolve(); },
  545. setPlayerAge() { return Promise.resolve(); }
  546. };
  547.  
  548.  
  549. const originalFetch = window.fetch;
  550. window.fetch = async function(url, options) {
  551. try {
  552. const urlObj = new URL(url);
  553. if (config.blockedDomains.has(urlObj.hostname)) {
  554. console.log('[Hack] Blocked request to:', urlObj.hostname);
  555. return new Promise(() => {});
  556. }
  557. } catch (e) {}
  558. return originalFetch.apply(this, arguments);
  559. };
  560.  
  561. const originalXHR = window.XMLHttpRequest;
  562. window.XMLHttpRequest = function() {
  563. const xhr = new originalXHR();
  564. const originalOpen = xhr.open;
  565. xhr.open = function(method, url) {
  566. try {
  567. const urlObj = new URL(url);
  568. if (config.blockedDomains.has(urlObj.hostname)) {
  569. console.log('[Hack] Blocked XHR to:', urlObj.hostname);
  570. return;
  571. }
  572. } catch (e) {}
  573. return originalOpen.apply(this, arguments);
  574. };
  575. return xhr;
  576. };
  577.  
  578.  
  579. function setupMenuControls() {
  580. const speedSlider = document.getElementById('speed-slider');
  581. const attackSlider = document.getElementById('attack-slider');
  582. const intervalSlider = document.getElementById('interval-slider');
  583. const timeoutSlider = document.getElementById('timeout-slider');
  584.  
  585. const speedValue = document.getElementById('speed-value');
  586. const attackValue = document.getElementById('attack-value');
  587. const intervalValue = document.getElementById('interval-value');
  588. const timeoutValue = document.getElementById('timeout-value');
  589.  
  590. speedSlider.addEventListener('input', () => {
  591. const value = parseFloat(speedSlider.value);
  592. updateSpeed(value);
  593. });
  594.  
  595. attackSlider.addEventListener('input', () => {
  596. const value = parseInt(attackSlider.value);
  597. speedMultiplierDate = value;
  598. attackValue.textContent = value + 'x';
  599. updateSpeedDate();
  600. });
  601.  
  602.  
  603. intervalSlider.addEventListener('input', () => {
  604. const value = parseInt(intervalSlider.value);
  605. config.intervalMultiplier = value;
  606. intervalValue.textContent = value + 'x';
  607. updateIntervalSpeed();
  608. });
  609.  
  610.  
  611. timeoutSlider.addEventListener('input', () => {
  612. const value = parseInt(timeoutSlider.value);
  613. config.timeoutMultiplier = value;
  614. timeoutValue.textContent = value + 'x';
  615. updateTimeoutSpeed();
  616. });
  617.  
  618. document.getElementById('max-attack').addEventListener('click', () => {
  619. speedMultiplierDate = 1000;
  620. attackSlider.value = 1000;
  621. attackValue.textContent = '1000x';
  622. updateSpeedDate();
  623. });
  624.  
  625. document.getElementById('reset-all').addEventListener('click', () => {
  626.  
  627. updateSpeed(1);
  628. speedSlider.value = 1;
  629.  
  630.  
  631. speedMultiplierDate = 1;
  632. attackSlider.value = 1;
  633. attackValue.textContent = '1x';
  634. updateSpeedDate();
  635.  
  636.  
  637. config.intervalMultiplier = 1;
  638. intervalSlider.value = 1;
  639. intervalValue.textContent = '1x';
  640. updateIntervalSpeed();
  641.  
  642.  
  643. config.timeoutMultiplier = 1;
  644. timeoutSlider.value = 1;
  645. timeoutValue.textContent = '1x';
  646. updateTimeoutSpeed();
  647. });
  648. const antiKnockbackToggle = document.getElementById('toggle-anti-knockback');
  649. if (antiKnockbackToggle) {
  650. antiKnockbackToggle.addEventListener('click', function() {
  651. const isActive = toggleAntiKnockback();
  652. this.classList.toggle('active', isActive);
  653. this.querySelector('.toggle-indicator').classList.toggle('active', isActive);
  654. applyAntiKnockback();
  655. });
  656. }
  657. }
  658.  
  659.  
  660. function makeMenuMovable() {
  661. const menu = document.getElementById('hack-menu');
  662. let isDragging = false;
  663. let offsetX, offsetY;
  664.  
  665. menu.addEventListener('mousedown', (e) => {
  666.  
  667. if (e.target.tagName === 'INPUT' || e.target.tagName === 'BUTTON') {
  668. return;
  669. }
  670.  
  671. isDragging = true;
  672. offsetX = e.clientX - menu.offsetLeft;
  673. offsetY = e.clientY - menu.offsetTop;
  674. menu.style.cursor = 'grabbing';
  675. });
  676.  
  677. window.addEventListener('mousemove', (e) => {
  678. if (isDragging) {
  679. menu.style.left = `${e.clientX - offsetX}px`;
  680. menu.style.top = `${e.clientY - offsetY}px`;
  681. }
  682. });
  683.  
  684. window.addEventListener('mouseup', () => {
  685. isDragging = false;
  686. menu.style.cursor = 'move';
  687. });
  688.  
  689.  
  690. const sliders = menu.querySelectorAll('input[type="range"]');
  691. sliders.forEach(slider => {
  692. slider.addEventListener('mousedown', (e) => {
  693. e.stopPropagation();
  694. });
  695. slider.addEventListener('mousemove', (e) => {
  696. e.stopPropagation();
  697. });
  698. });
  699.  
  700.  
  701. const floatingIcon = document.querySelector('.floating-icon');
  702. let isDraggingIcon = false;
  703. let hasMoved = false;
  704. let iconOffsetX, iconOffsetY;
  705.  
  706. floatingIcon.addEventListener('mousedown', (e) => {
  707. isDraggingIcon = true;
  708. hasMoved = false;
  709. iconOffsetX = e.clientX - floatingIcon.offsetLeft;
  710. iconOffsetY = e.clientY - floatingIcon.offsetTop;
  711. floatingIcon.style.cursor = 'grabbing';
  712. });
  713.  
  714. window.addEventListener('mousemove', (e) => {
  715. if (isDraggingIcon) {
  716. hasMoved = true;
  717. floatingIcon.style.left = `${e.clientX - iconOffsetX}px`;
  718. floatingIcon.style.top = `${e.clientY - iconOffsetY}px`;
  719. }
  720. });
  721.  
  722. window.addEventListener('mouseup', () => {
  723. isDraggingIcon = false;
  724. floatingIcon.style.cursor = 'pointer';
  725. });
  726.  
  727.  
  728. floatingIcon.addEventListener('click', (e) => {
  729. if (!hasMoved) {
  730. const menu = document.getElementById('hack-menu');
  731. const iconPos = floatingIcon.getBoundingClientRect();
  732. menu.classList.remove('minimized');
  733. menu.style.left = `${iconPos.left}px`;
  734. menu.style.top = `${iconPos.top}px`;
  735. floatingIcon.style.display = 'none';
  736. }
  737. });
  738. }
  739. function applyPCSpeedHack() {
  740. const script = document.createElement('script');
  741. script.textContent = `
  742. if (window.pc?.app) {
  743. try {
  744.  
  745. pc.app.timeScale = ${config.speedMultiplier};
  746.  
  747.  
  748. if (pc.app.systems && pc.app.systems.script) {
  749. pc.app.systems.script.update = function(dt) {
  750. dt *= ${config.speedMultiplier};
  751. this._callScriptMethod('update', dt);
  752. };
  753. }
  754.  
  755. console.log('[Hack] PC Speed multiplier set to ${config.speedMultiplier}x');
  756. } catch(e) {
  757. console.error('[Speed Hack] PC Error:', e);
  758. }
  759. }
  760. `;
  761. document.documentElement.appendChild(script);
  762. script.remove();
  763. }
  764. function applyRAFSpeedHack() {
  765. const script = document.createElement('script');
  766. script.textContent = `
  767. if (window.originalRequestAnimationFrame) {
  768. window.requestAnimationFrame = function(callback) {
  769. return window.originalRequestAnimationFrame(function(timestamp) {
  770.  
  771. timestamp *= ${config.speedMultiplier};
  772. callback(timestamp);
  773. });
  774. };
  775. console.log('[Hack] RAF Speed multiplier set to ${config.speedMultiplier}x');
  776. }
  777. `;
  778. document.documentElement.appendChild(script);
  779. script.remove();
  780. }
  781.  
  782. function initialize() {
  783. const styleElement = document.createElement('style');
  784. styleElement.textContent = styles;
  785. document.head.appendChild(styleElement);
  786. config.useRequestAnimationFrame = true;
  787. const script = document.createElement('script');
  788. script.textContent = `
  789. window.originalRequestAnimationFrame = window.requestAnimationFrame;
  790. `;
  791. document.documentElement.appendChild(script);
  792. script.remove();
  793.  
  794. createHackMenu();
  795. updateSpeedDate();
  796. updateIntervalSpeed();
  797. updateTimeoutSpeed();
  798. applySpeedHack();
  799. applyAntiKnockback();
  800. setupAntiKnockbackMonitor();
  801. setInterval(() => {
  802. if (window.pc?.app) {
  803. window.pc.app.fire('adSuccess', true);
  804. window.pc.app.fire('rewardedBreakComplete', true);
  805. window.pc.app.fire('rewardedBreakReward', true);
  806. }
  807. }, 30000);
  808.  
  809. console.log('[Hack] Script loaded successfully!');
  810. }
  811.  
  812. if (document.readyState === 'loading') {
  813. document.addEventListener('DOMContentLoaded', initialize);
  814. } else {
  815. initialize();
  816. }
  817. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址