EĞLENCE PANELİ

Gartic.io oyununda otomatik olarak mesaj gönderir ve URL işlemleri yapar.

  1. // ==UserScript==
  2. // @name EĞLENCE PANELİ
  3. // @namespace http://tampermonkey.net/
  4. // @version 1.6
  5. // @description Gartic.io oyununda otomatik olarak mesaj gönderir ve URL işlemleri yapar.
  6. // @author NEO
  7. // @match https://gartic.io/*
  8. // @grant none
  9. // ==/UserScript==
  10.  
  11. (function() {
  12. 'use strict';
  13.  
  14. let originalSend = WebSocket.prototype.send;
  15. let intervalId = null;
  16. let chatIntervalId = null;
  17. let epilepsyIntervalId = null;
  18. let messageBoxes = [];
  19. const maxMessages = 3;
  20. window.wsObj = {};
  21.  
  22. WebSocket.prototype.send = function(data) {
  23. originalSend.apply(this, arguments);
  24. if (!window.wsObj.id) {
  25. window.wsObj = this;
  26. window.wsObj.addEventListener("message", (msg) => {
  27. try {
  28. let data = JSON.parse(msg.data.slice(2));
  29. if (data[0] == 5) {
  30. Object.assign(window.wsObj, { lengthID: data[1], id: data[2], roomCode: data[3] });
  31. }
  32. } catch (err) {}
  33. });
  34. }
  35. };
  36.  
  37. const addStyle = () => {
  38. const style = document.createElement('style');
  39. style.textContent = `
  40. @keyframes rainbowGlow { 0%, 100% { box-shadow: 0 0 15px red; } 20% { box-shadow: 0 0 15px orange; } 40% { box-shadow: 0 0 15px yellow; } 60% { box-shadow: 0 0 15px green; } 80% { box-shadow: 0 0 15px blue; } }
  41. @keyframes rainbowText { 0%, 100% { color: red; } 20% { color: orange; } 40% { color: yellow; } 60% { color: green; } 80% { color: blue; } }
  42. .rainbowGlow { animation: rainbowGlow 3s infinite alternate; }
  43. .rainbowText { animation: rainbowText 3s infinite alternate; }
  44. `;
  45. document.head.appendChild(style);
  46. };
  47.  
  48. const createButton = (text, className, clickHandler) => {
  49. const btn = document.createElement('button');
  50. btn.textContent = text;
  51. btn.classList.add('rainbowGlow');
  52. btn.style = `background-color: ${className}; color: white; border: none; padding: 10px; border-radius: 5px; cursor: pointer; margin-right: 10px;`;
  53. btn.addEventListener('click', clickHandler);
  54. return btn;
  55. };
  56.  
  57. const createPanel = () => {
  58. const panel = document.createElement('div');
  59. panel.style = 'position: fixed; top: 70px; left: 10px; background-color: rgba(0, 0, 0, 0.8); color: white; padding: 20px; border-radius: 10px; display: none; z-index: 1000; width: 300px;';
  60. document.body.appendChild(panel);
  61. return panel;
  62. };
  63.  
  64. const simulateClick = (element) => {
  65. const rect = element.getBoundingClientRect();
  66. const x = rect.left + (rect.width / 2);
  67. const y = rect.top + (rect.height / 2);
  68.  
  69. const clickEvent = new MouseEvent('click', {
  70. view: window,
  71. bubbles: true,
  72. cancelable: true,
  73. clientX: x,
  74. clientY: y
  75. });
  76.  
  77. element.dispatchEvent(clickEvent);
  78. };
  79.  
  80. const toggleButton = document.createElement('div');
  81. toggleButton.style = 'position: fixed; top: 10px; left: 10px; width: 50px; height: 50px; background-color: black; color: red; border-radius: 10%; display: flex; align-items: center; justify-content: center; cursor: pointer; font-size: 24px;';
  82. toggleButton.classList.add('rainbowGlow');
  83. toggleButton.textContent = '❌';
  84. document.body.appendChild(toggleButton);
  85.  
  86. const panel = createPanel();
  87. const title = document.createElement('div');
  88. title.textContent = 'Script Developer By Neo';
  89. title.classList.add('rainbowText');
  90. title.style.marginBottom = '10px';
  91. panel.appendChild(title);
  92.  
  93. const messageInput = document.createElement('textarea');
  94. messageInput.placeholder = 'Göndermek istediğiniz mesaj';
  95. messageInput.style = 'width: 100%; margin-bottom: 10px; height: 30px;';
  96. panel.appendChild(messageInput);
  97.  
  98. const startButton = createButton('Başlat', 'rainbowGlow', () => {
  99. const messages = [messageInput.value, ...messageBoxes.map(box => box.value)].filter(msg => msg.trim());
  100. if (!messages.length) return;
  101.  
  102. const interval = messageBoxes.length ? 300 : 130;
  103. let count = 0;
  104. intervalId = setInterval(() => {
  105. const invisibleChar = String.fromCharCode(8203).repeat(Math.random() * 3 + 1);
  106. window.wsObj.send(`42[13,${window.wsObj.id},"${messages[count % messages.length]}${invisibleChar}"]`);
  107. count++;
  108. }, interval);
  109. });
  110.  
  111. const stopButton = createButton('Dur', 'rainbowGlow', () => clearInterval(intervalId));
  112. panel.appendChild(startButton);
  113. panel.appendChild(stopButton);
  114.  
  115. const addMessageButton = createButton('Mesaj Ekle', 'rainbowGlow', () => {
  116. if (messageBoxes.length >= maxMessages - 1) {
  117. alert('En fazla 3 mesaj gönderebilirsiniz');
  118. return;
  119. }
  120.  
  121. const messageBoxContainer = document.createElement('div');
  122. messageBoxContainer.style = 'display: flex; align-items: center; margin-bottom: 10px; margin-top: 10px;';
  123.  
  124. const newMessageBox = document.createElement('textarea');
  125. newMessageBox.placeholder = 'Ek mesaj';
  126. newMessageBox.style = 'flex-grow: 1; margin-right: 10px; height: 30px;';
  127. messageBoxContainer.appendChild(newMessageBox);
  128.  
  129. const removeButton = createButton('✖', '#0000FF', () => {
  130. panel.removeChild(messageBoxContainer);
  131. messageBoxes = messageBoxes.filter(box => box !== newMessageBox);
  132. });
  133. messageBoxContainer.appendChild(removeButton);
  134.  
  135. panel.appendChild(messageBoxContainer);
  136. messageBoxes.push(newMessageBox);
  137. });
  138. panel.appendChild(addMessageButton);
  139.  
  140. // F5 Button
  141. const f5Button = createButton('F5', 'rainbowGlow', () => {
  142. const currentUrl = window.location.href;
  143. document.querySelector('#exit').click();
  144. const checkUrlChange = setInterval(() => {
  145. if (window.location.href !== currentUrl) {
  146. clearInterval(checkUrlChange);
  147. window.location.href = currentUrl;
  148. setTimeout(() => document.querySelector('.ic-playHome').click(), 2000);
  149. }
  150. }, 100);
  151. });
  152. panel.appendChild(f5Button);
  153.  
  154. // Epilepsi Modu
  155. const epilepsyLabel = document.createElement('div');
  156. epilepsyLabel.textContent = 'Epilepsi Modu';
  157. epilepsyLabel.style = 'margin-top: 10px; color: white;';
  158. panel.appendChild(epilepsyLabel);
  159.  
  160. const epilepsyButton = createButton('Off', 'rainbowGlow', () => {
  161. if (epilepsyButton.textContent === 'Off') {
  162. epilepsyButton.textContent = 'On';
  163. epilepsyButton.style.color = 'green';
  164.  
  165. const blackColorDiv = document.querySelector('div.color.active[style*="background-color: rgb(0, 0, 0);"]');
  166. if (blackColorDiv) simulateClick(blackColorDiv);
  167. simulateClick(document.querySelector('li#op7.tool'));
  168. const eventsElement = document.querySelector('#events');
  169. if (eventsElement) simulateClick(eventsElement);
  170.  
  171. epilepsyIntervalId = setInterval(() => {
  172. simulateClick(document.querySelector('li#undo'));
  173. setTimeout(() => simulateClick(document.querySelector('li#repeat')), 100);
  174. }, 200);
  175. } else {
  176. epilepsyButton.textContent = 'Off';
  177. epilepsyButton.style.color = 'red';
  178. clearInterval(epilepsyIntervalId);
  179. }
  180. });
  181. panel.appendChild(epilepsyButton);
  182.  
  183. // Sohbet Mesajı
  184. const chatLabel = document.createElement('div');
  185. chatLabel.textContent = 'Sohbet Mesajı';
  186. chatLabel.style = 'margin-top: 10px; color: white;';
  187. panel.appendChild(chatLabel);
  188.  
  189. const chatButton = createButton('Off', 'rainbowGlow', () => {
  190. if (chatButton.textContent === 'Off') {
  191. chatButton.textContent = 'On';
  192. chatButton.style.color = 'green';
  193.  
  194. const messages = [messageInput.value, ...messageBoxes.map(box => box.value)].filter(msg => msg.trim());
  195. if (!messages.length) return;
  196.  
  197. let count = 0;
  198. chatIntervalId = setInterval(() => {
  199. const invisibleChar = String.fromCharCode(8203).repeat(Math.random() * 3 + 1);
  200. window.wsObj.send(`42[11,${window.wsObj.id},"${messages[count % messages.length]}${invisibleChar}"]`);
  201. count++;
  202. }, 1000);
  203. } else {
  204. chatButton.textContent = 'Off';
  205. chatButton.style.color = 'red';
  206. clearInterval(chatIntervalId);
  207. }
  208. });
  209. panel.appendChild(chatButton);
  210.  
  211. toggleButton.addEventListener('click', () => {
  212. panel.style.display = panel.style.display === 'none' ? 'block' : 'none';
  213. });
  214.  
  215. addStyle();
  216. })();