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

kawa operand

перерывпятьминут
602
333
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
это gxt тебе не оно нужно
юзай ево
0ACF: show_formatted_styled_text "This is %.4X opcode" time 2000 style 1 0x0ACF
 
  • Нравится
Реакции: KirikRus299

san0

Известный
Друг
411
267
одиночные кавычки для символов, а для строки используются " "
клее девелопир же ну
'' - short string @s
"" - long string @v
Я новичёк в клео, поэтому подскажите как в данном клео сделать так чтобы создавался ини файл где нужно было указать ник нейм и ранг, и он автоматом вписывался в строки в данном клео.
Вы находитесь в разделе "Разработка" (само название уже должно выдавать смысл сего раздела).
Пожалуйста, не сорите здесь просьбами о написании какой-то программы (т.е. требуете уже готовый продукт).
 

Royan_Millans

Известный
145
182
Я новичёк в клео, поэтому подскажите как в данном клео сделать так чтобы создавался ини файл где нужно было указать ник нейм и ранг, и он автоматом вписывался в строки в данном клео.
Код:
// This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013
// This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP

:Noname_2
0001: wait 4000 ms
0AFA:  is_samp_available
004D: jump_if_false @Noname_2
0AF8: samp add_message_to_chat "{A3E900}[RPLicensor] {ffffff}Успешно загружен. Автор: {A3E900}Jonathan Kings" color 16316671

:Noname_102
0001: wait 0 ms
00D6: if and
0ADC:   test_cheat "E"
0AD2: 0@ = player $PLAYER_CHAR targeted_actor //IF and SET
004D: jump_if_false @Noname_315
0B2B: samp 1@ = get_player_id_by_actor_handle 0@
0AC8: 2@ = allocate_memory_size 512
0AD3: 2@ = format "Приветствие%cПасспорт%cНазначение на сдачу%cЕсли игрок сдал%cПродажа лицензий%c" 10 10 10 10 10
0B3B: samp show_dialog id 34 caption "{ffffff}[RPLicensor] By {A3E900}Jonathan" text 2@ button_1 "Принять" button_2 "Выйти" style 2
0AC9: free_allocated_memory 2@

:Noname_315
00D6: if
0B3C:  samp is_dialog_responded id 34 button 3@ list_item 4@ input_text 0
004D: jump_if_false @Noname_1358
00D6: if
0039:   3@ == 1
004D: jump_if_false @Noname_1358
018C: play_sound 1058 at 0.0 0.0 0.0
00D6: if
0039:   4@ == 0
004D: jump_if_false @Noname_458
0AF9: samp say_msg "Здравствуйте я *Следящий* Автошколы *Jonathan Kings* , чем могу помочь?"

:Noname_458
00D6: if
0039:   4@ == 2
004D: jump_if_false @Noname_681
0AF9: samp say_msg "/abar 3"
0001: wait 1000 ms
0AF9: samp say_msg "/me взял печать *Экзамен* и поставил её в бланк"
0001: wait 1000 ms
0AF9: samp say_msg "На улице стоят машины марки *Admiral*, садитесь в одну из них. далее вас ознакомит бортовой компьютер."
0001: wait 1000 ms
0AF9: samp say_msg "/driving %d" 1@

:Noname_681
00D6: if
0039:   4@ == 1
004D: jump_if_false @Noname_734
0AF9: samp say_msg "Могу ли я увидеть ваш паспорт?"

:Noname_734
00D6: if
0039:   4@ == 3
004D: jump_if_false @Noname_1095
0AF9: samp say_msg "/me взял с нижней полки чёрную ручку и нужную печать"
0001: wait 1000 ms
0AF9: samp say_msg "/todo Распишитесь пожалуйста, здесь*показывая пальцем на место для росписи"
0001: wait 1000 ms
0AF9: samp say_msg "/acasino 5"
0001: wait 1000 ms
0AF9: samp say_msg "/me поставил в бланк печать *Сдал* и поставил свою подпись"
0001: wait 1000 ms
0AF9: samp say_msg "/todo Поздравляю вас, вот держите свои права*передавая документ"
0001: wait 1000 ms
0AF9: samp say_msg "/acasino 5"
0001: wait 1000 ms
0AF9: samp say_msg "/gvlc %d" 1@

:Noname_1095
00D6: if
0039:   4@ == 4
004D: jump_if_false @Noname_1358
0AF9: samp say_msg "/me взял паспорт в правую руку, внимательно рассмотрев его вернул обратно"
0001: wait 1000 ms
0AF9: samp say_msg "/todo Держите ваш паспорт*передав паспорт человеку напротив."
0001: wait 1000 ms
0AF9: samp say_msg "/do принтер начал печать"
0001: wait 1000 ms
0AF9: samp say_msg "/todo Держите*передавая лицензию"
0001: wait 1000 ms
0AF9: samp say_msg "/gvlc %d" 1@

:Noname_1358
0002: jump @Noname_102
0B43: samp cmd_ret
Видео-урок от DarkP1xel: *Клик*
P.S: "Паспорт" пишется с одной "С"
 

LinkelnAweil

Участник
122
7
Как сделать скачивание файла, нужно для автообновления? Пытался сделать 0C65: 1@ = download_url "ссылка" to_file "test.txt", но файл не скачивается.
 

Royan_Millans

Известный
145
182
Как сделать скачивание файла, нужно для автообновления? Пытался сделать 0C65: 1@ = download_url "ссылка" to_file "test.txt", но файл не скачивается.
CLEO:
{$CLEO}

0000:

const // Константы для определения названий файлов и версии скрипта
    SCRIPT_VERSION = 1

    UPDATEINFO_FILE = "cleo_name_update.txt"
    CHANGELOG_FILE = "cleo_name_changelog.txt"
end

repeat
    wait 400
until 0AFA:  is_samp_available

0AF8: samp add_message_to_chat "Скрипт cleo_name. Версия №%d" color -1 SCRIPT_VERSION

0AB1: call_scm_func @check_updates 1 current_version SCRIPT_VERSION

while true
    wait 0
end

:download_check_status // Для проверки статуса загрузки(т.к. эта часть будет использоваться более, чем 1 раз)
// call @download_check_status 1 download_n 0@
1@ = -1
while 1@ == -1 // Скачивание всё ещё в процессе
    wait 0
    0C66: 1@ = get_download 0@ state // Получаем статус загрузки
end
0AB2: ret 1 1@ // Возвращаем статус зарузки

:url_fileupdateinfo // Т.к. в Sanny Builder иначе никак не подружиться со слешами в строках, придется как нить так
// Здесь хранится URL на данные с обновлением
hex
    "http:" "/" "/" "legend2360.googlecode.com/svn/trunk/autoupd_ex/cleo_name/update.txt" 00
end

:check_updates
// call @check_updates 1 current_version 0@
0AC6: 1@ = label @url_fileupdateinfo offset // Сделаем грешок и переопределим переменную
0C65: 1@ = download_url 1@ to_file UPDATEINFO_FILE // Начинаем скачивание файла
0AB1: call_scm_func @download_check_status 1 download_n 1@ status_to 2@
0C7D: release_download 1@ // Освобождаем, т.к. скачивание завершено

if 2@ <> 0 // Если статус НЕ равен 0(т.е. загрузка завершена неудачно), то
then
    0AF8: samp add_message_to_chat "Произошла ошибка во время загрузки. Ошибка %p" color -1 2@ // Выводим сообщение об ошибке
else // иначе
    0AF8: samp add_message_to_chat "Загрузка успешно завершена." color -1 // Выводим сообщение об успешном скачивании

    if 0AAB: file_exists UPDATEINFO_FILE // Мало ли файл не был создан в необходимом нам месте, проверим это на всякий случай
    then
        0AF0: 3@ = get_int_from_ini_file UPDATEINFO_FILE section "UPDATE" key "version" // Читаем номер версии в скаченном файле обновления
        if 001D: 3@ > 0@ // Если текущая версия скрипта меньше, чем указанная в файле обновления, то
        then
            0AF8: samp add_message_to_chat "Доступна новая версия обновления №%d для {FFFF00}cleo_name" color -1 3@ // Оповещаем

            0AC8: 4@ = allocate_memory_size 260 // Выделяем память под URL загрузки файла
            0C11: memset destination 4@ value 0 size 260 // Очищаем от ненужных символов(на всякий случай)

            0AF4: 4@ = read_string_from_ini_file UPDATEINFO_FILE section "UPDATE" key "changelog_url" // Читаем URL загрузки списка изменений
            0C65: 1@ = download_url 4@ to_file CHANGELOG_FILE // Скачиваем список изменений
            0AB1: call_scm_func @download_check_status 1 download_n 1@ status_to 2@ // ждем окончание загрузки
            0C7D: release_download 1@ //

            if 2@ == 0
            then
                0AB1: call_scm_func @show_changelog 0

            end

            // -------
            0C11: memset destination 4@ value 0 size 260 //
            0AF4: 4@ = read_string_from_ini_file UPDATEINFO_FILE section "UPDATE" key "script_url" //
            0C65: 1@ = download_url 4@ to_file "cleo/cleo_name.cs" // Скачиваем новую версию скрипта и заменяем текущий скрипт
            0AB1: call_scm_func @download_check_status 1 download_n 1@ status_to 2@ //
            0C7D: release_download 1@ //

            if 2@ == 0
            then
                0AF8: samp add_message_to_chat "Обновление завершено." color -1
            else
                0AF8: samp add_message_to_chat "Произошла ошибка при обновлении." color -1
            end

            0AC9: free_allocated_memory 4@
        end
    end
end
0AB2: ret 0

:show_changelog // Отдельная функция для показа списка изменений
if 0A9A: 0@ = openfile CHANGELOG_FILE mode "rt" // Открываем файл для чтения
then
    0AC8: 1@ = allocate_memory_size 96 // Выделяем память под строки из файла
    0C11: memset destination 1@ value 0 size 96

    0A9C: 2@ = file 0@ size // получаем размер файла
    2@++ // последний символ - нулевой

    0AC8: 4@ = allocate_memory_size 2@ // Выделяем память под список изменений
    0C11: memset destination 4@ value 0 size 2@
    repeat    
        0AD7: read_string_from_file 0@ to 1@ size 95
        0C17: 3@ = strlen 1@
        if 3@ > 0
        then
            0C15: strcat destination 4@ source 1@ // Прикрепляем строку из файла в буфер со списком изменений
        end
    until 0AD6: end_of_file 0@ reached

    0B3B: samp show_dialog id 335 caption "{FFFF00}Список изменений {FFFFFF}cleo_name" text 4@ button_1 "ОК" button_2 "" style 0 // Показываем диалог

    0AC9: free_allocated_memory 4@ // Далее не используется

    0AC9: free_allocated_memory 1@ //
    0A9B: closefile 0@ // Закрываем файл             
end
0AB2: ret 0
 

Shindji

Известный
115
6
Дайте пожалуйста опкод которым можно изменить параметры машины а именно zr-350
 

LinkelnAweil

Участник
122
7
CLEO:
{$CLEO}

0000:

const // Константы для определения названий файлов и версии скрипта
    SCRIPT_VERSION = 1

    UPDATEINFO_FILE = "cleo_name_update.txt"
    CHANGELOG_FILE = "cleo_name_changelog.txt"
end

repeat
    wait 400
until 0AFA:  is_samp_available

0AF8: samp add_message_to_chat "Скрипт cleo_name. Версия №%d" color -1 SCRIPT_VERSION

0AB1: call_scm_func @check_updates 1 current_version SCRIPT_VERSION

while true
    wait 0
end

:download_check_status // Для проверки статуса загрузки(т.к. эта часть будет использоваться более, чем 1 раз)
// call @download_check_status 1 download_n 0@
1@ = -1
while 1@ == -1 // Скачивание всё ещё в процессе
    wait 0
    0C66: 1@ = get_download 0@ state // Получаем статус загрузки
end
0AB2: ret 1 1@ // Возвращаем статус зарузки

:url_fileupdateinfo // Т.к. в Sanny Builder иначе никак не подружиться со слешами в строках, придется как нить так
// Здесь хранится URL на данные с обновлением
hex
    "http:" "/" "/" "legend2360.googlecode.com/svn/trunk/autoupd_ex/cleo_name/update.txt" 00
end

:check_updates
// call @check_updates 1 current_version 0@
0AC6: 1@ = label @url_fileupdateinfo offset // Сделаем грешок и переопределим переменную
0C65: 1@ = download_url 1@ to_file UPDATEINFO_FILE // Начинаем скачивание файла
0AB1: call_scm_func @download_check_status 1 download_n 1@ status_to 2@
0C7D: release_download 1@ // Освобождаем, т.к. скачивание завершено

if 2@ <> 0 // Если статус НЕ равен 0(т.е. загрузка завершена неудачно), то
then
    0AF8: samp add_message_to_chat "Произошла ошибка во время загрузки. Ошибка %p" color -1 2@ // Выводим сообщение об ошибке
else // иначе
    0AF8: samp add_message_to_chat "Загрузка успешно завершена." color -1 // Выводим сообщение об успешном скачивании

    if 0AAB: file_exists UPDATEINFO_FILE // Мало ли файл не был создан в необходимом нам месте, проверим это на всякий случай
    then
        0AF0: 3@ = get_int_from_ini_file UPDATEINFO_FILE section "UPDATE" key "version" // Читаем номер версии в скаченном файле обновления
        if 001D: 3@ > 0@ // Если текущая версия скрипта меньше, чем указанная в файле обновления, то
        then
            0AF8: samp add_message_to_chat "Доступна новая версия обновления №%d для {FFFF00}cleo_name" color -1 3@ // Оповещаем

            0AC8: 4@ = allocate_memory_size 260 // Выделяем память под URL загрузки файла
            0C11: memset destination 4@ value 0 size 260 // Очищаем от ненужных символов(на всякий случай)

            0AF4: 4@ = read_string_from_ini_file UPDATEINFO_FILE section "UPDATE" key "changelog_url" // Читаем URL загрузки списка изменений
            0C65: 1@ = download_url 4@ to_file CHANGELOG_FILE // Скачиваем список изменений
            0AB1: call_scm_func @download_check_status 1 download_n 1@ status_to 2@ // ждем окончание загрузки
            0C7D: release_download 1@ //

            if 2@ == 0
            then
                0AB1: call_scm_func @show_changelog 0

            end

            // -------
            0C11: memset destination 4@ value 0 size 260 //
            0AF4: 4@ = read_string_from_ini_file UPDATEINFO_FILE section "UPDATE" key "script_url" //
            0C65: 1@ = download_url 4@ to_file "cleo/cleo_name.cs" // Скачиваем новую версию скрипта и заменяем текущий скрипт
            0AB1: call_scm_func @download_check_status 1 download_n 1@ status_to 2@ //
            0C7D: release_download 1@ //

            if 2@ == 0
            then
                0AF8: samp add_message_to_chat "Обновление завершено." color -1
            else
                0AF8: samp add_message_to_chat "Произошла ошибка при обновлении." color -1
            end

            0AC9: free_allocated_memory 4@
        end
    end
end
0AB2: ret 0

:show_changelog // Отдельная функция для показа списка изменений
if 0A9A: 0@ = openfile CHANGELOG_FILE mode "rt" // Открываем файл для чтения
then
    0AC8: 1@ = allocate_memory_size 96 // Выделяем память под строки из файла
    0C11: memset destination 1@ value 0 size 96

    0A9C: 2@ = file 0@ size // получаем размер файла
    2@++ // последний символ - нулевой

    0AC8: 4@ = allocate_memory_size 2@ // Выделяем память под список изменений
    0C11: memset destination 4@ value 0 size 2@
    repeat   
        0AD7: read_string_from_file 0@ to 1@ size 95
        0C17: 3@ = strlen 1@
        if 3@ > 0
        then
            0C15: strcat destination 4@ source 1@ // Прикрепляем строку из файла в буфер со списком изменений
        end
    until 0AD6: end_of_file 0@ reached

    0B3B: samp show_dialog id 335 caption "{FFFF00}Список изменений {FFFFFF}cleo_name" text 4@ button_1 "ОК" button_2 "" style 0 // Показываем диалог

    0AC9: free_allocated_memory 4@ // Далее не используется

    0AC9: free_allocated_memory 1@ //
    0A9B: closefile 0@ // Закрываем файл            
end
0AB2: ret 0
Мда уж, спасибо за скопированный код, который я видел...
 

Royan_Millans

Известный
145
182
Последнее редактирование модератором: