Вопросы по CLEO-скриптингу

serhiyrubin

Известный
396
106
Можно нарисовать текст кликабельный, а картинку, тоже можно но больше морокки, придётся сверять координаты экрана с координатами текстуры.
А как текст кликабельный делать, знаю только как обычный делать в DUXT диалогах
 

kuleer

Участник
86
13
А как текст кликабельный делать, знаю только как обычный делать в DUXT диалогах
CLEO:
:ZOOM
0B5E: get_cursor_pos 4@ 5@ 
if and
001D: 4@ > 0@ 
001D: 5@ > 1@
then 
005A: 0@ += 2@ 
005A: 1@ += 3@ 
if and
001D: 0@ > 4@ 
001D: 1@ > 5@ 
then
ret 0 1 
end
end
ret 0

31@ = Render.FontDrawHeight(29@) // рендеринт по высоте
3@ = Render.FontDrawLength(29@, 18@) // рендеринг по ширине
if and
0B8C:    samp is_cursor_active
call @ZOOM 4 15@ 16@ 3@ 31@  
then
if  
0AB0:  key_pressed 1 // нажата кнопка мыши 1
then
// действие после клика 
end
// 15@ 16@ вроде корды текстдрава, но это не точно, по эксперементируй
 

Romelo

dev.
Проверенный
540
624
Можно ли как-то мониторить чат за пределами зоны стрима? Вот на карте я нарисовал точку А и Б, что бы с одного из этих мест можно было видеть чат другого места)
Синхронизировать промежутками координаты игрока в ту или иную точку.
 

Daim

Новичок
24
2
Это реально декриптовать? написан для старых 0.3z, может и стиллер есть
 

Вложения

  • StreamLoading.cs
    18.2 KB · Просмотры: 7
1,417
1,030
Это реально декриптовать? написан для старых 0.3z, может и стиллер есть
CLEO:
// This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP
0006: 3@ = 0
0006: 4@ = 0

:Noname_16
8AFA:   not is_samp_available
004D: jump_if_false @Noname_37
0001: wait 400 ms
0002: jump @Noname_16

:Noname_37
0001: wait 1000 ms
0AF8: samp add_message_to_chat "{A3E900}[StreamLoading | Diamond-Rp]: {FFFFFF}Успешно загружен. Автор: {A3E900}Niko" color -1 
0B34: samp register_client_command "sl" to_label @Noname_384
0B34: samp register_client_command "sl_s" to_label @Noname_562
0BE2: raknet setup_outcoming_packet_hook @Noname_673

:Noname_163
0001: wait 0 ms
00D6: if
0039:   3@ == 1
004D: jump_if_false @Noname_377
0B32: samp send_spawn
0006: 5@ = 0

:Noname_194
0001: wait 0 ms
0AB1: call_scm_func @Noname_725 3 0@ 1@ 2@ 
018C: play_sound 1058 at 0.0 0.0 0.0
000A: 5@ += 1
0019:   5@ > 50
004D: jump_if_false @Noname_194
0001: wait 500 ms
00A1: put_actor $PLAYER_ACTOR at 0@ 1@ 2@
0001: wait 3 ms
0AB6: store_target_marker_coords_to 0@ 1@ 2@ // IF and SET
00A1: put_actor $PLAYER_ACTOR at 0@ 1@ 2@
0AF8: samp add_message_to_chat "{A3E900}[StreamLoading]: {FFFFFF}Вы были телепортированы!" color -1 
0006: 3@ = 0

:Noname_377
0002: jump @Noname_163

:Noname_384
00D6: if
0AB6: store_target_marker_coords_to 0@ 1@ 2@ // IF and SET
004D: jump_if_false @Noname_490
0006: 3@ = 1
0006: 4@ = 1
0AF8: samp add_message_to_chat "{A3E900}[StreamLoading]: {FFFFFF}Пожалуйста подождите..." color -1 
0002: jump @Noname_560

:Noname_490
0AF8: samp add_message_to_chat "{A3E900}[StreamLoading]: {FFFFFF}Не поставленна метка на карте!" color -1 

:Noname_560
0B43: samp cmd_ret

:Noname_562
0006: 3@ = 0
0006: 4@ = 0
0B32: samp send_spawn
018C: play_sound 1058 at 0.0 0.0 0.0
0AF8: samp add_message_to_chat "{A3E900}[StreamLoading]: {FFFFFF}Вы были телепортированы на спавн!" color -1 
0B43: samp cmd_ret

:Noname_673
00D6: if
0039:   4@ == 1
004D: jump_if_false @Noname_721
0BE5: raknet 5@ = get_hook_param 1
00D6: if
0039:   5@ == 207
004D: jump_if_false @Noname_721
0BE0: raknet hook_ret 0

:Noname_721
0BE0: raknet hook_ret 1

:Noname_725
0B2B: samp 3@ = get_player_id_by_actor_handle $PLAYER_ACTOR
0226: 4@ = actor $PLAYER_ACTOR health
0AC8: 5@ = allocate_memory_size 68
0BBA: samp store_player 3@ onfoot_data 5@
0C0D: struct 5@ offset 6 size 4 = 0@
0C0D: struct 5@ offset 10 size 4 = 1@
0C0D: struct 5@ offset 14 size 4 = 2@
0C0D: struct 5@ offset 34 size 1 = 4@
0BC0: samp send_onfoot_data 5@
0AC9: free_allocated_memory 5@
0AB2: ret 0
 

Boyenerji

Известный
97
1
sa-mp-002.png
Ребят, из-за чего не работает автоответчик?

CLEO:
{$CLEO}
{$INCLUDE SF}
0000:NOP


repeat
wait 100
until Samp.Available()


while true
wait 0
    0AC8: 4@ = allocate_memory_size 256
0C11: memset destination 4@ value 0x0 size 256

0BE5: raknet 0@ = get_hook_param PARAM_BITSTREAM
0BE5: raknet 1@ = get_hook_param PARAM_PACKETID
if
    1@ == RPC_ScrClientMessage // DWORD color, DWORD strLen, char[] msg
then
    0BE7: raknet 2@ = bit_stream_read 0@ type BS_TYPE_INT // color
    0BE7: raknet 3@ = bit_stream_read 0@ type BS_TYPE_INT // strLen
    0C11: memset destination 4@ value 0 size 256
    0BE8: raknet bit_stream 0@ read_array 4@ size 3@ // Text
    0C0F: array 4@ element 3@ = 0x00

    0B2B: samp 29@ = get_player_id_by_actor_handle $PLAYER_ACTOR
    0B36: samp 30@ = get_player_nickname 29@

if
    0C29: 5@ = stristr string1 4@ string2 "для %s[%d]" 30@ 29@
then
    free 4@
    say "азазаза"
end
end
    0BE0: raknet hook_ret true
end


Вот пример репорта.
 
1,417
1,030
В цикл засунул чтобы чат чекал постоянно.
CLEO:
{$CLEO}
{$INCLUDE SF}
0000:NOP

repeat
wait 100
until Samp.Available()

0BE3: raknet setup_incoming_rpc_hook @iRPC
0BDE: pause_thread 0

:iRPC
0BE5: raknet 1@ = get_hook_param PARAM_PACKETID
IF 1@ == RPC_ScrClientMessage // DWORD color, DWORD strLen, char[] msg
    THEN
        0BE5: raknet 0@ = get_hook_param PARAM_BITSTREAM
        0BE7: raknet 2@ = bit_stream_read 0@ type BS_TYPE_INT // color
        0BE7: raknet 3@ = bit_stream_read 0@ type BS_TYPE_INT // strLen
        0AC8: 4@ = allocate_memory_size 256
        0BE8: raknet bit_stream 0@ read_array 4@ size 3@ // Text
        0C1E: array 4@ element 3@ el_size 1 = 0
   
        0B2B: samp 29@ = get_player_id_by_actor_handle $PLAYER_ACTOR
        0B36: samp 30@ = get_player_nickname 29@
    IF 0C29: 5@ = stristr string1 4@ string2 "äëÿ %s[%d]" 30@ 29@
        THEN
            say "àçàçàçà"
    END
    0AC9: free_allocated_memory 4@
END
0BE0: raknet hook_ret true
 

Boyenerji

Известный
97
1
CLEO:
{$CLEO}
{$INCLUDE SF}
0000:NOP

repeat
wait 100
until Samp.Available()

0BE3: raknet setup_incoming_rpc_hook @iRPC
0BDE: pause_thread 0

:iRPC
0BE5: raknet 1@ = get_hook_param PARAM_PACKETID
IF 1@ == RPC_ScrClientMessage // DWORD color, DWORD strLen, char[] msg
    THEN
        0BE5: raknet 0@ = get_hook_param PARAM_BITSTREAM
        0BE7: raknet 2@ = bit_stream_read 0@ type BS_TYPE_INT // color
        0BE7: raknet 3@ = bit_stream_read 0@ type BS_TYPE_INT // strLen
        0AC8: 4@ = allocate_memory_size 256
        0BE8: raknet bit_stream 0@ read_array 4@ size 3@ // Text
        0C1E: array 4@ element 3@ el_size 1 = 0
  
        0B2B: samp 29@ = get_player_id_by_actor_handle $PLAYER_ACTOR
        0B36: samp 30@ = get_player_nickname 29@
    IF 0C29: 5@ = stristr string1 4@ string2 "äëÿ %s[%d]" 30@ 29@
        THEN
            say "àçàçàçà"
    END
    0AC9: free_allocated_memory 4@
END
0BE0: raknet hook_ret true

Не робит :((
 
1,417
1,030
В репорт уж пишу.
CLEO:
{$CLEO}
{$INCLUDE SF}
0000:NOP


0BE3: raknet setup_incoming_rpc_hook @iRPC
0BDE: pause_thread 0

:iRPC
0BE5: raknet 1@ = get_hook_param PARAM_PACKETID
IF 1@ == RPC_SCRCLIENTMESSAGE // DWORD color, DWORD strLen, char[] msg
    THEN
        0BE5: raknet 0@ = get_hook_param PARAM_BITSTREAM
        0BE9: raknet bit_stream 0@ reset_read_pointer
        0BE7: raknet 2@ = bit_stream_read 0@ type BS_TYPE_INT // color
        0BE7: raknet 3@ = bit_stream_read 0@ type BS_TYPE_INT // strLen
        0AC8: 4@ = allocate_memory_size 260
        0BE8: raknet bit_stream 0@ read_array 4@ size 3@ // Text
        0C1E: array 4@ element 3@ el_size 1 = 0
        0B2B: samp 29@ = get_player_id_by_actor_handle $PLAYER_ACTOR
        0B36: samp 30@ = get_player_nickname 29@
        0AC8: 6@ = allocate_memory_size 30
        0AD3: 6@ = format "äëÿ %s[%d]" 30@ 29@
    IF 0C29: 5@ = stristr string1 4@ string2 6@
        THEN
        0AF9: samp say_msg "123"
    END
    0BE9: raknet bit_stream 0@ reset_read_pointer
    0AC9: free_allocated_memory 4@
    0AC9: free_allocated_memory 6@
END
0BE0: raknet hook_ret TRUE
там строку форматировать же надо
 
  • Нравится
Реакции: Boyenerji

KisLyiKeKs

Известный
1
0
как сделать активацию на клавишу? з.ы. любую клавишу
// This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013
{$CLEO .cs}

{0} 0C6A: 25@ = create_custom_thread_at_label @Noname1_776 -807 -608 -936 -959 -1092
{36} 0000: NOP
{38} wait 1750

{58} 0B34: samp register_client_command "reload" to_label @Noname1_565
:Noname1_73
{73} wait 0
{77} if and
{81} 00E1: player 0 pressed_key 6
{87} 31@ == 1
{94} jf @Noname1_280
{101} 0470: 9@ = actor $PLAYER_ACTOR current_weapon
{109} if
{113} not 9@ > 38
{120} jf @Noname1_280
{127} Actor.StorePos($PLAYER_ACTOR, 0@, 1@, 2@)
{141} call @Noname1_435 2 9@ $PLAYER_ACTOR 9@
{160} 0AA6: call_method 5327216 struct 11989032 num_params 6 pop 0 3@v 6@v 2@ 1@ 0@ 1.0
{197} 0AA6: call_method 5327216 struct 11989032 num_params 6 pop 0 6@v 10@v 2@ 1@ 0@ 9@
{232} if
{236} 86BD: not no_obstacles_between 3@ 4@ 5@ and 6@ 7@ 8@ solid 0 car 0 actor 1 object 0 particle 0
{266} jf @Noname1_280
{273} SAMP.SetGameKeyState(17, 255)

:Noname1_280
{280} goto @Noname1_73

:Noname1_287
{287} 0B12: 31@ = 31@ XOR 1
{297} if

31@ == 1
jf @Noname1_377

0ACD: show_text_highpriority "TriGBot by On" time 1000

{370} goto @Noname1_433

:Noname1_377
0ACD: show_text_highpriority "TriGBot Off" time 1000

:Noname1_433
{433} SAMP.CmdRet

:Noname1_435
{435} 0A96: 2@ = actor 1@ struct
{443} 2@ += 1836
{451} 0A8D: 2@ = read_memory 2@ size 1 virtual_protect 0
{463} 0085: 1@ = 0@ // (int)
{471} if
{475} 2@ == 2
{482} jf @Noname1_496
{489} 1@ += 25

:Noname1_496
{496} if
{500} 2@ == 3
{507} jf @Noname1_521
{514} 1@ += 36

:Noname1_521
{521} 1@ *= 112
{528} 1@ += 13150904
{538} 1@ += 8
{545} 0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0
{557} ret 1 1@