RED HEAD MOD

Gartic.io için mod menü

  1. // ==UserScript==
  2. // @name RED HEAD MOD
  3. // @namespace http://tampermonkey.net/
  4. // @version 2.7
  5. // @description Gartic.io için mod menü
  6. // @author Ryzex
  7. // @match https://gartic.io/*
  8. // @grant none
  9. // ==/UserScript==
  10.  
  11. (function() {
  12. 'use strict';
  13. const styleTag = document.createElement("style");
  14. styleTag.innerHTML = `
  15. @keyframes glow {
  16. 0% { box-shadow: 0 0 50px purple; }
  17. 50% { box-shadow: 0 0 80px violet; }
  18. 100% { box-shadow: 0 0 50px purple; }
  19. }
  20.  
  21. @keyframes glowEffect {
  22. 0% { box-shadow: 0 0 5px red; }
  23. 100% { box-shadow: 0 0 15px red; }
  24. }
  25.  
  26. button:hover {
  27. background-color: gold !important;
  28. transform: scale(1.05);
  29. }
  30. `;
  31. document.head.appendChild(styleTag);
  32. var style = document.createElement('style');
  33. style.innerHTML = `
  34. /* Sohbette kendi kullanıcı adını kırmızı ve küçük yap */
  35. .msg.you strong {
  36. color: red !important;
  37. font-size: 12px !important; /* Yazı boyutunu küçült */
  38. }
  39.  
  40. /* Kullanıcı listesindeki kendi adını kırmızı yap */
  41. .player.you .name {
  42. color: red !important;
  43. }
  44. `;
  45. document.head.appendChild(style);
  46.  
  47. const menuStyle = `
  48. position: fixed;
  49. top: 50%;
  50. left: 50%;
  51. transform: translate(-50%, -50%);
  52. background-color: black;
  53. padding: 15px;
  54. border-radius: 10px;
  55. color: white;
  56. font-family: Arial, sans-serif;
  57. font-size: 16px;
  58. z-index: 9999;
  59. display: none; /* Başlangıçta menü gizli */
  60. width: 320px;
  61. height: auto;
  62. transition: all 0.5s ease;
  63. box-shadow: 0 0 10px purple;
  64. animation: glow 1.5s infinite alternate;
  65. `;
  66. const discordIconStyle = `
  67. position: absolute;
  68. top: 10px;
  69. left: 10px;
  70. width: 40px;
  71. height: 40px;
  72. cursor: pointer;
  73. transition: 0.3s;
  74. `;
  75. const buttonStyle = `
  76. background-color: yellow;
  77. border: none;
  78. color: black;
  79. padding: 10px 20px;
  80. text-align: center;
  81. text-decoration: none;
  82. display: inline-block;
  83. font-size: 14px;
  84. margin: 5px;
  85. cursor: pointer;
  86. border-radius: 5px;
  87. font-weight: bold;
  88. transition: 0.3s;
  89. `;
  90.  
  91. // Açma/kapama butonu
  92. const toggleMenuButtonStyle = `
  93. position: fixed;
  94. top: 20px;
  95. left: 20px;
  96. background-image:url('https://hizliresim.com/b2hls04');
  97. color: white;
  98. padding: 10px;
  99. cursor: pointer;
  100. font-size: 16px;
  101. border-radius: 5px;
  102. z-index: 9999;
  103. font-family: monospace;
  104. border: 2px solid black;
  105. transition: 0.3s;
  106. `;
  107.  
  108. // Menü HTML yapısı
  109. const menuHTML = `
  110. <div id="modMenu" style="${menuStyle}">
  111. <!-- Discord Simgesi -->
  112. <img id="discordIcon" src="https://upload.wikimedia.org/wikipedia/en/9/98/Discord_logo.svg" style="${discordIconStyle}" alt="Discord">
  113. <div style="text-align: center; color: blue; font-size: 20px; margin-bottom: 10px;">RED HEAD</div>
  114. <div>
  115. <label>OTO HG AÇ / KAPA:</label>
  116. <button id="otoHG" style="${buttonStyle}">AÇ</button>
  117. </div>
  118. <div>
  119. <label>GÜLE GÜLE AÇ / KAPA:</label>
  120. <button id="guleGule" style="${buttonStyle}">AÇ</button>
  121. </div>
  122. <div>
  123. <label>OTO KİCK AÇ / KAPA:</label>
  124. <button id="otoKick" style="${buttonStyle}">AÇ</button>
  125. </div>
  126. <div>
  127. <label>CEVAP CHAT AÇ / KAPA:</label>
  128. <button id="cevapChat" style="${buttonStyle}">AÇ</button>
  129. </div>
  130. <div>
  131. <label>PAPAĞAN AÇ / KAPA:</label>
  132. <button id="papagan" style="${buttonStyle}">AÇ</button>
  133. </div>
  134. </div>
  135. <button id="toggleMenuButton" style="${toggleMenuButtonStyle}">/&#62;&#47;</button>
  136. <div id="statusMessage" style="position: fixed; top: 50px; left: 50%; transform: translateX(-50%); background-color: black; color: white; padding: 10px 20px; border-radius: 5px; display: none; font-size: 16px; z-index: 9999;"></div>
  137. `;
  138.  
  139. document.body.insertAdjacentHTML('beforeend', menuHTML);
  140.  
  141. let menuVisible = false;
  142. document.getElementById('toggleMenuButton').addEventListener('click', function() {
  143. const modMenu = document.getElementById('modMenu');
  144. menuVisible = !menuVisible;
  145.  
  146. if (menuVisible) {
  147. modMenu.style.display = 'block';
  148. showMessage("Menü Açıldı");
  149. } else {
  150. modMenu.style.display = 'none';
  151. showMessage("Menü Kapandı");
  152. }
  153. });
  154. document.getElementById('discordIcon').addEventListener('click', function() {
  155. window.open("https://discord.gg/rp2vRwWTmJ", "_blank");
  156. });
  157. function addGlowingBorder() {
  158. let myAvatar = document.querySelector('.you .avatar');
  159. if (myAvatar) {
  160. myAvatar.style.border = "2px solid red";
  161. myAvatar.style.animation = "glowEffect 1.5s infinite alternate";
  162.  
  163. let style = document.createElement('style');
  164. style.innerHTML = `
  165. @keyframes glowEffect {
  166. 0% { box-shadow: 0 0 5px red; }
  167. 100% { box-shadow: 0 0 15px red; }
  168. }
  169. `;
  170. document.head.appendChild(style);
  171. }
  172. }
  173.  
  174. setInterval(addGlowingBorder, 1000);
  175. function otomatikCizimButonu() {
  176. let cizimButon = document.querySelector(".btYellowBig.ic-drawG");
  177. if (cizimButon) {
  178. cizimButon.click();
  179. console.log("Çizim butonuna tıklandı!");
  180. }
  181. }
  182.  
  183. function otomatikSkipButonu() {
  184. let skipButon = document.querySelector(".skip");
  185. if (skipButon) {
  186. skipButon.click();
  187. console.log("Skip butonuna tıklandı!");
  188. }
  189. }
  190.  
  191. setInterval(() => {
  192. otomatikCizimButonu();
  193. otomatikSkipButonu();
  194. }, 1000);
  195.  
  196.  
  197. let otoHGActive = false;
  198. document.getElementById('otoHG').addEventListener('click', function() {
  199. if (otoHGActive) {
  200. otoHGActive = false;
  201. showMessage("OTO HG Özelliği KAPANDI.");
  202. } else {
  203. otoHGActive = true;
  204. showMessage("OTO HG Özelliği AÇILDI.");
  205. startAutoWelcome();
  206. }
  207. });
  208.  
  209. function startAutoWelcome() {
  210. let interval = setInterval(function() {
  211. if (!otoHGActive) {
  212. clearInterval(interval);
  213. return;
  214. }
  215.  
  216. let nickin = document.getElementsByClassName("user you")[0].querySelectorAll(".nick")[0].innerText;
  217. let msgSystem = document.querySelectorAll(".msg.system");
  218. let msg = document.querySelectorAll(".msg");
  219. if (msgSystem.length === 0 || msg.length === 0) return;
  220. let lastMsgSystem = msgSystem[msgSystem.length - 1].innerText;
  221. let lastMsg = msg[msg.length - 1].innerText;
  222. if (lastMsgSystem.includes("katıldı")) {
  223. if (lastMsg == lastMsgSystem) {
  224. if (!lastMsgSystem.includes(nickin)) {
  225. lastMsgSystem = lastMsgSystem.replace("katıldı", "hg");
  226. let words = lastMsgSystem.split(" ");
  227. let hgWord = words.pop();
  228. words.unshift(hgWord);
  229. let welcomeMessage = words.join(" ");
  230. chatsend(welcomeMessage);
  231. }
  232. }
  233. }
  234. }, 1000);
  235. }
  236.  
  237. let guleGuleActive = false;
  238. document.getElementById('guleGule').addEventListener('click', function() {
  239. if (guleGuleActive) {
  240. guleGuleActive = false;
  241. showMessage("GÜLE GÜLE Özelliği KAPANDI.");
  242. } else {
  243. guleGuleActive = true;
  244. showMessage("GÜLE GÜLE Özelliği AÇILDI.");
  245. startGoodbyeMessage();
  246. }
  247. });
  248.  
  249. function startGoodbyeMessage() {
  250. setInterval(function() {
  251. let nickin = document.getElementsByClassName("user you")[0].querySelectorAll(".nick")[0].innerText;
  252. let msgSystem = document.querySelectorAll(".msg.system");
  253. let msg = document.querySelectorAll(".msg");
  254. if (msgSystem.length === 0 || msg.length === 0) return;
  255. let lastMsgSystem = msgSystem[msgSystem.length - 1].innerText;
  256. let lastMsg = msg[msg.length - 1].innerText;
  257. if (lastMsgSystem.includes("ayrıldı")) {
  258. if (lastMsg == lastMsgSystem) {
  259. if (!lastMsgSystem.includes(nickin)) {
  260. lastMsgSystem = lastMsgSystem.replace("ayrıldı", "Güle-Güle");
  261. let words = lastMsgSystem.split(" ");
  262. let hgWord = words.pop();
  263. words.unshift(hgWord);
  264. let goodbyeMessage = words.join(" ");
  265. chatsend(goodbyeMessage);
  266. }
  267. }
  268. }
  269. }, 1000);
  270. }
  271.  
  272. let papaganActive = false;
  273. document.getElementById('papagan').addEventListener('click', function() {
  274. if (papaganActive) {
  275. papaganActive = false;
  276. showMessage("PAPAĞAN Özelliği KAPANDI.");
  277. chatsend("PAPAĞAN Özelliği KAPANDI."); // Chat'e yazdır
  278. } else {
  279. papaganActive = true;
  280. showMessage("PAPAĞAN Özelliği AÇILDI.");
  281. startPapagan();
  282. }
  283. });
  284.  
  285. function startPapagan() {
  286. setInterval(function() {
  287. let userMessages = document.querySelectorAll(".msg.you span");
  288. let allMessages = document.querySelectorAll(".msg span");
  289.  
  290. if (allMessages.length > 0) {
  291. let lastMessage = allMessages[allMessages.length - 1].innerText;
  292. let lastUserMessage = userMessages.length > 0 ? userMessages[userMessages.length - 1].innerText : "";
  293.  
  294. if (lastMessage !== lastUserMessage) {
  295. chatsend(lastMessage);
  296. }
  297. }
  298. }, 150);
  299. }
  300.  
  301. let otoKickActive = false;
  302. document.getElementById('otoKick').addEventListener('click', function () {
  303. if (otoKickActive) {
  304. otoKickActive = false;
  305. showMessage("Oto Kick Özelliği KAPANDI.");
  306. } else {
  307. otoKickActive = true;
  308. showMessage("Oto Kick Özelliği AÇILDI.");
  309. startOtoKick();
  310. }
  311. });
  312.  
  313. function startOtoKick() {
  314. setInterval(function() {
  315. let nickin = document.querySelector(".user.you").querySelector(".nick").innerText;
  316. let kickMsg = document.querySelectorAll(".msg.alert");
  317. if (kickMsg.length === 0) return;
  318. let lastKickMsg = kickMsg[kickMsg.length - 1].innerText;
  319. if (lastKickMsg.includes(", " + nickin)) {
  320. let kicker = lastKickMsg.split(",")[0];
  321. let nicks = document.querySelectorAll(".nick");
  322. for (let i = 0; i < nicks.length; i++) {
  323. if (nicks[i].innerText == kicker) {
  324. nicks[i].click();
  325. document.querySelector(".ic-votekick").click();
  326. }
  327. }
  328. }
  329. }, 1000);
  330. }
  331.  
  332. let cevapChatActive = false;
  333. document.getElementById('cevapChat').addEventListener('click', function () {
  334. if (cevapChatActive) {
  335. cevapChatActive = false;
  336. showMessage("CEVAP CHAT Özelliği KAPANDI.");
  337. } else {
  338. cevapChatActive = true;
  339. showMessage("CEVAP CHAT Özelliği AÇILDI.");
  340. startCevapChat();
  341. }
  342. });
  343.  
  344. function startCevapChat() {
  345. let processedWord = "";
  346. let answer = "";
  347.  
  348. let interval = setInterval(() => {
  349. if (!cevapChatActive) {
  350. clearInterval(interval);
  351. return;
  352. }
  353.  
  354. let msgHit = document.querySelectorAll(".msg.hit");
  355. if (msgHit.length < 1) return;
  356. let lastMsgHit = msgHit[msgHit.length - 1].innerText;
  357. if (lastMsgHit.includes("buldun:")) {
  358. let newWord = lastMsgHit.replace("Cevabı buldun:", "").trim();
  359. if (newWord !== processedWord) {
  360. processedWord = newWord;
  361. answer = newWord.split("").join("\u200C");
  362. chatsend("cevap " + answer);
  363. }
  364. }
  365. }, 500);
  366. }
  367. // AFK SC
  368. setInterval(() => document.querySelector(".ic-yes")?.click(), 500);
  369.  
  370. function chatsend(m_q) {
  371. let a_i = document.querySelector('input[name=chat]');
  372. let m_a = a_i.value;
  373. a_i.value = m_q;
  374. let m_z = new Event("input", { bubbles: true });
  375. m_z.simulated = true;
  376. let m_b = new Event("submit", { bubbles: true });
  377. m_b.simulated = true;
  378. let m_s = a_i._valueTracker;
  379. m_s && m_s.setValue(m_a);
  380. a_i.dispatchEvent(m_z);
  381. a_i.form.dispatchEvent(m_b);
  382. }
  383.  
  384.  
  385. function showMessage(message) {
  386. const statusMessage = document.getElementById('statusMessage');
  387. statusMessage.innerText = message;
  388. statusMessage.style.backgroundColor = 'black'; ç
  389. statusMessage.style.color = 'yellow';
  390. statusMessage.style.display = 'block';
  391.  
  392. setTimeout(() => {
  393. statusMessage.style.display = 'none';
  394. }, 2000);
  395. }
  396.  
  397. })();