Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2014
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name       Dixit cards replace
  3. // @version    5.8.3
  4. // @description  Edit script params to play your own deck
  5. // @include http://www.boiteajeux.net/jeux/dix/partie.php*
  6. // @copyright  2014, Ochinpo
  7.  
  8. // Cards dir (no trailing slash)
  9. // var cardsBaseUrl = 'https://dl.dropboxusercontent.com/u/33454051/dixit';
  10. var cardsBaseUrl = 'https://dl.dropboxusercontent.com/u/107673401/Dixit_200x293';
  11. var totalCards = 344;
  12. var imgExtension = 'jpg';
  13.  
  14. // Get url param
  15. function getUrlParameter(param)
  16. {
  17.     var pageUrl = window.location.search.substring(1);
  18.     var urlParts = pageUrl.split('&');
  19.     for (var i = 0; i < urlParts.length; i++)
  20.     {
  21.         var parameterName = urlParts[i].split('=');
  22.         if (parameterName[0] == param)
  23.         {
  24.             return parameterName[1];
  25.         }
  26.     }
  27. }
  28.  
  29. // Random with seed
  30. function Rc4Random(seed)
  31. {
  32.     var keySchedule = [];
  33.     var keySchedule_i = 0;
  34.     var keySchedule_j = 0;
  35.    
  36.     function init(seed) {
  37.         for (var i = 0; i < 256; i++)
  38.             keySchedule[i] = i;
  39.        
  40.         var j = 0;
  41.         for (var i = 0; i < 256; i++)
  42.         {
  43.             j = (j + keySchedule[i] + seed.charCodeAt(i % seed.length)) % 256;
  44.            
  45.             var t = keySchedule[i];
  46.             keySchedule[i] = keySchedule[j];
  47.             keySchedule[j] = t;
  48.         }
  49.     }
  50.     init(seed);
  51.    
  52.     function getRandomByte() {
  53.         keySchedule_i = (keySchedule_i + 1) % 256;
  54.         keySchedule_j = (keySchedule_j + keySchedule[keySchedule_i]) % 256;
  55.        
  56.         var t = keySchedule[keySchedule_i];
  57.         keySchedule[keySchedule_i] = keySchedule[keySchedule_j];
  58.         keySchedule[keySchedule_j] = t;
  59.        
  60.         return keySchedule[(keySchedule[keySchedule_i] + keySchedule[keySchedule_j]) % 256];
  61.     }
  62.    
  63.     this.getRandomNumber = function() {
  64.         var number = 0;
  65.         var multiplier = 1;
  66.         for (var i = 0; i < 8; i++) {
  67.             number += getRandomByte() * multiplier;
  68.             multiplier *= 256;
  69.         }
  70.         return number / 18446744073709551616;
  71.     }
  72. }
  73.  
  74.  
  75. // Get game ID from URL
  76. var gameId = getUrlParameter('id');
  77.  
  78. // Create random generator based on gameId
  79. var rc4Rand = new Rc4Random(gameId);
  80.  
  81. // Create shuffle method
  82. //+ Jonas Raoni Soares Silva
  83. //@ http://jsfromhell.com/array/shuffle [v1.0]
  84. var shuffle = function(o) {
  85.     for(var j, x, i = o.length; i; j = parseInt(rc4Rand.getRandomNumber() * i), x = o[--i], o[i] = o[j], o[j] = x);
  86.     return o;
  87. }
  88.  
  89. // Get random 84 cards
  90. var cardIds = [];
  91. for (var i = 1; i <= totalCards; i++) {
  92.    cardIds.push(i);
  93. }
  94.  
  95. var cardIds = shuffle(cardIds);
  96. //console.debug(cardIds);
  97.  
  98. $(function() {
  99.     unsafeWindow.montreCarte = function(i) {
  100.         $("#dvGdeCarte").html('<img src="' + cardsBaseUrl + '/' + i + '.' + imgExtension + '">');
  101.         $("#dvGdeCarte").show();
  102.     }
  103.  
  104.     $('img')
  105.         .filter(function() {
  106.             return $(this).attr('src').match(/[0-9]+\.png/);
  107.         }).each(function(i, el) {
  108.             // Get src
  109.             var src = $(el).attr('src');
  110.            
  111.             // get onmouseover
  112.             var onmouseover = $(el).attr('onmouseover');
  113.            
  114.             // Get originalId
  115.             var originalCardId = src.match(/[0-9]+/)[0];
  116.            
  117.             // Get new card ID
  118.             var newCardId = cardIds[originalCardId - 1];
  119.             //console.debug('original - new', originalCardId, newCardId);
  120.  
  121.             // Replace image path
  122.             var newSrc = src.replace(originalCardId, newCardId)
  123.                 .replace('img', cardsBaseUrl)
  124.                 .replace('png', imgExtension);
  125.            
  126.             $(el).attr('src', newSrc);
  127.            
  128.             // Replace onmouseover
  129.             var newOnmouseover = onmouseover.replace(originalCardId, newCardId);
  130.            
  131.             $(el).attr('onmouseover', newOnmouseover);
  132.         });
  133. });
  134.  
  135. // ==/UserScript==
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement