Einzelnen Beitrag anzeigen

Gargoyl

Registriert seit: 11. Mär 2007
69 Beiträge
 
#2

Re: [Savegame-Editor] - Problem mehr als ein Byte zu patchen

  Alt 25. Mai 2009, 14:14
Probiers mal mit diesen Änderungen. Ich hab es zwar nicht getestet (gerade kein delphi installiert), aber sollte eigentlich funktionieren.
Delphi-Quellcode:
var
  intBuffer: integer;
  ...

begin
  ...
  filDatei.Position := 3039[b]-1[/b]; // Dateizeiger an die richtige Position fahren;
  intBuffer := 1000; // Das Byte, das geschrieben werden soll
  filDatei.WriteBuffer(intBuffer, [b]2[/b]); // Byte schreiben
  ...
end;
Ich hab einige teile vom Code ausgelassen.

[EDIT]
Ok, wenn du es auf die schnelle nicht testen kannst dann habe ich ja noch Zeit kurz was dazu erklären (hätte ich vielleicht vorher schon machen sollen)

a) Die Postition muss 1 Byte vorher anfangen, da ein integer Wert 2 Bytes hat, und der höher wertige Anteil im Byte davor steht., deswegen die -1 bei der fil.Datei.Position.

b) beim schreiben natürlich auch die 2 weil ein integer 2 Byte groß ist. Man könnte auch sizeof(intBuffer) schreiben.

Anmerkung: natürlich muss das Spiel auch die Anzahl der Leben größer 255 unterstützten. Wenn der Wert für die Anzahl der Leben natürlich nur als Byte abgespeichert wird, kann man ihn natürlich auch nicht über 255 erhöhen.
[/EDIT]
  Mit Zitat antworten Zitat