// ==UserScript==
// @name Bot fighter2222
// @version 0.0.2
// @description Мочит нужных=
// Поддерживает регулярные выражения, можно перечислять варианты через | (pipe)
// подробнее тут: https://developer.mozilla.org/ru/docs/Web/JavaScript/..
// @include http://wapheroes.ru/index.php?action=map&*
// @include http://wapheroes.ru/index.php?a&action=auto_battle&*
// @author notexist
// ==/UserScript==
(function()
{
console.log('______________________________________________________________________');
// mean is 1500 ms, min = 1000 ms, max = 2000 ms.
var mu = 1000;
var sigma = 1000;
var wanted = 'Духи Древних|Древнее Воинство 3'; // Мобы, который ебем, между ними знак |
var location_name = 'Последний Предел'; // Локация в которую должен передидывать
var get_text1 = 'Взять|Принять'; // Кнопка для квестов
var attack_text = 'Автоматический'; // Тип боя
var wanted_found = false;
var wanted_urls = [];
var get_link = '';
var location_url = '';
var attack_url = '';
var reg_exp_for_mobs = new RegExp('index\\.php\\?action=map&l=\\d+&e=\\d+');
var mob_urls = [];
find_all_links();
action();
// Возвращает случайное значение между 0 и 1,
// примерная картина для norm_coefficient = 3: imgur.com/X4bg25a
function get_random_norm(norm_coefficient)
{
var random_sum = 0
for (var i = 0; i < norm_coefficient; i++)
{
random_sum += Math.random();
}
return random_sum / norm_coefficient;
}
function find_all_links()
{
if (document.links.length == 0)
{
setInterval(function(){location.reload()}, mu + get_random_norm(3) * sigma);
}
console.log('document.links.length = ' + document.links.length);
for (var i = 0; i < document.links.length; i++)
{
console.log('\n\nLink text: ' + document.links[i].text);
console.log(document.links[i].href + '\n');
if (document.links[i].text.match(attack_text))
{
attack_url = document.links[i].href;
console.log('\n\nfound attack\n\n');
}
else if (document.links[i].text.match(get_text1))
{
get_link = document.links[i].href;
console.log('\n\nfound Get smth\n\n');
}
else if (document.links[i].text.match(wanted))
{
wanted_found = true;
wanted_urls.push(document.links[i].href);
console.log('\n\nfound wanted mob\n\n');
}
else if (document.links[i].text.match(location_name))
{
location_url = document.links[i].href;
console.log('\n\nfound location name\n\n');
}
else if (document.links[i].href.match(reg_exp_for_mobs))
{
mob_urls.push(document.links[i].href);
console.log('\n\nfound and added mob link\n\n');
}
}
}
function action()
{
if (attack_url !== '')
{
console.log('\ngo ATTACK\n');
setInterval(function(){location.href = attack_url}, mu + get_random_norm(3) * sigma);
return;
}
if (get_link !== '')
{
console.log('\ngo GET\n');
setInterval(function(){location.href = get_link}, mu + get_random_norm(3) * sigma);
return;
}
if (wanted_found)
{
// Выбираем случайного из тех, что хочется убить первыми
console.log('\ngo WANTED\n');
setInterval(function()
{
location.href = wanted_urls[Math.floor(get_random_norm(3) * wanted_urls.length)]
}, mu + get_random_norm(3) * sigma);
return;
}
// if (document.evaluate("//div[contains(.,'Ваш герой устал, отдохните')]", document, null, 9, null).singleNodeValue)
// {
// // Слишком рано атаковали, обновим страницу
// console.log('\ngo REFRESH\n');
// setInterval(function(){location.reload(true)}, mu + get_random_norm(3) * sigma);
// return;
// }
if (location_url !== '')
{
// Вернёмся в локацию
console.log('\ngo to LOCATION\n');
setInterval(function(){location.href = location_url}, mu + get_random_norm(3) * sigma);
return;
}
if (mob_urls.length > 0)
{
// Если нашли мобов, атакуем рандомного
console.log('\ngo RANDOM mob\n');
setInterval(function()
{
location.href = mob_urls[Math.floor(get_random_norm(3) * mob_urls.length)]
}, mu + get_random_norm(3) * sigma);
return;
}
}
})();