🏠 Home 

HWM Store Many Arts

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='Поместить на склад'> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <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>";
} else
document.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;
}
}
})();