ProutexMacro v4 {Leading MooMoo.io Macro 2021}

Read the description in GreasyFork!

目前为 2021-05-07 提交的版本。查看 最新版本

  1. // ==UserScript==
  2. // @name ProutexMacro v4 {Leading MooMoo.io Macro 2021}
  3. // @namespace -
  4. // @version [4.0]...
  5. // @description Read the description in GreasyFork!
  6. // @author Discord: GoblinTime#2714 : Greasy Fork镜像: ♡⚠♡GoblinTime♡⚠♡
  7. // @match *://sandbox.moomoo.io/*
  8. // @match *://moomoo.io/*
  9. // @match *://dev.moomoo.io/*
  10. // @grant none
  11. // @require https://gf.qytechs.cn/scripts/368273-msgpack/code/msgpack.js?version=598723
  12. // @require http://code.jquery.com/jquery-3.3.1.min.js
  13. // @require https://code.jquery.com/ui/1.12.0/jquery-ui.min.js
  14. // @require https://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.3.0/jquery-confirm.min.js
  15. // @require https://cdn.jsdelivr.net/npm/msgpack-lite@0.1.26/dist/msgpack.min.js
  16. // @require https://cdn.jsdelivr.net/npm/fontfaceobserver@2.1.0/fontfaceobserver.standalone.min.js
  17. // ==/UserScript==
  18.  
  19. /* Add new colors for health bars */
  20. var ctxx = CanvasRenderingContext2D;
  21. if(ctxx.prototype.roundRect) {
  22. ctxx.prototype.roundRect = ((func) => function() {
  23. if (this.fillStyle == "#8ecc51"){ //All allys
  24. this.fillStyle = "rgba(0, 66, 0, 0.47)";
  25. } else if(this.fillStyle == "#cc5151") { // All enemy
  26. this.fillStyle = "rgba(112, 6, 0, 0.47)";
  27. } else if(this.fillStyle == "#3d3f42") { // Background health bar
  28. this.fillStyle = "rgba(82, 82, 82, 0.47)";
  29. }
  30. return func.call(this, ...arguments);
  31. })
  32. (ctxx.prototype.roundRect);
  33. }
  34. // Start Resource
  35. function StartRes() {
  36. window.follmoo("moofoll", 1);
  37. }
  38. StartRes();
  39.  
  40. // Add <element for HTML>
  41. var meta = document.createElement('meta');
  42. meta.name = "viewport";
  43. meta.content = "initial-scale=1, maximum-scale=1, user-scalable=no";
  44. document.getElementsByTagName('head')[0].appendChild(meta);
  45. // Menu
  46. $("body").after(`
  47.  
  48. <button onclick="InfoMenu()" class="NameMacro">ProutexMacro v4</button>
  49. <div id="infomenu">
  50. <div class="nameblock">Ping and Fps:</div>
  51. <hr>
  52. <div id="ping" class="text">.</div>
  53. <div id="fps" class="text">.</div>
  54. <hr>
  55. <div class="nameblock">Switches:</div>
  56. <hr>
  57. <ul>
  58. <li></label><label><div class="text">Pro-Map<input type="checkbox" id="NewMap"><span class="checkmark"></div></li>
  59. <li></label><label><div class="text">Show-Cps<input type="checkbox" id="CPSTOGGLER"><span class="checkmark"></div></li>
  60. </ul>
  61. <hr>
  62. <div class="nameblock">Versions:</div>
  63. <hr>
  64.  
  65. <div class="text">
  66. Version-4:
  67. <ul>
  68. <li>1. Menu.<br> To open the menu, click on the text (ProutexMacro)! To close it, click on any place on your screen except the menu!
  69. </li>
  70. <li>2. Remove all hats and accessories. Press - ( B )
  71. </li>
  72. <li>3. AutoReload.<br> The page will automatically reload when it crashes
  73. </li>
  74. <li>4. Big Store.<br> The store has become much bigger!
  75. </li>
  76. <li>5. Pro Map.<br> The map shows all the biomes!
  77. </li>
  78. <li>6. Show your cps.<br> Shows your CPS when clicked!
  79. </li>
  80. </ul>
  81. <hr>
  82. Version-3:
  83. <ul>
  84. <li>1. I changed the color of the health bars! Now they are semi-transparent!
  85. </li>
  86. <li>2. Made the soldier-Q switch now you need to click on ( H ) to turn it on!
  87. </li>
  88. <li>3. Now you can hide the leaderboard on ( K ) . When you press the ( K ) button again, the leaderboard will appear again!
  89. </li>
  90. <li>4. When you press ( Y ), there will be a BullTick!<br>
  91. Bulltick is when a bull helmet hat appears, and when it hits you, your shame counter resets after taking 5 points of damage!
  92. </li>
  93. </ul>
  94. <hr>
  95. Version-2:
  96. <ul>
  97. <li>1. Start Resource.
  98. </li>
  99. <li>2. Automatically sends a request to the very first clan in the list. Press - ( Up-Arrow )
  100. </li>
  101. <li>3. SoldierHelmet+XWings. Press - ( Q )
  102. </li>
  103. <li>4. I removed the "LeftAndRightClick: Off" radio button.<br>
  104. Now when you disable this feature, nothing will happen.<br>
  105. But I left the text when turning on!<br>
  106. When enabled, it will be "LeftAndRightClick: On".
  107. </li>
  108. </ul>
  109. <hr>
  110. Version-1:
  111. <ul>
  112. <li>1. Release!
  113. </li>
  114. <li>2. BullHelmet+BloodWings. Press - ( R )
  115. </li>
  116. <li>3. SoldierHelmet+XWings. Press - ( T )
  117. </li>
  118. <li>4. TankGear+BlackWings. Press - ( Z )
  119. </li>
  120. <li>5. Booster+Tail. Press - ( Shift )
  121. </li>
  122. <li>6. Responsible for the function switch! Press - ( J )<br>
  123. When you turn it on, an inscription will appear in the upper-left corner!<br>
  124. When you are enabled, you can click the left or right mouse button!<br>
  125. And they will wear hats! <=( Left ) responsible for: BullHelmet+SpikeGear+TurretGear+SoldierHelmet=><br>
  126. <=( Right ) responsible for: TankGear+SamuraiArmor+SoldierHelmet=>
  127. </li>
  128. </ul>
  129. <hr>
  130. </div>
  131.  
  132.  
  133.  
  134. </div>
  135. <style>
  136. button:active,
  137. button:focus {
  138. outline: none !important;
  139. }
  140. button::-moz-focus-inner {
  141. border: 0 !important;
  142. }
  143. .nameblock {
  144. font-size: 20px;
  145. color: #dbdbdb;
  146. text-align: center;
  147. }
  148. li {
  149. font-size: 13px;
  150. }
  151. .text {
  152. display: block;
  153. font-size: 17px;
  154. color: #fff;
  155. text-align: left;
  156. }
  157. .NameMacro{
  158. cursor: pointer;
  159. position: absolute;
  160. background: linear-gradient(to right, red, orange, yellow, green, cyan, blue, violet);
  161. background-size: 400% 400%;
  162. -webkit-background-clip: text;
  163. -webkit-text-fill-color: transparent;
  164. -webkit-animation: colorR 20s ease infinite;
  165. animation: colorR 20s ease infinite;
  166. font-family: "Hammersmith One";
  167. display: block !important;
  168. top: 5px;
  169. left: 720px;
  170. font-size: 17px;
  171. }
  172. ::-webkit-scrollbar { width: 2.7px; height: 3px;}
  173. ::-webkit-scrollbar-button { background-color: #000000; }
  174. ::-webkit-scrollbar-track { background-color: #999;}
  175. ::-webkit-scrollbar-track-piece { background-color: rgba(0, 0, 0, 0.50);}
  176. ::-webkit-scrollbar-thumb { height: 50px; background-color: #666; border-radius: 3px;}
  177. ::-webkit-scrollbar-corner { background-color: #999;}}
  178. ::-webkit-resizer { background-color: #666;}
  179. #infomenu {
  180. overflow-y: scroll;
  181. overflow-x: hidden;
  182. padding: 20px;
  183. position: absolute;
  184. display: none;
  185. background: rgba(102, 102, 102, 0.25);
  186. width: 310px;
  187. height: 450px;
  188. border: 2px solid black;
  189. border-radius: 4px;
  190. top: 80px;
  191. left: 20px;
  192. z-index: 1;
  193. }
  194.  
  195. </style>
  196. <script>
  197. function InfoMenu() {
  198. $("#infomenu").css({
  199. "display" : "block"
  200. });
  201. }
  202. $(document).mouseup(function (e) {
  203. var container = $("#infomenu");
  204. if (container.has(e.target).length === 0){
  205. container.hide();
  206. }
  207. });
  208. (function() {
  209. var UPDATE_DELAY = 700;
  210. var lastUpdate = 0;
  211. var frames = 0;
  212. var values;
  213. function updateCounter() {
  214. var now = Date.now();
  215. var elapsed = now - lastUpdate;
  216. if (elapsed < UPDATE_DELAY) {
  217. ++frames;
  218. } else {
  219. var fps = Math.round(frames / (elapsed / 1000));
  220. document.getElementById("fps").textContent ="Fps: " + fps ;
  221. frames = 0;
  222. lastUpdate = now;
  223. }
  224. requestAnimationFrame(updateCounter);
  225. }
  226. lastUpdate = Date.now();
  227. requestAnimationFrame(updateCounter);
  228. })();
  229. setInterval(()=>{
  230. document.getElementById("ping").textContent = "Ping: " + window.pingTime;
  231. },0);
  232. </script>
  233. `);
  234. $("body").after(`
  235. <div id="ShowMenu">
  236. </span>
  237. <div id="addtext">LeftAndRightClick: On</div>
  238. <div id="addtext0">Soldier-Q: On</div>
  239. <div id="addtext1">Left-Click</div>
  240. <div id="addtext2">Right-Click</div>
  241. <style>
  242. #ShowMenu {
  243. position:absolute !important;
  244. display:block;
  245. top: 5px;
  246. left: 5px;
  247. width: auto;
  248. height: auto;
  249. text-align: center;
  250. }
  251. #addtext,#addtext1,#addtext2,#addtext0{
  252. display: none;
  253. color: #fff;
  254. background: linear-gradient(to right, red, orange, yellow, green, cyan, blue, violet);
  255. background-size: 400% 400%;
  256. font-size: 20px;
  257. -webkit-background-clip: text;
  258. -webkit-text-fill-color: transparent;
  259. -webkit-animation: colorR 20s ease infinite;
  260. animation: colorR 20s ease infinite;
  261. }
  262. @-webkit-keyframes colorR {
  263. 0% { background-position: 0% 50% }
  264. 50% { background-position: 100% 50% }
  265. 100% { background-position: 0% 50% }
  266. }
  267. @keyframes colorR {
  268. 0% { background-position: 0% 50% }
  269. 50% { background-position: 100% 50% }
  270. 100% { background-position: 0% 50% }
  271. }
  272. </style>
  273. <script>
  274. let tm;
  275. let t = "Moo Moo";
  276. function change(icon, text) {
  277. document.querySelector('head title').innerHTML = text;
  278. document.querySelector('link[rel="shortcut icon"]').setAttribute('href',
  279. icon);
  280. }
  281. window.onblur = () => {
  282. tm = setTimeout(() => {
  283. change("https://cdn.discordapp.com/attachments/837884067822436382/838321077775237140/w16h161372343790hearts16.png",
  284. "😓COMEBACK!😓");
  285. }, 5000);
  286. }
  287. window.onfocus = () => {
  288. change("https://sandbox.moomoo.io/img/favicon.png?v=1", t);
  289. }
  290. </script>
  291. `);
  292. var AutoReload = setInterval(() => {
  293. if(document.getElementById("loadingText").textContent=="disconnectedreload"){
  294. window.onbeforeunload = null;
  295. clearInterval(AutoReload)
  296. window.location.reload()
  297. }
  298. });
  299. var Soldier_Q = false;
  300. var Clicks = false;
  301. const cvs = document.getElementById("gameCanvas");
  302. cvs.addEventListener("mousedown", clicks, false);
  303. function clicks(e) {
  304. if (e.button == 0) { // Left Click
  305.  
  306. if (Clicks == true) {
  307. document.getElementById('addtext1').style
  308. .display = "block";
  309. window.storeEquip(0, 1);
  310. window.storeEquip(7);
  311. window.storeEquip(18, 1);
  312. setTimeout(function() {
  313. window.storeEquip(11);
  314. window.storeEquip(21, 1);
  315. }, 100);
  316. setTimeout(function() {
  317. window.storeEquip(53);
  318. window.storeEquip(21, 1);
  319. }, 180);
  320. setTimeout(function() {
  321. window.storeEquip(6);
  322. window.storeEquip(13, 1);
  323. }, 260);
  324. setTimeout(function() {
  325. document.getElementById('addtext1').style
  326. .display = "none";
  327. }, 600);
  328. }
  329. }
  330. if (e.button == 2) { // Right Click
  331. if (Clicks == true) {
  332. document.getElementById('addtext2').style
  333. .display = "block";
  334. window.storeEquip(0, 1);
  335. window.storeEquip(20);
  336. window.storeEquip(19, 1);
  337. setTimeout(function() {
  338. window.storeEquip(40);
  339. window.storeEquip(19, 1);
  340. }, 120);
  341. setTimeout(function() {
  342. window.storeEquip(6);
  343. window.storeEquip(19, 1);
  344. }, 200);
  345. setTimeout(function() {
  346. document.getElementById('addtext2').style
  347. .display = "none";
  348. }, 600);
  349. }
  350. }
  351. }
  352. var leaderBlock = document.getElementById("leaderboard");
  353. document.addEventListener('keydown', (e) => { // Add event
  354. switch (e.keyCode) {
  355. case 72: // [Button]- K
  356. if(Soldier_Q == false){
  357. Soldier_Q = true;
  358. document.getElementById('addtext0').style
  359. .display = "block";
  360. } else {
  361. Soldier_Q = false;
  362. document.getElementById('addtext0').style
  363. .display = "none";
  364. }
  365. break;
  366. case 74: // [Button]- J
  367. if (Clicks == false) {
  368. document.getElementById('addtext').style
  369. .display = "block";
  370. Clicks = true;
  371. } else {
  372. document.getElementById('addtext').style
  373. .display = "none";
  374. Clicks = false;
  375. }
  376. break;
  377. case 75: // [Button]- K
  378. if (leaderBlock.style.display == "block") {
  379. $("killCounter").css({"margin": "0"});
  380. $("killCounter").css({"top": "0px"});
  381. leaderBlock.style.display = "none";
  382. } else {
  383. $("killCounter").css({"top": "230px"});
  384. leaderBlock.style.display = "block";
  385. }
  386. break;
  387. case 66: // [Button]- B
  388. window.storeEquip(0,1); // [Equip, Acc]- 0
  389. window.storeEquip(0); // [Equip, Hat]- 0
  390. break;
  391. // Bull Tick::
  392. case 89: // [Button]- Y
  393. console.log("Bull Tick");
  394. window.storeEquip(7); // [Equip, Hat]- BullHelmet
  395. setTimeout(() => {
  396. window.storeEquip(6); // [Equip, Hat]- SoldierGear
  397. },800);
  398. break;
  399. case 38: // [Button]- Up Arrow
  400. window.sendJoin(0); // Send a request to the very first clan
  401. break;
  402. case 82: // [Button]- R
  403. console.log("Bull, Blood[Wings]");
  404. window.storeEquip(0, 1);
  405. window.storeBuy(7); // [Buy, Hat]- BullHelmet
  406. window.storeBuy(18, 1); // [Buy, Acc]- Blood Wings
  407. window.storeEquip(7); // [Equip, Hat]- BullHelmet
  408. window.storeEquip(21, 1); // [Equip, Acc]- Blood Wings
  409. break;
  410. case 81: // [Button]- Q
  411. if(Soldier_Q == true){
  412. console.log("Soldier, X[Wings]");
  413. window.storeEquip(0, 1);
  414. window.storeBuy(6); // [Buy, Hat]- SoldierGear
  415. window.storeBuy(21, 1); // [Buy, Acc]- X Wings
  416. window.storeEquip(6); // [Equip, Hat]- SoldierGear
  417. window.storeEquip(21, 1); // [Equip, Acc]- X Wings
  418. }
  419. break;
  420. case 16: // [Button]- Shift
  421. console.log("Boost, Tail");
  422. window.storeEquip(0, 1);
  423. window.storeBuy(12); // [Buy, Hat]- Booster
  424. window.storeBuy(11, 1); // [Buy, Acc]- Tail
  425. window.storeEquip(12); // [Equip, Hat]- Booster
  426. window.storeEquip(11, 1); // [Equip, Acc]- X Wings
  427. break;
  428. case 84: // [Button]- T
  429. console.log("Soldier, X[Wings]");
  430. window.storeEquip(0, 1);
  431. window.storeBuy(6); // [Buy, Hat]- Soldier
  432. window.storeBuy(21, 1); // [Buy, Acc]- X Wings
  433. window.storeEquip(6); // [Equip, Hat]- Soldier
  434. window.storeEquip(21, 1); // [Equip, Acc]- X Wings
  435. break;
  436. case 90: // [Button]- Z
  437. console.log("Tank, Black[Wings]");
  438. window.storeEquip(0, 1);
  439. window.storeBuy(40); // [Buy, Hat]- Tank
  440. window.storeBuy(19, 1); // [Buy, Acc]- Black Wings
  441. window.storeEquip(40); // [Equip, Hat]- Tank
  442. window.storeEquip(19, 1); // [Equip, Acc]- Black Wings
  443. break;
  444. }
  445. });
  446. // Toggler Cps
  447. var cpsss = document.querySelector("#CPSTOGGLER")
  448. cpsss.addEventListener('change', function() {
  449. if (this.checked) {
  450. $("#cpss").css("display", "block");
  451. } else {
  452. $("#cpss").css("display", "none");
  453. }
  454. });
  455. // Toggler Map
  456. var NewMapp = document.querySelector("#NewMap")
  457. NewMapp.addEventListener('change', function() {
  458. if (this.checked) {
  459. $("#mapDisplay").css("background", "url('https://wormax.org/chrome3kafa/moomooio-background.png')");
  460. } else {
  461. $("#mapDisplay").css("background", "rgba(0, 0, 0, 0.25)");
  462. }
  463. })
  464. $("killCounter").css({"top": "230px"});
  465. /* Instructions for adding items: You need to put this code in a comment here is how I commented out this text */
  466. // /*
  467. document.getElementById("storeHolder").style = "height: 1500px; width: 450px;"
  468. document.getElementById('gameName').innerText = 'ProutexMacro';
  469. document.getElementById("moomooio_728x90_home").style.display = "none";
  470. $("#moomooio_728x90_home").parent().css({display: "none"});
  471. $("#moomooio_728x90_home").parent().css({"display" : "none"});
  472. document.getElementById("promoImg").remove();
  473. document.getElementById('adCard').remove();
  474. $("#youtuberOf").remove();
  475. $("#followText").remove();
  476. $("#promoImgHolder").remove();
  477. $("#twitterFollow").remove();
  478. $("#joinPartyButton").remove();
  479. $("#linksContainer2").remove();
  480. $("#partyButton").remove();
  481. $("#youtubeFollow").remove();
  482. $("#adCard").remove();
  483. $("#adBlock").remove();
  484. $("#mobileInstructions").remove();
  485. $("#downloadButtonContainer").remove();
  486. $("#mobileDownloadButtonContainer").remove();
  487. $(".downloadBadge").remove();
  488. // */
  489. setTimeout(() => {
  490. document.getElementById('ot-sdk-btn-floating').remove();
  491. document.getElementById('pre-content-container').remove();
  492. }, 1500);
  493. var cps = 0;
  494. var click = 1;
  495. $("#gameCanvas").mousedown(function(e){
  496. if(e.which == 1 && click == 1){
  497. cps = (cps + 1)
  498. setTimeout( () => {
  499. cps = (cps - 1)
  500. }, 950);
  501. }
  502. });
  503. $("#gameCanvas").mousedown(function(e){
  504. if(e.which == 3 && click == 1){
  505. cps = (cps + 1)
  506. setTimeout( () => {
  507. cps = (cps - 1)
  508. }, 950);
  509. }
  510. });
  511. document.addEventListener("mousedown", buttonPress, false);
  512. function buttonPress(e) {
  513. if(e.button == 1 && click == 1){
  514. cps = (cps + 1)
  515. setTimeout( () => {
  516. cps = (cps - 1)
  517. }, 950);
  518. }
  519. }
  520.  
  521. var cpsM = document.createElement("div");
  522. cpsM.style.padding = "5px";
  523. cpsM.id = "cpss";
  524. cpsM.style.font = "30px Arial";
  525. cpsM.style.display = "none";
  526. cpsM.style.position = "fixed";
  527. cpsM.style.top = "40%";
  528. cpsM.style.left = "0%";
  529. cpsM.style.color = "#fff";
  530. cpsM.textContent = "Loading...";
  531. document.body.appendChild(cpsM);
  532. setInterval(()=>{
  533. cpsM.textContent = "Cps: " + cps;
  534. }, 0);
  535.  
  536.  
  537.  
  538.  

QingJ © 2025

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