Hi, can anyone help me revise the old code to version 4, I can't compile it. Thank !!!
https://ugbase.eu/threads/cleo-automatically-mark-the-red-checkpoints.17583/
https://ugbase.eu/threads/cleo-automatically-mark-the-red-checkpoints.17583/
CSS:
{$CLEO .cs}
THREAD 'RACECPMARKER'
WAIT 5000 // WAIT UNTIL SAMP INIT??
WHILE TRUE
WAIT 0
IF
KEY_DOWN 77 // KEY "M"
THEN
IF
call @is_racecp_active 0
THEN
call @get_racecp_pos 0 X 0@ Y 1@ Z $NOT_USED
call @setTargetMarker 3 x 0@ y 1@ z 0.0
END
END
END
:is_racecp_active
// 0AB1: @is_racecp_active 0
IF 0AA2: 31@ = loadlib "samp.dll"
THEN
0AB1: @get_samp_version_id 0 _returned: ID 17@
IF 17@ > 0
THEN
IF 17@ == 1 // 0.3.7 R1
THEN
0A8E: 30@ = 31@ + 0x21A10C // SAMP_MISC_INFO_OFFSET
0A8D: 30@ = readMem 30@ sz 4 vp 0
30@ += 0x49 // SAMP_CHECKPOINT_ACTIVE_OFFSET
0A8D: 30@ = readMem 30@ sz 4 vp 0
END
IF 17@ == 2 // 0.3.7 R2
THEN
0A8E: 30@ = 31@ + 0x21A114 // SAMP_MISC_INFO_OFFSET
0A8D: 30@ = readMem 30@ sz 4 vp 0
30@ += 0x29 // SAMP_CHECKPOINT_ACTIVE_OFFSET
0A8D: 30@ = readMem 30@ sz 4 vp 0
END
IF 17@ == 3 // 0.3.DL
THEN
0A8E: 30@ = 31@ + 0x2ACA3C // SAMP_MISC_INFO_OFFSET
0A8D: 30@ = readMem 30@ sz 4 vp 0
30@ += 0x29 // SAMP_CHECKPOINT_ACTIVE_OFFSET
0A8D: 30@ = readMem 30@ sz 4 vp 0
END
IF 17@ == 4 // 0.3.7 R3
THEN
0A8E: 30@ = 31@ + 0x26E8F4 // SAMP_MISC_INFO_OFFSET
0A8D: 30@ = readMem 30@ sz 4 vp 0
30@ += 0x29 // SAMP_CHECKPOINT_ACTIVE_OFFSET
0A8D: 30@ = readMem 30@ sz 4 vp 0
END
IF 17@ == 5 // 0.3.7 R4
THEN
0A8E: 30@ = 31@ + 0x26EA24 // SAMP_MISC_INFO_OFFSET
0A8D: 30@ = readMem 30@ sz 4 vp 0
30@ += 0x29 // SAMP_CHECKPOINT_ACTIVE_OFFSET
0A8D: 30@ = readMem 30@ sz 4 vp 0
END
IF 17@ == 6 // 0.3.7 R4 - v2
THEN
0A8E: 30@ = 31@ + 0x26EA24 // SAMP_MISC_INFO_OFFSET
0A8D: 30@ = readMem 30@ sz 4 vp 0
30@ += 0x4D // SAMP_CHECKPOINT_ACTIVE_OFFSET
0A8D: 30@ = readMem 30@ sz 4 vp 0
END
IF 17@ == 7 // 0.3.7 R5
THEN
0A8E: 30@ = 31@ + 0x26EBAC // SAMP_MISC_INFO_OFFSET
0A8D: 30@ = readMem 30@ sz 4 vp 0
30@ += 0x29 // SAMP_CHECKPOINT_ACTIVE_OFFSET
0A8D: 30@ = readMem 30@ sz 4 vp 0
END
IF 30@ == TRUE
THEN 0485: return_true
ELSE 059A: return_false
END
0AA3: freelib 31@
END
END
0AB2: ret 0
:get_racecp_pos
// 0AB1: @get_racecp_pos 0 XYZ 1@ 2@ 3@
IF 0AA2: 31@ = loadlib "samp.dll"
THEN
0AB1: @get_samp_version_id 0 _returned: ID 17@
IF 17@ > 0
THEN
IF 17@ == 1 // 0.3.7 R1
THEN
0A8E: 30@ = 31@ + 0x21A10C // SAMP_MISC_INFO_OFFSET
0A8D: 30@ = readMem 30@ sz 4 vp 0
0A8E: 29@ = 30@ + 0x2C // SAMP_CHECKPOINT_X_OFFSET
0A8D: 28@ = readMem 29@ sz 4 vp 0
0A8E: 27@ = 30@ + 0x30 // SAMP_CHECKPOINT_Y_OFFSET
0A8D: 26@ = readMem 27@ sz 4 vp 0
0A8E: 25@ = 30@ + 0x34 // SAMP_CHECKPOINT_Z_OFFSET
0A8D: 24@ = readMem 25@ sz 4 vp 0
END
IF 17@ == 2 // 0.3.7 R2
THEN
0A8E: 30@ = 31@ + 0x21A114 // SAMP_MISC_INFO_OFFSET
0A8D: 30@ = readMem 30@ sz 4 vp 0
0A8E: 29@ = 30@ + 0xC // SAMP_CHECKPOINT_X_OFFSET
0A8D: 28@ = readMem 29@ sz 4 vp 0
0A8E: 27@ = 30@ + 0x10 // SAMP_CHECKPOINT_Y_OFFSET
0A8D: 26@ = readMem 27@ sz 4 vp 0
0A8E: 25@ = 30@ + 0x14 // SAMP_CHECKPOINT_Z_OFFSET
0A8D: 24@ = readMem 25@ sz 4 vp 0
END
IF 17@ == 3 // 0.3.DL
THEN
0A8E: 30@ = 31@ + 0x2ACA3C // SAMP_MISC_INFO_OFFSET
0A8D: 30@ = readMem 30@ sz 4 vp 0
0A8E: 29@ = 30@ + 0xC // SAMP_CHECKPOINT_X_OFFSET
0A8D: 28@ = readMem 29@ sz 4 vp 0
0A8E: 27@ = 30@ + 0x10 // SAMP_CHECKPOINT_Y_OFFSET
0A8D: 26@ = readMem 27@ sz 4 vp 0
0A8E: 25@ = 30@ + 0x14 // SAMP_CHECKPOINT_Z_OFFSET
0A8D: 24@ = readMem 25@ sz 4 vp 0
END
IF 17@ == 4 // 0.3.7 R3
THEN
0A8E: 30@ = 31@ + 0x26E8F4 // SAMP_MISC_INFO_OFFSET
0A8D: 30@ = readMem 30@ sz 4 vp 0
0A8E: 29@ = 30@ + 0xC // SAMP_CHECKPOINT_X_OFFSET
0A8D: 28@ = readMem 29@ sz 4 vp 0
0A8E: 27@ = 30@ + 0x10 // SAMP_CHECKPOINT_Y_OFFSET
0A8D: 26@ = readMem 27@ sz 4 vp 0
0A8E: 25@ = 30@ + 0x14 // SAMP_CHECKPOINT_Z_OFFSET
0A8D: 24@ = readMem 25@ sz 4 vp 0
END
IF 17@ == 5 // 0.3.7 R4
THEN
0A8E: 30@ = 31@ + 0x26EA24 // SAMP_MISC_INFO_OFFSET
0A8D: 30@ = readMem 30@ sz 4 vp 0
0A8E: 29@ = 30@ + 0xC // SAMP_CHECKPOINT_X_OFFSET
0A8D: 28@ = readMem 29@ sz 4 vp 0
0A8E: 27@ = 30@ + 0x10 // SAMP_CHECKPOINT_Y_OFFSET
0A8D: 26@ = readMem 27@ sz 4 vp 0
0A8E: 25@ = 30@ + 0x14 // SAMP_CHECKPOINT_Z_OFFSET
0A8D: 24@ = readMem 25@ sz 4 vp 0
END
IF 17@ == 6 // 0.3.7 R4 - v2
THEN
0A8E: 30@ = 31@ + 0x26EA24 // SAMP_MISC_INFO_OFFSET
0A8D: 30@ = readMem 30@ sz 4 vp 0
0A8E: 29@ = 30@ + 0xC // SAMP_CHECKPOINT_X_OFFSET
0A8D: 28@ = readMem 29@ sz 4 vp 0
0A8E: 27@ = 30@ + 0x10 // SAMP_CHECKPOINT_Y_OFFSET
0A8D: 26@ = readMem 27@ sz 4 vp 0
0A8E: 25@ = 30@ + 0x14 // SAMP_CHECKPOINT_Z_OFFSET
0A8D: 24@ = readMem 25@ sz 4 vp 0
END
IF 17@ == 7 // 0.3.7 R5
THEN
0A8E: 30@ = 31@ + 0x26EBAC // SAMP_MISC_INFO_OFFSET
0A8D: 30@ = readMem 30@ sz 4 vp 0
0A8E: 29@ = 30@ + 0xC // SAMP_CHECKPOINT_X_OFFSET
0A8D: 28@ = readMem 29@ sz 4 vp 0
0A8E: 27@ = 30@ + 0x10 // SAMP_CHECKPOINT_Y_OFFSET
0A8D: 26@ = readMem 27@ sz 4 vp 0
0A8E: 25@ = 30@ + 0x14 // SAMP_CHECKPOINT_Z_OFFSET
0A8D: 24@ = readMem 25@ sz 4 vp 0
END
0AA3: freelib 31@
END
END
0AB2: ret 3 28@ 26@ 24@
:get_samp_version_id
// 0AB1: @get_samp_version_id 0 _returned: ID 0@
30@ = 0
IF 0AA2: 31@ = "samp.dll" // IF and SET
THEN
31@ += 0x128
0A8D: 29@ = read_memory 31@ size 4 virtual_protect 1
IF 29@ == 0x5542F47A
THEN // 0.3.7 R1
30@ = 1
END
IF 29@ == 0x59C30C94
THEN // 0.3.7 R2
30@ = 2
END
IF 29@ == 0x5A6A3130
THEN // 0.3.DL
30@ = 3
END
31@ -= 8 // reading samp.dll + 0x120
0A8D: 29@ = read_memory 31@ size 4 virtual_protect 1
IF 29@ == 0x5C0B4243
THEN // 0.3.7 R3
30@ = 4
END
IF 29@ == 0x5DD606CD
THEN // 0.3.7 R4
30@ = 5
END
IF 29@ == 0x6094ACAB
THEN // 0.3.7 R4 - v2
30@ = 6
END
IF 29@ == 0x6372C39E
THEN // 0.3.7 R5
30@ = 7
END
END
0AB2: ret 1 30@
:getTargetMarkerHandle
0A8D: 0@ = read_memory 0xBA6774 size 4 virtual_protect 0
ret 1 0@
:setTargetMarker
call @getTargetMarkerHandle 0 return: 3@
IF
875C: marker 3@ enabled
THEN
// CREATE MARKER
call @setStateTargetMarker 1 state 1
END
// MOVE MARKER
0B10: 4@ = 3@ AND 0xFFFF
0012: 4@ *= 40
0A8E: 5@ = 0xBA86F8 + 4@
0A8C: write_memory 5@ size 4 value 0@ virtual_protect 0
5@ += 4
0A8C: write_memory 5@ size 4 value 1@ virtual_protect 0
5@ += 4
0A8C: write_memory 5@ size 4 value 2@ virtual_protect 0
0AB2: ret 0
:setStateTargetMarker
call @getTargetMarkerHandle 0 return: 1@
if 1@ > 0
then
if 0@ == 0
then
0AA5: call_function 0x587CE0 num_params 1 pop 1 1@ // CRadar::removeBlip
0A8C: write_memory 0xBA6774 size 4 value 0 virtual_protect 0 // CMenuManager::m_targetMarker
end
else
if 0@ == 1
then
0AA7: call_function 0x583820 num_params 6 pop 6 2 0 0 0 0 4 1@ // CRadar::createBlip
0AA5: call_function 0x583D70 num_params 2 pop 2 41 1@ // CRadar::setBlipSprite
0A8C: write_memory 0xBA6774 size 4 value 1@ virtual_protect 0 // CMenuManager::m_targetMarker
end
end
ret 0