kostenloser Webspace werbefrei: lima-city


Sekundenzähler wie bei Onlinegames

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    speedtouch92

    Kostenloser Webspace von speedtouch92

    speedtouch92 hat kostenlosen Webspace.

    Hallo, sicher kennt ihr das von den Online-Browsergames:
    Wenn man etwas bauen oder ausbilden will, dann klickt man auf einen Link, und dann wird angezeigt:
    fertig in 0:10:02h Also 10 Minuten, 2 Sekunden.
    Wenn ich dann warte, bis er auf 9 Minuten heruntergez?hlt hat und dann aktualisiere, z?hlt er von 9 Minuten weiter herunter, wie kann ich soetwas realisieren?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hi,

    wenn du willst, dass sich der Z?hler st?ndig aktualisiert, dann geht das nicht mit PHP, aber z.B. mit Javascript w?rde es eghen.

    mfg,
    hr
  4. Autor dieses Themas

    speedtouch92

    Kostenloser Webspace von speedtouch92

    speedtouch92 hat kostenlosen Webspace.

    Und wie kann ich das dann machen?
    Code oder so??????
  5. Das Forum hat nicht umsonst eine Suchfunktion

    http://www.lima-city.de/boards.php?m=thread&id=39090&page=0#363732
  6. Autor dieses Themas

    speedtouch92

    Kostenloser Webspace von speedtouch92

    speedtouch92 hat kostenlosen Webspace.

    Ah, danke.
    Aber wie kann ich die Zeit f?r den Javascriptcounter ablaufen lassen?
    Denn sonst z?hlt der ja bei jedem reload neu.

    Hier das Javascript:
    <input value="0" type="text" readonly="readonly" id="XY" />
    <script>
    function countdown(ele,starter) {
    document.getElementById(ele).value=starter;
    starter--;
    setTimeout('countdown("'+ele+'",'+starter+')',1000);
    }
    
    countdown('XY',500);
    </script>
  7. Hi,

    der beste Weg, um dieses Problem zu l?sen ist, wenn man die vergangene Zeit im query speichert.

    So sollte es gehen (ich musste da noch einige Funktionen erfinden, aber so gehts'):
    <input value="0" type="text" readonly="readonly" id="XY" /> <a href="javascript:submitp()">Klick</a>
    
    <script language="JavaScript" type="text/javascript">
    <!--
    var p = getquery('p');
    var starter = p != null ? p : 500;
    var el = 'XY';
    var timeout;
    
    function getquery(key) {
      var k,kv;
      var query = window.location.search.substr(1).split('&');
      for (k in query) {
        kv = query[k].split('=');
        if (kv[0] == key) return kv[1];
      }
      return null;
    }
    
    function countdown() {
     document.getElementById(el).value = starter;
     starter--;
     timeout = setTimeout('countdown()',1000);
    }
    
    function submitp() {
      clearTimeout(timeout);
      self.location.href = '?p=' + starter;
    }
    
    countdown();
    //-->
    </script>


    Man k?nnte satt nur den Sekunden auch noch Minuten usw. anzeigen, aber so gehts auch. Ich hoffe, es hilft weiter.
    Ich finde man sollte diesen Threat ins Javascript & HTML Forum verschieben.

    mfg,
    hr

    Beitrag ge?ndert am 15.05.2006 01:11 von heavyraptor
  8. theuntouchables

    theuntouchables hat kostenlosen Webspace.

    Es geht noch wesentlich leichter (alles in javascript):
    Du nimmst als referenz einen festen timestamp (die zeit an dem das wasauchimmer fertig ist) und dann l?sst du die aktuelle zeit (auch als timestamp) immer von dem abziehen (bauste in ne funktion die sich st?ndig aktualisiert: s.o.). Das was ?brig bleibt ist die ?brige zeit in sekunden. Kannste dann halt noch sch?n formatieren und fertig.
    Kann so oft relaodet werden wis du willst, spuckt immer die richtiger zeit aus...
  9. Autor dieses Themas

    speedtouch92

    Kostenloser Webspace von speedtouch92

    speedtouch92 hat kostenlosen Webspace.

    Sorry, aber den Code von heavyraptor verstehe ich nicht.
    Aber, ich w?rde das gerner auf MySQl-DBs laufen lassen.
  10. Also, ich w?rde es auch mit JS machen, aber mit nem Cronjob ist das wesentlich einfacher.
    Speddtouch92 was ist daran nicht zu verstehen??
    Er hat nen Javascript Countdown, wen man den
    Link klickt, wird der Countdown im In?put angezeigt wenn er abgelaufen ist wird er
    auf die Seite: ?p= weitergeleitet

    Beitrag ge?ndert am 15.05.2006 16:46 von gollum1990
  11. Autor dieses Themas

    speedtouch92

    Kostenloser Webspace von speedtouch92

    speedtouch92 hat kostenlosen Webspace.

    Nunja, also, ich verstehe das immer nocht nicht.
    Aber, wenn ich die Seite (wo gez?hlt wird) verlase, dann will ich, dass er weiterz?hlt.
    Also beim Seitenaufruf nicht wieder neu anf?gt.
    Und, man sollte mit php ?berpr?fen k?nnen, ob der Countdown auch abgelaufen ist.
  12. Da gibst nics zu verstehen.
    Noch mal so:

    Klick-> Countdown Startet (Sieht man Input)
    Verlassen der Seite-> Countdown l?uft weiter
    Countdown abgelaufen -> auf die seite ?p=Beispielhaus weitergeleitet

    Die Seite beinhaltet das Update der Stufe der
    Z?rucksetzung der Zeit in der Datenbank.

    Ok man sollte noch ne if else Anweisung machen
    bei der Countdown Seite und fertig, da haste dein
    hast den Z?hler.


    Beitrag ge?ndert am 15.05.2006 16:56 von gollum1990
  13. Autor dieses Themas

    speedtouch92

    Kostenloser Webspace von speedtouch92

    speedtouch92 hat kostenlosen Webspace.

    Und wo muss ich dann die Zeit eintragen, die gez?hlt werden muss?
    Also, ich hoffe, wir sprechen nun beide von diesem Code:
    <input value="0" type="text" readonly="readonly" id="XY" /> <a href="javascript:submitp()">Klick</a>
    
    <script language="JavaScript" type="text/javascript">
    <!--
    var p = getquery('p');
    var starter = p != null ? p : 500;
    var el = 'XY';
    var timeout;
    
    function getquery(key) {
      var k,kv;
      var query = window.location.search.substr(1).split('&');
      for (k in query) {
        kv = query[k].split('=');
        if (kv[0] == key) return kv[1];
      }
      return null;
    }
    
    function countdown() {
     document.getElementById(el).value = starter;
     starter--;
     timeout = setTimeout('countdown()',1000);
    }
    
    function submitp() {
      clearTimeout(timeout);
      self.location.href = '?p=' + starter;
    }
    
    countdown();
    //-->
    </script>
  14. Also mach nen Query Update so:

    UPDATE `bauen` SET `zeit` = '".$zeit."'
    die If abfrage:
    if($row['zeit'] < 1)
    {
    //Bauen
    }
    else
    {
    //countdown
    }

    Bevor du wieder fragst hier einfach Z?hler f?r nen
    Bauscript:
    [code]
    <html>
    <head>
    <title>SekundenZ?hler</title>
    <script language="JavaScript">
    <!--
    function countdown() {
    timer = document.getElementsByName('countdown');

    for (i = 0; i <= timer.length - 1; i++) {
    zeit = timer.title;
    zeit = zeit - 0.5;

    if (zeit > 0) {
    minuten = 0;
    stunden = 0;

    if (zeit > 59) {
    minuten = Math.floor(zeit / 60);
    }

    sekunden = Math.floor(zeit - minuten * 60);

    if (sekunden < 10) {
    sekunden = "0" + sekunden;
    }
    if (minuten < 10) {
    minuten = "0" + minuten;
    }
    timer.firstChild.nodeValue = minuten + ":" + sekunden;
    timer.title = zeit;
    }else {
    timer.firstChild.nodeValue = "Fertig";
    }
    }

    window.setTimeout("countdown()", 500);
    }

    countdown();
    //-->
    </script>
    </head>
    <body onload="countdown()">
    <?php
    $auslesen = mysql_query("SELECT * FROM bauen");
    $while($row = mysql_fetch_array($auslesen))
    {
    if($row['zeit'] < 1)
    {
    echo '<a href="deinscript.php">Bauen</a>';
    }
    else
    {
    echo '<span id="countdown">'.$row['zeit'].'<br>';
    }
    ?>
    </body>
    </html>

    Beitrag ge?ndert am 15.05.2006 22:02 von gollum1990
  15. Hi,

    ich bin eigentlich auch der Meinung wie theuntouchables, dass man mit einem timestamp arbeitet. Es ist einfacher und praktischer zum rechnen.
    Ich hab einfach die gegebene Funktion noch ausgebaut.

    mfg,
    hr
  16. @gollum1990

    erkl?r ma bitte noch ma genau wie du des meinst weil wenn ich des script aufrufe(den timer) is mir aufgefallen dass wenn ma auf Klick klickt es schneller runter geht und wenn ma auf zur?ck geht wird der counter resetet. meine frage: is des nicht auch mit net auch mit einer Zwischenspeicherung, also einem "Backup" auf der DB m?glich? Oder versteh ich dein Script nur grad total net.....btw hab kaum ahnung mit JavaScript ;).

    Ich hab von nem Kumpel auch ein Timer geschickt bekommen der allerdings als solches besser fungiert als dein geposteter. K?nntest du mir da eventuell beim anpassen helfen? W?r super nett. Hier is Script:

    <html>

    <head>
    <title>Timer</title>
    <script language="javascript">
    var start = new Date();

    var link = "http://thedarksniper.de.vu";

    function timer(sec)
    {
    var time = new Date();
    var diff = time - start;
    var text = document.getElementById("zeit");
    if(((sec*1000)-diff)>=0)
    {
    var s = (sec-((diff/1000)-((diff/1000)%1)));
    var m = ((s/60-(s/60)%1)%60);
    var h = (s/3600-(s/3600)%1);
    text.innerHTML = h + ":" + m + ":" + (s%60);
    setTimeout('timer('+sec+')',1000);
    }
    else
    {
    text.innerHTML = "<a href=\""+link+"\">weiter</a>";
    }

    }

    </script>
    </head>

    <body onload="timer(10)">
    <b>
    <span id="zeit"></span>
    </b>
    </body>

    </html>

    Thx schon mal im vorraus
  17. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!