Делал для себя, для
"Сердца Ракк`Уунов":
Смысл - на титульнике, при нажатии нового пункта меню начинается игра, но с заранее включенным Переключателем.
Логика - использовать стартовую карту "инициализации", на которой проверять, включен ли этот специальный Переключатель и если да, то не начинать игру (перемещать на Игровые карты), а делать что-то другое.
Скопируй текст плагина в файл .js и подключи как плагин к проекту.
Если нужно, правь в коде блокнотом:
CUSTOM_MENU_ENTRY_NAME = '???'; - вместо "???" напиши, как хочешь чтоб пункт меню назывался.
CUSTOM_MENU_ADDITIONAL_ENTRIES = 1; - единицу замени на номер Переключателя, который
будет активироваться, если игрок нажал на пункт меню.
Scene_Title.prototype.createCommandWindow - в этой функции указывается местоположение нового пункта меню, в плагине по-умолчанию он под "Опциями".
var Imported = Imported || {};
Imported.DKR_CustomMenuEntry = true;
var DKR = DKR || {};
DKR.CustomMenuEntry = DKR.CustomMenuEntry || {};
DKR.CustomMenuEntry.version = 1.0;
(() => {
const CUSTOM_MENU_ADDITIONAL_ENTRIES = 1;
const CUSTOM_MENU_ENTRY_SWITCH_ID = 1;
const CUSTOM_MENU_ENTRY_NAME = '???';
DKR.CustomMenuEntry.commandDKRCustomNewGame = function() {
DataManager.setupNewGame();
this._commandWindow.close();
this.fadeOutAll();
SceneManager.goto(Scene_Map);
$gameSwitches.setValue(CUSTOM_MENU_ENTRY_SWITCH_ID, true);
console.log('_commandDKRCustomNewGame');
};
DKR_Window_TitleCommand_makeCommandList = Window_TitleCommand.prototype.makeCommandList;
Window_TitleCommand.prototype.makeCommandList = function() {
DKR_Window_TitleCommand_makeCommandList.call(this);
this.addCommand(CUSTOM_MENU_ENTRY_NAME, CUSTOM_MENU_ENTRY_NAME);
};
Scene_Title.prototype.commandWindowRect = function() {
const offsetX = $dataSystem.titleCommandWindow.offsetX;
const offsetY = $dataSystem.titleCommandWindow.offsetY;
const ww = this.mainCommandWidth();
const wh = this.calcWindowHeight(3 + CUSTOM_MENU_ADDITIONAL_ENTRIES, true);
const wx = (Graphics.boxWidth - ww) / 2 + offsetX;
const wy = Graphics.boxHeight - wh - 96 + offsetY;
return new Rectangle(wx, wy, ww, wh);
};
Scene_Title.prototype.createCommandWindow = function() {
const background = $dataSystem.titleCommandWindow.background;
const rect = this.commandWindowRect();
this._commandWindow = new Window_TitleCommand(rect);
this._commandWindow.setBackgroundType(background);
this._commandWindow.setHandler("newGame", this.commandNewGame.bind(this));
this._commandWindow.setHandler("continue", this.commandContinue.bind(this));
this._commandWindow.setHandler("options", this.commandOptions.bind(this));
this._commandWindow.setHandler(CUSTOM_MENU_ENTRY_NAME, DKR.CustomMenuEntry.commandDKRCustomNewGame.bind(this));
this.addWindow(this._commandWindow);
};
})();