Greasy Fork is available in English.

Animation Script

a script to support animated skins on Jstris

2019-06-11 يوللانغان نەشرى. ئەڭ يېڭى نەشرىنى كۆرۈش.

  1. // ==UserScript==
  2. // @name Animation Script
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.1
  5. // @description a script to support animated skins on Jstris
  6. // @author Oki
  7. // @match https://*.jstris.jezevec10.com/*
  8. // @grant none
  9. // ==/UserScript==
  10.  
  11. /**************************
  12. Animation Script
  13. **************************/
  14.  
  15. localStorage.animSpeed = localStorage.animSpeed || '100';
  16. localStorage.animToggle = localStorage.animToggle || 'b'
  17. var animationRunning = false;
  18.  
  19. //Add toggle key option
  20. var animationKey = document.createElement("tr");
  21. animationKey.innerHTML = '<td>Toggle animation:</td><td><input maxlength="1" id="input420" type="text" size="7" value="'+localStorage.animToggle+'"></td><td id="kc420">0</td>'
  22. tab_controls.children[2].appendChild(animationKey);
  23.  
  24. //Add speed option
  25. var animOption = document.createElement("tr");
  26. animOption.innerHTML = '<td>Animation speed:</td><td><input onchange="localStorage.animSpeed=parseInt(this.value)||100" size="10" id="animSpeed" type="text" value="'+localStorage.animSpeed+'"></td>'
  27. tab_settings.children[1].appendChild(animOption);
  28.  
  29. //Custom skin here
  30. var animatedSkin = [
  31. ["https://cdn.discordapp.com/attachments/429007833992790036/564703035196964864/ppt_crayon_1.png",36],
  32. ["https://cdn.discordapp.com/attachments/429007833992790036/564703064234131464/ppt_crayon_2.png",36],
  33. ["https://cdn.discordapp.com/attachments/429007833992790036/564703091375734804/ppt_crayon_3.png",36],
  34. ["https://cdn.discordapp.com/attachments/429007833992790036/564703116331843584/ppt_crayon_4.png",36]]
  35.  
  36. var intervals = []
  37.  
  38. function stopAnim() {
  39. for (var i=0; i < intervals.length; i++) {
  40. clearInterval(intervals[i]);
  41. }
  42. }
  43.  
  44. function startAnim() {
  45. var animLength = animatedSkin.length*localStorage.animSpeed
  46. animatedSkin.map((x,i)=>{
  47. setTimeout(()=>{intervals.push(setInterval(()=>{loadSkin(x[0],x[1])}, animLength))}, i*(animLength/animatedSkin.length));
  48. })
  49. }
  50.  
  51.  
  52. window.onkeyup = function(e) {
  53. if(e.target.id == "input420") {
  54. event.preventDefault()
  55. input420.value=e.key
  56. kc420.innerHTML=e.keyCode
  57. localStorage.animToggle=e.key
  58. } else {
  59. if (e.key == localStorage.animToggle) {
  60. if(animationRunning) {
  61. stopAnim();
  62. } else {
  63. startAnim();
  64. }
  65. animationRunning ^= 1
  66. }
  67. }
  68. "input421"==e.target.id?(e.preventDefault(),input421.value=e.key,kc421.innerHTML=e.keyCode,localStorage.randomizeKey=e.key):e.key==localStorage.randomizeKey&&deployRandomSkin();
  69. }