//【使用说明】
//满足下列条件的道具,在使用时受限制次数影响:
//1.道具备注栏备注<角色使用限制:x>
//2.道具范围是[我方单体];
//3.使用场合是城镇地图(战斗时会自动禁用,不用担心)。
//4.成员入队初始化时,重置该角色所有道具的使用次数。
//【举例子】
//1号道具备注:<角色使用限制:10>
//该道具对任何角色的次数限制均为10,所有角色单独计算。
//可以随时在数据库修改备注栏的限制次数,会自动同步。
var _XZScene_ItemBase_canUse = Scene_ItemBase.prototype.canUse;
Scene_ItemBase.prototype.canUse = function() {
if (this._actorWindow && this._actorWindow.active) {
var actor = $gameParty.members()[this._actorWindow.index()];
var TJ = !actor.isItemXZ(this.item());
return _XZScene_ItemBase_canUse && TJ;
} else {
return _XZScene_ItemBase_canUse;
}
};
var _XZScene_Item_onItemOk = Scene_Item.prototype.onItemOk;
Scene_Item.prototype.onItemOk = function() {
_XZScene_Item_onItemOk.call(this);
if (this._actorWindow && this._actorWindow.active) this._actorWindow.refresh();
};
var _XZScene_Item_useItem = Scene_Item.prototype.useItem;
Scene_Item.prototype.useItem = function() {
_XZScene_Item_useItem.call(this);
if (this._actorWindow && this._actorWindow.active) {
var actor = $gameParty.members()[this._actorWindow.index()];
actor.BgItemXZ(this.item());
this._actorWindow.refresh();
}
};
var _XZWindow_Base_drawActorSimpleStatus = Window_Base.prototype.drawActorSimpleStatus;
Window_Base.prototype.drawActorSimpleStatus = function(actor, x, y, width) {
_XZWindow_Base_drawActorSimpleStatus.call(this, actor, x, y, width);
if (SceneManager._scene.constructor.name == "Scene_Item") {
var item = SceneManager._scene.item();
if (item && item.meta.角色使用限制) {
var se = actor.isItemXZ(item)?'\\c[18]':'\\c[24]';
var text = '\\c[16]限制使用次数:'+se+actor.ItemXZs(item)+'/'+item.meta.角色使用限制;
var yy = y+this.itemHeight()-this.standardFontSize()-this.spacing()*2;
this.drawTextEx(text, this.textPadding(), yy);
}
}
};
var _XZWindow_ItemList_isCurrentItemEnabled = Window_ItemList.prototype.isCurrentItemEnabled;
Window_ItemList.prototype.isCurrentItemEnabled = function() {
if ($gameParty.inBattle() && this.item() && this.item().meta.角色使用限制) return false;
return _XZWindow_ItemList_isCurrentItemEnabled.call(this);
};
//成员入队初始化时,重置该角色所有道具的使用次数
//不想要这个功能就删除这段代码
var _XZGame_Actor_setup = Game_Actor.prototype.setup;
Game_Actor.prototype.setup = function(actorId) {
_XZGame_Actor_setup.call(this,actorId);
if (this._ItemXZ) this._ItemXZ = null;
};//
Game_Actor.prototype.isItemXZ = function(item) {
var kg = false;
if (!item) return kg;
if (!item.meta.角色使用限制) return kg;
if (!this._ItemXZ) this._ItemXZ = [];
var s = Number(item.meta.角色使用限制);
for (var i=0;i<this._ItemXZ.length;i++) {
var sz = this._ItemXZ[i];
if (sz[0]==item.id && sz[1]>=s) kg = true;
}
return kg;
};
Game_Actor.prototype.ItemXZs = function(item) {
if (item && item.meta.角色使用限制 && this._ItemXZ) {
var bh = -1;
for (var i=0;i<this._ItemXZ.length;i++) {
var sz = this._ItemXZ[i];
if (sz[0]==item.id) bh = i;
}
if (bh!=-1) return this._ItemXZ[bh][1];
}
return 0;
};
Game_Actor.prototype.BgItemXZ = function(item) {
if (item && item.meta.角色使用限制 && !this.isItemXZ(item)) {
var bh = -1;
for (var i=0;i<this._ItemXZ.length;i++) {
var sz = this._ItemXZ[i];
if (sz[0]==item.id) bh = i;
}
if (bh!=-1) {
this._ItemXZ[bh][1]++;
} else {
this._ItemXZ.push([item.id,1]);
}
}
};