Bypass DevTools Detection, Unlock Functionality, and Auto Check-in

Bỏ qua phát hiện DevTools, mở khóa các chức năng và tự động điểm danh trên https://loulxgame.com/

  1. // ==UserScript==
  2. // @name Bypass DevTools Detection, Unlock Functionality, and Auto Check-in
  3. // @namespace http://tampermonkey.net/
  4. // @version 1.9
  5. // @description Bỏ qua phát hiện DevTools, mở khóa các chức năng và tự động điểm danh trên https://loulxgame.com/
  6. // @author hieuck
  7. // @match https://loulxgame.com/*
  8. // @icon https://www.google.com/s2/favicons?sz=64&domain=loulxgame.com
  9. // @grant GM_setValue
  10. // @grant GM_getValue
  11. // @grant GM_registerMenuCommand
  12. // @grant GM_unregisterMenuCommand
  13. // ==/UserScript==
  14.  
  15. (function() {
  16. 'use strict';
  17.  
  18. // Toggle states
  19. let isDevToolsDetectionBypassed = GM_getValue('isDevToolsDetectionBypassed', true);
  20. let isAutoCheckInEnabled = GM_getValue('isAutoCheckInEnabled', true);
  21. let isRightClickEnabled = GM_getValue('isRightClickEnabled', true);
  22. let isAbsoluteRightClickEnabled = GM_getValue('isAbsoluteRightClickEnabled', true);
  23. let isKeyboardShortcutsEnabled = GM_getValue('isKeyboardShortcutsEnabled', true);
  24.  
  25. // Hàm hiển thị thông báo
  26. function showNotification(message) {
  27. const notification = document.createElement('div');
  28. notification.innerHTML = message;
  29. notification.style.position = 'fixed';
  30. notification.style.bottom = '20px';
  31. notification.style.right = '20px';
  32. notification.style.backgroundColor = 'black';
  33. notification.style.color = 'white';
  34. notification.style.padding = '10px';
  35. notification.style.zIndex = '1000';
  36. document.body.appendChild(notification);
  37. setTimeout(() => {
  38. notification.remove();
  39. }, 2000);
  40. }
  41.  
  42. const menu = {
  43. ids: [], // Lưu trữ ID của các menu
  44.  
  45. register() {
  46. // Xóa các lệnh trước đó
  47. this.ids.forEach(id => GM_unregisterMenuCommand(id));
  48. this.ids = []; // Đặt lại danh sách ID menu
  49.  
  50. // Đăng ký các lệnh với trạng thái hiện tại
  51. this.ids.push(GM_registerMenuCommand(`${isDevToolsDetectionBypassed ? '✔️' : '❌'} Bt/Tt B Qua Phát Hin DevTools`, () => {
  52. isDevToolsDetectionBypassed = !isDevToolsDetectionBypassed;
  53. GM_setValue('isDevToolsDetectionBypassed', isDevToolsDetectionBypassed);
  54. showNotification(`B Qua Phát Hin DevTools đã ${isDevToolsDetectionBypassed ? 'bật' : 'tắt'}`);
  55. this.register(); // Cập nhật menu
  56. }));
  57.  
  58. this.ids.push(GM_registerMenuCommand(`${isAutoCheckInEnabled ? '✔️' : '❌'} Bt/Tt T Động Đim Danh`, () => {
  59. isAutoCheckInEnabled = !isAutoCheckInEnabled;
  60. GM_setValue('isAutoCheckInEnabled', isAutoCheckInEnabled);
  61. showNotification(`T Động Đim Danh đã ${isAutoCheckInEnabled ? 'bật' : 'tắt'}`);
  62. this.register(); // Cập nhật menu
  63. }));
  64.  
  65. this.ids.push(GM_registerMenuCommand(`${isAbsoluteRightClickEnabled ? '✔️' : '❌'} Bt/Tt Chut Phi Tuyt Đối`, () => {
  66. isAbsoluteRightClickEnabled = !isAbsoluteRightClickEnabled; // Toggle trạng thái
  67. GM_setValue('isAbsoluteRightClickEnabled', isAbsoluteRightClickEnabled); // Lưu trạng thái
  68. showNotification(`Chế độ Chut Phi Tuyt Đối đã ${isAbsoluteRightClickEnabled ? 'bật' : 'tắt'}`); // Thông báo người dùng
  69. this.register(); // Cập nhật menu
  70. location.reload(); // Tải lại trang để áp dụng thay đổi
  71. }));
  72.  
  73. this.ids.push(GM_registerMenuCommand(`${isKeyboardShortcutsEnabled ? '✔️' : '❌'} Bt/Tt Phím Chc Năng`, () => {
  74. isKeyboardShortcutsEnabled = !isKeyboardShortcutsEnabled;
  75. GM_setValue('isKeyboardShortcutsEnabled', isKeyboardShortcutsEnabled);
  76. showNotification(`Phím Chc Năng đã ${isKeyboardShortcutsEnabled ? 'bật' : 'tắt'}`);
  77. this.register(); // Cập nhật menu
  78. location.reload();
  79. }));
  80. }
  81. };
  82.  
  83. menu.register(); // Đăng ký menu ban đầu
  84.  
  85. // Bỏ qua hạn chế chuột phải
  86. if (isRightClickEnabled) {
  87. document.addEventListener('contextmenu', function(event) {
  88. event.stopPropagation(); // Ngăn chặn hành động mặc định
  89. event.preventDefault(); // Bổ sung để ngăn hoàn toàn việc hiển thị menu mặc định
  90. }, true);
  91. }
  92.  
  93. // Chế độ Chuột Phải Tuyệt Đối
  94. function enableAbsoluteRightClickMode() {
  95. const css = document.createElement('style');
  96. css.type = 'text/css';
  97. css.innerText = `* {
  98. -webkit-user-select: text !important;
  99. -moz-user-select: text !important;
  100. -ms-user-select: text !important;
  101. user-select: text !important;
  102. }`;
  103. document.head.appendChild(css);
  104.  
  105. const eventsToDisable = [
  106. 'contextmenu', 'selectstart', 'dragstart', 'mousedown', 'cut', 'copy', 'paste'
  107. ];
  108.  
  109. eventsToDisable.forEach(event => {
  110. document.addEventListener(event, function(e) {
  111. e.stopPropagation();
  112. }, true);
  113. });
  114.  
  115. document.addEventListener('keydown', function(event) {
  116. if (event.ctrlKey && event.key === '`') { // Ctrl + `
  117. if (confirm('Activate Absolute Right Click Mode!')) {
  118. enableAbsoluteRightClick();
  119. }
  120. }
  121. });
  122.  
  123. function enableAbsoluteRightClick() {
  124. eventsToDisable.forEach(event => {
  125. document.addEventListener(event, function(e) {
  126. e.stopPropagation();
  127. }, true);
  128. });
  129. }
  130. }
  131.  
  132. // Kiểm tra trạng thái chế độ chuột phải tuyệt đối
  133. if (isAbsoluteRightClickEnabled) {
  134. enableAbsoluteRightClickMode();
  135. }
  136.  
  137. // Bỏ qua hạn chế phím tắt
  138. if (isKeyboardShortcutsEnabled) {
  139. document.addEventListener('keydown', function(event) {
  140. // Danh sách các phím tắt bị vô hiệu hóa
  141. const disabledKeys = [
  142. { keyCode: 123 }, // F12
  143. { ctrlKey: true, shiftKey: true, keyCode: 73 }, // Ctrl+Shift+I
  144. { ctrlKey: true, shiftKey: true, keyCode: 74 }, // Ctrl+Shift+J
  145. { ctrlKey: true, shiftKey: true, keyCode: 67 }, // Ctrl+Shift+C
  146. { ctrlKey: true, keyCode: 85 }, // Ctrl+U
  147. { ctrlKey: true, keyCode: 83 }, // Ctrl+S
  148. { ctrlKey: true, keyCode: 80 }, // Ctrl+P
  149. { ctrlKey: true, keyCode: 65 }, // Ctrl+A
  150. { ctrlKey: true, keyCode: 67 }, // Ctrl+C
  151. { ctrlKey: true, keyCode: 86 }, // Ctrl+V
  152. { ctrlKey: true, shiftKey: true, keyCode: 86 } // Ctrl+Shift+V
  153. ];
  154.  
  155. // Kiểm tra nếu phím được nhấn là một trong các phím bị vô hiệu hóa
  156. for (const key of disabledKeys) {
  157. if (Object.keys(key).every(prop => event[prop] === key[prop])) {
  158. event.stopPropagation(); // Ngăn chặn hành động mặc định
  159. return true; // Trả về true để cho phép phím tắt
  160. }
  161. }
  162. });
  163. }
  164. // Hàm kiểm tra xem người dùng đã điểm danh hay chưa
  165. function hasCheckedIn() {
  166. const checkinMessage = document.querySelector('.checkin-details-link'); // Thay thế bằng lớp thực tế
  167. return checkinMessage && checkinMessage.textContent.includes('Hôm nay đã điểm danh');
  168. }
  169.  
  170. // Hàm kiểm tra xem người dùng đã đăng nhập hay chưa
  171. function isLoggedIn() {
  172. const userElement = document.querySelector('.display-name'); // Lớp chứa tên hiển thị của người dùng
  173. return userElement !== null; // Kiểm tra xem phần tử có tồn tại không
  174. }
  175.  
  176. // Đợi cho đến khi trang được tải hoàn toàn
  177. window.addEventListener('load', function() {
  178. // Kiểm tra xem đã điểm danh hay chưa
  179. if (hasCheckedIn()) {
  180. showNotification('Người dùng đã điểm danh.');
  181. return; // Dừng lại nếu đã điểm danh
  182. }
  183.  
  184. // Kiểm tra xem người dùng đã đăng nhập hay chưa
  185. if (!isLoggedIn()) {
  186. showNotification('Người dùng chưa đăng nhập.');
  187. return; // Dừng lại nếu chưa đăng nhập
  188. }
  189.  
  190. // Chọn nút "Điểm danh"
  191. const checkInButton = document.querySelector('a.initiate-checkin');
  192.  
  193. // Nhấp vào nút nếu tồn tại
  194. if (checkInButton) {
  195. checkInButton.click(); // Nhấp vào nút
  196. showNotification('Nút điểm danh đã được nhấn');
  197. } else {
  198. showNotification('Không tìm thấy nút điểm danh');
  199. }
  200. });
  201. })();

QingJ © 2025

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