(javascript) function bei countdown ende aufrufen (greasemonkey)

verpeilt2007

Grünschnabel
ich beabsichtige ein greasemonkey script zu erstellen wo wo auf nen timer der jeweiligen seite reagiert und dann eine von mir gewählte action ausführt (href oder alarmsound)


bei der sache handelt es sich um ein browsergame wo diverse countdowns hat zb. bei fertigstellung einer bauschleife, truppen heimkehr etc pp- werde dann die diversen countdowns über ihre id einbinden.


zb einer der countdowns ist folgend zugeordnet (auf der gameseite)

<SPAN id="botCheckValue">00:36:42</SPAN>


mein derzeitiges script sieht folgend aus:


// ==/UserScript==
if (typeof unsafeWindow === 'object'){
uW = unsafeWindow;
} else {
uW = window;
}

var uW;
var $ = uW.jQuery;
var sound = "http://ftp.tux.org/pub/X-Windows/games/freeciv/incoming/sounds/sonar2.wav";
var str = document.createElement('audio');
var $str = $(str);
$str.attr('src', sound);

if(document.getElementById("botCheckValue")){ //kann ich hier zb. mit window.setTimeout ran ?
str.load();
str.play(0);
}


soweit ja gut nur wie (und wo) trage ich die zeit ein bei der die action ausgeführt werden soll?


weil so wie der code bis jetzt ist schlägt er alarm wenn er den timer endeckt und nicht wenn er zu ende ist,
am allerliebsten wär es mir wenn er evtl noch 1 minute vor countdown ende anschlägt aber das regelt sich
(denke ich mal) von selbst wenn ich weiss wo und wie ich den alarm auf die zeit variable und nicht auf die id
ansprechen lasse.

hoffe mir kann wer weiterhelfen und danke
 
Du musst den Wert erst mal Parsen und zu einer Zahl machen. Anschließend stellst du dir für die verbleibende Zeit einen timer mittels setTimeout.

So ungefähr könnte das Parsen aussehen:

Javascript:
var str = '02:36:42';
var ms = 1000;

str.replace(/^(\d{2}):(\d{2}):(\d{2})$/, function(s, a, b, c) {
    ms += (a|0)*60*60*1000
    ms += (b|0)*60*1000
    ms += (c|0)*1000;
});

console.log(ms);

Gibt "9403000" aus. Was der Anzahl von Millisekunden entspricht, die zwei Stunden, 36 Minuten und 42 Sekunden haben.
 
das problem an der sache ist das ich auf ca 10 verschiedene countdowns das ganze anwenden muss, die zwischen 5 minuten bis 1-2 stunden dauern und nach dem sie abgelaufen sind geht der spass wieder von vorne los^^

bei der ganzen sache dreht es sich um ein browsergame wo ich spiele (und die zeiten der countdowns bestehen zb aus BAUSCHLEIFE, FORSCHUNGSSCHLEIFE, EINHEITEN wo unterwegs sind, EINHEITEN in produktion USW und sofort.......)

gibt es keine andre möglichkeit auf den countdown aus dem quelltext des games zuzugreifen?


hier mal teilausschnitte der countdowns

Unbenannt.PNG


jedenfalls das ziel des ganzen soll sein das sobald einer der countdowns zuende ist die bau- forschung- produktions-LEISTE wieder erneut gefüllt wird (was ich auch per script mit greasemonkey einbinden werde (was zum glück im gegensatz zu diesem zeitproblem simpel ist).

jedenfalls ist der bzw die countdowns der einzige indikator wo ich habe um zu wissen wann mein nächstes script eingreift um die produktionsschleife erneut zu füllen.

aber wenn ich jedesmal das script auf die neuen (und unterschiedlich langen COUNTDOWNS) parsen muss ist das ganze für mich kontraproduktiv.


gibt es keine andere möglichkeit auf den countdown anhand der id zuzugreifen?

id="botCheckValue">00:06:54</span></a>
<strong id="serverTimeValue"


dies hier ist zb der countdown vom captcha was als botcheck fungieren soll sobald die zeit auf null ist muss ich bei solchen bildern 2.gif auf den offenen kreis als bestätigung klicken, aber dies ist ein anderes kapitel welche ich umgehen kann wenn die zeit abgelaufen ist
 
das problem an der sache ist das ich auf ca 10 verschiedene countdowns das ganze anwenden muss, die zwischen 5 minuten bis 1-2 stunden dauern und nach dem sie abgelaufen sind geht der spass wieder von vorne los^^

Dafür gibt es Schleifen und Funktionen. Ich sehe da jetzt nicht das Problem.


gibt es keine andre möglichkeit auf den countdown aus dem quelltext des games zuzugreifen?

Ich kenne den Quelltext nicht und weiß nicht mal welches Spiel es ist. Das kannst du schön selbst herausfinden. Das kann man unmöglich pauschal beantworten.


Ich werde dir ab jetzt nicht mehr weiter helfen, da ich Betrugsversuche nicht unterstütze.
 
Bin mir ja nicht sicher, aber normal sollte bei einem Browsergame die Seite refreshen, sobald ein Countdown abgelaufen ist. Demnach bringt dir dein Script herzlich wenig. Du solltest eher schauen, ob die Bauschleife voll ist und wenn nicht, soll sie gefüllt werden. Das sollte bei jedem Seitenaufruf passieren.

Aber wie CPoly helf ich dir auch nicht bei Betrügereien, vor allem weils in den AGB des Spiels eindeutig drin steht, oder? Und einen Botschutz bauen die auch nicht aus Spaß ein. ;)
 

Neue Beiträge

Zurück