Всем доброго времени суток. Много кто интересуется как создать меню в CLEO, но новички часто не понимают того что на самом деле легко. Если вы действительно хотите научится создавать нормальное меню, то я вам советую писать все в Sanny Builder, а не копировать простой код! Ну что начнем.
Открываем Sanny Builder И далее пишем:
Код
{$VERSION 3.1.0027} {$CLEO .cs} // Создаем CLEO в формате .cs
//-------------MAIN--------------- 0000: NOP // Нулевой НОП, во избежания крашей. thread 'Project' // Название всех дальнейших начинающих строк.
Создание строк меню:
Код
:Create_Menu // Начинаем поток. wait 0 // Ждем 0 мс. if and // Если. Кому не понятно что, смотрим урок от Колеса про условия. Actor.Defined($PLAYER_ACTOR) // Проверка на то создан ли персонаж. 0ab0: 121 // Активация меню на кнопку F11, коды клавиш узнаем в программе, ниже её выложу. else_jump @Create_Menu // Если 2 условия не выполнены, возвращаемся на поток @Create_Menu. 01B4: toggle_player $PLAYER_CHAR can_move 0 // Данный опкод убирает управление персонажем. can_move 0 если 0 это убираем управление, если 1 восстанавливаем управление. 0581: enable_radar 0 // Убираем радар. Так же и тут если 0 то убираем, если 1 восстанавливаем. gosub @0_629 // Переход на метку @0_629 ( Для перевода текста ) 08D4: 1@ = create_panel_with_title 'PROJECT DEVID' position 29.0 170.0 width 120.0 columns 1 interactive 1 background 1 alignment 0 // Создание меню на координатах указанных выше. 08DB: set_panel 1@ column 0 header 'DUMMY' data 'PLA_10' 'PLA_11' 'DUMMY' 'DUMMY 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' // Здесь название строчек меню. PLA_10 Название может быть любое, а ваш вкус, но и не забываем что его надо указывать тут :0 0900: unknown_set_object 'PLA_10' 0900: unknown_set_object "ColorCar" 0000: NOP jump @0_248 // Прыгаем на поток @0_248
Пред объявление строк:
Код
:0_248 // начинаем поток. wait 0 // Ждем 0 мс. if // Если 00E1: player 0 pressed_key 16 // Кнопка 16 - Это пробел, то есть нажимать на строчки нужно кнопкой пробел, вы можете её сменить на вашу. else_jump @0_342 // Если условие не выполнено, прыгаем на строчку @0_342 08D7: 2@ = panel 1@ active_row // Здесь активная строка записывается в переменную 2@ 0871: init_jump_table 2@ total_jumps 6 default_jump 0 @0_342 jumps 0 @111 1 @222 2 @null @null 3 @null 4 @null 5 @null 6 @null // Здесь пред объявляем дальнейшие строчки. null это пустая строчка, она нужна для того чтобы не выбирало ошибки, минимум нужно 6 потоков. return
Отключение меню:
Код
:0_342 // Создаем поток. wait 0 // Ждем 0 мс. if // Если. 0ab0: 120 // Клавиша F10 нажата. Идем дальше. else_jump @0_248 // Если клавиша F10 не нажата, прыгаем на строчку 0_248. Тем самым оставляем меню. 0581: enable_radar 1 // Включаем радар. 08DA: remove_panel 1@ // Убираем меню. 01B4: toggle_player $PLAYER_CHAR can_move 1 // Включаем управление персонажем. jump @Create_Menu // Прыгаем на поток @Create_Menu.
:0 0900: unknown_set_object 'PLA_10' // Название вашей строки. 0900: unknown_set_object "Actor Health" // Указываем на какой текст вы её хотите перевести. 0000: NOP // Нулевой НОП.
:1 0900: unknown_set_object 'PLA_11' // Название вашей строки. 0900: unknown_set_object "Actor Armour" // Указываем на какой текст вы её хотите перевести. 0000: NOP // Нулевой НОП.
Вот полный код:
Код
{$VERSION 3.1.0027} {$CLEO .cs} // Создаем CLEO в формате .cs
//-------------MAIN--------------- 0000: NOP // Нулевой НОП, во избежания крашей. thread 'Project' // Название всех дальнейших начинающих строк.
:Create_Menu // Начинаем поток. wait 0 // Ждем 0 мс. if and // Если. Кому не понятно что, смотрим урок от Колеса про условия. Actor.Defined($PLAYER_ACTOR) // Проверка на то создан ли персонаж. 0ab0: 121 // Активация меню на кнопку F11, коды клавиш узнаем в программе, ниже её выложу. else_jump @Create_Menu // Если 2 условия не выполнены, возвращаемся на поток @Create_Menu. 01B4: toggle_player $PLAYER_CHAR can_move 0 // Данный опкод убирает управление персонажем. can_move 0 если 0 это убираем управление, если 1 восстанавливаем управление. 0581: enable_radar 0 // Убираем радар. Так же и тут если 0 то убираем, если 1 восстанавливаем. gosub @0_629 // Переход на метку @0_629 ( Для перевода текста ) 08D4: 1@ = create_panel_with_title 'PROJECT DEVID' position 29.0 170.0 width 120.0 columns 1 interactive 1 background 1 alignment 0 // Создание меню на координатах указанных выше. 08DB: set_panel 1@ column 0 header 'DUMMY' data 'PLA_10' 'PLA_11' 'DUMMY' 'DUMMY 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' // Здесь название строчек меню. PLA_10 Название может быть любое, а ваш вкус, но и не забываем что его надо указывать тут :0 0900: unknown_set_object 'PLA_10' 0900: unknown_set_object "ColorCar" 0000: NOP jump @0_248 // Прыгаем на поток @0_248
:0_248 // начинаем поток. wait 0 // Ждем 0 мс. if // Если 00E1: player 0 pressed_key 16 // Кнопка 16 - Это пробел, то есть нажимать на строчки нужно кнопкой пробел, вы можете её сменить на вашу. else_jump @0_342 // Если условие не выполнено, прыгаем на строчку @0_342 08D7: 2@ = panel 1@ active_row // Здесь активная строка записывается в переменную 2@ 0871: init_jump_table 2@ total_jumps 6 default_jump 0 @0_342 jumps 0 @111 1 @222 2 @null @null 3 @null 4 @null 5 @null 6 @null // Здесь пред объявляем дальнейшие строчки. null это пустая строчка, она нужна для того чтобы не выбирало ошибки, минимум нужно 6 потоков. return
:0_342 // Создаем поток. wait 0 // Ждем 0 мс. if // Если. 0ab0: 120 // Клавиша F10 нажата. Идем дальше. else_jump @0_248 // Если клавиша F10 не нажата, прыгаем на строчку 0_248. Тем самым оставляем меню. 0581: enable_radar 1 // Включаем радар. 08DA: remove_panel 1@ // Убираем меню. 01B4: toggle_player $PLAYER_CHAR can_move 1 // Включаем управление персонажем. jump @Create_Menu // Прыгаем на поток @Create_Menu.
:0 0900: unknown_set_object 'PLA_10' // Название вашей строки. 0900: unknown_set_object "Actor Health" // Указываем на какой текст вы её хотите перевести. 0000: NOP // Нулевой НОП.
:1 0900: unknown_set_object 'PLA_11' // Название вашей строки. 0900: unknown_set_object "Actor Armour" // Указываем на какой текст вы её хотите перевести. 0000: NOP // Нулевой НОП.
Ну проверку на создан ли персонаж можно убрать! Получится вот так. Полный код:
Код
{$VERSION 3.1.0027} {$CLEO .cs} // Создаем CLEO в формате .cs
//-------------MAIN--------------- 0000: NOP // Нулевой НОП, во избежания крашей. thread 'Project' // Название всех дальнейших начинающих строк.
:Create_Menu // Начинаем поток. wait 0 // Ждем 0 мс. if // Если. Кому не понятно что, смотрим урок от Колеса про условия. 0ab0: 121 // Активация меню на кнопку F11, коды клавиш узнаем в программе, ниже её выложу. else_jump @Create_Menu // Если 2 условия не выполнены, возвращаемся на поток @Create_Menu. 01B4: toggle_player $PLAYER_CHAR can_move 0 // Данный опкод убирает управление персонажем. can_move 0 если 0 это убираем управление, если 1 восстанавливаем управление. 0581: enable_radar 0 // Убираем радар. Так же и тут если 0 то убираем, если 1 восстанавливаем. gosub @0_629 // Переход на метку @0_629 ( Для перевода текста ) 08D4: 1@ = create_panel_with_title 'PROJECT DEVID' position 29.0 170.0 width 120.0 columns 1 interactive 1 background 1 alignment 0 // Создание меню на координатах указанных выше. 08DB: set_panel 1@ column 0 header 'DUMMY' data 'PLA_10' 'PLA_11' 'DUMMY' 'DUMMY 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' // Здесь название строчек меню. PLA_10 Название может быть любое, а ваш вкус, но и не забываем что его надо указывать тут :0 0900: unknown_set_object 'PLA_10' 0900: unknown_set_object "ColorCar" 0000: NOP jump @0_248 // Прыгаем на поток @0_248
:0_248 // начинаем поток. wait 0 // Ждем 0 мс. if // Если 00E1: player 0 pressed_key 16 // Кнопка 16 - Это пробел, то есть нажимать на строчки нужно кнопкой пробел, вы можете её сменить на вашу. else_jump @0_342 // Если условие не выполнено, прыгаем на строчку @0_342 08D7: 2@ = panel 1@ active_row // Создаем активную панель. 0871: init_jump_table 2@ total_jumps 6 default_jump 0 @0_342 jumps 0 @111 1 @222 2 @null @null 3 @null 4 @null 5 @null 6 @null // Здесь пред объявляем дальнейшие строчки. null это пустая строчка, она нужна для того чтобы не выбирало ошибки, минимум нужно 6 потоков. return
:0_342 // Создаем поток. wait 0 // Ждем 0 мс. if // Если. 0ab0: 120 // Клавиша F10 нажата. Идем дальше. else_jump @0_248 // Если клавиша F10 не нажата, прыгаем на строчку 0_248. Тем самым оставляем меню. 0581: enable_radar 1 // Включаем радар. 08DA: remove_panel 1@ // Убираем меню. 01B4: toggle_player $PLAYER_CHAR can_move 1 // Включаем управление персонажем. jump @Create_Menu // Прыгаем на поток @Create_Menu.
:0 0900: unknown_set_object 'PLA_10' // Название вашей строки. 0900: unknown_set_object "Actor Health" // Указываем на какой текст вы её хотите перевести. 0000: NOP // Нулевой НОП.
:1 0900: unknown_set_object 'PLA_11' // Название вашей строки. 0900: unknown_set_object "Actor Armour" // Указываем на какой текст вы её хотите перевести. 0000: NOP // Нулевой НОП.
Чувак чет я понял, 2 урока посмотрел везде почему то вы делаете 2 строки, создал третью все сделал скрипт вставил, строчка показывается в панели, но в ней скрипт не работает, а в предедущих 2 строках он работает. Что делать? Мирный юзер сайта