61 lines
No EOL
1.9 KiB
JavaScript
61 lines
No EOL
1.9 KiB
JavaScript
//=============================================================================
|
|
// 素手禁止 / NoWeaponDisabled.js
|
|
//=============================================================================
|
|
|
|
/*:ja
|
|
* v0.5.0
|
|
* @plugindesc 装備画面で武器の装備無しを禁止する
|
|
* @author Declare War
|
|
*
|
|
* @param EquipCondition
|
|
* @desc 装備を解除できる条件を記述します。
|
|
* @default true
|
|
*/
|
|
|
|
(function(){
|
|
var NoWeaponDisabled = { params: PluginManager.parameters('NoWeaponDisabled') };
|
|
|
|
NoWeaponDisabled.EquipCondition = NoWeaponDisabled.params['EquipCondition'];
|
|
|
|
// Game_Actor
|
|
// clearEquipments #a
|
|
var _Game_Actor_clearEquipments = Game_Actor.prototype.clearEquipments;
|
|
Game_Actor.prototype.clearEquipments = function(){
|
|
if (SceneManager._scene.constructor === Scene_Equip){
|
|
this.noWeaponDisabledClearEquipments();
|
|
}else{
|
|
_Game_Actor_clearEquipments.call(this);
|
|
}
|
|
};
|
|
// noWeaponDisabledClearEquipments #n
|
|
Game_Actor.prototype.noWeaponDisabledClearEquipments = function() {
|
|
var maxSlots = this.equipSlots().length;
|
|
for (var i = 0; i < maxSlots; i++) {
|
|
if (this.isEquipChangeOk(i) && this.equipSlots()[i] !== 1) {
|
|
this.changeEquip(i, null);
|
|
}
|
|
}
|
|
};
|
|
// Scene_Equip
|
|
// onItemOk #a
|
|
var _Scene_Equip_onItemOk = Scene_Equip.prototype.onItemOk;
|
|
Scene_Equip.prototype.onItemOk = function() {
|
|
var Condition = new Function( "return !!("+ NoWeaponDisabled.EquipCondition + ");" )()
|
|
if (this.actor().equipSlots()[this._slotWindow.index()] === 2 && !this._itemWindow.item()){
|
|
if(Condition){
|
|
//装備解除できない時
|
|
_Scene_Equip_onItemOk.call(this);
|
|
}else{
|
|
//装備解除できる時
|
|
this.noWeaponDisabledOnItemOk();
|
|
}
|
|
}else{
|
|
_Scene_Equip_onItemOk.call(this);
|
|
}
|
|
};
|
|
// noWeaponDisabledOnItemOk #n
|
|
Scene_Equip.prototype.noWeaponDisabledOnItemOk = function() {
|
|
SoundManager.playBuzzer();
|
|
this._itemWindow.activate();
|
|
};
|
|
})(); |