102 lines
No EOL
3.9 KiB
JavaScript
102 lines
No EOL
3.9 KiB
JavaScript
//
|
||
// 装備制限 ver1.00
|
||
//
|
||
// ------------------------------------------------------
|
||
// Copyright (c) 2016 Yana
|
||
// Released under the MIT license
|
||
// http://opensource.org/licenses/mit-license.php
|
||
// ------------------------------------------------------
|
||
//
|
||
// author yana
|
||
//
|
||
|
||
var Imported = Imported || {};
|
||
Imported['EquippedLimit'] = 1.00;
|
||
/*:
|
||
* @plugindesc ver1.00/計算式で装備を制限する機能を追加します。
|
||
* @author Yana
|
||
*
|
||
* @help ------------------------------------------------------
|
||
* 使用方法
|
||
* ------------------------------------------------------
|
||
* 武器や防具のメモに
|
||
* <装備制限:xxx>
|
||
* <EquippedLimit:xxx>
|
||
* のいずれかを記述すると、xxxをevalで評価した答えがtrueでない限り、
|
||
* その装備はグレーアウトして装備できなくなります。
|
||
*
|
||
* xxxは計算式を記述できますが、その時に
|
||
* a →アクター
|
||
* v →変数
|
||
* s →スイッチ
|
||
* がそれぞれ使用できます。
|
||
*
|
||
* この条件は複数行にわたって記述することで、複数個設定することができます。
|
||
*
|
||
* 例1:現在レベルが30以上でないと装備できない
|
||
* <装備制限:a.level >= 30>
|
||
*
|
||
* 例2:現在のアクターの素の攻撃力が30以上かつ、素の防御力が30以上でないと装備できない
|
||
* <装備制限:a.paramBase(2) >= 30>
|
||
* <装備制限:a.paramBase(3) >= 30>
|
||
* ------------------------------------------------------
|
||
* 利用規約
|
||
* ------------------------------------------------------
|
||
* 当プラグインはMITライセンスで公開されています。
|
||
* 使用に制限はありません。商用、アダルト、いずれにも使用できます。
|
||
* 二次配布も制限はしませんが、サポートは行いません。
|
||
* 著作表示は任意です。行わなくても利用できます。
|
||
* 要するに、特に規約はありません。
|
||
* バグ報告や使用方法等のお問合せはネ実ツクールスレ、または、Twitterにお願いします。
|
||
* https://twitter.com/yanatsuki_
|
||
* 素材利用は自己責任でお願いします。
|
||
* ------------------------------------------------------
|
||
* 更新履歴:
|
||
* ver1.00:
|
||
* 公開
|
||
*/
|
||
(function() {
|
||
////////////////////////////////////////////////////////////////////////////////////
|
||
|
||
var parameters = PluginManager.parameters('EquippedLimit');
|
||
|
||
////////////////////////////////////////////////////////////////////////////////////
|
||
|
||
DataManager.equippedLimit = function(item) {
|
||
if (!item) return [];
|
||
if (item._equippedLimit) return item._equippedLimit;
|
||
item._equippedLimit = [];
|
||
var notes = item.note.split('\n');
|
||
for (var i=0,max=notes.length;i<max;i++) {
|
||
if (notes[i].match(/<(?:装備制限|EquippedLimit)[::](.+)>/)) {
|
||
item._equippedLimit.push(RegExp.$1);
|
||
}
|
||
}
|
||
return item._equippedLimit;
|
||
};
|
||
|
||
////////////////////////////////////////////////////////////////////////////////////
|
||
|
||
Game_Actor.prototype.isLeEquippable = function(item) {
|
||
if (!item) return true;
|
||
var el = DataManager.equippedLimit(item);
|
||
var a = this;
|
||
var v = $gameVariables._data;
|
||
var s = $gameSwitches._data;
|
||
for (var i=0,max=el.length;i<max;i++) {
|
||
if (!eval(el[i])) return false;
|
||
}
|
||
return true;
|
||
};
|
||
|
||
////////////////////////////////////////////////////////////////////////////////////
|
||
|
||
var __WEItem_isEnabled = Window_EquipItem.prototype.isEnabled;
|
||
Window_EquipItem.prototype.isEnabled = function(item) {
|
||
var result = __WEItem_isEnabled.call(this, item);
|
||
result = result && this._actor.isLeEquippable(item);
|
||
return result;
|
||
};
|
||
|
||
////////////////////////////////////////////////////////////////////////////////////
|
||
}()); |