Help Cleo teleport to checkpoint

Xolokos

Active member
Joined
May 2, 2014
Messages
28
Reaction score
0
PHP:
{$CLEO}

thread "CHECKPOINTSYNC"

:init
wait 0
6@ = 1

:ct
wait 0
if
    0AB0: 89
then    
if     
    call @is_cp_active 0
then
    call @get_cp_pos 0 1@ 2@ 3@
    if
        044B: $PLAYER_ACTOR
    then
        call @SendOnFootDataSync 3 1@ 2@ 3@
    else        
        call @SendInCarDataSync 3 1@ 2@ 3@
    end    
end
end
jump @ct
    

:is_cp_active
0AA2: 0@ = loadlib "samp.dll"
0A8E: 1@ = 0@ + 0x21A10C
0A8D: 1@ = readMem 1@ sz 4 vp 0
1@ += 0x24
0A8D: 1@ = readMem 1@ sz 4 vp 0
IF 1@ == TRUE
THEN 0485:  return_true
ELSE 059A:  return_false
END
0AA3: freelib 0@
0AB2: ret 0

:get_cp_pos
0AA2: 0@ = loadlib "samp.dll"
0A8E: 1@ = 0@ + 0x21A10C
0A8D: 1@ = readMem 1@ sz 4 vp 0
1@ += 0xC
0A8D: 2@ = readMem 1@ sz 4 vp 0
1@ += 0x4
0A8D: 3@ = readMem 1@ sz 4 vp 0
1@ += 0x4
0A8D: 4@ = readMem 1@ sz 4 vp 0
0AA3: freelib 0@
0AB2: ret 3 2@ 3@ 4@

:SendOnFootDataSync
0B2B: 3@ = $PLAYER_ACTOR
0BBA: 3@ 4@
alloc 4@ 68
0C0D: 4@ 6 4 = 0@
0C0D: 4@ 10 4 = 1@
0C0D: 4@ 14 4 = 2@
0BC0: 4@
free 4@
ret 0 

:SendInCarDataSync                 
3@ = SAMP.GetSAMPPlayerIDByActorHandle($PLAYER_ACTOR) 
3@ = SAMP.GetPlayerStruct(3@) 
3@ += 170
0006: 6@ += 1
//0AD1: show_formatted_text_highpriority "Y = %i" time 1000 $10
if 6@ >= 8 
    then // (int)
    0AF9: samp say_msg "/recoltedrogues"
    0AD1: show_formatted_text_highpriority "Message envoyé !" time 1000  
    6@ = 0
end
0AC8: 4@ = allocate_memory_size 63 
0C10: memcpy destination 4@ source 3@ size 63 
0C0D: struct 4@ offset 24 size 4 = 0@ 
0C0D: struct 4@ offset 28 size 4 = 1@ 
0C0D: struct 4@ offset 32 size 4 = 2@ 
0B3D: raknet 5@ = new_bit_stream 
RakNet.Write(5@, 200, BS_TYPE_BYTE, 1) 
RakNet.Write(5@, 4@, BS_TYPE_ARRAY, 63) 
0B8B: raknet send bit_stream 5@                 
0B3E: raknet delete_bit_stream 5@ 
0AC9: 4@ 
0AB2: ret 0
I tried to modify a code to send a samp cmd every 9 checkpoints but it doesn't works ?
 

Opcode.eXe

Expert
Joined
Feb 18, 2013
Messages
1,488
Reaction score
231
Location
( ͡° ͜ʖ ͡°)
It's not working because:
Your counter variable is 6@ and its value is set in the main thread.
You call the function SenDIncarData where you have 6@ += 1, but when you call an function the variables will be reset in that function.
So what you can do is pass the variable 6@ to the :sendincardata function.



But nah do it like this:


Code:
{$CLEO}

thread "CHECKPOINTSYNC"

:init
wait 0
6@ = 0

:ct
wait 0
if
    0AB0: 89
then    
if     
    call @is_cp_active 0
then
    call @get_cp_pos 0 1@ 2@ 3@
    if
        044B: $PLAYER_ACTOR
    then
        call @SendOnFootDataSync 3 1@ 2@ 3@
    else        
        call @SendInCarDataSync 3 1@ 2@ 3@
    end    
    if 6@ >= 8 
    then
        0AF9: samp say_msg "/recoltedrogues"
        0AD1: show_formatted_text_highpriority "Message envoyé !" time 1000  
        6@ = 0
    end
    6@ += 1
end
end
jump @ct
 
Top