Эльф, забей, не выделение пунктов в соуловом титульнике никак не связанно с твоим выделением мышью или с чьим бы то ни было. Сами пукты в плагине на спрайтовых кнопках, и с Window_Selectable связаны косвенно, чисто для проверки выбирает ли игрок пункты меню клавой или нет. Я бы на его месте просто не делал привязки к стандартной менюшке.
Само окно спрятано, но по всей видимости у него там ошибка в проверке, потому что если в настройках плагина не поставить Command Selectable true, что немного наркомания учитывая описание опции, то мышка будет ездить по скрытому меню, которое имеет стандартное расположение без этой опции, с твоим плагином или любым другим который делает тоже самое(да-да DarkKel, плагин TDDP_MouseSystemEx тоже работает, видать включить нужную опцию в нем и поставить его там же где и эльфовый, ниже соулового титульника, религия не позволяла или хотя бы описать что ты делал или не делал).
Соулу, по всей видимости, было не нужно выделение мышкой в плагине, т.е. с этим можно идти к автору и просить добавить. Но да ладно, я сделал небольшой быстроаддон для плагина соула, который будет работать как с эльфоплагином, так и с плагином от TDDP.
Основная проблема, что все три плагина трогают TouchInput._onMouseMove, а эльфовый спамит select(-1) через processMouseOverselect... Ну, мне вроде бы удалось все совместить.
Эльф, если хочешь то адаптируй этот адок получше и пихни к себе. Но как по мне, лучше было бы зачинщику написать автору титульника насчет выделения, а потом уже смотреть, после того как он это у себя решит, если решать вообще будет. Все же это больше со стороны соула дело, и он вполне активный и на мейкер еще не забил. Ну или писать универсальное выделение спрайтокнопок мышкой при наведении.
var _Scene_Title_update_soulTitle_addon = Scene_Title.prototype.update;
Scene_Title.prototype.update = function() {
_Scene_Title_update_soulTitle_addon.call(this)
if (this._spriteNewGame == null) return;
if (this._pressStartOK == true || this._spriteNewGame == false) return;
if (Imported.YEP_CreditsPage) {
if (this._spriteNewGame.isButtonTouched() && this._commandWindow._index !== 0) {
this._commandWindow.select(0);
SoundManager.playCursor();
}
if (this._spriteContinueGame.isButtonTouched() && this._commandWindow._index !== 1) {
this._commandWindow.select(1);
SoundManager.playCursor();
}
if (this._spriteCredits.isButtonTouched() && this._commandWindow._index !== 2) {
this._commandWindow.select(2);
SoundManager.playCursor();
}
if (this._spriteOptions.isButtonTouched() && this._commandWindow._index !== 3) {
this._commandWindow.select(3);
SoundManager.playCursor();
}
} else {
if (this._spriteNewGame.isButtonTouched() && this._commandWindow._index !== 0) {
this._commandWindow.select(0);
SoundManager.playCursor();
}
if (this._spriteContinueGame.isButtonTouched() && this._commandWindow._index !== 1) {
this._commandWindow.select(1);
SoundManager.playCursor();
}
if (this._spriteOptions.isButtonTouched() && this._commandWindow._index !== 2) {
this._commandWindow.select(2);
SoundManager.playCursor();
}
}
}
TouchInput._onMouseMove = function(event) {
var x = Graphics.pageToCanvasX(event.pageX);
var y = Graphics.pageToCanvasY(event.pageY);
this._onMove(x, y);
if (Imported.De79_MouseOverselect == true) { //эльфо-совместимость
this._realtime_x = Graphics.pageToCanvasX(event.pageX);
this._realtime_y = Graphics.pageToCanvasY(event.pageY);
}
this.effectMouseX = Graphics.pageToCanvasX(event.pageX); //соуло-совместимость
this.effectMouseY = Graphics.pageToCanvasY(event.pageY); //соуло-совместимость
};
//эльфо-совместимость
if (Imported.De79_MouseOverselect == true) {
Window_Selectable.prototype.cursorIsWithinWindow = function() {
var _x = this.canvasToLocalX(TouchInput.x);
var _y = this.canvasToLocalY(TouchInput.y);
if (_x > this.padding && _x <= this.width - this.padding) {
if (_y > this.padding && _y < this.height - this.padding) {
return true;
}
}
return false;
}
Window_Selectable.prototype.processMouseOverselect = function() {
var x = this.canvasToLocalX(TouchInput.realtime_x);
var y = this.canvasToLocalY(TouchInput.realtime_y);
var hitIndex = this.hitTest(x, y);
var mouseOver = this.isMouseOver();
if (!mouseOver && this.cursorIsWithinWindow()) {
this.select(-1);
} else {
if (typeof(hitIndex) !== 'undefined') {
if (hitIndex > -1) {
this.select(hitIndex);
}
}
}
};
}
Ставить ниже всех плагинов на мышку и титульник.