Seite 2 von 2

Verfasst: 24.01.2006 23:39
von edel
Nein das klappt nicht, merkst du spaetestens wenn du

a\playerPosx = "PosX"
a\playerPosy = "PosY"
a\playerpunkte = "Punkte"

save(@a)

ausklammerst, und nur den Datenblock laedst, PB speichert nur die
Adresse des Strings, wenn "a\playerPosx = "PosX"" im code steht
ist auch die Adresse vorhanden.

Verfasst: 24.01.2006 23:39
von ts-soft

Code: Alles auswählen

Structure player
  playerPosx.s
  playerPosy.s
  playerpunkte.s
EndStructure

Procedure load(*daten)
  ReadFile(0,"SaveGame.dat")
  ReadData(*daten,SizeOf(player))
  CloseFile(0)
EndProcedure

Procedure save(*daten)
  CreateFile(0,"SaveGame.dat")
  WriteData(*daten,SizeOf(player))
  CloseFile(0)
EndProcedure



a.player
b.player

; a\playerPosx    = "PosX"
; a\playerPosy    = "PosY"
; a\playerpunkte  = "Punkte"
; 
; save(@a)
load(@b)

Debug b\playerPosx   
Debug b\playerPosy   
Debug b\playerpunkte
Die strings werden nicht gespeichert, da in der Strukture nur ein Pointer zu dem Speicher, in dem sich der String befindet, befindet.
Deine gespeicherte Datei enthält lediglich 12 Bytes, kann also nicht komplett sein

//Nachtrag: hallodri, wir müssen uns absprechen :wink:

Verfasst: 25.01.2006 00:21
von edel
Jetzt mit strings und 4 Spielern ;-)

Code: Alles auswählen

Structure player
  playerPosx.l
  playerPosy.l
  Playername.b[30] 
  playerpunkte.l 
EndStructure

Structure allplayer
  player1.player
  player2.player
  player3.player
  player4.player
EndStructure

Procedure load(*daten)
  ReadFile(0,"SaveGame.dat")
  ReadData(*daten,SizeOf(allplayer))
  CloseFile(0)
EndProcedure

Procedure save(*daten)
  CreateFile(0,"SaveGame.dat")
  WriteData(*daten,SizeOf(allplayer))
  CloseFile(0)
EndProcedure

a.allplayer
b.allplayer

a\player1\playerPosx    = 100
a\player1\playerPosy    = 150
a\player1\playerpunkte  = 5000
PokeS(@a\player1\Playername,"Bubi0")

a\player2\playerPosx    = 101
a\player2\playerPosy    = 151
a\player2\playerpunkte  = 5001
PokeS(@a\player2\Playername,"Bubi1")

a\player3\playerPosx    = 102
a\player3\playerPosy    = 152
a\player3\playerpunkte  = 5003
PokeS(@a\player3\Playername,"Bubi2")

a\player4\playerPosx    = 103
a\player4\playerPosy    = 153
a\player4\playerpunkte  = 5003
PokeS(@a\player4\Playername,"Bubi3")


save(@a)
load(@b)

Debug b\player1\playerPosx   
Debug b\player1\playerPosy   
Debug b\player1\playerpunkte
Debug PeekS(@b\player1\Playername)

Debug "-----------------------------"

Debug b\player2\playerPosx   
Debug b\player2\playerPosy   
Debug b\player2\playerpunkte
Debug PeekS(@b\player2\Playername)

Debug "-----------------------------"

Debug b\player3\playerPosx   
Debug b\player3\playerPosy   
Debug b\player3\playerpunkte
Debug PeekS(@b\player3\Playername)

Debug "-----------------------------"

Debug b\player4\playerPosx   
Debug b\player4\playerPosy   
Debug b\player4\playerpunkte
Debug PeekS(@b\player4\Playername)
Debug "-----------------------------"
@ts ich war schon immer der schnellste , zumindest sagt das meine Frau immer
Bild