[Script] Heure d'impact dynamique [Validé]

  • Auteur de la discussion Virza
  • Date de début

DeletedUser

Guest
Script : Heure d'impact dynamique

C'est un script que j'ai codé dans le but de corriger un détail sur la page de confirmation d'une attaque.

En effet, si vous voulez lancer une attaque à une heure précise, pour qu'elle impacte à une heure précise, vous devez vous contenter de l'heure du serveur, l'heure d'impact étant fixe.
Ce script met à jour l'heure d'impact chaque seconde, donnant ainsi l'heure d'arrivée exact.

Utilisation

Comme d'habitude, installez le script, ensuite rendez-vous sur la page de confirmation d'une attaque (ou support), puis lancement du script.

L'heure d'impact dynamique s'affiche juste en dessous de l'heure fixe :)
Sans plus tarder, voici le script :

Code:
javascript:
$('#date_arrival').after('<br / ><span id="time"></span>');
var time = $('table.vis tr:contains("Durée")').text().match(/\d{1,3}:\d{2}:\d{2}/).toString();
timeDyn(time);
void(0);
function timeDyn(time) {
	var strTime=$('#serverTime').text();
	var timeArray = strTime.split(':');
	var travArray = time.split(':');
	var H = parseInt(timeArray[0], 10) + parseInt(travArray[0], 10);
	var M = parseInt(timeArray[1], 10) + parseInt(travArray[1], 10);
	var S = parseInt(timeArray[2], 10) + parseInt(travArray[2], 10);
	if(S >= 60)	{M += 1;S -= 60;}
	if (S < 10)	{S = "0" + S;}
	if(M >= 60)	{H += 1;M -= 60;}
	if (M<10)	{M = "0" + M;}
	while (H >=24)	{H -= 24;}
	if (H < 10)	{H = "0" + H;}
	$('#time').html(H+':'+M+':'+S);
	setTimeout(function() {
		timeDyn(time);
	}, 100);
}
Code:
javascript:
(function () {
body      = document.getElementById("content_value");
table     = body.getElementsByTagName("table")[0];
row       = table.getElementsByTagName("tr")[3];
if(!row) {
row = table.getElementsByTagName("tr")[5];
}
else if(!row)	{
row = table.getElementsByTagName("tr")[4];
}

cel       = row.getElementsByTagName("td")[1];
var time = cel.innerHTML;
var elementDoc=(window.frames.length>0)?window.main.document:document;
var doc = elementDoc.getElementById("date_arrival");
doc.innerHTML += "<br /><span id = \'horloge\'>Heure</span>";
wrString(".::::::Virza\'s Script::::::.", "En cas de bugs ou autres, consultez la section Scripts du Forum GuerreTribale");
function timeDyn(time) {
	var strTime=$('#serverTime').text();
	var timeArray = strTime.split(':');
	var travArray = time.split(':');

	var H = parseInt(timeArray[0], 10) + parseInt(travArray[0], 10);
	var M = parseInt(timeArray[1], 10) + parseInt(travArray[1], 10);
	var S = parseInt(timeArray[2], 10) + parseInt(travArray[2], 10);

	if(S > 60)	{
		M += 1;
		S -= 60;
	
		if (S < 10)	{
			S = "0" + S;
		}
	}

	if(M > 60)	{
		H += 1;
		M -= 60;
	
		if (M < 10)	{
			M = "0" + M;
		}
	}
	else if (M<10)	{
		M = "0" + M;
	}
	while (H >=24)	{
	H -= 24;
	}
	if (H < 10)	{
		H = "0" + H;
	}	
	
	
	var result = H + ':' + M + ':' + S;
	document.getElementById("horloge").innerHTML = "Impact à " + result;

	setTimeout(function() {
		timeDyn(time);
	}, 1000);

}
function wrString(string, string2)	{
		document.body.appendChild(document.createTextNode(string)); 
		document.body.appendChild(document.createElement("br"));
		document.body.appendChild(document.createTextNode(string2));
		document.body.appendChild(document.createElement("br"));
		document.body.appendChild(document.createElement("br"));
		document.body.appendChild(document.createElement("br"));
		document.body.appendChild(document.createElement("br"));
		
}

timeDyn(time);

}
)
();
Bug reports :

C'est un travail plutôt délicat, si vous rencontrez des bugs, des heures invraisemblables ou autres détails gênants, merci de me le faire savoir, il sera corrigé au plus tôt :)


Change Log

  • 05/05/11 : Première version : L'utilisateur doit entrer lui-même la durée du trajet de l'attaque, ce qui causait un décalage d'une seconde.
  • 08/05/11 : Deuxième version : Le bug est résolut, il n'y a plus besoin d'entrer soi-même la durée du trajet.
  • 08/07/11 : Version JQuery, moins de code, plus propre
 
Dernière édition par un modérateur:

DeletedUser12712

Guest
Bug mineur d'affichage pour les 10 premières secondes d'une minute... Il met bien le "01" mais ensuite il met "2"... "3"... etc, jusqu'à "10" et après tout est normal =).
 

DeletedUser

Guest
Ce n'est pas un bug à proprement parler, il rattrape juste le décalage qu'il y a eu entre l'affichage de la page-votre frappe-et l'actualisation :)
 

DeletedUser17183

Guest
Le script a un peu plus d'une seconde de retard. :)

Et nan ce n'est pas de ma faute j'ai vérifié plusieurs fois et je suis certain de ce que j'avance. ;)
 

DeletedUser

Guest
Tu as pris en compte le lag de changement de page?
Hier j'ai calé un noble à 001 ms de précision (j'ai eu de la chance je l'avoue)

Il faut apprivoiser le script ^_^

Mais si on me prouve par A + B que le script calcule comme un pied, veux bien y retravailler :)
 

DeletedUser17183

Guest
Tu as pris en compte le lag de changement de page?
Hier j'ai calé un noble à 001 ms de précision (j'ai eu de la chance je l'avoue)

Il faut apprivoiser le script ^_^

Mais si on me prouve par A + B que le script calcule comme un pied, veux bien y retravailler :)

Tadaaaaa! :cool:

110508044131511092.jpg
 

DeletedUser

Guest
Tu sais que tu es le lapin le plus abominable d'entre tous ? :mad:

><''

M'fin, c'est ta faute si j'ai passé mon après-midi à résoudre ce bug
Donc le script d'affichage de ressources pillées attendra niark niark !

\me redevient sérieux

:)

Voilà le soucis n'en est plus un :)
J'ai mis à jour le script, il n'y a plus besoin d'entrer soi-même l'heure ;)
 

DeletedUser

Guest
En fait ton script permet de faire des meilleurs trains c'est ça ? :)
 

DeletedUser

Guest
Train? Je ne sais pas :confused:

C'est essentiellement pour un meilleur confort lors de back-time, snipe ou tout simplement calage d'off/noble
 

DeletedUser

Guest
la nouvelle version ne marche pas chez moi, ni sous chrome, ni sous opéra

arrivée : NaN:NaN:NaN

l'ancienne allait très bien
 
Haut