您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
自用的HV自动脚本,按[`~]暂停,[双击]选择模式
当前为
// ==UserScript== // @name HV_AutoAttack // @name:zh-CN 【HV】HV自动打怪 // @namespace Dodying // @author Dodying // @description 自用的HV自动脚本,press [`~] pause,[double click] choose mode // @description:zh-CN 自用的HV自动脚本,按[`~]暂停,[双击]选择模式 // @include http://hentaiverse.org/* // @version 1.02 // @grant none // @icon http://cdn4.iconfinder.com/data/icons/mood-smiles/80/mood-29-48.png // @run-at document-end // ==/UserScript== RiddleAlert(); //答题警报 if (document.querySelector('img[src="http://ehgt.org/g/derpy.gif"]')) { window.location = window.location.href; } if (!document.querySelector('#togpane_log')) { //CreateElement(); self.setInterval('var time = document.querySelector(\'#Random_Encounter a\').innerHTML;if (time == \'Ready\') {xhr = new XMLHttpRequest();xhr.open(\'POST\', window.location.href);var parm = \'recover=all\';xhr.setRequestHeader(\'Accept\', \'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\');xhr.setRequestHeader(\'Content-Type\', \'application/x-www-form-urlencoded\');xhr.send(parm);xhr.onload = function () {document.querySelectorAll(\'#Random_Encounter a\')[1].click();window.location=document.querySelector(\'#Random_Encounter a\').getAttribute(\'href\');}}', 3000); setTimeout(function () { window.location = window.location; }, 5 * 60 * 1000); return; } HotKey(); //设置全局快捷键 if (localStorage.HVAutoAttack_disabled == '1') { //如果禁用 return; } else { //如果没有禁用 if (!localStorage.HVAutoAttack_status) { var status = '1'; //0.物理 1.火 2.冰 3.雷 4.风 5.圣 6.暗 } else { var status = localStorage.HVAutoAttack_status; } var Monster_All = document.querySelectorAll('div.btm1').length; var Monster_Dead = document.querySelectorAll('img[src*="/s/nbardead.png"]').length; var Monster_Alive = Monster_All - Monster_Dead; var Monster_Boss = document.querySelectorAll('div.btm2[style^=\'background:\']').length; var Monster_Boss_Dead = document.querySelectorAll('div.btm1[style*=\'opacity:\'] div.btm2[style*=\'background:\']').length; var Monster_Boss_Alive = Monster_Boss - Monster_Boss_Dead; CountRound(); //回合计数及自动前进 ///10秒长期不动后警报 setTimeout(function () { OtherAlert(); }, 15000); var HP = document.getElementsByClassName('cwb2') [0].offsetWidth / 120; var MP = document.getElementsByClassName('cwb2') [1].offsetWidth / 120; var SP = document.getElementsByClassName('cwb2') [2].offsetWidth / 120; var oc = document.getElementsByClassName('cwb2') [3].offsetWidth / 120; AutoUseGem(); //则自动使用宝石 DeadSoon(); //则自动回血回魔 AutoUsePotAndBuffSkill(); //则自动使用药水、Buff技能 AutoAttack(); //自动打怪 } ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// function CreateElement() { var left = document.documentElement.clientWidth - 80; var div = document.createElement('div'); var img = document.createElement('img'); var a = document.createElement('a'); var p = document.createElement('p'); div.id = 'E-Hentai_Home'; div.style = 'color: red; position: absolute; left: ' + left + 'px; top: 0px;z-index:999;'; a.href = 'http://e-hentai.org'; a.target = '_blank'; img.src = 'http://e-hentai.org/favicon.ico'; p.innerHTML = '打开E-Hentai'; document.body.appendChild(div); document.querySelector('#E-Hentai_Home').appendChild(a); document.querySelector('#E-Hentai_Home a').appendChild(img); document.querySelector('#E-Hentai_Home a').appendChild(p); } ////////////////////////////////////////////////// function HotKey() { //设置全局快捷键 window.addEventListener('keydown', function (e) { if (e.keyCode == 192) //`~ 这里设置开关快捷键 对照表http://www.cnblogs.com/furenjian/articles/2957770.html { if (!localStorage.HVAutoAttack_disabled) { localStorage.HVAutoAttack_disabled = '1'; } else { localStorage.removeItem('HVAutoAttack_disabled'); } e.returnValue = false; window.location.replace(window.location.href); //刷新页面 } /*else if (e.keyCode == 9) //Tab 状态设置 { var p = prompt('请选择(默认为火):\n0.物理\n1.火\n2.冰\n3.雷\n4.风\n5.圣\n6.暗', ''); if (p == '' || p == null) { var p = 1; } localStorage.HVAutoAttack_status = p; e.returnValue = false; window.location.replace(window.location.href); }*/ return; }, true); window.addEventListener('dblclick', function () { var p = prompt('请选择(默认为火):\n0.物理\n1.火\n2.冰\n3.雷\n4.风\n5.圣\n6.暗', ''); if (p == '' || p == null) { var p = 1; } localStorage.HVAutoAttack_status = p; e.returnValue = false; window.location.replace(window.location.href); }, true); } ////////////////////////////////////////////////// ////////////////////////////////////////////////// //另一种播放方式var audio = new Audio("http://dx.sc.chinaz.com/Files/DownLoad/sound1/201601/6842.mp3"); function RiddleAlert() { //答题警报 if (document.getElementById('riddlemaster')) { var audio = document.createElement('audio'); audio.src = 'http://zjdx1.sc.chinaz.com/files/downLoad/sound/huang/cd9/mp3/111.mp3'; audio.play(); var random = Math.random(); if (random < 1 / 3) { document.getElementById('riddlemaster').value = 'A'; } else if (random < 2 / 3) { document.getElementById('riddlemaster').value = 'B'; } else { document.getElementById('riddlemaster').value = 'C'; } self.setInterval('var a = document.querySelector(\'#riddlecounter>div>div\').style.background.replace(/.*-/, \'\');a = parseInt(a) / 12;console.log(a);if (a <= 3) {document.getElementById(\'riddleform\').submit();}', 1000); } } ////////////////////////////////////////////////// function OtherAlert(event) { //其他警报 var audio = document.createElement('audio'); switch (event) { default: audio.src = 'http://zjyd.sc.chinaz.com/files/downLoad/sound1/201601/6796.mp3'; break; case 'Win': audio.src = 'http://zjyd.sc.chinaz.com/files/downLoad/sound1/201602/6907.mp3'; break; case 'Error': audio.src = 'http://zjyd.sc.chinaz.com/files/downLoad/sound1/201602/6886.mp3'; break; case 'Failed': audio.src = 'http://zjyd.sc.chinaz.com/files/download/sound1/201207/1756.mp3'; break; } audio.play(); } ////////////////////////////////////////////////// function CountRound() { //回合计数及自动前进 var RoundType = window.location.toString().replace('http://hentaiverse.org/?', '').replace('s=Battle', '').replace('ss=', '').replace('page=2', '').replace(/filter=(.*)/, '').replace(/encounter=(.*)/, '').replace(/&/g, ''); if (RoundType == 'ar' || RoundType == 'iw' || RoundType == 'rb' || RoundType == 'gr') { Round_Now = document.querySelector('div.hvstat-round-counter').innerHTML.replace(/\/.*/, ''); //全局变量 Round_All = document.querySelector('div.hvstat-round-counter').innerHTML.replace(/.*\//, ''); //全局变量 } else if (RoundType == 'ba' || RoundType == '') { if (Monster_All > 6 || Monster_Boss_Alive > 0) { Round_Now = '1'; Round_All = '1'; //document.getElementById('1001').click(); } else { Round_Now = '2'; Round_All = '2'; } } else { //alert(RoundType); //OtherAlert('Error'); } if (Monster_Alive > 0 && document.querySelector('.btcp')) { OtherAlert('Failed'); } else if (Round_Now != Round_All && document.querySelector('.btcp')) { document.getElementById('ckey_continue').click(); } else if (Round_Now == Round_All && document.querySelector('.btcp')) { localStorage.removeItem('HVAutoAttack_status'); localStorage.removeItem('HVAutoAttack_disabled'); OtherAlert('Win'); setTimeout(function () { window.location = 'http://hentaiverse.org/?s=Character&ss=ch'; }, 3000); } else if (Round_Now == Round_All) { //alert('最后一回合'); document.getElementById('infopane').style.backgroundColor = 'gray'; } } ////////////////////////////////////////////////// function AutoUseGem() { //自动使用宝石 if (document.getElementById('ikey_p')) { var Gem = document.getElementById('ikey_p').getAttribute('onmouseover').replace('battle.set_infopane_item(\'', '').replace(/',(.*)/, ''); if (Gem == 'Health Gem' && HP <= 0.5) { document.getElementById('ikey_p').click(); } else if (Gem == 'Mana Gem' && MP <= 0.7) { document.getElementById('ikey_p').click(); } else if (Gem == 'Spirit Gem' && SP <= 0.75) { document.getElementById('ikey_p').click(); } else if (Gem == 'Mystic Gem') { document.getElementById('ikey_p').click(); } } } ////////////////////////////////////////////////// function DeadSoon() { //自动回血回魔 if (MP < 0.1) { //自动回魔 document.getElementById('quickbar').style.backgroundColor = 'blue'; if (document.querySelector('#ikey_5')) { document.querySelector('.bti3>div[onmouseover*="Mana Potion"]').click(); } } if (SP < 0.5) { //自动回精 document.getElementById('quickbar').style.backgroundColor = 'green'; if (document.querySelector('#ikey_8')) { document.querySelector('.bti3>div[onmouseover*="Spirit Potion"]').click(); } } if (HP <= 0.5) { //自动回血 if (!document.querySelector('.cwb2[src*="/s/barsilver.png"]')) { document.getElementById('quickbar').style.backgroundColor = 'red'; } document.getElementById('311').click(); if (document.getElementById('311').getAttribute('style') == 'opacity:0.5') { document.getElementById('313').click(); } if (document.getElementById('311').getAttribute('style') == 'opacity:0.5' && document.getElementById('313').getAttribute('style') == 'opacity:0.5') { if (document.querySelector('.bti3>div[onmouseover*="Health Potion"]')) { document.querySelector('.bti3>div[onmouseover*="Health Potion"]').click(); //这里出错 } } if (document.getElementById('311').getAttribute('style') == 'opacity:0.5' && document.getElementById('313').getAttribute('style') == 'opacity:0.5' && !document.querySelector('#ikey_2')) { if (oc > 0) { document.getElementById('ckey_defend').click(); } } } } ////////////////////////////////////////////////// function AutoUsePotAndBuffSkill() { //自动使用药水、Buff技能 if ((Round_All >= 12) || (Round_All == Round_Now && Round_All == 1)) { if (document.querySelector('div.bte>img[src*="/e/channeling.png"]')) { var buff = document.querySelector('div.bte').querySelectorAll('img'); if (buff.length > 0) { for (var n = 0; n < buff.length; n++) { var buff_lasttime = buff[n].getAttribute('onmouseover').replace(/(.*)\'\,/g, '').replace(')', ''); if (buff_lasttime <= 15) { var spell_name = buff[n].getAttribute('onmouseover').match(/'([^']+)/) [1]; if (spell_name == 'Cloak of the Fallen' && !document.querySelector('div.bte>img[src*="/e/sparklife.png"]')) { document.getElementById('422').click(); } else if (spell_name == 'Spark of Life') { document.getElementById('422').click(); } else if (spell_name == 'Spirit Shield') { document.getElementById('423').click(); } else if (spell_name == 'Hastened') { document.getElementById('412').click(); } else if (spell_name == 'Protection') { document.getElementById('411').click(); } else if (spell_name == 'Arcane Focus') { document.getElementById('432').click(); } else if (spell_name == 'Regen') { document.getElementById('312').click(); } } } } if (!document.querySelector('div.bte>img[src*="/e/arcanemeditation.png"]')) { document.getElementById('432').click(); } else if (!document.querySelector('div.bte>img[src*="/e/regen.png"]')) { document.getElementById('312').click(); } else if (!document.querySelector('div.bte>img[src*="/e/shadowveil.png"]')) { document.getElementById('413').click(); } else if (!document.querySelector('div.bte>img[src*="/e/absorb.png"]')) { document.getElementById('421').click(); } } if (!document.querySelector('div.bte>img[src*="/e/healthpot.png"]') && HP < 1) { document.querySelector('.bti3>div[onmouseover*="Health Draught"]').click(); } else if (!document.querySelector('div.bte>img[src*="/e/manapot.png"]') && MP < 1) { document.querySelector('.bti3>div[onmouseover*="Mana Draught"]').click(); } else if (!document.querySelector('div.bte>img[src*="/e/spiritpot.png"]') && SP < 0.8) { document.querySelector('.bti3>div[onmouseover*="Spirit Draught"]').click(); } else if (!document.querySelector('div.bte>img[src*="/e/protection.png"]')) { document.getElementById('411').click(); } else if (!document.querySelector('div.bte>img[src*="/e/haste.png"]')) { document.getElementById('412').click(); } else if (!document.querySelector('div.bte>img[src*="/e/sparklife.png"]')) { document.getElementById('422').click(); } else if (!document.querySelector('div.bte>img[src*="/e/spiritshield.png"]')) { document.getElementById('423').click(); } } else if (Round_All == Round_Now && Round_All == 2) { if (!document.querySelector('div.bte>img[src*="/e/sparklife.png"]')) { document.getElementById('422').click(); } } } ////////////////////////////////////////////////// function AutoAttack() { //自动打怪(借助HVSTAT) if (HP < 0.44) { return; } var Monster_Dead_Img = document.querySelectorAll('img[src*="/s/nbardead.png"]'); var MonsterHPNow = new Array(); for (var i = 0; i < Monster_Dead_Img.length; i++) { Monster_Dead_Img[i].className = 'hvstat-monster-health'; } var HPBar = document.getElementsByClassName('hvstat-monster-health'); for (var i = 0; i < HPBar.length; i++) { var HPNow = HPBar[i].innerHTML.replace(/ \/(.*)/, ''); if (HPNow == '') { HPNow = Math.pow(10, 10); } MonsterHPNow[i] = HPNow; } var HPMin = Math.min.apply(null, MonsterHPNow); for (var i = 0; i < MonsterHPNow.length; i++) { if (HPMin == MonsterHPNow[i]) { var minnum = i + 1; var minnum2 = i; break; } } if (status == '0') { var status_title = '物理'; } else if (status == '1') { var status_title = '火'; } else if (status == '2') { var status_title = '冰'; } else if (status == '3') { var status_title = '雷'; } else if (status == '4') { var status_title = '风'; } else if (status == '5') { var status_title = '圣'; } else if (status == '6') { var status_title = '暗'; } if (!localStorage.HVAutoAttack_disabled) { document.title = Round_Now + '/' + Round_All + status_title + + ' ' + Monster_Boss_Alive + ' ' + Monster_Alive + '/' + Monster_All; } else { document.title = status_title + ' [OFF]'; } if (Monster_Alive <= Monster_Boss_Alive && Monster_Alive > 0) { var AllMonsterName = document.getElementsByClassName('btm3'); var MonsterName = AllMonsterName[minnum2].innerHTML.replace(/.*px">/, '').replace(/.*clear: none;">/, '').replace(/<\/div>.*/, ''); if (MonsterName.indexOf('弱点') >= 0) { if (MonsterName.indexOf('物理') >= 0) { status = '0'; } else if (MonsterName.indexOf('火') >= 0) { status = '1'; } else if (MonsterName.indexOf('冰') >= 0) { status = '2'; } else if (MonsterName.indexOf('雷') >= 0) { status = '3'; } else if (MonsterName.indexOf('风') >= 0) { status = '4'; } else if (MonsterName.indexOf('圣') >= 0) { status = '5'; } else if (MonsterName.indexOf('暗') >= 0) { status = '6'; } } else { OtherAlert('Error'); alert('待定'); return; } } if (status == '0') { } else if (status == '1') { document.getElementById('111').click(); } else if (status == '2') { document.getElementById('121').click(); } else if (status == '3') { document.getElementById('131').click(); } else if (status == '4') { document.getElementById('141').click(); } else if (status == '5') { document.getElementById('151').click(); } else if (status == '6') { document.getElementById('161').click(); } if (status == '1' && Monster_All >= 8 && Monster_Dead <= 1) { document.getElementById('112').click(); document.getElementById('113').click(); } if (document.getElementById('2501').getAttribute('style') == 'opacity:0.5' && oc >= 0.2) { document.getElementById('2501').click(); } if (minnum == '10') { var minnum = '0'; } if (Round_Now % 10 == 0 && Monster_Alive == Monster_All && Monster_Alive - Monster_Boss_Alive > 0 && Round_Now > 10) { var title = document.title; document.title = '[10秒后继续运行]' + title; setTimeout(function () { //document.querySelector('link[rel="icon"]').setAttribute('href', 'https://cdn4.iconfinder.com/data/icons/number-icon/512/number36-16.png'); document.title = '[9秒后继续运行]' + title; }, 1000); setTimeout(function () { //document.querySelector('link[rel="icon"]').setAttribute('href', 'https://cdn4.iconfinder.com/data/icons/number-icon/512/number32-16.png'); document.title = '[8秒后继续运行]' + title; }, 2000); setTimeout(function () { //document.querySelector('link[rel="icon"]').setAttribute('href', 'https://cdn4.iconfinder.com/data/icons/number-icon/512/number34-16.png'); document.title = '[7秒后继续运行]' + title; }, 3000); setTimeout(function () { //document.querySelector('link[rel="icon"]').setAttribute('href', 'https://cdn4.iconfinder.com/data/icons/number-icon/512/number35-16.png'); document.title = '[6秒后继续运行]' + title; }, 4000); setTimeout(function () { //document.querySelector('link[rel="icon"]').setAttribute('href', 'https://cdn4.iconfinder.com/data/icons/number-icon/512/number39-16.png'); document.title = '[5秒后继续运行]' + title; }, 5000); setTimeout(function () { //document.querySelector('link[rel="icon"]').setAttribute('href', 'https://cdn4.iconfinder.com/data/icons/number-icon/512/number38-16.png'); document.title = '[4秒后继续运行]' + title; }, 6000); setTimeout(function () { //document.querySelector('link[rel="icon"]').setAttribute('href', 'https://cdn4.iconfinder.com/data/icons/number-icon/512/number37-16.png'); document.title = '[3秒后继续运行]' + title; }, 7000); setTimeout(function () { //document.querySelector('link[rel="icon"]').setAttribute('href', 'https://cdn4.iconfinder.com/data/icons/number-icon/512/number40-16.png'); document.title = '[2秒后继续运行]' + title; }, 8000); setTimeout(function () { //document.querySelector('link[rel="icon"]').setAttribute('href', 'https://cdn4.iconfinder.com/data/icons/number-icon/512/number41-16.png'); document.title = '[1秒后继续运行]' + title; }, 9000); setTimeout(function () { document.getElementById('mkey_' + minnum).click(); }, 10000); } else { document.getElementById('mkey_' + minnum).click(); } }