Autor Beitrag
gamer94
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 41

Win7 HP, WinXP
Delphi 7 Pers.
BeitragVerfasst: Fr 18.05.12 20:03 
Edit: Hat sich erledigt, habe es so gemacht wie ich unten beschrieben habe.

Guten Abend,
ich habe für ein (eher betagtes) Rennspiel ein Programm geschrieben, dass Kleinkram erledigt wie z.B. das HUD auszublenden.
Nun habe ich mich gefragt inwieweit ein CamHack realisierbar wäre, also die Kameraposition zu ändern. Die Position wird für jeden Frame anhand der Autoposition berechnet und besteht aus 2 Punkten (á 3 Koordinaten): Die Kamera selbst und ein Punkt auf den die Kamera ausgerichtet ist.
Nun würde ich diese Werte gerne ändern, die Holzhammermethode (per Timer alle paar Millisekunden die Werte umschreiben) aber sehr gerne vermeiden, das Ergebnis kann man meist ja sowieso vergessen.
Alternative: Ich müsste, wenn die neuen Positionen vom Spiel berechnet sind (die Adresse wo der letzte Befehl der Funktion steht kenne ich), mich einhaken, meine eigenen Werte in den Speicher schreiben und zurückspringen.

Wie wäre das am sinnvollsten zu machen? Die Funktion die meine Werte berechnet in Assembler schreiben, in zusätzlich allozierten (heißt das so auf deutsch?) Speicher schreiben. Dann, nachdem die vom Spiel berechneten Werte im Speicher stehen, per JMP zu meinem Code springen und nach meinem Code wieder ein JMP zurück?
Für diese Methode müsste ich aber Assembler (besser) können und außerdem irgendwie mit meinem Programm kommunizieren um herauszufinden, wie die Kamera positioniert werden soll (wird ja vom User vorgegeben).

Ist das so sinnvoll/funktioniert das oder kann man das besser machen?

Ich will nicht anfangen mich stundenlang in einer dummen Idee zu verrennen. ;)

lg gamer94