Greasy Fork is available in English.

Animation Script

a script to support animated skins on Jstris

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください。
  1. // ==UserScript==
  2. // @name Animation Script
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.2
  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. (function() {
  16. window.addEventListener('load', function(){
  17.  
  18. localStorage.animSpeed = localStorage.animSpeed || '100';
  19. localStorage.animToggle = localStorage.animToggle || 'b'
  20.  
  21. Game['animationRunning'] = false;
  22.  
  23. //Add toggle key option
  24. var animationKey = document.createElement("tr");
  25. 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>'
  26. tab_controls.children[2].appendChild(animationKey);
  27.  
  28. //Add speed option
  29. var animOption = document.createElement("tr");
  30. 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>'
  31. tab_settings.children[1].appendChild(animOption);
  32.  
  33. //Custom skin here
  34. Game['animatedSkin'] = [
  35. ["https://cdn.discordapp.com/attachments/429007833992790036/564703035196964864/ppt_crayon_1.png",36],
  36. ["https://cdn.discordapp.com/attachments/429007833992790036/564703064234131464/ppt_crayon_2.png",36],
  37. ["https://cdn.discordapp.com/attachments/429007833992790036/564703091375734804/ppt_crayon_3.png",36],
  38. ["https://cdn.discordapp.com/attachments/429007833992790036/564703116331843584/ppt_crayon_4.png",36]]
  39.  
  40. var intervals = []
  41.  
  42. Game['stopAnim'] = function() {
  43. for (var i=0; i < intervals.length; i++) {
  44. clearInterval(intervals[i]);
  45. }
  46. }
  47.  
  48. Game['startAnim'] = function() {
  49. var animLength = Game['animatedSkin'].length*localStorage.animSpeed
  50. Game['animatedSkin'].map((x,i)=>{
  51. setTimeout(()=>{intervals.push(setInterval(()=>{loadSkin(x[0],x[1])}, animLength))}, i*(animLength/Game['animatedSkin'].length));
  52. })
  53. }
  54.  
  55.  
  56. window.onkeyup = function(e) {
  57. if(e.target.id == "input420") {
  58. event.preventDefault()
  59. input420.value=e.key
  60. kc420.innerHTML=e.keyCode
  61. localStorage.animToggle=e.key
  62. } else {
  63. if (e.key == localStorage.animToggle) {
  64. if(Game['animationRunning']) {
  65. Game['stopAnim']();
  66. } else {
  67. Game['startAnim']();
  68. }
  69. Game['animationRunning'] ^= 1
  70. }
  71. }
  72. "input421"==e.target.id?(e.preventDefault(),input421.value=e.key,kc421.innerHTML=e.keyCode,localStorage.randomizeKey=e.key):e.key==localStorage.randomizeKey&&Game['deployRandomSkin']();
  73. }
  74.  
  75. })})()