Terrain in die DB speichern

Hier können sich alle gegenseitig helfen beim erstellen eines Spiels

Moderator: Agatho

Terrain in die DB speichern

Beitragvon danielray » 21.09.2006, 16:40

Irgendwie funktioniert das Updaten der "0" in der DB von Cave nicht.

Code: Alles auswählen
linux:/home/ticker # php createTerrainFromMapfile.php mymap.txt 100
The specified mapfile 'mymap.txt' contained a total of 900 cells.
It was chunked to a map of 19x19 which should be 361 cells
updating caves' terrain Fehler beim Eintragen des neuen Terrains!
updating caves' Starting_positions .


:/ hab mir den Code angeschaut:

Code: Alles auswählen
function setTerrain($terrain, $offsetX, $offsetY){
  global $db;
  echo "updating caves' terrain ";
  for ($y = 0; $y < sizeof($terrain); ++$y){
    for ($x = 0; $x < sizeof($terrain[0]); ++$x){
      $query = "UPDATE Cave SET terrain = {$terrain[$y][$x]} WHERE xCoord = " . ($x + $offsetX) . " AND yCoord = " . ($y + $offsetY);
      if (!$db->query($query)){
        echo "Fehler beim Eintragen des neuen Terrains!\n";
        return 1;
      }
    }
    echo ".";
  } 
  echo "\n";
}


Fragen: Warum hat "$y = 0; $y < sizeof($terrain" kein [0]?
Hab zwar schon hinzugefügt, geht nicht ^^. und beim $querry auch schon ein
" ."" " anggefügt (ersten und letzten ") wegdenken.
.
Bild
Benutzeravatar
danielray
Schnellwuchernder Forenleser
Schnellwuchernder Forenleser
 
Beiträge: 655
Registriert: 30.01.2004, 17:04
Wohnort: Wien

Beitragvon Firak » 21.09.2006, 21:14

Das sieht (mindestens auf den ersten Blick) nach dem gleichen Problem aus, das hier schon mal berichtet wurde. Mir ist aber leider nach wie vor unklar, woher dieser Fehler kommen kann...
Night falls and the foul are abroad...
Firak
Halbgott des Schattens
Halbgott des Schattens
 
Beiträge: 169
Registriert: 28.01.2004, 14:35
Wohnort: Osnabrück

Beitragvon danielray » 22.09.2006, 00:16

Firak hat geschrieben:Das sieht (mindestens auf den ersten Blick) nach dem gleichen Problem aus, das hier schon mal berichtet wurde. Mir ist aber leider nach wie vor unklar, woher dieser Fehler kommen kann...


ach stimmt ja.
hab ich mal gelesen, dann aber nicht mehr gefunden den thread.
dachte wär ein anderes forum gewsen. sry 4 erneutes aufmachen
des gleichen threads. vl find ich ja den fehler, werd mal einige sachen
ausprobieren ^^
.
Bild
Benutzeravatar
danielray
Schnellwuchernder Forenleser
Schnellwuchernder Forenleser
 
Beiträge: 655
Registriert: 30.01.2004, 17:04
Wohnort: Wien

Beitragvon danielray » 22.09.2006, 00:36

menno, doofe 15min edit frist:

@Firak, vl hilft dir das weiter:

Unknown column 'TERRAIN_PLAINS' in 'field list'


das gleiche gilt für TERRAIN_FOREST, MOUNTAINS, SWAMP

Code: Alles auswählen
   /********************** Terrains *********************/
  define("MAX_TERRAINS", 4);
  global $terrainList;
  $terrainList = array();

  // Ebene
  $terrainList[0] = array('name' => 'Ebene',
                          'takeoverByCombat' => 0,
                          'barren' => 0,
                          'color' => array('r' => 240, 'g' => 240, 'b' => 192),
                          'effects' => array());

  // Wald
  $terrainList[1] = array('name' => 'Wald',
                          'takeoverByCombat' => 0,
                          'barren' => 0,
                          'color' => array('r' => 192, 'g' => 226, 'b' => 154),
                          'effects' => array());

  // Gebirge
  $terrainList[2] = array('name' => 'Gebirge',
                          'takeoverByCombat' => 0,
                          'barren' => 0,
                          'color' => array('r' => 192, 'g' => 192, 'b' => 164),
                          'effects' => array());

  // Sumpf
  $terrainList[3] = array('name' => 'Sumpf',
                          'takeoverByCombat' => 0,
                          'barren' => 0,
                          'color' => array('r' => 224, 'g' => 192, 'b' => 152),
                          'effects' => array());
.
Bild
Benutzeravatar
danielray
Schnellwuchernder Forenleser
Schnellwuchernder Forenleser
 
Beiträge: 655
Registriert: 30.01.2004, 17:04
Wohnort: Wien

Beitragvon danielray » 22.09.2006, 01:21

hab nun folgenden code verwendet:

Code: Alles auswählen
/********************** Terrains *********************/
  define("TERRAIN_PLAINS", 0);
  define("TERRAIN_FOREST", 1);
  define("TERRAIN_MOUNTAINS", 2);
  define("TERRAIN_SWAMP", 3);
  global $terrainList;
  $terrainList = array();
 
  // Ebene
  $terrainList[0] = array('name' => 'Ebene',
                          'takeoverByCombat' => 0,
                          'barren' => 0,
                          'color' => array('r' => 240, 'g' => 240, 'b' => 192),
                          'effects' => array());

  // Wald
  $terrainList[1] = array('name' => 'Wald',
                          'takeoverByCombat' => 0,
                          'barren' => 0,
                          'color' => array('r' => 192, 'g' => 226, 'b' => 154),
                          'effects' => array());

  // Gebirge
  $terrainList[2] = array('name' => 'Gebirge',
                          'takeoverByCombat' => 0,
                          'barren' => 0,
                          'color' => array('r' => 192, 'g' => 192, 'b' => 164),
                          'effects' => array());

  // Sumpf
  $terrainList[3] = array('name' => 'Sumpf',
                          'takeoverByCombat' => 0,
                          'barren' => 0,
                          'color' => array('r' => 224, 'g' => 192, 'b' => 152),
                          'effects' => array());


nur das starting position geht noch nicht, terrain wurde erstellt ;)
.
Bild
Benutzeravatar
danielray
Schnellwuchernder Forenleser
Schnellwuchernder Forenleser
 
Beiträge: 655
Registriert: 30.01.2004, 17:04
Wohnort: Wien

Beitragvon Firak » 01.10.2006, 21:11

Danke, ich habe das mal im CVS repariert.
Night falls and the foul are abroad...
Firak
Halbgott des Schattens
Halbgott des Schattens
 
Beiträge: 169
Registriert: 28.01.2004, 14:35
Wohnort: Osnabrück


Zurück zu Bastelstube für die CVS Version

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron