HWM Mod - Скрипт для перемещения артефактов на клановый склад и обратно пачкой
// ==UserScript==// @name HWM Store Many Arts// @version 1.4// @description HWM Mod - Скрипт для перемещения артефактов на клановый склад и обратно пачкой// @namespace - SAURON - & mod Mefistophel_Gr// @include http://*.heroeswm.ru/sklad_info.php*// @include http://178.248.235.15/sklad_info.php*// @grant GM_xmlhttpRequest// ==/UserScript==// (c) 2015, - SAURON - (http://www.heroeswm.ru/pl_info.php?id=3658084)// 2015, Mefistophel_Gr (http://www.heroeswm.ru/pl_info.php?id=2287844)(function() {var params = [];var count = 0;var store_id = -1;var store_sign = -1;var isAdd = 0;var headadd = 0;var mytimeout = 1000; // задержка перед помещением/снятием след. артаvar access = "\u043D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u043A \u0441\u043A\u043B\u0430\u0434\u0443";//if(getURIParam()['cat'] != undefined){if(document.body.innerHTML.indexOf('sklad_rc_on=0') >-1 && document.body.innerHTML.indexOf(access) == -1) {var inputs = document.body.getElementsByTagName('input');for(var i = 0; i < inputs.length; i++) {if(inputs[i].name == 'inv_id' && inputs[i].parentNode.name == 'f') {if(!headadd) {var td = document.createElement('td');td.width = '5';td.align = 'center';td.innerHTML = '<input type=checkbox id=macrochecker title="Отметить всё">';inputs[i++].parentNode.parentNode.parentNode.parentNode.firstChild.insertBefore(td,inputs[i].parentNode.parentNode.parentNode.parentNode.firstChild.firstChild);headadd = 1;}var t = document.createElement('td');t.style='background: #eeeeee';t.innerHTML = '<input type=checkbox id="c'+inputs[i].value+'" class="myarts" title="Отметить артефакт для переноса в инвентарь">';inputs[i++].parentNode.parentNode.parentNode.insertBefore(t, inputs[i].parentNode.parentNode.parentNode.firstChild);} else if(inputs[i].value == 'Поместить') {inputs[i].parentNode.innerHTML += "<div style='text-align: left;height: 130px;width: 430px;border: 1px solid #C1C1C1;overflow-y: scroll;' id='artplace'></div><br><input type='button' id='setterArt' title='Поместить отмеченные в списке выше артефакты на склад' value='Поместить на склад'> <input type='button' id='getterArt' title='Забрать отмеченные ниже артефакты со склада' value='Забрать со склада'><div id='statusplace' style='text-color:red;'></div>";var marts = inputs[i].parentNode.parentNode.parentNode.getElementsByTagName('option');var div = document.getElementById('artplace');for(var j = 1; j < marts.length; j++) {div.innerHTML += "<input type='checkbox' class='artsfromset' id='set"+marts[j].value+"'>"+marts[j].innerHTML+"<br>";}marts[0].parentNode.style = 'display: none;';inputs[i].style = 'display: none;';}else if(inputs[i].name == 'id' && inputs[i].value != undefined && store_id == -1) store_id = inputs[i].value;else if(inputs[i].name == 'sign' && inputs[i].value != undefined && store_sign == -1) store_sign = inputs[i].value;}document.getElementById('getterArt').onclick = function(){getCheckedArts();};document.getElementById('setterArt').onclick = function(){setCheckedArts();};document.getElementById('macrochecker').onchange = function(){changeCheck();};}};//========== Забираем арты ==================function getCheckedArts() {params = [];var c = document.getElementsByClassName('myarts');for(var i = 0; i < c.length; i++) {if(c[i].checked) {try {var inps = c[i].parentNode.parentNode.getElementsByTagName('form')[1].getElementsByTagName('input');var str = '';for(var j = 0; j < inps.length - 1; j++) {if(j != 0) str += '&';str += inps[j].name + '=' + inps[j].value;}params.push(str);}catch(e){alert(e)}}}count = params.length;isAdd = 0;startGetter();}//========== Помещаем арты ==================function setCheckedArts() {params = [];var c = document.getElementsByClassName('artsfromset');for(var i = 0; i < c.length; i++) {if(c[i].checked) {try {var str = 'id=' + store_id + '&sign=' + store_sign + '&p_art_id=' + c[i].id.split('et')[1];params.push(str);}catch(e){alert(e)}}}count = params.length;isAdd = 1;startGetter();}//======= Функция перемещения артов ===========function startGetter() {if(params.length > 0) {var txt = '';if(isAdd == 1) txt = 'Помещено'; else txt = 'Забрано';var uri = "http://"+location.hostname+"/sklad_info.php?" + params.pop();GM_xmlhttpRequest({method: "GET",url: uri,onload: function(response) {if (txt == 'Помещено') {document.getElementById('statusplace').innerHTML = "<center><font style='color:#006400;'><b>"+txt+" артов: </font><font style='color:#0070FF;'>"+(count-params.length)+"/"+count+"</b></font></center>";} elsedocument.getElementById('statusplace').innerHTML = "<center><font style='color:#FF0000;'><b>"+txt+" артов: </font><font style='color:#0070FF;'>"+(count-params.length)+"/"+count+"</b></font></center>";if(params.length > 0) {setTimeout(startGetter, mytimeout);} else {if(!isAdd) {location.href = location.href;}else location.href = "http://"+location.hostname+"/sklad_info.php?id=" + getURIParam()['id'] + "&cat=5";}}});}}function getURIParam() {var search = window.location.search.substr(1),keys = {};search.split('&').forEach(function(item) {item = item.split('=');keys[item[0]] = item[1];});return keys;}//========== Выбрать все ==================function changeCheck() {var c = document.getElementById('macrochecker');var myinp = document.getElementsByClassName('myarts');for(var i = 0; i < myinp.length; i++) {myinp[i].checked = c.checked;}}})();