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

Art4D

Новичок
87
13
Обьясните плис, почему две одинаковые переменные код не может сравнить?
CLEO:
{$CLEO .cs}
0000: NOP

wait 3000
:fast_run
wait 100

:jump_an_obstacle
if and
0AB0:  key_pressed 79 //O
0AB0:  key_pressed 80 //P
jf @fast_run

:jump_an_obstacle_2
wait 0
if and
8AB0: not key_pressed 79 //O
8AB0: not key_pressed 80 //P
jf @jump_an_obstacle_2


:code
wait 1000
repeat
010B: 13@ = player $PLAYER_CHAR money //ЭТА ПЕРЕМЕННАЯ
wait 3000
010B: 23@ = player $PLAYER_CHAR money //И ЭТА, ТАКАЯ ЖЕ
until 001D: 13@ == 23@
0AF8: samp add_message_to_chat "диняк одинаковое кол во" -1
goto @fast_run

Не выводит сообщение, т.к. цикл почему то не заканчивается
 

Ro0oma

Участник
34
14
Обьясните плис, почему две одинаковые переменные код не может сравнить?
CLEO:
{$CLEO .cs}
0000: NOP

wait 3000
:fast_run
wait 100

:jump_an_obstacle
if and
0AB0:  key_pressed 79 //O
0AB0:  key_pressed 80 //P
jf @fast_run

:jump_an_obstacle_2
wait 0
if and
8AB0: not key_pressed 79 //O
8AB0: not key_pressed 80 //P
jf @jump_an_obstacle_2


:code
wait 1000
repeat
010B: 13@ = player $PLAYER_CHAR money //ЭТА ПЕРЕМЕННАЯ
wait 3000
010B: 23@ = player $PLAYER_CHAR money //И ЭТА, ТАКАЯ ЖЕ
until 001D: 13@ == 23@
0AF8: samp add_message_to_chat "диняк одинаковое кол во" -1
goto @fast_run

Не выводит сообщение, т.к. цикл почему то не заканчивается
Ты просто используешь не тот опкод.
Вот, держи:
CLEO:
003B:   18@ == 21@  // (int) Замени на свои
Ты использовал:
CLEO:
001D:   27@ > 33@  // (int)
Это отпод 001D, и простая замена знаков ничего не изменит.
 
  • Нравится
Реакции: Art4D

клешь рояль

Известный
1,255
550
Как получить id человека который написал в репорт, допустим слово "чит".
Строка из чат лога---- [22:11:55] Pipiska_Mamonta[15]:{FFCD00} чит
 

Royan_Millans

Известный
145
183
Как получить id человека который написал в репорт, допустим слово "чит".
Строка из чат лога---- [22:11:55] Pipiska_Mamonta[15]:{FFCD00} чит
CLEO:
{$CLEO}
0000: NOP

repeat
wait 0
until Samp.Available()




while true
wait 0
alloc 1@ 256
0B75: samp get_chat_string 99 text_to 1@ prefix_to 0 color_to 0 prefix_color_to 0 // Получаем текст последней строчки из чата
if 0C18: 0@ = strstr string1 1@ string2 ":{FFCD00}" // Если в строке есть текст - ":{FFCD00}"
then
0AD4: 0@ = scan_string 1@ format "%s[%d]:{FFCD00} %s" 2@v 3@ 4@v // Сканируем строчку, и записываем все данные в переменные
0AF8: samp add_message_to_chat "Ник: %s" color 0xFFFFFF 2@v // Вывод данных
0AF8: samp add_message_to_chat "ID: %d" color 0xFFFFFF 3@ // ..
0AF8: samp add_message_to_chat "Сообщение: %s" color 0xFFFFFF 4@v //..
end
free 1@
end
 
  • Нравится
Реакции: клешь рояль

клешь рояль

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

repeat
wait 0
until Samp.Available()




while true
wait 0
alloc 1@ 256
0B75: samp get_chat_string 99 text_to 1@ prefix_to 0 color_to 0 prefix_color_to 0 // Получаем текст последней строчки из чата
if 0C18: 0@ = strstr string1 1@ string2 ":{FFCD00}" // Если в строке есть текст - ":{FFCD00}"
then
0AD4: 0@ = scan_string 1@ format "%s[%d]:{FFCD00} %s" 2@v 3@ 4@v // Сканируем строчку, и записываем все данные в переменные
0AF8: samp add_message_to_chat "Ник: %s" color 0xFFFFFF 2@v // Вывод данных
0AF8: samp add_message_to_chat "ID: %d" color 0xFFFFFF 3@ // ..
0AF8: samp add_message_to_chat "Сообщение: %s" color 0xFFFFFF 4@v //..
end
free 1@
end
CLEO:
{$CLEO}
0000: NOP

repeat
wait 0
until Samp.Available()




while true
wait 0
alloc 1@ 256
0B75: samp get_chat_string 99 text_to 1@ prefix_to 0 color_to 0 prefix_color_to 0 // Получаем текст последней строчки из чата
if 0C18: 0@ = strstr string1 1@ string2 ":{FFCD00}чит" // Если в строке есть текст - ":{FFCD00}"
then
0AD4: 0@ = scan_string 1@ format "%s[%d]:{FFCD00} %s" 2@v 3@ 4@v // Сканируем строчку, и записываем все данные в переменные
0AF9: samp say_msg "/ans %d Накажут, если хотите быстрее пишите жалобу." 2@
end
free 1@
end
Я тут дописал своё и по идее это должно отвечать человеку если он пишет "чит", так ли это?
 

priestokk

Новичок
34
0
Пацаны, помогите пожалуйста зациклить кд ниже на 5 секунд. Я просто хз как это делать, смотрел урок дарк пикселя, но он особо не рассказал как это сделать, сказал что пока вам это не нужно.
Вот собственно код:
CLEO:
0407: store_coords_to 13@ 14@ 15@ from_car 30@ with_offset 0.0 0.0 0.0
        00A1: put_actor $PLAYER_ACTOR at 13@ 14@ 15@
        02EB: restore_camera_with_jumpcut
        wait 500
if
    00DF:   actor $PLAYER_ACTOR driving
    004D: jump_if_false @Error2
03C0: 1@ = actor $PLAYER_ACTOR car
07DA: set_car 1@ rotation_velocity_XYZ 0.0 0.0 200.0 through_center_of_body
        02EB: restore_camera_with_jumpcut
 
Последнее редактирование:

D3.Pheonix

🎹
Модератор
2,867
1,642
Пацаны, помогите пожалуйста зациклить на 5 секунд. Я просто хз как это делать, смотрел урок дарк пикселя, но он особо не рассказал как это сделать, сказал что пока вам это не нужно.
Вот собственно код:
CLEO:
0407: store_coords_to 13@ 14@ 15@ from_car 30@ with_offset 0.0 0.0 0.0
        00A1: put_actor $PLAYER_ACTOR at 13@ 14@ 15@
        02EB: restore_camera_with_jumpcut
        wait 500
if
    00DF:   actor $PLAYER_ACTOR driving
    004D: jump_if_false @Error2
03C0: 1@ = actor $PLAYER_ACTOR car
07DA: set_car 1@ rotation_velocity_XYZ 0.0 0.0 200.0 through_center_of_body
        02EB: restore_camera_with_jumpcut
1sec = 1000ms. У тебя наверное в остальном коде тоже косяки будут.
P.S Пока вам это не нужно
 

01EG

Известный
Проверенный
629
354
не чувак, я попросил чтобы эту часть кода мне зациклили, я просто даже не знаю как это делать.
CLEO:
while true
0407: store_coords_to 13@ 14@ 15@ from_car 30@ with_offset 0.0 0.0 0.0
00A1: put_actor $PLAYER_ACTOR at 13@ 14@ 15@
02EB: restore_camera_with_jumpcut
wait 500
    if
    00DF:   actor $PLAYER_ACTOR driving
    then
    03C0: 1@ = actor $PLAYER_ACTOR car
    07DA: set_car 1@ rotation_velocity_XYZ 0.0 0.0 200.0 through_center_of_body
    02EB: restore_camera_with_jumpcut
    end
end
Ну поставил бы бесконечный цикл и всё. Всё работает с заданным интервалом по-нужному или че я хз.
Скинь полный когда скрипта, а то я мало понял смысл, нахуй он нужен ваще или это просто ты тренируешься писать что либо ?
 

priestokk

Новичок
34
0
CLEO:
while true
0407: store_coords_to 13@ 14@ 15@ from_car 30@ with_offset 0.0 0.0 0.0
00A1: put_actor $PLAYER_ACTOR at 13@ 14@ 15@
02EB: restore_camera_with_jumpcut
wait 500
    if
    00DF:   actor $PLAYER_ACTOR driving
    then
    03C0: 1@ = actor $PLAYER_ACTOR car
    07DA: set_car 1@ rotation_velocity_XYZ 0.0 0.0 200.0 through_center_of_body
    02EB: restore_camera_with_jumpcut
    end
end
Ну поставил бы бесконечный цикл и всё. Всё работает с заданным интервалом по-нужному или че я хз.
Скинь полный когда скрипта, а то я мало понял смысл, нахуй он нужен ваще или это просто ты тренируешься писать что либо ?
Да, тренируюсь. Смотри, мне надо чтобы код выше повторялся 5 секунд. Я так понял что ты его командой while true зациклил навсегда, а мне надо чтобы он повторялся 5 секунд, после чего пошел дальше. Это не целый код, это лишь пару строк целого кода, которые надо зациклить на 5 секунд. Я хз как по-другому объяснить. Мне надо чтобы код повторялся 5 секунд, а после 5 секунд пошел дальше
 

D3.Pheonix

🎹
Модератор
2,867
1,642
Да, тренируюсь. Смотри, мне надо чтобы код выше повторялся 5 секунд. Я так понял что ты его командой while true зациклил навсегда, а мне надо чтобы он повторялся 5 секунд, после чего пошел дальше. Это не целый код, это лишь пару строк целого кода, которые надо зациклить на 5 секунд. Я хз как по-другому объяснить. Мне надо чтобы код повторялся 5 секунд, а после 5 секунд пошел дальше
Можешь таймер заюзать, wait типа пауза на n сек
 

NookieONE

Участник
128
1
0A8C: write_memory 0x716642 size 4 value 100000.0 virtual_protect 1
0A8C: write_memory 7431765 size 4 value 100000.0 virtual_protect 1
0A8C: write_memory 12216218 size 4 value 13 virtual_protect 1

Что это?