Home of Gamehacking - Archiv

Normale Version: Teleporter
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4
Moin, ich mal wieder :rolleyes:
Mit 2 kleinen Fragen (für euch)

1. Kann man den Teleporter so machen das er beim drücken einer Taste sich dort hin Teleportiert wo das Fadenkreuz hin zeigt?


2. Ich möchte mit einer taste 5 verschiedene Koordinaten Punkte ab springen.
Z.b. F1 gedrückt spring zu Punkt 1 erneutes drücken zu Punkt 2 usw....
ist das auch möglich?


Danke für eure Hilfe...
(16.10.2011, 15:51)chesar schrieb: [ -> ]1. Kann man den Teleporter so machen das er beim drücken einer Taste sich dort hin Teleportiert wo das Fadenkreuz hin zeigt?


2. Ich möchte mit einer taste 5 verschiedene Koordinaten Punkte ab springen.
Z.b. F1 gedrückt spring zu Punkt 1 erneutes drücken zu Punkt 2 usw....
ist das auch möglich?


Danke für eure Hilfe...
Hey,
1. Kann umgesetzt werden, ist jedoch extrem schwierig und aufwendig. Du müsstest erst einmal die Struktur des eigenen Spielers reversen und danach berechnen wie weit du dich überhaupt teleportieren willst. Außerdem müsste gecheckt werden ob du dich nicht in eine Wand teleportiertst, sondern davor oder dahinter.

2. Das ist etwas einfacher möglich. Du deklarierst einfach eine Variable und bei jedem Aufruf der Funktion erhöhst du sie einfach um 1. Danach checkst du nur noch den Wert der Variablen und handelst dann dementsprechend.

z.B so:

Code:
i = 0

Funktion1
if i = 0
teleport position 1
i = i +1
break
if i = 1
teleport position 2
i = i +1
break
u.s.w.
Funktion1 ende

Dachte ich mir das 1. schwieriger sein wird.

Aber erkläre mir doch bitte mal 2. genauer :rolleyes:
ja das würde mich auch brennend interessieren wie mann das umsetzen kann (muss)
die bedeutung der if these ist mir auch von c+ bekannt also habe schon mal was drüber gelesen.
könntest mir das mal genauer erklären bitte?
Hey,
also das ist im Prinzip relativ einfach.
Ich gehe jetzt davon aus, dass du das in einem Spiel umsetzen möchtest (per Inline-Asm).
Zunächst musst du die Koordinaten, zu denen du dich teleportieren willst, in freiem Speicherraum unterbringen. Also sagen wir jetzt mal 40400 ist unser freier Speicher. Dann können wir in 40400 die x-Koordinate, in 40404 die Y-Koordinate und in 40408 die Z-Koordinate Speichern. An einer Stelle im Spielcode, die ständig durchlaufen wird, bringen wir jetzt unseren eigenen Code an.
Hier mal nen mögliches CE-Script:

Code:
alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(originalcode)
label(exit)
//weitere lables für newmem2 u.s.w einfügen

newmem: //this is allocated memory, you have read,write,execute access
//Koordinaten schreiben
pushfd
cmp [40500], 1 //Hilfsvariable, damit wir die Koordinaten nicht ständig schreiben
je newmem2
mov [40500], 1
mov [40400], x_coord[1]
mov [40404], y_coord[1]
mov [40408], z_coord[1]
mov [40412], x_coord[2]
.
.
.
popfd

newmem2:
popfd
pushad //registers speichern
pushfd //flags speichern
push 'F1' //keine Ahnung ob CE F1 "kennt"
call GetAsyncKeyState
//Taste gedrückt?
shr ax,#15
cmp ax,1
jne originalcode //Taste nicht gedrückt
cmp [40600], 0 //40600 = counter variable
je first_f1
cmp [40600], 1 //Counter einmal erhöht --> zweite Koordinaten
je second_f1
//usw.
//
//irgendwann muss der counter natürlich wieder auf 0 gesetzt werden


first_f1:
//counter erhöhen
mov eax, [40600]
inc eax
mov [40600], eax
//Teleport cheat
mov game_xcoord, [40400]
mov game_ycoord, [40404]
mov game_zcoord, [40408]
popfd //Register und flags wiederherstellen
popad
jmp originalcode

second_f1:
//siehe first_f1


originalcode:
//originaler code

exit:
jmp returnhere

"Spiel.exe"+99999:
jmp newmem
nop
returnhere:

danke ist echt super erklärt Wink
Seiten: 1 2 3 4