Script – die besten Beiträge

Sollte das AA Script normalerweise funktionieren?

Habe extra jede Zeile kommentiert(Ehrlich jetzt, jede Zeile)

[ENABLE]

alloc(Hase, 2048, "tutorial-x86_64.exe"+4D213) Fügt die Bezeichnung Hase hinzu. 2048 Bytes werden reserviert für den Code des AA Scripts. Der exakte Prozessname ist tutorial-x86_64.exe"+4D213

label(Gans) Fügt die Bezeichnung Gans hinzu...

label(Ente) Ebenfalls eine Bezeichnung

label(Huhn) ....

label(Fuchs) ...

Hase: Bindet die Bezeichnung Hase in den Code ein

 cmp rax, EnteLeben prüft ob sich EnteLeben im rax Register befindet

 je Ente Wenn rax mit 0160ABB0 übereinstimmt springt es zu Ente weiter

Huhn: Bindet die Bezeichnung Huhn in den Code ein

 mov ecx, [rax+60] verschiebt das Register [rax+60] in Register ecx

 cmp ecx, 1 Überprüft ob sich im Register ecx der Wert 1 befindet

 jle Schaden       Springt zu Fuchs, wenn sich im Register ecx der Wert 1 oder niedriger befindet

 mov [rax+60], 1    Verschiebt den Wert 1 in Register [rax+60]. Dies trifft nur zu, wenn sich im Register ecx der Wert 2 oder höher befindet(Weil ansonsten direkt zu Fuchs gesprungen wird

Fuchs: Bindet die Bezeichnung Fuchs in den Code ein

 sub [rax+60], edx   Originaler Code der Schaden verursacht

 jmp Gans Hier endet der Code für den Gegner und es wird zu Gans: gesprungen. Ansonsten würde es sich mit den weiteren Code von Ente: vermischen.

Ente: Bindet die Bezeichnung Ente in den Code ein

 add [rax+60], 1    Spieler erhält pro Treffer 1 Lebenspunkt. Alles über Spieler: und unter Gegner: wird ignoriert., wegen der je Anweisung.

 jmp Gans Hier endet der Code für den Spieler und es wird zu Gans: gesprungen. Ansonsten vermischt er sich mit den Gans: Code

EnteLeben: Bindet die Bezeichnung EnteLeben in den Code ein

 dq 0160ABB0      EnteLeben hat die Adresse 0160ABB0 Erspart das ständige abtippen der Adresse, indem man einfach die Bezeichnung EnteLeben verwendet. Eignet sich auch gut für Pointer Adressen

"tutorial-x86_64.exe"+4D213:

 jmp Hase Springt zu alloc(Hase, 2048, "tutorial-x86_64.exe"+4D213) und arbeitet sich runter Zeile für Zeile

 nop Die übrigen Bytes werden durch eine leere Anweisung ersetzt

Gans: Das ist das Ende vom Script. Danach läuft das Spiel ganz normal weiter

[DISABLE] Solange das Script aktiviert ist, werden die unteren Zeilen ignoriert. Das dient nur dazu, falls man das Script deaktiviert, damit der ursprüngliche Code wieder benutzt werden kann. Ansonsten wird das Spiel abstürzen.

"tutorial-x86_64.exe"+4D213:

 sub [rax+60], edx Hier steht der Originale Code, der jetzt deaktiviert ist.

dealloc(Hase) Ist ebenfalls solange deaktiviert, bis man dass Script deaktiviert. Es gibt den ursprünglichen Speicherplatz wieder frei, der für das geschriebene Script verwendet wurde

Assembler, Cheat Engine, Code, Script