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

woksonal

Известный
Проверенный
268
154
Народ помогите 3 часа не могу сделать скрипт ,который будет по нажатию клавиши загружать и воспроизводить звук загруженный в папку клео буду благодарен ,если поможете
{$CLEO .cs}
if
0@ = Audiostream.Load("cleo\MP3\1.MP3")
опкод не работает в качестве проверки
я бы сделал так
Код:
{$CLEO .cs}
{$INCLUDE SF}

while not SAMP.Available()
wait 100
end

0@ = Audiostream.Load("cleo\MP3\1.MP3")
0AB9: get_audio_stream_state 0@ store_to 1@
if 1@ == 3 // resume
then
    0AD1: show_formatted_text_highpriority "mp3 not found" time 2000
end

while true
wait 0
    if 0AB0:   key_pressed 50
    then
        Audiostream.PerformAction(0@, play)  // 0 stop; 1 play; 2 pause; 3 resume
        repeat
            wait 0
        until  0AB0: key_pressed 50
    end
end
 

Stels13445

Новичок
6
0
Можете подсказать почему не работает?
CLEO:
{$CLEO}
0000: 

:1
wait 0 
0AFA:  is_samp_available
jf @1
0A8E: 5@ = 400 + 28

:2
wait 0
0AFF: samp 0@ = car_handle_by_samp_vehicle_id 5@ 
if 
056E:   car 0@ defined 
jf @2 
if 
02CA:   car 0@ bounding_sphere_visible 
jf @2 
0407: store_coords_to 2@ 3@ 4@ from_car 0@ with_offset -0.1 1.0 0.0 
0B55: convert_3D_coords 2@ 3@ 4@ to_screen 2@ 3@ 
0B70: render draw_polygon_pos 2@ 3@ size 18 18 corners 15 rotation 0.5 color -1
jump @2
 

astap_

Известный
Всефорумный модератор
626
601
Можете подсказать почему не работает?
CLEO:
{$CLEO}
0000: 

:1
wait 0 
0AFA:  is_samp_available
jf @1
0A8E: 5@ = 400 + 28

:2
wait 0
0AFF: samp 0@ = car_handle_by_samp_vehicle_id 5@ 
if 
056E:   car 0@ defined 
jf @2 
if 
02CA:   car 0@ bounding_sphere_visible 
jf @2 
0407: store_coords_to 2@ 3@ 4@ from_car 0@ with_offset -0.1 1.0 0.0 
0B55: convert_3D_coords 2@ 3@ 4@ to_screen 2@ 3@ 
0B70: render draw_polygon_pos 2@ 3@ size 18 18 corners 15 rotation 0.5 color -1
jump @2
а что тебе нужно? этот код будет искать на экране кар с идом 428 и рисовать на нём многоугольник.
 

kotov

Участник
128
12
Для луа есть темка где можно почитать как делать скрипты, на клео есть подобное?
 

NoName_1

Новичок
1
0
Добрый день. Пишу скрипт, который должен будет вывести опеределённую информацию из .ini файла при вызове её ключа (в формате строки) через команду. Если сократить и оставить только то, что имеет отношение к проблеме, то выглядит примерно так:

CLEO:
:Label
if
0AAB:    file_exists “cleo\config.ini”
then
jf @Error
0B35: samp 0@ = get_last_command_params
0AD4: 1@ = scan_string 0@v format “%s” 2@ //Это вроде не обязательно
0AF8: samp add_message_to_chat 2@ color 0xFFFFFF // Позже объясню, зачем поставил
0AC8: 3@ = allocate_memory_size 512
0AF4: 3@ = read_string_from_ini_file “cleo\config.ini” section ‘SectionName’ key 2@v //ini файл уже заполнен
0AF8: samp add_message_to_chat “%s” color 0xFFFFFF 3@
0AC9: free_allocated_memory 3@
0B43: samp cmd_ret
end

И вот в чём проблема - я не могу добиться того, чтобы скрипт прочёл информацию из нужного key. Для того, чтобы проверить, что он видит на входе вместо этой переменной, сделал её вывод в чат. Если выводить 2@v - напечатается пустая строка. Работают лишь 2 варианта - 2@ либо «%s» и переменная после основного текста опкода. Но если поставить 2@ в key - произойдёт краш. Вариант с «%s» проверить не удалось, т.к. после компиляции скрипт стирает переменную, стоящую после тела опкода.

Подскажите, пожалуйста, как можно решить данную проблему? Или вставить переменную в опкод 0AD4 не возможно в принципе? Буду крайне признателен.
 
Последнее редактирование:

Kristyan

Известный
165
16
Добрый день. Пишу скрипт, который должен будет вывести опеределённую информацию из .ini файла при вызове её ключа (в формате строки) через команду. Если сократить и оставить только то, что имеет отношение к проблеме, то выглядит примерно так:

CLEO:
:Label
if
0AAB:    file_exists “cleo\config.ini”
then
jf @Error
0B35: samp 0@ = get_last_command_params
0AD4: 1@ = scan_string 0@v format “%s” 2@ //Это вроде не обязательно
0AF8: samp add_message_to_chat 2@ color 0xFFFFFF // Позже объясню, зачем поставил
0AC8: 3@ = allocate_memory_size 512
0AF4: 3@ = read_string_from_ini_file “cleo\config.ini” section ‘SectionName’ key 2@v //ini файл уже заполнен
0AF8: samp add_message_to_chat “%s” color 0xFFFFFF 3@
0AC9: free_allocated_memory 3@
0B43: samp cmd_ret
end

И вот в чём проблема - я не могу добиться того, чтобы скрипт прочёл информацию из нужного key. Для того, чтобы проверить, что он видит на входе вместо этой переменной, сделал её вывод в чат. Если выводить 2@v - напечатается пустая строка. Работают лишь 2 варианта - 2@ либо «%s» и переменная после основного текста опкода. Но если поставить 2@ в key - произойдёт краш. Вариант с «%s» проверить не удалось, т.к. после компиляции скрипт стирает переменную, стоящую после тела опкода.

Подскажите, пожалуйста, как можно решить данную проблему? Или вставить переменную в опкод 0AD4 не возможно в принципе? Буду крайне признателен.

CLEO:
if
0AAB:    file_exists “cleo\config.ini”
then
jf @Error
0B35: samp 0@ = get_last_command_params
0AD4: $NOT_USED = scan_string 0@ format “%s” 2@s //Это вроде не обязательно
0AF8: samp add_message_to_chat 2@s color 0xFFFFFF // Позже объясню, зачем поставил
0AC8: 5@= allocate_memory_size 512
0AF4: 5@= read_string_from_ini_file “cleo\config.ini” section "SectionName" key 2@s //ini файл уже заполнен
0AF8: samp add_message_to_chat “%s” color 0xFFFFFF 5@
0AC9: free_allocated_memory 5@
0B43: samp cmd_ret
 

Maestrov_1337_5163

Новичок
2
0
Добрый день.

Подскажите где можно найти классы Sampfuncs по типу:
SAMP.Avaible
SAMP.IsDialogActive(параметры и что обозначают)
SAMP.ChatInputOpened
SAMP.CmdRet

Какой оппкод отвечает за проверку нажата ли клавиша или введена ли команда, координаты мыши и цикл

К примеру хочу написать клео закуп, и надо чтобы при вводе команды /zakup <число>, столько раз нажимался Enter
 

Carrentine

Потрачен
569
462
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Добрый день.

Подскажите где можно найти классы Sampfuncs по типу:
SAMP.Avaible
SAMP.IsDialogActive(параметры и что обозначают)
SAMP.ChatInputOpened
SAMP.CmdRet

Какой оппкод отвечает за проверку нажата ли клавиша или введена ли команда, координаты мыши и цикл

К примеру хочу написать клео закуп, и надо чтобы при вводе команды /zakup <число>, столько раз нажимался Enter
1. https://blast.hk/wiki/doku.php
2.
CLEO:
{$CLEO}

0000:

repeat
    wait 0
until SAMP.Available()

while true
    wait 0
    if and
        key_down {id}88
        not SAMP.IsCursorActive()
    then
        while key_down {id}88
            wait 0
        end
        {main construction}
        print "Hello, World!" 1000
    end
end

3.
CLEO:
{$CLEO}

0000:

repeat
    wait 0
until SAMP.Available()

0b34: "cmd" @cmd
0bde:
:cmd
chatmsg "cmd vvedena" -1
SAMP.CmdRet
4.
CLEO:
0B5E: get_cursor_pos 0@ 1@
5.
CLEO:
{$CLEO}

0000:

repeat
    wait 0
until SAMP.Available()

0B34: cmd "zakup" @Zakup
0BDE:

@Zakup
SAMP.IsCommandTyped(0@)
0AD4: 0@ = scan_string 0@ format "%d" 1@
2@ = 1
for 2@ = 1 to 1@
    wait 100
    0C72: set_virtual_key 13 down true // enter
end
SAMP.CmdRet()
 
Последнее редактирование:

Skokk

Новичок
10
0
Здорова,народ столкнулся с проблемой ,хочу что бы при смерти персонажа воспроизводился звук вот код:
CLEO:
{$CLEO .cs}

0000: NOP

:NONAME_2
wait 0
if and
05BE: AS_actor $PLAYER_ACTOR die
0@ = Audiostream.Load("CLEO\MP3_2\2.MP3")
jf @NONAME_2
wait 0
Audiostream.PerformAction(0@, PLAY)
wait 8000
Audiostream.PerformAction(0@, STOP)
Audiostream.Release(0@)
jump @NONAME_2
 

Alive709

Новичок
1
0
Нужен клео которые должен выполнить определённую команду при достижении определённого расстояния к Игроку. Например: Я подбегаю к игроку, и скрипт сам выполняет заданную команду. Поможет кто с написанием?
 

D[a]Ni

Участник
63
3
Здорова,народ столкнулся с проблемой ,хочу что бы при смерти персонажа воспроизводился звук вот код:
CLEO:
{$CLEO .cs}

0000: NOP

:NONAME_2
wait 0
if and
05BE: AS_actor $PLAYER_ACTOR die
0@ = Audiostream.Load("CLEO\MP3_2\2.MP3")
jf @NONAME_2
wait 0
Audiostream.PerformAction(0@, PLAY)
wait 8000
Audiostream.PerformAction(0@, STOP)
Audiostream.Release(0@)
jump @NONAME_2
добавь проверку в конце что игрок жив, проще же будет. И что не так у тебя именно
 

Skokk

Новичок
10
0
Народ подскажите опкод ,который при запуске сампа пишет в чат ,кто сделал скрипт например Reconnect by Niko