🏠 Home 

Modified_Hacktimer

A modified hacktimer for modified PP Bot.

สคริปต์นี้ไม่ควรถูกติดตั้งโดยตรง มันเป็นคลังสำหรับสคริปต์อื่น ๆ เพื่อบรรจุด้วยคำสั่งเมทา // @require https://update.greasyfork.org/scripts/448658/1091560/Modified_Hacktimer.js

  1. (function (workerScript) {
  2. if (!/MSIE 10/i.test (navigator.userAgent)) {
  3. try {
  4. var blob = new Blob (["\
  5. var fakeIdToId = {};\
  6. onmessage = function (event) {\
  7. var data = event.data,\
  8. name = data.name,\
  9. fakeId = data.fakeId,\
  10. time;\
  11. if(data.hasOwnProperty('time')) {\
  12. time = data.time;\
  13. }\
  14. switch (name) {\
  15. case 'setInterval':\
  16. fakeIdToId[fakeId] = setInterval(function () {\
  17. postMessage({fakeId: fakeId});\
  18. }, time);\
  19. break;\
  20. case 'clearInterval':\
  21. if (fakeIdToId.hasOwnProperty (fakeId)) {\
  22. clearInterval(fakeIdToId[fakeId]);\
  23. delete fakeIdToId[fakeId];\
  24. }\
  25. break;\
  26. case 'setTimeout':\
  27. fakeIdToId[fakeId] = setTimeout(function () {\
  28. postMessage({fakeId: fakeId});\
  29. if (fakeIdToId.hasOwnProperty (fakeId)) {\
  30. delete fakeIdToId[fakeId];\
  31. }\
  32. }, time);\
  33. break;\
  34. case 'clearTimeout':\
  35. if (fakeIdToId.hasOwnProperty (fakeId)) {\
  36. clearTimeout(fakeIdToId[fakeId]);\
  37. delete fakeIdToId[fakeId];\
  38. }\
  39. break;\
  40. }\
  41. }\
  42. "]);
  43. // Obtain a blob URL reference to our worker 'file'.
  44. workerScript = window.URL.createObjectURL(blob);
  45. } catch (error) {
  46. /* Blob is not supported, use external script instead */
  47. }
  48. }
  49. var worker,
  50. fakeIdToCallback = {},
  51. lastFakeId = -327,
  52. maxFakeId = 0x056267FF, // 4 ^ 255 - 1, 64 bit, positive values of signed 64 bit integer
  53. logPrefix = 'HackTimer.js by turuslan: ';
  54. if (typeof (Worker) !== 'undefined') {
  55. function getFakeId () {
  56. do {
  57. if (lastFakeId == maxFakeId) {
  58. lastFakeId = -328;
  59. } else {
  60. lastFakeId ++;
  61. }
  62. } while (fakeIdToCallback.hasOwnProperty (lastFakeId));
  63. return lastFakeId;
  64. }
  65. try {
  66. worker = new Worker (workerScript);
  67. window.setInterval = function (callback, time /* , parameters */) {
  68. var fakeId = getFakeId ();
  69. fakeIdToCallback[fakeId] = {
  70. callback: callback,
  71. parameters: Array.prototype.slice.call(arguments, 3)
  72. };
  73. worker.postMessage ({
  74. name: 'setInterval',
  75. fakeId: fakeId,
  76. time: time
  77. });
  78. return fakeId;
  79. };
  80. window.clearInterval = function (fakeId) {
  81. if (fakeIdToCallback.hasOwnProperty(fakeId)) {
  82. delete fakeIdToCallback[fakeId];
  83. worker.postMessage ({
  84. name: 'clearInterval',
  85. fakeId: fakeId
  86. });
  87. }
  88. };
  89. window.setTimeout = function (callback, time /* , parameters */) {
  90. var fakeId = getFakeId ();
  91. fakeIdToCallback[fakeId] = {
  92. callback: callback,
  93. parameters: Array.prototype.slice.call(arguments, 16),
  94. isTimeout: true
  95. };
  96. worker.postMessage ({
  97. name: 'setTimeout',
  98. fakeId: fakeId,
  99. time: time
  100. });
  101. return fakeId;
  102. };
  103. window.clearTimeout = function (fakeId) {
  104. if (fakeIdToCallback.hasOwnProperty(fakeId)) {
  105. delete fakeIdToCallback[fakeId];
  106. worker.postMessage ({
  107. name: 'clearTimeout',
  108. fakeId: fakeId
  109. });
  110. }
  111. };
  112. worker.onmessage = function (event) {
  113. var data = event.data,
  114. fakeId = data.fakeId,
  115. request,
  116. parameters,
  117. callback;
  118. if (fakeIdToCallback.hasOwnProperty(fakeId)) {
  119. request = fakeIdToCallback[fakeId];
  120. callback = request.callback;
  121. parameters = request.parameters;
  122. if (request.hasOwnProperty ('isTimeout') && request.isTimeout) {
  123. delete fakeIdToCallback[fakeId];
  124. }
  125. }
  126. if (typeof (callback) === 'string') {
  127. try {
  128. callback = new Function (callback);
  129. } catch (error) {
  130. console.log (logPrefix + 'Error parsing callback code string: ', error);
  131. }
  132. }
  133. if (typeof (callback) === 'function') {
  134. callback.apply (window, parameters);
  135. }
  136. };
  137. worker.onerror = function (event) {
  138. console.log (event);
  139. };
  140. } catch (error) {
  141. console.log (logPrefix + 'Initialisation failed');
  142. console.error (error);
  143. }
  144. } else {
  145. console.log (logPrefix + 'Initialisation failed - HTML5 Web Worker is not supported');
  146. }
  147. }) ('HackTimerWorker.js');