NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name saye3! // @description Greets the world...or no // @version 0.3 // @grant none // @include http://game.league17.ru/* // ==/UserScript== (function (window, undefined) { var myBox = document.createElement('div'); myBox.id = 'myBox'; var myBox1 = document.createElement('div'); myBox1.id = 'myBox1'; var myInfo = document.createElement('div'); myInfo.id = 'myInfoBox'; document.body.appendChild(myBox1); myBox1.appendChild(myBox); var AllPokes = []; var baseHPfs = 0; var AllBaseHPpoks = [0,78,60,80,39,58,78,44,59,79,45,50,60,40,45,65,40,63,83,30,55,40,65,35,60,35,60,50,75,55,70,90,46,61,81,70,95,38,73,115,140,40,75,45,60,75,35,60,60,70,10,35,40,65,50,80,40,65,55,90,40,65,90,25,40,55,70,80,90,50,65,80,40,80,40,55,80,50,65,90,95,25,50,52,35,60,65,90,80,105,30,50,30,45,60,35,60,85,30,55,40,60,60,95,50,60,50,50,90,40,65,80,105,250,65,105,30,55,45,80,30,60,40,70,65,65,65,65,75,20,95,130,48,55,130,65,65,65,35,70,30,60,80,160,90,90,90,41,61,91,106,100,45,60,80,39,58,78,50,65,85,35,85,60,100,40,55,40,70,85,75,125,20,50,90,35,55,40,65,55,70,90,75,70,100,70,90,35,55,75,55,30,75,65,55,95,65,95,60,95,60,48,190,70,50,75,100,65,75,60,90,65,70,20,80,55,60,90,40,50,50,100,55,35,75,45,65,65,45,75,75,90,90,85,73,55,35,50,45,45,45,95,255,90,115,100,50,70,100,106,106,100,40,50,70,45,60,80,50,70,100,35,70,38,78,45,50,60,50,60,40,60,80,40,70,90,40,60,40,60,28,38,68,40,70,60,60,60,80,150,31,61,1,64,84,104,72,144,50,30,50,70,50,50,50,60,70,30,60,40,70,60,60,65,65,50,70,100,45,70,130,170,60,70,70,60,80,60,45,50,80,50,70,45,75,73,73,70,70,50,110,43,63,40,60,66,86,45,75,20,95,70,60,44,64,20,40,99,65,65,95,50,80,70,90,110,35,55,55,100,43,45,65,95,40,60,80,80,80,80,80,80,100,100,105,100,50,55,75,95,44,64,76,53,64,84,40,55,85,59,79,37,77,45,60,80,40,60,97,97,30,60,40,60,70,30,70,60,55,85,45,70,76,111,75,90,150,55,65,60,100,49,71,45,63,103,57,67,50,20,100,76,50,58,68,108,135,40,70,68,108,40,70,48,83,74,49,69,45,60,90,70,70,110,115,100,75,75,85,86,65,65,75,110,85,68,60,45,70,50,75,80,75,100,90,91,110,150,120,80,100,70,100,120,100,45,60,75,65,90,110,55,75,95,45,60,45,65,85,41,64,50,75,50,75,50,75,76,116,50,62,80,45,75,55,70,85,55,67,60,110,103,75,85,105,50,75,105,120,75,45,55,75,30,40,60,40,60,45,70,70,50,60,95,70,105,75,50,70,50,65,72,38,58,54,74,55,75,50,80,40,60,55,75,45,60,70,45,65,110,62,75,36,51,71,60,80,55,50,70,69,114,55,100,165,50,70,44,74,40,60,60,35,65,85,55,75,50,60,60,46,66,76,55,95,70,50,80,109,45,65,77,59,89,45,65,95,70,100,70,110,85,58,52,72,92,55,85,91,91,91,79,79,100,100,89,125,91,100,71,56,61,88,40,59,75,41,54,72,38,85,45,62,78,38,45,80,62,86,44,54,78,66,123,67,95,75,62,74,45,59,60,78,101,62,82,53,86,42,72,50,65,50,71,44,62,58,82,77,123,95,78,67,50,45,68,90,57,43,85,49,65,55,95,40,85,126,126,108,50,80,80]; function ShowSettingBox() { myBox.innerHTML += '<div class=\'myBoxElem\'><input type=\'checkbox\' class=\'inps\' id=\'af_cb\'> Авто бой  </div> '; myBox.innerHTML += '<div class=\'myBoxElem\'><input type=\'checkbox\' class=\'inps\' id=\'sh_iv\'> Show IV HP </div> <br> '; myBox.innerHTML += '<div class=\'myBoxElem\'><input type=\'checkbox\' class=\'inps\' id=\'statist\'> Статистика </div> '; var sd1 = document.createElement('div'); sd1.className = 'subdiv'; sd1.innerHTML += '<div class=\'myBoxElem\' > <input type=\'checkbox\' class=\'inps\' id=\'at1\' checked> Атака 1  </div>    '; sd1.innerHTML += '<div class=\'myBoxElem\' > <input type=\'checkbox\' class=\'inps\' id=\'at2\' checked> Атака 2  </div><br>'; sd1.innerHTML += '<div class=\'myBoxElem\' > <input type=\'checkbox\' class=\'inps\' id=\'at3\' checked> Атака 3  </div>    '; sd1.innerHTML += '<div class=\'myBoxElem\' > <input type=\'checkbox\' class=\'inps\' id=\'at4\' checked> Атака 4  </div>'; document.getElementById('myBox').appendChild(sd1); myBox.innerHTML += 'Не убивать: <input type=\'text\' value=\'632; 146; 325; 328; 412; 417; 531; 616; 629;\' id=\'dontkick\'><br> <input type=\'checkbox\' id=\'signalon\' checked> '; scr1 = document.createElement('script'); scr1.text = '(' + (function(){ var myAudio = document.createElement('audio'); myAudio.id = 'ring'; var mAs = document.createElement('source'); mAs.src = 'http://vignette1.wikia.nocookie.net/arezista/images/7/72/T1_signal.ogg/revision/latest?cb=20140608100327&path-prefix=ru'; document.getElementById('myBox').appendChild(myAudio); myAudio.appendChild(mAs); var stdiv = document.createElement('div'); stdiv.id = 'statisticdiv'; document.body.appendChild(stdiv); var btnStat = document.createElement('button'); btnStat.innerHTML = 'Показать сводку'; var fshowst = function() { var sd = document.getElementById('statisticdiv'); if(sd.style.display == 'none') { sd.style.display = 'block'; } else {sd.style.display = 'none';} }; btnStat.onclick = fshowst; document.getElementById('myBox').appendChild(btnStat); var myHd = 0; var dragdiv = document.createElement('div'); dragdiv.id = 'dragdiv'; dragdiv.innerHTML = ''; dragdiv.onmousedown = function(){ myHd = 1; }; dragdiv.onmouseup = function(){ myHd = 0; }; var f1 = function(){ if(myHd==1){ document.getElementById('myBox1').style.top = event.pageY -17 +'px'; document.getElementById('myBox1').style.left = event.pageX -100 +'px'; if (window.getSelection) { window.getSelection().removeAllRanges();} } }; dragdiv.onmousemove = f1; document.body.onmousemove = f1; var btn1 = document.createElement('div'); btn1.id = 'myButn1'; btn1.style.display = 'none'; btn1.innerHTML = 'overHR'; var f2 = function InitShowTip (event) { if (event.initMouseEvent) { // all browsers except IE before version 9 var mouseEvent = document.createEvent ("MouseEvent"); mouseEvent.initMouseEvent ("mouseover", true, true, window, 0, event.screenX, event.screenY, event.clientX, event.clientY, event.ctrlKey, event.altKey, event.shiftKey, event.metaKey, 0, null); var dfi = document.getElementById('divFightH'); if ( dfi !== undefined ) { var dfi2 = dfi.getElementsByClassName('barHP')[0]; if(dfi2 !== undefined) { dfi2.dispatchEvent (mouseEvent); } } } }; btn1.onclick = f2; document.getElementById('myBox1').appendChild(btn1); var sp2 = document.getElementById('myBox'); document.getElementById('myBox1').insertBefore(dragdiv,sp2); var css = document.createElement("style"); css.type = "text/css"; css.innerHTML = "#myBox { width:200px; height:200px; background:#e5eef8; overflow-y:scroll; border-radius:0 0 15px 0; margin:0px; padding:0; border:1px solid #f0f6fc;} "; css.innerHTML += ".inps { margin:0 0 0 0; padding:0;} "; css.innerHTML += " #dragdiv { width:200px; height:30px; background:#d1d9e6; border:1px solid #afb8c5; border-radius:15px 15px 0 0; text-align:center; margin:0px; padding:0; cursor:move;}"; css.innerHTML += " #myBox1 { width:200px; background:#FFFFFF; left:890px; top:400px; position:absolute; border-radius:15px; }"; css.innerHTML += " #dontkick {height:10px;} #signalon {height:10px;}"; css.innerHTML += " .myBoxElem { background:#e0eee7; border-radius:10px; display:inline-block; font-size:10px; padding:2px;}"; css.innerHTML += " .subdiv { background:#e0e7ee; border-radius:10px; padding:5px; font-size:10px; }"; css.innerHTML += "#statisticdiv { display:none; position:absolute; top:130px; left:250px; overflow:scroll; width:450px; height:450px; background: #e6e8f9;}"; document.body.appendChild(css); }).toString() + ')()'; document.body.appendChild(scr1); myBox.appendChild(myInfo); } //----------------------cookies_function_start--------------------- // возвращает cookie с именем name, если есть, если нет, то undefined function getCookie(name) { var matches = document.cookie.match(new RegExp( "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)" )); return matches ? decodeURIComponent(matches[1]) : undefined; } function setCookie(name, value, options) { options = options || {}; var expires = options.expires; if (typeof expires == "number" && expires) { var d = new Date(); d.setTime(d.getTime() + expires * 1000); expires = options.expires = d; } if (expires && expires.toUTCString) { options.expires = expires.toUTCString(); } value = encodeURIComponent(value); var updatedCookie = name + "=" + value; for (var propName in options) { updatedCookie += "; " + propName; var propValue = options[propName]; if (propValue !== true) { updatedCookie += "=" + propValue; } } document.cookie = updatedCookie; } //----------------------cookies_function_end--------------------- var AllEnemies = 0, AllEnemiesS = 0; function SoundSignal(signal) { if ( signal==1 ) { document.getElementById('ring').play(); } else { document.getElementById('ring').pause(); document.getElementById('ring').currentTime = 0; } } //------------------------------------new Version function TestStatusFight() { var noone = document.getElementById('divFightAction').innerHTML; if ( noone.indexOf('\u043D\u0438\u0447') != -1 ) return 1; //ничья if ( noone.indexOf('\u043E\u0431\u0435\u0434') != -1 ) { return 2; } //победа var pbd = document.getElementById('divFightI'); pbd = pbd.getElementsByClassName('pokemonBoxDummy')[0]; if (pbd !== undefined) return 3; //покемон убит/сменен return 0; //активная стадия боя } function CaptchaTest() { var tm = document.getElementById('divFightCaptcha'); var i1 = tm.getElementsByTagName('img'); if ( i1[0].src !== undefined && tm.style.display != 'none' ) { return 1; } else { return 0; } } function TestWeather() { var divW = document.getElementById('divFightWeather'); if( divW.getElementsByClassName('w3')[0] !== undefined ) { return 1; //град } else if( divW.getElementsByClassName('w4')[0] !== undefined ) { return 2; //песчаная буря } else return 0; //благоприятная } function TestEnemy() { var enemyDiv = document.getElementById('divFightH'); var enemyNum = enemyDiv.getElementsByClassName('image'); var nPok = 0; var shining = 0; if ( enemyNum[0] !== undefined ) { enemyNum = enemyNum[0].getElementsByTagName('img'); if (enemyNum[0] !== undefined) { enemyNum = enemyNum[0].src; var startPos = enemyNum.indexOf('.png'); nPok = enemyNum.substring( startPos-3, startPos ); if ( enemyNum.indexOf('norm') != -1 && enemyNum.indexOf('shine') == -1 ) { shining = 0; // norm-pokemon } else if ( enemyNum.indexOf('norm') == -1 && enemyNum.indexOf('shine') != -1 ) { shining = 1; //shine-pokemon } else { shining = 2; //smt interest? } } else { nPok = -1; } var lvl = enemyDiv.getElementsByClassName('lvl')[0]; lvl = lvl.innerHTML; lvl = lvl*1; } else { nPok = -1; } return [nPok, shining, lvl]; } function TestDivFight() { var fightIs = document.getElementById('divVisioFight'); //есть ли бой if (fightIs.style.display != 'none') { return 1; } return 0; } function CountWildIVhp(statHP,lvl,baseHP) { var maxivHP = Math.floor(100*(statHP-9.5-lvl)/lvl-(baseHP*2)-0.0001); var minivHP = Math.ceil(100*(statHP-10.5-lvl)/lvl-(baseHP*2)); var res = []; res[0] = minivHP; res[1] = maxivHP; return (res); } function TestIVhp(nPok) { if (nPok>0) { var hp = document.getElementById('myButn1'); hp.click(); var tip = document.body.getElementsByClassName('tip')[0]; hp = tip.innerHTML; hp = hp.substring(hp.indexOf('/')+2,hp.indexOf('/')+6); var lvl = document.getElementById('divFightH'); var ivDiv = document.getElementById('ivhpDiv'); if(ivDiv===undefined) { ivDiv = document.createElement('span'); ivDiv.id = 'ivhpDiv'; ivDiv.style.fontSize = '12px'; lvl.getElementsByClassName('name')[0].appendChild(ivDiv); } lvl = lvl.getElementsByClassName('lvl')[0]; lvl = lvl.innerHTML; var IVhp = CountWildIVhp(hp,lvl,AllBaseHPpoks[nPok*1]); ivDiv.innerHTML = ' (hp: ' + IVhp[0] + '-' + IVhp[1] + ')'; return IVhp; } else return [0,0]; } function TestSettings() { //myInfo.innerHTML = ''; var attacks = []; var AllSoundOn; var AF; var sIV; var numpoksdontkick = []; var AFcb = document.getElementById('af_cb'); if( AFcb.checked ) AF = 1; else AF = 0; var at1 = document.getElementById('at1'); if( at1.checked ) attacks[0] = 1; else attacks[0] = 0; var at2 = document.getElementById('at2'); if( at2.checked ) attacks[1] = 1; else attacks[1] = 0; var at3 = document.getElementById('at3'); if( at3.checked ) attacks[2] = 1; else attacks[2] = 0; var at4 = document.getElementById('at4'); if( at4.checked ) attacks[3] = 1; else attacks[3] = 0; var so = document.getElementById('signalon'); if( so.checked ) AllSoundOn = 1; else AllSoundOn = 0; var st = document.getElementById('statist'); if( st.checked ) st = 1; else st = 0; var shiv = document.getElementById('sh_iv'); if( shiv.checked ) { sIV=1; } else sIV =0; var pl1 = document.getElementById('ring'); if ( pl1.ended ) { document.getElementById('ring').currentTime = 0; document.getElementById('ring').play(); } var dk = document.getElementById('dontkick'); var pdk = dk.value; var temp_pdk = pdk; var i=0; while ( temp_pdk.indexOf(';') != -1 ) { numpoksdontkick[i] = 1*temp_pdk.substring( temp_pdk.indexOf(';')-3, temp_pdk.indexOf(';') ); temp_pdk = temp_pdk.substring( temp_pdk.indexOf(';')+1, temp_pdk.length ); i++; } var countofdkick = i; myInfo.innerHTML += 'Убито:' + countofdkick + 'поков.<br>'; var AllSettings = [AF,attacks,AllSoundOn,countofdkick,numpoksdontkick,sIV,st]; //-----saving_settings------------- var timeexp = new Date(new Date().getTime() + 7*24*60*60 * 1000 ); var tobj = { expires: timeexp.toUTCString()}; setCookie("l17usa1",attacks[0],tobj); setCookie("l17usa2",attacks[1],tobj); setCookie("l17usa3",attacks[2],tobj); setCookie("l17usa4",attacks[3],tobj); setCookie("wmtbk",pdk,tobj); setCookie("allsd",AllSoundOn,tobj); return AllSettings; } function LoadSettings() { var temp = getCookie("l17usa1"); var opt; if (temp!==undefined) { opt = document.getElementById('at1'); if(temp==1){opt.checked=true;}else{opt.checked=false;} } temp = getCookie("l17usa2"); if (temp!==undefined) { opt = document.getElementById('at2'); if(temp==1){opt.checked=true;}else{opt.checked=false;} } temp = getCookie("l17usa3"); if (temp!==undefined) { opt = document.getElementById('at3'); if(temp==1){opt.checked=true;}else{opt.checked=false;} } temp = getCookie("l17usa4"); if (temp!==undefined) { opt = document.getElementById('at4'); if(temp==1){opt.checked=true;}else{opt.checked=false;} } temp = getCookie("wmtbk"); if (temp!==undefined) { opt = document.getElementById('dontkick'); opt.value = temp; } temp = getCookie("allsd"); if (temp!==undefined) { opt = document.getElementById('signalon'); if(temp==1){opt.checked=true;}else{opt.checked=false;} } } function TestIfAttackForbidden(cnpdk,npdk,curnPok,shining) { if (shining==1) return 1; for (i=0;i<cnpdk;i++) { if ( curnPok == npdk[i] ) return 1; } return 0; } function IssetPP(attacks) { var fm = document.getElementById('divFightI'); var moves = fm.getElementsByClassName('moveBox'); var pp1 = []; var stopIt=0; var allattacks; for (var i=0;i<4;i++) { pp1[i] = moves[i].getElementsByClassName('divMoveParams'); if(pp1[i][0] !== undefined) { pp1[i] = pp1[i][0].innerHTML; pp1[i] = pp1[i].substring(pp1[i].indexOf(':')+1,pp1[i].indexOf('/')); pp1[i] = pp1[i]*1; //сколько осталось ышо ПП у атаки текущего цикла } else {pp1[i] = 0;} } allattacks = attacks[0]*pp1[0] + attacks[1]*pp1[1] + attacks[2]*pp1[2] + attacks[3]*pp1[3]; if (attacks[0]==1 && pp1[0]!==0) {stopIt =1;} else if (attacks[1]==1 && pp1[1]!==0) {stopIt =1;} else if (attacks[2]==1 && pp1[2]!==0) {stopIt =1;} else if (attacks[3]==1 && pp1[3]!==0) {stopIt =1;} else stopIt = 0; if (allattacks==1) pp1[4] = 1; if (stopIt === 0 ) return 0; return pp1; } function AutoFight(AF,attacks,PP) { var fm = document.getElementById('divFightI'); var all_m = fm.getElementsByClassName('moves'); if (all_m[0] !== undefined) { var moves = fm.getElementsByClassName('moveBox'); var curAt = -1; var num_cycle = Math.round(Math.random()*3); switch(num_cycle) { case 0: { if (attacks[0] == 1) { curAt = 0; } else { num_cycle = 1; } } break; case 1: { if (attacks[1] == 1) { curAt = 1; } else { num_cycle = 2; } } break; case 2: { if (attacks[2] == 1) { curAt = 2; } else { num_cycle = 3; } } break; case 3: { if (attacks[3] == 1) { curAt = 3; } else { num_cycle = 0; } } break; default: num_cycle = 0; } if (curAt != -1) { var dm = moves[curAt].getElementsByClassName('divMoveInfo'); if(AF==1 && all_m[0].style.display != 'none' && PP[curAt]!==0) { dm[0].click(); return 0; } } else return 1; } } function WildOff() { var wild = document.getElementById('divInputButtons'); wild = wild.getElementsByClassName('btnSwitchWilds'); wild = wild[0]; if(wild.className.indexOf('pressed')!=-1) wild.click(); } function CloseFightDiv(isAF) { var fm = document.getElementById('divFightI'); var all_m = fm.getElementsByClassName('moves'); var fbuttons = document.getElementById('divFightButtons'); var allfb = fbuttons.getElementsByClassName('button'); if( all_m[0].style.display == 'none' && isAF==1 ) { AllEnemies ++; allfb[4].click(); } } //----------------------------------------------------- function AddPokInStatistic(number) { if (number>0 && number<730) { if(AllPokes[number] !== undefined) { AllPokes[number] ++; } else { AllPokes[number] = 1; } } } function PokStatisticToHTML() { var result_HTML = 'Убитые поки. <br>'; for (var i=0; i<721; i++) { if (AllPokes[i] !== undefined && AllPokes[i] !== 0 ) { var proc =Math.round(AllPokes[i]*10000/AllEnemiesS)/100; result_HTML += i + ': ' + AllPokes[i] + '(' + proc + '%)' + '<br>'; } } result_HTML += 'Всего ' + AllEnemiesS; return result_HTML; } function ShowStatistic() { var divHTML = PokStatisticToHTML(); document.getElementById('statisticdiv').innerHTML = divHTML; } function clearStatistic() { for (var i=0; i<721; i++) { if (AllPokes[i] !== undefined ) { AllPokes[i] = 0; } } AllEnemiesS = 0; } //----------------------------------------------------------- var s1=0; var pok=0,oldpok=0; function main() { var pok1 = 0; myInfo.innerHTML = ''; var TS = TestSettings(); if (TS[2] === 0) s1 = 0; SoundSignal(s1); var IV = [0,0]; s1 = 0; var TDF = TestDivFight(); //открыт ли див боя if ( TDF == 1 ) { if (TS[5]==1) { var TE1 = TestEnemy(); IV = TestIVhp(TE1[0]); // проверка гена хп } var TSF = TestStatusFight(); //проверка статуса боя if (TSF===0) { var CT = CaptchaTest(); //проверка капчи if (CT===0) { var TW = TestWeather(); //проверка погоды if(TW !== 0) { s1 = 1; } else s1 = 0; var TE = TestEnemy(); //проверка соперника pok1 = TE; var TIAF = TestIfAttackForbidden(TS[3],TS[4],TE[0],TE[1]); if (TIAF === 0 && IV[1]<36) { var IPP = IssetPP(TS[1]); if (IPP!==0 && IPP[4]!=1) { var wAF = AutoFight(TS[0],TS[1], IPP); } else { if (IPP[4] == 1) { AutoFight(TS[0],TS[1], IPP); WildOff(); s1=1; } else { WildOff(); s1=1; } } } else { s1=1; } } else { s1 = 1; } } else { if (TSF == 1 || TSF == 2) // если победа/ничья { oldpok = pok; if(TS[6]==1) { AllEnemiesS ++ ; AddPokInStatistic(pok*1); } CloseFightDiv(TS[0]); } else { WildOff(); } } } if (pok1[0]!==undefined) { pok = pok1[0];} else { pok = 0; } if(TS[6]==1){ ShowStatistic(); } else {clearStatistic();} myInfo.innerHTML += 'Пок #' + pok + '(was #' + oldpok + ')<br>'; myInfo.innerHTML += 'Всего убито: ' + AllEnemies + '<br>'; } ShowSettingBox(); LoadSettings(); t1 = setInterval(function(){ main(); },1000); })(window);