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

ShadowBroker

Известный
110
27
Бля.. Говорю же, учусь писать не на метках и мне интересно как получить тот или иной код после компиляции.
 

MISTER_GONWIK

Всефорумный гонщик
Всефорумный модератор
1,260
1,742
Бля.. Говорю же, учусь писать не на метках и мне интересно как получить тот или иной код после компиляции.
открою тебе секрет, код всегда один, только ты никому не говори, это будет наш с тобой секрет :buba::spiteful:;)
 
  • Нравится
Реакции: DarkP1xel и 4el0ve4ik

Coghweel

Новичок
76
0
Бля.. Говорю же, учусь писать не на метках и мне интересно как получить тот или иной код после компиляции.
Может после ДЕкомпиляции?
Тогда скрипт в любом случае будет с метками. Работать нужно с исходником (.txt)
 

Perojek)0

Известный
205
3
CLEO:
{$CLEO}
{$INCLUDE SF}

0001: WAIT 0 MS

WHILE NOT SAMP.AVAILABLE()
    WAIT 400
END

0BE3: RAKNET SETUP_INCOMING_RPC_HOOK @IN_RPC

0BDE: PAUSE_THREAD 0

:IN_RPC
0BE5: RAKNET 0@ = GET_HOOK_PARAM PARAM_PACKETID
IF OR
    0@ == RPC_SCRSERVERJOIN  
    0@ == RPC_SCRSERVERQUIT
THEN
    0BE5: RAKNET 1@ = GET_HOOK_PARAM PARAM_BITSTREAM 

    IF 0@ == RPC_SCRSERVERJOIN
    THEN
        0BE7: RAKNET 2@ = BIT_STREAM_READ 1@ TYPE BS_TYPE_SHORT
        0BE7: RAKNET 3@ = BIT_STREAM_READ 1@ TYPE BS_TYPE_INT
        0BE7: RAKNET 4@ = BIT_STREAM_READ 1@ TYPE BS_TYPE_BYTE
        0BE7: RAKNET 5@ = BIT_STREAM_READ 1@ TYPE BS_TYPE_BYTE

        0AC8: 6@ = ALLOCATE_MEMORY_SIZE 25
        0BE8: RAKNET BIT_STREAM 1@ READ_ARRAY 6@ SIZE 5@
        0C1E: ARRAY 6@ ELEMENT 5@ EL_SIZE 1 = 0
        0AF8: SAMP ADD_MESSAGE_TO_CHAT "%s[%d] подкл" COLOR -1 PARAMS 6@ 2@
        0AC9: FREE_ALLOCATED_MEMORY 6@
    ELSE
        0BE7: RAKNET 2@ = BIT_STREAM_READ 1@ TYPE BS_TYPE_SHORT 
        0BE7: RAKNET 3@ = BIT_STREAM_READ 1@ TYPE BS_TYPE_BYTE 
        0AF8: SAMP ADD_MESSAGE_TO_CHAT "%s %d откл" COLOR -1 PARAMS 2@ 3@ 
    END
END
0BE0: RAKNET HOOK_RET TRUE
Поч крашит?
 

RedBoxWhite

Известный
337
27
CLEO:
{$CLEO}
{$INCLUDE SF}

0001: WAIT 0 MS

WHILE NOT SAMP.AVAILABLE()
    WAIT 400
END

0BE3: RAKNET SETUP_INCOMING_RPC_HOOK @IN_RPC

0BDE: PAUSE_THREAD 0

:IN_RPC
0BE5: RAKNET 0@ = GET_HOOK_PARAM PARAM_PACKETID
IF OR
    0@ == RPC_SCRSERVERJOIN 
    0@ == RPC_SCRSERVERQUIT
THEN
    0BE5: RAKNET 1@ = GET_HOOK_PARAM PARAM_BITSTREAM

    IF 0@ == RPC_SCRSERVERJOIN
    THEN
        0BE7: RAKNET 2@ = BIT_STREAM_READ 1@ TYPE BS_TYPE_SHORT
        0BE7: RAKNET 3@ = BIT_STREAM_READ 1@ TYPE BS_TYPE_INT
        0BE7: RAKNET 4@ = BIT_STREAM_READ 1@ TYPE BS_TYPE_BYTE
        0BE7: RAKNET 5@ = BIT_STREAM_READ 1@ TYPE BS_TYPE_BYTE

        0AC8: 6@ = ALLOCATE_MEMORY_SIZE 25
        0BE8: RAKNET BIT_STREAM 1@ READ_ARRAY 6@ SIZE 5@
        0C1E: ARRAY 6@ ELEMENT 5@ EL_SIZE 1 = 0
        0AF8: SAMP ADD_MESSAGE_TO_CHAT "%s[%d] подкл" COLOR -1 PARAMS 6@ 2@
        0AC9: FREE_ALLOCATED_MEMORY 6@
    ELSE
        0BE7: RAKNET 2@ = BIT_STREAM_READ 1@ TYPE BS_TYPE_SHORT
        0BE7: RAKNET 3@ = BIT_STREAM_READ 1@ TYPE BS_TYPE_BYTE
        0AF8: SAMP ADD_MESSAGE_TO_CHAT "%s %d откл" COLOR -1 PARAMS 2@ 3@
    END
END
0BE0: RAKNET HOOK_RET TRUE
Поч крашит?
0AF8: SAMP ADD_MESSAGE_TO_CHAT "%d %d откл" COLOR -1 PARAMS 2@3@
 
  • Нравится
Реакции: Perojek)0

Coghweel

Новичок
76
0
Подскажите пожалуйста, можно как-нибудь создать хелф-бар над созданным актером?
 

Coghweel

Новичок
76
0
Можно, например, рендер-опкодами
Пробую, не получается:

0B6A: render draw_box_with_border_pos 5@ 6@ size 40 10 color 0xff0000ff border_size 1 border_color 0x000000ff
должен выводить красный прямоугольник с черной обводкой, а на деле синий прямоугольник...
 

4el0ve4ik

Известный
Всефорумный модератор
1,548
1,339
Пробую, не получается:

0B6A: render draw_box_with_border_pos 5@ 6@ size 40 10 color 0xff0000ff border_size 1 border_color 0x000000ff
должен выводить красный прямоугольник с черной обводкой, а на деле синий прямоугольник...
код красного цветa 0xffff0000 а не 0xff0000ff
 
Последнее редактирование:
  • Нравится
Реакции: Coghweel

hnnssy

Известный
Друг
2,684
2,753
можно
Пробую, не получается:

0B6A: render draw_box_with_border_pos 5@ 6@ size 40 10 color 0xff0000ff border_size 1 border_color 0x000000ff
должен выводить красный прямоугольник с черной обводкой, а на деле синий прямоугольник...
0xARGB
 
  • Нравится
Реакции: Coghweel

san0

Известный
Друг
411
267
Я бы сделал так
Код:
IF 0@ == RPC_SCRSERVERJOIN
THEN
  0BE7: RAKNET 2@ = BIT_STREAM_READ 1@ TYPE BS_TYPE_SHORT
  0BED: RAKNET BIT_STREAM 1@ SET_READ_OFFSET 0x38
  0BE7: RAKNET 3@ = BIT_STREAM_READ 1@ TYPE BS_TYPE_BYTE
  0AC8: 4@ = ALLOCATE_MEMORY_SIZE 25
  0BE8: RAKNET BIT_STREAM 1@ READ_ARRAY 4@ SIZE 3@
  0C1E: ARRAY 4@ ELEMENT 3@ EL_SIZE 1 = 0
  0AF8: SAMP ADD_MESSAGE_TO_CHAT "%s [%d] was connected" COLOR -1 PARAMS 4@ 2@
  0AC9: FREE_ALLOCATED_MEMORY 4@
ELSE
  0BE7: RAKNET 2@ = BIT_STREAM_READ 1@ TYPE BS_TYPE_SHORT
  0BE7: RAKNET 3@ = BIT_STREAM_READ 1@ TYPE BS_TYPE_BYTE
  0AF8: SAMP ADD_MESSAGE_TO_CHAT "ID %d disconnected : reason %d" COLOR -1 PARAMS 2@ 3@
END

Ну а ошибка в лишнем чтение байта(который в 5@, вообще не нужно) и выводе числа как строки(в отключении).
Пробую, не получается:

0B6A: render draw_box_with_border_pos 5@ 6@ size 40 10 color 0xff0000ff border_size 1 border_color 0x000000ff
должен выводить красный прямоугольник с черной обводкой, а на деле синий прямоугольник...
0B6A: render draw_box_with_border_pos 400 400 size 40 10 color 0xFFFF0000 border_size 1 border_color 0xFF000000
 
Последнее редактирование:

Coghweel

Новичок
76
0
Если это не сработает, то жди уже других.
CLEO:
alloc 1@ 256

while true
wait 0
    if SAMP.IsDialogActive(353)
    then
    0BD7: samp get_dialog_text 1@
        if 0C18: 2@ = strstr string1 1@ string2 "Цена объявления:"
        then
            0AA5: call 0x8220AD num_params 3 pop 3 params 23@v "Цена объявления: {цвет}$%s." 2@
            0AF8: "%s" -1 23@
            free 1@
        end
    SAMP.CloseDialog(0)
    end
end
Таки помогло. Спасибо
 

RedBoxWhite

Известный
337
27
Как правильно использовать тут 2 потока? Туплю чёт, ибо там же всё обнуляется((
CLEO:
0B34: samp register_client_command "1" to_label @CMD
0C6A: 0 = create_custom_thread_at_label @1

while true
wait 0
    if 7@ == true
    then
        0af8: "1" -1
    end
end

:1
while true
wait 0
    if 7@ == false
    then
        0af8: "2" -1
    end
end

:CMD
0B12: 7@ = 7@ XOR 1
0B43: samp cmd_ret
 

SR_team

like pancake
BH Team
4,722
6,380
Как правильно использовать тут 2 потока? Туплю чёт, ибо там же всё обнуляется((
CLEO:
0B34: samp register_client_command "1" to_label @CMD
0C6A: 0 = create_custom_thread_at_label @1

while true
wait 0
    if 7@ == true
    then
        0af8: "1" -1
    end
end

:1
while true
wait 0
    if 7@ == false
    then
        0af8: "2" -1
    end
end

:CMD
0B12: 7@ = 7@ XOR 1
0B43: samp cmd_ret
2 потока это как 2 скрипта. Когда ты вызываешь функцию, то она относится к тому потоку из которого была вызвана. В данном случае, команду ты регистрируешь в 1 потоке
 

RedBoxWhite

Известный
337
27
2 потока это как 2 скрипта. Когда ты вызываешь функцию, то она относится к тому потоку из которого была вызвана. В данном случае, команду ты регистрируешь в 1 потоке
Это понятно, я это показал так, чтобы было понятно что я хочу. Как мне сделать, чтобы 1 команда работала под 2 потока?