SHOW:
|
|
- or go back to the newest paste.
| 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 | }); |