加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 zhanghao 于 2017-1-10 20:18 编辑
【原创】作者: 范夏jk
实现以下功能: 单个物品最大数限制+物品种类限制/格子数
可在插件菜单调整你想要的参数。
*文件名请保存为Koo_ItemsLimited.js
使用、转载请署名
//============================================================================= // Koo_ItemsLimited.js //============================================================================= /*: * @plugindesc (v1.1) 物品种类限制。可能会与其他物品插件冲突,请注意。 * @author 范夏jk * * @param maxItemsType * @desc 最大种类数/格子数 * @default 30 * * @param maxItems * @desc 单个物品最大数 * @default 99 * * 作者:范夏jk * 转载、使用请署名 * 更新日志 * 1.1版 修正原来考虑不周到的部分,增加了限制单个物品最大数目的功能 * */ Game_Party.prototype.maxItems = function(item) { return Number(PluginManager.parameters('Koo_ItemsLimited')['maxItems'] || 99);//修改单个物品的最大数 }; Game_Party.prototype.numItemsType = function() { var container = Object.keys($gameParty._items); return container.length; }; Game_Party.prototype.maxItemsType = function() { return Number(PluginManager.parameters('Koo_ItemsLimited')['maxItemsType'] || 30);//修改物品种类的最大数 }; Game_Party.prototype.gainItem = function(item, amount, includeEquip) { var container = this.itemContainer(item); if (container) { var lastNumber = this.numItems(item); var newNumber = lastNumber + amount; if (this.numItemsType() >= this.maxItemsType()&& !container.hasOwnProperty(item.id)) { console.log("你的格子已满"); }else{ container[item.id] = newNumber.clamp(0, this.maxItems(item)); if (container[item.id] === 0) { delete container[item.id]; } if (includeEquip && newNumber < 0) { this.discardMembersEquip(item, -newNumber); } } $gameMap.requestRefresh(); } };
//=============================================================================
// Koo_ItemsLimited.js
//=============================================================================
/*:
* @plugindesc (v1.1) 物品种类限制。可能会与其他物品插件冲突,请注意。
* @author 范夏jk
*
* @param maxItemsType
* @desc 最大种类数/格子数
* @default 30
*
* @param maxItems
* @desc 单个物品最大数
* @default 99
*
* 作者:范夏jk
* 转载、使用请署名
* 更新日志
* 1.1版 修正原来考虑不周到的部分,增加了限制单个物品最大数目的功能
*
*/
Game_Party.prototype.maxItems = function(item) {
return Number(PluginManager.parameters('Koo_ItemsLimited')['maxItems'] || 99);//修改单个物品的最大数
};
Game_Party.prototype.numItemsType = function() {
var container = Object.keys($gameParty._items);
return container.length;
};
Game_Party.prototype.maxItemsType = function() {
return Number(PluginManager.parameters('Koo_ItemsLimited')['maxItemsType'] || 30);//修改物品种类的最大数
};
Game_Party.prototype.gainItem = function(item, amount, includeEquip) {
var container = this.itemContainer(item);
if (container) {
var lastNumber = this.numItems(item);
var newNumber = lastNumber + amount;
if (this.numItemsType() >= this.maxItemsType()&& !container.hasOwnProperty(item.id)) {
console.log("你的格子已满");
}else{
container[item.id] = newNumber.clamp(0, this.maxItems(item));
if (container[item.id] === 0) {
delete container[item.id];
}
if (includeEquip && newNumber < 0) {
this.discardMembersEquip(item, -newNumber);
}
}
$gameMap.requestRefresh();
}
};
|