当サイトの運営者です。ゲーム制作とプラグイン開発が好きで、コミュニティに貢献したいと考えています。
RPGツクールMZでゲームを制作中です。
※プログラマ・エンジニアではありません。
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}”
*
*/