Project1

标题: 请问如何修改装备名字显示长度 [打印本页]

作者: pajiman1999    时间: 2022-11-6 22:18
标题: 请问如何修改装备名字显示长度
请问如何修改装备名字显示长度 如图所示 装备名字长度没有显示到屏幕最右边就被挤压字体了 可否用脚本修改显示长度呢?
作者: cenhangkai    时间: 2022-11-6 22:18
pajiman1999 发表于 2022-11-7 03:51
同样在这个文档里找到以下字段:
Window_Base.prototype.drawItemName = function(item, x, y, width) {
   ...
  1. Window_EquipSlot.prototype.drawItem = function(index) {
  2.     if (this._actor) {
  3.         var rect = this.itemRectForText(index);
  4.         this.changeTextColor(this.systemColor());
  5.         this.changePaintOpacity(this.isEnabled(index));
  6.         this.drawText(this.slotName(index), rect.x, rect.y, 138, this.lineHeight());
  7.         this.drawItemName(this._actor.equips()[index], rect.x + 138, rect.y, rect.width);
  8.         this.changePaintOpacity(true);
  9.     }
  10. };
复制代码


————————————————————————————————
【使用说明】把上述代码复制到任意插件的最下面即可。
PS:不建议楼主直接修改MV的底层插件哦 (rpg_windows、rpg_scenes之类的)。
作者: loveinyou200    时间: 2022-11-6 22:57
打开系统脚本“rpg_windows.js”,找到以下字段:
Window_EquipStatus.prototype.drawItem = function(x, y, paramId) {
    this.drawParamName(x + this.textPadding(), y, paramId);
    if (this._actor) {
        this.drawCurrentParam(x + 140, y, paramId);
    }
    this.drawRightArrow(x + 188, y);
    if (this._tempActor) {
        this.drawNewParam(x + 222, y, paramId);
    }
};

Window_EquipStatus.prototype.drawParamName = function(x, y, paramId) {
    this.changeTextColor(this.systemColor());
    this.drawText(TextManager.param(paramId), x, y, 120);
};

在这段两个字段中间加一段文本框的字节宽度的代码:
Window_EquipStatus.prototype.drawText = function(text, x, y, Width, align) {
    this.contents.drawText(text, x, y, 300, this.lineHeight(), align);
};
300这个位子自行修改,如果不够长,就继续改长一点。

但是要注意哦,一但字符宽度放大了,字体确实不会被压缩,但有可能就超出显示框,导致文本显示不全,记得要调整窗体以及文本框的宽度。
作者: pajiman1999    时间: 2022-11-6 23:20
loveinyou200 发表于 2022-11-6 22:57
打开系统脚本“rpg_windows.js”,找到以下字段:
Window_EquipStatus.prototype.drawItem = function(x, y ...

大哥 我按照你这个操作了 显示没有变化
作者: pajiman1999    时间: 2022-11-6 23:25

作者: loveinyou200    时间: 2022-11-6 23:42
pajiman1999 发表于 2022-11-6 23:20
大哥 我按照你这个操作了 显示没有变化

不好意思,看错信息了,以为是后面的属性值字节过长的问题,那就更简单了。

同样在这个文档里找到以下字段:
Window_Base.prototype.drawItemName = function(item, x, y, width) {
    width = width || 312;
    if (item) {
        var iconBoxWidth = Window_Base._iconWidth + 4;
        this.resetTextColor();
        this.drawIcon(item.iconIndex, x + 2, y + 2);
        this.drawText(item.name, x + iconBoxWidth, y, width - iconBoxWidth);
    }
};
把里面的312改大就行了。
作者: pajiman1999    时间: 2022-11-7 03:49
loveinyou200 发表于 2022-11-6 23:42
不好意思,看错信息了,以为是后面的属性值字节过长的问题,那就更简单了。

同样在这个文档里找到以下字 ...

大哥 好像还是不行 .......
作者: pajiman1999    时间: 2022-11-7 03:51
同样在这个文档里找到以下字段:
Window_Base.prototype.drawItemName = function(item, x, y, width) {
    width = width || 624;
    if (item) {
        var iconBoxWidth = Window_Base._iconWidth + 4;
        this.resetTextColor();
        this.drawIcon(item.iconIndex, x + 2, y + 2);
        this.drawText(item.name, x + iconBoxWidth, y, width - iconBoxWidth);
    }
};
把里面的312改大就行了。 按照这个操作了 改成了624无效 不知道为什么截图无法上传 我只能文字描述一下了
作者: pajiman1999    时间: 2022-11-7 14:09
cenhangkai 发表于 2022-11-7 13:32
————————————————————————————————
【使用说明】把上述代码复制到任 ...

谢谢大哥 解决了
作者: pajiman1999    时间: 2022-11-7 14:11
loveinyou200 发表于 2022-11-6 23:42
不好意思,看错信息了,以为是后面的属性值字节过长的问题,那就更简单了。

同样在这个文档里找到以下字 ...

也谢谢 这位大哥的解答 虽然没解决问题 但是您愿意抽出时间帮助我 我也是铭记在心的
作者: loveinyou200    时间: 2022-11-7 18:55
pajiman1999 发表于 2022-11-7 03:51
同样在这个文档里找到以下字段:
Window_Base.prototype.drawItemName = function(item, x, y, width) {
   ...

怎么可能,这是修改drawItemName的核心字段,只有这样改,你所有的物品名的字节都可以被拉长。

你现在用的认同的文本修改内容“Window_EquipSlot.prototype.drawItem”,只修改了装备页装备插槽内的武器与防具的文本展示字节长度,但同样这把武器或防具,在物品页面和角色状态页面,名字显示还是不对的。

算了,你觉得对就对吧,你的游戏,你说了算。
作者: pajiman1999    时间: 2022-11-8 21:36
loveinyou200 发表于 2022-11-7 18:55
怎么可能,这是修改drawItemName的核心字段,只有这样改,你所有的物品名的字节都可以被拉长。

你现在用 ...

确实是无效的 我是小白我也不懂哈。。。。只能说结论
作者: loveinyou200    时间: 2022-11-8 22:34
标题: RE: 请问如何修改装备名字显示长度
本帖最后由 loveinyou200 于 2022-11-8 22:49 编辑

说了,你的游戏你做主,其他问题你无所谓不要紧,但也请不要因为你自己的操作或理解问题,说这是无效:

取一个非常长的名字作为武器名,进游戏,打开装备栏,武器的字体被自然压缩了——


然后修改“rpg_windows.js”内DrawItemName字段,把字节宽度width放大——


保存文档后,再进入游戏,同样到装备菜单,武器的字体就正常了——


字体是正常了,显示不全是另一个问题,这个问题我在最早的回复中已经告诉你了,因为窗体大小不足,所以文字会显示不全,需要调整窗体大小(请回看我的第一次回复)。
如果要让文字显示全,两种情况都可以实行:

1、减小左边属性栏的窗体宽度,甚至不显示,让右边装备栏的窗体足够放大,这样就能把武器名显示出来——


2、由于MV默认的游戏窗体大小只有816x624,显示内容确实有限,而且到手机端玩,窗体就显得更小了,所以一般都会把游戏做成1280x720的,这样的窗体大小就足够显示超长度的物品名称了——


如果用原来816的宽度,就尽量少用长名,要用长名字,就尽量保持游戏窗口足够容纳所需展示的信息,做1280,甚至是1920的宽度,这样怎么放都行。

你现在采纳方案的问题我在重述一遍:
你接受的那套方案,只是修改了装备栏的展示宽度,在道具栏里,还有人物状态展示栏里,超长的武器名,依然会被压缩,如果你无所谓,那就当我没有说就好了。

人物状态栏——


道具菜单——

作者: pajiman1999    时间: 2022-11-10 13:46
loveinyou200 发表于 2022-11-8 22:34
说了,你的游戏你做主,其他问题你无所谓不要紧,但也请不要因为你自己的操作或理解问题,说这是无效:

取 ...

我再按你的试试 或许是我操作的问题导致无效的 其实我也只是把实际情况说出来了 毕竟我是个小白  
作者: pajiman1999    时间: 2022-11-10 13:49
实测确实无效 我觉得原因是这样的 用rpg_windows.js修改可能 因为其他插件冲突导致无效了吧  就像上面那个大佬留言的 尽量用插件修改 不要碰 rpg_windows.js 估计就是这个原因了




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