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

Perojek)0

Известный
205
3
Как можно узнать время и дату?

И почему не появляется курсор?(Также пробовал опкод 0B5D)
CLEO:
{$CLEO}
{$INCLUDE SF}
0000:

repeat
    wait 2000
until 0AFA:  is_samp_available

0B80: dialog 0@ = create "test"
0B84: dialog 0@ set_pos_XY 50 50 size 300 400
0B82: dialog 0@ add_button id 1 text "close" pos_XY 75 350 size 150 30
0B34: samp register_client_command "test" to_label @test
0B86: dialog 0@ set_visible 0
while true
wait 0
    if 0B81: dialog 0@ pop_event_to 1@ control_id_to 2@
    then
        if   
        1@==257
        then
            if
            2@==1
            then
            0B8D: samp set_cursor_mode 0
            0B86: dialog 0@ set_visible 0
            end
        end
    end
end
:test
0B8D: samp set_cursor_mode 2
0B86: dialog 0@ set_visible 1
0B43: samp cmd_ret
 
Последнее редактирование модератором:

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,463
Потому что при закрытии чата отключается курсор.
Включай после того, как чат был закрыт.
 
  • Нравится
Реакции: Perojek)0

Garrus

Известный
159
20
Ребят, нужно перенести цикл из тела команды в основной цикл. Как это лучше реализовать? Есть идея использовать какую-то переменную в качестве флага. Допустим, мы вводим команду и в определенную переменную записывается 1, а в основном цикле мы ставим проверку на то, что переменная равна 1 и выполняем код, если это так.

Сама команда работает так: мы ловим параметр команды и отправляем специальную команду серверу. После чего, ставится цикл, в котором ловим определенное сообщение из чата. Если словили - все хорошо, можно ехать дальше.
 

BlackKnigga

Известный
BH Team
922
445
Ребят, нужно перенести цикл из тела команды в основной цикл. Как это лучше реализовать? Есть идея использовать какую-то переменную в качестве флага. Допустим, мы вводим команду и в определенную переменную записывается 1, а в основном цикле мы ставим проверку на то, что переменная равна 1 и выполняем код, если это так.

Сама команда работает так: мы ловим параметр команды и отправляем специальную команду серверу. После чего, ставится цикл, в котором ловим определенное сообщение из чата. Если словили - все хорошо, можно ехать дальше.
Так это и делается
 
  • Нравится
Реакции: Garrus

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,965
Как можно узнать время и дату?
CLEO:
{$CLEO}
0AC6: 0@ = label @lpSystemTime offset
0AA5: call {__stdcall::GetLocalTime}0x81E514 num_params 1 pop 0 | {lpSystemTime}0@ |
0A8D: {Year}1@ = read_memory {lpSystemTime}0@ size {WORD}2 virtual_protect TRUE
{ ... }
0A93: end_custom_thread_
                      
:lpSystemTime
HEX
    00 00 00
    00 00 00
    00 00 00
    00 00 00
    00 00 00
    00 00 00
    00 00 00
    00 00 00
    0
END
 
  • Нравится
Реакции: Perojek)0

Perojek)0

Известный
205
3
CLEO:
{$CLEO}
0AC6: 0@ = label @lpSystemTime offset
0AA5: call {__stdcall::GetLocalTime}0x81E514 num_params 1 pop 0 | {lpSystemTime}0@ |
0A8D: {Year}1@ = read_memory {lpSystemTime}0@ size {WORD}2 virtual_protect TRUE
{ ... }
0A93: end_custom_thread_
                   
:lpSystemTime
HEX
    00 00 00
    00 00 00
    00 00 00
    00 00 00
    00 00 00
    00 00 00
    00 00 00
    00 00 00
    0
END
Спасибо, только чё-т туплю.. не могу понять, как достать число и т.д.?

и поч это не робит?
CLEO:
{$CLEO}
{$INCLUDE SF}
0000:

repeat
    wait 2000
until 0AFA:  is_samp_available

while true
wait 0
    if
    0ADC:   test_cheat "6"
    then
    0AC8: 0@ = allocate_memory_size 260
    0AD3: 0@ = format "test"
    0AF8: samp add_message_to_chat 0@ color -1
    0AF1: write_int 16 to_ini_file "cleo\test.ini" section 0@ key "Int"
    0AC9: free_allocated_memory 0@
    end
end
 
Последнее редактирование:

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,965
Спасибо, только чё-т туплю.. не могу понять, как достать число и т.д.?

и поч это не робит?
CLEO:
{$CLEO}
{$INCLUDE SF}
0000:

repeat
    wait 2000
until 0AFA:  is_samp_available

while true
wait 0
    if
    0ADC:   test_cheat "6"
    then
    0AC8: 0@ = allocate_memory_size 260
    0AD3: 0@ = format "test"
    0AF8: samp add_message_to_chat 0@ color -1
    0AF1: write_int 16 to_ini_file "cleo\test.ini" section 0@ key "Int"
    0AC9: free_allocated_memory 0@
    end
end
Насколько помню опкоды для работы с INI файлами не работают с указателями. Попробуй написать вручную WinApi функцию для записи данных в INI . Кажется называется WritePrivateProfileString .


не могу понять, как достать число и т.д.?
С каждым разом прибавляешь к структуре +2 и читаешь с помощью read_memory . 2 потому что тип WORD для каждого параметра. Структуру можешь найти на MSDN в описание GetLocalTime .
 
  • Нравится
Реакции: FYP и Perojek)0

iTz_WEEZY

Известный
298
85
как делать запись в txt, видел тут такой вопрос чет найти не могу, да и в Вики не нашел ничего
 

RedBoxWhite

Известный
337
27
Как в этом скрипте сделать, чтобы он потом в чат вывел кол-во человек в зоне стрима?
CLEO:
{$CLEO}
0000:
wait 2000

0B34: "da" to_label @Test


while true
    wait 0
end

:Test
for 0@ = 0 to 999
if 0B23: samp is_player_connected 0@
   then
   if 0B20: samp 1@ = actor_handle_by_samp_player_id 0@  
   then 
   0AF8: "%d" -1 0@
   end
   end
   end
0B43: samp cmd_ret