
YEP Lunatic Pack - Passive Condition Cases - YEP_Z_PassiveCases.js

▼YEP Lunatic Pack - Passive Condition Cases(Yanfly様作) - YEP_Z_PassiveCases.js
https://plugin.fungamemake.com/archives/10605
詳細な条件付きパッシブステートを作成
ふりがな:ぱっしぶこんでぃしょんけーす
機能概要: 詳細な条件付きパッシブステートを作成
利用規約(ライセンス):http://www.yanfly.moe/wiki/Category:Yanfly_Engine_Plugi…
作者:Yanfly
作者サイト:http://yanfly.moe/
解説ページ:https://fungamemake.com/archives/1822
ダウンロードページ:http://yanfly.moe/2017/12/15/yep-161-lunatic-pack-passi…
ファイル名:YEP_Z_PassiveCases.js
プラグインのヘルプ:
/*:ja * @plugindesc v1.01 (Lunatic Pack) 詳細な条件付きパッシブステートを作ります。 * @author Yanfly Engine Plugins * * @help * 翻訳:ムノクラ * https://munokura.tk/ * https://twitter.com/munokura/ * * ============================================================================ * Introduction * ============================================================================ * * このプラグインは以下のプラグインを必要とします。 * - Auto Passive States * * パッシブステートはゲームに強力に影響する場合がありますが、 * 戦闘中ずっと有効である場合、少し強力すぎる場合があります。 * パッシブステートに条件付きのケースを課すことによって * パッシブになる範囲を制限したいと思うこともあるでしょう。 * パッシブの条件付きケースが全て満たされた場合、 * パッシブは有効になります。 * このプラグインは特定のパッシブステートの効果が * 常に有効であることを制限するための多数の条件付きケースを追加します。 * * *注意*:このプラグインはRPGツクールMVバージョン1.5.0以降でよく使われます。 * まだより低いバージョンでこのプラグインを使用することができます、 * しかし、プラグインパラメータを変更することはずっと困難になるでしょう。 * * ============================================================================ * Notetags * ============================================================================ * * 次のようなメモタグをステートのメモ欄に挿入して、パッシブステートにします。 * * ステートのメモタグ * * <Passive Condition Cases> * condition * condition * </Passive Condition Cases> * - パッシブステートに条件を追加するために * 上記のフォーマットを使用してください。 * <PassiveConditionCases>と</PassiveConditionCases>のメモタグの間にある * 'condition'のテキストを、 * 以下のいずれかの条件に置き換えて条件タイプを入力します。 * 複数の条件を挿入して、 * パッシブステートが有効になる前に、満たすべき条件を必要にできます。 * * =-=-=-= Conditions List =-=-=-= * * --- Switch On/Off --- * * Switch x On * Switch x Off * - 'x'を数値で置き換えます。 * イベントスイッチxがオンかオフかを条件付きでチェックします。 * 条件付きチェックが満たされると、パッシブが有効になります。 * 提案者:Yanfly * * --- Numerical Comparison Check --- * * x >= y * x <= y * x > y * x < y * x != y * x = y * - xとyの単純な比較チェックをするための条件を必要とします。 * これらの数の比較は'>='、'<='、'>'、'<'、'!='、'=' * となります。 * 'x'と'y'を数字、パーセント、'HP'、'MP'、'TP'、'HP%'、'MP%'、'TP%'、 * 'MAXHP'、'MAXMP'で置き換えます。 * 比較に'ATK'、'DEF'、'MAT'、'MDF'、'AGI'、'LUK'、'VARIABLEX'を指定します。 * パーセントがチェックされている場合、 * %が省略されたようにチェックされます。 * 例えば、'50%'は'50'になります。 * 提案者:Yanfly * * --- Has/Not State --- * * Has State x * - 'x'を確認したいステートのIDに置き換えます。 * 使用者がそのステートの影響を受けている場合、 * 他の全ての条件が満たされている限り、 * この条件付きパッシブは有効になります。 * 提案者:Goldschuss * * Not State x * - 'x'を確認したいステートのIDに置き換えます。 * 使用者がそのステートの影響を受けていない場合、 * 他の全ての条件が満たされている限り、 * この条件付きパッシブは有効になります。 * 提案者:Goldschuss * * --- Has/Not Buff/Debuff--- * * Has x Buff * - 'x'を'MAXHP'、'MAXMP'、'ATK'、'DEF'、'MAT'、'MDF'、 * 'AGI'、'LUK'に置き換えます。 * 使用者が現在そのパラメータでバフされているかどうかを確認します。 * 使用者がいる場合、他の全ての条件が満たされている限り、 * 条件付きパッシブは有効になります。 * 提案者:Yanfly * * Has x Debuff * - 'x'を'MAXHP'、'MAXMP'、'ATK'、'DEF'、'MAT'、'MDF'、 * 'AGI'、'LUK'に置き換えます。 * 使用者が現在そのパラメータでデバフされているかどうかを確認します。 * 使用者がいる場合、他の全ての条件が満たされている限り、 * 条件付きパッシブは有効になります。 * 提案者:Yanfly * * Not x Buff * - 'x'を'MAXHP'、'MAXMP'、'ATK'、'DEF'、'MAT'、'MDF'、 * 'AGI'、'LUK'に置き換えます。 * 使用者が現在そのパラメータでバフされていないかどうかを確認します。 * 使用者がいる場合、他の全ての条件が満たされている限り、 * 条件付きパッシブは有効になります。 * 提案者:Yanfly * * Not x Debuff * - 'x'を'MAXHP'、'MAXMP'、'ATK'、'DEF'、'MAT'、'MDF'、 * 'AGI'、'LUK'に置き換えます。 * 使用者がそのパラメータで現在デバフされていないかどうかを確認します。 * 使用者がいる場合、他の全ての条件が満たされている限り、 * 条件付きパッシブは有効になります。 * 提案者:Yanfly * * --- Total Buffs/Debuffs --- * * Total Buffs >= x * Total Buffs <= x * Total Buffs > x * Total Buffs < x * Total Buffs != x * Total Buffs = x * - 'x'を、使用者が現在影響を受けているバフの数を * 確認したい数値に置き換えます。 * ターンチェックをパスした場合、他の条件が満たされると、 * 条件付きパッシブは有効になります。 * 提案者:AlejandroSQ * * Total Debuffs >= x * Total Debuffs <= x * Total Debuffs > x * Total Debuffs < x * Total Debuffs != x * Total Debuffs = x * - 'x'を、使用者が現在影響を受けているデバフの数を * 確認したい数値に置き換えます。 * ターンチェックをパスした場合、他の条件が満たされると、 * 条件付きパッシブは有効になります。 * 提案者:AlejandroSQ * * --- Alive/Dead --- * * Alive Actors/Enemies/Allies/Foes >= x * Alive Actors/Enemies/Allies/Foes <= x * Alive Actors/Enemies/Allies/Foes > x * Alive Actors/Enemies/Allies/Foes < x * Alive Actors/Enemies/Allies/Foes != x * Alive Actors/Enemies/Allies/Foes = x * - 'x'をパーティで生きているアクターの数、 * 敵グループ、仲間、敵と比較して調べたい数値に置き換えてください。 * 上記の4つのキーワード('actors'、'enemies'、'allies'、'foes')のうち * 1つだけを使用してください。 * メンバー数チェックをパスすると、他の全ての条件が満たされている限り、 * 条件付きパッシブは有効になります。 * 提案者:Yanfly * * Dead Actors/Enemies/Allies/Foes >= x * Dead Actors/Enemies/Allies/Foes <= x * Dead Actors/Enemies/Allies/Foes > x * Dead Actors/Enemies/Allies/Foes < x * Dead Actors/Enemies/Allies/Foes != x * Dead Actors/Enemies/Allies/Foes = x * - 'x'を死んでいるアクター、敵グループ、仲間、敵と比較して * 確認したい数値に置き換えてください。 * 上記の4つのキーワード('actors'、'enemies'、'allies'、'foes')のうち * 1つだけを使用してください。 * メンバー数チェックをパスすると、他の全ての条件が満たされている限り、 * 条件付きパッシブは有効になります。 * 提案者:Yanfly * * --- Turn Count --- * * Battle Turns >= x * Battle Turns <= x * Battle Turns > x * Battle Turns < x * Battle Turns != x * Battle Turns = x * - 'x'を戦闘で経過ターンの数に関連してチェックしたい数値で置き換えます。 * ターンチェックをパスすると、他の全ての条件が満たされている限り、 * 条件付きパッシブは有効になります。 * 提案者:Yanfly * * --- Has Weapon/Armor --- * * Has Weapon x * - 使用者はアクターでなければなりません。 * そうでなければ、この条件はfalseを返します。 * 使用者が持っているかどうかを確認したい武器IDで'x'を置き換えます。 * 使用者がそれを装備している場合、条件は合格し、 * 他の全ての条件が満たされている限り有効になります。 * 提案者:Yanfly * * Not Weapon x * - 使用者はアクターでなければなりません。 * そうでなければ、この条件はfalseを返します。 * 使用者が持っているかをチェックしたい武器IDで'x'を置き換えてください。 * 使用者がそれを装備していない場合、条件は合格し、 * 他の全ての条件が満たされている限り有効になります。 * 提案者:Yanfly * * Has Armor x * - 使用者はアクターでなければなりません。 * そうでなければ、この条件はfalseを返します。 * 使用者が持っているかチェックしたい防具IDと'x'を取り替えてください。 * 使用者がそれを装備している場合、条件をパスし、 * 他の全ての条件が満たされている限り有効になります。 * 提案者:Yanfly * * Not Armor x * - 使用者はアクターでなければなりません。 * そうでなければ、この条件はfalseを返します。 * 使用者が持っているかをチェックしたい防具IDで'x'を置き換えてください。 * 使用者がそれを装備していない場合、条件をパスし、 * 他の全ての条件が満たされている限り有効になります。 * 提案者:Yanfly * * ============================================================================ * Lunatic Mode - Effect Code * ============================================================================ * * JavaScriptを知っていてRPGツクールMV1.5.0+を使用している経験豊富な使用者に、 * プラグインで使用できる新しいメモタグ効果を追加するか、 * plugin parametersエントリから現在存在するメモタグ効果の効果を変更できます。 * 次のようになります。 * * --- * * // ------------- * // Switch On/Off * // ------------- * if (data.match(/SWITCH[ ](d+)[ ]ON/i)) { * var switchId = parseInt(RegExp.$1); * condition = $gameSwitches.value(switchId); * * } else if (data.match(/SWITCH[ ](d+)[ ]OFF/i)) { * var switchId = parseInt(RegExp.$1); * condition = !$gameSwitches.value(switchId); * * ... * * // ------------------------------- * // Add new effects above this line * // ------------------------------- * } else { * skip = true; * } * * --- * * このコードビットで使用されている各変数は、次のとおりです。 * * -------------------- --------------------------------------------------- * Variable: Refers to: * -------------------- --------------------------------------------------- * condition 現在の条件設定でtrueが返されると、 * 現在の条件のケースは成功します。 * パッシブステートが有効になるには、 * その全ての条件が必要です。 * * * a アクション使用者を返す * user アクション使用者を返す * subject アクション使用者を返す * * s[x] スイッチxを返す(true / false) * v[x] 変数xの現在値を返す * * skip デフォルト:false trueの場合、前のレートを返す * * --- * * エフェクトコードを元のステートに戻す必要がある場合、 * プラグインマネージャ管理からプラグインを削除してから、 * もう一度追加してください。 * コードはデフォルトに戻ります。 * * ============================================================================ * Changelog * ============================================================================ * * Version 1.01: * - Bypass the isDevToolsOpen() error when bad code is inserted into a script * call or custom Lunatic Mode code segment due to updating to MV 1.6.1. * * Version 1.00: * - Finished Plugin! * * ============================================================================ * End of Helpfile * ============================================================================ * * @param Effect Code * @type note * @desc 各メモタグ効果のコードです。 * @default ”// -------------n// Switch On/Offn// -------------nif (data.match(/SWITCH[ ](\d+)[ ]ON/i)) {n var switchId = parseInt(RegExp.$1);n condition = $gameSwitches.value(switchId);nn} else if (data.match(/SWITCH[ ](\d+)[ ]OFF/i)) {n var switchId = parseInt(RegExp.$1);n condition = !$gameSwitches.value(switchId);nn// -------------n// Has/Not Staten// -------------n} else if (data.match(/HAS[ ]STATE[ ](\d+)/i)) {n var stateId = parseInt(RegExp.$1);n condition = user.isStateAffected(stateId);nn} else if (data.match(/NOT[ ]STATE[ ](\d+)/i)) {n var stateId = parseInt(RegExp.$1);n condition = !user.isStateAffected(stateId);nn// -------------------n// Has/Not Buff/Debuffn// -------------------n} else if (data.match(/HAS[ ](.*)[ ]BUFF/i)) {n var str = String(RegExp.$1);n var paramId = DataManager.getParamId(str);n condition = user.isBuffAffected(paramId);nn} else if (data.match(/HAS[ ](.*)[ ]DEBUFF/i)) {n var str = String(RegExp.$1);n var paramId = DataManager.getParamId(str);n condition = user.isDebuffAffected(paramId);nn// --------------------n// Has/Not Weapon/Armorn// --------------------n} else if (data.match(/HAS[ ]WEAPON[ ](\d+)/i)) {n if (user.isActor()) {n var id = parseInt(RegExp.$1);n var item = $dataWeapons[id];n condition = user.hasWeapon(item);n } else {n condition = false;n }nn} else if (data.match(/NOT[ ]WEAPON[ ](\d+)/i)) {n if (user.isActor()) {n var id = parseInt(RegExp.$1);n var item = $dataWeapons[id];n condition = !user.hasWeapon(item);n } else {n condition = false;n }nn} else if (data.match(/HAS[ ]ARMOR[ ](\d+)/i)) {n if (user.isActor()) {n var id = parseInt(RegExp.$1);n var item = $dataArmors[id];n condition = user.hasArmor(item);n } else {n condition = false;n }nn} else if (data.match(/NOT[ ]ARMOR[ ](\d+)/i)) {n if (user.isActor()) {n var id = parseInt(RegExp.$1);n var item = $dataArmors[id];n condition = !user.hasArmor(item);n } else {n condition = false;n }nn// ----------------------n// Param Above/Below Statn// ----------------------n} else if (data.match(/(.*)[ ](?:>|<|>=|<=|=|!=)[ ](.*)/i)) {n var check1 = String(RegExp.$1);n var check2 = String(RegExp.$2);n var value1 = DataManager.numberParameterCheck(check1, user);n var value2 = DataManager.numberParameterCheck(check2, user);n if (value1 !== null && value2 !== null) {n if (data.match(/>=/i)) {n condition = value1 >= value2;n } else if (data.match(/</i)) {n condition = value1 <= value2;n } else if (data.match(/>/i)) {n condition = value1 > value2;n } else if (data.match(/</i)) {n condition = value1 < value2;n } else if (data.match(/!=/i)) {n condition = value1 !== value2;n } else if (data.match(/=/i)) {n condition = value1 === value2;n } else {n skip = true;n }n } else {n condition = false;n }nn// -------------------------------n// Add new effects above this linen// -------------------------------n} else {n skip = true;n}” * */
