- Сообщений: 17
- Спасибо получено: 6
1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.
Как изменить меню?
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Сообщений: 1597
- Спасибо получено: 1522
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
2. Найди там скрипт ▼ Materials (не знаю, как это по-русски, возможно, «▼ Дополнительные» или «▼ Собственные», или что-то в таком роде; это предпоследний пункт с «▼»)
Под ним найди пункт «( Insert here )» (не знаю, как по-русски, возможно, «( Вставляйте здесь )» или что-то такое. Щёлкни по нему правой кнопкой мыши и выбери пункт «Insert» (Вставить), чтобы добавить новый пустой скрипт.
3. Появится новый пустой скрипт (и он же сразу будет выделен). В пункте «Name:» слева снизу (возможно, по-русски он называется «Имя:», но не уверен) введи какое-то название скрипта, например, «Убрать пункты меню». В большое поле справа введи вот такой код:
Этот скрипт заменяет некоторые стандартные функции из RPG Maker VX Ace на свои. Код разбит на классы, каждый класс, грубо говоря, описывает одну вещь в игре. Внутри классов есть функции (или методы), в которых хранится код, связанный с этим классом.
Есть классы, описывающие сцены. Сцена — это то, что открыто на весь экран (показ карты, битва, основное меню, титульный экран, меню экипировки и т.д.). В данном случае мы меняем сценю главного меню (Scene_Menu). Мы заменяем метод create_gold_window своим кодом. В стандартном коде этот метод создаёт окно показа золота, а у нас он ничего не делает (сразу идёт end). Поэтому окно с золотом не будет создаваться.
Есть классы, описывающие окна. В каждой сцене может быть много окон. В данном случае нам нужно окно Window_MenuCommand, с помощью которого выбирается команда в главном меню. Мы переписываем функцию add_formation_command (обычно она добавляет пункт «Боевой строй», а у нас ничего не делает) и функцию add_main_commands (обычно она добявляет пункты «Вещи», «Навыки», «Экипировка», «Статус», а у нас будет добавлять только два пункта).
Для того, чтобы лучше понять, что мы заменяем, может быть полезно посмотреть на код скриптов Scene_Menu и Window_MenuCommand.
Порядок скриптов важен: если бы мы написали наш код в начале, а не в конце, то наши функции бы заменились стандартными. Но так как мы добавили свой скрипт после скриптов Scene_Menu и Window_MenuCommand, то мы заменяем стандартные функции.
Если что-то непонятно, могу описать подробнее, задавай вопросы!
4. Нажми ОК. Запусти игру и проверь, что всё получилось.
Вот пример проекта: Fedor-removeMenuItems.zip (полтора мегабайта).
Если что-то непонятно, спрашивай.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Можно использовать вот такой скрипт (устанавливается так же, как и прошлый; или можно его прямо после прошлого дописать):FEDOR пишет: А как убрать HP и MP?
Класс Window_MenuStatus определяет правое окошко в главном меню.
Когда RPG Maker отображает одного персонажа в списке, он вызывает метод draw_item класса Window_MenuStatus. Этот метод выглядит так (его можно посмотреть в скрипте Window_MenuStatus):
Чтобы отобразить правую часть (жизни, ману, статус и т.п.), он использует функцию draw_actor_simple_status. Однако она не описана в классе Window_MenuStatus, и её нужно сначала найти.
Класс Window_MenuStatus создан на основе класса Window_Selectable (об этом написано вверху: Window_MenuStatus < Window_Selectable), поэтому в нём есть все функции из этого класса. Поэтому надо искать нужный код в классе Window_Selectable.
Там мы тоже не найдём функции draw_actor_simple_status, но мы увидим, что класс Window_Selectable расширяет Window_Base (Window_Selectable < Window_Base), поэтому надо смотреть в Window_Base. А в Window_Base мы нужную функцию найдём:
Поэтому нам нужно заменить её. Если знаешь английский, то каждая её строчка довольно понятна (draw_actor_name отображает имя героя, draw_actor_level отображает уровень, draw_actor_icons отображает статусы и так далее). Соответственно, нам нужно заменить её своим кодом, из которого мы уберём строчки с вызовом функций draw_actor_hp и draw_actor_mp.
Мы можем заменить функцию внутри класса Window_MenuStatus, и тогда наш код будет влиять только на главное меню:
Или же мы можем заменить её в Window_Base, и тогда изменения распространятся на все окна, в которых используется вывод похожей информации о герое:
В принципе, разница не велика, можно писать и так, и так.
FEDOR пишет: А также - оружие, броня, важные вещи (чтобы было просто - вещи).
Scene_Item — это экран выбора предмета.
В нём функция create_category_window создаёт окно Window_ItemCategory, которое даёт выбор типа/категории предметов. Я переписал эту функцию, чтобы она ничего не делала, так как окно с типом/категорией предметов нам создавать не надо.
Ещё в нём есть функция create_item_window, которая создаёт окно выбора предмета. В ней я поменял следующее:
- Сделал, что оно располагается под окном с описанием предмета (wy = @help_window.height), а не под окном с типом предметов (ведь окна с типом у нас и нет)
- Сделал, что при нажатии на :cancel (кнопку Escape) происходит выход из сцены предметов в меню (:return_scene), а не возврат к списку категорий (:on_item_cancel).
- Убрал строку, которая связывала окно категорий/типов с окном предметов (@category_window.item_window = @item_window), потому что окна @category_window у нас теперь не создаётся.
- Добавил строчку @item_window.category = :item, которая устанавливает тип :item (другие возможные типы — :weapon, :armor и :key_item; раньше тип устанавливался окном категорий, но окна категорий у нас сейчас нет)
- Добавил строчку on_category_ok, которая настраивает окно предметов в соответствии с выбранной категорией (в начальном варианте эту функцию вызывает окно категорий после настройки категории, но мы убрали это окно, поэтому нам надо вызывать её самим)
Опять же, этот скрипт можно дописать прямо после прошлых, или же создать в редакторе скриптов новый пункт (главное, чтобы он был снизу, там, где «( Insert here )», потому что если вставить скрипт слишком рано, то стандартные функции его перепишут.)
Если что-то непонятно, спрашивай. Удачи!
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Спасибо за интересный вопрос! Это можно сделать таким скриптом:Alisa пишет: (VX Ace)Тут описывался процес отображения\не отображения HP и MP. А как сделать что бы полоски МР небыло у конкретного персонажа? Где прописывать его ID? Подскажите пожалуйста.
Вместо 1, 2 нужно поставить номера персонажей, у которых не будет MP. Перед номерами нельзя ставить нули: не 008, а 8.
Этот код повлияет и на меню, и на битву. Если нужно скрыть MP только в меню, но не в битве, можно поменять одну строчку кода:
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
