STAR7 GTA San
STAR7 GTA San
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
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
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
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
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
return
:STAR7
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
: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