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

AXE_CAMERON

Участник
66
0
У меня есть строка, которую я ввожу в чат, но не отправил еще- "Здравствуйте1". В конце строки стоит единица ну или другой символ, я хочу удалить этот последний символ, при эмуляции нажатия backspace на задержку 0 стирается 2-3 символа последних. Каким образом можно стереть именно последний символ?)
 

Royan_Millans

Известный
145
182
У меня есть строка, которую я ввожу в чат, но не отправил еще- "Здравствуйте1". В конце строки стоит единица ну или другой символ, я хочу удалить этот последний символ, при эмуляции нажатия backspace на задержку 0 стирается 2-3 символа последних. Каким образом можно стереть именно последний символ?)
Код:
:delete_last_chars_from_string
// call @delete_last_chars_from_string call 2 0@ 5
var
0@: int
1@: int
2@: int
end
0C17: 2@ = strlen 0@
2@ -= 1@
0@ += 2@
0C11: memset 0@ 0 1@
ret 0

Получить строку из чата - 0B77: samp get_chat_input_text_to 0@
Установить строку в чат - 0B76: samp set_chat_input_text 0@
 

Weeazy

Новичок
11
0
как сделать типо в локальных диалогов диалог и на кнопку при нажатие еще один диалог
 

Lightkiller

Известный
Всефорумный модератор
557
397
дак нету там проверять если нажата мне нужно когда нажата ок и диалог выйдет другой
CLEO:
if 0B3C: samp is_dialog_responded id 1 button 2@ list_item 3@ input_text 4@
then
if 2@ == 1 // первая кнопка
then
0B3B: samp show_dialog id 2 caption 2@ text 3@ button_1 4@ button_2 5@ style 6@
 

Weeazy

Новичок
11
0
Код:
           {$CLEO .cs}
0000: NOP

repeat
    wait 0
until samp.Available()
0B34: samp register_client_command "nnl" to_label @DIGalog
wait 20000

0AF8: samp add_message_to_chat "{00FF00}[]-Àâòîð " color 2@
0662: printstring "us - /nnl"    3000

0BDE: pause_thread 0


       

:DIGalog
0AC6: 0@ = label @label offset
0B3B: samp show_dialog id 223 caption "Dialog 1" text 0@ button_1 "ok" button_2 "Close" style 0
0B43: samp cmd_ret

:Label
HEX
"{FF0000}                       " a
"{FF0000}                       " a
"{FF0000}                       " a
"{FF0000}                       " a
"{FF0000}                       " a
"{FF0000}                       " a
"{FF0000}                       " a
"----------------------------------------------------------------------------------------" a




Тут надо мне добавить еще один диалог когда нажму на кнопку ок и диалог и другой текст
 

Royan_Millans

Известный
145
182
Код:
           {$CLEO .cs}
0000: NOP

repeat
    wait 0
until samp.Available()
0B34: samp register_client_command "nnl" to_label @DIGalog
wait 20000

0AF8: samp add_message_to_chat "{00FF00}[]-Àâòîð " color 2@
0662: printstring "us - /nnl"    3000

0BDE: pause_thread 0


      

:DIGalog
0AC6: 0@ = label @label offset
0B3B: samp show_dialog id 223 caption "Dialog 1" text 0@ button_1 "ok" button_2 "Close" style 0
0B43: samp cmd_ret

:Label
HEX
"{FF0000}                       " a
"{FF0000}                       " a
"{FF0000}                       " a
"{FF0000}                       " a
"{FF0000}                       " a
"{FF0000}                       " a
"{FF0000}                       " a
"----------------------------------------------------------------------------------------" a




Тут надо мне добавить еще один диалог когда нажму на кнопку ок и диалог и другой текст
Ты хочешь сразу 2 диалога на экран вывести? Если да - используй DXUT диалоги
 

The Spark

Известный
653
672
Как поменять шрифт, цвет ников игроков, ник с Клиста, а ид белый. Вообщем как в сабейте
 

AXE_CAMERON

Участник
66
0
Посмотрел я значит урок Таирки по получению всех игроков в зоне стрима, но как многие знают, он в своих уроках пишет по меткам. Я привык писать хоть кривыми, но высокоуровневыми конструкциями, а переделать из меточной вариации скрипт в высокоуровневый не смог, помогите, пожалуйста)
Код:
{$CLEO}
{$NOSOURCE}
0000:

:1
wait 0
0AFA:  is_samp_available
jf @1
0A8E: 0@ = 0 + 0

:2
0A8E: 0@ = 0@ + 1
8039: not 0@ == 1001
jf @1
0B23:  samp is_player_connected 0@
jf @2
0B20: samp 1@ = actor_handle_by_samp_player_id 0@
056D:   actor 1@ defined
jf @2
04C4: store_coords_to 2@ 3@ 4@ from_actor 1@ with_offset 0.0 0.0 0.0
0B55: convert_3D_coords 2@ 3@ 4@ to_screen 2@ 3@
0B37: samp 5@ = get_player_color 0@
0B70: render draw_polygon_pos 2@ 3@ size 18 18 corners 15 rotation 0.0 color 5@
jump @2
 

Royan_Millans

Известный
145
182
Посмотрел я значит урок Таирки по получению всех игроков в зоне стрима, но как многие знают, он в своих уроках пишет по меткам. Я привык писать хоть кривыми, но высокоуровневыми конструкциями, а переделать из меточной вариации скрипт в высокоуровневый не смог, помогите, пожалуйста)
Код:
{$CLEO}
{$NOSOURCE}
0000:

:1
wait 0
0AFA:  is_samp_available
jf @1
0A8E: 0@ = 0 + 0

:2
0A8E: 0@ = 0@ + 1
8039: not 0@ == 1001
jf @1
0B23:  samp is_player_connected 0@
jf @2
0B20: samp 1@ = actor_handle_by_samp_player_id 0@
056D:   actor 1@ defined
jf @2
04C4: store_coords_to 2@ 3@ 4@ from_actor 1@ with_offset 0.0 0.0 0.0
0B55: convert_3D_coords 2@ 3@ 4@ to_screen 2@ 3@
0B37: samp 5@ = get_player_color 0@
0B70: render draw_polygon_pos 2@ 3@ size 18 18 corners 15 rotation 0.0 color 5@
jump @2
CLEO:
{$CLEO}
0000: NOP

repeat // Создаем беск. цикл, пока не запустится SA:MP
wait 0
until Samp.Available()

FOR 0@ = 0 to 999 // Создаем цикл FOR который пройдет 1000 итераций от 0 до 999, записывая каждый раз значение в переменную 0@
if 0B23:  samp is_player_connected 0@
then
   if and
   0B20: samp 1@ = actor_handle_by_samp_player_id 0@ // Получаем handle игрока по ID
   056D:   actor 1@ defined // Проверяем этот handle, есть ли он в стриме
   then
      04C4: store_coords_to 2@ 3@ 4@ from_actor 1@ with_offset 0.0 0.0 0.0
      0B55: convert_3D_coords 2@ 3@ 4@ to_screen 2@ 3@
      0B37: samp 5@ = get_player_color 0@
      0B70: render draw_polygon_pos 2@ 3@ size 18 18 corners 15 rotation 0.0 color 5@
   end
end
END

Как можно отредактировать исходящий RPC пакет? Например пользователь отправляет текст в чат, мы его редактируем - и отправляем отредактированный RPC пакет.