Created
July 5, 2015 17:51
-
-
Save BySayko/f3a301b510fbc47e3c8e to your computer and use it in GitHub Desktop.
launcher.user.js BoomBap
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // ==UserScript== | |
| // @name Launcher | |
| // @namespace BoomBAP Radyo | |
| // @include http://agar.io/ | |
| // @version 2.86 | |
| // @grant none | |
| // @author www.boombap.com | |
| // ==/UserScript== | |
| Number.prototype.mod = function(n) { | |
| return ((this%n)+n)%n; | |
| }; | |
| Array.prototype.peek = function() { | |
| return this[this.length-1]; | |
| } | |
| $.get('https://raw.githubusercontent.com/Apostolique/Agar.io-bot/master/launcher.user.js?1', function(data) { | |
| var latestVersion = data.replace(/(\r\n|\n|\r)/gm,""); | |
| latestVersion = latestVersion.substring(latestVersion.indexOf("// @version")+11,latestVersion.indexOf("// @grant")); | |
| latestVersion = parseFloat(latestVersion + 0.0000); | |
| var myVersion = parseFloat(GM_info.script.version + 0.0000); | |
| if(latestVersion > myVersion) | |
| { | |
| alert("Yeni bir UPDATE var: launcher.user.js: V" + latestVersion + "\nYeni Update icin Boombap.com'a girin"); | |
| window.open('http://boombap.com','_blank'); | |
| } | |
| console.log('Current launcher.user.js Version: ' + myVersion + " on Github: " + latestVersion); | |
| }); | |
| console.log("Boombap Calisiyor"); | |
| (function (h, f) { | |
| //UPDATE | |
| function keyAction(e) { | |
| if (84 == e.keyCode) { | |
| console.log("Toggle"); | |
| toggle = !toggle; | |
| } | |
| if (82 == e.keyCode) { | |
| console.log("ToggleDraw"); | |
| toggleDraw = !toggleDraw; | |
| } | |
| if (68 == e.keyCode) { | |
| window.setDarkTheme(!getDarkBool()); | |
| } | |
| if (70 == e.keyCode) { | |
| window.setShowMass(!getMassBool()); | |
| } | |
| if (69 == e.keyCode) { | |
| if (message.length > 0) { | |
| window.setMessage([]); | |
| window.onmouseup = function () { | |
| }; | |
| window.ignoreStream = true; | |
| } else { | |
| window.ignoreStream = false; | |
| window.refreshTwitch(); | |
| } | |
| } | |
| if (81 == e.keyCode) { | |
| console.log("ToggleFollowMouse"); | |
| toggleFollow = !toggleFollow; | |
| } | |
| } | |
| function humanPlayer() { | |
| //Don't need to do anything. | |
| return [getPointX(), getPointY()]; | |
| } | |
| function Sa() { | |
| //UPDATE | |
| if (window.botList == null) { | |
| window.botList = []; | |
| window.jQuery('#locationUnknown').append(window.jQuery('<select id="bList" class="form-control" onchange="setBotIndex($(this).val());" />')); | |
| window.jQuery('#locationUnknown').addClass('form-group'); | |
| } | |
| window.jQuery('#nick').val(originalName); | |
| window.botList.push(["Human", humanPlayer]); | |
| var bList = window.jQuery('#bList'); | |
| window.jQuery('<option />', {value: (window.botList.length - 1), text: "Human"}).appendTo(bList); | |
| la = !0; | |
| za(); | |
| setInterval(za, 180000); | |
| B = ma = document.getElementById('canvas'); | |
| e = B.getContext('2d'); | |
| B.onmousedown = function (a) { | |
| if (Aa) { | |
| var b = a.clientX - (5 + p / 5 / 2), | |
| c = a.clientY - (5 + p / 5 / 2); | |
| if (Math.sqrt(b * b + c * c) <= p / 5 / 2) { | |
| K(); | |
| C(17); | |
| return | |
| } | |
| } | |
| T = a.clientX; | |
| U = a.clientY; | |
| na(); | |
| K() | |
| }; | |
| B.onmousemove = function (a) { | |
| T = a.clientX; | |
| U = a.clientY; | |
| na() | |
| }; | |
| B.onmouseup = function () { | |
| }; | |
| /firefox/i.test(navigator.userAgent) ? document.addEventListener('DOMMouseScroll', Ba, !1) : document.body.onmousewheel = Ba; | |
| var a = !1, | |
| b = !1, | |
| c = !1; | |
| h.onkeydown = function (d) { | |
| //UPDATE | |
| if (!window.jQuery('#nick').is(":focus")) { | |
| 32 != d.keyCode || a || (K(), C(17), a = !0); | |
| 81 != d.keyCode || b || (C(18), b = !0); | |
| 87 != d.keyCode || c || (K(), C(21), c = !0); | |
| 27 == d.keyCode && Ca(!0); | |
| //UPDATE | |
| keyAction(d); | |
| } | |
| }; | |
| h.onkeyup = function (d) { | |
| 32 == d.keyCode && (a = !1); | |
| 87 == d.keyCode && (c = !1); | |
| 81 == d.keyCode && b && (C(19), b = !1) | |
| }; | |
| h.onblur = function () { | |
| C(19); | |
| c = b = a = !1 | |
| }; | |
| h.onresize = Da; | |
| Da(); | |
| h.requestAnimationFrame ? h.requestAnimationFrame(Ea) : setInterval(oa, 1000 / 60); | |
| setInterval(K, 40); | |
| v && f('#region').val(v); | |
| Fa(); | |
| V(f('#region').val()); | |
| null == r && v && W(); | |
| f('#overlays').show() | |
| } | |
| function Ba(a) { | |
| D *= Math.pow(0.9, a.wheelDelta / - 120 || a.detail || 0); | |
| 1 > D && (D = 1); | |
| D > 4 / g && (D = 4 / g) | |
| } | |
| function Ta() { | |
| if (0.4 > g) L = null; | |
| else { | |
| for (var a = Number.POSITIVE_INFINITY, b = Number.POSITIVE_INFINITY, c = Number.NEGATIVE_INFINITY, d = Number.NEGATIVE_INFINITY, e = 0, l = 0; l < u.length; l++) { | |
| var k = u[l]; | |
| !k.I() || k.M || 20 >= k.size * g || (e = Math.max(k.size, e), a = Math.min(k.x, a), b = Math.min(k.y, b), c = Math.max(k.x, c), d = Math.max(k.y, d)) | |
| } | |
| L = Ua.ca({ | |
| X: a - (e + 100), | |
| Y: b - (e + 100), | |
| fa: c + (e + 100), | |
| ga: d + (e + 100), | |
| da: 2, | |
| ea: 4 | |
| }); | |
| for (l = 0; l < u.length; l++) if (k = u[l], k.I() && !(20 >= k.size * g)) for (a = 0; a < k.a.length; ++a) b = k.a[a].x, | |
| c = k.a[a].y, | |
| b < s - p / 2 / g || c < t - q / 2 / g || b > s + p / 2 / g || c > t + q / 2 / g || L.i(k.a[a]) | |
| } | |
| } | |
| function na() { | |
| //UPDATE | |
| if (toggle ||window.botList[botIndex][0] == "Human") { | |
| X = (T - p / 2) / g + s; | |
| Y = (U - q / 2) / g + t | |
| } | |
| } | |
| function za() { | |
| null == Z && (Z = { | |
| }, f('#region').children().each(function () { | |
| var a = f(this), | |
| b = a.val(); | |
| b && (Z[b] = a.text()) | |
| })); | |
| f.get($ + '//m.agar.io/info', function (a) { | |
| var b = { | |
| }, | |
| c; | |
| for (c in a.regions) { | |
| var d = c.split(':') [0]; | |
| b[d] = b[d] || 0; | |
| b[d] += a.regions[c].numPlayers | |
| } | |
| for (c in b) f('#region option[value="' + c + '"]').text(Z[c] + ' (' + b[c] + ' players)') | |
| }, 'json') | |
| } | |
| function Ga() { | |
| f('#adsBottom').hide(); | |
| f('#overlays').hide(); | |
| Fa() | |
| } | |
| function V(a) { | |
| a && a != v && (f('#region').val() != a && f('#region').val(a), v = h.localStorage.location = a, f('.region-message').hide(), f('.region-message.' + a).show(), f('.btn-needs-server').prop('disabled', !1), la && W()) | |
| } | |
| function Ca(a) { | |
| E = null; | |
| f('#overlays').fadeIn(a ? 200 : 3000); | |
| a || f('#adsBottom').fadeIn(3000) | |
| } | |
| function Fa() { | |
| f('#region').val() ? h.localStorage.location = f('#region').val() : h.localStorage.location && f('#region').val(h.localStorage.location); | |
| f('#region').val() ? f('#locationKnown').append(f('#region')) : f('#locationUnknown').append(f('#region')) | |
| } | |
| function pa() { | |
| console.log('Find ' + v + M); | |
| f.ajax($ + '//m.agar.io/', { | |
| error: function () { | |
| setTimeout(pa, 1000) | |
| }, | |
| success: function (a) { | |
| a = a.split('\n'); | |
| Ha('ws://' + a[0], a[1]) | |
| }, | |
| dataType: 'text', | |
| method: 'POST', | |
| cache: !1, | |
| crossDomain: !0, | |
| data: v + M || '?' | |
| }) | |
| } | |
| function W() { | |
| la && v && (f('#connecting').show(), pa()) | |
| } | |
| function Ha(a, hash) { | |
| if (r) { | |
| r.onopen = null; | |
| r.onmessage = null; | |
| r.onclose = null; | |
| try { | |
| r.close() | |
| } catch (b) { | |
| } | |
| r = null | |
| } | |
| if (Va) { | |
| var d = a.split(':'); | |
| a = d[0] + 's://ip-' + d[1].replace(/\./g, '-').replace(/\//g, '') + '.tech.agar.io:' + ( + d[2] + 2000) | |
| } | |
| F = [ | |
| ]; | |
| m = [ | |
| ]; | |
| z = { | |
| }; | |
| u = [ | |
| ]; | |
| H = [ | |
| ]; | |
| A = [ | |
| ]; | |
| w = x = null; | |
| I = 0; | |
| console.log('Connecting to ' + a); | |
| //UPDATE | |
| serverIP = a; | |
| r = new WebSocket(a); | |
| r.binaryType = 'arraybuffer'; | |
| r.onopen = function() { | |
| var a; | |
| aa = 500; | |
| f('#connecting').hide(); | |
| console.log('socket open'); | |
| a = N(5); | |
| a.setUint8(0, 254); | |
| a.setUint32(1, 4, !0); | |
| O(a); | |
| a = N(5); | |
| a.setUint8(0, 255); | |
| a.setUint32(1, 154669603, !0); | |
| O(a); | |
| a = N(1 + hash.length); | |
| a.setUint8(0, 80); | |
| for (var c = 0; c < hash.length; ++c) { | |
| a.setUint8(c + 1, hash.charCodeAt(c)); | |
| } | |
| O(a); | |
| Ia() | |
| } | |
| r.onmessage = Xa; | |
| r.onclose = Ya; | |
| r.onerror = function () { | |
| console.log('socket error') | |
| } | |
| } | |
| function N(a) { | |
| return new DataView(new ArrayBuffer(a)) | |
| } | |
| function O(a) { | |
| r.send(a.buffer) | |
| } | |
| function Ya() { | |
| console.log('socket close'); | |
| setTimeout(W, aa); | |
| aa *= 1.5 | |
| } | |
| function Xa(a) { | |
| Za(new DataView(a.data)) | |
| } | |
| function Za(a) { | |
| function b() { | |
| for (var b = ''; ; ) { | |
| var d = a.getUint16(c, !0); | |
| c += 2; | |
| if (0 == d) break; | |
| b += String.fromCharCode(d) | |
| } | |
| return b | |
| } | |
| var c = 0; | |
| 240 == a.getUint8(c) && (c += 5); | |
| switch (a.getUint8(c++)) { | |
| case 16: | |
| $a(a, c); | |
| break; | |
| case 17: | |
| P = a.getFloat32(c, !0); | |
| c += 4; | |
| Q = a.getFloat32(c, !0); | |
| c += 4; | |
| R = a.getFloat32(c, !0); | |
| c += 4; | |
| break; | |
| case 20: | |
| m = [ | |
| ]; | |
| F = [ | |
| ]; | |
| break; | |
| case 21: | |
| qa = a.getInt16(c, !0); | |
| c += 2; | |
| ra = a.getInt16(c, !0); | |
| c += 2; | |
| sa || (sa = !0, ba = qa, ca = ra); | |
| break; | |
| case 32: | |
| F.push(a.getUint32(c, !0)); | |
| c += 4; | |
| break; | |
| case 49: | |
| if (null != x) break; | |
| var d = a.getUint32(c, !0), | |
| c = c + 4; | |
| A = [ | |
| ]; | |
| for (var e = 0; e < d; ++e) { | |
| var l = a.getUint32(c, !0), | |
| c = c + 4; | |
| A.push({ | |
| id: l, | |
| name: b() | |
| }) | |
| } | |
| Ja(); | |
| break; | |
| case 50: | |
| x = [ | |
| ]; | |
| d = a.getUint32(c, !0); | |
| c += 4; | |
| for (e = 0; e < d; ++e) x.push(a.getFloat32(c, !0)), | |
| c += 4; | |
| Ja(); | |
| break; | |
| case 64: | |
| da = a.getFloat64(c, !0), | |
| c += 8, | |
| ea = a.getFloat64(c, !0), | |
| c += 8, | |
| fa = a.getFloat64(c, !0), | |
| c += 8, | |
| ga = a.getFloat64(c, !0), | |
| c += 8, | |
| P = (fa + da) / 2, | |
| Q = (ga + ea) / 2, | |
| R = 1, | |
| 0 == m.length && (s = P, t = Q, g = R) | |
| } | |
| } | |
| function $a(a, b) { | |
| G = + new Date; | |
| var c = Math.random(); | |
| ta = !1; | |
| var d = a.getUint16(b, !0); | |
| b += 2; | |
| for (var e = 0; e < d; ++e) { | |
| var l = z[a.getUint32(b, !0)], | |
| k = z[a.getUint32(b + 4, !0)]; | |
| b += 8; | |
| l && k && (k.S(), k.p = k.x, k.q = k.y, k.o = k.size, k.D = l.x, k.F = l.y, k.n = k.size, k.L = G) | |
| } | |
| for (e = 0; ; ) { | |
| d = a.getUint32(b, !0); | |
| b += 4; | |
| if (0 == d) break; | |
| ++e; | |
| var h, | |
| l = a.getInt16(b, !0); | |
| b += 2; | |
| k = a.getInt16(b, !0); | |
| b += 2; | |
| h = a.getInt16(b, !0); | |
| b += 2; | |
| for (var g = a.getUint8(b++), f = a.getUint8(b++), p = a.getUint8(b++), g = (g << | |
| 16 | f << 8 | p).toString(16); 6 > g.length; ) g = '0' + g; | |
| var g = '#' + g, | |
| f = a.getUint8(b++), | |
| p = !!(f & 1), | |
| r = !!(f & 16); | |
| f & 2 && (b += 4); | |
| f & 4 && (b += 8); | |
| f & 8 && (b += 16); | |
| for (var q, n = ''; ; ) { | |
| q = a.getUint16(b, !0); | |
| b += 2; | |
| if (0 == q) break; | |
| n += String.fromCharCode(q) | |
| } | |
| q = n; | |
| n = null; | |
| z.hasOwnProperty(d) ? (n = z[d], n.K(), n.p = n.x, n.q = n.y, n.o = n.size, n.color = g) : (n = new Ka(d, l, k, h, g, q), n.ka = l, n.la = k); | |
| n.d = p; | |
| n.j = r; | |
| n.D = l; | |
| n.F = k; | |
| n.n = h; | |
| n.ja = c; | |
| n.L = G; | |
| n.W = f; | |
| q && n.Z(q); | |
| - 1 != F.indexOf(d) && - 1 == m.indexOf(n) && (document.getElementById('overlays').style.display = 'none', m.push(n), 1 == m.length && (s = n.x, t = n.y)) | |
| //UPDATE | |
| interNodes[d] = window.getCells()[d]; | |
| } | |
| //UPDATE | |
| Object.keys(interNodes).forEach(function (element, index) { | |
| //console.log("start: " + interNodes[element].updateTime + " current: " + D + " life: " + (D - interNodes[element].updateTime)); | |
| var isRemoved = !window.getCells().hasOwnProperty(element); | |
| if (isRemoved && (getLastUpdate() - interNodes[element].L) > 3000) { | |
| delete interNodes[element]; | |
| } else if (isRemoved && computeDistance(getOffsetX(), getOffsetY(), interNodes[element].x, interNodes[element].y) < screenDistance()) { | |
| //console.log("Too close! Remove " + computeDistance(getOffsetX(), getOffsetY(), interNodes[element].x, interNodes[element].y) + " || " + screenDistance()); | |
| delete interNodes[element]; | |
| } | |
| }); | |
| c = a.getUint32(b, !0); | |
| b += 4; | |
| for (e = 0; e < c; e++) d = a.getUint32(b, !0), | |
| b += 4, | |
| n = z[d], | |
| null != n && n.S(); | |
| //ta && 0 == m.length && Ca(!1) | |
| } | |
| //UPDATE | |
| function computeDistance(x1, y1, x2, y2) { | |
| var xdis = x1 - x2; // <--- FAKE AmS OF COURSE! | |
| var ydis = y1 - y2; | |
| var distance = Math.sqrt(xdis * xdis + ydis * ydis); | |
| return distance; | |
| } | |
| function screenDistance() { | |
| return Math.min(computeDistance | |
| (getOffsetX(), getOffsetY(), screenToGameX(getWidth()), getOffsetY()), computeDistance | |
| (getOffsetX(), getOffsetY(), getOffsetX(), screenToGameY(getHeight()))); | |
| } | |
| function screenToGameX(x) { | |
| return (x - getWidth() / 2) / getRatio() + getX(); | |
| } | |
| function screenToGameY(y) { | |
| return (y - getHeight() / 2) / getRatio() + getY();; | |
| } | |
| window.drawPoint = function(x_1, y_1, drawColor, text) { | |
| if (!toggleDraw) { | |
| dPoints.push([x_1, y_1, drawColor]); | |
| dText.push(text); | |
| } | |
| } | |
| window.drawArc = function(x_1, y_1, x_2, y_2, x_3, y_3, drawColor) { | |
| if (!toggleDraw) { | |
| var radius = computeDistance(x_1, y_1, x_3, y_3); | |
| dArc.push([x_1, y_1, x_2, y_2, x_3, y_3, radius, drawColor]); | |
| } | |
| } | |
| window.drawLine = function(x_1, y_1, x_2, y_2, drawColor) { | |
| if (!toggleDraw) { | |
| lines.push([x_1, y_1, x_2, y_2, drawColor]); | |
| } | |
| } | |
| window.drawCircle = function(x_1, y_1, radius, drawColor) { | |
| if (!toggleDraw) { | |
| circles.push([x_1, y_1, radius, drawColor]); | |
| } | |
| } | |
| function K() { | |
| //UPDATE | |
| if (getPlayer().length == 0 && !reviving && ~~(getCurrentScore() / 100) > 0) { | |
| console.log("Dead: " + ~~(getCurrentScore() / 100)); | |
| apos('send', 'pageview'); | |
| } | |
| if (getPlayer().length == 0) { | |
| console.log("Revive"); | |
| setNick(originalName); | |
| reviving = true; | |
| } else if (getPlayer().length > 0 && reviving) { | |
| reviving = false; | |
| } | |
| var a; | |
| if (ua()) { | |
| a = T - p / 2; | |
| var b = U - q / 2; | |
| 64 > a * a + b * b || 0.01 > Math.abs(La - X) && 0.01 > Math.abs(Ma - Y) || (La = X, Ma = Y, a = N(21), a.setUint8(0, 16), a.setFloat64(1, X, !0), a.setFloat64(9, Y, !0), a.setUint32(17, 0, !0), O(a)) | |
| } | |
| } | |
| function Ia() { | |
| if (ua() && null != E) { | |
| var a = N(1 + 2 * E.length); | |
| a.setUint8(0, 0); | |
| for (var b = 0; b < E.length; ++b) a.setUint16(1 + 2 * b, E.charCodeAt(b), !0); | |
| O(a) | |
| } | |
| } | |
| function ua() { | |
| return null != r && r.readyState == r.OPEN | |
| } | |
| function C(a) { | |
| if (ua()) { | |
| var b = N(1); | |
| b.setUint8(0, a); | |
| O(b) | |
| } | |
| } | |
| function Ea() { | |
| oa(); | |
| h.requestAnimationFrame(Ea) | |
| } | |
| function Da() { | |
| p = h.innerWidth; | |
| q = h.innerHeight; | |
| ma.width = B.width = p; | |
| ma.height = B.height = q; | |
| oa() | |
| } | |
| function Na() { | |
| var a; | |
| a = 1 * Math.max(q / 1080, p / 1920); | |
| return a *= D | |
| } | |
| function ab() { | |
| if (0 != m.length) { | |
| for (var a = 0, b = 0; b < m.length; b++) a += m[b].size; | |
| a = Math.pow(Math.min(64 / a, 1), 0.4) * Na(); | |
| g = (9 * g + a) / 10 | |
| } | |
| } | |
| function oa() { | |
| //UPDATE | |
| dPoints = []; | |
| circles = []; | |
| dArc = []; | |
| dText = []; | |
| lines = []; | |
| var a, | |
| b = Date.now(); | |
| ++bb; | |
| G = b; | |
| if (0 < m.length) { | |
| ab(); | |
| for (var c = a = 0, d = 0; d < m.length; d++) m[d].K(), | |
| a += m[d].x / m.length, | |
| c += m[d].y / m.length; | |
| P = a; | |
| Q = c; | |
| R = g; | |
| s = (s + a) / 2; | |
| t = (t + c) / 2 | |
| } else s = (29 * s + P) / 30, | |
| t = (29 * t + Q) / 30, | |
| g = (9 * g + R * Na()) / 10; | |
| Ta(); | |
| na(); | |
| va || e.clearRect(0, 0, p, q); | |
| va ? (e.fillStyle = ha ? '#111111' : '#F2FBFF', e.globalAlpha = 0.05, e.fillRect(0, 0, p, q), e.globalAlpha = 1) : cb(); | |
| u.sort(function (a, b) { | |
| return a.size == b.size ? a.id - b.id : a.size - b.size | |
| }); | |
| e.save(); | |
| e.translate(p / 2, q / 2); | |
| e.scale(g, g); | |
| e.translate( - s, - t); | |
| for (d = 0; d < H.length; d++) H[d].T(); | |
| for (d = 0; d < u.length; d++) u[d].T(); | |
| //UPDATE | |
| if (getPlayer().length > 0) { | |
| var moveLoc = window.botList[botIndex][1](toggleFollow); | |
| if (!toggle) { | |
| setPoint(moveLoc[0], moveLoc[1]); | |
| } | |
| } | |
| customRender(e); | |
| if (sa) { | |
| ba = (3 * ba + qa) / 4; | |
| ca = (3 * ca + ra) / 4; | |
| e.save(); | |
| e.strokeStyle = | |
| '#FFAAAA'; | |
| e.lineWidth = 10; | |
| e.lineCap = 'round'; | |
| e.lineJoin = 'round'; | |
| e.globalAlpha = 0.5; | |
| e.beginPath(); | |
| for (d = 0; d < m.length; d++) e.moveTo(m[d].x, m[d].y), | |
| e.lineTo(ba, ca); | |
| e.stroke(); | |
| e.restore() | |
| } | |
| e.restore(); | |
| w && w.width && e.drawImage(w, p - w.width - 10, 10); | |
| I = Math.max(I, db()); | |
| //UPDATE | |
| var currentDate = new Date(); | |
| var nbSeconds = 0; | |
| if (getPlayer().length > 0) { | |
| nbSeconds = (currentDate.getSeconds() + (currentDate.getMinutes() * 60) + (currentDate.getHours() * 60 * 60)) - (lifeTimer.getSeconds() + (lifeTimer.getMinutes() * 60) + (lifeTimer.getHours() * 60 * 60)); | |
| } | |
| bestTime = Math.max(nbSeconds, bestTime); | |
| var displayText = 'Score: ' + ~~(I / 100) + " Current Time: " + nbSeconds + " seconds."; | |
| 0 != I && (null == ia && (ia = new ja(24, '#FFFFFF', true,'#000000')), ia.u(displayText), c = ia.G(), a = c.width, e.globalAlpha = 0.2, e.fillStyle = '#000000', e.fillRect(10, q - 10 - 24 - 10, a + 10, 34), e.globalAlpha = 1, e.drawImage(c, 15, q - 10 - 24 - 5)); | |
| eb(); | |
| b = Date.now() - b; | |
| b > 1000 / 60 ? y -= 0.01 : b < 1000 / | |
| 65 && (y += 0.01); | |
| 0.4 > y && (y = 0.4); | |
| 1 < y && (y = 1) | |
| drawStats(e); | |
| } | |
| //UPDATE | |
| function customRender(d) { | |
| d.save(); | |
| for(var i = 0; i < lines.length; i++) { | |
| d.beginPath(); | |
| d.lineWidth = 5; | |
| if (lines[i][4] == 0) { | |
| d.strokeStyle = "#FF0000"; | |
| } else if (lines[i][4] == 1) { | |
| d.strokeStyle = "#00FF00"; | |
| } else if (lines[i][4] == 2) { | |
| d.strokeStyle = "#0000FF"; | |
| } else if (lines[i][4] == 3) { | |
| d.strokeStyle = "#FF8000"; | |
| } else if (lines[i][4] == 4) { | |
| d.strokeStyle = "#8A2BE2"; | |
| } else if (lines[i][4] == 5) { | |
| d.strokeStyle = "#FF69B4"; | |
| } else if (lines[i][4] == 6) { | |
| d.strokeStyle = "#008080"; | |
| } else if (lines[i][4] == 7) { | |
| d.strokeStyle = "#FFFFFF"; | |
| } else { | |
| d.strokeStyle = "#000000"; | |
| } | |
| d.moveTo(lines[i][0], lines[i][1]); | |
| d.lineTo(lines[i][2], lines[i][3]); | |
| d.stroke(); | |
| } | |
| d.restore(); | |
| d.save(); | |
| for(var i = 0; i < circles.length; i++) { | |
| if (circles[i][3] == 0) { | |
| d.strokeStyle = "#FF0000"; | |
| } else if (circles[i][3] == 1) { | |
| d.strokeStyle = "#00FF00"; | |
| } else if (circles[i][3] == 2) { | |
| d.strokeStyle = "#0000FF"; | |
| } else if (circles[i][3] == 3) { | |
| d.strokeStyle = "#FF8000"; | |
| } else if (circles[i][3] == 4) { | |
| d.strokeStyle = "#8A2BE2"; | |
| } else if (circles[i][3] == 5) { | |
| d.strokeStyle = "#FF69B4"; | |
| } else if (circles[i][3] == 6) { | |
| d.strokeStyle = "#008080"; | |
| } else if (circles[i][3] == 7) { | |
| d.strokeStyle = "#FFFFFF"; | |
| } else { | |
| d.strokeStyle = "#000000"; | |
| } | |
| d.beginPath(); | |
| d.lineWidth = 10; | |
| //d.setLineDash([5]); | |
| d.globalAlpha = 0.3; | |
| d.arc(circles[i][0], circles[i][1], circles[i][2], 0, 2 * Math.PI, false); | |
| d.stroke(); | |
| } | |
| d.restore(); | |
| d.save(); | |
| for(var i = 0; i < dArc.length; i++) { | |
| if (dArc[i][7] == 0) { | |
| d.strokeStyle = "#FF0000"; | |
| } else if (dArc[i][7] == 1) { | |
| d.strokeStyle = "#00FF00"; | |
| } else if (dArc[i][7] == 2) { | |
| d.strokeStyle = "#0000FF"; | |
| } else if (dArc[i][7] == 3) { | |
| d.strokeStyle = "#FF8000"; | |
| } else if (dArc[i][7] == 4) { | |
| d.strokeStyle = "#8A2BE2"; | |
| } else if (dArc[i][7] == 5) { | |
| d.strokeStyle = "#FF69B4"; | |
| } else if (dArc[i][7] == 6) { | |
| d.strokeStyle = "#008080"; | |
| } else if (dArc[i][7] == 7) { | |
| d.strokeStyle = "#FFFFFF"; | |
| } else { | |
| d.strokeStyle = "#000000"; | |
| } | |
| d.beginPath(); | |
| d.lineWidth = 5; | |
| var ang1 = Math.atan2(dArc[i][1] - dArc[i][5], dArc[i][0] - dArc[i][4]); | |
| var ang2 = Math.atan2(dArc[i][3] - dArc[i][5], dArc[i][2] - dArc[i][4]); | |
| d.arc(dArc[i][4], dArc[i][5], dArc[i][6], ang1, ang2, false); | |
| d.stroke(); | |
| } | |
| d.restore(); | |
| d.save(); | |
| for (var i = 0; i < dPoints.length; i++) { | |
| if (dText[i] == "") { | |
| var radius = 10; | |
| d.beginPath(); | |
| d.arc(dPoints[i][0], dPoints[i][1], radius, 0, 2 * Math.PI, false); | |
| if (dPoints[i][2] == 0) { | |
| d.fillStyle = "black"; | |
| } else if (dPoints[i][2] == 1) { | |
| d.fillStyle = "yellow"; | |
| } else if (dPoints[i][2] == 2) { | |
| d.fillStyle = "blue"; | |
| } else if (dPoints[i][2] == 3) { | |
| d.fillStyle = "red"; | |
| } else if (dPoints[i][2] == 4) { | |
| d.fillStyle = "#008080"; | |
| } else if (dPoints[i][2] == 5) { | |
| d.fillStyle = "#FF69B4"; | |
| } else { | |
| d.fillStyle = "#000000"; | |
| } | |
| d.fill(); | |
| d.lineWidth = 2; | |
| d.strokeStyle = '#003300'; | |
| d.stroke(); | |
| } else { | |
| var text = new ja(18, (getDarkBool() ? '#F2FBFF' : '#111111'), true, '#000000'); | |
| text.u(dText[i]); | |
| var textRender = text.G(); | |
| d.drawImage(textRender, dPoints[i][0], dPoints[i][1]); | |
| } | |
| } | |
| d.restore(); | |
| } | |
| function drawStats(d) { | |
| d.save() | |
| sessionScore = Math.max(I, sessionScore); | |
| var debugStrings = []; | |
| debugStrings.push("Current Bot: " + window.botList[botIndex][0]); | |
| debugStrings.push("T - Bot: " + (!toggle ? "On" : "Off")); | |
| debugStrings.push("R - Lines: " + (!toggleDraw ? "On" : "Off")); | |
| debugStrings.push("Q - Follow Mouse: " + (toggleFollow ? "On" : "Off")); | |
| debugStrings.push(""); | |
| debugStrings.push("Best Score: " + ~~(sessionScore / 100)); | |
| debugStrings.push("Best Time: " + bestTime + " seconds"); | |
| debugStrings.push(""); | |
| debugStrings.push(serverIP); | |
| if (getPlayer().length > 0) { | |
| var offsetX = -getMapStartX(); | |
| var offsetY = -getMapStartY(); | |
| debugStrings.push("Location: " + Math.floor(getPlayer()[0].x + offsetX) + ", " + Math.floor(getPlayer()[0].y + offsetY)); | |
| } | |
| var offsetValue = 20; | |
| var text = new ja(18, (getDarkBool() ? '#F2FBFF' : '#111111')); | |
| for (var i = 0; i < debugStrings.length; i++) { | |
| text.u(debugStrings[i]); | |
| var textRender = text.G(); | |
| d.drawImage(textRender, 20, offsetValue); | |
| offsetValue += textRender.height; | |
| } | |
| if (message.length > 0) { | |
| var mRender = []; | |
| var mWidth = 0; | |
| var mHeight = 0; | |
| for (var i = 0; i < message.length; i++) { | |
| var mText = new ja(28, '#FF0000', true,'#000000'); | |
| mText.u(message[i]); | |
| mRender.push(mText.G()); | |
| if (mRender[i].width > mWidth) { | |
| mWidth = mRender[i].width; | |
| } | |
| mHeight += mRender[i].height; | |
| } | |
| var mX = getWidth() / 2 - mWidth / 2; | |
| var mY = 20; | |
| d.globalAlpha = 0.4; | |
| d.fillStyle = '#000000'; | |
| d.fillRect(mX - 10, mY - 10, mWidth + 20, mHeight + 20); | |
| d.globalAlpha = 1; | |
| var mOffset = mY; | |
| for (var i = 0; i < mRender.length; i++) { | |
| d.drawImage(mRender[i], getWidth() / 2 - mRender[i].width / 2, mOffset); | |
| mOffset += mRender[i].height; | |
| } | |
| } | |
| d.restore(); | |
| } | |
| function cb() { | |
| e.fillStyle = ha ? '#111111' : '#F2FBFF'; | |
| e.fillRect(0, 0, p, q); | |
| e.save(); | |
| e.strokeStyle = ha ? '#AAAAAA' : '#000000'; | |
| e.globalAlpha = 0.2; | |
| e.scale(g, g); | |
| for (var a = p / g, b = q / g, c = - 0.5 + ( - s + a / 2) % 50; c < a; c += 50) e.beginPath(), | |
| e.moveTo(c, 0), | |
| e.lineTo(c, b), | |
| e.stroke(); | |
| for (c = - 0.5 + ( - t + b / 2) % 50; c < b; c += 50) e.beginPath(), | |
| e.moveTo(0, c), | |
| e.lineTo(a, c), | |
| e.stroke(); | |
| e.restore() | |
| } | |
| function eb() { | |
| if (Aa && wa.width) { | |
| var a = p / 5; | |
| e.drawImage(wa, 5, 5, a, a) | |
| } | |
| } | |
| function db() { | |
| for (var a = 0, b = 0; b < m.length; b++) a += m[b].n * m[b].n; | |
| return a | |
| } | |
| function Ja() { | |
| w = null; | |
| if (null != x || 0 != A.length) if (null != x || ka) { | |
| w = document.createElement('canvas'); | |
| var a = w.getContext('2d'), | |
| b = 60, | |
| b = null == x ? b + 24 * A.length : b + 180, | |
| c = Math.min(200, 0.3 * p) / 200; | |
| w.width = 200 * c; | |
| w.height = b * c; | |
| a.scale(c, c); | |
| a.globalAlpha = 0.4; | |
| a.fillStyle = '#000000'; | |
| a.fillRect(0, 0, 200, b); | |
| a.globalAlpha = 1; | |
| a.fillStyle = '#FFFFFF'; | |
| c = null; | |
| c = 'Leaderboard'; | |
| a.font = '30px Ubuntu'; | |
| a.fillText(c, 100 - a.measureText(c).width / 2, 40); | |
| if (null == x) for (a.font = '20px Ubuntu', b = 0; b < A.length; ++b) c = A[b].name || 'An unnamed cell', | |
| ka || (c = 'An unnamed cell'), | |
| - 1 != F.indexOf(A[b].id) ? (m[0].name && (c = m[0].name), a.fillStyle = '#FFAAAA') : a.fillStyle = '#FFFFFF', | |
| c = b + 1 + '. ' + c, | |
| a.fillText(c, 100 - a.measureText(c).width / 2, 70 + 24 * b); | |
| else for (b = c = 0; b < x.length; ++b) { | |
| var d = c + x[b] * Math.PI * 2; | |
| a.fillStyle = fb[b + 1]; | |
| a.beginPath(); | |
| a.moveTo(100, 140); | |
| a.arc(100, 140, 80, c, d, !1); | |
| a.fill(); | |
| c = d | |
| } | |
| } | |
| } | |
| function Ka(a, b, c, d, e, l) { | |
| u.push(this); | |
| z[a] = this; | |
| this.id = a; | |
| this.p = this.x = b; | |
| this.q = this.y = c; | |
| this.o = this.size = d; | |
| this.color = e; | |
| this.a = [ | |
| ]; | |
| this.l = [ | |
| ]; | |
| this.R(); | |
| this.Z(l) | |
| } | |
| function ja(a, b, c, d) { | |
| a && (this.r = a); | |
| b && (this.N = b); | |
| this.P = !!c; | |
| d && (this.s = d) | |
| } | |
| var $ = h.location.protocol, | |
| Va = 'https:' == $, | |
| //UPDATE | |
| toggle = false, | |
| toggleDraw = false, | |
| toggleFollow = false, | |
| tempPoint = [0, 0, 1], | |
| dPoints = [], | |
| circles = [], | |
| dArc = [], | |
| dText = [], | |
| lines = [], | |
| names = ["BoomBap.com"], | |
| originalName = names[Math.floor(Math.random() * names.length)], | |
| sessionScore = 0, | |
| serverIP = "", | |
| interNodes = [], | |
| lifeTimer = new Date(), | |
| bestTime = 0, | |
| botIndex = 0, | |
| reviving = false, | |
| message = [], | |
| ma, | |
| e, | |
| B, | |
| p, | |
| q, | |
| L = null, | |
| r = null, | |
| s = 0, | |
| t = 0, | |
| F = [ | |
| ], | |
| m = [ | |
| ], | |
| z = { | |
| }, | |
| u = [ | |
| ], | |
| H = [ | |
| ], | |
| A = [ | |
| ], | |
| T = 0, | |
| U = 0, | |
| X = - 1, | |
| Y = - 1, | |
| bb = 0, | |
| G = 0, | |
| E = null, | |
| da = 0, | |
| ea = 0, | |
| fa = 10000, | |
| ga = 10000, | |
| g = 1, | |
| v = null, | |
| Oa = !0, | |
| ka = !0, | |
| xa = !1, | |
| ta = !1, | |
| I = 0, | |
| ha = !1, | |
| Pa = !1, | |
| P = s = ~~((da + fa) / 2), | |
| Q = t = ~~((ea + ga) / 2), | |
| R = 1, | |
| M = '', | |
| x = null, | |
| la = !1, | |
| sa = !1, | |
| qa = 0, | |
| ra = 0, | |
| ba = 0, | |
| ca = 0, | |
| Qa = 0, | |
| fb = [ | |
| '#333333', | |
| '#FF3333', | |
| '#33FF33', | |
| '#3333FF' | |
| ], | |
| va = !1, | |
| D = 1, | |
| Aa = 'ontouchstart' in h && /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent), | |
| wa = new Image; | |
| wa.src = 'img/split.png'; | |
| var Ra = document.createElement('canvas'); | |
| if ('undefined' == typeof console || 'undefined' == typeof DataView || 'undefined' == typeof WebSocket || null == Ra || null == Ra.getContext || null == h.localStorage) alert('You browser does not support this game, we recommend you to use Firefox to play this'); | |
| else { | |
| var Z = null; | |
| h.setNick = function (a) { | |
| //UPDATE | |
| originalName = a; | |
| if (getPlayer().length == 0) { | |
| lifeTimer = new Date(); | |
| } | |
| Ga(); | |
| E = a; | |
| Ia(); | |
| I = 0 | |
| }; | |
| h.setRegion = V; | |
| h.setSkins = function (a) { | |
| Oa = a | |
| }; | |
| h.setNames = function (a) { | |
| ka = a | |
| }; | |
| h.setDarkTheme = function (a) { | |
| ha = a | |
| }; | |
| h.setColors = function (a) { | |
| xa = a | |
| }; | |
| h.setShowMass = function (a) { | |
| Pa = a | |
| }; | |
| h.spectate = function () { | |
| E = null; | |
| C(1); | |
| Ga() | |
| }; | |
| h.setGameMode = function (a) { | |
| a != M && (M = a, W()) | |
| }; | |
| h.setAcid = function (a) { | |
| va = a | |
| }; | |
| null != h.localStorage && (null == h.localStorage.AB8 && (h.localStorage.AB8 = 0 + ~~(100 * Math.random())), Qa = + h.localStorage.AB8, h.ABGroup = Qa); | |
| f.get($ + '//gc.agar.io', function (a) { | |
| var b = a.split(' '); | |
| a = b[0]; | |
| b = b[1] || ''; | |
| - 1 == 'DE IL PL HU BR AT UA'.split(' ').indexOf(a) && ya.push('nazi'); | |
| - 1 == ['UA'].indexOf(a) && ya.push('ussr'); | |
| S.hasOwnProperty(a) && ('string' == typeof S[a] ? v || V(S[a]) : S[a].hasOwnProperty(b) && (v || V(S[a][b]))) | |
| }, 'text'); | |
| setTimeout(function () { | |
| }, 300000); | |
| var S = { | |
| AF: 'JP-Tokyo', | |
| AX: 'EU-London', | |
| AL: 'EU-London', | |
| DZ: 'EU-London', | |
| AS: 'SG-Singapore', | |
| AD: 'EU-London', | |
| AO: 'EU-London', | |
| AI: 'US-Atlanta', | |
| AG: 'US-Atlanta', | |
| AR: 'BR-Brazil', | |
| AM: 'JP-Tokyo', | |
| AW: 'US-Atlanta', | |
| AU: 'SG-Singapore', | |
| AT: 'EU-London', | |
| AZ: 'JP-Tokyo', | |
| BS: 'US-Atlanta', | |
| BH: 'JP-Tokyo', | |
| BD: 'JP-Tokyo', | |
| BB: 'US-Atlanta', | |
| BY: 'EU-London', | |
| BE: 'EU-London', | |
| BZ: 'US-Atlanta', | |
| BJ: 'EU-London', | |
| BM: 'US-Atlanta', | |
| BT: 'JP-Tokyo', | |
| BO: 'BR-Brazil', | |
| BQ: 'US-Atlanta', | |
| BA: 'EU-London', | |
| BW: 'EU-London', | |
| BR: 'BR-Brazil', | |
| IO: 'JP-Tokyo', | |
| VG: 'US-Atlanta', | |
| BN: 'JP-Tokyo', | |
| BG: 'EU-London', | |
| BF: 'EU-London', | |
| BI: 'EU-London', | |
| KH: 'JP-Tokyo', | |
| CM: 'EU-London', | |
| CA: 'US-Atlanta', | |
| CV: 'EU-London', | |
| KY: 'US-Atlanta', | |
| CF: 'EU-London', | |
| TD: 'EU-London', | |
| CL: 'BR-Brazil', | |
| CN: 'CN-China', | |
| CX: 'JP-Tokyo', | |
| CC: 'JP-Tokyo', | |
| CO: 'BR-Brazil', | |
| KM: 'EU-London', | |
| CD: 'EU-London', | |
| CG: 'EU-London', | |
| CK: 'SG-Singapore', | |
| CR: 'US-Atlanta', | |
| CI: 'EU-London', | |
| HR: 'EU-London', | |
| CU: 'US-Atlanta', | |
| CW: 'US-Atlanta', | |
| CY: 'JP-Tokyo', | |
| CZ: 'EU-London', | |
| DK: 'EU-London', | |
| DJ: 'EU-London', | |
| DM: 'US-Atlanta', | |
| DO: 'US-Atlanta', | |
| EC: 'BR-Brazil', | |
| EG: 'EU-London', | |
| SV: 'US-Atlanta', | |
| GQ: 'EU-London', | |
| ER: 'EU-London', | |
| EE: 'EU-London', | |
| ET: 'EU-London', | |
| FO: 'EU-London', | |
| FK: 'BR-Brazil', | |
| FJ: 'SG-Singapore', | |
| FI: 'EU-London', | |
| FR: 'EU-London', | |
| GF: 'BR-Brazil', | |
| PF: 'SG-Singapore', | |
| GA: 'EU-London', | |
| GM: 'EU-London', | |
| GE: 'JP-Tokyo', | |
| DE: 'EU-London', | |
| GH: 'EU-London', | |
| GI: 'EU-London', | |
| GR: 'EU-London', | |
| GL: 'US-Atlanta', | |
| GD: 'US-Atlanta', | |
| GP: 'US-Atlanta', | |
| GU: 'SG-Singapore', | |
| GT: 'US-Atlanta', | |
| GG: 'EU-London', | |
| GN: 'EU-London', | |
| GW: 'EU-London', | |
| GY: 'BR-Brazil', | |
| HT: 'US-Atlanta', | |
| VA: 'EU-London', | |
| HN: 'US-Atlanta', | |
| HK: 'JP-Tokyo', | |
| HU: 'EU-London', | |
| IS: 'EU-London', | |
| IN: 'JP-Tokyo', | |
| ID: 'JP-Tokyo', | |
| IR: 'JP-Tokyo', | |
| IQ: 'JP-Tokyo', | |
| IE: 'EU-London', | |
| IM: 'EU-London', | |
| IL: 'JP-Tokyo', | |
| IT: 'EU-London', | |
| JM: 'US-Atlanta', | |
| JP: 'JP-Tokyo', | |
| JE: 'EU-London', | |
| JO: 'JP-Tokyo', | |
| KZ: 'JP-Tokyo', | |
| KE: 'EU-London', | |
| KI: 'SG-Singapore', | |
| KP: 'JP-Tokyo', | |
| KR: 'JP-Tokyo', | |
| KW: 'JP-Tokyo', | |
| KG: 'JP-Tokyo', | |
| LA: 'JP-Tokyo', | |
| LV: 'EU-London', | |
| LB: 'JP-Tokyo', | |
| LS: 'EU-London', | |
| LR: 'EU-London', | |
| LY: 'EU-London', | |
| LI: 'EU-London', | |
| LT: 'EU-London', | |
| LU: 'EU-London', | |
| MO: 'JP-Tokyo', | |
| MK: 'EU-London', | |
| MG: 'EU-London', | |
| MW: 'EU-London', | |
| MY: 'JP-Tokyo', | |
| MV: 'JP-Tokyo', | |
| ML: 'EU-London', | |
| MT: 'EU-London', | |
| MH: 'SG-Singapore', | |
| MQ: 'US-Atlanta', | |
| MR: 'EU-London', | |
| MU: 'EU-London', | |
| YT: 'EU-London', | |
| MX: 'US-Atlanta', | |
| FM: 'SG-Singapore', | |
| MD: 'EU-London', | |
| MC: 'EU-London', | |
| MN: 'JP-Tokyo', | |
| ME: 'EU-London', | |
| MS: 'US-Atlanta', | |
| MA: 'EU-London', | |
| MZ: 'EU-London', | |
| MM: 'JP-Tokyo', | |
| NA: 'EU-London', | |
| NR: 'SG-Singapore', | |
| NP: 'JP-Tokyo', | |
| NL: 'EU-London', | |
| NC: 'SG-Singapore', | |
| NZ: 'SG-Singapore', | |
| NI: 'US-Atlanta', | |
| NE: 'EU-London', | |
| NG: 'EU-London', | |
| NU: 'SG-Singapore', | |
| NF: 'SG-Singapore', | |
| MP: 'SG-Singapore', | |
| NO: 'EU-London', | |
| OM: 'JP-Tokyo', | |
| PK: 'JP-Tokyo', | |
| PW: 'SG-Singapore', | |
| PS: 'JP-Tokyo', | |
| PA: 'US-Atlanta', | |
| PG: 'SG-Singapore', | |
| PY: 'BR-Brazil', | |
| PE: 'BR-Brazil', | |
| PH: 'JP-Tokyo', | |
| PN: 'SG-Singapore', | |
| PL: 'EU-London', | |
| PT: 'EU-London', | |
| PR: 'US-Atlanta', | |
| QA: 'JP-Tokyo', | |
| RE: 'EU-London', | |
| RO: 'EU-London', | |
| RU: 'RU-Russia', | |
| RW: 'EU-London', | |
| BL: 'US-Atlanta', | |
| SH: 'EU-London', | |
| KN: 'US-Atlanta', | |
| LC: 'US-Atlanta', | |
| MF: 'US-Atlanta', | |
| PM: 'US-Atlanta', | |
| VC: 'US-Atlanta', | |
| WS: 'SG-Singapore', | |
| SM: 'EU-London', | |
| ST: 'EU-London', | |
| SA: 'EU-London', | |
| SN: 'EU-London', | |
| RS: 'EU-London', | |
| SC: 'EU-London', | |
| SL: 'EU-London', | |
| SG: 'JP-Tokyo', | |
| SX: 'US-Atlanta', | |
| SK: 'EU-London', | |
| SI: 'EU-London', | |
| SB: 'SG-Singapore', | |
| SO: 'EU-London', | |
| ZA: 'EU-London', | |
| SS: 'EU-London', | |
| ES: 'EU-London', | |
| LK: 'JP-Tokyo', | |
| SD: 'EU-London', | |
| SR: 'BR-Brazil', | |
| SJ: 'EU-London', | |
| SZ: 'EU-London', | |
| SE: 'EU-London', | |
| CH: 'EU-London', | |
| SY: 'EU-London', | |
| TW: 'JP-Tokyo', | |
| TJ: 'JP-Tokyo', | |
| TZ: 'EU-London', | |
| TH: 'JP-Tokyo', | |
| TL: 'JP-Tokyo', | |
| TG: 'EU-London', | |
| TK: 'SG-Singapore', | |
| TO: 'SG-Singapore', | |
| TT: 'US-Atlanta', | |
| TN: 'EU-London', | |
| TR: 'TK-Turkey', | |
| TM: 'JP-Tokyo', | |
| TC: 'US-Atlanta', | |
| TV: 'SG-Singapore', | |
| UG: 'EU-London', | |
| UA: 'EU-London', | |
| AE: 'EU-London', | |
| GB: 'EU-London', | |
| US: { | |
| AL: 'US-Atlanta', | |
| AK: 'US-Fremont', | |
| AZ: 'US-Fremont', | |
| AR: 'US-Atlanta', | |
| CA: 'US-Fremont', | |
| CO: 'US-Fremont', | |
| CT: 'US-Atlanta', | |
| DE: 'US-Atlanta', | |
| FL: 'US-Atlanta', | |
| GA: 'US-Atlanta', | |
| HI: 'US-Fremont', | |
| ID: 'US-Fremont', | |
| IL: 'US-Atlanta', | |
| IN: 'US-Atlanta', | |
| IA: 'US-Atlanta', | |
| KS: 'US-Atlanta', | |
| KY: 'US-Atlanta', | |
| LA: 'US-Atlanta', | |
| ME: 'US-Atlanta', | |
| MD: 'US-Atlanta', | |
| MA: 'US-Atlanta', | |
| MI: 'US-Atlanta', | |
| MN: 'US-Fremont', | |
| MS: 'US-Atlanta', | |
| MO: 'US-Atlanta', | |
| MT: 'US-Fremont', | |
| NE: 'US-Fremont', | |
| NV: 'US-Fremont', | |
| NH: 'US-Atlanta', | |
| NJ: 'US-Atlanta', | |
| NM: 'US-Fremont', | |
| NY: 'US-Atlanta', | |
| NC: 'US-Atlanta', | |
| ND: 'US-Fremont', | |
| OH: 'US-Atlanta', | |
| OK: 'US-Atlanta', | |
| OR: 'US-Fremont', | |
| PA: 'US-Atlanta', | |
| RI: 'US-Atlanta', | |
| SC: 'US-Atlanta', | |
| SD: 'US-Fremont', | |
| TN: 'US-Atlanta', | |
| TX: 'US-Atlanta', | |
| UT: 'US-Fremont', | |
| VT: 'US-Atlanta', | |
| VA: 'US-Atlanta', | |
| WA: 'US-Fremont', | |
| WV: 'US-Atlanta', | |
| WI: 'US-Atlanta', | |
| WY: 'US-Fremont', | |
| DC: 'US-Atlanta', | |
| AS: 'US-Atlanta', | |
| GU: 'US-Atlanta', | |
| MP: 'US-Atlanta', | |
| PR: 'US-Atlanta', | |
| UM: 'US-Atlanta', | |
| VI: 'US-Atlanta' | |
| }, | |
| UM: 'SG-Singapore', | |
| VI: 'US-Atlanta', | |
| UY: 'BR-Brazil', | |
| UZ: 'JP-Tokyo', | |
| VU: 'SG-Singapore', | |
| VE: 'BR-Brazil', | |
| VN: 'JP-Tokyo', | |
| WF: 'SG-Singapore', | |
| EH: 'EU-London', | |
| YE: 'JP-Tokyo', | |
| ZM: 'EU-London', | |
| ZW: 'EU-London' | |
| }; | |
| h.connect = Ha; | |
| //UPDATE | |
| window.getDarkBool = function() { | |
| return ha; | |
| } | |
| window.getMassBool = function() { | |
| return Pa; | |
| } | |
| window.getMemoryCells = function() { | |
| return interNodes; | |
| } | |
| window.getCellsArray = function() { | |
| return u; | |
| } | |
| window.getCells = function() { | |
| return z; | |
| } | |
| window.getPlayer = function() { | |
| return m; | |
| } | |
| window.getWidth = function() { | |
| return p; | |
| } | |
| window.getHeight = function() { | |
| return q; | |
| } | |
| window.getRatio = function() { | |
| return g; | |
| } | |
| window.getOffsetX = function() { | |
| return P; | |
| } | |
| window.getOffsetY = function() { | |
| return Q; | |
| } | |
| window.getX = function() { | |
| return s; | |
| } | |
| window.getY = function() { | |
| return t; | |
| } | |
| window.getPointX = function() { | |
| return X; | |
| } | |
| window.getPointY = function() { | |
| return Y; | |
| } | |
| window.getMouseX = function() { | |
| return T; | |
| } | |
| window.getMouseY = function() { | |
| return U; | |
| } | |
| window.getMapStartX = function() { | |
| return da; | |
| } | |
| window.getMapStartY = function() { | |
| return ea; | |
| } | |
| window.getMapEndX = function() { | |
| return fa; | |
| } | |
| window.getMapEndY = function() { | |
| return ga; | |
| } | |
| window.getScreenDistance = function() { | |
| var temp = screenDistance(); | |
| return temp; | |
| } | |
| window.getLastUpdate = function() { | |
| return G; | |
| } | |
| window.getCurrentScore = function() { | |
| return I; | |
| } | |
| window.setPoint = function(x, y) { | |
| X = x; | |
| Y = y; | |
| } | |
| window.createFake = function(a, b, c, d, e, f) { | |
| var n = new Ka(a, b, c, d, e, f); | |
| return n; | |
| } | |
| window.setScore = function(a) { | |
| sessionScore = a * 100; | |
| } | |
| window.setBestTime = function(a) { | |
| bestTime = a; | |
| } | |
| window.best = function(a, b) { | |
| setScore(a); | |
| setBestTime(b); | |
| } | |
| window.setBotIndex = function(a) { | |
| console.log("Changing bot"); | |
| botIndex = a; | |
| } | |
| window.setMessage = function(a) { | |
| message = a; | |
| } | |
| var aa = 500, | |
| La = - 1, | |
| Ma = - 1, | |
| w = null, | |
| y = 1, | |
| ia = null, | |
| J = { | |
| }, | |
| ya = 'poland;usa;china;russia;canada;australia;spain;brazil;germany;ukraine;france;sweden;hitler;north korea;south korea;japan;united kingdom;earth;greece;latvia;lithuania;estonia;finland;norway;cia;maldivas;austria;nigeria;reddit;yaranaika;confederate;9gag;indiana;4chan;italy;bulgaria;tumblr;2ch.hk;hong kong;portugal;jamaica;german empire;mexico;sanik;switzerland;croatia;chile;indonesia;bangladesh;thailand;iran;iraq;peru;moon;botswana;bosnia;netherlands;european union;taiwan;pakistan;hungary;satanist;qing dynasty;matriarchy;patriarchy;feminism;ireland;texas;facepunch;prodota;cambodia;steam;piccolo;ea;india;kc;denmark;quebec;ayy lmao;sealand;bait;tsarist russia;origin;vinesauce;stalin;belgium;luxembourg;stussy;prussia;8ch;argentina;scotland;sir;romania;belarus;wojak;doge;nasa;byzantium;imperial japan;french kingdom;somalia;turkey;mars;pokerface;8;irs;receita federal;facebook'.split(';'), | |
| gb = [ | |
| '8', | |
| 'nasa' | |
| ], | |
| hb = [ | |
| 'm\'blob' | |
| ]; | |
| Ka.prototype = { | |
| id: 0, | |
| a: null, //points | |
| l: null, //pointsAcc | |
| name: null, //name | |
| k: null, //nameCache | |
| J: null, //sizeCache | |
| x: 0, | |
| y: 0, | |
| size: 0, | |
| p: 0, //ox | |
| q: 0, //oy | |
| o: 0, //oSize | |
| D: 0, //nx | |
| F: 0, //ny | |
| n: 0, //nSize | |
| W: 0, //drawTime | |
| L: 0, //updateTime | |
| ja: 0, | |
| ba: 0, | |
| A: !1, | |
| d: !1, | |
| j: !1, | |
| M: !0, | |
| //UPDATE | |
| updateCode: 0, | |
| danger: false, | |
| dangerTimeOut: 0, | |
| S: function () { | |
| var a; | |
| for (a = 0; a < u.length; a++) if (u[a] == this) { | |
| u.splice(a, 1); | |
| break | |
| } | |
| delete z[this.id]; | |
| a = m.indexOf(this); | |
| - 1 != a && (ta = !0, m.splice(a, 1)); | |
| a = F.indexOf(this.id); | |
| - 1 != a && F.splice(a, 1); | |
| this.A = !0; | |
| H.push(this) | |
| }, | |
| h: function () { | |
| return Math.max(~~(0.3 * this.size), 24) | |
| }, | |
| Z: function (a) { | |
| if (this.name = a) null == this.k ? this.k = new ja(this.h(), '#FFFFFF', !0, '#000000') : this.k.H(this.h()), | |
| this.k.u(this.name) | |
| }, | |
| R: function () { | |
| for (var a = this.C(); this.a.length > a; ) { | |
| var b = ~~(Math.random() * this.a.length); | |
| this.a.splice(b, 1); | |
| this.l.splice(b, 1) | |
| } | |
| 0 == this.a.length && 0 < a && (this.a.push({ | |
| Q: this, | |
| e: this.size, | |
| x: this.x, | |
| y: this.y | |
| }), this.l.push(Math.random() - 0.5)); | |
| for (; this.a.length < a; ) { | |
| var b = ~~(Math.random() * this.a.length), | |
| c = this.a[b]; | |
| this.a.splice(b, 0, { | |
| Q: this, | |
| e: c.e, | |
| x: c.x, | |
| y: c.y | |
| }); | |
| this.l.splice(b, 0, this.l[b]) | |
| } | |
| }, | |
| C: function () { | |
| var a = 10; | |
| 20 > this.size && (a = 0); | |
| this.d && (a = 30); | |
| var b = this.size; | |
| this.d || (b *= g); | |
| b *= y; | |
| this.W & 32 && (b *= 0.25); | |
| return ~~Math.max(b, a) | |
| }, | |
| ha: function () { | |
| this.R(); | |
| for (var a = this.a, b = this.l, c = a.length, d = 0; d < c; ++d) { | |
| var e = b[(d - 1 + c) % c], | |
| l = b[(d + 1) % c]; | |
| b[d] += (Math.random() - 0.5) * (this.j ? 3 : 1); | |
| b[d] *= 0.7; | |
| 10 < b[d] && (b[d] = 10); | |
| - 10 > b[d] && (b[d] = - 10); | |
| b[d] = (e + l + 8 * b[d]) / 10 | |
| } | |
| for (var k = this, h = this.d ? 0 : (this.id / 1000 + G / 10000) % (2 * Math.PI), d = 0; d < c; ++d) { | |
| var f = a[d].e, | |
| e = a[(d - 1 + c) % c].e, | |
| l = a[(d + 1) % c].e; | |
| if (15 < this.size && null != L && 20 < this.size * g) { | |
| var m = !1, | |
| p = a[d].x, | |
| q = a[d].y; | |
| L.ia(p - 5, q - 5, 10, 10, function (a) { | |
| a.Q != k && 25 > (p - a.x) * (p - a.x) + (q - a.y) * (q - a.y) && (m = !0) | |
| }); | |
| !m && (a[d].x < da || a[d].y < ea || a[d].x > fa || a[d].y > ga) && (m = !0); | |
| m && (0 < b[d] && (b[d] = 0), b[d] -= 1) | |
| } | |
| f += b[d]; | |
| 0 > f && (f = 0); | |
| f = this.j ? (19 * f + this.size) / 20 : (12 * f + this.size) / 13; | |
| a[d].e = (e + l + 8 * f) / 10; | |
| e = 2 * Math.PI / c; | |
| l = this.a[d].e; | |
| this.d && 0 == d % 2 && (l += 5); | |
| a[d].x = this.x + Math.cos(e * d + h) * l; | |
| a[d].y = this.y + Math.sin(e * d + h) * l | |
| } | |
| }, | |
| K: function () { | |
| var a; | |
| a = (G - this.L) / 120; | |
| a = 0 > a ? 0 : 1 < a ? 1 : a; | |
| var b = 0 > a ? 0 : 1 < a ? 1 : a; | |
| this.h(); | |
| if (this.A && 1 <= b) { | |
| var c = H.indexOf(this); | |
| - 1 != c && H.splice(c, 1) | |
| } | |
| this.x = a * (this.D - this.p) + this.p; | |
| this.y = a * (this.F - this.q) + this.q; | |
| this.size = b * (this.n - this.o) + this.o; | |
| return b | |
| }, | |
| I: function () { | |
| return this.x + this.size + 40 < s - p / 2 / g || this.y + this.size + 40 < t - q / 2 / g || this.x - this.size - 40 > s + p / 2 / g || this.y - this.size - 40 > t + q / 2 / g ? !1 : !0 | |
| }, | |
| T: function () { | |
| if (this.I()) { | |
| var a = !this.d && !this.j && 0.4 > g; | |
| 5 > this.C() && (a = !0); | |
| if (this.M && !a) for (var b = 0; b < this.a.length; b++) this.a[b].e = this.size; | |
| this.M = a; | |
| e.save(); | |
| this.ba = G; | |
| b = this.K(); | |
| this.A && (e.globalAlpha *= 1 - b); | |
| e.lineWidth = 10; | |
| e.lineCap = 'round'; | |
| e.lineJoin = this.d ? 'miter' : 'round'; | |
| xa ? (e.fillStyle = '#FFFFFF', e.strokeStyle = '#AAAAAA') : (e.fillStyle = this.color, e.strokeStyle = this.color); | |
| if (a) e.beginPath(), | |
| e.arc(this.x, this.y, this.size, 0, 2 * Math.PI, !1); | |
| else { | |
| this.ha(); | |
| e.beginPath(); | |
| var c = this.C(); | |
| e.moveTo(this.a[0].x, this.a[0].y); | |
| for (b = 1; b <= c; ++b) { | |
| var d = b % c; | |
| e.lineTo(this.a[d].x, this.a[d].y) | |
| } | |
| } | |
| e.closePath(); | |
| c = this.name.toLowerCase(); | |
| !this.j && Oa && ':teams' != M ? - 1 != ya.indexOf(c) ? (J.hasOwnProperty(c) || (J[c] = new Image, J[c].src = 'skins/' + c + '.png'), b = 0 != J[c].width && J[c].complete ? J[c] : null) : b = null : b = null; | |
| b = (d = b) ? - 1 != hb.indexOf(c) : !1; | |
| a || e.stroke(); | |
| e.fill(); | |
| null == d || b || (e.save(), e.clip(), e.drawImage(d, this.x - this.size, this.y - this.size, 2 * this.size, 2 * this.size), e.restore()); | |
| (xa || 15 < this.size) && !a && (e.strokeStyle = '#000000', e.globalAlpha *= 0.1, e.stroke()); | |
| e.globalAlpha = 1; | |
| null != d && b && e.drawImage(d, this.x - 2 * this.size, this.y - 2 * this.size, 4 * this.size, 4 * this.size); | |
| b = - 1 != m.indexOf(this); | |
| a = ~~this.y; | |
| if ((ka || b) && this.name && this.k && (null == d || - 1 == gb.indexOf(c))) { | |
| d = this.k; | |
| d.u(this.name); | |
| d.H(this.h()); | |
| c = Math.ceil(10 * g) / 10; | |
| d.$(c); | |
| var d = d.G(), | |
| f = ~~(d.width / c), | |
| l = ~~(d.height / c); | |
| e.drawImage(d, ~~this.x - ~~(f / 2), a - ~~(l / 2), f, l); | |
| a += d.height / 2 / c + 4 | |
| } | |
| Pa && (b || 0 == m.length && (!this.d || this.j) && 20 < this.size) && (null == this.J && (this.J = new ja(this.h() / 2, '#FFFFFF', !0, '#000000')), b = this.J, b.H(this.h() / 2), b.u(~~(this.size * this.size / 100)), c = Math.ceil(10 * g) / 10, b.$(c), d = b.G(), f = ~~(d.width / c), l = ~~(d.height / c), e.drawImage(d, ~~this.x - ~~(f / 2), a - ~~(l / 2), f, l)); | |
| e.restore() | |
| } | |
| } | |
| }; | |
| ja.prototype = { | |
| w: '', | |
| N: '#000000', | |
| P: !1, | |
| s: '#000000', | |
| r: 16, | |
| m: null, | |
| O: null, | |
| g: !1, | |
| v: 1, | |
| H: function (a) { | |
| this.r != a && (this.r = a, this.g = !0) | |
| }, | |
| $: function (a) { | |
| this.v != a && (this.v = a, this.g = !0) | |
| }, | |
| setStrokeColor: function (a) { | |
| this.s != a && (this.s = a, this.g = !0) | |
| }, | |
| u: function (a) { | |
| a != this.w && (this.w = a, this.g = !0) | |
| }, | |
| G: function () { | |
| null == this.m && (this.m = document.createElement('canvas'), this.O = this.m.getContext('2d')); | |
| if (this.g) { | |
| this.g = !1; | |
| var a = this.m, | |
| b = this.O, | |
| c = this.w, | |
| d = this.v, | |
| e = this.r, | |
| l = e + 'px Ubuntu'; | |
| b.font = l; | |
| var k = ~~(0.2 * e); | |
| a.width = (b.measureText(c).width + 6) * d; | |
| a.height = (e + k) * d; | |
| b.font = l; | |
| b.scale(d, d); | |
| b.globalAlpha = 1; | |
| b.lineWidth = 3; | |
| b.strokeStyle = this.s; | |
| b.fillStyle = this.N; | |
| this.P && b.strokeText(c, 3, e - k / 2); | |
| b.fillText(c, 3, e - k / 2) | |
| } | |
| return this.m | |
| } | |
| }; | |
| Date.now || (Date.now = function () { | |
| return (new Date).getTime() | |
| }); | |
| var Ua = { | |
| ca: function (a) { | |
| function b(a, b, c, d, e) { | |
| this.x = a; | |
| this.y = b; | |
| this.f = c; | |
| this.c = d; | |
| this.depth = e; | |
| this.items = [ | |
| ]; | |
| this.b = [ | |
| ] | |
| } | |
| var c = a.da || 2, | |
| d = a.ea || 4; | |
| b.prototype = { | |
| x: 0, | |
| y: 0, | |
| f: 0, | |
| c: 0, | |
| depth: 0, | |
| items: null, | |
| b: null, | |
| B: function (a) { | |
| for (var b = 0; b < this.items.length; ++b) { | |
| var c = this.items[b]; | |
| if (c.x >= a.x && c.y >= a.y && c.x < a.x + a.f && c.y < a.y + a.c) return !0 | |
| } | |
| if (0 != this.b.length) { | |
| var d = this; | |
| return this.V(a, function (b) { | |
| return d.b[b].B(a) | |
| }) | |
| } | |
| return !1 | |
| }, | |
| t: function (a, b) { | |
| for (var c = 0; c < this.items.length; ++c) b(this.items[c]); | |
| if (0 != this.b.length) { | |
| var d = this; | |
| this.V(a, function (c) { | |
| d.b[c].t(a, b) | |
| }) | |
| } | |
| }, | |
| i: function (a) { | |
| 0 != this.b.length ? this.b[this.U(a)].i(a) : this.items.length >= c && this.depth < d ? (this.aa(), this.b[this.U(a)].i(a)) : this.items.push(a) | |
| }, | |
| U: function (a) { | |
| return a.x < this.x + this.f / 2 ? a.y < this.y + this.c / 2 ? 0 : 2 : a.y < this.y + this.c / 2 ? 1 : 3 | |
| }, | |
| V: function (a, b) { | |
| return a.x < this.x + this.f / 2 && (a.y < this.y + this.c / 2 && b(0) || a.y >= this.y + this.c / 2 && b(2)) || a.x >= this.x + this.f / 2 && (a.y < this.y + this.c / 2 && b(1) || a.y >= this.y + this.c / 2 && b(3)) ? !0 : !1 | |
| }, | |
| aa: function () { | |
| var a = this.depth + 1, | |
| c = this.f / 2, | |
| d = this.c / 2; | |
| this.b.push(new b(this.x, this.y, c, d, a)); | |
| this.b.push(new b(this.x + c, this.y, c, d, a)); | |
| this.b.push(new b(this.x, this.y + d, c, d, a)); | |
| this.b.push(new b(this.x + c, this.y + d, c, d, a)); | |
| a = this.items; | |
| this.items = [ | |
| ]; | |
| for (c = 0; c < a.length; c++) this.i(a[c]) | |
| }, | |
| clear: function () { | |
| for (var a = 0; a < this.b.length; a++) this.b[a].clear(); | |
| this.items.length = 0; | |
| this.b.length = 0 | |
| } | |
| }; | |
| var e = { | |
| x: 0, | |
| y: 0, | |
| f: 0, | |
| c: 0 | |
| }; | |
| return { | |
| root: new b(a.X, a.Y, a.fa - a.X, a.ga - a.Y, 0), | |
| i: function (a) { | |
| this.root.i(a) | |
| }, | |
| t: function (a, b) { | |
| this.root.t(a, b) | |
| }, | |
| ia: function (a, b, c, d, f) { | |
| e.x = a; | |
| e.y = b; | |
| e.f = c; | |
| e.c = d; | |
| this.root.t(e, f) | |
| }, | |
| B: function (a) { | |
| return this.root.B(a) | |
| }, | |
| clear: function () { | |
| this.root.clear() | |
| } | |
| } | |
| } | |
| }; | |
| h.onload = Sa | |
| } | |
| }) (window, window.jQuery); | |
| (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ | |
| (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), | |
| m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) | |
| })(window,document,'script','//www.google-analytics.com/analytics.js','apos'); | |
| apos('create', 'UA-64394184-1', 'auto'); | |
| apos('send', 'pageview'); | |
| window.ignoreStream = false, | |
| window.refreshTwitch = function() { | |
| $.ajax({ | |
| url: "http://boombap.com", | |
| cache: false, | |
| dataType: "jsonp" | |
| }).done(function (data) { | |
| if (data["stream"] == null) { | |
| //console.log("BOOMBAP.com Radyomuza Bekleriz!"); | |
| window.setMessage([]); | |
| window.onmouseup = function () { | |
| }; | |
| window.ignoreStream = false; | |
| } else { | |
| //console.log("BOOMBAP.com Radyomuza Bekleriz!"); | |
| /*if (!window.ignoreStream) { | |
| window.setMessage(["BOOMBAP.com Radyomuza Bekleriz!!", "Radyo'ya girmek icin buraya tiklayin!", "Kapamak icin E Ye Basin"]); | |
| window.onmouseup = function () { | |
| window.open("http://www.boombap.com); | |
| }; | |
| }*/ | |
| } | |
| }).fail(function () { | |
| }); | |
| }; | |
| setInterval(window.refreshTwitch, 60000); | |
| window.refreshTwitch(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment