Welcome to PGMZ! My goal is to make it easy for everyone to find and share great plugins for creating amazing games. As a plugin developer myself, I'm excited to grow this community with all of you.
NRP Skill Range EX - NRP_SkillRangeEX.js
Plugin desc : v1.10 Extends the effective range of skills and items.
License :
・Copyright: Retained
・Commercial Use: Allowed
・Modification: Allowed
・Redistribution: Allowed
・Details: See Download Page / In-plugin documentation
Author : Takeshi Sunagawa (http://newrpg.seesaa.net/)
Website : https://github.com/NewRPGProject/MZMV_Plugin/blob/main/NRP_SkillRangeEX.js
Desc page : http://newrpg.seesaa.net/article/473374355.html
Download Page : https://raw.githubusercontent.com/NewRPGProject/MZMV_Plugin/main/NRP_SkillRangeEX.js
File name : NRP_SkillRangeEX.js
Help of plugin :
Extends the effective range of skills and items.
* You can specify various options
* such as vertical, horizontal, group, and circular.
*
* -------------------------------------------------------------------
* [Usage]
* -------------------------------------------------------------------
* <RangeEx:vertical>
* The registered range is described in the skill (item) note as.
* You can also create your own ranges.
*
* For more information, please see below.
* http://newrpg.seesaa.net/article/473374355.html
*
* -------------------------------------------------------------------
* [Notes]
* -------------------------------------------------------------------
* This plugin should be placed above the following plugins.
* If you don't do so, some functions will not work.
* - NRP_VisualTurn.js (affects color change target of ordered list).
* - NRP_DynamicAnimation.js (affects the display position of the animation)
*
* -------------------------------------------------------------------
* [Terms]
* -------------------------------------------------------------------
* There are no restrictions.
* Modification, redistribution freedom, commercial availability,
* and rights indication are also optional.
* The author is not responsible,
* but will deal with defects to the extent possible.
*
* @param rangeList
* @type struct<Range>[]
* @default ["{¥"name¥":¥"縦¥",¥"id¥":¥"vertical¥",¥"rangeIf¥":¥"40 >= Math.abs(b.srX() - c.srX())¥",¥"screenAnimationX¥":¥"b.srX()¥",¥"screenAnimationY¥":¥"¥",¥"mainTargetAllIf¥":¥"c1._battler.isEnemy() ? c1.srX() > c2.srX() : c1.srX() < c2.srX()¥",¥"noSide¥":¥"false¥"}","{¥"name¥":¥"横¥",¥"id¥":¥"horizontal¥",¥"rangeIf¥":¥"40 >= Math.abs(b.srY() - b.height / 2 - (c.srY() - c.height / 2))¥",¥"screenAnimationX¥":¥"¥",¥"screenAnimationY¥":¥"b.srY() - b.height / 2¥",¥"mainTargetAllIf¥":¥"c1._battler.isEnemy() ? c1.srY() > c2.srY() : c1.srY() < c2.srY()¥",¥"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.srX() - b.srX()) - c.width / 2, 0)**2 + Math.max(Math.abs(c.srY() - c.height / 2 - (b.srY() - b.height / 2)) - c.height / 2, 0)**2¥",¥"screenAnimationX¥":¥"b.srX()¥",¥"screenAnimationY¥":¥"b.srY() - b.height / 2¥",¥"mainTargetAllIf¥":¥"(c1.srX() - a.srX())**2 + (c1.srY() - a.srY())**2 < (c2.srX() - a.srX())**2 + (c2.srY() - a.srY())**2¥",¥"noSide¥":¥"false¥"}","{¥"name¥":¥"十字¥",¥"id¥":¥"cross¥",¥"rangeIf¥":¥"40 >= Math.abs(b.srX() - c.srX()) || 40 >= Math.abs(b.srY() - b.height / 2 - (c.srY() - c.height / 2))¥",¥"screenAnimationX¥":¥"b.srX()¥",¥"screenAnimationY¥":¥"b.srY() - b.height / 2¥",¥"mainTargetAllIf¥":¥"¥",¥"noSide¥":¥"false¥"}","{¥"name¥":¥"直線¥",¥"id¥":¥"line¥",¥"rangeIf¥":¥"40 >= Math.abs(a.srY() - a.height / 2 + (b.srY() - b.height / 2 - (a.srY() - a.height / 2)) / (b.srX() - a.srX()) * (c.srX() - a.srX()) - (c.srY() - c.height / 2))¥",¥"screenAnimationX¥":¥"¥",¥"screenAnimationY¥":¥"¥",¥"mainTargetAllIf¥":¥"¥",¥"noSide¥":¥"false¥"}","{¥"name¥":¥"自分周辺¥",¥"id¥":¥"around¥",¥"rangeIf¥":¥"250**2 >= Math.max(Math.abs(c.srX() - a.srX()) - c.width / 2, 0)**2 + Math.max(Math.abs(c.srY() - c.height / 2 - (a.srY() - a.height / 2)) - c.height / 2, 0)**2¥",¥"screenAnimationX¥":¥"a.srX()¥",¥"screenAnimationY¥":¥"a.srY() - 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 List of defined ranges.
* New ranges can be added.
*
* @param baseCoordinate
* @type select
* @option home @value home
* @option current @value current
* @default home
* @desc Coordinates used for judging. In the case of a home, it will no longer be affected by levitation or other performances.