您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Более подробная информация о выздоровлении персонажа.
// ==UserScript== // @name Regeneration [GW] // @namespace // @description Более подробная информация о выздоровлении персонажа. // @include http://www.ganjawars.ru/me/* // @version 1.01 // @author W_or_M, modified by TWW for Chrome // @namespace https://greasyfork.org/users/154957 // ==/UserScript== (function() { // НАСТРОЙКИ //----------------------------------- var sound80 = 22; // звуковое оповещение при 80%, для отключения 0 var sound100 = 22; // звуковое оповещение при 100%, для отключения 0 var color = 'blue'; // цвет надписи, формат - #XXXXXX (X - от 0 до F) //----------------------------------- var state; var hp_current; var hp_max; var hp_speed; // куки function setCookie (name, value, expires, path, domain, secure) { document.cookie = name + "=" + escape(value) + ((expires) ? "; expires=" + expires : "") + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : ""); } function getCookie(name) { var cookie = " " + document.cookie; var search = " " + name + "="; var setStr = null; var offset = 0; var end = 0; if (cookie.length > 0) { offset = cookie.indexOf(search); if (offset != -1) { offset += search.length; end = cookie.indexOf(";", offset) if (end == -1) { end = cookie.length; } setStr = unescape(cookie.substring(offset, end)); } } return(setStr); } function playSound(soundId) { // создаем контейнер, если еще не создан if (root.document.getElementById('flashcontent') == null) { var div = root.document.createElement('div'); div.id = 'flashcontent'; root.document.body.appendChild(div); } root.document.getElementById('flashcontent').innerHTML = '<embed height="1" width="1" flashvars="soundPath=/sounds/'+ soundId +'.mp3" allowscriptaccess="always" quality="high" bgcolor="#F5fff5" name="gr_server" id="gr_server" src="http://images.ganjawars.ru/i/play.swf" type="application/x-shockwave-flash"/>'; } // установка состояния function setState(stateId) { state = stateId; setCookie('regen_state', stateId, 0, '/'); } var root = typeof unsafeWindow != 'undefined' ? unsafeWindow : window; // мы на главной if (root.location.href.indexOf('http://www.ganjawars.ru/me/') >= 0) { var tmp = root.document.head.innerHTML; var myArray2 = tmp.match(/<script[^>]*>([\s\S]*?)<\/script>/)[1]; hp_speed = parseFloat(/var hp_speed=(.*)\;/i.exec(myArray2)[1]); // ищем "здоровье" var b = root.document.getElementsByTagName('b'); for (var i = 0, l = b.length; i < l; i++) { // нашли if (b[i].innerHTML == 'Здоровье:' && b[i].parentNode.tagName == 'FONT') { var node = b[i].parentNode.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling; hp_current = parseInt(b[i].parentNode.nextSibling.nextSibling.innerHTML,10); var myArray = b[i].parentNode.nextSibling.nextSibling.parentNode.innerHTML; hp_max = parseInt(/\<\/div\>\ \;\/\ \;(\d+)\<br\>/ig.exec(myArray)[1],10); break; } } if (node != 'undefined') { state = getCookie('regen_state') // выздоровление var p = root.document.createElement('p'); p.id = 'regen_hp'; p.style.margin = 0; p.style.padding = 0; p.style.color = color; //p.setAttribute('style', 'margin: 0;padding: 0;color: '+ color +';'); p.innerHTML = ' » <span style="font-weight: bold">Выздоровление:</span> <span id="regen_hp_percent"></span>'; node.parentNode.insertBefore(p, node); var regenHp = root.document.getElementById('regen_hp'); updatehp(); } } function updatehp() { var obj = root.document.getElementById('regen_hp_percent'); // старая функция hp_current = hp_current + hp_speed; var rnd = hp_speed > 1 ? 1 : 10; if (hp_current > hp_max) hp_current = hp_max; var res = Math.round(hp_current * rnd) / rnd; root.document.getElementById('hpdiv').innerHTML = res; // текущее хп в процентах var hpPercent = (hp_current / hp_max) * 100; hpPercent = hpPercent >= 100 ? 100 : hpPercent; obj.innerHTML = Math.floor(hpPercent) +'%'; // время if (hpPercent < 80) { var sec = Math.floor(((hp_max * 0.8) - hp_current) / hp_speed); var date = new Date(sec * 1000); var split = date.getSeconds() < 10 ? ':0' : ':'; var timeZone = Math.floor(date.getTimezoneOffset() / 60); obj.innerHTML += ', <span style="font-weight: bold">'+ ((date.getHours() + timeZone) > 0 ? date.getHours() + timeZone + ':' : '') + date.getMinutes() + split + date.getSeconds() + '</span> (до 80%)'; } if (hpPercent < 100) { var sec = Math.floor(((hp_max) - hp_current) / hp_speed); var date = new Date(sec * 1000); var split = date.getSeconds() < 10 ? ':0' : ':'; var timeZone = Math.floor(date.getTimezoneOffset() / 60); obj.innerHTML += ', <span style="font-weight: bold">'+ ((date.getHours() + timeZone) > 0 ? date.getHours() + timeZone + ':' : '') + date.getMinutes() + split + date.getSeconds() + '</span> (до 100%)'; } if (hpPercent < 100 && hpPercent >= 80 && (state == 0 || state == null)) { setState(1); } if (hpPercent >= 100 && state == 3) { setState(2); } // состояния // 0 - пустое // 1 - получили 80% // 2 - получили 100% // 3 - получили 80%, но еще не получили 100% // 4 - финиш if (state == null && state == 0) { } else if (state == 1 && sound80 > 0) { playSound(sound80); setState(3); } else if (state == 2 && sound100 > 0) { playSound(sound100); setState(4); } else if (state >= 3 && hpPercent < 100) { state = hpPercent < 80 ? 0 : 3; setState(state); } setTimeout(function(){updatehp()}, 1000); } })();