Project1

标题: 求MOG大神帮忙解决一个UI插件问题 [打印本页]

作者: 380617414    时间: 2017-11-11 18:37
标题: 求MOG大神帮忙解决一个UI插件问题


MOG的MOG_Equip脚本里面有个选择半透明框,是上面这个,
但是脚本程序里面一直找不到是在哪里控制它的长度,各种求帮助。

脚本代码如下:


//=============================================================================
// MOG_SceneEquip.js
//=============================================================================

/*:
* @plugindesc (v1.0) Modifica a cena de equipamento.
* @author Moghunter
*
* @param FontSize
* @desc Definição do tamanho da fonte.
* @default 20
*
* @param Help X-Axis
* @desc Definição X-Axis da janela de ajuda.
* @default 0
*
* @param Help Y-Axis
* @desc Definição Y-Axis da janela de ajuda.
* @default 516
*
* @param Help Layout X-Axis
* @desc Definição X-Axis do layout da janela de ajuda.
* @default 0
*
* @param Help Layout Y-Axis
* @desc Definição Y-Axis do layout da janela de ajuda.
* @default -67
*
* @param Command X-Axis
* @desc Definição X-Axis da janela de comando.
* @default 312
*
* @param Command Y-Axis
* @desc Definição Y-Axis da janela de comando.
* @default 10
*
* @param Command Layout X-Axis
* @desc Definição X-Axis do layout da janela de comando.
* @default 15
*
* @param Command Layout Y-Axis
* @desc Definição Y-Axis do layout da janela de comando.
* @default 11
*
* @param Slot X-Axis
* @desc Definição X-Axis da janela de slot.
* @default 312
*
* @param Slot Y-Axis
* @desc Definição Y-Axis da janela de slot.
* @default 70
*
* @param Slot Layout X-Axis
* @desc Definição X-Axis do layout da janela de slot.
* @default 22
*
* @param Slot Layout Y-Axis
* @desc Definição Y-Axis do layout da janela de slot.
* @default 8
*
* @param List X-Axis
* @desc Definição X-Axis da janela de lista de items.
* @default 305
*
* @param List Y-Axis
* @desc Definição Y-Axis da janela de lista de items.
* @default 280
*
* @param List Layout X-Axis
* @desc Definição X-Axis do layout da janela de lista de items.
* @default 0
*
* @param List Layout Y-Axis
* @desc Definição Y-Axis do layout da janela de lista de items.
* @default 0
*
* @param Status X-Axis
* @desc Definição X-Axis da janela de status.
* @default 10
*
* @param Status Y-Axis
* @desc Definição Y-Axis da janela de  status.
* @default 120
*
* @param Status Layout X-Axis
* @desc Definição X-Axis do layout da janela de status.
* @default 0
*
* @param Status Layout Y-Axis
* @desc Definição Y-Axis do layout da janela de status.
* @default 0
*                
* @help  
* =============================================================================
* +++ MOG - Scene Equip (v1.0) +++
* By Moghunter
* https://atelierrgss.wordpress.com/
* =============================================================================
* Modifica a cena de equipamento.
*
* =============================================================================
* UTILIZAÇÃO
* =============================================================================
* As imagens do sistema deverão ser gravados na pasta.
*
* /img/menus/equip/
*
* =============================================================================
*/

//=============================================================================
// ** PLUGIN PARAMETERS
//=============================================================================

var Imported = Imported || {};  
Imported.MOG_SceneEquip = true;  
var Moghunter = Moghunter || {};


Moghunter.parameters = PluginManager.parameters('MOG_SceneEquip');
Moghunter.scEquip_FontSize = Number(Moghunter.parameters['FontSize'] || 24);
Moghunter.scEquip_HelpWindowX = Number(Moghunter.parameters['Help X-Axis'] || 0);
Moghunter.scEquip_HelpWindowY = Number(Moghunter.parameters['Help Y-Axis'] || 516);
Moghunter.scEquip_HelpLayoutX = Number(Moghunter.parameters['Help Layout X-Axis'] || 0);
Moghunter.scEquip_HelpLayoutY = Number(Moghunter.parameters['Help Layout Y-Axis'] || -67);
Moghunter.scEquip_ComWindowX = Number(Moghunter.parameters['Command X-Axis'] || 312);
Moghunter.scEquip_ComWindowY = Number(Moghunter.parameters['Command Y-Axis'] || 10);
Moghunter.scEquip_ComLayoutX = Number(Moghunter.parameters['Command Layout X-Axis'] || 0);
Moghunter.scEquip_ComLayoutY = Number(Moghunter.parameters['Command Layout Y-Axis'] || 0);
Moghunter.scEquip_SlotWindowX = Number(Moghunter.parameters['Slot X-Axis'] || 312);
Moghunter.scEquip_SlotWindowY = Number(Moghunter.parameters['Slot Y-Axis'] || 70);
Moghunter.scEquip_SlotLayoutX = Number(Moghunter.parameters['Slot Layout X-Axis'] || 0);
Moghunter.scEquip_SlotLayoutY = Number(Moghunter.parameters['Slot Layout Y-Axis'] || 0);
Moghunter.scEquip_ItemWindowX = Number(Moghunter.parameters['List X-Axis'] || 305);
Moghunter.scEquip_ItemWindowY = Number(Moghunter.parameters['List Y-Axis'] || 280);
Moghunter.scEquip_ItemLayoutX = Number(Moghunter.parameters['List Layout X-Axis'] || 0);
Moghunter.scEquip_ItemLayoutY = Number(Moghunter.parameters['List Layout Y-Axis'] || 0);
Moghunter.scEquip_StatusWindowX = Number(Moghunter.parameters['Status X-Axis'] || 10);
Moghunter.scEquip_StatusWindowY = Number(Moghunter.parameters['Status Y-Axis'] || 120);
Moghunter.scEquip_StatusLayoutX = Number(Moghunter.parameters['Status Layout X-Axis'] || 0);
Moghunter.scEquip_StatusLayoutY = Number(Moghunter.parameters['Status Layout Y-Axis'] || 0);

//=============================================================================
// ** ImageManager
//=============================================================================

//==============================
// * Equip
//==============================
ImageManager.loadMenusequip = function(filename) {
        return this.loadBitmap('img/menus/equip/', filename, 0, true);
};

//=============================================================================
// ** Scene Equip
//=============================================================================

//==============================
// * create Background
//==============================
var _mog_scEquip_createBackground = Scene_Equip.prototype.createBackground;
Scene_Equip.prototype.createBackground = function() {
        _mog_scEquip_createBackground.call(this);
        this._field = new Sprite();
        this.addChild(this._field);
};

//==============================
// * Create
//==============================
var _mog_scEquipM_create = Scene_Equip.prototype.create;
Scene_Equip.prototype.create = function() {
        _mog_scEquipM_create.call(this);
        this._helpWindow.x = Moghunter.scEquip_HelpWindowX;
        this._helpWindow.y = Moghunter.scEquip_HelpWindowY;
        this._helpWindowOrg = [this._helpWindow.x, this._helpWindow.y];
        this._commandWindow.x = Moghunter.scEquip_ComWindowX;
        this._commandWindow.y = Moghunter.scEquip_ComWindowY;
        this._commandWindow.contents.fontSize = Moghunter.scEquip_FontSize;
        this._commandWindowOrg = [this._commandWindow.x, this._commandWindow.y];
        this._slotWindow.x = Moghunter.scEquip_SlotWindowX;
        this._slotWindow.y = Moghunter.scEquip_SlotWindowY;
        this._slotWindowOrg = [this._slotWindow.x, this._slotWindow.y];
        this._itemWindow.x = Moghunter.scEquip_ItemWindowX;
        this._itemWindow.y = Moghunter.scEquip_ItemWindowY;
        this._itemWindow.width = this._slotWindow.width
        //这个是装备栏里面的整个物品高度,现在是只显示4个装备,230可以显示5个
        this._itemWindow.height = 200;
        this._itemWindowOrg = [this._itemWindow.x, this._itemWindow.y];
        this._statusWindow.x = Moghunter.scEquip_StatusWindowX;
        this._statusWindow.y = Moghunter.scEquip_StatusWindowY;
        this._statusWindowOrg = [this._statusWindow.x, this._statusWindow.y];
        this.createSprites();
        this.resetPosition();
};

//==============================
// * On Actor Change
//==============================
var _mog_scsEquipM_onActorChange = Scene_Equip.prototype.onActorChange;
Scene_Equip.prototype.onActorChange = function() {
        _mog_scsEquipM_onActorChange.call(this);
        this.resetPosition();
        this.update();
};

//==============================
// * Create Sprites
//==============================
Scene_Equip.prototype.createSprites = function() {
        this.createLayout();
        this.createLayoutHelp();
        this.createLayoutCommand();
        this.createLayoutSlot();
        this.createLayoutItem();
        this.createLayoutStatus();
};

//==============================
// * Create Layout
//==============================
Scene_Equip.prototype.createLayout = function() {
        this._layout = new Sprite(ImageManager.loadMenusequip("Layout"));
        this._field.addChild(this._layout);
};

//==============================
// * Create LayoutHelp
//==============================
Scene_Equip.prototype.createLayoutHelp = function() {
        this._layoutHelp = new Sprite(ImageManager.loadMenusequip("LayoutHelp"));
        this._field.addChild(this._layoutHelp);
};

//==============================
// * Create LayoutCommand
//==============================
Scene_Equip.prototype.createLayoutCommand = function() {
        this._layoutCommand = new Sprite(ImageManager.loadMenusequip("LayoutCommand"));
        this._field.addChild(this._layoutCommand);
};

//==============================
// * Create LayoutSlot
//==============================
Scene_Equip.prototype.createLayoutSlot = function() {
        this._layoutSlot = new Sprite(ImageManager.loadMenusequip("LayoutSlot"));
        this._field.addChild(this._layoutSlot);
};

//==============================
// * Create LayoutItem
//==============================
Scene_Equip.prototype.createLayoutItem = function() {
        this._layoutItem = new Sprite(ImageManager.loadMenusequip("LayoutItem"));
        this._field.addChild(this._layoutItem);
};

//==============================
// * Create LayoutStatus
//==============================
Scene_Equip.prototype.createLayoutStatus = function() {
        this._layoutStatus = new Sprite(ImageManager.loadMenusequip("LayoutStatus"));
        this._field.addChild(this._layoutStatus);
};

//==============================
// * update Sprites
//==============================
Scene_Equip.prototype.updateSprites = function() {
        this.updateSlide();
        this.updateLayout()
};

//==============================
// * reset Position
//==============================
Scene_Equip.prototype.resetPosition = function() {
        var slide = 100
        this._helpWindow.y = this._helpWindowOrg[1] + slide;
        this._commandWindow.y = this._commandWindowOrg[1] - slide;
        this._slotWindow.x = this._slotWindowOrg[0] + slide;
        this._itemWindow.x = this._itemWindowOrg[0] + slide + 0;
        this._statusWindow.x = this._statusWindowOrg[0] - slide - 0;;
        this._helpWindow.contentsOpacity = 0;
        this._helpWindow.contentsOpacity = 0;
        this._commandWindow.contentsOpacity = 0;
        this._slotWindow.contentsOpacity = 0;
        this._itemWindow.contentsOpacity = 0;
        this._statusWindow.contentsOpacity = 0;
};

//==============================
// * update Slide
//==============================
Scene_Equip.prototype.updateSlide = function() {
        var slideSpeed = 5;
        var opcSpeed = 10;
        this._helpWindow.contentsOpacity += opcSpeed;
        this._commandWindow.contentsOpacity += opcSpeed;
        this._slotWindow.contentsOpacity += opcSpeed;
        this._itemWindow.contentsOpacity += opcSpeed;
        this._statusWindow.contentsOpacity += opcSpeed;

        if (this._helpWindow.y > this._helpWindowOrg[1]) {
                this._helpWindow.y -= slideSpeed;
                if (this._helpWindow.y < this._helpWindowOrg[1]) {
                        this._helpWindow.y = this._helpWindowOrg[1]
                };
        };
        if (this._commandWindow.y < this._commandWindowOrg[1]) {
                this._commandWindow.y += slideSpeed;
                if (this._commandWindow.y > this._commandWindowOrg[1]) {
                        this._commandWindow.y = this._commandWindowOrg[1]
                };
        };
        if (this._slotWindow.x > this._slotWindowOrg[0]) {
                this._slotWindow.x -= slideSpeed;
                if (this._slotWindow.x < this._slotWindowOrg[0]) {
                        this._slotWindow.x = this._slotWindowOrg[0]
                };
        };
        if (this._itemWindow.x > this._itemWindowOrg[0]) {
                this._itemWindow.x -= slideSpeed;
                if (this._itemWindow.x < this._itemWindowOrg[0]) {
                        this._itemWindow.x = this._itemWindowOrg[0]
                };
        };
        if (this._statusWindow.x < this._statusWindowOrg[0]) {
                this._statusWindow.x += slideSpeed;
                if (this._statusWindow.x > this._statusWindowOrg[0]) {
                        this._statusWindow.x = this._statusWindowOrg[0]
                };
        };
};

//==============================
// * update Layout
//==============================
Scene_Equip.prototype.updateLayout = function() {
        this._layoutHelp.x = this._helpWindow.x + Moghunter.scEquip_HelpLayoutX;
        this._layoutHelp.y = this._helpWindow.y + Moghunter.scEquip_HelpLayoutY;
        this._layoutHelp.opacity = this._helpWindow.contentsOpacity
        this._helpWindow.opacity = 0;
        this._layoutCommand.x = this._commandWindow.x + Moghunter.scEquip_ComLayoutX;
        this._layoutCommand.y = this._commandWindow.y + Moghunter.scEquip_ComLayoutY;
        this._layoutCommand.opacity = this._commandWindow.contentsOpacity;
        this._commandWindow.opacity = 0;
        this._layoutSlot.x = this._slotWindow.x + Moghunter.scEquip_SlotLayoutX;
        this._layoutSlot.y = this._slotWindow.y + Moghunter.scEquip_SlotLayoutY;
        this._layoutSlot.opacity = this._slotWindow.contentsOpacity;
        this._slotWindow.opacity = 0;
        this._layoutItem.x = this._itemWindow.x + Moghunter.scEquip_ItemLayoutX;
        this._layoutItem.y = this._itemWindow.y + Moghunter.scEquip_ItemLayoutY;
        this._layoutItem.opacity = this._itemWindow.contentsOpacity;
        this._itemWindow.opacity = 0;
        this._layoutStatus.x = this._statusWindow.x + Moghunter.scEquip_StatusLayoutX;
        this._layoutStatus.y = this._statusWindow.y + Moghunter.scEquip_StatusLayoutY;
        this._layoutStatus.opacity = this._statusWindow.contentsOpacity;
        this._statusWindow.opacity = 0;
};

//==============================
// * Update
//==============================
var _mog_scEquipM_update = Scene_Equip.prototype.update;
Scene_Equip.prototype.update = function() {
        _mog_scEquipM_update.call(this);
        if (this._layout) {
                this.updateSprites()
        };
};

//=============================================================================
// ** Window Equip Slot
//=============================================================================

//==============================
// * Window Equip Item 装备在身上的图标位置
//==============================
Window_EquipSlot.prototype.drawItem = function(index) {
        this.contents.fontSize = Moghunter.scEquip_FontSize;
        if (this._actor) {
                var rect = this.itemRectForText(index);
                this.changeTextColor(this.systemColor());
                this.changePaintOpacity(this.isEnabled(index));
                this.drawItemName(this._actor.equips()[index], rect.x + 144, rect.y + 20);
                this.changePaintOpacity(true);
        }
};

//=============================================================================
// ** Window Equip Command
//=============================================================================

//==============================
// * draw Text
//==============================
Window_EquipCommand.prototype.drawText = function(text, x, y, maxWidth, align) {};

//=============================================================================
// ** Window Equip Status
//=============================================================================

//==============================
// * initialize
//==============================
var _mog_scequip_westatus_initialize = Window_EquipStatus.prototype.initialize;
Window_EquipStatus.prototype.initialize = function(x, y) {
        _mog_scequip_westatus_initialize.call(this, x, y);
        this._parImg = ImageManager.loadMenusequip("Par");
        this._parData = [0, 0];
};

//==============================
// * draw Text 人物头像位置
//==============================
Window_EquipStatus.prototype.createFaceSprite = function() {
        this._faceSprite = new Sprite();
        this._faceSprite.x = 28;
        this._faceSprite.y = 0;
        this.addChild(this._faceSprite);
};

//==============================
// * refresh 左边属性数值间距计算
//==============================
Window_EquipStatus.prototype.refresh = function() {
        this.contents.clear();
        this.contents.fontSize = Moghunter.scEquip_FontSize;
        if (this._actor) {
                this._parData[0] = this._parImg.width / 3;
                this._parData[1] = this._parImg.height;
                if (!this._faceSprite) {
                        this.createFaceSprite()
                };
                this.refreshFaceSprite();
                this.drawActorName(this._actor, this.textPadding(), 0);
                // for (var i = 0; i < 6; i++) {
                //         this.drawItem(0, 53 +  this.lineHeight() * (1 + i), 2 + i);
                // 修改描绘的项目以显示HP、MP
                for (var i = 0; i < 8; i++) {
                        this.drawItem(0, this.lineHeight() * (1 + i) * 1.1 , i);
                }
        }
};

//==============================
// * refresh Face Sprite
//==============================
Window_EquipStatus.prototype.refreshFaceSprite = function() {
        this._faceSprite.bitmap = ImageManager.loadMenusFaces1("Actor_" + this._actor._actorId);
};

//==============================
// * window Height
//==============================
Window_EquipStatus.prototype.windowHeight = function() {
        // return 350;
        // 装备介绍框的句段宽度
        return 435;
};

//==============================
// * draw Par Name
//==============================
Window_EquipStatus.prototype.drawParamName = function(x, y, paramId) {};

//==============================
// * draw Right Arrow 主要是属性界面的箭头表现
//==============================
Window_EquipStatus.prototype.drawRightArrowM = function(x, y, paramId) {

        var newValue = this._tempActor.param(paramId);
        var diffvalue = newValue - this._actor.param(paramId);
        if (diffvalue > 0) {
                var sx = this._parData[0];
        } else if (diffvalue < 0) {
                var sx = this._parData[0] * 2;
        } else {
                var sx = 0
        };
        this.contents.blt(this._parImg, sx, 0, this._parData[0], this._parData[1], x, y);

};

//==============================
// * draw Item 更改左界面属性数值,和424行的this.drawItem(0, 20 + this.lineHeight() * (1 + i), i)中的20数值一起更改间距
//==============================
Window_EquipStatus.prototype.drawItem = function(x, y, paramId) {
        this.drawParamName(x + this.textPadding(), y, paramId);
        if (this._actor) {
                this.drawCurrentParam(x + 110, y + 55, paramId);
                if (this._tempActor) {
                        this.drawRightArrowM(x + 160, y + 55, paramId)
                };
        }
        if (this._tempActor) {
                this.drawNewParam(x + 200, y + 55, paramId);
        }
};

//==============================
// * update
//==============================
var _mog_scnEquipUpdate = Window_EquipStatus.prototype.update;
Window_EquipStatus.prototype.update = function() {
        _mog_scnEquipUpdate.call(this);
        this._faceSprite.opacity = this.contentsOpacity;
};

//=============================================================================
// ** Window Equip Item
//=============================================================================

//==============================
// * Window Equip Item
//==============================
var _mog_scEquip_Wequip_drawItemName = Window_EquipItem.prototype.drawItemName;
Window_EquipItem.prototype.drawItemName = function(item, x, y, width) {
        this.contents.fontSize = Moghunter.scEquip_FontSize;
        _mog_scEquip_Wequip_drawItemName.call(this, item, x, y, width)
};

//==============================
// * max Cols
//==============================
Window_EquipItem.prototype.maxCols = function() {
        return 1;
};


作者: j296196585    时间: 2017-11-11 19:54
这个好像是素材吧 可以改变素材的样式

如果是插件问题 你一个一个的函数测试过去

HQDJX))8I~4{UMHT(~MW6SM.png (2.03 KB, 下载次数: 11)

HQDJX))8I~4{UMHT(~MW6SM.png

{2C7O}[M5IRO9)2L)(IY1D5.png (1.4 KB, 下载次数: 1)

{2C7O}[M5IRO9)2L)(IY1D5.png

作者: WantMy蕙    时间: 2017-11-12 13:50
我觉得应该是这个窗口的问题,这个脚本的写法应该是写一个窗口然后把他的opacity调整为0,所以才看不见这个窗口剩下了背景的图片和光标,解决方案应该是修改窗口的大小,当然这个是XP的思路至于MV是不是这样你可以看看咯
作者: 380617414    时间: 2017-11-12 15:30
WantMy蕙 发表于 2017-11-12 13:50
我觉得应该是这个窗口的问题,这个脚本的写法应该是写一个窗口然后把他的opacity调整为0,所以才看不见这个 ...

只改变了宽度,可惜怎么也找不到改变高度的方法,好像是直接调用了RM的默认高度。
作者: 380617414    时间: 2017-11-12 15:30
j296196585 发表于 2017-11-11 19:54
这个好像是素材吧 可以改变素材的样式

如果是插件问题 你一个一个的函数测试过去

不是素材的问题。
作者: 380617414    时间: 2017-11-12 18:12
380617414 发表于 2017-11-12 15:30
只改变了宽度,可惜怎么也找不到改变高度的方法,好像是直接调用了RM的默认高度。 ...

也只能如此了。
作者: j296196585    时间: 2017-11-12 18:16
380617414 发表于 2017-11-12 18:12
也只能如此了。

我昨晚测试一个插件发现 可以改变长和宽 的限制

JAVASCRIPT 代码复制
  1. //道具界面使用物品时
  2. Scene_Item.prototype.showSubWindow = function(window) {
  3.     window.show();
  4.     window.activate();
  5.         this._helpWindow.hide();
  6. };
  7. Scene_Item.prototype.hideSubWindow = function(window) {
  8.     window.hide();
  9.     window.deactivate();
  10.     this.activateItemWindow();
  11.         this._helpWindow.show();
  12. };
  13. Window_MenuActor.prototype.windowWidth = function() {
  14.     return 560;
  15. };
  16. Window_MenuActor.prototype.windowHeight = function() {
  17.     return 380;
  18. };


作者: 380617414    时间: 2017-11-12 18:20
j296196585 发表于 2017-11-12 18:16
我昨晚测试一个插件发现 可以改变长和宽 的限制

//道具界面使用物品时

真的?我尝试一下你的这个方法!
作者: zmj945    时间: 2017-11-30 23:37
MOG的装备界面的插件确实有这个问题。我也改了分辨率,重新做的UI,这个插件的按钮它好像是根据窗口的大小一直延伸的。(如图)
PS:只有两个按钮是因为还装了别的插件,莫名就变成两个了,少了一个装备。但是按钮位置从原来的均分三等分还是变成了均分两等分。



下面这个装备框更可恶...直接就延伸到屏幕后面了...所以我只能画个虚的...
上面的UI排列画法供参考...
只是程序白痴没办法的办法,只能改图了。

如果楼主有找到如何改JS望不吝赐教

作者: 380617414    时间: 2017-12-1 15:56
zmj945 发表于 2017-11-30 23:37
MOG的装备界面的插件确实有这个问题。我也改了分辨率,重新做的UI,这个插件的按钮它好像是根据窗口的大小 ...

好吧,你这个也是一种方法,看来MOG还得多优化啊。
作者: Fan723    时间: 2017-12-25 10:20
求这个插件的原版及安装说明,或者下载地址。感谢!




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1