Определение параметра на html странице
Я в ява-скриптинге не силён. Поэтому попросил бы простейший пример бота для игры http://godville.net/superhero
Чтобы, когда мало здоровья - нажималась кнопка(если есть) "сделать хорошо". Я так понимаю алгоритм: 1) Ищем здоровье текущее и здоровье максимальное. 2)Если текущее меньше максимального на 10%(например), то происходит нажатие на "лечение" Хоть подскажите от чего отталкиваться? Здоровье в html выглядит так: Код:
<div class="l_val">267 / 368</div> Код:
<a href="#" class="no_link div_link enc_link" title="Одарить героя благодатью Буду очень признателен. |
Как то так, но клика не будет, если подобных ссылок несколько, а нужная стоит не первой в DOM. Вернее, клик то произойдет, но куда,...
var link = document.querySelector('.no_link.div_link.enc_link'); setInterval(function() { var hp = document.querySelector('.l_val').innerHTML.match(/\d+/g); if (hp[1] <= hp[2] - hp[2] / 100 * 10) { link.click(); } }, 100); p.s не тестил. |
Lemme, можно и без регулярки
и да там элементов с классом l_val выше крыши var link = document.querySelector('#actions .enc_link'); setInterval(function() { var hp = document.querySelector('#hk_health .l_val').innerHTML.split(" / "); if ( hp[0] / hp[1] * 100 <= 10) { link.click(); } }, 3000); |
sanmihan, можно =)
|
Что-то не получается... Как этот скрипт запустить? Пытаюсь запустить с помощью расширения - толку 0. Даже "окно" не появляется.
Скрин var link = document.querySelector('#actions .enc_link'); var hp = document.querySelector('#hk_health .l_val').innerHTML.split(" / "); alert( hp[1] ); setInterval(function() { var hp = document.querySelector('#hk_health .l_val').innerHTML.split(" / "); alert( hp ); if (hp[1] <= hp[2] - hp[2] / 100 * 10) { link.click(); } }, 100); |
Димитрий, в консоль.
|
Цитата:
|
Также ошибки выводит:
Uncaught SyntaxError: Unexpected token var at Object.InjectedScript._evaluateOn (<anonymous>:904:140) at Object.InjectedScript._evaluateAndWrap (<anonymous>:837:34) at Object.InjectedScript.evaluate (<anonymous>:693:21) |
Изначально нашел скрипт, делающий задуманное. Но хотел от мишуры избавиться - всплыющего окна для настройки. Плюс здоровье определял неправильно.
var godville = { delay: 3000, init: function() { $('body').append('<aside id="autobot">'); $('#autobot').append('<p>Select an option from below to start botting</p>'); $('#autobot').append('<input type="radio" id="auto_encourage" name="autobot"><label for="auto_encourage">Automatically encourage</label>'); $('#autobot').append('<input type="radio" id="auto_punish" name="autobot"><label for="auto_punish">Automatically punish</label>'); $('#autobot').append('<button>Stop autoing</button>'); $('#autobot').css({ background: 'rgba(255,255,255,.45)', width: '330px', padding: '15px 0 15px 20px', border: '1px solid #CCC', 'border-radius': '10px', 'box-sizing': 'border-box', 'font-size': '12px', position: 'absolute', top: '40px', right: '10px' }); $('#autobot input[type="radio"],#autobot label').css({float: 'left', margin: '3px 0'}); $('#autobot input[type="radio"]').css({clear: 'left', 'margin-right': '5px'}).change(function() { var selection = $(this).prop('id'); if(godville.interval) godville.stop(true); godville.run(selection); }); $('#autobot button').hide().css({margin: '15px 0 0', float: 'left', clear: 'both'}).click(godville.stop); }, interval: '', run: function(selection) { var godpower = Number($('.gp_val').text().replace(/%/,'')), action; if(selection === 'auto_punish') { action = $('.enc_link'); } else { action = $('.pun_link'); } godville.interval = setInterval(function() { if(godpower > 25) { action.click(); } else { $('#autobot p').html('You don\'t have enough Godpower.<br>Checking again in '+ (godville.delay / 1000) +' seconds.'); } },godville.delay); $('#autobot button').show(); }, stop: function(instant) { if(godville.interval) { clearInterval(godville.interval); godville.interval = ''; } if(!instant) { $('#autobot p').empty().text('Bot has been stopped.').css('color','red'); setTimeout(function() { $('#autobot p').fadeOut(1000,function() { $(this).text('Select an option from below to start botting').css('color','#555').show(); }); },5000); $('#autobot input[type="radio"]').prop('checked',false); $('#autobot button').hide(); } } }; godville.init(); |
Часовой пояс GMT +3, время: 06:56. |