当サイトの運営者です。ゲーム制作とプラグイン開発が好きで、コミュニティに貢献したいと考えています。
RPGツクールMZでゲームを制作中です。
※プログラマ・エンジニアではありません。
NRP Skill Range EX - NRP_SkillRangeEX.js

▼NRP Skill Range EX(砂川赳様作) - NRP_SkillRangeEX.js
https://plugin.fungamemake.com/archives/23018
スキル及びアイテムの効果範囲を拡張します。
ふりがな:すきるれんじえっくす
機能概要: スキル及びアイテムの効果範囲を拡張します。
利用規約(ライセンス):
・著作権:保持
・商用利用:許可
・追加改変:許可
・再配布:許可
・詳細はダウンロードページ・プラグイン内を確認
作者:砂川赳
作者サイト:https://newrpg.seesaa.net/
解説ページ:https://newrpg.seesaa.net/article/473374355.html
ファイル名:NRP_SkillRangeEX.js
プラグインのヘルプ:
/*:
* @plugindesc v1.011 スキル及びアイテムの効果範囲を拡張します。
* @author 砂川赳(http://newrpg.seesaa.net/)
*
* @help スキル及びアイテムの効果範囲を拡張します。
* 縦列・横列・グループ・円形など様々な指定が可能です。
*
* ■使用方法
* <RangeEx:vertical>
* というように登録されている範囲をスキル(アイテム)のメモ欄に記述します。
* また、独自範囲の追加も可能です。
*
* 詳細は以下のページをご覧ください。
* http://newrpg.seesaa.net/article/473374355.html
*
* ■注意点
* CTBおよびCTTBを導入している場合は、このプラグインを
* NRP_VisualTurn.jsよりも、上部に配置してください。
* そうしないと、行動順序リストの対象色変え表示ができません。
*
* ■利用規約
* 特に制約はありません。
* 改変、再配布自由、商用可、権利表示も任意です。
* 作者は責任を負いませんが、不具合については可能な範囲で対応します。
*
* @param rangeList
* @text 範囲一覧
* @type struct<Range>[]
* @default ["{\"name\":\"縦\",\"id\":\"vertical\",\"rangeIf\":\"40 >= Math.abs(b.x - c.x)\",\"screenAnimationX\":\"b.x\",\"screenAnimationY\":\"\",\"mainTargetAllIf\":\"c1._battler.isEnemy() ? c1.x > c2.x : c1.x < c2.x\",\"noSide\":\"false\"}","{\"name\":\"横\",\"id\":\"horizontal\",\"rangeIf\":\"40 >= Math.abs(b.y - b.height / 2 - (c.y - c.height / 2))\",\"screenAnimationX\":\"\",\"screenAnimationY\":\"b.y - b.height / 2\",\"mainTargetAllIf\":\"c1._battler.isEnemy() ? c1.y > c2.y : c1.y < c2.y\",\"noSide\":\"false\"}","{\"name\":\"グループ\",\"id\":\"group\",\"rangeIf\":\"b._battler.isEnemy() ? b._battler.enemyId() == c._battler.enemyId() : true\",\"screenAnimationX\":\"\",\"screenAnimationY\":\"\",\"mainTargetAllIf\":\"\",\"noSide\":\"false\"}","{\"name\":\"円\",\"id\":\"circle\",\"rangeIf\":\"100**2 >= Math.max(Math.abs(c.x - b.x) - c.width / 2, 0)**2 + Math.max(Math.abs(c.y - c.height / 2 - (b.y - b.height / 2)) - c.height / 2, 0)**2\",\"screenAnimationX\":\"b.x\",\"screenAnimationY\":\"b.y - b.height / 2\",\"mainTargetAllIf\":\"(c1.x - a.x)**2 + (c1.y - a.y)**2 < (c2.x - a.x)**2 + (c2.y - a.y)**2\",\"noSide\":\"false\"}","{\"name\":\"十字\",\"id\":\"cross\",\"rangeIf\":\"40 >= Math.abs(b.x - c.x) || 40 >= Math.abs(b.y - b.height / 2 - (c.y - c.height / 2))\",\"screenAnimationX\":\"b.x\",\"screenAnimationY\":\"b.y - b.height / 2\",\"mainTargetAllIf\":\"\",\"noSide\":\"false\"}","{\"name\":\"直線\",\"id\":\"line\",\"rangeIf\":\"40 >= Math.abs(a.y - a.height / 2 + (b.y - b.height / 2 - (a.y - a.height / 2)) / (b.x - a.x) * (c.x - a.x) - (c.y - c.height / 2))\",\"screenAnimationX\":\"\",\"screenAnimationY\":\"\",\"mainTargetAllIf\":\"\",\"noSide\":\"false\"}","{\"name\":\"自分周辺\",\"id\":\"around\",\"rangeIf\":\"250**2 >= Math.max(Math.abs(c.x - a.x) - c.width / 2, 0)**2 + Math.max(Math.abs(c.y - c.height / 2 - (a.y - a.height / 2)) - c.height / 2, 0)**2\",\"screenAnimationX\":\"a.x\",\"screenAnimationY\":\"a.y - a.height / 2\",\"mainTargetAllIf\":\"\",\"noSide\":\"false\"}","{\"name\":\"敵味方全員\",\"id\":\"all\",\"rangeIf\":\"true\",\"screenAnimationX\":\"\",\"screenAnimationY\":\"\",\"mainTargetAllIf\":\"\",\"noSide\":\"true\"}","{\"name\":\"自分以外\",\"id\":\"allOther\",\"rangeIf\":\"a != c\",\"screenAnimationX\":\"\",\"screenAnimationY\":\"\",\"mainTargetAllIf\":\"\",\"noSide\":\"true\"}","{\"name\":\"LV5の倍数\",\"id\":\"lv5\",\"rangeIf\":\"c._battler.level % 5 == 0\",\"screenAnimationX\":\"\",\"screenAnimationY\":\"\",\"mainTargetAllIf\":\"\",\"noSide\":\"false\"}"]
* @desc 定義された効果範囲の一覧です。
* 新しい範囲を追加することも可能です。
*/
/*~struct~Range:
* @param name
* @text 名前
* @type string
* @desc 識別用のメモです。分かりやすい名前をおつけください。
* これをスキル・アイテムのメモ欄で指定しても使えます。
*
* @param id
* @text 識別子
* @type string
* @desc 呼び出しに使う識別子です。
* このIDをスキル・アイテムのメモ欄で指定します。
*
* @param rangeIf
* @text 範囲条件
* @type string
* @desc 範囲を定める条件式です。
*
* @param screenAnimationX
* @text 画面アニメのX座標
* @type string
* @desc 画面対象アニメーションのX座標です。
* 未設定なら通常通りの位置に表示されます。
*
* @param screenAnimationY
* @text 画面アニメのY座標
* @type string
* @desc 画面対象アニメーションのY座標です。
* 未設定なら通常通りの位置に表示されます。
*
* @param mainTargetAllIf
* @text 全体時の主対象条件
* @type string
* @desc 範囲を全体にした際、主対象を定める条件式です。
* 例えば、前列だけを対象にする技などを作れます。
*
* @param noSide
* @text 敵味方の区別をしない
* @type boolean
* @default false
* @desc ONにすると、条件に該当する者は
* 敵味方の区別なく対象とします。
*/