Attention! This topic gives example on cheats scripts, allowing you to test and see how ones work.
There are a couple of ways of creating you're own cheats in game. The most easiest way for beginners is by using CLEO opcodes 0A8C: and 0A8D:
Using the original method
Here is a demo script which shows the way they work, type the following cheat to test how
they work.
The cheat address starts at "0x969110" max for one line is 4 letters, if you want more you
need to expand the address using a different var for it.
So if the cheat is more than four letters the next time you use opcode
0A8D: the address will be "0x969114" the third parameter of opcode 0ABD: is the number
of letters it holds.
Here is a script, this script shows all different ways of cheats with using CLEO opcodes.
List of ASCII letter codes:
For more explanation see these two topics:
http://www.gtaforums.com/index.php?showtopic=391453&st=20
http://www.gtaforums.com/index.php?showtopic=262280
There are a couple of ways of creating you're own cheats in game. The most easiest way for beginners is by using CLEO opcodes 0A8C: and 0A8D:
Using the original method
Here is a demo script which shows the way they work, type the following cheat to test how
they work.
- Code:
{$CLEO}
0000:
// Example of cheats
// Testing 4 letter cheat
// Type "hack"
:Cheat_01
0001: wait 0 ms
0006: 29@ = -0x38214
00D6: if
0038: &0(29@,1i) == 0x4841434B
004D: jump_if_false @Cheat_02
0004: &0(29@,1i) = 0x48414300
03E5: show_text_box 'CHEAT1' // Cheat activated
0002: jump @Cheat_01
// Testing 6 letter cheat
// Type "cheats"
:Cheat_02
0006: 30@ = -0x38213
008B: 30@ = &0(30@,1i) // (int)
0085: 31@ = 30@ // (int)
0016: 31@ /= 0x10000
0012: 31@ *= 0x10000
0062: 30@ -= 31@ // (int)
00D6: if
0039: 30@ == 0x4348
004D: jump_if_false @Cheat_03
0006: 30@ = -0x38214
00D6: if
0038: &0(30@,1i) == 0x45415453
004D: jump_if_false @Cheat_03
0004: &0(30@,1i) = 0x45415400
03E5: show_text_box 'CHEAT1' // Cheat activated
0002: jump @Cheat_01
// Testing 8 letter cheat
// Type "Scriptin"
:Cheat_03
0006: 28@ = -0x38213
00D6: if
0038: &0(28@,1i) == 0x53435249
004D: jump_if_false @Cheat_04
0006: 28@ = -0x38214
00D6: if
0038: &0(28@,1i) == 0x5054494E
004D: jump_if_false @Cheat_04
0004: &0(28@,1i) = 0x50544900
03E5: show_text_box 'CHEAT1' // Cheat activated
0002: jump @Cheat_01
// Testing 10 letter cheat
// Type "Memoryhack"
:Cheat_04
0006: 20@ = -0x38212
008B: 20@ = &0(20@,1i) // (int)
0085: 21@ = 20@ // (int)
0016: 21@ /= 0x10000
0012: 21@ *= 0x10000
0062: 20@ -= 21@ // (int)
00D6: if
0039: 20@ == 0x4D45
004D: jump_if_false @Cheat_05
0006: 20@ = -0x38213
00D6: if
0038: &0(20@,1i) == 0x4D4F5259
004D: jump_if_false @Cheat_05
0006: 20@ = -0x38214
00D6: if
0038: &0(20@,1i) == 0x4841434B
004D: jump_if_false @Cheat_05
0004: &0(20@,1i) = 0x48414300
03E5: show_text_box 'CHEAT1' // Cheat activated
0002: jump @Cheat_01
// Testing 12 letter cheat
// Type "SannyBuilder"
:Cheat_05
0006: 27@ = -0x38212
00D6: if
0038: &0(27@,1i) == 0x53414E4E
004D: jump_if_false @Cheat_01
0006: 27@ = -0x38213
00D6: if
0038: &0(27@,1i) == 0x59425549
004D: jump_if_false @Cheat_01
0006: 27@ = -0x38214
00D6: if
0038: &0(27@,1i) == 0x4C444552
004D: jump_if_false @Cheat_01
0004: &0(27@,1i) = 0x4C444500
03E5: show_text_box 'CHEAT1' // Cheat activated
0002: jump @Cheat_01
The cheat address starts at "0x969110" max for one line is 4 letters, if you want more you
need to expand the address using a different var for it.
So if the cheat is more than four letters the next time you use opcode
0A8D: the address will be "0x969114" the third parameter of opcode 0ABD: is the number
of letters it holds.
Here is a script, this script shows all different ways of cheats with using CLEO opcodes.
- Code:
{$CLEO}
0000:
// Example of cheats
// Testing 4 letter cheat
// Type "test"
:4_Letter
0001: wait 0 ms
0A8D: 0@ = read_memory 0x00969110 size 4 virtual_protect 0
00D6: if
04A4: 0@ == 0x54455354
004D: jump_if_false @8_Letter
03E5: show_text_box 'CHEAT1'
0A8C: write_memory 0x00969110 size 4 value 0x0 virtual_protect 0
0002: jump @Restart
// Testing 8 letter cheat
// Type "SannyBui"
:8_Letter
0A8D: 1@ = read_memory 0x00969110 size 4 virtual_protect 0
0A8D: 2@ = read_memory 0x00969114 size 4 virtual_protect 0
00D6: if and
04A4: 1@ == 0x59425549 // ybui
04A4: 2@ == 0x53414E4E // sann
004D: jump_if_false @6_Letter
03E5: show_text_box 'CHEAT1'
0A8C: write_memory 0x00969110 size 4 value 0x0 virtual_protect 0
0A8C: write_memory 0x00969114 size 4 value 0x0 virtual_protect 0
0002: jump @Restart
// Testing 6 letter cheat
// Type "Memory"
:6_Letter
0A8D: 3@ = read_memory 0x00969110 size 4 virtual_protect 0
0A8D: 4@ = read_memory 0x00969114 size 2 virtual_protect 0
00D6: if and
04A4: 3@ == 0x4D4F5259 // mory
04A4: 4@ == 0x4D45 // me
004D: jump_if_false @7_Letter
03E5: show_text_box 'CHEAT1'
0A8C: write_memory 0x00969110 size 4 value 0x0 virtual_protect 0
0A8C: write_memory 0x00969114 size 2 value 0x0 virtual_protect 0
0002: jump @Restart
// Testing 7 letter cheat
// Type "hacking"
:7_Letter
0A8D: 5@ = read_memory 0x00969110 size 4 virtual_protect 0
0A8D: 6@ = read_memory 0x00969114 size 2 virtual_protect 0
0A8D: 7@ = read_memory 0x00969116 size 1 virtual_protect 0
00D6: if and
04A4: 5@ == 0x4B494E47 // king
04A4: 6@ == 0x4143 // ac
04A4: 7@ == 0x48 // h
004D: jump_if_false @Restart
0A8C: write_memory 0x00969110 size 4 value 0x0 virtual_protect 0
0A8C: write_memory 0x00969114 size 2 value 0x0 virtual_protect 0
0A8C: write_memory 0x00969116 size 1 value 0x0 virtual_protect 0
03E5: show_text_box 'CHEAT1'
:Restart
0001: wait 2000 ms
0002: jump @4_Letter
List of ASCII letter codes:
- Code:
Oct Dec Hex Glyph
100 64 40 @
101 65 41 A
102 66 42 B
103 67 43 C
104 68 44 D
105 69 45 E
106 70 46 F
107 71 47 G
110 72 48 H
111 73 49 I
112 74 4A J
113 75 4B K
114 76 4C L
115 77 4D M
116 78 4E N
117 79 4F O
120 80 50 P
121 81 51 Q
122 82 52 R
123 83 53 S
124 84 54 T
125 85 55 U
126 86 56 V
127 87 57 W
130 88 58 X
131 89 59 Y
132 90 5A Z
133 91 5B [
134 92 5C \
135 93 5D ]
136 94 5E ^
137 95 5F _
For more explanation see these two topics:
http://www.gtaforums.com/index.php?showtopic=391453&st=20
http://www.gtaforums.com/index.php?showtopic=262280