Greasy Fork is available in English.

'Delta - 999999 in 1

Delta – Erweiterung für Agario, agar.io Mod-Sammlung. Zoom+, Makro-Auswurfmasse, Doppelsplit, Hotkeys, Minikarte, Chat, Helfer, Themen

Version vom 13.10.2024. Aktuellste Version

  1. // ==UserScript==
  2. // @name 'Delta - 999999 in 1
  3. // @name:ru 'Delta - 999999 в 1
  4. // @description Delta - extension for agario, agar.io mod collection. Zoom+, macro eject mass, double split, hot-keys, minimap, chat, helpers, themes
  5. // @description:es Delta - extensión para agario, colección de mods agar.io. Zoom+, masa de expulsión de macro, doble división, teclas de acceso rápido, minimapa, chat, ayudas, temas
  6. // @description:ru Delta - расширение для агарио, сборник модов для agar.io. Зум, авто-ц, дабл-сплит, горячие клавиши, мини-карта, чат, подсказки, темы
  7. // @description:zh Delta - agario 的擴展,agar.io mod 集合。縮放+、巨集彈出品質、雙分割、熱鍵、小地圖、聊天、助理、主題
  8. // @description:uk Delta - розширення для agario, колекція модів agar.io. Zoom+, макро викидна маса, подвійний поділ, гарячі клавіші, міні-карта, чат, помічники, теми
  9. // @description:tr Delta - agario, agar.io mod koleksiyonu için uzantı. Zoom+, makro çıkarma kütlesi, çift bölme, kısayol tuşları, mini harita, sohbet, yardımcılar, temalar
  10. // @description:de Delta – Erweiterung für Agario, agar.io Mod-Sammlung. Zoom+, Makro-Auswurfmasse, Doppelsplit, Hotkeys, Minikarte, Chat, Helfer, Themen
  11. // @description:ja Delta - agario の拡張機能、agar.io mod コレクション。 Zoom+、マクロイジェクトマス、ダブルスプリット、ホットキー、ミニマップ、チャット、ヘルパー、テーマ
  12. // @description:pl Delta - rozszerzenie do kolekcji modów agario, agar.io. Zoom+, masa wyrzucania makro, podwójny podział, klawisze skrótu, minimapa, czat, pomocnicy, motywy
  13. // @description:fr Delta - extension para sa agario, agar.io mod collection. Zoom+, macro eject mass, double split, hot-keys, minimap, chat, mga katulong, mga tema
  14. // @version 7.5
  15. // @namespace delta.agar
  16. // @author neo
  17. // @icon https://deltav4.gitlab.io/ext/assets/favicon.ico
  18. // @match *://*.agar.io/*
  19. // @match *://*.sigmally.com/*
  20. // @match *://*.gota.io/*
  21. // @run-at document-start
  22. // @grant GM.xmlHttpRequest
  23. // @grant GM.registerMenuCommand
  24. // @grant window.close
  25. // @grant unsafeWindow
  26. // @license Proprietary
  27. // ==/UserScript==
  28.  
  29. /*
  30. GREASYFORK VERSION
  31.  
  32. Sorry, Delta is no longer available for GreasyFork users.
  33. Delta will be available again after all GreasyFork rules are met.
  34. Right now there is a lite version of Delta
  35.  
  36. If this user script does not start, write me a discord
  37. Если данное расширение не запускается, напишите мне в дискорд
  38. https://discord.gg/HHmyKW6
  39.  
  40. */
  41.  
  42. function sorry() {
  43. alert('Sorry, this extension is not available in this user-script');
  44. }
  45.  
  46. try {
  47. GM.registerMenuCommand('\uD83D\uDF02\u2077 Delta 7', function () {
  48. window.location.href = 'https://delt.io/';
  49. });
  50. GM.registerMenuCommand('\ud83d\uddf8 Stock Agar.io', function () {
  51. window.location.href = 'https://agar.io/noext';
  52. });
  53. GM.registerMenuCommand('\ud83d\udd17 Visit our website', function () {
  54. window.location.href = 'https://deltav4.glitch.me/';
  55. });
  56. GM.registerMenuCommand('\uD83D\uDDAD Delta Discord', function () {
  57. window.location.href = 'https://bit.ly/3RXQXQd';
  58. });
  59. } catch (e) {}
  60.  
  61. if (window.document && window.document.title === 'Attention Required! | Cloudflare') {
  62. if (!/you have been blocked/.test(window.document.body.innerHTML)) {
  63. return;
  64. }
  65. }
  66.  
  67. const host2path = {
  68. 'sigmally': '/terms.html',
  69. '': '/delta',
  70. }
  71.  
  72. if (window.location.pathname === '/') {
  73. window.stop()
  74. for(const [host, path] of Object.entries(host2path)) {
  75. if(window.location.host.includes(host)) return window.location.href = path;
  76. }
  77. }
  78.  
  79. for(const [, path] of Object.entries(host2path)) {
  80. if(window.location.pathname.includes(path)) {
  81. window.history && window.history.replaceState && window.history.replaceState({}, window.document.title, '/');
  82. break
  83. }
  84. }
  85.  
  86. var defaultMode = 'default';
  87.  
  88. var modes = {
  89. default: function () {
  90. /**
  91. * Vue selector
  92. * example: find_node(window['agarApp'].home, (child, depth) => { if(child.$vnode?.tag?.toLowerCase().includes('home')) return true })
  93. * @param {*} where window.agarApp.home
  94. * @param {(child: any, depth: number) => any} cond
  95. * @returns {any[]}
  96. */
  97. const find_node = (where = unsafeWindow['agarApp'].home, cond) => {
  98. const results = []
  99.  
  100. const find_static = (where = unsafeWindow['agarApp'].home, cond) => {
  101. function each_children(child, depth){
  102. depth += 1
  103. child.forEach((ch) => {
  104. if(cond(ch, depth)) results.push(ch)
  105. ch.children && each_children(ch.children, depth)
  106. })
  107. }
  108. each_children(where, -1)
  109. return results
  110. }
  111.  
  112. function each_children(child, depth){
  113. depth += 1
  114. if(cond(child, depth)) results.push(child)
  115. child._staticTrees && find_static(child._staticTrees, cond)
  116. // console.log(depth, 'TAG:', child, child.$vnode?.tag)
  117. child.$children?.forEach((ch) => {
  118. each_children(ch, depth)
  119. })
  120. child.children?.forEach((ch) => {
  121. each_children(ch, depth)
  122. })
  123. child._vnode?.children?.forEach((ch) => {
  124. each_children(ch, depth)
  125. })
  126. child._vnode?.componentOptions?.children?.forEach((ch) => {
  127. each_children(ch, depth)
  128. })
  129. }
  130. each_children(where, -1)
  131. return results
  132. }
  133.  
  134. function init() {
  135. // Ads delete
  136. find_node(undefined, (child, depth) => { if (child.$vnode?.tag.includes('-ads')) return true })[0]?.$destroy()
  137. find_node(undefined, (child, depth) => { if (child.$vnode?.tag.includes('-promo')) return true })[0]?.$destroy()
  138. find_node(undefined, (child, depth) => {
  139. return child.elm?.id?.includes('agar-io')
  140. }).forEach(child => {
  141. child.elm.parentElement?.removeChild(child.elm)
  142. })
  143.  
  144. find_node(undefined, (child, depth) => child.playVideoAd)
  145. .forEach(elem => {
  146. elem.getVideoTimestamp = () => Date.now()
  147. })
  148.  
  149. {
  150. const vnode = find_node(undefined, (child, depth) => Object.getPrototypeOf(child).hasOwnProperty('hasBottomAd'))?.[0]
  151. if (vnode) {
  152. Object.defineProperties(vnode, {
  153. fastEntry: { get: () => true },
  154. });
  155. }
  156. }
  157.  
  158. // Youtube, FB buttons
  159. {
  160. const vnode = find_node(undefined, (child, depth) => { if (child?.elm?.id == 'socialButtons') return true })[0]
  161. if (vnode) {
  162. vnode.elm.parentElement.removeChild(vnode.elm)
  163. }
  164. }
  165.  
  166. // Skin floating badge
  167. {
  168. const bubble = find_node(undefined, (child, depth) => child.data?.staticClass?.includes('bubble'))[0]
  169. bubble?.elm?.parentElement.removeChild(bubble?.elm)
  170. }
  171.  
  172. unsafeWindow['agarApp'].ads = {
  173. requestAds() { },
  174. requestAd() { },
  175. refreshAd() { },
  176. destroyAd() { },
  177. adSlots() { },
  178. enableTargetedAds() { },
  179. disableTargetedAds() { },
  180. isTargeted() { },
  181. supersonicAds: {
  182. BrandConnectReadyEvent() { },
  183. BrandConnectDoneEvent() { },
  184. BrandConnectOpenEvent() { },
  185. BrandConnectCloseEvent() { },
  186. BrandConnectCompletedEvent() { },
  187. hasEngagement() { return false }
  188. },
  189. }
  190.  
  191. }
  192.  
  193. addEventListener("core_init_complete", () => {
  194. try{
  195. init()
  196. }catch(e){
  197. console.error(e)
  198. }
  199. })
  200.  
  201. }
  202. };
  203.  
  204.  
  205. var matched = modes[defaultMode]
  206. for (var mode in modes) {
  207. var isMatched = window.location.pathname.toLowerCase().indexOf(mode) > -1;
  208. if (isMatched) {
  209. matched = modes[mode];
  210. break;
  211. }
  212. }
  213.  
  214. if(document && document.documentElement) {
  215. const style = '<style>html{font: 1.2em "Fira Sans", sans-serif;color:white;background: radial-gradient(circle at bottom right,#36003e, #000000 27%); height: 100%;}</style>'
  216. document.documentElement.innerHTML = style +
  217. 'Extension is loading....<br>'+
  218. 'Sorry, Delta is no longer available on GreasyFork users. Delta will be available again after all GreasyFork rules are met.<br>'+
  219. 'Right now there is a lite version of Delta.'
  220.  
  221. }
  222.  
  223. loader();
  224.  
  225. function loader() {
  226. setTimeout(function() {
  227. GM.xmlHttpRequest({
  228. method: 'GET',
  229. url: window.location.pathname,
  230. onload: async function (e) {
  231. var blob = new Blob(['\ufeff' + e.responseText], { type: 'text/html;charset=windows-1252' });
  232. var reader = new FileReader();
  233. reader.onload = function () {
  234. document.open();
  235. document.write(reader.result);
  236. document.close();
  237. matched();
  238. };
  239. reader.readAsText(blob);
  240. }
  241. });
  242. }, 1500)
  243.  
  244. }