NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name Retour flotte p opera
// @namespace nheire
// @version 1.2.0
// @description La hora y segundo exacto que retorna la flota para cancelar justo a tiempo.
// @updateURL http://userscripts-mirror.org/scripts/review/165490.html
// @downloadURL http://userscripts-mirror.org/scripts/review/165490.html
// @include http://*.ogame.gameforge.com/game/index.php?page=movement
// @grant GM_getValue
// @grant GM_setValue
// ==/UserScript==
//------------ From Antigame ---------------//
function getDatePart (a) {
return Date.UTC(a.getFullYear(), a.getMonth(), a.getDate());
}
function LZ(a) {
return (0 > a || 9 < a ? "" : "0") + a;
}
function format (a) {
var d = "";
var c = new Date();
var b = (getDatePart(c) !== getDatePart(a) ? "[d]/[m] " : "") + "[H]:[i]:[s]";
d = b;
b = a.getHours();
d = d.split("[d]").join(LZ(a.getDate())).split("[m]").join(LZ(a.getMonth() + 1)).split("[Y]").join(a.getFullYear()).split("[y]").join(a.getFullYear().toString().substr(2, 4)).split("[H]").join(LZ(b)).split("[i]").join(LZ(a.getMinutes())).split("[s]").join(LZ(a.getSeconds()));
return d;
}
//------------------------------------------//
function parse3(a) {
a = a.replace(/["<\/span>]/g,"");
var r = /(\d{2,2})\.(\d{2,2})\.(\d{4,4})\s*(\d{2,2}):(\d{2,2}):(\d{2,2})/;
r = a.match(r);
if(r)
{
a = new Date(r[3],r[2]-1,r[1],r[4],r[5],r[6],0);
return a;
}
return null;
}
var planet = document.getElementById('planet');
var reg1 = /fleet\d+/;
var reg2 = /\d+/;
var delta = new Date();
var serverTime = parse3(document.getElementById('playerName').parentNode.lastChild.previousSibling.innerHTML);
delta = delta.getTime()-serverTime.getTime();
var dateRetour = {};
var nav = planet.nextSibling;
while(nav)
{
if(nav.nodeType == 1 && nav.hasAttributes() && reg1.test(nav.id) && nav.getAttribute("data-return-flight") == "false")
{
var m = reg2.exec(nav.id);
var span = document.createElement('span');
span.id = 'retourFlotte_'+m;
span.title = 'Retour';
span.setAttribute('style',"position: absolute; top: 46px; left: 540px; color: yellow;");
nav.appendChild(span);
var tret = document.getElementById("timerNext_"+m).title;
var dret = parse3(tret);
dateRetour[nav.id] = dret.getTime();
}
nav = nav.nextSibling;
}
setInterval(function(){
var dact = new Date(),
tact = dact.getTime()-delta,
nav = planet.nextSibling;
while(nav)
{
if(nav.nodeType == 1 && nav.hasAttributes() && reg1.test(nav.id) && nav.getAttribute("data-return-flight") == "false")
{
var m = reg2.exec(nav.id);
var tarr = nav.getAttribute("data-arrival-time")*1000;
var darr = new Date(tarr);
var tret = dateRetour[nav.id];
tret = tret - 2*(tarr-tact);
darr.setTime(tret);
var rf = document.getElementById('retourFlotte_'+m);
rf.innerHTML = format(darr);
}
nav = nav.nextSibling;
}
}, 500);