Guest User

Untitled

a guest
Sep 17th, 2014
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name            Tagpro Group Default Settings
  3. // @version         0.4
  4. // @description     Adds a button to set all settings to their default values
  5. // @include         http://tagpro-*.koalabeast.com/groups/*
  6. // @include         http://tangent.jukejuice.com/groups/*
  7. // @include         http://maptest.newcompte.fr/groups/*
  8. // @author          Some Ball -1, RonSpawnson
  9. // ==/UserScript==
  10.  
  11. $(function() {
  12.     //if true, the value of caps will be expected to be set to No Limit
  13.     //if false, the value of caps will ignored when making settings default
  14.     var includeCaps = true;
  15.    
  16.    
  17.     var defaulted = false;
  18.     var isLeader = false;
  19.     var values = {//map: '',
  20.         caps: 0,
  21.         time: 10,
  22.         accel: 1,
  23.         topspeed: 1,
  24.         bounce: 1,
  25.         playerRespawnTime: 3000,
  26.         speedPadRespawnTime: 10000,
  27.         dynamiteRespawnTime: 30000,
  28.         buffRespawnTime: 60000};
  29.     function isDefaulted()
  30.     {
  31.         var match = [0,0,0,0,0,0,0,0,0];
  32.         var items = $('.setting.value');
  33.         for(var i = 1;i < 10;i++)
  34.         {
  35.             if(items[i].value==values[items[i].name])
  36.             {
  37.                 match[i-1] = 1;
  38.             }
  39.         }
  40.         var sum = match.reduce(function(a, b) {
  41.             return a + b;
  42.         });
  43.         if(sum==9 || (!includeCaps && sum==8))
  44.         {
  45.             return true;
  46.         }
  47.         return false;
  48.     }
  49.    
  50.     function leaderCheck()
  51.     {
  52.         if(typeof $('.leader.you').data('model')!='undefined')
  53.         {
  54.             if(!isLeader) //now a leader
  55.             {
  56.                 $("#defaultSettings").show();
  57.                 isLeader = true;
  58.             }
  59.         }
  60.         else if(isLeader) //no longer a leader
  61.         {
  62.            $("#defaultSettings").hide();
  63.             isLeader = false;
  64.         }
  65.     }
  66.    
  67.     $('#settings :first').after('<button id="defaultSettings" type="button">Default Settings</button>');
  68.     $('#defaultSettings').click(function() {
  69.         if(isLeader)
  70.         {
  71.             for(var x in values)
  72.             {
  73.                 if((x=='caps' && includeCaps) || x!='caps')
  74.                 {
  75.                     tagpro.group.socket.emit('setting',{
  76.                         name: x,
  77.                         value: values[x]
  78.                     });
  79.                 }
  80.             }
  81.         }
  82.     });
  83.     leaderCheck();
  84.     defaulted = isDefaulted();
  85.     if (defaulted == true) {
  86.         $("#defaultSettings").hide();  
  87.     } else {
  88.         $("#defaultSettings").show();  
  89.     }
  90.  
  91.     //$('#defaultSettings').prop('enabled',defaulted);
  92.     tagpro.group.socket.on('setting',function(data) {
  93.         if(data.name!='map' && typeof values[data.name]!='undefined') //not maps and a value we maybe care about
  94.         {
  95.             if((includeCaps && data.name=='caps') || data.name!='caps') //whether caps are important or not
  96.             {
  97.                 defaulted = isDefaulted();
  98.                 if (defaulted == true) {
  99.                     $("#defaultSettings").hide();  
  100.                 } else {
  101.                     $("#defaultSettings").show();  
  102.                 }
  103.             }
  104.         }
  105.     });
  106.     setInterval(leaderCheck,500);
  107. });
Advertisement
Add Comment
Please, Sign In to add comment