0% found this document useful (0 votes)
52 views

STAR7 GTA San

This document modifies the wanted level system in Grand Theft Auto: San Andreas. It removes limits on the wanted level, increases the maximum wanted stars to 11, and prevents police response from escalating beyond a single star no matter the player's actions. It also bypasses the wanted level by directly setting it to any number when certain cheat codes are entered.

Uploaded by

Nine Kao
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
52 views

STAR7 GTA San

This document modifies the wanted level system in Grand Theft Auto: San Andreas. It removes limits on the wanted level, increases the maximum wanted stars to 11, and prevents police response from escalating beyond a single star no matter the player's actions. It also bypasses the wanted level by directly setting it to any number when certain cheat codes are entered.

Uploaded by

Nine Kao
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 11

{$CLEO}

0000: STAR8

REPEAT
wait 250
UNTIL 0256: player $PLAYER_CHAR defined

WHILE TRUE
wait 0
IF 0AA9: is_game_version_original
THEN
BREAK
END
END

0AC6: 31@ = label @rawData offset

REPEAT
wait 0
0AF0: 0@ = get_int_from_ini_file "CLEO/WantedLevelEditor.ini" section "MISC"
key "MAX_STARS_LIMIT"
UNTIL 0@ <> -0x80000000

31@ += 1000
0A8C: write_memory 31@ size 4 value 0@ virtual_protect 0
31@ -= 1000

CONST
MAX_CHAOS = 0xFFFF // 2 bytes
END

0A8D: 7@ = read_memory 0x438513 size 4 virtual_protect 0 // _cheatStringHashes


7@ += 0x14
0A8C: write_memory 7@ size 4 value 0 virtual_protect 0 // TURNDOWNTHEHEAT 0
[ASNAEB]

0A8D: 7@ = read_memory 0x438513 size 4 virtual_protect 0 // _cheatStringHashes


7@ += 0x108
0A8C: write_memory 7@ size 4 value 0 virtual_protect 0 // BRINGITON 6
[LJSPQK]

0A24: enable_military_zones_wanted_level 0
gosub @MAX_STARS_LIMIT
0A8C: write_memory 0x72DF2A size 1 value 7@ virtual_protect 0 // military zone WL

6@ = 0x969110 // buffer

0A8D: 7@ = read_memory 0x561C7C size 4 virtual_protect 0 //


_maxWantedChaos
0A8C: write_memory 7@ size 2 value MAX_CHAOS virtual_protect 0 // 0x23F0
0A8C: write_memory 0x561EFD size 4 value MAX_CHAOS virtual_protect 0

0A8D: 11@ = read_memory 0x48CB53 size 4 virtual_protect 0 // _maxWantedStars


gosub @MAX_STARS_LIMIT
0A8C: write_memory 11@ size 4 value 7@ virtual_protect 0 // 0x06
0A8C: write_memory 0x561C76 size 4 value 7@ virtual_protect 0 // 0x06
0A8C: write_memory 0x561EF3 size 4 value 7@ virtual_protect 0 // 0x06
0A8C: write_memory 0x58DFE4 size 1 value 7@ virtual_protect 1 // ;
Draw2D::WantedLevel
0A8C: write_memory 0x4396F1 size 1 value 7@ virtual_protect 1 // ;
_cheatSixWantedStars
0A8C: write_memory 0x41CAB0 size 4 value 0x7B870F virtual_protect 1 // ;
CCarAI::FindPoliceCarSpeedForWantedLevel ja loc_41CB31 (jump change)

0A8C: write_memory 0x561E77 size 4 value 0x70870F virtual_protect 1 // ;


CWanted::SetMaximumWantedLevel ja loc_561EED (jump change)
0A8C: write_memory 0x561FB6 size 2 value 0x9090 virtual_protect 0 // ;
CWanted::NumOfHelisRequired jg short loc_561FA6 (NOP)
0A8C: write_memory 0x5624A4 size 2 value 0x5277 virtual_protect 1 // ;
CWanted::SetWantedLevel ja loc_5624F8 (jump change)

0A8C: write_memory 0x6C74E3 size 2 value 0x2377 virtual_protect 1 // ;


CHeli::ProcessControl
0A8C: write_memory 0x41FD01 size 2 value 0x0E77 virtual_protect 1 // ;
CCarAI::UpdateCarAI
0A8C: write_memory 0x41C9E0 size 2 value 0x2977 virtual_protect 1 // ;
sub_41C9D0
0A8C: write_memory 0x41CB80 size 2 value 0x4F77 virtual_protect 1 // ;
sub_41CB70
0A8C: write_memory 0x4352F1 size 2 value 0x0E77 virtual_protect 1 // ;
0A8C: write_memory 0x435331 size 2 value 0x0E77 virtual_protect 1 // ;

9@ = 0

WHILE TRUE
wait 0
0AF0: 7@ = get_int_from_ini_file "CLEO/WantedLevelEditor.ini" section "MISC"
key "MAX_STARS_LIMIT"
IF 7@ <> -0x80000000
THEN
IF 0x0C > 7@
THEN
0A8C: write_memory 0x561C76 size 4 value 7@ virtual_protect 0 //
0x06
0A8C: write_memory 0x561EF3 size 4 value 7@ virtual_protect 0 //
0x06
0A8C: write_memory 0x58DFE4 size 1 value 7@ virtual_protect 1 // ;
Draw2D::WantedLevel
ELSE
0A8C: write_memory 0x561C76 size 4 value 11 virtual_protect 0 //
0x06
0A8C: write_memory 0x561EF3 size 4 value 11 virtual_protect 0 //
0x06
0A8C: write_memory 0x58DFE4 size 1 value 11 virtual_protect 1 // ;
Draw2D::WantedLevel
END

IF OR
7@ == 4
7@ == 5
THEN
0A8C: write_memory 0x561F83 size 1 value 7@ virtual_protect 1
0A8C: write_memory 0x561F63 size 1 value 7@ virtual_protect 1
0A8C: write_memory 0x561F43 size 1 value 7@ virtual_protect 1
ELSE
0A8C: write_memory 0x561F83 size 1 value 6 virtual_protect 1
0A8C: write_memory 0x561F63 size 1 value 5 virtual_protect 1
0A8C: write_memory 0x561F43 size 1 value 4 virtual_protect 1
END

// gosub @CheckWantedStar
// 0AF0: 7@ = get_int_from_ini_file "CLEO/WantedLevelEditor.ini" section
"MISC" key "MAX_STARS_LIMIT"
// IF 001D: 2@ > 7@
// THEN
// 0A8C: write_memory 0x969110 size 1 value 2@ virtual_protect 0
// 0A8C: write_memory 0x969111 size 4 value 0x52415453 virtual_protect
0
// END
END

gosub @BribeCheck
0A8D: 7@ = read_memory 0x558E5C size 4 virtual_protect 0 //
_playerStatsInteger
7@ += 0x2D8 // 0xB6 * 0x04 = 0x2D8
0A8D: 7@ = read_memory 7@ size 4 virtual_protect 0 //
_playerStatsInteger.NumOfPoliceBribesCollected
IF 003B: 7@ == 8@
THEN
IF 010F: player $PLAYER_CHAR wanted_level > 5
THEN
gosub @CheckWantedChaos
1@ -= 2500
0A8C: write_memory 0@ size 4 value 1@ virtual_protect 0
9@ = 0
END
END

gosub @CheckWantedChaos
IF 1@ >= MAX_CHAOS
THEN
gosub @CheckWantedStar
31@ += 1000
0A8D: 7@ = read_memory 31@ size 4 virtual_protect 0
31@ -= 1000
IF 803B: NOT 2@ == 7@
THEN
gosub @max_stars
END
ELSE
gosub @CheckWantedChaos
IF 1@ >= 16700
THEN
gosub @CheckWantedStar
IF 2@ <> 11
THEN
gosub @STAR11
END
ELSE
gosub @CheckWantedChaos
IF 1@ >= 14200
THEN
gosub @CheckWantedStar
IF 2@ <> 10
THEN
gosub @STAR10
END
ELSE
gosub @CheckWantedChaos
IF 1@ >= 11700
THEN
gosub @CheckWantedStar
IF 2@ <> 9
THEN
gosub @STAR9
END
ELSE
gosub @CheckWantedChaos
IF 1@ >= 9200
THEN
gosub @CheckWantedStar
IF 2@ <> 8
THEN
gosub @STAR8
END
ELSE
gosub @CheckWantedChaos
IF 1@ >= 6700
THEN
gosub @CheckWantedStar
IF 2@ <> 7
THEN
gosub @STAR7
END
ELSE
IF 1@ >= 4600
THEN
gosub @CheckWantedStar
IF 2@ <> 6
THEN
gosub @CheckWantedChaos
gosub @STAR6
END
END
END
END
END
END
END
END

0A8D: 7@ = read_memory 0x72D6B8 size 4 virtual_protect 0 // ;


CCullZones::CurrentFlags_Player
7@ += 1
0A8D: 7@ = read_memory 7@ size 4 virtual_protect 0
IF 7@ == 0x10 // 0x10 = militaryZone
THEN
gosub @CheckWantedStar
31@ += 1000
0A8D: 7@ = read_memory 31@ size 4 virtual_protect 0
31@ -= 1000
IF 803B: NOT 2@ == 7@
THEN
gosub @max_stars
END
END

IF OR
0ADC: test_cheat "MAXWANTED"
0ADC: test_cheat "BRINGITON"
0ADC: test_cheat "LJSPQK"
THEN
gosub @CheckWantedStar
31@ += 1000
0A8D: 7@ = read_memory 31@ size 4 virtual_protect 0
31@ -= 1000
IF 803B: NOT 2@ == 7@
THEN
03E5: text_box 'CHEAT5'
gosub @max_stars
END
ELSE
IF 0ADC: test_cheat "11STARS"
THEN
gosub @CheckWantedStar
IF 2@ <> 11
THEN
03E5: text_box 'CHEAT5'
gosub @STAR11
END
ELSE
IF 0ADC: test_cheat "10STARS"
THEN
gosub @CheckWantedStar
IF 2@ <> 10
THEN
03E5: text_box 'CHEAT5'
gosub @STAR10
END
ELSE
IF 0ADC: test_cheat "STAR9"
THEN
gosub @CheckWantedStar
IF 2@ <> 9
THEN
03E5: text_box 'CHEAT5'
gosub @STAR9
END
ELSE
IF 0ADC: test_cheat "STAR8"
THEN
gosub @CheckWantedStar
IF 2@ <> 8
THEN
03E5: text_box 'CHEAT5'
gosub @STAR8
END
ELSE
IF 0ADC: test_cheat "STAR7"
THEN
gosub @CheckWantedStar
IF 2@ <> 7
THEN
03E5: text_box 'CHEAT5'
gosub @STAR7
END
ELSE
IF 0ADC: test_cheat "STAR6"
THEN
gosub @CheckWantedStar
IF 2@ <> 6
THEN
03E5: text_box 'CHEAT5'
gosub @CheckWantedChaos
gosub @STAR6
END
ELSE
IF 0ADC: test_cheat "STAR5"
THEN
gosub @CheckWantedStar
IF 2@ <> 5
THEN
010D: set_player $PLAYER_CHAR
wanted_level_to 5
END
ELSE
IF 0ADC: test_cheat "STAR4"
THEN
gosub @CheckWantedStar
IF 2@ <> 4
THEN
010D: set_player $PLAYER_CHAR
wanted_level_to 4
END
ELSE
IF 0ADC: test_cheat "STAR3"
THEN
gosub @CheckWantedStar
IF 2@ <> 3
THEN
010D: set_player $PLAYER_CHAR
wanted_level_to 3
END
ELSE
IF 0ADC: test_cheat "STAR2"
THEN
gosub @CheckWantedStar
IF 2@ <> 2
THEN
010D: set_player $PLAYER_CHAR
wanted_level_to 2
END
ELSE
IF 0ADC: test_cheat "STAR1"
THEN
gosub @CheckWantedStar
IF 2@ <> 1
THEN
010D: set_player
$PLAYER_CHAR wanted_level_to 1
END
ELSE
IF OR
0ADC: test_cheat "CLEAR"
0ADC: test_cheat "ASNAEB"
0ADC: test_cheat
"TURNDOWNTHEHEAT"
THEN
gosub @CheckWantedStar
IF 2@ <> 0
THEN
010D: set_player
$PLAYER_CHAR wanted_level_to 0
END
END
END
END
END
END
END
END
END
END
END
END
END
END
END

:CheckWantedChaos
0A96: 0@ = actor $PLAYER_ACTOR struct
0@ += 0x480
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
0@ += 0
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
0@ += 0
0A8D: 1@ = read_memory 0@ size 4 virtual_protect 0
return

:CheckWantedStar
0A96: 0@ = actor $PLAYER_ACTOR struct
0@ += 0x480
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
0@ += 0
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
0@ += 0x2C
0A8D: 2@ = read_memory 0@ size 1 virtual_protect 0
return

:default
0A8C: write_memory 0x561CA6 size 4 value 4600 virtual_protect 0 // ;
CWanted::UpdateWantedLevel 4600 6thStarChaos
0A8C: write_memory 0x5624FA size 4 value 4620 virtual_protect 0 // ;
CWanted::SetWantedLevel 4620 6thStarChaos
0A8C: write_memory 0x561CD0 size 1 value 6 virtual_protect 0 // ; FNC

return

:STAR6
0A8C: write_memory 0@ size 4 value 4620 virtual_protect 0

0A8C: write_memory 0x561CA6 size 4 value 4600 virtual_protect 0 // ;


CWanted::UpdateWantedLevel 4600 6thStarChaos
0A8C: write_memory 0x5624FA size 4 value 4620 virtual_protect 0 // ;
CWanted::SetWantedLevel 4620 6thStarChaos
0A8C: write_memory 0x561CD0 size 1 value 6 virtual_protect 0 // ; FNC

010D: set_player $PLAYER_CHAR wanted_level_to 6

return

:STAR7

0A8C: write_memory 0x561CA6 size 4 value 7100 virtual_protect 0 // ;


CWanted::UpdateWantedLevel 4600 6thStarChaos
0A8C: write_memory 0x5624FA size 4 value 7120 virtual_protect 0 // ;
CWanted::SetWantedLevel 4620 6thStarChaos
0A8C: write_memory 0x561CD0 size 1 value 7 virtual_protect 0 // ; FNC

010D: set_player $PLAYER_CHAR wanted_level_to 7

return

:STAR8
0A8C: write_memory 0x561CA6 size 4 value 9600 virtual_protect 0 // ;
CWanted::UpdateWantedLevel 4600 6thStarChaos
0A8C: write_memory 0x5624FA size 4 value 9620 virtual_protect 0 // ;
CWanted::SetWantedLevel 4620 6thStarChaos
0A8C: write_memory 0x561CD0 size 1 value 8 virtual_protect 0 // ; FNC
010D: set_player $PLAYER_CHAR wanted_level_to 8
return

:STAR9
0A8C: write_memory 0x561CA6 size 4 value 12100 virtual_protect 0 // ;
CWanted::UpdateWantedLevel 4600 6thStarChaos
0A8C: write_memory 0x5624FA size 4 value 12120 virtual_protect 0 // ;
CWanted::SetWantedLevel 4620 6thStarChaos
0A8C: write_memory 0x561CD0 size 1 value 9 virtual_protect 0 // ; FNC
010D: set_player $PLAYER_CHAR wanted_level_to 9
return

:STAR10
0A8C: write_memory 0x561CA6 size 4 value 14600 virtual_protect 0 // ;
CWanted::UpdateWantedLevel 4600 6thStarChaos
0A8C: write_memory 0x5624FA size 4 value 14620 virtual_protect 0 // ;
CWanted::SetWantedLevel 4620 6thStarChaos
0A8C: write_memory 0x561CD0 size 1 value 10 virtual_protect 0 // ; FNC
010D: set_player $PLAYER_CHAR wanted_level_to 10
return

:STAR11
0A8C: write_memory 0x561CA6 size 4 value 17100 virtual_protect 0 // ;
CWanted::UpdateWantedLevel 4600 6thStarChaos
0A8C: write_memory 0x5624FA size 4 value 17100 virtual_protect 0 // ;
CWanted::SetWantedLevel 4620 6thStarChaos
0A8C: write_memory 0x561CD0 size 1 value 11 virtual_protect 0 // ; FNC
010D: set_player $PLAYER_CHAR wanted_level_to 11
return

:max_stars
0A8C: write_memory 0x561CA6 size 4 value MAX_CHAOS virtual_protect 0 // ;
CWanted::UpdateWantedLevel 4600 6thStarChaos
0A8C: write_memory 0x5624FA size 4 value MAX_CHAOS virtual_protect 0 // ;
CWanted::SetWantedLevel 4620 6thStarChaos

31@ += 1000
0A8D: 7@ = read_memory 31@ size 4 virtual_protect 0
31@ -= 1000

0A8C: write_memory 0x561CD0 size 1 value 7@ virtual_protect 0 // ; FNC


010D: set_player $PLAYER_CHAR wanted_level_to 7@
0A8C: write_memory 0x72DF2A size 1 value 7@ virtual_protect 0 // military zone WL
return

:BribeCheck
IF 9@ <> 1
THEN
0A8D: 7@ = read_memory 0x558E5C size 4 virtual_protect 0 //
_playerStatsInteger
7@ += 0x2D8 // 0xB6 * 0x04 = 0x2D8
0A8D: 7@ = read_memory 7@ size 4 virtual_protect 0 //
_playerStatsInteger.NumOfPoliceBribesCollected
0085: 8@ = 7@
8@ ++
9@ = 1
END
return

:MAX_STARS_LIMIT
31@ += 1000
0A8D: 7@ = read_memory 31@ size 4 virtual_protect 0
31@ -= 1000
return

:SetMaximumWantedLevel
return

//WHILE TRUE
// wait 0
// gosub @BribeCheck
// 0A8D: 7@ = read_memory 0x558E5C size 4 virtual_protect 0 //
_playerStatsInteger
// 7@ += 0x2D8 // 0xB6 * 0x04 = 0x2D8
// 0A8D: 7@ = read_memory 7@ size 4 virtual_protect 0 //
_playerStatsInteger.NumOfPoliceBribesCollected
// IF 003B: 7@ == 8@
// THEN
// IF 010F: player $PLAYER_CHAR wanted_level > 5
// THEN
// gosub @CheckWantedChaos
// 1@ -= 2500
// 0A8C: write_memory 0@ size 4 value 1@ virtual_protect 0
// 9@ = 0
// END
// END
//
// gosub @CheckWantedStar
// IF 2@ > 5
// THEN
// IF 21 > 30@
// THEN
// 30@ ++
// ELSE
// 30@ = 0
// END
//
// IF 29 > 29@
// THEN
// 29@ += 2
// ELSE
// 29@ = 0
// END
//
// 0085: 7@ = 30@
// 0085: 11@ = 29@
// 005A: 7@ += 11@
// 7@ *= 770 // 7@ chosenChaos
// gosub @CheckWantedChaos // 1@ currentChaos
//
// 0085: 11@ = 7@
// 11@ -= 2310 // 11@ -chosenChaos
//
// 0085: 13@ = 7@
// 13@ += 2310 // 13@ +chosenChaos
//
// gosub @CheckWantedChaos // 1@ currentChaos
// IF AND
// 002D: 1@ >= 11@
// 001D: 13@ > 1@
// THEN
// 0085: 13@ = 7@
// 13@ += 20
// 0A8C: write_memory 0@ size 4 value 13@ virtual_protect 0
// 0A8C: write_memory 0x561CA6 size 4 value 7@ virtual_protect 0 //
; CWanted::UpdateWantedLevel 4600 6thStarChaos
// 0A8C: write_memory 0x5624FA size 4 value 13@ virtual_protect 0 //
; CWanted::SetWantedLevel 4620 6thStarChaos
// 0A8C: write_memory 0x561CD0 size 1 value 30@ virtual_protect 0 //
; FNC
// 010D: set_player $PLAYER_CHAR wanted_level_to 30@
// END
// END
//END

// gosub @CheckWantedChaos
// 0085: 7@ = 31@
// 7@ += 1000
// 0A8D: 7@ = read_memory 7@ size 4 virtual_protect 0 // MAX_STARS_LIMIT
// 7@ *= 4
//
// 0085: 11@ = 31@
// 005A: 11@ += 7@
// 0A8D: 11@ = read_memory 11@ size 4 virtual_protect 0 // MAX_CHAOS base on
MAX_STARS_LIMIT
// 7@ /= 4 // MAX_STARS_LIMIT

// gosub @CheckWantedStar
// IF 2@ <> 7@
// THEN
// 11@ += 500
// 0A8C: write_memory 0x561CA6 size 4 value 11@ virtual_protect 0 // ;
CWanted::UpdateWantedLevel 4600 6thStarChaos
// 11@ += 20
// 0A8C: write_memory 0x5624FA size 4 value 11@ virtual_protect 0 // ;
CWanted::SetWantedLevel 4620 6thStarChaos
// 0A8C: write_memory 0x561CD0 size 1 value 7@ virtual_protect 0 // ;
FNC
// 010D: set_player $PLAYER_CHAR wanted_level_to 7@
// END
//END

:rawData
HEX
00 00 00 00 00 00 32 00 00 00 B4 00 00 00 26 02 00 00 B0 04 00 00 60 09 00 00
F8 11 00 00 BC 1B 00 00 80 25 00 00 44 2F 00 00 08 39 00 00 CC 42
00 00 90 4C 00 00 54 56 00 00 18 60 00 00 DC 69 00 00 A0 73 00 00 64 7D 00 00
28 87 00 00 EC 90 00 00 B0 9A
END

You might also like