您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Статистика по защитам клана
// ==UserScript== // @name ClanMembers // @author Sweag // @namespace clan // @description Статистика по защитам клана // @include https://www.heroeswm.ru/clan_info.php* // @version 1.8.0 // @grant none // ==/UserScript== var DEF_COUNT = 7; var start_index = 0, index_mas_player = 1, maxDefIndex = 0; var ifrom; var ito; var arr_index = 1; var arr = []; var masDef = []; var View = [1, 1, 1, 1, 1]; var masPlayer = []; var masNalog = []; var masPer = []; var masAttack = []; var masAll = []; var masPvP = []; var sign_sort_num = -1, sign_sort_online = -1, sign_sort_lvl = -1, sign_sort_def = -1, sign_sort_per = -1, sign_sort_pvp = -1, sign_sort_nalog = -1, sign_sort_attack = -1, sign_sort_all = -1, sign_sort_event = -1; var Defstr, LastDate = ''; var hrefs; var clan_heroes_online = document.querySelectorAll("img[src$='clans/online.gif']"); var clan_heroes_offline = document.querySelectorAll("img[src$='clans/offline.gif']"); var len, N_row = 4; var index_line; var table_Excel; if(clan_heroes_online.length>clan_heroes_offline.length)len=clan_heroes_offline.length; else len=clan_heroes_online.length; for(var i=0; i<len; i++){ if ( clan_heroes_offline[i] ) { if(clan_heroes_offline[i].parentNode.parentNode.innerHTML.indexOf('1.') > -1){ var table_clan = clan_heroes_offline[i].parentNode; var str = clan_heroes_offline[i].parentNode.parentNode.parentNode.innerHTML; index_line = i; break; } } else if ( clan_heroes_online[i] ) { if(clan_heroes_online[i].parentNode.parentNode.innerHTML.indexOf('1.') > -1){ var table_clan = clan_heroes_online[i].parentNode; var str = clan_heroes_online[i].parentNode.parentNode.parentNode.innerHTML; index_line = i; break; } } } if ( table_clan ) { table_Excel = table_clan.parentNode.parentNode.parentNode; while ( table_clan.tagName != 'TR' ) { table_clan = table_clan.parentNode; } table_clan = table_clan.parentNode.childNodes; } var table_clan_length = table_clan.length; if(table_clan[0].childNodes.length>5)N_row=5; var cel = '<tr><td class="wbwhite" width="30" id=sort_number title="Сортировать по номеру"><b>№</b></td>'; cel += '<td class="wbwhite" width="15" id=sort_online title="Сортировать по онлайну"><img src="http://dcdn.heroeswm.ru/i/clans/offline.gif" align="absmiddle" border="0" width="15" height="15"></td>'; cel += '<td class="wbwhite" width="150"> Имя персонажа</td>'; cel += '<td class="wbwhite" align="center" width="10" id=sort_lvl title="Сортировать по боевому уровню"> lvl</td>'; cel += '<td class="wbwhite" align="center">Описание</td>'; if(N_row == 5)cel += '<td class="wbwhite" width="30" id=sort_event title="Сортировать по уровню сложности в ивенте"> Ивент</td>'; cel += '<td class="wbwhite" width="30" id=sort_defs title="Сортировать по количеству защит"> Дефы</td>'; cel += '<td class="wbwhite" width="30" id=sort_attack title="Сортировать по количеству боев за подъем предприятия"> Захваты</td>'; cel += '<td class="wbwhite" width="30" id=sort_nalog title="Сортировать по количеству налогов"> Налоги</td>'; cel += '<td class="wbwhite" width="30" id=sort_per title="Сортировать по количеству перехватов"> Перехваты</td>'; cel += '<td class="wbwhite" width="30" id=sort_pvp title="Сортировать по количеству PvP-боев"> PvP</td>'; cel += '<td class="wbwhite" width="30" id=sort_all title="Сортировать по количеству боев за клан"> Всего</td></tr>'+str; if ( clan_heroes_offline[index_line] ) { clan_heroes_offline[index_line].parentNode.parentNode.parentNode.innerHTML = cel; } else if ( clan_heroes_online[index_line] ) { clan_heroes_online[index_line].parentNode.parentNode.parentNode.innerHTML = cel; } document.getElementById('sort_number').onclick = function(){fn_sort_number();}; document.getElementById('sort_online').onclick = function(){fn_sort_online();}; document.getElementById('sort_lvl').onclick = function(){fn_sort_lvl();}; document.getElementById('sort_defs').onclick = function(){fn_sort_defs();}; document.getElementById('sort_per').onclick = function(){fn_sort_per();}; document.getElementById('sort_pvp').onclick = function(){fn_sort_pvp();}; document.getElementById('sort_nalog').onclick = function(){fn_sort_nalog();}; document.getElementById('sort_attack').onclick = function(){fn_sort_attack();}; document.getElementById('sort_all').onclick = function(){fn_sort_all();}; if(N_row==5)document.getElementById('sort_event').onclick = function(){fn_sort_event();}; hrefs = document.getElementsByTagName('a'); for(var i = 0; i < hrefs.length; i++) { if(hrefs[i].href.indexOf('clan_log.php') > -1) { var myform = document.createElement('div'); myform.id = 'sform'; str = "<table><tr><td bgcolor='#6b6c6a' align='center' colspan='2'><font color='#ffd875'><b>Обсчет дефов за период</b></font></td><td bgcolor='#6b6c6a' align='center' colspan='2'><font color='#ffd875'><b>Вариант вывода</b></font></td></tr>"; str += "<tr><td>С: </td><td><input type=text id=datfrom value='01-" + getCurrentMonth() + "'></td><td><input type='checkbox' id='scales1' name='scales1' checked /> Защиты</td><td><input type='checkbox' id='scales4' name='scales4' checked /> Перехваты</td></tr>"; str += "<tr><td>По: </td><td><input type=text id=datto value='"+getCurrentDate()+"'></td><td><input type='checkbox' id='scales2' name='scales2' checked /> Захваты</td><td><input type='checkbox' id='scales5' name='scales5' checked /> PvP защиты</td></tr>"; str += "<tr><td><center><input type=button value='Excel' id=toExcel></center></td><td><center><input type=button value='Загрузить' id=startscan></center></td><td><input type='checkbox' id='scales3' name='scales3' checked /> Налоги</td></tr>"; str += "</table></div>"; myform.innerHTML = str; hrefs[i].parentNode.appendChild(myform); i = hrefs.length; document.getElementById('startscan').onclick = function(){prescaning();}; document.getElementById('datfrom').oninput = function(){change_input();}; document.getElementById('datto').oninput = function(){change_input();}; document.getElementById('toExcel').onclick = function(){formatToExcel();}; } } document.getElementById('scales1').onchange = function(){fn_change_scales1();}; document.getElementById('scales2').onchange = function(){fn_change_scales2();}; document.getElementById('scales3').onchange = function(){fn_change_scales3();}; document.getElementById('scales4').onchange = function(){fn_change_scales4();}; document.getElementById('scales5').onchange = function(){fn_change_scales5();}; // указатель на сортировку table_clan[0].childNodes[0].setAttribute("style", "cursor: pointer;"); table_clan[0].childNodes[1].setAttribute("style", "cursor: pointer;"); table_clan[0].childNodes[3].setAttribute("style", "cursor: pointer;"); table_clan[0].childNodes[5].setAttribute("style", "cursor: pointer;"); table_clan[0].childNodes[6].setAttribute("style", "cursor: pointer;"); table_clan[0].childNodes[7].setAttribute("style", "cursor: pointer;"); table_clan[0].childNodes[8].setAttribute("style", "cursor: pointer;"); table_clan[0].childNodes[9].setAttribute("style", "cursor: pointer;"); table_clan[0].childNodes[10].setAttribute("style", "cursor: pointer;"); if(N_row == 5)table_clan[0].childNodes[11].setAttribute("style", "cursor: pointer;"); for ( var i=1; i<table_clan_length+1; i++ ){ if(N_row == 5)table_clan[i].childNodes[N_row].setAttribute("title", "Уровень сложности в ивенте"); Defstr = table_clan[i].innerHTML; if(table_clan[i].innerHTML.indexOf("offline.gif") > -1){ Defstr += "<td class=wbwhite width=30 title='Количество защит'> </td><td class=wbwhite width=30 title='Количество боев за подъем предприятия'> </td><td class=wbwhite width=30 title='Количество налоговых боев'> </td><td class=wbwhite width=30 title='Количество перехватов'> </td><td class=wbwhite width=30 title='Количество боев PvP'> </td><td class=wbwhite width=30 title='Общее количество боев'> </td>"; }else{ Defstr += "<td class=wblight width=30 title='Количество защит'> </td><td class=wblight width=30 title='Количество боев за подъем предприятия'> </td><td class=wblight width=30 title='Количество налоговых боев'> </td><td class=wblight width=30 title='Количество перехватов'> </td><td class=wblight width=30 title='Количество боев PvP'> </td><td class=wblight width=30 title='Общее количество боев'> </td>"; } table_clan[i].innerHTML = Defstr; // центровка table_clan[i].childNodes[5].setAttribute("align", "center"); table_clan[i].childNodes[6].setAttribute("align", "center"); table_clan[i].childNodes[7].setAttribute("align", "center"); table_clan[i].childNodes[8].setAttribute("align", "center"); table_clan[i].childNodes[9].setAttribute("align", "center"); table_clan[i].childNodes[10].setAttribute("align", "center"); if(N_row == 5)table_clan[i].childNodes[11].setAttribute("align", "center"); } var tableToExcel = (function() { var uri = 'data:application/vnd.ms-excel;base64,' , template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--><meta http-equiv="content-type" content="text/plain; charset=UTF-8"/></head><body><table>{table}</table></body></html>' , base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))) } , format = function(s, c) { return s.replace(/{(\w+)}/g, function(m, p) { return c[p]; }) } , downloadURI = function(uri, name) { var link = document.createElement("a"); link.download = name; link.href = uri; link.click(); } return function(name, fileName) { //if (!table.nodeType) table = document.getElementById(table) var ctx = {worksheet: name || 'Worksheet', table: table_Excel.innerHTML} var resuri = uri + base64(format(template, ctx)) downloadURI(resuri, fileName); } })(); function formatToExcel() { tableToExcel('БК', 'БК.xls'); } function init_clan() { for ( var i=1; i<table_clan_length+1; i++ ) { masDef[i] = 0; masNalog[i] = 0; masPer[i] = 0; masAttack[i] = 0; masPvP[i] = 0; masAll[i] = 0; masPlayer[i] = Number(table_clan[i].childNodes[2].innerHTML.split("pl_info.php?id=")[1].split('" class=')[0]); } } function sort_mas(sign_sort, NumberC) { var sorted = []; var m, t, p, f, i, j, nan1; for(i=1; i< table_clan_length+1; i++){ sorted[i] = []; for(j=0; j<N_row+7; j++){ sorted[i][j] = table_clan[i].childNodes[j].innerHTML; } if(NumberC == 1){ if(sorted[i][1].indexOf("offline.gif") > -1){ sorted[i][1] = -1; }else { sorted[i][1] = 1; } } if((NumberC == 5)&&(N_row == 5)){ if(table_clan[i].childNodes[5].innerHTML.length>30){ if(table_clan[i].childNodes[5].innerHTML.indexOf("<b>") > -1)nan1 = table_clan[i].childNodes[5].innerHTML.split('<b>')[1].split('</b>')[0]; else nan1 = table_clan[i].childNodes[5].innerHTML.split('>')[1].split('<')[0]; //alert(nan1); if(isNaN(nan1))nan1=nan1.split(',')[0]+nan1.split(',')[1]; sorted[i][5] = Number(nan1); } else {sorted[i][5] = 0} } //sorted[i][N_row+7] = table_clan[i].childNodes[0].getAttribute("class"); sorted[i][N_row+7] = table_clan[i].childNodes[5].innerHTML; } while(true){ f = 0; for(i=1; i<table_clan_length; i++){ m = sign_sort*Number(sorted[i][NumberC]); t = sign_sort*Number(sorted[i+1][NumberC]); if(m<t){ f = 1; for(j=0; j<N_row+8; j++){ p = sorted[i][j]; sorted[i][j]=sorted[i+1][j]; sorted[i+1][j] = p; } } } if(f === 0)break; } for(i=1; i<table_clan_length+1; i++){ for(j=0; j<N_row+7; j++){ table_clan[i].childNodes[j].innerHTML = sorted[i][j]; //table_clan[i].childNodes[j].setAttribute("class", sorted[i][N_row+7]); } if(NumberC == 1){ if(sorted[i][1] > 0){ table_clan[i].childNodes[1].innerHTML = '<img src="https://dcdn.heroeswm.ru/i/clans/online.gif" align="absmiddle" border="0" height="15" width="15">'; }else { table_clan[i].childNodes[1].innerHTML = '<img src="https://dcdn.heroeswm.ru/i/clans/offline.gif" align="absmiddle" border="0" height="15" width="15">'; } } if((NumberC == 5)&&(N_row == 5)){ if(sorted[i][5]==0){ table_clan[i].childNodes[5].innerHTML = ' '; } else {table_clan[i].childNodes[5].innerHTML = ' <font color="green">' + sorted[i][5] + '</font> '} } table_clan[i].childNodes[5].innerHTML = sorted[i][N_row+7]; } } function change_input() { document.getElementById('startscan').value = "Загрузить"; document.getElementById('startscan').disabled=false; sign_sort_num = 1; fn_sort_number(); } function fn_change_scales1() { View[0] = 1 - View[0]; //fn_change_view() } function fn_change_scales2() { View[1] = 1 - View[1]; //fn_change_view() } function fn_change_scales3() { View[2] = 1 - View[2]; //fn_change_view() } function fn_change_scales4() { View[3] = 1 - View[3]; //fn_change_view() } function fn_change_scales5() { View[4] = 1 - View[4]; //fn_change_view() } function fill_text() { table_clan[0].childNodes[0].innerHTML = " №"; table_clan[0].childNodes[3].innerHTML = " lvl"; if(N_row == 5)table_clan[0].childNodes[N_row].innerHTML = " Ивент"; table_clan[0].childNodes[N_row+1].innerHTML = " Дефы"; table_clan[0].childNodes[N_row+2].innerHTML = " Захваты"; table_clan[0].childNodes[N_row+3].innerHTML = " Налоги"; table_clan[0].childNodes[1].innerHTML = '<img src="https://dcdn.heroeswm.ru/i/clans/offline.gif" align="absmiddle" border="0" height="15" width="15">'; table_clan[0].childNodes[N_row+4].innerHTML = " Перехваты"; table_clan[0].childNodes[N_row+5].innerHTML = " PvP"; table_clan[0].childNodes[N_row+6].innerHTML = " Всего"; } function fn_sort_online() { //сортировка по онлайну sign_sort_online *= -1; sort_mas(sign_sort_online, 1); sign_sort_pvp = -1; sign_sort_def = -1; sign_sort_lvl = -1; sign_sort_num = 1; sign_sort_nalog = -1; sign_sort_per = -1; sign_sort_attack = -1; sign_sort_all = -1; fill_text(); if(sign_sort_online>0){ table_clan[0].childNodes[1].innerHTML = '<img src="https://dcdn.heroeswm.ru/i/clans/online.gif" align="absmiddle" border="0" height="15" width="15">'; }else{ table_clan[0].childNodes[1].innerHTML = '<img src="https://dcdn.heroeswm.ru/i/clans/offline.gif" align="absmiddle" border="0" height="15" width="15">'; } Paint(); } function fn_sort_number() { sign_sort_num *= -1; sort_mas(sign_sort_num, 0); sign_sort_pvp = -1; sign_sort_def = -1; sign_sort_lvl = -1; sign_sort_online = -1; sign_sort_nalog = -1; sign_sort_per = -1; sign_sort_attack = -1; sign_sort_all = -1; fill_text(); table_clan[0].childNodes[0].innerHTML = "<b> №</b>"; Paint(); } function fn_sort_lvl() { // Сортировка по уровню sign_sort_lvl *= -1; sort_mas(sign_sort_lvl, 3); sign_sort_pvp = -1; sign_sort_def = -1; sign_sort_num = 1; sign_sort_online = -1; sign_sort_nalog = -1; sign_sort_per = -1; sign_sort_attack = -1; sign_sort_all = -1; fill_text(); table_clan[0].childNodes[3].innerHTML = "<b> lvl</b>"; Paint(); } function fn_sort_defs() { // Сортировка по количеству дефов sign_sort_def *= -1; sort_mas(sign_sort_def, N_row+1); sign_sort_pvp = -1; sign_sort_lvl = -1; sign_sort_num = 1; sign_sort_online = -1; sign_sort_nalog = -1; sign_sort_per = -1; sign_sort_attack = -1; sign_sort_all = -1; fill_text(); table_clan[0].childNodes[N_row+1].innerHTML = "<b> Дефы</b>"; Paint(); } function fn_sort_per() { // Сортировка по количеству перехватов sign_sort_per *= -1; sort_mas(sign_sort_per, N_row+4); sign_sort_pvp = -1; sign_sort_lvl = -1; sign_sort_num = 1; sign_sort_online = -1; sign_sort_nalog = -1; sign_sort_attack = -1; sign_sort_all = -1; fill_text(); table_clan[0].childNodes[N_row+4].innerHTML = "<b> Перехваты</b>"; Paint(); } function fn_sort_pvp () { // Сортировка по количеству pvp-боев sign_sort_pvp *= -1; sort_mas(sign_sort_pvp, N_row+5); sign_sort_per = -1; sign_sort_lvl = -1; sign_sort_num = 1; sign_sort_online = -1; sign_sort_nalog = -1; sign_sort_attack = -1; sign_sort_all = -1; fill_text(); table_clan[0].childNodes[N_row+5].innerHTML = "<b> PvP</b>"; Paint(); } function fn_sort_nalog() { // Сортировка по количеству налогов sign_sort_nalog *= -1; sort_mas(sign_sort_nalog, N_row+3); sign_sort_pvp = -1; sign_sort_lvl = -1; sign_sort_num = 1; sign_sort_online = -1; sign_sort_per = -1; sign_sort_attack = -1; sign_sort_all = -1; fill_text(); table_clan[0].childNodes[N_row+3].innerHTML = "<b> Налоги</b>"; Paint(); } function fn_sort_attack() { // Сортировка по количеству атак упавшей предпы sign_sort_attack *= -1; sort_mas(sign_sort_attack, N_row+2); sign_sort_pvp = -1; sign_sort_lvl = -1; sign_sort_num = 1; sign_sort_online = -1; sign_sort_per = -1; sign_sort_nalog = -1; sign_sort_all = -1; fill_text(); table_clan[0].childNodes[N_row+2].innerHTML = "<b> Захваты</b>"; Paint(); } function fn_sort_all() { // Сортировка по количеству боев за клан sign_sort_all *= -1; sort_mas(sign_sort_all, N_row+6); sign_sort_pvp = -1; sign_sort_lvl = -1; sign_sort_num = 1; sign_sort_online = -1; sign_sort_per = -1; sign_sort_nalog = -1; sign_sort_attack = -1; fill_text(); table_clan[0].childNodes[N_row+6].innerHTML = "<b> Всего</b>"; Paint(); } function fn_sort_event() { // Сортировка по максимальному бою за клан в ивенте sign_sort_event *= -1; sort_mas(sign_sort_event, N_row); sign_sort_pvp = -1; sign_sort_all = -1; sign_sort_lvl = -1; sign_sort_num = 1; sign_sort_online = -1; sign_sort_per = -1; sign_sort_nalog = -1; sign_sort_attack = -1; fill_text(); table_clan[0].childNodes[N_row].innerHTML = "<b> Ивент</b>"; Paint(); } function getCurrentDate() { var dt=new Date(); var month = dt.getMonth()+1; if (month<10) month='0'+month; var day = dt.getDate(); if (day<10) day='0'+day; var year = dt.getFullYear(); return day + "-" + month + "-" + (year + '')[2] + (year + '')[3]; } function getCurrentMonth() { var dt=new Date(); var month = dt.getMonth()+1; if (month<10) month='0'+month; var year = dt.getFullYear(); return month + "-" + (year + '')[2] + (year + '')[3]; } function prescaning() { var t = document.getElementById('datfrom').value.split('-'); ifrom = new Date("20" + t[2] + "-" + t[1] + "-" + t[0]); t = document.getElementById('datto').value.split('-'); ito = new Date("20" + t[2] + "-" + t[1] + "-" + t[0]); init_clan(); start_index = 0; document.getElementById('startscan').disabled=true; document.getElementById('startscan').value = "Загружено: " + start_index; scaning(); } function listen() { if(arr_index > arr.length-1){ document.getElementById('startscan').value = "Загружено: " + start_index; scaning(); return; } var cur = getCurTimestamp(arr[arr_index]); if(cur >= ifrom && cur <= ito){ var s = arr[arr_index].split(': ')[1]; if((s.indexOf('Атака Сурв-ов') > -1)&&(View[0])){ var ss = "https://www.heroeswm.ru/" + arr[arr_index].split('<a href="')[3].split('">история')[0]; var ans = new XMLHttpRequest(); ans.open("GET", ss, true); ans.overrideMimeType('text/html; charset=windows-1251'); ans.send(); ans.onreadystatechange = function() { if (ans.readyState != 4){ return;} if (ans.status == 200) { var text_history = ans.responseText; var arr_history; if(text_history.indexOf('Сурвилурги') > -1){ arr_history = text_history.split('бой<'); for(var j = 0; j < arr_history.length-1; j++){ for(var k=0; k<masPlayer.length; k++){ var id1 = arr_history[j].split('pl_info.php?id=')[1].split('>')[0]; if(arr_history[j].split('pl_info.php?id=').length > 2){ var id2 = arr_history[j].split('pl_info.php?id=')[2].split('>')[0]; if((id1.indexOf(masPlayer[k]) > -1 )||(id2.indexOf(masPlayer[k]) > -1 )){ masDef[k]++; //if(arr_history[j].indexOf('получено') > -1 )masWinDef[k]++; } }else{ if(id1.indexOf(masPlayer[k]) > -1 ){ masDef[k]++; } } } } } arr_index++; listen(); } }; }else{ if((s.indexOf('налогообложение') > -1)&&(View[2])){ var ss1 = "https://www.heroeswm.ru/taxlog.php?show_history=" + arr[arr_index].split('show_history=')[1].split('>лог')[0].slice(0, -1); var ans1 = new XMLHttpRequest(); ans1.open("GET", ss1, true); ans1.overrideMimeType('text/html; charset=windows-1251'); ans1.send(); ans1.onreadystatechange = function() { if (ans1.readyState != 4){ return;} if (ans1.status == 200) { var text_history1 = ans1.responseText; var arr_history1 = text_history1.split('Статистика потери/захвата налогов боевыми кланами')[1].split('pl_info.php?id='); for(var j = 1; j < arr_history1.length; j++){ for(var k=0; k<masPlayer.length; k++){ if(arr_history1[j].split('">')[0].indexOf(masPlayer[k]) > -1 ){ masNalog[k]++; } } } arr_index++; listen(); } }; }else{ arr_index++; listen(); } } } else { if(cur < ifrom){ for(var i=1; i<table_clan_length+1; i++){ table_clan[i].childNodes[N_row+1].innerHTML = masDef[i]; table_clan[i].childNodes[N_row+3].innerHTML = masNalog[i]; /* //процент побед в защитах if( masDef[i] !== 0 ){ var percent_win = Math.round(masWinDef[i]/masDef[i]*100); table_clan[i].childNodes[6].innerHTML = percent_win; }else{ table_clan[i].childNodes[6].innerHTML = 0; }*/ } maxDefIndex = start_index; index_mas_player = 1; start_index = 0; if((View[1])||(View[3])||(View[4]))scaningPlayer();else nextItem(); } else{ arr_index++; listen(); }} } function scaning() { var st=document.location.href; var xhr = new XMLHttpRequest(); var uri = st.replace('info', 'log')+"&page="+start_index; start_index++; arr_index = 1; xhr.open("GET", uri, true); xhr.overrideMimeType('text/html; charset=windows-1251'); xhr.send(); xhr.onreadystatechange = function() { if (xhr.readyState != 4) return; if (xhr.status == 200) { text = xhr.responseText; text = text.split('></a></div></center><div class="global_a_hover">')[1]; //text = text.split('</td></tr></table>')[0]; arr = text.split(' '); listen(); } }; } function listenPlayer() { if(arr_index > arr.length-1){ document.getElementById('startscan').value = "Загружено: " + (maxDefIndex + start_index); LastDate = arr[arr.length-1]; scaningPlayer(); return; } if((!View[1])&&(!View[3])&&(!View[4])){ nextItem(); } var cur = getCurTimestampWar(arr[arr_index]); if(cur==-1){ arr_index++; listenPlayer(); return; } if(cur >= ifrom && cur <= ito){ var s = arr[arr_index]; if(LastDate==arr[arr.length-1]){ nextItem(); return; } if((s.indexOf('vs <i>Сурвилурги') > -1)||(s.indexOf('vs <i><b>Сурвилурги') > -1)){ if(s.indexOf('π') > -1){ if(View[3])masPer[index_mas_player]++; }else{ if(View[1])masAttack[index_mas_player]++; } } if((s.indexOf('ω') > -1)&&(View[4])){ masPvP[index_mas_player]++; } arr_index++; listenPlayer(); } else if(cur < ifrom){ if(index_mas_player < table_clan_length){ nextItem(); return; } document.getElementById('startscan').value = "Готово"; document.getElementById('startscan').disabled=true; table_clan[table_clan_length].childNodes[N_row+4].innerHTML = masPer[table_clan_length]; table_clan[table_clan_length].childNodes[N_row+2].innerHTML = masAttack[table_clan_length]; table_clan[table_clan_length].childNodes[N_row+5].innerHTML = masPvP[table_clan_length]; table_clan[table_clan_length].childNodes[N_row+6].innerHTML = masAll[table_clan_length]; Paint(); }else{ if(LastDate==arr[arr.length-1]){ nextItem(); return; } arr_index++; listenPlayer(); } } function nextItem() { masAll[index_mas_player] = masDef[index_mas_player] + masPer[index_mas_player] + masAttack[index_mas_player] + masNalog[index_mas_player] + masPvP[index_mas_player]; table_clan[index_mas_player].childNodes[N_row+4].innerHTML = masPer[index_mas_player]; table_clan[index_mas_player].childNodes[N_row+2].innerHTML = masAttack[index_mas_player]; table_clan[index_mas_player].childNodes[N_row+5].innerHTML = masPvP[index_mas_player]; table_clan[index_mas_player].childNodes[N_row+6].innerHTML = masAll[index_mas_player]; index_mas_player++; if(start_index){maxDefIndex += start_index;}else maxDefIndex++; document.getElementById('startscan').value = "Загружено: " + maxDefIndex; start_index = 0; if((View[1])||(View[3])||(View[4]))scaningPlayer();else{ if(index_mas_player < table_clan_length)nextItem(); else{ document.getElementById('startscan').value = "Готово"; document.getElementById('startscan').disabled=true; table_clan[table_clan_length].childNodes[N_row+4].innerHTML = masPer[table_clan_length]; table_clan[table_clan_length].childNodes[N_row+2].innerHTML = masAttack[table_clan_length]; table_clan[table_clan_length].childNodes[N_row+5].innerHTML = masPvP[table_clan_length]; table_clan[table_clan_length].childNodes[N_row+6].innerHTML = masAll[table_clan_length]; Paint(); } } } function scaningPlayer() { var st=table_clan[index_mas_player].childNodes[2].innerHTML.split('pl_info.php?id=')[1].split(' ')[0].slice(0,-1); var xhr = new XMLHttpRequest(); var uri = 'https://www.heroeswm.ru/pl_warlog.php?id=' + st + '&page=' + start_index; start_index++; arr_index = 1; xhr.open("GET", uri, true); xhr.overrideMimeType('text/html; charset=windows-1251'); xhr.send(); xhr.onreadystatechange = function() { if (xhr.readyState != 4) return; if (xhr.status == 200) { text = xhr.responseText; if(text.indexOf('></a></center>') > -1){ text = text.split('></a></center>')[1]; }else{ var tmp_arr = text.split('</a></center>'); text = tmp_arr[tmp_arr.length-1]; } arr = text.split(' '); listenPlayer(); } }; } function Paint() { var all; for(var i=1; i<table_clan_length+1; i++){ all = Number(table_clan[i].childNodes[N_row+6].innerHTML); if( all < DEF_COUNT ){ table_clan[i].childNodes[5].setAttribute("style", "color: red;"); table_clan[i].childNodes[6].setAttribute("style", "color: red;"); table_clan[i].childNodes[7].setAttribute("style", "color: red;"); table_clan[i].childNodes[8].setAttribute("style", "color: red;"); table_clan[i].childNodes[9].setAttribute("style", "color: red;"); table_clan[i].childNodes[10].setAttribute("style", "color: red;"); if(N_row==5)table_clan[i].childNodes[11].setAttribute("style", "color: red;"); }else{ table_clan[i].childNodes[5].setAttribute("style", "color: green;"); table_clan[i].childNodes[6].setAttribute("style", "color: green;"); table_clan[i].childNodes[7].setAttribute("style", "color: green;"); table_clan[i].childNodes[8].setAttribute("style", "color: green;"); table_clan[i].childNodes[9].setAttribute("style", "color: green;"); table_clan[i].childNodes[10].setAttribute("style", "color: green;"); if(N_row==5)table_clan[i].childNodes[11].setAttribute("style", "color: green;"); } /*if( def === 0 ){ table_clan[i].childNodes[6].setAttribute("style", "color: black;"); }else{ if(100*masWinDef[i]/def < 75){ table_clan[i].childNodes[6].setAttribute("style", "color: red;"); }else{ table_clan[i].childNodes[6].setAttribute("style", "color: green;"); } }*/ } } function getCurTimestamp(str) { var t = str.split(' ')[0].split('-'); return (new Date("20" + t[2] + "-" + t[1] + "-" + t[0])); } function getCurTimestampWar(str) { if(str.length<5)return -1; var t = str.split('>')[1].split('<')[0].split(' ')[0].split('-'); return (new Date("20" + t[2] + "-" + t[1] + "-" + t[0])); }