// ==UserScript== // @name TW Gemakkelijk goudmunten slaan // @description Vervangt de link "Maximaal aantal selecteren" door een menu met precieze keuze voor het (op)slaan van goudmunten/pakketten. // @author Michael Richter // @version 0.1.20100504 // @namespace http://osor.de/ // @include http://nl*.tribalwars.nl/game.php?*screen=snob&mode=reserve* // @include http://nl*.tribalwars.nl/game.php?*screen=snob&mode=coin* // ==/UserScript== //Vertaald uit het Duits door: Lekensteyn (http://home.deds.nl/~lekensteyn/) // ----------------------------------------------------------------------------- // Veranderingen en uitbreidingen aan deze script vereist // de toestemming van de auteur (Michael Richter) // ----------------------------------------------------------------------------- (function(){ if(/screen=snob&mode=(reserve|coin)/.test(location.href)) { function selectReserve() { var chooser2 = document.getElementById('chooser' + (this.id == 'chooser1' ? '2' : '1')); chooser2.removeEventListener('change', selectReserve, false); chooser2.selectedIndex = this.selectedIndex; chooser2.addEventListener('change', selectReserve, false); var value = this.value.substr(2), selects = document.getElementsByName('villages')[0].getElementsByTagName('select'), sum = 0; for(var i = 0; i < selects.length; i++) { if(selects[i].id == 'chooser1' || selects[i].id == 'chooser2') { continue; } if(value == 'none') { selects[i].options[selects[i].options.length - 1].selected = true; } else if(value == 'all') { selects[i].options[selects[i].options.length - 2].selected = true; } else if(value.substr(value.length - 1, 1) == 'x') { if(13 - (selects[i].options.length - 1) < parseInt(value, 10)) { selects[i].options[parseInt(value, 10) - (13 - (selects[i].options.length - 1)) - 1].selected = true; } else { selects[i].options[selects[i].options.length - 1].selected = true; } } else if(value > 0) { if(selects[i].options.length - 1 < value) { selects[i].options[selects[i].options.length - 2].selected = true; } else { selects[i].options[value - 1].selected = true; } } else if(value < 0) { if(selects[i].options.length - 2 < -value) { selects[i].options[selects[i].options.length - 1].selected = true; } else { selects[i].options[selects[i].options.length - 2 + parseInt(value, 10)].selected = true; } } sum += parseInt(selects[i].value, 10); } document.getElementById('selectedBunches_top').innerHTML = sum; document.getElementById('selectedBunches_bottom').innerHTML = sum; } var chooser = document.evaluate('//table[@class="main"]/tbody/tr/td/table[2]/tbody/tr/td[2]/form/table/tbody/tr/td[2]', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); var chooser2 = document.evaluate('//table[@class="main"]/tbody/tr/td/table[2]/tbody/tr/td[2]/form/table/tbody/tr[last()]/td[2]', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); if(chooser && chooser.snapshotLength > 0) { chooser = chooser.snapshotItem(0); chooser2 = chooser2.snapshotItem(0); chooser.removeChild(chooser.firstChild); chooser2.removeChild(chooser2.firstChild); var div = document.createElement('div'); div.innerHTML = ''; chooser.appendChild(div); var div2 = div.cloneNode(true); div2.firstChild.id = 'chooser2'; chooser2.appendChild(div2); chooser.firstChild.firstChild.addEventListener('change', selectReserve, false); chooser2.firstChild.firstChild.addEventListener('change', selectReserve, false); } } })();