您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
cursorsio hack - vnx and new hack in description
// ==UserScript== // @name cursors.io hack // @namespace VNXS // @version 1.4.1 // @description cursorsio hack - vnx and new hack in description // @author VNXS // @match http://cursors.io/ // @grant none // @run-at document-idle // ==/UserScript== var cps=100, spamClicking = !1; function init(view, value, attr) { function Class() { attr.x = view.getUint16(value, true); value += 2; attr.y = view.getUint16(value, true); value += 2; attr.width = view.getUint16(value, true); value += 2; attr.height = view.getUint16(value, true); value += 2; } function done() { var color = view.getUint32(value, true).toString(16); for (; 6 > color.length;) { color = "0" + color; } value += 4; attr.color = "#" + color; } var name = view.getUint8(value); value += 1; attr.type = name; switch (name) { case 255: break; case 0: attr.x = view.getUint16(value, true); value += 2; attr.y = view.getUint16(value, true); value += 2; attr.size = view.getUint8(value); value += 1; attr.isCentered = !!view.getUint8(value); value += 1; name = read(view, value); attr.text = name[0]; value = name[1]; break; case 1: Class(); var py = !attr.color; done(); break; name = attr.x | 0; var y = attr.y | 0; var version = attr.width | 0; var h = attr.height | 0; if (py) { py = y; for (; py < y + h; ++py) { var info = name; for (; info < name + version; ++info) { ++tmp[info + 400 * py]; } } } break; case 2: Class(); attr.isBad = !!view.getUint8(value); value += 1; break; case 3: Class(); attr.count = view.getUint16(value, true); value += 2; done(); break; case 4: Class(); attr.count = view.getUint16(value, true); value += 2; done(); break; default: throw Error("Unknown object type " + name);; } return value; } function read(view, offset) { var optsData = ""; var lo = 0; var chunk = 0; for (; 0 != (chunk = view.getUint8(offset)); ++offset) { lo <<= 8; lo |= chunk; if (!(chunk & 128)) { optsData += String.fromCharCode(lo); lo = 0; } } if (0 != lo) { optsData += String.fromCharCode(lo); } return [optsData, offset + 1]; } function proc(data) { var view = new DataView(data.buffer), v, index, parts, x; if (view.getUint8(0) == 1) { var push = function(view, element) { return element + 2 + 4 * view.getUint16(element, true) }; index = view.getUint16(1, true); index = push(view, 3 + 8 * index); v = view.getUint16(index, true); index += 2; parts = 0; for (; parts < v; parts++) { x = view.getUint32(index, true); item = 0; a: for (; item < items.length; item++) { if (items[item].id == x) { items.splice(item, 1); break a; } } index += 4; } v = view.getUint16(index, true); index += 2; parts = 0; for (; parts < v; parts++) { a: { item = view.getUint32(index, true);x = 0; for (; x < items.length; x++) { if (items[x].id == item) { item = items[x]; break a; } } item = { id: item };items.push(item); } index += 4;index = init(view, index, item); } return; } items = []; head = [view.getUint16(1, true), view.getUint16(3, true)]; v = view.getUint16(5, true); index = 7; parts = 0; for (; parts < v; parts++) { item = {}; item.id = view.getUint32(index, true); index += 4; index = init(view, index, item); if (item.x > 0) item.x--, item.width++; if (item.y > 0) item.y--, item.height++; if (item.x + item.width < 400) item.width++; if (item.y + item.height < 300) item.height++; items.push(item); } } var avoidGreenArea = false function dos(head) { // Pathfinder var gridX = 400, gridY = 300; var grid = []; visit = []; for (var i = 0; i < gridY; i++) { grid[i] = []; visit[i] = []; for (var j = 0; j < gridX; j++) grid[i][j] = 0, visit[i][j] = 0; } items.forEach(function(d) { if ((d.type == 1) || (d.type == 2 && (d.isBad || avoidGreenArea))) for (var j = 0; j < d.height; j++) { if (d.y+j<=299) for (var i = 0; i < d.width; i++) { if (d.x+i<=399) grid[d.y + j][d.x + i] = 3 } } }); var bfs = [head], bfs2 = []; while (bfs.length) { bfs.forEach(function(dat) { var x = dat[0], y = dat[1]; if (grid[y][x] == 3) return; grid[y][x] = 3; for (var X = x + 1; X < gridX && !(grid[y][X] & 1); X++) { grid[y][X] |= 1; if (!visit[y][X]) { visit[y][X] = [x, y], bfs2.push([X, y]); } } for (var X = x - 1; X >= 0 && !(grid[y][X] & 1); X--) { grid[y][X] |= 1; if (!visit[y][X]) { visit[y][X] = [x, y], bfs2.push([X, y]); } } for (var Y = y + 1; Y < gridY && !(grid[Y][x] & 2); Y++) { grid[Y][x] |= 2; if (!visit[Y][x]) { visit[Y][x] = [x, y], bfs2.push([x, Y]); } } for (var Y = y - 1; Y >= 0 && !(grid[Y][x] & 2); Y--) { grid[Y][x] |= 2; if (!visit[Y][x]) { visit[Y][x] = [x, y], bfs2.push([x, Y]); } } }); bfs = bfs2; bfs2 = []; } } var tmp = WebSocket.prototype.send; WebSocket.prototype.send = function(x) { WebSocket.prototype.send = tmp; tmp = this; this.send = function() {}; var t2 = this.onmessage; this.onmessage = function(x) { var msg = new Uint8Array(x.data); if (msg[0] == 1 || msg[0] == 4) { proc(msg); } return t2.call(this, x) } } var ff = navigator.userAgent.indexOf("Chrome") == -1; var num_1 = prompt('1/2 WebSocket Location (where to connect. only change if you know what you\'re doing)', 'ws://104.248.73.48:2828'), num_2 = 0, num_3 = 1 * prompt('2/2 WebSocket Total (how many bots. only change if you know what you\'re doing.', 2); console.log(num_1); var pool = [], cursors = []; if (!isNaN(parseInt(num_3))) { alert('Result: Valid WebSocket total. Connecting bots...'); } else alert('Result: Invalid WebSocket total.'); if (!isNaN(parseInt(num_3))) { for (var i = 0; i < num_3; i++) { pool.push(new WebSocket(`${num_1}`)); // websocket } pool[num_3-1].onopen = function(x){alert('Result: All bots have been successfully connected.')}; } var position = []; canvas.onclick = function(e) { var xy = [(e.layerX - (ff ? canvas.offsetLeft : 0)) / 2 | 0, (e.layerY - (ff ? canvas.offsetTop : 0)) / 2 | 0]; position = [(e.layerX - (ff ? canvas.offsetLeft : 0)) / 2 | 0, (e.layerY - (ff ? canvas.offsetTop : 0)) / 2 | 0]; var mov = []; if (e.altKey) { if (cursors.length < 1) return; for (ii=0;ii<cursors.length;ii++) { pool.push(cursors.shift()); } return; } if (window["items"] && !(xy[0] == head[0] && xy[1] == head[1]) && !e.ctrlKey) { dos(head); var xy2 = xy.slice(0); while (visit[xy2[1]][xy2[0]]) { mov.push(xy2); xy2 = visit[xy2[1]][xy2[0]] } mov = mov.reverse(); } else mov.push(xy); if (mov.length == 0) { return; } if (!e.shiftKey) { head = xy; pool.forEach(function(x) { move(x, mov) }); move(tmp, mov); var buf = new ArrayBuffer(9), q = new DataView(buf); q.setUint8(0, 2, 1); q.setUint16(1, xy[0], 1); q.setUint16(3, xy[1], 1); q.setInt32(5, -1, 1); return; } var buf = new ArrayBuffer(9), q = new DataView(buf); q.setUint8(0, 2, 1); q.setUint16(1, xy[0], 1); q.setUint16(3, xy[1], 1); q.setInt32(5, -1, 1); cursors.push(pool.pop()); cursors[cursors.length - 1].click = buf; move(cursors[cursors.length - 1], mov); } var fontSize = 2; var letterOffset = 0; var alphabet = new Array(200); var mainCursorWriting = true; var botWriting = true; var fontType = 'basic'; alphabet[58]=[[0,0,0,1],[2,0,2,1]],alphabet[40]=[[0,2,1,0],[2,2,1,0]],alphabet[41]=[[0,0,1,2],[2,0,1,2]],alphabet[63]=[[1,0,0,0],[0,0,0,2],[0,2,1,2],[1,2,1,1],[1,1,2,1]],alphabet[97]=[[2,0,0,0],[0,0,0,2],[0,2,2,2],[1,0,1,2]],alphabet[98]=[[2,0,0,0],[0,0,0,2],[0,2,2,2],[2,2,2,0],[1,0,1,2]],alphabet[99]=[[2,2,2,0],[2,0,0,0],[0,0,0,2]],alphabet[100]=[[2,0,0,0],[0,0,0,1],[0,1,1,2],[1,2,2,1],[2,1,2,0]],alphabet[101]=[[2,2,2,0],[2,0,0,0],[0,0,0,2],[1,0,1,2]],alphabet[102]=[[2,0,0,0],[0,0,0,2],[1,0,1,2]],alphabet[103]=[[1,1,1,2],[1,2,2,2],[2,2,2,0],[2,0,0,0],[0,0,0,2]],alphabet[104]=[[0,0,2,0],[0,2,2,2],[1,0,1,2]],alphabet[105]=[[0,0,0,2],[0,1,2,1],[2,0,2,2]],alphabet[106]=[[0,0,0,2],[0,1,2,1],[2,0,2,1]],alphabet[107]=[[0,0,2,0],[1,0,0,2],[1,0,2,2]],alphabet[108]=[[0,0,2,0],[2,0,2,2]],alphabet[109]=[[0,0,2,0],[0,0,2,1],[2,1,0,2],[0,2,2,2]],alphabet[110]=[[0,0,2,0],[0,0,2,2],[0,2,2,2]],alphabet[111]=[[2,0,0,0],[0,0,0,2],[0,2,2,2],[2,2,2,0]],alphabet[112]=[[2,0,0,0],[0,0,0,2],[0,2,1,2],[1,2,1,0]],alphabet[113]=[[2,0,0,0],[0,0,0,2],[0,2,2,2],[2,2,2,0],[1,1,2,2]],alphabet[114]=[[2,0,0,0],[0,0,0,2],[0,2,1,2],[1,2,1,0],[1,1,2,2]],alphabet[115]=[[0,0,0,2],[1,0,1,2],[2,0,2,2],[0,0,1,0],[1,2,2,2]],alphabet[116]=[[0,0,0,2],[0,1,2,1]],alphabet[117]=[[0,0,2,0],[0,2,2,2],[2,0,2,2]],alphabet[118]=[[0,0,2,1],[0,2,2,1]],alphabet[119]=[[0,0,2,0],[0,2,2,2],[2,0,1,1],[2,2,1,1]],alphabet[120]=[[0,0,2,2],[2,0,0,2]],alphabet[121]=[[0,0,1,1],[0,2,1,1],[1,1,2,1]],alphabet[122]=[[0,0,0,2],[0,2,2,0],[2,0,2,2]],alphabet[48]=[[0,0,2,0],[2,0,2,2],[2,2,0,2],[0,2,0,0]],alphabet[49]=[[0,0,0,1],[0,1,2,1],[2,0,2,2]],alphabet[50]=[[0,0,0,2],[0,2,1,2],[1,2,1,0],[1,0,2,0],[2,0,2,2]],alphabet[51]=[[0,0,0,2],[0,2,2,2],[2,2,2,0],[1,0,1,2]],alphabet[52]=[[0,0,1,0],[1,0,1,2],[0,2,2,2]],alphabet[53]=[[0,2,0,0],[0,0,1,0],[1,0,1,2],[1,2,2,2],[2,2,2,0]],alphabet[54]=[[0,2,0,0],[0,0,2,0],[2,0,2,2],[2,2,1,2],[1,2,1,0]],alphabet[55]=[[0,0,0,2],[0,2,2,2],[1,1,1,2]],alphabet[56]=[[0,0,2,0],[2,0,2,2],[2,2,0,2],[0,2,0,0],[1,0,1,2]],alphabet[57]=[[2,0,2,2],[2,2,0,2],[0,2,0,0],[0,0,1,0],[1,0,1,2]]; var message = ''; var moveMethod = 1; function hkd(z) { console.log(z); switch(z.keyCode) { case 8: if (message.length <= 0) return; z.preventDefault(); message = message.substring(0, message.length - 1); break; } // numpad keys switch (z.code) { case 'Numpad0': spamClicking=!spamClicking break; case 'Numpad1': moveMethod=1; break; case 'Numpad2': moveMethod=2; break; case 'Numpad3': moveMethod=3; break; } } function hkp(e) { if ((e.keyCode >= 39 && e.keyCode <= 41) || e.keyCode == 44 || e.keyCode == 46 || (e.keyCode >= 48 && e.keyCode <= 59 && e.location == 0) || (e.keyCode >= 65 && e.keyCode <= 90) || (e.keyCode >= 97 && e.keyCode <= 122) || e.keyCode == 32 || e.keyCode == 63) { message = message.concat(String.fromCharCode(e.keyCode)); return; } switch(e.keyCode) { case 13: drawWord(message.toLowerCase(), head[0], head[1]); message = ""; e.preventDefault(); break; default: return; } } var j=0; function drawLetter(a, x, y) { var letter = alphabet[a]; if (letter == null) return; var g = new ArrayBuffer(9), e = new DataView(g); for (var i = 0; i < letter.length; i++) { e.setUint8(0, 3); e.setUint16(1, x+alphabet[a][i][1]*fontSize, !0); e.setUint16(3, y+alphabet[a][i][0]*fontSize, !0); e.setUint16(5, x+alphabet[a][i][3]*fontSize, !0); e.setUint16(7, y+alphabet[a][i][2]*fontSize, !0); if (mainCursorWriting) { if (j==0) WebSocket.prototype.send.call(tmp, g); else if (botWriting) WebSocket.prototype.send.call(pool[j-1], g); else WebSocket.prototype.send.call(tmp, g); } else if (botWriting) { if (j!=0) WebSocket.prototype.send.call(pool[j-1], g); else if (mainCursorWriting) WebSocket.prototype.send.call(tmp, g); else WebSocket.prototype.send.call(pool[j-1], g); } j++; if (j>=(botWriting?pool.length:0)+(mainCursorWriting?1:0)) j=0; } } var timeout = 70, wordIndex = 0; function drawWord(s, x, y) { setTimeout(function () { drawLetter(s.charCodeAt(0), x, y); wordIndex++; if (s.length > 0) drawWord(s.substring(1, s.length), x+fontSize*3, y); else { wordIndex = 0; letterOffset = 0; } }, timeout); } document.onkeydown = hkd; document.onkeypress = hkp; var pathfinderDelay = 0; function move(x, mov, type = moveMethod, i = 0) { if (x.readyState != 1) return; if (i == 0 && x) x.rdy = 0; var buf = new ArrayBuffer(type==3?13:9), q = new DataView(buf); q.setUint8(0, type, 1); if (type!==3 && i<mov.length) { q.setUint16(1, mov[i][0], 1); q.setUint16(3, mov[i][1], 1); q.setInt32(5, -1, 1); } WebSocket.prototype.send.call(x, buf); if (pathfinderDelay === 0) { if (type!==3)for (i=0; i<mov.length;) { if (x.readyState != 1) break; if (i == 0 && x) x.rdy = 0; q.setUint16(1, mov[i][0], 1); q.setUint16(3, mov[i][1], 1); WebSocket.prototype.send.call(x, buf); i++; } q.setUint8(0, 2, 1), q.setUint16(1, mov[mov.length-1][0], 1); q.setUint16(3, mov[mov.length-1][1], 1), q.setInt32(5, -1, 1); WebSocket.prototype.send.call(x, buf); if (x) x.rdy = 1; } else { setTimeout(function(){ move(x, mov, type, i+1); }, pathfinderDelay) } x.rdy = 1; } function returnAllBots() { for (var i=0; i<cursors.length;) { pool.push(cursors.shift()); } } var disconnected = 0, connected = 0, disconnecting = 0, connecting = 0; function lop2() { setInterval(function() { disconnecting = 0, connecting = 0; for (var i=0;i<pool.length;) { if (pool[i].readyState == 1) { connecting++; } else if (pool[i].readyState == 2 || pool[i].readyState == 3) { disconnecting++; }; i++; }; for (var i=0; i<cursors.length;) { if (cursors[i].readyState == 1) { connecting++; } else if (cursors[i].readyState == 2 || cursors[i].readyState == 3) { disconnecting++; }; i++; } connected = connecting, disconnected = disconnecting; }, 200); }; lop2(); var lop = setInterval(function() { cursors.forEach(function(x) { // when you deploy a minion. if (x) { // prevents error spam if (x.rdy) { // if the bot has connected x.send(x.click); } } }); }, 1000 / cps); setInterval(function() { // spam clicking/moving :D (new wall hack i guess) // doesn't work so far sry pool.forEach(function(x) { if (x && x.rdy && !!spamClicking) { move(x, [head[0],head[1]], 2); } }) }, 1000 / cps); var darkTheme = true; document.body.style.cssText = "transition:1s;background-color:#000000;" canvas.style.backgroundColor = "#ffffff"; noCursorLock.style.display = 'none'; noCursorLock.checked = true; noDrawings.style.display = 'none'; noCursorLock.parentElement.style.display = 'none'; noDrawings.parentElement.style.display = 'none'; var elementdisplay = document.createElement("CANVAS"); document.body.appendChild(elementdisplay); var moreScripts = document.getElementsByTagName('a')[0]; moreScripts.href = ''; moreScripts.style.display = 'none'; var advertisement = document.getElementsByTagName('div')[4]; advertisement.style.display = 'none'; var outline = document.getElementsByTagName('div')[1]; outline.style.border = '5px solid #000000'; outline.style.borderStyle = 'collapse'; outline.style.margin = '20px auto 0px'; var outline2 = document.getElementsByTagName('div')[3]; outline2.style.fontSize = '0px'; outline2.style.transition = '1s'; var display = document.getElementsByTagName('canvas')[1]; display.style.cssText = "background-color:#ffffff;width:800px;margin-left:calc(50% - 405px);margin-right:calc(50% - 405px);margin-top:0px;height:192px;border:5px solid #000000;border-style:collapse;"; var dpl = display.getContext('2d'); display.width = 800, display.height = 192; dpl.font = '12px NovaSquare'; dpl.lineWidth = 2.5; display.onmousemove = function(e) { // for like buttons and stuff var xy = [(e.layerX - (ff ? canvas.offsetLeft : 0)) | 0, (e.layerY - (ff ? canvas.offsetTop : 0)) | 0]; if ((xy[0] >= 249 && xy[0] <= 266) && (xy[1] >= 65 && xy[1] <= 80)) { // decrease pathfinder delay display.style.cursor = 'pointer'; } else if ((xy[0] >= 302 && xy[0] <= 318) && (xy[1] >= 65 && xy[1] <= 80)) { // increase pathfinder delay display.style.cursor = 'pointer'; } else if ((xy[0] >= 10 && xy[0] <= 133) && (xy[1] >= 122 && xy[1] <= 136)) { // return all bots display.style.cursor = 'pointer'; } else if ((xy[0] >= 450 && xy[0] <= 468) && (xy[1] >= 95 && xy[1] <= 107)) { // decrease text delay display.style.cursor = 'pointer'; } else if ((xy[0] >= 514 && xy[0] <= 532) && (xy[1] >= 95 && xy[1] <= 107)) { // increase text delay display.style.cursor = 'pointer'; } else if ((xy[0] >= 609 && xy[0] <= 701) && (xy[1] >= 82 && xy[1] <= 97)) { // toggle dark theme display.style.cursor = 'pointer'; } else if ((xy[0] >= 279 && xy[0] <= 326) && (xy[1] >= 82 && xy[1] <= 97)) { // toggle pathfinder mode display.style.cursor = 'pointer'; } else if ((xy[0] >= 280 && xy[0] <= 316) && (xy[1] >= 97 && xy[1] <= 107)) { // toggle avoid exits display.style.cursor = 'pointer'; } else display.style.cursor = 'auto'; } display.onmousedown = function(e) { // for like buttons and stuff var xy = [(e.layerX - (ff ? canvas.offsetLeft : 0)) | 0, (e.layerY - (ff ? canvas.offsetTop : 0)) | 0]; if ((xy[0] >= 249 && xy[0] <= 266) && (xy[1] >= 65 && xy[1] <= 80)) { // decrease pathfinder delay display.style.cursor = 'pointer'; pathfinderDelay -= 5; if (pathfinderDelay < 0) pathfinderDelay = 0; } else if ((xy[0] >= 302 && xy[0] <= 318) && (xy[1] >= 65 && xy[1] <= 80)) { // increase pathfinder delay display.style.cursor = 'pointer'; pathfinderDelay += 5; if (pathfinderDelay > 250) pathfinderDelay = 250; } else if ((xy[0] >= 10 && xy[0] <= 133) && (xy[1] >= 122 && xy[1] <= 136)) { // return all bots display.style.cursor = 'pointer'; returnAllBots(); } else if ((xy[0] >= 450 && xy[0] <= 468) && (xy[1] >= 95 && xy[1] <= 107)) { // decrease text delay display.style.cursor = 'pointer'; timeout -= 10; if (timeout < 25) timeout = 25; } else if ((xy[0] >= 514 && xy[0] <= 532) && (xy[1] >= 95 && xy[1] <= 107)) { // increase text delay display.style.cursor = 'pointer'; timeout += 10; if (timeout > 750) timeout = 750; } else if ((xy[0] >= 609 && xy[0] <= 701) && (xy[1] >= 82 && xy[1] <= 93)) { // toggle dark theme display.style.cursor = 'pointer'; darkTheme=!darkTheme; if (darkTheme == false) { document.body.style.backgroundColor = '#ffffff'; } else if (darkTheme == true) { document.body.style.backgroundColor = '#000000'; } } else if ((xy[0] >= 279 && xy[0] <= 326) && (xy[1] >= 82 && xy[1] <= 93)) { // toggle pathfinder mode display.style.cursor = 'pointer'; moveMethod==2?moveMethod=1:moveMethod=2; } else if ((xy[0] >= 280 && xy[0] <= 316) && (xy[1] >= 95 && xy[1] <= 107)) { // toggle avoid exits display.style.cursor = 'pointer'; avoidGreenArea=!avoidGreenArea } else display.style.cursor = 'auto'; } function updateDisplay() { dpl.save(); dpl.clearRect(0,0,800,192); // message display dpl.lineWidth = 2.5; dpl.font = '18px NovaSquare'; dpl.fillStyle = '#ffffff'; dpl.globalAlpha = 0.5; dpl.strokeText('Message: '+message,10,28); dpl.strokeRect(5,38,790,2.5); dpl.globalAlpha = 1; dpl.fillText('Message: '+message,10,28); dpl.fillRect(5,38,790,2.5); // title display dpl.font = '16px NovaSquare'; dpl.globalAlpha = 0.5; dpl.strokeText('Bots',10,58); dpl.strokeText('Pathfinder',210,58); dpl.strokeText('Text',410,58); dpl.strokeText('Miscellanious',610,58); dpl.globalAlpha = 1; dpl.fillText('Bots',10,58); dpl.fillText('Pathfinder',210,58); dpl.fillText('Text',410,58); dpl.fillText('Miscellanious',610,58); // bots display dpl.font = '12px NovaSquare'; dpl.globalAlpha = 0.5; dpl.strokeText('Ready: '+pool.length,10,78); dpl.strokeText('Deployed: '+cursors.length,10,92); dpl.strokeText('Disconnected: '+disconnected,10,106); dpl.strokeText('Connected: '+connected,10,120); dpl.strokeText('[Return All Deployed]',10,134); dpl.globalAlpha = 1; dpl.fillText('Ready: '+pool.length,10,78); dpl.fillText('Deployed: '+cursors.length,10,92); dpl.fillText('Disconnected: '+disconnected,10,106); dpl.fillText('Connected: '+connected,10,120); dpl.fillText('[Return All Deployed]',10,134); // pathfinder display dpl.font = '12px NovaSquare'; dpl.globalAlpha = 0.5; dpl.strokeText('Delay: [<] '+pathfinderDelay+'ms [>]',210,78); dpl.strokeText('Movement: '+(moveMethod==1?'[Normal]':moveMethod==2?'[Clicks]':'[?????]'),210,92); dpl.strokeText('Avoid exits: ['+avoidGreenArea+']',210,106); dpl.globalAlpha = 1; dpl.fillText('Delay: [<] '+pathfinderDelay+'ms [>]',210,78); dpl.fillText('Movement: '+(moveMethod==1?'[Normal]':moveMethod==2?'[Clicks]':'[?????]'),210,92); dpl.fillText('Avoid exits: ['+avoidGreenArea+']',210,106); // text display dpl.font = '12px NovaSquare'; dpl.globalAlpha = 0.5; dpl.strokeText('Font: '+fontType,410,78); dpl.strokeText('Size: '+fontSize,410,92); dpl.strokeText('Delay: [<] '+timeout+'ms [>]',410,106); dpl.globalAlpha = 1; dpl.fillText('Font: '+fontType,410,78); dpl.fillText('Size: '+fontSize,410,92); dpl.fillText('Delay: [<] '+timeout+'ms [>]',410,106); // misc display dpl.font = '12px NovaSquare'; dpl.globalAlpha = 0.5; dpl.strokeText('Spam Clicking Rate: '+cps+'cps',610,78); dpl.strokeText('[Change Theme]',610,92); dpl.globalAlpha = 1; dpl.fillText('Spam Clicking Rate: '+cps+'cps',610,78); dpl.fillText('[Change Theme]',610,92); // credit display dpl.font = '12px NovaSquare'; dpl.globalAlpha = 0.5; dpl.strokeText('Created by vnx#6389',790 - dpl.measureText('Created by vnx#6389').width,168); dpl.strokeText('Special thanks to cledis',790 - dpl.measureText('Special thanks to cledis').width,182); dpl.globalAlpha = 1; dpl.fillText('Created by vnx#6389',790 - dpl.measureText('Created by vnx#6389').width,168); dpl.fillText('Special thanks to cledis',790 - dpl.measureText('Special thanks to cledis').width,182); dpl.restore(); requestAnimationFrame(updateDisplay); } requestAnimationFrame(updateDisplay);