// // スキル使用条件 ver1.03 // // ------------------------------------------------------ // Copyright (c) 2016 Yana // Released under the MIT license // http://opensource.org/licenses/mit-license.php // ------------------------------------------------------ // // author Yana // var Imported = Imported || {}; Imported['TermsOfSkillUse'] = 1.03; /*: * @plugindesc ver1.03/スキルやアイテムに詳細な使用条件を設定できます。 * CoditionallyCoreのプラグインが必要です。 * @author Yana * * @param Unselectable Target Color * @desc 使用条件により選択不能なターゲットの表示色です。 * Window.pngの右下のインデックスで指定します。 * @default 5 * * @param Unselectable Usable * @desc 使用条件により選択不能にするかの設定です。 * falseの場合、スキルが使用できるかどうかのみの判定となります。 * @default true * * @help ------------------------------------------------------ * 注意 * ------------------------------------------------------ * * ・このプラグインの動作には、ConditionallyCoreのプラグインが必要です。 * ・ConditionallyCoreよりも下に配置してください。 * ・PassiveSkillと同時に導入する場合、こちらを下に配置してください。 * * ------------------------------------------------------ * プラグインコマンドはありません。 * ------------------------------------------------------ * ------------------------------------------------------ * 設定方法 * ------------------------------------------------------ * スキルのメモ欄に * <使用条件> * ここに条件を記述 * * と記述します。 * * 使用可能な条件はConditionallyCoreに準拠します。 * ------------------------------------------------------ * 仕様と解説 * ------------------------------------------------------ * ・対象を取る条件を指定した場合、条件を満たしていない対象は選べなくなります。 * ・対象を取る条件を指定した場合、条件を満たしていない対象は行動のターゲットから除外されます。 * ・パッシブスキルと同時に導入した場合、パッシブスキルにも使用条件を適用することが可能です。 * ・条件変化スキルや条件付き追加効果との併用化は現在きっちりできていません。 * これらのスキルには条件を指定しないか、対象を自身のみにするような条件にすることをお勧めします。 * ・使用条件により、戦闘中に誰も使用できないアイテムがアイテムリストに表示されないのは仕様です。 * ------------------------------------------------------ * 利用規約 * ------------------------------------------------------ * 当プラグインはMITライセンスで公開されています。 * 使用に制限はありません。商用、アダルト、いずれにも使用できます。 * 二次配布も制限はしませんが、サポートは行いません。 * 著作表示は任意です。行わなくても利用できます。 * 要するに、特に規約はありません。 * バグ報告や使用方法等のお問合せはネ実ツクールスレ、または、Twitterにお願いします。 * https://twitter.com/yanatsuki_ * 素材利用は自己責任でお願いします。 * ------------------------------------------------------ * 更新履歴: * ver1.03:170306 * 自動戦闘時に使用条件による対象の制限が機能するように変更。 * ver1.02: * Unselectable Usableがtrueの時、対象選択が正常に動作しないバグを修正。 * ver1.01: * ゲームをロードした時に、正常に使用条件がクリアされていないバグを修正。 * 条件を満たさない対象が対象にならない機能を無効化する設定を追加。 * ver1.00: * 公開 */ (function(){ 'use strict'; var parameters = PluginManager.parameters('TermsOfSkillUse'); var unselectableTargetColor = Number(parameters['Unselectable Target Color'] || 5); var unselectableUsable = String(parameters['Unselectable Usable']) === 'true'; function CondSkillManager() { throw new Error('This is a static class'); } CondSkillManager.initCond = function(note){ var texts = note.split('\n'); var flag = false; var result = []; for(var i=0;i/)){ result.push(effect); flag = false; }else{ effect['conditions'].push(ConditionallyManager.makeCondition(texts[i])); } }else if (texts[i].match(/^<使用条件>/)){ var effect = {'conditions':[]}; flag = true; } } return result; }; var _tOSU_GBBase_meetsSkillConditions = Game_BattlerBase.prototype.meetsSkillConditions; Game_BattlerBase.prototype.meetsSkillConditions = function(skill) { var result = _tOSU_GBBase_meetsSkillConditions.call(this,skill); return result && this.isUsableCond(skill); }; var _tOSU_GBBase_meetsItemConditions = Game_BattlerBase.prototype.meetsItemConditions; Game_BattlerBase.prototype.meetsItemConditions = function(item) { var result = _tOSU_GBBase_meetsItemConditions.call(this,item); return result && this.isUsableCond(item); }; if (Imported['yPassiveSkill']){ var _tOSU_GActor_isUsableSkill = Game_Actor.prototype.isUsableSkill; Game_Actor.prototype.isUsableSkill = function(skill) { var result = _tOSU_GActor_isUsableSkill.call(this,skill); var result2 = this.isUsableCond(skill); return result && result2; }; } Game_BattlerBase.prototype.isUsableCond = function(item){ item._useCond = item._useCond || CondSkillManager.initCond(item.note); var user = [this]; user = user.clone()[0]; var target = null; for(var i=0;i