Penguin Client

Lots of mods

安裝腳本?
作者推薦腳本

您可能也會喜歡 MooMoo.io Worthless Bots

安裝腳本
  1. // ==UserScript==
  2. // @name Penguin Client
  3. // @version 1.0
  4. // @description Lots of mods
  5. // @author Joe (helped a lot by flower)
  6. // @icon data:image/png;base64,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
  7. // @match *://*.moomoo.io/*
  8. // @match *://*.sandbox.moomoo.io/*
  9. // @require https://gf.qytechs.cn/scripts/456235-moomoo-js/code/MooMoojs.js?version=1144167
  10. // @run-at document-end
  11. // @grant none
  12. // @namespace https://gf.qytechs.cn/users/889950
  13. // ==/UserScript==
  14. /*
  15. AutoInsta with Musket/Spike
  16. AutoTrap/Spike Placer
  17. Quad Spike, trap, or turret
  18. Triple mills
  19. MiniBoostSpike/Regular BoostSpike
  20. Helpful menu information
  21. Hat hotkeys
  22. Normal hotkeys
  23. Customizable autoheal
  24.  
  25. */
  26. // Setup info
  27. const MooMoo = (function MooMooJS_beta() {})[69];
  28. let activePlayerManager = MooMoo.ActivePlayerManager;
  29. let players = activePlayerManager.players;
  30.  
  31. // Instakill:
  32.  
  33. var autoinsta = false;
  34. var instaType = 1
  35.  
  36. function Equip(id, type) {
  37. MooMoo.sendPacket("13c" , 0, id, type)
  38. }
  39. var isReloaded = true
  40.  
  41. function instaMusket1() {
  42. let nearestEnemyAngle = activePlayerManager.getClosestEnemyAngle();
  43. MooMoo.sendPacket("c", 0, null)
  44. isReloaded = false
  45. let primary = MooMoo.myPlayer.inventory.primary;
  46. MooMoo.sendPacket("13c" , 0, 7, 0)
  47. MooMoo.sendPacket("13c", 0, 0, 1)
  48. MooMoo.sendPacket("13c", 0, 21, 1)
  49. MooMoo.sendPacket("5", MooMoo.myPlayer.inventory.primary, true);
  50. MooMoo.myPlayer.hit(nearestEnemyAngle);
  51. }
  52.  
  53. function instaMusket2() {
  54. let secondary = MooMoo.myPlayer.inventory.secondary;
  55. setTimeout(() => {
  56. MooMoo.sendPacket("13c", 0, 53, 0)
  57. MooMoo.sendPacket("5", MooMoo.myPlayer.inventory.secondary, true);
  58. let nearestEnemyAngle = activePlayerManager.getClosestEnemyAngle();
  59. MooMoo.myPlayer.hit(nearestEnemyAngle);
  60. }, 75);
  61. setTimeout(() => {
  62. MooMoo.sendPacket("13c", 0, 6, 0)
  63. }, 150)
  64. }
  65.  
  66. function instaMusketReload() {
  67. let primary = MooMoo.myPlayer.inventory.primary;
  68. let secondary = MooMoo.myPlayer.inventory.secondary;
  69. setTimeout(() => {
  70. MooMoo.sendPacket("5", MooMoo.myPlayer.inventory.secondary, true);
  71. }, 300);
  72. setTimeout(() => {
  73. MooMoo.sendPacket("5", MooMoo.myPlayer.inventory.primary, true);
  74. }, 2500);
  75. setTimeout(() => {
  76. MooMoo.sendPacket("13c", 0, 12, 0)
  77. MooMoo.sendPacket("13c", 0, 0, 1)
  78. MooMoo.sendPacket("13c", 0, 11, 1)
  79. }, 3500);
  80. setTimeout(() => {
  81. isReloaded = true
  82. }, 4000)
  83. }
  84.  
  85. function instaSpike1() {
  86. MooMoo.sendPacket("c", 0, null)
  87. isReloaded = false
  88. let primary = MooMoo.myPlayer.inventory.primary;
  89. MooMoo.sendPacket("13c" , 0, 7, 0)
  90. MooMoo.sendPacket("13c", 0, 0, 1)
  91. MooMoo.sendPacket("13c", 0, 21, 1)
  92. MooMoo.sendPacket("5", MooMoo.myPlayer.inventory.primary, true);
  93. let nearestEnemyAngle = activePlayerManager.getClosestEnemyAngle();
  94. MooMoo.myPlayer.hit(nearestEnemyAngle);
  95. }
  96.  
  97. function instaSpike2() {
  98. setTimeout(() => {
  99. MooMoo.sendPacket("13c", 0, 53, 0)
  100. let spike = MooMoo.myPlayer.inventory.spike;
  101. let nearestEnemyAngle = activePlayerManager.getClosestEnemyAngle();
  102. MooMoo.myPlayer.place(spike, nearestEnemyAngle + anglechange(35));
  103. MooMoo.myPlayer.place(spike, nearestEnemyAngle + anglechange(315));
  104. }, 100);
  105. setTimeout(() => {
  106. MooMoo.sendPacket("13c", 0, 6, 0)
  107. }, 150)
  108. }
  109.  
  110. function instaSpikeReload() {
  111. let primary = MooMoo.myPlayer.inventory.primary;
  112. setTimeout(() => {
  113. MooMoo.sendPacket("5", MooMoo.myPlayer.inventory.primary, true);
  114. }, 200);
  115. setTimeout(() => {
  116. MooMoo.sendPacket("13c" , 0, 7, 0)
  117. MooMoo.sendPacket("13c", 0, 0, 1)
  118. MooMoo.sendPacket("13c", 0, 21, 1)
  119. }, 500);
  120. setTimeout(() => {
  121. isReloaded = true
  122. }, 1000)
  123. }
  124.  
  125. // Normal hotkeys
  126.  
  127. function HoldSpike() {
  128. let myPlayer = MooMoo.myPlayer;
  129. MooMoo.sendPacket("5", MooMoo.myPlayer.inventory.spike, false)
  130. }
  131. function HoldTrap() {
  132. let myPlayer = MooMoo.myPlayer;
  133. MooMoo.sendPacket("5", MooMoo.myPlayer.inventory.trap, false)
  134. }
  135. function HoldTeleport() {
  136. let myPlayer = MooMoo.myPlayer;
  137. MooMoo.sendPacket("5", MooMoo.myPlayer.inventory.turret, false)
  138. }
  139. function anglechange(angle) {
  140. return angle * 0.01745329251;
  141. }
  142. // Hacked hotkeys
  143. function QuadSpike() {
  144. let myPlayer = MooMoo.myPlayer;
  145. let spike = MooMoo.myPlayer.inventory.spike;
  146. MooMoo.myPlayer.place(spike, myPlayer.dir + anglechange(0));
  147. MooMoo.myPlayer.place(spike, myPlayer.dir + anglechange(90));
  148. MooMoo.myPlayer.place(spike, myPlayer.dir + anglechange(180));
  149. MooMoo.myPlayer.place(spike, myPlayer.dir + anglechange(270));
  150. }
  151.  
  152. function QuadBoost() {
  153. let myPlayer = MooMoo.myPlayer;
  154. let Boost = MooMoo.myPlayer.inventory.boostPad;
  155. MooMoo.myPlayer.place(Boost, myPlayer.dir + anglechange(0));
  156. MooMoo.myPlayer.place(Boost, myPlayer.dir + anglechange(90));
  157. MooMoo.myPlayer.place(Boost, myPlayer.dir + anglechange(180));
  158. MooMoo.myPlayer.place(Boost, myPlayer.dir + anglechange(270));
  159. }
  160. var millDir = "null"
  161. function TripMill() {
  162. let myPlayer = MooMoo.myPlayer;
  163. let mill = MooMoo.myPlayer.inventory.mill
  164. if (millDir == "A") {
  165. MooMoo.myPlayer.place(mill, anglechange(0));
  166. MooMoo.myPlayer.place(mill, anglechange(90));
  167. MooMoo.myPlayer.place(mill, anglechange(270));
  168. }
  169. if (millDir == "S") {
  170. MooMoo.myPlayer.place(mill, anglechange(0));
  171. MooMoo.myPlayer.place(mill, anglechange(180));
  172. MooMoo.myPlayer.place(mill, anglechange(270));
  173. }
  174. if (millDir == "W") {
  175. MooMoo.myPlayer.place(mill, anglechange(0));
  176. MooMoo.myPlayer.place(mill, anglechange(90));
  177. MooMoo.myPlayer.place(mill, anglechange(180));
  178. }
  179. if (millDir == "D") {
  180. MooMoo.myPlayer.place(mill, anglechange(90));
  181. MooMoo.myPlayer.place(mill, anglechange(180));
  182. MooMoo.myPlayer.place(mill, anglechange(270));
  183. }
  184. }
  185.  
  186. function QuadTurret() {
  187. let myPlayer = MooMoo.myPlayer;
  188. let Turret = MooMoo.myPlayer.inventory.turret;
  189. MooMoo.myPlayer.place(Turret, myPlayer.dir + anglechange(0));
  190. MooMoo.myPlayer.place(Turret, myPlayer.dir + anglechange(90));
  191. MooMoo.myPlayer.place(Turret, myPlayer.dir + anglechange(180));
  192. MooMoo.myPlayer.place(Turret, myPlayer.dir + anglechange(270));
  193. }
  194.  
  195. function MiniBoostSpike() {
  196. let myPlayer = MooMoo.myPlayer;
  197. let spike = MooMoo.myPlayer.inventory.spike;
  198. let Boost = MooMoo.myPlayer.inventory.boostPad;
  199. let nearestEnemyAngle = activePlayerManager.getClosestEnemyAngle();
  200. let nearestEnemyDistance = activePlayerManager.getClosestEnemyDistance();
  201. MooMoo.myPlayer.place(Boost, nearestEnemyAngle, anglechange(0));
  202. setTimeout(() => {
  203. MooMoo.myPlayer.place(spike, myPlayer.dir + anglechange(0));
  204. MooMoo.myPlayer.place(spike, myPlayer.dir + anglechange(90));
  205. MooMoo.myPlayer.place(spike, myPlayer.dir + anglechange(180));
  206. MooMoo.myPlayer.place(spike, myPlayer.dir + anglechange(270));
  207. }, nearestEnemyDistance);
  208. }
  209.  
  210. function BoostSpike() {
  211. let myPlayer = MooMoo.myPlayer;
  212. let spike = MooMoo.myPlayer.inventory.spike;
  213. let Boost = MooMoo.myPlayer.inventory.boostPad;
  214. let nearestEnemyAngle = activePlayerManager.getClosestEnemyAngle();
  215. MooMoo.myPlayer.place(Boost, nearestEnemyAngle + anglechange(0));
  216. MooMoo.myPlayer.place(spike, nearestEnemyAngle + anglechange(90));
  217. MooMoo.myPlayer.place(spike, nearestEnemyAngle + anglechange(270));
  218. }
  219.  
  220. // AutoFighter
  221. var autofight = false;
  222. var Traper = "trap";
  223. var autoReplacer = false;
  224. var buildsNearPlayer = []
  225.  
  226. function automaticFighter() {
  227. let nearestEnemyDistance = activePlayerManager.getClosestEnemyDistance();
  228. let myPlayer = MooMoo.myPlayer;
  229. let trap = MooMoo.myPlayer.inventory.boostPad;
  230. let spike = MooMoo.myPlayer.inventory.spike;
  231. setTimeout(() => {
  232. if (nearestEnemyDistance < 300 && nearestEnemyDistance !== null) {
  233. if (Traper == "spike") {
  234. let nearestEnemyAngle = activePlayerManager.getClosestEnemyAngle();
  235. MooMoo.myPlayer.place(spike, nearestEnemyAngle);
  236. }
  237. }
  238. if (nearestEnemyDistance < 200 && nearestEnemyDistance !== null) {
  239. if (Traper == "trap") {
  240. let nearestEnemyAngle = activePlayerManager.getClosestEnemyAngle();
  241. MooMoo.myPlayer.place(trap, nearestEnemyAngle);
  242. }
  243. }
  244. }, 200)
  245. }
  246.  
  247. // Visuals
  248.  
  249. var AUTOHEAL_SPEED = 100 // make lower if you clown too fast
  250. var autoheal_on = true
  251.  
  252. const setStyles = element => {
  253. const styles = {
  254. position: "absolute"
  255. , top: "0px"
  256. , left: "0px"
  257. , color: "cyan"
  258. , fontFamily: "times"
  259. , fontSize: "20px"
  260. };
  261.  
  262. Object.entries(styles)
  263. .forEach(([key, value]) => {
  264. element.style[key] = value;
  265. });
  266. };
  267. const displayGameInfo = () => {
  268. let myPlayer = MooMoo.myPlayer
  269. const gameInfoElement = document.createElement("div");
  270. setStyles(gameInfoElement);
  271. gameInfoElement.id = "playerPosition";
  272. document.body.appendChild(gameInfoElement);
  273. const GameUI = document.querySelectorAll("#chatBox, #upgradeHolder, #upgradeCounter, #allianceButton, #storeButton, #storeTab, #ageBar, #topInfoHolder, #resDisplay, #notificationDisplay, #chatButton, #mapDisplay, #storeHolder, #allianceHolder, #ageText");
  274. const mainMenuName = document.getElementById("gameName");
  275. const pingDisplay = document.getElementById("pingDisplay");
  276. const mainMenu = document.getElementById("mainMenu");
  277. const informationCard = document.getElementById("guideCard");
  278. const menuCard = document.getElementById("setupCard");
  279. const ad = document.getElementById("promoImgHolder");
  280. const death = document.getElementById("diedText");
  281. GameUI.forEach(element => {
  282. if (element.id !== "upgradeHolder") {
  283. if (element.id !== "upgradeCounter") {
  284. if (element.id !== "ageText") {
  285. if (element.id !== "storeHolder") {
  286. element.style.backgroundColor = "DodgerBlue";
  287. element.style.color = "LightCyan";
  288. }
  289. }
  290. }
  291. }
  292. if (element.id == "topInfoHolder" ) {
  293. element.style.backgroundImage = "url('data:image/jpeg;base64,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')";
  294.  
  295. }
  296. if (element.id == "upgradeCounter") {
  297. element.style.color = "blue";
  298. }
  299. if (element.id == "ageText") {
  300. element.style.color = "blue";
  301. }
  302. });
  303. pingDisplay.style.color = "cyan";
  304. mainMenuName.textContent = "Pengiun Client";
  305. mainMenuName.style.color = "cyan";
  306. mainMenuName.style.fontSize = "150px";
  307. mainMenu.style.backgroundImage = "url('data:image/jpeg;base64,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')";
  308. informationCard.style.backgroundColor = "skyblue";
  309. menuCard.style.backgroundColor = "darkblue";
  310. ad.remove();
  311. death.textContent = "Don't give up!";
  312. death.style.color = "aqua";
  313. const updateGameInfo = () => {
  314. var nearestEnemyDistance = activePlayerManager.getClosestEnemyDistance();
  315. var nearestEnemyAngle = activePlayerManager.getClosestEnemyAngle();
  316. document.getElementById("playerPosition")
  317. .innerText = `Auto_Placer: ${(autofight)} ~ 'O'
  318. Auto_RePlacer: ${(autoReplacer)} ~ ']'
  319. Spike/Trap Placer: ${(Traper)} ~ 'ArrowLeft'
  320. -------------------------------------------------------
  321. Anti_Insta: ${(isHeal)} ~ Hold Left Click
  322. Auto_heal: ${(autoheal_on)} ~ '9'
  323. Auto_heal Delay: ${(AUTOHEAL_SPEED)} MS ~ '-'/'='
  324. -------------------------------------------------------
  325. Insta_Reload: ${(isReloaded)}
  326. Auto_insta: ${(autoinsta)} ~ Key: [
  327. Insta_Type: ${(instaType)} ~ Key: BackQuote;
  328. -------------------------------------------------------
  329. Coords: ${(Math.round(MooMoo.myPlayer.x))}, ${(Math.round(MooMoo.myPlayer.y))}
  330. Player2Enemy_Distance: ${(Math.round(nearestEnemyDistance))}
  331. Player2Enemy_Angle: ${(Math.round(nearestEnemyAngle))}`;
  332. };
  333.  
  334. setInterval(updateGameInfo, 10);
  335. };
  336. // Item Debuger
  337.  
  338. displayGameInfo();
  339. MooMoo.addEventListener("loadGameObject", (data) => {
  340. let myPlayer = MooMoo.myPlayer
  341. let Data = data[0]
  342. let Build_sid = Data[0]
  343. let Build_X = Data[1]
  344. let Build_Y = Data[2]
  345. let Build_Dir = Data[3]
  346. let Build_Scale = Data[4]
  347. let Build_type = Data[5]
  348. let Build_ID_type = Data[6]
  349. let info = [`data:`, Build_sid, Build_X, Build_Y]
  350. let PlayerBuild_D = MooMoo.UTILS.getDistanceBetweenTwoPoints(MooMoo.myPlayer.x, MooMoo.myPlayer.y, Build_X, Build_Y);
  351. if (PlayerBuild_D < 125) {
  352. buildsNearPlayer.push(info)
  353. }
  354. if (Build_type == null) {
  355. console.log(`BuildINFO:
  356. SID: ${(Build_sid)} |~| ID: ${(Build_ID_type)}
  357. X_POS: ${(Build_X)} |~| Y_POS: ${(Build_Y)} |~| Direction: ${(Build_Dir)}
  358. Scale: ${(Build_Scale)} |~| Type: ${(Build_type)}`)
  359. if (Build_ID_type == 15 || Build_ID_type == 16) {
  360. console.log(`PitTrap/Boost Type`)
  361. }
  362. if (Build_ID_type == 6 || Build_ID_type == 7 || Build_ID_type == 8 || Build_ID_type == 9) {
  363. console.log(`Spike Type`)
  364. }
  365. if (Build_ID_type == 10 || Build_ID_type == 11 || Build_ID_type == 12) {
  366. console.log(`Mill Type`)
  367. }
  368. if (Build_ID_type == 17 || Build_ID_type == 18 || Build_ID_type == 19 || Build_ID_type == 20 || Build_ID_type == 21 || Build_ID_type == 22) {
  369. console.log(`Turret Type`)
  370. }
  371. if (Build_ID_type == 3 || Build_ID_type == 4 || Build_ID_type == 5) {
  372. console.log(`Wall Type`)
  373. }
  374. if (Build_ID_type == 13 || Build_ID_type == 14) {
  375. console.log(`Mine Type`)
  376. }
  377. }
  378. })
  379. MooMoo.addEventListener("killObject", (data) => {
  380. let sid = data[0]
  381. console.log(sid)
  382. console.log(buildsNearPlayer)
  383. if (autoReplacer == true) {
  384. for (let i = 0; i < buildsNearPlayer.length; i++) {
  385. for (let j = 0; j < buildsNearPlayer[i].length; j++) {
  386. if (buildsNearPlayer[i][j] === sid) {
  387. let BuildX = buildsNearPlayer[i][1]
  388. let BuildY = buildsNearPlayer[i][2]
  389. const buildAngle = Math.atan2(MooMoo.myPlayer.y - BuildY.y, MooMoo.myPlayer.x - BuildX.x)
  390. let myPlayer = MooMoo.myPlayer
  391. if (Traper == "spike") {
  392. let spike = MooMoo.myPlayer.inventory.spike
  393. MooMoo.myPlayer.place(spike, buildAngle);
  394. }
  395. if (Traper == "trap") {
  396. let trap = MooMoo.myPlayer.inventory.trap
  397. MooMoo.myPlayer.place(trap, buildAngle);
  398. }
  399. buildsNearPlayer.splice(i, i+1)
  400. break;
  401. }
  402. }
  403. }
  404. }
  405. });
  406. // AutoFight/insta
  407. MooMoo.addEventListener("updatePlayers", (data) => {
  408. let nearestEnemyDistance = activePlayerManager.getClosestEnemyDistance();
  409. if (nearestEnemyDistance < 350) {
  410. if (autofight == true) {
  411. automaticFighter();
  412. }
  413. }
  414. if (autoinsta == true) {
  415. if (isReloaded == true) {
  416. if (instaType == 1 && nearestEnemyDistance < 200) {
  417. if (nearestEnemyDistance !== null) {
  418. doAllInsta();
  419. }
  420. }
  421. if (instaType == 2 && nearestEnemyDistance < 150) {
  422. if (nearestEnemyDistance !== null) {
  423. doAllInsta();
  424. }
  425. }
  426. }
  427. };
  428. });
  429. // Insta
  430. function doAllInsta() {
  431. if (instaType == 1) {
  432. instaMusket1();
  433. instaMusket2();
  434. instaMusketReload();
  435. }
  436. if (instaType == 2) {
  437. instaSpike1();
  438. instaSpike2();
  439. instaSpikeReload();
  440. }
  441. }
  442. document.addEventListener('keydown', function (e) {
  443. // Normal hotkeys stuff
  444. if (e.keyCode == 86 && document.activeElement.id.toLowerCase() !== 'chatbox') { // Space for Quad Spike
  445. HoldSpike();
  446. }
  447. if (e.keyCode == 70 && document.activeElement.id.toLowerCase() !== 'chatbox') { // Space for Quad Spike
  448. HoldTrap();
  449. }
  450. if (e.keyCode == 72 && document.activeElement.id.toLowerCase() !== 'chatbox') { // Space for Quad Spike
  451. HoldTeleport();
  452. }
  453. // Hack hotkeys stuff
  454. if (e.keyCode == 32 && document.activeElement.id.toLowerCase() !== 'chatbox') { // Space for Quad Spike
  455. QuadSpike();
  456. }
  457. if (e.keyCode == 73 && document.activeElement.id.toLowerCase() !== 'chatbox') { // I for Quad Boost
  458. QuadBoost();
  459. }
  460. if (e.keyCode == 76 && document.activeElement.id.toLowerCase() !== 'chatbox') { // L for Quad Turret
  461. QuadTurret();
  462. }
  463. if (e.keyCode == 89 && document.activeElement.id.toLowerCase() !== 'chatbox') { // Y for boost spike
  464. MiniBoostSpike();
  465. }
  466. if (e.keyCode == 78 && document.activeElement.id.toLowerCase() !== 'chatbox') { // Y for boost spike
  467. TripMill();
  468. }
  469. // Autoplacer stuff
  470. if (e.keyCode == 79 && document.activeElement.id.toLowerCase() !== 'chatbox') { // O for spike toggle
  471. if (autofight == false) {
  472. autofight = true;
  473. } else {
  474. autofight = false;
  475. }
  476. }
  477. if (e.keyCode == 221 && document.activeElement.id.toLowerCase() !== 'chatbox') { // ] for spike toggle
  478. if (autoReplacer == false) {
  479. autoReplacer = true;
  480. } else {
  481. autoReplacer = false;
  482. }
  483. }
  484. if (e.keyCode == 37 && document.activeElement.id.toLowerCase() !== 'chatbox') { // Left arrow for spike/trap switch
  485. if (Traper == "trap") {
  486. Traper = "spike"
  487. } else {
  488. Traper = "trap"
  489. }
  490. }
  491. // Information
  492. if (e.keyCode == 38 && document.activeElement.id.toLowerCase() !== 'chatbox') { // "UpArrow" to toggle menu
  493. if (document.getElementById('playerPosition')
  494. .hidden == true) {
  495. document.getElementById('playerPosition')
  496. .hidden = false
  497. } else {
  498. document.getElementById('playerPosition')
  499. .hidden = true
  500. }
  501. }
  502. // Autoheal stuff
  503. if (e.keyCode == 187 && document.activeElement.id.toLowerCase() !== 'chatbox') { // "=" to increase autoheal speed
  504. AUTOHEAL_SPEED += 5
  505. }
  506. if (e.keyCode == 189 && document.activeElement.id.toLowerCase() !== 'chatbox') { // "-" to lower autoheal speed
  507. AUTOHEAL_SPEED -= 5
  508. }
  509. if (e.keyCode == 48 && document.activeElement.id.toLowerCase() !== 'chatbox') { // "0" to reset autoheal speed
  510. AUTOHEAL_SPEED = 100
  511. }
  512. if (e.keyCode == 57 && document.activeElement.id.toLowerCase() !== 'chatbox') { // "9" to toggle autoheal
  513. if (autoheal_on == true) {
  514. autoheal_on = false
  515. } else {
  516. autoheal_on = true
  517. }
  518. }
  519. // Insta stuff
  520. if (e.keyCode == 82 && document.activeElement.id.toLowerCase() !== 'chatbox') { // R for instakill
  521. if (isReloaded == true) {
  522. doAllInsta();
  523. }
  524. }
  525. if (e.keyCode == 219 && document.activeElement.id.toLowerCase() !== 'chatbox') {
  526. if (autoinsta == false) {
  527. autoinsta = true
  528. } else {
  529. autoinsta = false
  530. }
  531. }
  532. if (e.keyCode == 220 && document.activeElement.id.toLowerCase() !== 'chatbox') {
  533. if (instaType == 1) {
  534. instaType = 2
  535. } else {
  536. instaType = 1
  537. }
  538. }
  539. // Mill turners
  540. if (e.keyCode == 65 && document.activeElement.id.toLowerCase() !== 'chatbox') {
  541. millDir = "A"
  542. }
  543. if (e.keyCode == 68 && document.activeElement.id.toLowerCase() !== 'chatbox') {
  544. millDir = "D"
  545. }
  546. if (e.keyCode == 83 && document.activeElement.id.toLowerCase() !== 'chatbox') {
  547. millDir = "S"
  548. }
  549. if (e.keyCode == 87 && document.activeElement.id.toLowerCase() !== 'chatbox') {
  550. millDir = "W"
  551. }
  552. // Hat hotkeys stuff
  553. if (e.keyCode == 66 && document.activeElement.id.toLowerCase() !== 'chatbox') { // B for Solider + Corrupt X Wings
  554. Equip(6, 0);
  555. Equip(0, 1)
  556. Equip(21, 1);
  557. }
  558. if (e.keyCode == 85 && document.activeElement.id.toLowerCase() !== 'chatbox') { // U for uneuip hat + Equip Snowball
  559. Equip(0, 0);
  560. Equip(0, 1)
  561. }
  562. if (e.keyCode == 75 && document.activeElement.id.toLowerCase() !== 'chatbox') { // K for Turret gear + Corrupt X Wings
  563. Equip(53, 0);
  564. Equip(0, 1)
  565. Equip(21, 1);
  566. }
  567. if (e.keyCode == 16 && document.activeElement.id.toLowerCase() !== 'chatbox') { // Shift for booster hat + Monkey tail
  568. Equip(12, 0);
  569. Equip(0, 1)
  570. Equip(11, 1);
  571. }
  572. if (e.keyCode == 188 && document.activeElement.id.toLowerCase() !== 'chatbox') { // Comma for snow + monkey tail
  573. Equip(15, 0);
  574. Equip(0, 1)
  575. Equip(11, 1);
  576. }
  577. if (e.keyCode == 190 && document.activeElement.id.toLowerCase() !== 'chatbox') { // Period for flipper + monkey tail
  578. Equip(31, 0);
  579. Equip(0, 1)
  580. Equip(11, 1);
  581. }
  582. if (e.keyCode == 90 && document.activeElement.id.toLowerCase() !== 'chatbox') { // Z for tank gear + Corrupt X Wings
  583. Equip(40, 0);
  584. Equip(0, 1)
  585. Equip(21, 1);
  586. }
  587. if (e.keyCode == 84 && document.activeElement.id.toLowerCase() !== 'chatbox') { // T for bull helmet + Blood Wings
  588. Equip(7, 0);
  589. Equip(0, 1)
  590. Equip(18, 1);
  591. }
  592. });
  593. let isGKeyDown = false;
  594. let isHeal = false;
  595. // Boost spike stuff
  596. document.addEventListener("keydown", (event) => {
  597. if (event.code === "KeyG" && document.activeElement.id.toLowerCase() !== 'chatbox') {
  598. isGKeyDown = true;
  599. }
  600. });
  601.  
  602. document.addEventListener("keyup", (event) => {
  603. if (event.code === "KeyG" && document.activeElement.id.toLowerCase() !== 'chatbox') {
  604. isGKeyDown = false;
  605. }
  606. });
  607. setInterval(() => {
  608. if (isGKeyDown) {
  609. BoostSpike();
  610. }
  611. }, 150);
  612. // QHolder stuff
  613. document.addEventListener("mousedown", function(event) {
  614. if (event.button === 2) { // check if the right mouse button is pressed
  615. var intervalID = setInterval(function() {
  616. isHeal = true;
  617. console.log("Right mouse button is still being held down");
  618. }, 50);
  619.  
  620. document.addEventListener("mouseup", function handler(event) {
  621. if (event.button === 2) { // check if the right mouse button is released
  622. clearInterval(intervalID); // stop the continuous execution
  623. document.removeEventListener("mouseup", handler); // remove the handler
  624. isHeal = false;
  625. setTimeout(() => {
  626. Equip(7, 0)
  627. }, 100)
  628. setTimeout(() => {
  629. Equip(6, 0)
  630. }, 4000)
  631. }
  632. });
  633. }
  634. });
  635. // Healer
  636. MooMoo.addEventListener("updatehealth", (data) => {
  637. let sid = data[0]
  638. let health = data[1]
  639. if (MooMoo.myPlayer.sid === sid && health < 100) {
  640. let food = MooMoo.myPlayer.inventory.food;
  641. if (isHeal == true) {
  642. MooMoo.myPlayer.place(food)
  643. }
  644. if (autoheal_on == true) {
  645. setTimeout(() => {
  646. MooMoo.myPlayer.place(food)
  647. }, AUTOHEAL_SPEED)
  648. }
  649. }
  650. })

QingJ © 2025

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