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

Musaigen

abobusnik
Проверенный
1,606
1,361
При запуске игры игра зависает, что делать? code
CLEO:
{$CLEO .cs}
0000: NOP

:0
0001: wait 0 ms
0AFA:  is_samp_available
004D: jump_if_false @0
0001: wait 500 ms
0B34: samp register_client_command "rra" to_label @1

:1
0AFF: samp 0@ = car_handle_by_samp_vehicle_id 503
00D6: if
0039:   0@ == 1
004D: jump_if_false @1
0ACD: show_text_highpriority "car 503 spizhen" time 2500
0B43: samp cmd_ret

:2
00D6: if
0039:   0@ == 1
004D: jump_if_false @1
0AF9: samp say_msg "/rr 503"
0002: jump @1
Проверку на 0AFF вешай.
 

ehxqu

Известный
Проверенный
177
155
Нет ни у кого адреса памяти на отключение этого добра?
Эта стрелка в направлении куда летишь с темно зеленым затемнением
@DarkP1xel
E5zD8Zw.png
 

Freym

Известный
488
204
Как сделать так что бы активировалась функция если в общий чат написал сообщение другой игрок какое-то слово и функция активировалась.Например, подбигает к тебе человек и говорит "Привет." Скрипт увидел что человек написал в чат именно это сообщение которое заложено в скрипте и написал в ответ "Приветствую." Кто может подсказать как это сделать?
 

01EG

Известный
Проверенный
629
354
Как сделать так что бы активировалась функция если в общий чат написал сообщение другой игрок какое-то слово и функция активировалась.Например, подбигает к тебе человек и говорит "Привет." Скрипт увидел что человек написал в чат именно это сообщение которое заложено в скрипте и написал в ответ "Приветствую." Кто может подсказать как это сделать?
Самое интересное, что такой вопрос задавали уже сотню тысяч раз. Поиском пользоваться не учили?
1) Вот вариант через хук, если нужен МОМЕНТАЛЬНЫЙ ответ и чтоб 100 процентно среагировало
CLEO:
{$CLEO}
{$INCLUDE SF}
0000:

repeat
wait 500
until Samp.Available()

alloc 4@ 256
0c11: memset 4@ 0 256

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

:ClientMessage
0BE5: raknet 0@ = get_hook_param PARAM_BITSTREAM
0BE5: raknet 1@ = get_hook_param PARAM_PACKETID
if and
29@ == 1
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
    if
    0C18: 8@ = strstr string1 4@ string2 "Привет"
    then
    0AF9: samp say_msg "И тебе привет"
    end                                             
end
0BE0: raknet hook_ret true
2) Еще как вариант получать последнюю строку из чата и сравнивать тоже через 0с18, но тут может быть косяк, если в один момент вылетит много строк чата в одну секунду и скрипт может не успеть прочитать, сам чаще юзаю второй способ, потому что лень ебаться с хуками, но если надо какое-то действие моментальное на строку, то лучше через рцп ее получать
CLEO:
SAMP.GetChatString(99, 7@, 0, 0, 0)
 
  • Нравится
Реакции: Freym

клешь рояль

Известный
1,255
550
CLEO:
{$CLEO .cs}
0000: NOP

repeat
wait 0
until Samp.Available()

0B34: samp register_client_command "rra" to_label @1

:1
if 0AFF: samp 0@ = car_handle_by_samp_vehicle_id 503
then
    0ACD: show_text_highpriority "car 503 spizhen" time 2500
    0B43: samp cmd_ret
end
Крашит с кучей варнингов
 

Buhani4

Новичок
26
0
Помогите, пишу самый простой скрипт, в итоге: при загрузке сампа зависает на самом экране загрузки и дальше вылет....
CLEO:
{$CLEO}
0000:

:label
wait 0
if
0AB0:   key_pressed 49
jf @Label
0AF9: samp say_msg "lol"
jump @Label
 
Последнее редактирование модератором:

priestokk

Новичок
34
0
Помогите, пишу самый простой скрипт, в итоге: при загрузке сампа зависает на самом экране загрузки и дальше вылет....
CLEO:
{$CLEO}
0000:

:label
wait 0
if
0AB0:   key_pressed 49
jf @Label
0AF9: samp say_msg "lol"
jump @Label
У тебя пишет "label", а ты прыгаешь на "Label", которого не существует
 
Последнее редактирование модератором:

D3.Pheonix

🎹
Модератор
2,867
1,642
CLEO:
{$CLEO .cs}
0000: NOP

repeat
wait 0
until Samp.Available()

0B34: samp register_client_command "rra" to_label @1

:1
if 0AFF: samp 0@ = car_handle_by_samp_vehicle_id 503
then
    0ACD: show_text_highpriority "car 503 spizhen" time 2500
    0B43: samp cmd_ret
end
Крашит с кучей варнингов
Что ты хочешь вообще, словами напиши
 

Buhani4

Новичок
26
0
Дело не в том, что у меня прыжок на лабел с заглавной буквы. Смотрите в чем суть.
Я сделал скрипт, кинул в папку клео, запускаю игру, проходит полоса загрузки и так зависает, после чего прекращение работы программы. БЕЗ ЭТОГО КЛЕО ВСЕ НОРМАЛЬНО.
Когда пытался открыть этот клео в сани билдере выдало "неизвестный опкод 247b по адресу 0"
upload_2018-8-9_20-56-38.png


Дело не в том, что у меня прыжок на лабел с заглавной буквы. Смотрите в чем суть.
Я сделал скрипт, кинул в папку клео, запускаю игру, проходит полоса загрузки и так зависает, после чего прекращение работы программы. БЕЗ ЭТОГО КЛЕО ВСЕ НОРМАЛЬНО.
Когда пытался открыть этот клео в сани билдере выдало "неизвестный опкод 247b по адресу 0"
upload_2018-8-9_20-56-38.png
upload_2018-8-9_21-2-12.png
 
Последнее редактирование модератором:

01EG

Известный
Проверенный
629
354
CLEO:
{$CLEO .cs}
0000: NOP

repeat
wait 0
until Samp.Available()

0B34: samp register_client_command "rra" to_label @1

:1
if 0AFF: samp 0@ = car_handle_by_samp_vehicle_id 503
then
    0ACD: show_text_highpriority "car 503 spizhen" time 2500
    0B43: samp cmd_ret
end
Крашит с кучей варнингов
1) После регистрации команды нужен бесконечный цикл или пауза.
2) 0AFF: не применяется в условии, ты получаешь хендл автомобиля по айди машины, а потом проверяешь существует ли машина
Короче, скажи хотя бы что ты хочешь сделать
Помогите, пишу самый простой скрипт, в итоге: при загрузке сампа зависает на самом экране загрузки и дальше вылет....
CLEO:
{$CLEO}
0000:

:label
wait 0
if
0AB0:   key_pressed 49
jf @Label
0AF9: samp say_msg "lol"
jump @Label
1) опкоды сф добавь в Санибилдер
2) Когда используешь опкоды из СФ, нужно проверять самп на инизиалицию
repeat
wait 500
until Samp.Available()
 

клешь рояль

Известный
1,255
550
1) После регистрации команды нужен бесконечный цикл или пауза.
2) 0AFF: не применяется в условии, ты получаешь хендл автомобиля по айди машины, а потом проверяешь существует ли машина
Короче, скажи хотя бы что ты хочешь сделать

1) опкоды сф добавь в Санибилдер
2) Когда используешь опкоды из СФ, нужно проверять самп на инизиалицию
repeat
wait 500
until Samp.Available()
Когда я пишу команду /rra то скрипт ищет в зоне стрима машину с 503id и прописывает команду /rr 503