Работа с чатлогом | help

Sam_Monroe

Известный
Автор темы
55
2
Здравствуйте. Нужна помощь с Клео скриптом, не умею работать с чатлогом.
Есть скрипт на телепорты по командам. А надо, чтобы этими командами запускался автоматический процесс этих телепортов с небольшой задержкой. Первый телепортируется, когда в чате появляется надпись "отнеси металл на склад", а второй просто делает циклично пробежку по координатам и обратно. Остановить скрипты должно быть можно простым шагом в сторону. Мог бы кто помочь?
CLEO:
{$CLEO}
0000: NOP
repeat
wait 0
until 0AFA:
0B34: samp register_client_command "tp1" to_label @Noname_54
0B34: samp register_client_command "tp2" to_label @Noname_62

01B6: set_weather 1
00C0: set_current_time_hours_to 10 minutes_to 0
0BDE: pause_thread 0


:Noname_54
0AB1: call_scm_func @Noname_8937 3 -1864.971924 -1623.192505 21.909252
0BD1: samp send_picked_up_pickup 13
0B43: samp cmd_ret

:Noname_62
0AB1: call_scm_func @Noname_8937 3 612.321838 871.011047 -42.542072            
0BD1: samp send_picked_up_pickup 15
0AB1: call_scm_func @Noname_8937 3 612.892029 870.620605 -42.649788
0BD1: samp send_picked_up_pickup 49
0AB1: call_scm_func @Noname_8937 3 639.400208 819.720337 -42.932686
0BD1: samp send_picked_up_pickup 32
0AB1: call_scm_func @Noname_8937 3 632.552429 857.449158 -42.960938
0BD1: samp send_picked_up_pickup 63
0AB1: call_scm_func @Noname_8937 3 584.081116 925.163574 -42.291046
0BD1: samp send_picked_up_pickup 115
0AB1: call_scm_func @Noname_8937 3 678.325134 823.677002 -38.992092
0BD1: samp send_picked_up_pickup 97
0AB1: call_scm_func @Noname_8937 3 690.125000 844.980896 -39.007717
0BD1: samp send_picked_up_pickup 28
0B43: samp cmd_ret





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

Bili Djin

Активный
137
67
Находишь сообщение в чате через HOOK
HOOK:
:Hook_STR
wait 0
0BE5: raknet 6@ = get_hook_param PARAM_PACKETID
if
6@ == RPC_ScrClientMessage
then
    0BE5: raknet 5@ = get_hook_param PARAM_BITSTREAM
    0BE7: raknet 7@ = bit_stream_read 5@ type BS_TYPE_INT
    0BE7: raknet 8@ = bit_stream_read 5@ type BS_TYPE_INT
    alloc 23@ 512
    0BE8: raknet bit_stream 5@ read_array 23@ size 8@
    0C0F: array 23@ element 8@ = 0x00
end
0BE0: raknet hook_ret true

Потом с помощью опкода 0C29 чекаешь сообщение на надпись "отнеси металл на склад" и дальше делаешь телепорты или чё там тебе надо.

Вот так должно выглядить:

CLEO:
:main
While True
    wait 0
    if 4@ == 1
    then
        if 0C29:   24@ = stristr string1 23@ string2 "отнеси металл на склад"
        then
            chatmsg "Скрипт пошёл!" -1 {Тут тело скрипта пиши}
        else
            4@ = 0
        end
    end
end


:Hook_STR
wait 0
0BE5: raknet 6@ = get_hook_param PARAM_PACKETID
if
6@ == RPC_ScrClientMessage
then
    0BE5: raknet 5@ = get_hook_param PARAM_BITSTREAM
    0BE7: raknet 7@ = bit_stream_read 5@ type BS_TYPE_INT
    0BE7: raknet 8@ = bit_stream_read 5@ type BS_TYPE_INT
    alloc 23@ 512
    4@ = 1
    0BE8: raknet bit_stream 5@ read_array 23@ size 8@
    0C0F: array 23@ element 8@ = 0x00
end
0BE0: raknet hook_ret true

С выключением скрипта я бы поступил так: сделал бы второй потом через 0C6A и в этом потоке проверял на клавиши, если какая-то клавиша нажата, то перезагружал бы скрипт. Проверка на нажатие осуществляется через 0AB0
 
Последнее редактирование:
  • Нравится
Реакции: RAIDENtheRIPPER