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

CLEONewBie

Новичок
20
0
смирись и переходи на луа/плюсы, в клео нельзя нормально распарсить строку
жаль, блин, обидно, аааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааа. Я ни того, ни того не знаю ;(
 

D3.Pheonix

🎹
Модератор
2,821
1,600
жаль, блин, обидно, аааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааа. Я ни того, ни того не знаю ;(
НУ если базу клея знаешь, на луа не сложно перейти, вики оч поможет
 

san0

Известный
Друг
411
267
в клео нельзя нормально распарсить строку
(есть все функции для работы с нуль-терминированными строками со string.h)
А вообще можно просто заюзать strstr и добавить 14 (длина 'текст:{XXXXXX}')
Или так
CLEO:
const
   PATTERN = "Текст:"
   SPACE   = 0x20
end
0C3A: 0@ = string "абвгдеоывшвоasd Текст:{FF00} Нужный текст" ptr
0C18: 1@ = strstr string1 0@ string2 PATTERN
0C2A: 2@ = strchr 1@ char SPACE
2@ ++   
0af8: 2@ -1
 

kuleer

Участник
86
13
Ку всем, как можно получить текст из gametext?
CLEO:
0BE3: raknet setup_incoming_rpc_hook @in_rpc
0BDE: pause_thread 0 
:in_rpc
0BE5: raknet 0@ = get_hook_param PARAM_PACKETID
if 0@ == 73 
then
        alloc 5@ 130
        0BE5: raknet 1@ = get_hook_param PARAM_BITSTREAM     
        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_ARRAY
        chatmsg "text hooks: %d %d %d %s" -1 2@ 3@ 4@ 5@
        free 5@
end
0BE0: raknet hook_ret true
Не робит, посмотрел видосы даркпикселя, там про пакеты, а нужно про рпц.
 
Последнее редактирование модератором:

kawa operand

перерывпятьминут
602
333
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Попробуй смещение на чтение сбросить
 
1,417
1,030
Ку всем, как можно получить текст из gametext?
CLEO:
0BE3: raknet setup_incoming_rpc_hook @in_rpc
0BDE: pause_thread 0
:in_rpc
0BE5: raknet 0@ = get_hook_param PARAM_PACKETID
if 0@ == 73
then
        alloc 5@ 130
        0BE5: raknet 1@ = get_hook_param PARAM_BITSTREAM    
        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_ARRAY
        chatmsg "text hooks: %d %d %d %s" -1 2@ 3@ 4@ 5@
        free 5@
end
0BE0: raknet hook_ret true
Не робит, посмотрел видосы даркпикселя, там про пакеты, а нужно про рпц.
CLEO:
:iRPC
0BE5: raknet 0@ = get_hook_param PARAM_PACKETID
IF 0@ == 73
    THEN
    0BE5: raknet 1@ = get_hook_param PARAM_BITSTREAM
    0BE7: raknet 2@ = bit_stream_read 1@ type BS_TYPE_INT //style
    0BE7: raknet 3@ = bit_stream_read 1@ type BS_TYPE_INT //time
    0BE7: raknet 4@ = bit_stream_read 1@ type BS_TYPE_INT
    0AC8: 5@ = allocate_memory_size 125
    0BE8: raknet bit_stream 1@ read_array 5@ size 4@
    0C1E: array 5@ element 4@ el_size 1 = 0
    // 5@ - text
    0AC9: free_allocated_memory 5@   
END
0BE0: raknet hook_ret TRUE
 
  • Нравится
Реакции: kuleer
У

Удалённый пользователь 126082

Гость
Возможно ли изменить занос машины? Дайте пожайлуста опкод, если такой есть
 

grandpafromghetto

НАСТАЯЩИЙ ДАГИСТАНИЦ
Проверенный
335
119
CLEO:
{$CLEO}
0000:

repeat
wait 0
until samp.Available()

0B34: samp register_client_command "cmd" to_label @on
0B34: samp register_client_command "cmdoff" to_label @off

while true
wait 0
if 0@ == 1
then
if and
actor.Driving()
00EE:   actor $PLAYER_ACTOR sphere 0 near_point -2028.4377 155.0860 radius 6.0 6.0 in_car
then
03C0: 10@ = actor $PLAYER_ACTOR car
00A7: car 10@ drive_to 2562.1201 -1297.4176 1044.1250
end
end
end

:on
0@ = 1
samp.CmdRet()

:off
0@ = 0
samp.CmdRet()
в чем ошибка? едет в залупу, а не на координаты
 

Kristyan

Известный
165
16
Ребят, ну помогите мне пожалуйста )) Уже 2 недели прошло и я не имог решить проблему. Мне нужно чтобы текст сработал только один раз, вот код. Маркер статичный.
CLEO:
{$CLEO}
0000:
repeat
   wait 0
until 0afa:

WHILE TRUE
wait 0
if
call @is_cp_active_LS 0
then
   31@ = 0
   call @get_cp_pos_LS 0 0@ 1@ 2@
 
    if and
    0@ ==  1554.532104
    1@ ==  -1675.580688
    2@ ==  16.195313
    then
        31@ = 1
        if
        31@ == 1
        then
            31@ = 4
            018C: play_sound 1052 at 0.0 0.0 0.0
            chatmsg "text1" -1
        end
    end

    if and
    0@ ==  2287.257813
    1@ ==  2431.447998
    2@ ==  10.820302
    then
        31@ = 2
        if
        31@ == 2
        then
            31@ = 4
            018C: play_sound 1052 at 0.0 0.0 0.0
            chatmsg "text2" -1
        end
    end

    if and
    0@ ==  -1605.046143
    1@ ==  711.501038
    2@ ==  13.867177
    then
        31@ = 3
        if
        31@ == 3
        then
            31@ = 4
            018C: play_sound 1052 at 0.0 0.0 0.0
            chatmsg "text2" -1
        end
     end
end

END // END WHILE TRUE

:is_cp_active_LS
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_LS
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@
 
Последнее редактирование:

Lord

Новичок
236
42
Ребят, ну помогите мне пожалуйста )) Уже 2 недели прошло и я не имог решить проблему. Мне нужно чтобы текст сработал только один раз, вот код. Маркер статичный.
CLEO:
{$CLEO}
0000:
repeat
   wait 0
until 0afa:
WHILE TRUE
wait 0
if
call @is_cp_active_LS 0
then
   31@ = 0
   call @get_cp_pos_LS 0 0@ 1@ 2@
 
    if and
    0@ ==  1554.532104
    1@ ==  -1675.580688
    2@ ==  16.195313
    then
        31@ = 1
        if
        31@ == 1
        then
            31@ = 4
            018C: play_sound 1052 at 0.0 0.0 0.0
            chatmsg "text1" -1
        end
    end
    if and
    0@ ==  2287.257813
    1@ ==  2431.447998
    2@ ==  10.820302
    then
        31@ = 2
        if
        31@ == 2
        then
            31@ = 4
            018C: play_sound 1052 at 0.0 0.0 0.0
            chatmsg "text2" -1
        end
    end
    if and
    0@ ==  -1605.046143
    1@ ==  711.501038
    2@ ==  13.867177
    then
        31@ = 3
        if
        31@ == 3
        then
            31@ = 4
            018C: play_sound 1052 at 0.0 0.0 0.0
            chatmsg "text2" -1
        end
     end
end
END // END WHILE TRUE
:is_cp_active_LS
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_LS
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@
Поставь задержку.
 

Kristyan

Известный
165
16
Bf5DTlX.png