设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 605|回复: 5
打印 上一主题 下一主题

[有事请教] 求教,可装备在多个装备类型槽位的插件

[复制链接]

Lv3.寻梦者

梦石
0
星屑
4722
在线时间
436 小时
注册时间
2008-1-18
帖子
459
跳转到指定楼层
1
发表于 2026-1-14 22:40:06 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
10星屑
本帖最后由 红十字 于 2026-1-14 22:40 编辑

大家好.我想做一个首饰,希望他能够装备在任意一个我指定的装备类型槽位,例如金链子,可以装备左手,也可以装备右手,还可以装备在脚上,于是我让豆包帮我写了一个插件,但是在游戏中,还是只能装备在数据库指定的装备类型才能够生效,其他位置都不好用.下面是豆包写的插件,请大佬帮忙看看哪里的问题呗?感谢.


//=============================================================================
// MultiSlotEquip_Ultimate.js
// 彻底解除所有装备限制(槽位+类型+显示)
//=============================================================================

/*:
* @plugindesc 彻底解除装备槽、装备类型的所有限制,确保装备可正常穿戴
* @author 豆包
*
* @help
* 使用方法:装备备注栏写 <MultiEquip:槽位ID1,ID2>(如<MultiEquip:5,6,7>)
*/

(function() {
    'use strict';

    // 1. 跳过装备验证的所有限制
    Game_Actor.prototype.isEquipValid = function(item) {
        if (!item) return false;
        // 标记了MultiEquip的装备,直接通过验证
        if (item.meta.MultiEquip) {
            return this.canEquip(item); // 仅保留角色是否可装备的基础校验
        }
        // 未标记的装备用原生逻辑
        var slotId = this._lastValidSlotId || 0;
        var slotType = this.equipSlots()[slotId];
        return this.canEquip(item) && (item.etypeId === slotType);
    };

    // 2. 让装备显示在指定槽位的列表中
    Window_EquipItem.prototype.includes = function(item) {
        if (!item) return false;
        if (item.meta.MultiEquip) {
            var slotId = this._slotId + 1;
            var allowedSlots = item.meta.MultiEquip.split(',').map(id => parseInt(id.trim()));
            return allowedSlots.includes(slotId) && this._actor.canEquip(item);
        }
        return this._actor.canEquip(item) && (item.etypeId === this._actor.equipSlots()[this._slotId]);
    };

    // 3. 强制装备变更(跳过槽位类型校验)
    Game_Actor.prototype.changeEquip = function(slotId, item) {
        if (item && item.meta.MultiEquip) {
            // 直接装备,忽略槽位类型
            if (this.canEquip(item)) {
                this._equips[slotId].setObject(item);
                this.refresh();
                return;
            }
        }
        // 原生逻辑
        if (this.canEquip(item) && (item.etypeId === this.equipSlots()[slotId])) {
            this._equips[slotId].setObject(item);
            this.refresh();
        }
    };

})();

1.png (119.26 KB, 下载次数: 34)

护甲设定界面

护甲设定界面

最佳答案

查看完整内容

https://rpg.blue/thread-493776-1-1.html 试试这个插件能不能实现你需要的功能

Lv3.寻梦者

梦石
0
星屑
4725
在线时间
777 小时
注册时间
2022-7-2
帖子
19
2
发表于 2026-1-14 22:40:07 | 只看该作者
https://rpg.blue/thread-493776-1-1.html
试试这个插件能不能实现你需要的功能
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4722
在线时间
436 小时
注册时间
2008-1-18
帖子
459
3
 楼主| 发表于 2026-1-15 08:56:08 | 只看该作者
怒火的燃烧 发表于 2026-1-15 07:14
https://rpg.blue/thread-493776-1-1.html
试试这个插件能不能实现你需要的功能

非常感谢,我去看看
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4722
在线时间
436 小时
注册时间
2008-1-18
帖子
459
4
 楼主| 发表于 2026-1-15 09:16:01 | 只看该作者
怒火的燃烧 发表于 2026-1-14 22:40
https://rpg.blue/thread-493776-1-1.html
试试这个插件能不能实现你需要的功能

大佬,的确好用,但是在第一行出现了一个空白的槽位,请问知道如何解决么?
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4725
在线时间
777 小时
注册时间
2022-7-2
帖子
19
5
发表于 2026-1-15 11:34:59 | 只看该作者
红十字 发表于 2026-1-15 09:16
大佬,的确好用,但是在第一行出现了一个空白的槽位,请问知道如何解决么?
...

在新建工程中使用该插件没有出这样的情况,检查是否有插件冲突或者插件中的各项设置
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4722
在线时间
436 小时
注册时间
2008-1-18
帖子
459
6
 楼主| 发表于 2026-1-15 11:55:04 | 只看该作者
怒火的燃烧 发表于 2026-1-15 11:34
在新建工程中使用该插件没有出这样的情况,检查是否有插件冲突或者插件中的各项设置 ...

弄好了.用了YEP的装备核心...非常感谢你的帮助
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2026-6-5 06:29

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表