Cellcraft.io - Game Settings 2

Thanks to cigoz (anda)

  1. // ==UserScript==
  2. // @name Cellcraft.io - Game Settings 2
  3. // @namespace http://tampermonkey.net/
  4. // @version 1.0.1
  5. // @description Thanks to cigoz (anda)
  6. // @author Attack - F8
  7. // @match https://cellcraft.io/
  8. // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. 'use strict';
  14.  
  15. const settings = {
  16. "Afk Botting": false,
  17. "Anti Afk": false,
  18. "Auto Split": false,
  19. "Auto Spawn": false
  20. };
  21. const $ = window.jQuery;
  22.  
  23. if(null != localStorage.getItem('custom-settings')) {
  24. const lastSettings = JSON.parse(localStorage.getItem('custom-settings'));
  25. for(let item in settings) {
  26. settings[item] = lastSettings[item];
  27. };
  28. };
  29. // SYMBOLS = INTERVALS / VARIABLES, DO NOT CHANGE!.
  30. let 鱂=+[],勤,鱀=+[],勉,鱁=+[],鱃,鱄;
  31. function change(e) {
  32. = e.clientX;
  33. = e.clientY;
  34. };
  35. const functions = {
  36. x: function() {}, b: function() {},
  37. autospawn: function(d) {
  38. if(d == true) {
  39. = setInterval(() => {
  40. if(document.getElementById("avModal").style.display == 'block') {
  41. setTimeout(function() {
  42. window.closeAdvert();
  43. setTimeout(function() {
  44. window.setNick(document.getElementById("nick").value);
  45. }, 2e3);
  46. }, 3e3);
  47. };
  48. }, 10);
  49. } else {
  50. clearInterval(勤);
  51. = null;
  52. };
  53. },
  54. autosplit: function(d) {
  55. if(d == true) {
  56. = setInterval(() => {
  57. $("#canvas").trigger($.Event('keydown', {keyCode: ' '.charCodeAt(0)}));
  58. $("#canvas").trigger($.Event('keyup', {keyCode: ' '.charCodeAt(0)}));
  59. }, 1);
  60. } else {
  61. clearInterval(勉);
  62. = null;
  63. };
  64. },
  65. afkbotting: function(d) {
  66. function triggerC() {
  67. $('#canvas').trigger($.Event('keyup', {keyCode: 'C'.charCodeAt(0)}));
  68. $('#canvas').trigger($.Event('keydown', {keyCode: 'C'.charCodeAt(0)}));
  69. };
  70.  
  71. function swi() {
  72. switch(鱂) {
  73. case 0:
  74. $('#canvas').trigger($.Event('mousemove', {clientX: document.getElementById("canvas").width / 2, clientY: -34e6}));
  75. break;
  76.  
  77. case 1:
  78. $('#canvas').trigger($.Event('mousemove', {clientX: 34e6, clientY: document.getElementById("canvas").height / 2}));
  79. break;
  80.  
  81. case 2:
  82. $('#canvas').trigger($.Event('mousemove', {clientX: document.getElementById("canvas").width / 2, clientY: 34e6}));
  83. break;
  84.  
  85. case 3:
  86. $('#canvas').trigger($.Event('mousemove', {clientX: -34e6, clientY: document.getElementById("canvas").height / 2}));
  87. break;
  88. };
  89. triggerC();
  90. };
  91. if(d == true) {
  92. = setInterval(function() {
  93. 鱂++;
  94. if(鱂 >= 4) {
  95. = 0;
  96. };
  97. swi();
  98. }, 3e3);
  99. } else {
  100. clearInterval(鱃);
  101. = null;
  102. $('#canvas').trigger($.Event('keyup', {keyCode: 'C'.charCodeAt(0)}));
  103. };
  104. },
  105. antiafk: function(d) {
  106. if(d == true) {
  107. document.getElementById("canvas").addEventListener("mousemove", change);
  108. = setInterval(function() {
  109. $("#canvas").trigger($.Event('mousemove', {clientX: - 1, clientY: 鱁}));
  110. $("#canvas").trigger($.Event('mousemove', {clientX: 鱀, clientY: 鱁}));
  111. }, 2e4);
  112. } else {
  113. document.getElementById("canvas").removeEventListener("mousemove", change, false);
  114. clearInterval(鱄);
  115. = null;
  116. };
  117. }
  118. };
  119. const newSettingNav = document.createElement('div');
  120. const newSettingBtn = document.createElement('button');
  121. newSettingBtn.setAttribute('settings-nav', 'game2');
  122. newSettingNav.setAttribute('settings', 'game2');
  123.  
  124. newSettingNav.classList.add("settings-page");
  125. newSettingNav.style.display = 'none';
  126.  
  127. newSettingBtn.onclick = function() {
  128. document.querySelectorAll('.modals .modal.settings .body .settings-nav button:not([settings-nav="game2"])').forEach(btn => {
  129. btn.classList.remove("active");
  130. btn.addEventListener("click", function() {
  131. newSettingBtn.classList.remove("active");
  132. newSettingNav.style.display = 'none';
  133. });
  134. });
  135. document.querySelectorAll('.modals .modal.settings .body .settings-page:not([settings="game2"])').forEach(wrap => {
  136. wrap.style.display = 'none';
  137. });
  138. newSettingBtn.classList.add("active");
  139. newSettingNav.style.display = 'block';
  140. };
  141. newSettingBtn.innerText = 'Game 2';
  142.  
  143. document.querySelector('.modals .modal.settings .body').appendChild(newSettingNav);
  144. document.querySelector('.modals .modal.settings .body .settings-nav').appendChild(newSettingBtn);
  145.  
  146. let b = 0, z = 1;
  147. for(let item in settings) {
  148. let x = b & 1;
  149. b++;
  150. x = !x;
  151.  
  152. const settingWrapper = document.createElement("div"),
  153. setting = document.createElement("div"),
  154. checkbox = document.createElement("div"),
  155. input = document.createElement("input"),
  156. label = document.createElement("label");
  157.  
  158. settingWrapper.classList.add("settings-wrapper");
  159.  
  160. setting.classList.add("setting");
  161.  
  162. checkbox.classList.add("checkbox");
  163.  
  164. input.type = 'checkbox';
  165. input.checked = settings[item];
  166. input.id = item.toLowerCase().replaceAll(' ', '');
  167. input.onchange = function() {
  168. settings[item] = input.checked;
  169. functions[input.id](input.checked);
  170. localStorage.setItem('custom-settings', JSON.stringify(settings));
  171. };
  172. functions[input.id](settings[item]);
  173.  
  174. label.setAttribute('for', input.id);
  175. label.append(document.createElement("span"), item);
  176.  
  177. x ? (newSettingNav.appendChild(settingWrapper), settingWrapper.appendChild(setting)) : (newSettingNav.lastChild.appendChild(setting));
  178. setting.appendChild(checkbox);
  179. checkbox.append(input, label);
  180. };
  181. })();