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 Special Skill - NRP_SpecialSkill.js
Plugin desc : v1.07 Implementation of the special skill system.
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_SpecialSkill.js
Desc page : https://newrpg.seesaa.net/article/489968387.html
Download Page : https://raw.githubusercontent.com/NewRPGProject/MZMV_Plugin/main/NRP_SpecialSkill.js
File name : NRP_SpecialSkill.js
Help of plugin :
Implement special skills
* that are triggered by accumulating a gauge.
*
* Similar to the existing TP system, but can have multiple gauges.
* It can also be used in conjunction
* with a plugin that grows TP to a level (NRP_LevelGrowTP.js).
*
* -------------------------------------------------------------------
* [Usage]
* -------------------------------------------------------------------
* Please register your information
* in the SpecialTypeList of the plugin parameters.
* You can set the conditions under
* which the gauge accumulates in detail.
*
* In the initial state, only one data is registered,
* but multiple data can be registered.
* The first data is treated as "special type = 1".
*
* Further, set the corresponding special skill
* to the special type.
* ※Refer to [Note of Skills] below.
*
* -------------------------------------------------------------------
* [Note of Skills] (Special Skill)
* -------------------------------------------------------------------
* Fill in the following in the note for the skill
* you wish to designate as a special skill.
*
* ◆<SpecialSkill:[special type]>
* Set the skill as special skill.
* If <SpecialSkill:1>, as mentioned above,
* it corresponds to the first in the SpecialTypeList.
*
* ◆<SpecialSkillCost:100>
* Consumes 100 points of the special gauge.
* If not specified, all will be consumed.
*
* -------------------------------------------------------------------
* [Note of Skills] (Normal Skill)
* -------------------------------------------------------------------
* You can set the conditions under
* which the gauge will accumulate for each skill.
* If not specified,
* the default values of the plugin parameters are used.
*
* ◆<SpecialSkillActionValue:10>
* When a skill hits, all gauges of the skill user are increased by 10.
* The amount of increase is proportional
* to the number of targets and repeat.
* ※The gauge can be set to increase even if the target misses.
*
* ◆<SpecialSkillActionEndValue:10>
* After the skill is used, all gauges of the skill user are added by 10.
*
* ◆<SpecialSkillChargeValue:10>
* Adds 10 to all gauges of the target receiving the skill.
* Basically assumes a support skill.
*
* -------------------------------------------------------------------
* If you want to increase only a specific gauge,
* add a numeric value to the end of the tag name.
* Example: "SpecialSkillActionValue1" would target the first gauge.
*
* ◆<SpecialSkillActionValue1:10>
* ◆<SpecialSkillActionEndValue1:10>
* ◆<SpecialSkillChargeValue1:10>
*
* -------------------------------------------------------------------
* [Note of Actors, Classes, Equipments & States]
* -------------------------------------------------------------------
* By specifying in note, you can set the traits
* that will change the amount of the gauge increase.
*
* ◆<SpecialSkillRate:150>
* Increase all gauges by 150%.
*
* ◆<SpecialSkillRegenerateValue:10>
* Add 10 to all gauges per turn.
*
* -------------------------------------------------------------------
* You can target only specific special types in the same way as skills.
*
* ◆<SpecialSkillRate1:150>
* ◆<SpecialSkillRegenerateValue1:10>
*
* -------------------------------------------------------------------
* [Note of States]
* -------------------------------------------------------------------
* ◆<SpecialSkillChargeValue:10>
* Adds 10 to all gauges of the target that received the state.
*
* -------------------------------------------------------------------
* You can target only specific special types in the same way as skills.
*
* ◆<SpecialSkillChargeValue1:10>
*
* -------------------------------------------------------------------
* [Plugin Command]
* -------------------------------------------------------------------
* ◆ChangeSpecialGauge
* Increases or decreases the special gauge.
* The actor and special type to be operated can be specified.
* If you do not specify an actor,
* all members of the party will be affected.
* If you do not specify a special type, all special types are targeted.
*
* -------------------------------------------------------------------
* [About Layout]
* -------------------------------------------------------------------
* In the initial state, the space
* to display the special gauge is too small and cramped.
* This is especially noticeable when multiple gauges are registered.
* The three screens covered are menu, status, and battle.。
*
* A plugin parameter allows you to set the layout of the gauges,
* but this plugin alone may be too demanding.
*
* Please combine this plugin with other layout plugin
* and adjust it to your liking.
* ※The author has given up on this plugin
* because it is too much for this plugin alone.
*
* -------------------------------------------------------------------
* [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.
*
* @-----------------------------------------------------------
* @ [Plugin Commands]
* @-----------------------------------------------------------
*
* @command ChangeSpecialGauge
* @desc Increase or decrease the special gauge.
*
* @arg Actor
* @type actor
* @desc Actors to target.
* If blank, all party members are targeted.
*
* @arg SpecialSkillType
* @type number @min 1
* @desc Special type to be targeted for increase/decrease.
* If blank, all special gauges are targeted.
*
* @arg Value
* @type number @max 99999 @min -99999
* @desc The amount of increase or decrease in the special gauge.
*
* @-----------------------------------------------------------
* @ [Plugin Parameters]
* @-----------------------------------------------------------
*
* @param SpecialTypeList
* @type struct<SpecialType>[]
* @default ["{¥"Condition¥":¥"¥",¥"GaugeMax¥":¥"100¥",¥"ActionValue¥":¥"¥",¥"ActionEndValue¥":¥"¥",¥"RegenerateValue¥":¥"¥",¥"DamageValue¥":¥"50 * damage / a.mhp¥",¥"EvadedValue¥":¥"¥",¥"FriendsDeadValue¥":¥"¥",¥"DefeatEnemyValue¥":¥"¥",¥"CriticalValue¥":¥"¥",¥"CostColor¥":¥"6¥",¥"ChargedAnimation¥":¥"¥",¥"<GaugeLayout>¥":¥"¥",¥"Label¥":¥"¥",¥"GaugeColor1¥":¥"14¥",¥"GaugeColor2¥":¥"0¥"}"]
* @desc List of special types.
* Each will hold gauge information.
*
* @param ShowGaugeWhenLearned
* @type boolean
* @default true
* @desc The gauge is displayed only if the actor has learned an active special skill.
*
* @param RecoverGauge
* @type boolean
* @default false
* @desc The special gauge is also recovered when all recovery is complete.
*
* @param PlusOnlyHit
* @type boolean
* @default true
* @desc Enable the gauge increase by ActionValue only when hit.
*
* @param NotPlusWhenUsed
* @type boolean
* @default false
* @desc The gauge should not increase during a special skill that you have activated.
*
* @param NotPlusSameTarget
* @type boolean
* @default false
* @desc Multiple attacks on the same target, such as a series of techniques, do not accumulate ActionValue.
*
* @param NoMultipleCriticalBonus
* @type boolean
* @default false
* @desc The gauge increase value for critical hits will not be duplicated in multi-hit skills.
*
* @param MultipleAttenuation
* @type string
* @desc Decrease ActionValue for ranged/continuous techniques.
* e.g:"value / count" attenuates to the amount of increase / number of hits.
*
* @param <ChargedAnimation>
*
* @param WaitChargedAnimation
* @parent <ChargedAnimation>
* @type boolean
* @default true
* @desc Wait for charged animation.
* It is always treated as on in MV.
*
* @param ChargedAnimationInterval
* @parent <ChargedAnimation>
* @type number
* @default 15
* @desc The display interval when charged animation overlaps.
*
* @param WaitDynamicMotion
* @parent <ChargedAnimation>
* @type boolean
* @default true
* @desc When DynamicMotion is used, wait for the return before executing the charged animation.
*
* @-----------------------------------------------------------
*
* @param <GaugeLayout>
*
* @param ShowGaugeNumber
* @parent <GaugeLayout>
* @type boolean
* @default false
* @desc The current value is displayed numerically on the gauge.
*
* @param LabelWidth
* @parent <GaugeLayout>
* @type number
* @desc The width of the label to be displayed.
* Set to 0 if not needed.
*
* @param GaugeWidth
* @parent <GaugeLayout>
* @type number
* @desc Width of the gauge. The default value is 128.
* Note that LabelWidth is subtracted from this value.
*
* @param GaugeHeight
* @parent <GaugeLayout>
* @type number
* @desc Height of the gauge. The default value is 12.
*
* @param GaugeInterval
* @parent <GaugeLayout>
* @type number
* @default 16
* @desc The spacing between gauges.
*
* @param GaugeFlash
* @parent <GaugeLayout>
* @type boolean
* @default true
* @desc Flash the full gauge.
*
* @-----------------------------------------------------------
*
* @param ShowMenu
* @parent <GaugeLayout>
* @type boolean
* @default true
* @desc Displays a special gauge on the menu screen.
*
* @param MenuStartGaugeX
* @parent ShowMenu
* @type number @max 9999 @min -9999
* @default 0
* @desc X coord at which the gauge is displayed in the menu.
* Specify the coordinates relative to the actor name.
*
* @param MenuStartGaugeY
* @parent ShowMenu
* @type number @max 9999 @min -9999
* @default 96
* @desc Y coord at which the gauge is displayed in the menu.
* Specify the coordinates relative to the actor name.
*
* @-----------------------------------------------------------
*
* @param ShowSkillStatus
* @parent <GaugeLayout>
* @type boolean
* @default true
* @desc Displays a special gauge on the skill screen.
*
* @-----------------------------------------------------------
*
* @param ShowStatus
* @parent <GaugeLayout>
* @type boolean
* @default true
* @desc Displays a special gauge on the status screen.
*
* @param StatusStartGaugeX
* @parent ShowStatus
* @type number @max 9999 @min -9999
* @default 0
* @desc X coord at which the gauge is displayed in the status.
* Specify the coordinates relative to the level.
*
* @param StatusStartGaugeY
* @parent ShowStatus
* @type number @max 9999 @min -9999
* @default 144
* @desc Y coord at which the gauge is displayed in the status.
* Specify the coordinates relative to the level.
*
* @-----------------------------------------------------------
*
* @param ShowBattle
* @parent <GaugeLayout>
* @type boolean
* @default true
* @desc Displays a special gauge on the battle screen.
*
* @param BattleStartGaugeX
* @parent ShowBattle
* @type number @max 9999 @min -9999
* @default 0
* @desc X coord at which the gauge is displayed in the battle.
* Specify the coordinates relative to the actor name.
*
* @param BattleStartGaugeY
* @parent ShowBattle
* @type number @max 9999 @min -9999
* @default 96
* @desc Y coord at which the gauge is displayed in the battle.
* Specify the coordinates relative to the actor name.
*
* @param BattleAdjustNameY
* @parent ShowBattle
* @type number @max 9999 @min -9999
* @default -24
* @desc Adjust the Y coordinate of Name to TP during battle.
*
* @param BattleNameHpInterval
* @parent ShowBattle
* @type number
* @default 0
* @desc During battle, the interval between name and HP is widened by a numerical value.