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

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
