brauche hilfe beim entwickeln eines Browsergames

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • brauche hilfe beim entwickeln eines Browsergames

    Hi ich habe ein Browsergame so ca. 20 % fertig gestellt von 0 an jetzt bin ich aber noch ein PHP noob und würde gerne wissen:
    Wie ich sozusagen die Baufelder begrenzeit und wie ich ein bauscript mache also das Das bauen von gebäuden zeit in anspruche nimmt?

    zum baun da habe ich eine land.php hier ein ausschnitt:

    Quellcode

    1. $LSB=$info['LSB'] * 500;
    2. </td></tr><td id="komplett2" width="150" height="150"><th colspan="2"><img src="img/bu/LSB.jpg" alt="LSB" width="150" height="150"></th></td><tr><td>
    3. Luftschutzbunker Level: ',$info['LSB'],'<br>
    4. Kosten: ',$LSB,'Uran
    5. <br>
    6. <a class="squarebutton" href="land.php?make=LSB">Luftschutzbunker bauen</a><br>
    7. <br>
    8. </td></tr>


    & eine makeupdate.php

    <?php
    if($_GET['make'] == "LSB")
    {

    $id=$info['id'];
    $LSB=$info['LSB'];
    $preis=$LSB * 500;
    $newLSB=$LSB + 1;
    $uran=$info['uran'];
    $newuran=$uran - $preis;
    $zufall= rand(0,50);
    $neuep=$info['ep'] + $zufall;
    if ($preis <= $uran)
    {
    mysql_query ("UPDATE `user` SET `uran` = '$newuran',
    `ep` = '$neuep',
    `LSB` = '$newLSB' WHERE `id` =$id LIMIT 1 ;");
    }
    }


    Wo füge ich das dann ein also das mit der zeit funktion



    mfg. DrHouse
  • Hallo,
    such mal nach dem Begriff Cronjobs.
    Dabei solltst du fündig werden. Es hilft dir PHP Scripte in bestimmten Intervallen aufzurufen


    Vollkommen unötig bei so einer kleinen Aufgabe. Dies mit einen Cronjob zu belasten.

    Für ein Bauscript mußt du nix anderes machen als die Startzeit vom Bau vorgang in der Datenbank zu speichern.
    Und wenn ein Spieler dann auf die Seite schaut berechnest du die vergangene Zeit. Startzeit + Bauzeit = Bauende
    Ist dann Bauende größer Aktuellen Zeit ist der Ausbau bereits beendet. Das ist jetzt ein grobes Beispiel gewessen.

    Natürlich kannst du das dann ganz genau ausrechnen und daraus auch wieviele mehr Ressourcen er dafür bekommt.

    Weitere Browsergame Tutorials findest du unter:
    buildingbrowsergames.com/tutorials/

    Hier mal ein Beispiel code Schnipsel dafür

    Quellcode

    1. $action="";
    2. if(isset($get_post['action'])) {$action = $get_post['action'];}
    3. $tpl->game='{include="gebb"}'; #Template gebb laden
    4. #Prüfen ob Gebäude in bau sind und wenn ja Anzeigen
    5. $aktuell=time();$i=0;
    6. $sql="SELECT
    7. gb_inbau,gb_name,gb_baubegin,gb_bauzeit,gb_id,gb_anzahl
    8. FROM
    9. stadt_gb,gebaeude
    10. WHERE
    11. f_gbid=gb_id AND
    12. f_stadtid=:stadtid AND
    13. gb_inbau > 0";
    14. $stmt = $obj->prepare($sql);
    15. $stmt->bindParam(':stadtid',$_SESSION['stadt_id']);
    16. $stmt->execute();
    17. while ($data = $stmt->fetch(PDO::FETCH_OBJ))
    18. {
    19. #Beginn der Berechnung
    20. $ausbau=($data->gb_bauzeit*interval)+$data->gb_baubegin; #Bauende in Sekunden
    21. if($ausbau <= $aktuell)
    22. {
    23. #Ausbau der Gebäude abgeschlossen
    24. $gb[$i]['ausbau']=0;
    25. }
    26. else
    27. {
    28. #Berechnen wie lange es noch Dauert
    29. $gb[$i]['ausbau']=($ausbau-$aktuell);
    30. }
    31. $gb[$i]['name']=$data->gb_name;
    32. $gb[$i]['inbau']=$data->gb_inbau;
    33. $gb[$i]['gb_id']=$data->gb_id;
    34. $gb[$i]['gb_anzahl']=$data->gb_anzahl;
    35. $i++;
    36. }#end while
    37. #var_dump($gb);
    38. $gbaus="";
    39. if (isset($gb) && is_array($gb))
    40. {
    41. #Wenn Daten erhalten aus Db nachschauen ob fertig wenn nicht dauer ausgeben
    42. foreach ($gb as $geb)
    43. {
    44. if($geb['ausbau'] == 0)
    45. {#gb fertig in db eintragen
    46. $gbneu=$geb['gb_anzahl']+$geb['inbau'];
    47. $sqlup="UPDATE
    48. stadt_gb
    49. SET
    50. gb_inbau='0',gb_anzahl='".$gbneu."'
    51. WHERE
    52. f_stadtid='".$_SESSION['stadt_id']."' AND
    53. f_gbid='".$geb['gb_id']."'";
    54. $stmt = $obj->prepare($sqlup);
    55. $stmt->execute();
    56. }
    57. else
    58. {# Ausbau nicht fertig loop ausgabe vorbereiten
    59. $gbaus['inbau'][]=$geb['inbau'];
    60. $gbaus['name'][]=$geb['name'];
    61. $gbaus['dauer'][]=(date( "H:i:s", $geb['ausbau']- 60 * 60));
    62. }
    63. }#end foreach
    64. }
    65. $tpl->setLoop("gbaus",$gbaus);
    66. unset($gb);
    Alles anzeigen


    Die Ausgabe sieht dann so aus siehe Anhang.

    Mfg Splasch
    Bilder
    • geb2.jpg

      10,2 kB, 359×227, 373 mal angesehen

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von splasch ()