Advertisement
Embrosy

Slither.io auto play bot

Oct 24th, 2022
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.46 KB | Gaming | 0 0
  1. // ==UserScript==
  2. // @name Slither.io auto play bot
  3. // @include http://slither.io/
  4. // @author I HAVE A REALLY LONG NICK NAME
  5. // @description auto play bot for slither.io
  6. // @namespace http://tampermonkey.net/
  7. // @version 0.1
  8. // @match *://Slither.io/*
  9. // ==/UserScript==
  10.  
  11. var el = document.getElementsByTagName('iframe');
  12.  
  13. for (var i = 0; i < el.length; i++) {
  14. var currentEl = el[i];
  15. currentEl.remove();
  16. }
  17.  
  18. document.getElementById('logo').remove();
  19. document.getElementById('tips').remove();
  20. document.getElementById('fb').remove();
  21. document.getElementById('twth').remove();
  22.  
  23.  
  24. if (window.top != window.self)
  25.  
  26. REALSCORE = 10;
  27. REALDNA = [1,1,1,1,1,1,1,1,1,1,1,1];
  28.  
  29. BESTRANK = 1000;
  30. BESTSCORE = 1;
  31.  
  32. printbot = function() {
  33. console.log("Dumping bot data:\nREALDNA = " + JSON.stringify(REALDNA) + ";\nREALSCORE = " + REALSCORE + ";\nBESTRANK = " + BESTRANK + ";\nBESTSCORE = " + BESTSCORE + ";");
  34. }
  35.  
  36. savedna = function() {
  37. if(typeof(Storage) !== "undefined") {
  38. localStorage["REALSCORE"] = REALSCORE;
  39. localStorage["REALDNA"] = JSON.stringify(REALDNA);
  40. localStorage["BESTRANK"] = BESTRANK;
  41. localStorage["BESTSCORE"] = BESTSCORE;
  42. }
  43. }
  44.  
  45. cleardna = function() {
  46. localStorage.removeItem("REALSCORE");
  47. localStorage.removeItem("REALDNA");
  48.  
  49. localStorage.removeItem("BESTRANK");
  50. localStorage.removeItem("BESTSCORE");
  51.  
  52. REALSCORE = 30;
  53. BESTRANK = 1000;
  54.  
  55. var distavoid = 90;
  56. var preykerroin = 5;
  57. var viholliskerroin = 544;
  58. var vaarakerroin = 200;
  59. var chargedistance = 500;
  60. var pakoondistance = 70;
  61. var keskikerroin = 2.0;
  62. var keskihakukerroin = 0.1;
  63.  
  64. REALDNA = [distavoid,preykerroin,viholliskerroin,vaarakerroin,chargedistance,pakoondistance,keskikerroin,keskihakukerroin];
  65.  
  66. TESTDNA = REALDNA.slice();
  67. TESTSCORE = REALSCORE;
  68.  
  69. testingdna = 1;
  70. DNA = REALDNA.slice();
  71.  
  72. savedna();
  73. }
  74.  
  75. if(typeof(Storage) !== "undefined") {
  76. // Code for localStorage/sessionStorage.
  77.  
  78. if (!localStorage.REALSCORE || !localStorage.REALDNA || !localStorage.BESTRANK || !localStorage.BESTSCORE) {
  79. cleardna();
  80. }
  81. else
  82. {
  83. REALSCORE = localStorage["REALSCORE"]*1;
  84. REALDNA = JSON.parse(localStorage["REALDNA"]);
  85. BESTRANK = localStorage["BESTRANK"]*1;
  86. BESTSCORE = localStorage["BESTSCORE"]*1;
  87. }
  88. } else {
  89. // Sorry! No Web Storage support..
  90. }
  91.  
  92.  
  93. TESTDNA = REALDNA.slice();
  94. TESTSCORE = REALSCORE;
  95.  
  96. testingdna = 1;
  97. DNA = REALDNA.slice();
  98.  
  99. var injected_dead = true;
  100.  
  101. var lastscore = 0;
  102. var bestscore = 0;
  103.  
  104. var lastrank = 0;
  105. var bestrank = 1000;
  106. var uhka = false;
  107.  
  108.  
  109. var ruokakerroin = 1/40;
  110. var ruokapower = 1;
  111. var vihollispower = 2;
  112. var vaarapower = 2;
  113. var preypower = 1;
  114. var keskipower = 1;
  115.  
  116.  
  117. var preychase = true;
  118.  
  119. var learnrate = 0.3;
  120. var precision = 100;
  121.  
  122.  
  123.  
  124. INJECTED = function() {
  125. var kerroin = 10000;
  126. if (animating) {
  127. if (snake) {
  128. accelerate = false;
  129. injected_dead = false;
  130.  
  131. //xm = grd-snake.xx;
  132. //ym = grd-snake.yy;
  133.  
  134. xt = 0;
  135. yt = 0;
  136.  
  137. mindist = grd;
  138.  
  139.  
  140. for (var i = 0; i < preys.length; i++) {
  141. xtd = (preys[i].xx-snake.xx);
  142. ytd = (preys[i].yy-snake.yy);
  143.  
  144. dist = Math.sqrt(xtd*xtd + ytd*ytd);
  145.  
  146. xt += xtd/Math.pow(dist,preypower+1)*DNA[1];
  147. yt += ytd/Math.pow(dist,preypower+1)*DNA[1];
  148.  
  149. if (dist < DNA[4] && preychase)
  150. {
  151. accelerate = true;
  152. }
  153. }
  154.  
  155. uhka = false;
  156. for (var i = 0; i < snakes.length; i++) {
  157. //alert(myStringArray[i]);
  158.  
  159. target = snakes[i];
  160.  
  161. if (snake.id!=target.id)
  162. {
  163. xtd = (target.xx-snake.xx);
  164. ytd = (target.yy-snake.yy);
  165.  
  166. dist = Math.sqrt(xtd*xtd + ytd*ytd)-DNA[0];
  167. dist = Math.max(1, dist);
  168.  
  169. xt += -xtd/Math.pow(dist,vihollispower+1)*DNA[2];
  170. yt += -ytd/Math.pow(dist,vihollispower+1)*DNA[2];
  171.  
  172.  
  173.  
  174. if (dist < DNA[5])
  175. {
  176. accelerate = true;
  177. }
  178.  
  179. if (dist<mindist)
  180. {
  181. uhka = target;
  182. mindist = dist;
  183. /*if (mindist<300)
  184. {
  185. accelerate = true;
  186. }*/
  187. }
  188.  
  189. parts = target.pts;
  190. for (var k = 0; k < parts.length; k++)
  191. {
  192. part = parts[k];
  193.  
  194. xtd = (part.xx-snake.xx);
  195. ytd = (part.yy-snake.yy);
  196.  
  197. dist = Math.sqrt(xtd*xtd + ytd*ytd)-DNA[0];
  198. dist = Math.max(1, dist);
  199.  
  200. xt += -xtd/Math.pow(dist,vaarapower+1)*DNA[3];
  201. yt += -ytd/Math.pow(dist,vaarapower+1)*DNA[3];
  202. }
  203.  
  204. }
  205. }
  206.  
  207.  
  208. if (!(preychase && preys.length>0))
  209. {
  210. for (var i = 0; i < foods_c; i++) {
  211. //alert(myStringArray[i]);
  212.  
  213. xtd = (foods[i].xx-snake.xx);
  214. ytd = (foods[i].yy-snake.yy);
  215.  
  216. dist = Math.sqrt(xtd*xtd + ytd*ytd);
  217.  
  218. //xt += Math.pow(ruokakerroin*foods[i].fw,2)*xtd/Math.pow(dist,ruokapower+1);
  219. //yt += Math.pow(ruokakerroin*foods[i].fw,2)*ytd/Math.pow(dist,ruokapower+1);
  220. xt += Math.pow(foods[i].gr,2)*xtd/Math.pow(dist,ruokapower+1);
  221. yt += Math.pow(foods[i].gr,2)*ytd/Math.pow(dist,ruokapower+1);
  222. }
  223.  
  224. xtd = (grd-snake.xx);
  225. ytd = (grd-snake.yy);
  226.  
  227. dist = Math.sqrt(xtd*xtd + ytd*ytd);
  228.  
  229. xt += xtd/Math.pow(grd-dist,keskipower+1)*DNA[6];
  230. yt += ytd/Math.pow(grd-dist,keskipower+1)*DNA[6];
  231.  
  232. xt += xtd/grd*DNA[7];
  233. yt += ytd/grd*DNA[7];
  234.  
  235.  
  236. }
  237.  
  238. xm = xt*kerroin;
  239. ym = yt*kerroin;
  240.  
  241. lsxm = -xm;
  242. lsym = -ym;
  243.  
  244. if (accelerate)
  245. {
  246. setAcceleration(1);
  247. }
  248. else
  249. {
  250. setAcceleration(0);
  251. }
  252.  
  253. //console.log("xx:" + view_xx + "yy:" + view_yy);
  254. //console.log("snake.xx:" + snake.xx + "snake.yy:" + snake.yy);
  255. //console.log("snake.fx:" + snake.fx + "snake.fy:" + snake.fy);
  256. //console.log("fvx:" + fvx + "fvy:" + fvy);
  257. //console.log("");
  258.  
  259. //console.log("foods_c:" + foods_c);
  260. //console.log("snakes.length:" + snakes.length);
  261.  
  262. //console.log("D:" + Math.sqrt(xm*xm + ym*ym));
  263.  
  264. lastscore = Math.floor(150 * (fpsls[snake.sct] + snake.fam / fmlts[snake.sct] - 1) - 50) / 10;
  265. if (!lastscore)
  266. {
  267. lastscore = 1;
  268. }
  269. lastrank = rank;
  270. if (!lastrank)
  271. {
  272. lastrank = 500;
  273. }
  274. }
  275. else
  276. {
  277. if (!injected_dead)
  278. {
  279. injected_dead = true;
  280.  
  281. if (lastscore>bestscore)
  282. {
  283. console.log("Last score: " + lastscore + "(new best)");
  284. bestscore = lastscore;
  285.  
  286. BESTSCORE = bestscore;
  287. }
  288. else
  289. {
  290. console.log("Last score: " + lastscore + " Best: " + bestscore);
  291. }
  292.  
  293. if (lastrank<bestrank)
  294. {
  295. console.log("Last rank: " + lastrank + "(new best)");
  296. bestrank = lastrank;
  297.  
  298. BESTRANK = bestrank;
  299. }
  300. else
  301. {
  302. console.log("Last rank: " + lastrank + " Best: " + bestrank);
  303. }
  304.  
  305. if (testingdna>0)
  306. {
  307. TESTSCORE = lastscore/(lastrank+1);
  308.  
  309. }
  310. else
  311. {
  312. REALSCORE = (REALSCORE+lastscore/lastrank)/2;
  313. }
  314. lastscore = 0;
  315.  
  316. for (var key in DNA)
  317. {
  318. if (TESTSCORE > REALSCORE)
  319. {
  320. var mul = TESTSCORE/REALSCORE
  321. REALDNA[key] = (REALDNA[key] + TESTDNA[key]*mul)/(1+mul);
  322. REALDNA[key] = Math.round(REALDNA[key]*precision)/precision;
  323. }
  324.  
  325. if (testingdna<0)
  326. {
  327. TESTDNA[key] = REALDNA[key] + REALDNA[key]*(Math.random() - Math.random())*learnrate;
  328. TESTDNA[key] = Math.round(TESTDNA[key]*precision)/precision;
  329. }
  330. }
  331.  
  332. savedna();
  333.  
  334. testingdna = -testingdna;
  335.  
  336. if (testingdna>0)
  337. {
  338. DNA = TESTDNA.slice();
  339. }
  340. else
  341. {
  342. DNA = REALDNA.slice();
  343. }
  344. //console.log("DNA = [" + DNA + "];");
  345.  
  346. setTimeout(connect, 3000);
  347. //console.log("Reconnecting");
  348. }
  349. }
  350. }
  351. }
  352.  
  353. var injectbot = function() {
  354. if (typeof(redraw) != "undefined")
  355. {
  356. oldredraw = redraw;
  357.  
  358. redraw = function() {
  359. INJECTED();
  360. oldredraw();
  361. }
  362. console.log("injected")
  363. window.onmousemove = null;
  364. }
  365. else
  366. {
  367. setTimeout(injectbot, 1000);
  368. console.log("retrying")
  369. }
  370. }
  371. injectbot();
  372.  
  373.  
Tags: bot slither.io
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement