CLEO Help Question

CLEO related
Status
Not open for further replies.

Kilmister88

Member
Joined
Mar 31, 2017
Messages
5
Reaction score
0
Hello guys! Could someone help me to change the hotkey from a mod to a chat command? 
This is the mod that i wanna change..
Code:
{$CLEO}

thread "fak"

: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
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
Thanks for help!
 

Parazitas

God
Joined
Jan 2, 2017
Messages
3,112
Solutions
5
Reaction score
878
Location
Lithuania
Here try...

[shcode=cpp]
{$CLEO .cs}

0000: NOP

thread "Req"
wait 2000

0B34: samp register_client_command "cmd" to_label @CheckPoint_Active
20@ = 0

:ct
wait 0
if
  20@ == 1
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
 
:CheckPoint_Active
0B12: 20@ = 20@ XOR 1
0B43: samp cmd_ret

///// Snippet

: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
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
[/shcode]
 

Kilmister88

Member
Joined
Mar 31, 2017
Messages
5
Reaction score
0
Parazitas said:
Here try...

[shcode=cpp]
{$CLEO .cs}

0000: NOP

thread "Req"
wait 2000

0B34: samp register_client_command "cmd" to_label @CheckPoint_Active
20@ = 0

:ct
wait 0
if
  20@ == 1
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
 
:CheckPoint_Active
0B12: 20@ = 20@ XOR 1
0B43: samp cmd_ret

///// Snippet

: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
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
[/shcode]

well.. when i try to compile it i get this:
GkFGj4T.png

can i solve it?
 

Parazitas

God
Joined
Jan 2, 2017
Messages
3,112
Solutions
5
Reaction score
878
Location
Lithuania
Go here...
http://ugbase.eu/Thread-ASI-SAMPFUNCS-5-3-0-3-7


- Copy all files from the "SB data" to "/Sanny Builder 3/data/sa".
 

Kilmister88

Member
Joined
Mar 31, 2017
Messages
5
Reaction score
0
Parazitas said:
Go here...
http://ugbase.eu/Thread-ASI-SAMPFUNCS-5-3-0-3-7
                                             ↓

- Copy all files from the "SB data" to "/Sanny Builder 3/data/sa".

Now this:
mVXYRM7.png
 

Kilmister88

Member
Joined
Mar 31, 2017
Messages
5
Reaction score
0
I fixed it, thank you!
But there is smth more, if you can help me..
when i use the cmd it do that thing for infinite and i would like it to do it once
 

Parazitas

God
Joined
Jan 2, 2017
Messages
3,112
Solutions
5
Reaction score
878
Location
Lithuania
Looks like that, i don't remember.

[shcode=cpp]
:ct
wait 0
if
  20@ == 1
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
//////////////////////////////// Add
20@ = 0
//////////////////////////////// Add end
jump @ct
[/shcode]
 

Kilmister88

Member
Joined
Mar 31, 2017
Messages
5
Reaction score
0
Parazitas said:
Looks like that, i don't remember.

[shcode=cpp]
:ct
wait 0
if
  20@ == 1
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
//////////////////////////////// Add
20@ = 0
//////////////////////////////// Add end
jump @ct
[/shcode]
It works, thank you so much! :D ... and sorry for stupid questions :-/
 
Status
Not open for further replies.
Top