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

edgar112

Новичок
1
0
Неверное число условий

Код:
00D6: if
0019:   2@ > 1000
004D: jump_if_false @Label291
0A8E: 22@ = 2@ + 985 // int
0A8D: 23@ = read_memory 22@ size 4 virtual_protect 1
00D6: if
 

vitka.k

Потрачен
33
2
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
edgar112,Это весь скрипт?Если не весь,кинь сюда.
 

Niko

Известный
Проверенный
230
268
Как задать переменной текст?
Например: 1@ = "Лол"
 

Vingt_Deux

Новичок
19
0
Как сделать вызов таблицы по команде?
Как делать таблицу я научился тут, но она появляется при подключении к серверу. А мне надо, чтобы она появлялась только когда я вводу команду /primer. Надеюсь, до вас дошло вышесказанное.

Код:
{$CLEO}

const
    DIALOG_STYLE_LIST = 2
end

0000:

repeat
    wait 400
until 0AFA:  is_samp_available // Ожидаем инициализации структур SAMP'а

0AC8: 0@ = allocate_memory_size 64 // Выделяем память под список элементов(кол-во текста должно быть не больше 64 символов(пробелы и переходы на новую строку тоже равны 1 символу))
0ad3: format_stirng 0@ = "Первый пункт%cВторой пункт%cТретий пункт" 0xA 0xA // Создаем список, 0xA - означает переход на новую строку, а %c указывается в самой строке
0B3B: samp show_dialog id 17 caption "Третий диалог" text 0@ button_1 "Выбрать" button_2 "Закрыть" style DIALOG_STYLE_LIST
0AC9: free_allocated_memory 0@ // Освобождаем память, больше не нужна.

while true
    wait 0
    if
        0B3C: samp is_dialog_responded id 17 button 1@ list_item 3@ input_text 0
    then

        0AF8: samp add_message_to_chat "Была нажата кнопка %d" color -1 params 1@

        if
            1@ == 1
        then
            0AF8: samp add_message_to_chat "А именно: Уря" color -1
            0AF8: samp add_message_to_chat "Элемент №%d" color -1 params 3@

            if 3@ == 0
            then 0AF8: samp add_message_to_chat "Это первый пункт" color -1
            end

            if 3@ == 1 // Был выбран второй пункт
            then 0AF8: samp add_message_to_chat "Это второй пункт" color -1
            end

            if 3@ == 2 // Был выбран третий пункт
            then 0AF8: samp add_message_to_chat "Это третий пункт" color -1
            end
        else
            0AF8: samp add_message_to_chat "А именно: Закрыть" color -1
        end
    end
end
 

san0

Известный
Друг
411
267
Как сделать вызов таблицы по команде?
Как делать таблицу я научился тут, но она появляется при подключении к серверу. А мне надо, чтобы она появлялась только когда я вводу команду /primer. Надеюсь, до вас дошло вышесказанное.

Код:
{$CLEO}

const
    DIALOG_STYLE_LIST = 2
end

0000:

repeat
    wait 400
until 0AFA:  is_samp_available // Ожидаем инициализации структур SAMP'а

0AC8: 0@ = allocate_memory_size 64 // Выделяем память под список элементов(кол-во текста должно быть не больше 64 символов(пробелы и переходы на новую строку тоже равны 1 символу))
0ad3: format_stirng 0@ = "Первый пункт%cВторой пункт%cТретий пункт" 0xA 0xA // Создаем список, 0xA - означает переход на новую строку, а %c указывается в самой строке
0B3B: samp show_dialog id 17 caption "Третий диалог" text 0@ button_1 "Выбрать" button_2 "Закрыть" style DIALOG_STYLE_LIST
0AC9: free_allocated_memory 0@ // Освобождаем память, больше не нужна.

while true
    wait 0
    if
        0B3C: samp is_dialog_responded id 17 button 1@ list_item 3@ input_text 0
    then

        0AF8: samp add_message_to_chat "Была нажата кнопка %d" color -1 params 1@

        if
            1@ == 1
        then
            0AF8: samp add_message_to_chat "А именно: Уря" color -1
            0AF8: samp add_message_to_chat "Элемент №%d" color -1 params 3@

            if 3@ == 0
            then 0AF8: samp add_message_to_chat "Это первый пункт" color -1
            end

            if 3@ == 1 // Был выбран второй пункт
            then 0AF8: samp add_message_to_chat "Это второй пункт" color -1
            end

            if 3@ == 2 // Был выбран третий пункт
            then 0AF8: samp add_message_to_chat "Это третий пункт" color -1
            end
        else
            0AF8: samp add_message_to_chat "А именно: Закрыть" color -1
        end
    end
end
Код:
{$CLEO}

const
    DIALOG_STYLE_LIST = 2
end

0000:

repeat
    wait 400
until 0AFA:  is_samp_available // Ожидаем инициализации структур SAMP'а

0B34: samp register_client_command "primer" to_label @primer // регистрация команды

while true
    wait 0
    if 0B3C: samp is_dialog_responded id 17 button 1@ list_item 3@ input_text 0
    then

        0AF8: samp add_message_to_chat "Была нажата кнопка %d" color -1 params 1@

        if
            1@ == 1
        then
            0AF8: samp add_message_to_chat "А именно: Уря" color -1
            0AF8: samp add_message_to_chat "Элемент №%d" color -1 params 3@

            if 3@ == 0
            then 0AF8: samp add_message_to_chat "Это первый пункт" color -1
            end

            if 3@ == 1 // Был выбран второй пункт
            then 0AF8: samp add_message_to_chat "Это второй пункт" color -1
            end

            if 3@ == 2 // Был выбран третий пункт
            then 0AF8: samp add_message_to_chat "Это третий пункт" color -1
            end
        else
            0AF8: samp add_message_to_chat "А именно: Закрыть" color -1
        end
    end
end

:primer // метка команды должна быть после основного цикла скрипта
0AC8: 0@ = allocate_memory_size 64 // Выделяем память под список элементов(кол-во текста должно быть не больше 64 символов(пробелы и переходы на новую строку тоже равны 1 символу))
0ad3: format_stirng 0@ = "Первый пункт%cВторой пункт%cТретий пункт" 0xA 0xA // Создаем список, 0xA - означает переход на новую строку, а %c указывается в самой строке
0B3B: samp show_dialog id 17 caption "Третий диалог" text 0@ button_1 "Выбрать" button_2 "Закрыть" style DIALOG_STYLE_LIST
0AC9: free_allocated_memory 0@ // Освобождаем память, больше не нужна.
0B43: samp cmd_ret    // обязательный опкод после каждой метки а команду
 
  • Нравится
Реакции: Vingt_Deux

Vingt_Deux

Новичок
19
0
Код:
{$CLEO}

const
    DIALOG_STYLE_LIST = 2
end

0000:

repeat
    wait 400
until 0AFA:  is_samp_available // Ожидаем инициализации структур SAMP'а

0B34: samp register_client_command "primer" to_label @primer // регистрация команды

while true
    wait 0
    if 0B3C: samp is_dialog_responded id 17 button 1@ list_item 3@ input_text 0
    then

        0AF8: samp add_message_to_chat "Была нажата кнопка %d" color -1 params 1@

        if
            1@ == 1
        then
            0AF8: samp add_message_to_chat "А именно: Уря" color -1
            0AF8: samp add_message_to_chat "Элемент №%d" color -1 params 3@

            if 3@ == 0
            then 0AF8: samp add_message_to_chat "Это первый пункт" color -1
            end

            if 3@ == 1 // Был выбран второй пункт
            then 0AF8: samp add_message_to_chat "Это второй пункт" color -1
            end

            if 3@ == 2 // Был выбран третий пункт
            then 0AF8: samp add_message_to_chat "Это третий пункт" color -1
            end
        else
            0AF8: samp add_message_to_chat "А именно: Закрыть" color -1
        end
    end
end

:primer // метка команды должна быть после основного цикла скрипта
0AC8: 0@ = allocate_memory_size 64 // Выделяем память под список элементов(кол-во текста должно быть не больше 64 символов(пробелы и переходы на новую строку тоже равны 1 символу))
0ad3: format_stirng 0@ = "Первый пункт%cВторой пункт%cТретий пункт" 0xA 0xA // Создаем список, 0xA - означает переход на новую строку, а %c указывается в самой строке
0B3B: samp show_dialog id 17 caption "Третий диалог" text 0@ button_1 "Выбрать" button_2 "Закрыть" style DIALOG_STYLE_LIST
0AC9: free_allocated_memory 0@ // Освобождаем память, больше не нужна.
0B43: samp cmd_ret    // обязательный опкод после каждой метки а команду
Спасибо, дружище.
 

iGO[R]

Новичок
42
1
Как сделать так, чтобы в *.ini файле не заменялись данные, а добавлялись новые?

Вот код:

Код:
{$CLEO .cs}

0000: NOP

:Obj
Wait 0
If Key_down 50
Then

For 0@ = 0 To 20000
If 1@ = SAMP.ObjectHandleByID(0@)            
Then
2@ = Object.Model(1@)
Object.StorePos(1@, 3@, 4@, 5@)
Wait 1000

0AF1: write_int 2@ to_ini_file "My scripts\ObjectC\ObjectCoords.ini" section "Coord" key "Model ID"
0AF3: write_float 3@ to_ini_file "My scripts\ObjectC\ObjectCoords.ini" section "Coord" key "X"
0AF3: write_float 4@ to_ini_file "My scripts\ObjectC\ObjectCoords.ini" section "Coord" key "Y"
0AF3: write_float 5@ to_ini_file "My scripts\ObjectC\ObjectCoords.ini" section "Coord" key "Z"

End
End

End 
Jump @Obj
 
Последнее редактирование:

vitka.k

Потрачен
33
2
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Как сделать активацию скрипта на команду? например /dgun deagle
 

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,957
Как задать переменной текст?
PHP:
0AD3: 0@v = format "LoL"

Как сделать так, чтобы в *.ini файле не заменялись данные, а добавлялись новые?
Изменить название секции.


Как сделать активацию скрипта на команду? например /dgun deagle
PHP:
0B34: samp register_client_command "LoL" to_label @LoL

:LoL_Main
wait 0
if
0@ == 1
jf @LoL_Main
// Code
jump @LoL_Main

:LoL
0B12: 0@ = 0@ XOR 1
0B43: samp cmd_ret
 

iGO[R]

Новичок
42
1
А что за проблема в этом коде? Скрипт должен находить объекты в зоне стрима, и записывать их модели и координаты в .ini файл, но он записывает какие-то объекты которых нет рядом.

Вот код:

Код:
{$CLEO .cs}

0000: NOP

:Obj
Wait 0
If Key_down 50
Then
0A9A: 6@ = openfile "My scripts\ObjectC\ObjectCoords.ini" mode "at"
For 0@ = 0 To 20000
If 1@ = SAMP.ObjectHandleByID(0@)             
Then
2@ = Object.Model(1@)
Object.StorePos(1@, 3@, 4@, 5@)
Wait 100
0AD9: write_formatted_text "CreateObject(%i, %f, %f, %f)%c" in_file 6@ params 2@ 3@ 4@ 5@ 10   
End
End
0A9B: closefile 6@
End  
Jump @Obj
 

DarkExorcist

Новичок
77
3
А что за проблема в этом коде? Скрипт должен находить объекты в зоне стрима, и записывать их модели и координаты в .ini файл, но он записывает какие-то объекты которых нет рядом.

Вот код:

Код:
{$CLEO .cs}

0000: NOP

:Obj
Wait 0
If Key_down 50
Then
0A9A: 6@ = openfile "My scripts\ObjectC\ObjectCoords.ini" mode "at"
For 0@ = 0 To 20000
If 1@ = SAMP.ObjectHandleByID(0@)            
Then
2@ = Object.Model(1@)
Object.StorePos(1@, 3@, 4@, 5@)
Wait 100
0AD9: write_formatted_text "CreateObject(%i, %f, %f, %f)%c" in_file 6@ params 2@ 3@ 4@ 5@ 10  
End
End
0A9B: closefile 6@
End 
Jump @Obj
попробуй записывать значения не в .ini, а в обычный .txt
для записи в .ini другие опкоды.
 

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,957
А что за проблема в этом коде? Скрипт должен находить объекты в зоне стрима, и записывать их модели и координаты в .ini файл, но он записывает какие-то объекты которых нет рядом.

Вот код:

Код:
{$CLEO .cs}

0000: NOP

:Obj
Wait 0
If Key_down 50
Then
0A9A: 6@ = openfile "My scripts\ObjectC\ObjectCoords.ini" mode "at"
For 0@ = 0 To 20000
If 1@ = SAMP.ObjectHandleByID(0@)            
Then
2@ = Object.Model(1@)
Object.StorePos(1@, 3@, 4@, 5@)
Wait 100
0AD9: write_formatted_text "CreateObject(%i, %f, %f, %f)%c" in_file 6@ params 2@ 3@ 4@ 5@ 10  
End
End
0A9B: closefile 6@
End 
Jump @Obj
Используй опкод:


PHP:
0AE3: 5@ = random_object_near_point 0@ 1@ 2@ in_radius 10.0 find_next 1 //IF and SET
 

iGO[R]

Новичок
42
1
Ну вот, сделал в .txt, вроде работает:

Код:
{$CLEO .cs}

0000: NOP

:Obj
Wait 0
If Key_down 50
Then

0A9A: 6@ = openfile "My scripts\ObjectC\ObjectCoords.txt" mode "at"
For 0@ = 0 To 19995
If 1@ = SAMP.ObjectHandleByID(0@) 
Then       
If 03CA: object 1@ exists
Then
2@ = Object.Model(1@)
Object.StorePos(1@, 3@, 4@, 5@)
Wait 100
0AD9: write_formatted_text "CreateObject(%i, %f, %f, %f, 0, 0, 0, 0);%c" in_file 6@ params 2@ 3@ 4@ 5@ 10  
End

End

End
0A9B: closefile 6@
End

Jump @Obj
Но есть еще одна проблемка, теперь нужно все "0" кроме последней, заменить на угол разворота объекта по осям X Y Z. Кто может помочь?
 

DubStep_

Известный
292
52
Ну вот, сделал в .txt, вроде работает:

Код:
{$CLEO .cs}

0000: NOP

:Obj
Wait 0
If Key_down 50
Then

0A9A: 6@ = openfile "My scripts\ObjectC\ObjectCoords.txt" mode "at"
For 0@ = 0 To 19995
If 1@ = SAMP.ObjectHandleByID(0@)
Then      
If 03CA: object 1@ exists
Then
2@ = Object.Model(1@)
Object.StorePos(1@, 3@, 4@, 5@)
Wait 100
0AD9: write_formatted_text "CreateObject(%i, %f, %f, %f, 0, 0, 0, 0);%c" in_file 6@ params 2@ 3@ 4@ 5@ 10 
End

End

End
0A9B: closefile 6@
End

Jump @Obj
Но есть еще одна проблемка, теперь нужно все "0" кроме последней, заменить на угол разворота объекта по осям X Y Z. Кто может помочь?
Ты хочешь стилер объектов написать?
0176: 13@ = object 0@ Z_angle