Передача золота и ресурсов игроку со страницы перса игрока-получателя. События игрока. Перекач/недокач
// ==UserScript==
// @name hwm_trans_nick
// @namespace Demin
// @description Передача золота и ресурсов игроку со страницы перса игрока-получателя. События игрока. Перекач/недокач
// @version 3.6
// @include /https:\/\/(www.heroeswm.ru|www.lordswm.com|my.lordswm.com)\/(pl_info.php|transfer.php|el_transfer.php).*/
// @license MIT
// ==/UserScript==
// (c) 2011-2013, demin ( http://www.heroeswm.ru/pl_info.php?id=15091 )
// 2022 Zeleax
if (!this.GM_getValue || (this.GM_getValue.toString && this.GM_getValue.toString().indexOf("not supported")>-1)) {
this.GM_getValue=function (key,def) {
return localStorage[key] || def;
};
this.GM_setValue=function (key,value) {
return localStorage[key]=value;
};
this.GM_deleteValue=function (key) {
return delete localStorage[key];
};
}
var script_num = 95550;
var script_name = "HWM mod - Set link & nick for transfer (by Demin)";
var url_cur = location.href;
var url = 'https://'+location.hostname+'/';
var string, string2, string3, string4, res, el;
if ( url_cur.match('pl_info.php') )
{
if ( url.match('www.lordswm') ) {
string = '->Resources';
string2 = '->Elements';
string3 = 'Events';
string4 = 'Overpwr?';
} else {
string = '->Ресурсы';
string2 = '->Элементы';
string3 = 'События';
string4 = 'Перекач?';
}
if(res=/pl_info.php\?id=(\d+)/.exec(location.href)){
var plID = res[1];
var t = getE( "//a[contains(@href, 'sms-create.php')]" );
if((t) && (res= /mailto_id=(\d+)/.exec(t.getAttribute("href"))) && (res[1])) {
el=getE('//img[contains(@src,"male.")]');
el= el.parentNode.parentNode.parentNode.parentNode.parentNode.previousSibling;
el=getE('./b[contains(text(),"[")]', el);
var txt=el?.innerText;
var plName=/(\S+.+\S)\s+\[\d+\]/.exec(txt)[1];
var span = document.createElement('span');
span.innerHTML = '<br> <a href=transfer.php?nick=' + plName + ' title="Передать ресурсы" style="text-decoration: none;">' + string + '</a>/'+
'<a href=el_transfer.php?nick=' + plName + ' title="Передать элементы" style="text-decoration: none;">' + string2 + '</a>/'+
'<a href="https://daily.heroeswm.ru/event.php?lvl=0&f=-1&id='+plID+'&clan=0" title="События игрока" target="_blank" style="text-decoration: none;">'+string3+'</a>/'+
'<a href="https://daily.heroeswm.ru/progress/'+plID+'" title="Перекач/недокач" target="_blank" style="text-decoration: none;">'+string4+'</a>';
t.parentNode.insertBefore( span, t.nextSibling );
}
}
}
if ( url_cur.match('transfer.php') )
{
var item_name = /nick=([^&]+)/.exec( url_cur );
if ( item_name ) {
plName=item_name[1].replace(/\s/g, " ");
var gold_trans = /gold=(\d+)/.exec( url_cur );
var desc_trans = /desc=([^&]+)/.exec( url_cur );
var els = document.getElementsByTagName('input');
for( var i = 0; i < els.length; i++ ) {
el = els[i];
if( el.name == 'nick' && el.type == 'text' ) {
el.value = urlDecode( plName );
}
else if( el.name == 'gold' && el.type == 'text' ) {
if ( gold_trans ) el.value = gold_trans[1];
}
else if( el.name == 'desc' && el.type == 'text' ) {
if ( desc_trans ) el.value = urlDecode( desc_trans[1] );
}
}
var all_a = document.querySelector("a[href='el_transfer.php']");
if ( all_a ) {
all_a.href += '?nick=' + plName;
}
}
}
function urlDecode(string) {
var codes = '%E0%E1%E2%E3%E4%E5%B8%E6%E7%E8%E9%EA%EB%EC%ED%EE%EF%F0%F1%F2%F3%F4%F5%F6%F7%F8%F9%FA%FB%FC%FD%FE%FF'+
'%C0%C1%C2%C3%C4%C5%A8%C6%C7%C8%C9%CA%CB%CC%CD%CE%CF%D0%D1%D2%D3%D4%D5%D6%D7%D8%D9%DA%DB%DC%DD%DE%DF%20%A0';
codes = codes.split('%');
var chars = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя'+
'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ ';
for (var i=0; i<codes.length; i++) string = string.split('%'+codes[i+1]).join(chars[i]);
return string;
}
function $(id) { return document.querySelector("#"+id); }
function addEvent(elem, evType, fn) {
if (elem.addEventListener) {
elem.addEventListener(evType, fn, false);
}
else if (elem.attachEvent) {
elem.attachEvent("on" + evType, fn);
}
else {
elem["on" + evType] = fn;
}
}
function getE(xpath,el,docObj){return (docObj?docObj:document).evaluate(xpath,(el?el:(docObj?docObj.body:document.body)),null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;}