Difference between revisions of "Aggro Control System VisuStella MZ"

From Yanfly.moe Wiki
Jump to navigation Jump to search
Line 1: Line 1:
 
{{MzPlugin
 
{{MzPlugin
|preview = <youtube>link</youtube>
+
|preview = <youtube>https://www.youtube.com/watch?v=Ph4ZtpNZgyw</youtube>
 
|link1 = <html><iframe frameborder="0" src="https://itch.io/embed/760459" width="552" height="167"><a href="https://visustellamz.itch.io/aggro-control-system">Aggro Control System plugin for RPG Maker MZ by VisuStellaMZ</a></iframe></html>
 
|link1 = <html><iframe frameborder="0" src="https://itch.io/embed/760459" width="552" height="167"><a href="https://visustellamz.itch.io/aggro-control-system">Aggro Control System plugin for RPG Maker MZ by VisuStellaMZ</a></iframe></html>
 
|link2 = <html><iframe frameborder="0" src="https://itch.io/embed/754729" width="552" height="167"><a href="https://visustellamz.itch.io/wave-3-bundle">[Access Key] Wave 3 Plugins Bundle by VisuStellaMZ</a></iframe></html>
 
|link2 = <html><iframe frameborder="0" src="https://itch.io/embed/754729" width="552" height="167"><a href="https://visustellamz.itch.io/wave-3-bundle">[Access Key] Wave 3 Plugins Bundle by VisuStellaMZ</a></iframe></html>

Revision as of 13:39, 28 September 2020

Welcome to the wiki! This is where you can find resources from Yanfly.moe, Ækashics.moe,
VisuStella, Caz Wolf, Fallen Angel Olivia, Atelier Irina, and other affiliated content creators.



Download

System

This is a plugin created for RPG Maker MZ.

Click here for help on how to install plugins and an explanation on the Tier Hierarchy System.


UpdatePlugins.png

Click here to learn how to update plugins.


Troubleshooting.jpg

Click here for how to troubleshoot plugins if you get an error.



AggroControlSystem Provoke.gif

AggroControlSystem Taunt.gif

AggroControlSystem Aggro.png


VisuStella MZ

This plugin is a part of the VisuStella MZ Plugin Library.


Support VisuStella

Click here if you want to help support VisuStella on Patreon.


Introduction

A common mechanic found in many RPG's nowadays is the ability to steer the way enemies target party members. This can be in the form of provocations, taunts, and aggro.

Provocations come in the form of states, where when a unit applies a provoke state on a target, the target must attack the provoker when using single target skills. This plugin provides support for multiple provocations and such provocations will be given focus based on the state's priority value.

Taunts are a third way to steer an opponent to focus on a party member. The taunt effects can be split up into global, physical, magical, or certain hit only taunts and these can be applied to almost any trait object.

Aggro is a numeric value that determines the likelihood and/or priority level of how often a target party member is to be attacked by an enemy unit. The higher the aggro value, the more likely the chances of being targeted. A option can be turned on (or through notetags) to set enemies to always target the party member with the highest aggro.

Features include all (but not limited to) the following:

  • Three different ways to influencing which targets enemies should attack: Provoke, taunt, and aggro.
  • Provoke and taunt effects work both ways for actors and enemies.
  • Aggro effects accumulate through battle and can be manipulated through notetag values, Plugin Commands, and/or Plugin Parameters.
  • Provoked battlers can have provoke lines displayed to indicate which unit has provoked them.
  • Taunting units can have animations played on them repeatedly to quickly relay information to the player about their taunt properties.
  • Gauges that can be displayed over the heads of actor sprites to display how much aggro that actor holds in comparison to the other actors.

Requirements

This plugin is made for RPG Maker MZ. This will not work in other iterations of RPG Maker.


Tier 2

This plugin is a Tier 2 plugin. Place it under other plugins of lower tier value on your Plugin Manager list (ie: 0, 1, 2, 3, 4, 5).

This is to ensure that your plugins will have the best compatibility with the rest of the VisuStella MZ Plugin library.


Extra Features

There are some extra features found if other VisuStella MZ plugins are found present in the Plugin Manager list.

---

Provoke Priority Lines and Taunt animations become available if these plugins are installed.

---

How Aggro, Provoke, and Taunts Work

This section will explain how aggro, provoke, and taunts work.

---

Provoke

AggroControlSystem Provoke.gif

Provocations come in the form of states, where when a unit applies a provoke state on a target, the target must attack the provoker when using single target skills. This plugin provides support for multiple provocations and such provocations will be given focus based on the state's database priority value.

The provoke will last only as long as the duration of the state itself. If the state's duration is refreshed by reapplying the Provoke state, then the provoker of that state will then switch over to the one applying the newly added state.

When an actor selects a target for an action and the actor is provoked by an enemy on the other team, the player's choice selection becomes limited to only the provoker.

Provoke can be bypassed through the <Bypass Provoke> notetag.

---

Taunts

AggroControlSystem Taunt.gif

Taunts are a third way to steer an opponent to focus on a party member. The taunt effects can be split up into global, physical, magical, or certain hit only taunts and these can be applied to almost any trait object.

When an actor selects a target and the enemy team has a taunting unit, the player's choice selection becomes limited to only the targets with the associated taunt type.

Taunts can be bypassed through the <Bypass Taunt> notetag.

---

Aggro

AggroControlSystem Aggro.png

Aggro is a numeric value that determines the likelihood and/or priority level of how often a target party member is to be attacked by an enemy unit. The higher the aggro value, the more likely the chances of being targeted. A option can be turned on (or through notetags) to set enemies to always target the party member with the highest aggro.

Skills and items can raise its user's aggro value through notetags and/or how much damage they've dealt or healed. Skills and items can also change a target's aggro value through notetags, too.

Through the Plugin Parameters, you can set Aggro to automatically raised based on how much damage or healing dealt by a user.

- Some enemies can be bypass forced aggro target through the <Bypass Aggro> notetag while other enemies can be forced to target the highest aggro target through the <Target Highest Aggro> notetag;

---

Priorities

Priority will be given in the order of provokes, taunts, and then aggro. This means if an enemy is provoked, the opposing side has a taunt, and there is a member with high aggro, then the enemy will always attack the provoker first before targeting a taunting unit before targeting the unit with high aggro values.

---

Notetags

RPG Maker MZ's editor is unable to allow for custom traits/properties that a game dev may wish to associate with a database object, event, map, etc. Notetags are used to work around such limitations by allowing the game dev to tag certain traits/properties using specific Notetags declared by the related plugin.

Here is a list of Notetag(s) that you may use.


The following are notetags that have been added through this plugin. These notetags will not work with your game if this plugin is OFF or not present.

Provoke-Related Notetags

AggroControlSystem Provoke.gif

The following notetags enable you to utilize the Provoke effects added by this plugin. Provoked targets can only attack the provoking unit for single target actions.

---

<Provoke>

- Used for: State Notetags
- Causes the state affected unit to be able to only attack the caster of the
  provoke state for single target actions.
- If multiple provoke states are applied, then the provoker is the one who
  applied the highest priority provoke state.

---


<Provoke Height Origin: x%>

- Used for: Actor, Enemy Notetags
- Sets the provoke height origin point to x% of the sprite's height.
- This is the landing point for the provoke trails.
- Replace 'x' with a number presenting what rate of the sprite's height to
  set as the provoke height origin point.

---

<Bypass Provoke>

- Used for: Actor, Class, Weapon, Armor, Enemy, State Notetags
- Makes the affected unit to ignore any and all provoke effects applied by
  any provoke states, allowing them to target foes as if they are unaffected
  by provoke states altogether.

---

Taunt-Related Notetags

AggroControlSystem Taunt.gif

---

<Taunt>
<All Taunt>

- Used for: Actor, Class, Weapon, Armor, Enemy, State Notetags
- Causes the taunting unit to become the target of the opposing team's
  single target actions for physical, magical, and certain hit actions.
- If multiple taunters exist, then the opposing team can select between any
  of the taunters for targets.

---

<Physical Taunt>
<Magical Taunt>
<Certain Taunt>

- Used for: Actor, Class, Weapon, Armor, Enemy, State Notetags
- Causes the taunting unit to become the target of the opposing team's
  single target actions for physical, magical, and certain hit actions
  respectively.
- Add/remove any combination of the above to cause the affected unit to
  become the target of those types of actions.
- If multiple taunters exist, then the opposing team can select between any
  of the taunters for targets.

---

<Bypass Taunt>

- Used for: Actor, Class, Weapon, Armor, Enemy, State Notetags
- The affected unit will ignore any and all taunt effects created by the
  opposing team, allowing them to use single target actions as if no
  taunters exist on the opposing team.

---

Aggro-Related Notetags

AggroControlSystem Aggro.png

---

<User Aggro: +x>
<User Aggro: -x>

- Used for: Skill, Item
- Upon using this action, raise the user's battle aggro value by 'x'.
- Replace 'x' with the amount of battle aggro to increase/decrease by.
- This effect will only apply once per usage regardless of the number of
  successful hits landed by the action.

---

<Target Aggro: +x>
<Target Aggro: -x>

- Used for: Skill, Item
- Upon using this action, raise the target's battle aggro value by 'x'.
- Replace 'x' with the amount of battle aggro to increase/decrease by.
- This effect will apply multiple times based on the number of successful
  hits landed by the action.

---

<Aggro: +x>
<Aggro: -x>

- Used for: Actor, Class, Weapon, Armor, Enemy, State Notetags
- Causes the affected unit to passively have increased/decreased aggro
  values independent of the amount of aggro it earns in battle.
- Replace 'x' with the amount of aggro this object increases/decreases by.

---

<Aggro Multiplier: x%>

- Used for: Actor, Class, Weapon, Armor, Enemy, State Notetags
- Causes the affected unit to increase the amount of perceived aggro it has
  by the aggro multiplier.
- Replace 'x' with a number representing the percentage to increase/decrease
  the perceived aggro by.
- If multiple of these traits exist across different trait objects, the
  effects are increased multiplicatively.

---

<Bypass Highest Aggro>

- Used for: Actor, Class, Skill, Item, Weapon, Armor, Enemy, State Notetags
- If used on skills or items, the action will decide targets by aggro weight
  instead of always picking the highest aggro unit(s).
- If used on trait objects, the affected unit will decide targets by aggro
  weight instead of always picking the highest aggro unit(s).
- This is used for enemy A.I. or Actor auto battle A.I.

---

<Target Highest Aggro>

- Used for: Actor, Class, Skill, Item, Weapon, Armor, Enemy, State Notetags
- If used on skills or items, the action will always decide its targets by
  the highest aggro value.
- If used on trait objects, the affected unit will always decide on targets
  by the highest aggro value.
- If the <Bypass Highest Aggro> notetag exists, this effect is ignored.
- This is used for enemy A.I. or Actor auto battle A.I.

---

JavaScript Notetags: Aggro-Related

AggroControlSystem Aggro.png

---

<JS User Aggro>
 code
 code
 value = code
</JS User Aggro>

- Used for: Skill, Item
- Replace 'code' with JavaScript code to determine the final 'value' to
  change the user's battle aggro to upon using this skill.
- The 'user' variable represents the one using the skill/item.
- The 'target' variable represents the one receiving the skill/item hit.
- This effect will only apply once per usage regardless of the number of
  successful hits landed by the action.

---

<JS Target Aggro>
 code
 code
 value = code
</JS Target Aggro>

- Used for: Skill, Item
- Replace 'code' with JavaScript code to determine the final 'value' to
  change target's battle aggro to upon using this skill.
- The 'user' variable represents the one using the skill/item.
- The 'target' variable represents the one receiving the skill/item hit.
- This effect will apply multiple times based on the number of successful
  hits landed by the action.

---

Plugin Commands

Plugin Commands are event commands that are used to call upon functions added by a plugin that aren't inherently a part of RPG Maker MZ.

Here is a list of Plugin Command(s) that you may use:

---


The following are Plugin Commands that come with this plugin. They can be accessed through the Plugin Command event command.

---

Actor Plugin Commands

---

AggroControlSystem Aggro.png

AggroControlSystem Command1.png

Actor: Change Aggro
- Changes target actor's aggro value.

  Actor ID:
  - Select which Actor ID to affect.

  Change Aggro By:
  - Change aggro by this amount.
  - Use negative numbers to reduce aggro.

---

AggroControlSystem Command2.png

Actor: Set Aggro
- Set target actor's aggro value.

  Actor ID:
  - Select which Actor ID to affect.

  Set Aggro To:
  - Sets target's aggro to this amount.
  - Aggro must be at least a value of 1.

---

Enemy Plugin Commands

---

AggroControlSystem Aggro.png

AggroControlSystem Command3.png

Enemy: Change Aggro
- Changes target enemy's aggro value.

  Enemy Index:
  - Select which Enemy Index to affect.

  Change Aggro By:
  - Change aggro by this amount.
  - Use negative numbers to reduce aggro.

---

AggroControlSystem Command4.png

Enemy: Set Aggro
- Set target enemy's aggro value.

  Enemy Index:
  - Select which Enemy Index to affect.

  Set Aggro To:
  - Sets target's aggro to this amount.
  - Aggro must be at least a value of 1.

---

Plugin Parameters

Provoke Settings

AggroControlSystem Provoke.gif

AggroControlSystem Params1.png

The Provoke Settings Plugin Parameters adjust the visual aspects related to the provoke effect. These settings will require VisuMZ_1_BattleCore to be installed in order for them to work due to dependencies.

---

VisuMZ_1_BattleCore

 Show Priority Lines?:
 - Show priority target lines for this plugin?
 - Requires VisuMZ_1_BattleCore.

---

Line Settings

 Arc Height:
 - How tall should the line arc in pixels?
 Blend Mode:
 - The blend mode used for the sprite.
 Height Origin:
 - The rate from the battler's sprite base to determine where the line
   starts from.
 Line Color:
 - Use #rrggbb for custom colors or regular numbers for text colors from
   the Window Skin.
 Opacity:
 - The highest possible opacity for active provoke lines.
 Opacity Speed:
 - The speed at which opacity fluctuates for the line sprite.
 Parts:
 - The number of joint parts to split up the sprite as.
 Parts Size:
 - The number in pixels for the diameter of each part.

---

Options

 Add Provoke Option?
 - Add the 'Show Provoke Origin' option to the Options menu?
 Adjust Window Height
 - Automatically adjust the options window height?
 Option Name
 - Command name of the option.

---

Taunt Settings

AggroControlSystem Taunt.gif

AggroControlSystem Params2.png

Battlers with specific taunt types can have animations playing on them over and over to relay information to the player. These settings require you to have both VisuMZ_0_CoreEngine and VisuMZ_1_BattleCore installed in your project's plugin list in order to use.

---

VisuMZ_0_CoreEngine & VisuMZ_1_BattleCore

 Show Animations?:
 - Show animations for each of the taunt effects?
 - Requires VisuMZ_0_CoreEngine and VisuMZ_1_BattleCore.

---

Animation ID's

 Physical Taunt:
 - The animation ID used for physical taunts.
 - Use 0 or 'None' to bypass this type.
 Magical Taunt:
 - The animation ID used for magical taunts.
 - Use 0 or 'None' to bypass this type.
 Certain Hit Taunt:
 - The animation ID used for certain hit taunts.
 - Use 0 or 'None' to bypass this type.

---

Animation Settings

 Cycle Time:
 - The amount of frames to wait before each animation cycle.
 - WARNING: Lower numbers can jeopardize game performance.
 Mirror Actor Ani?:
 - Mirror animations played on actors?
 Mute Animation SFX?:
 - Mute sounds played by animations?

---

Aggro Settings

AggroControlSystem Aggro.png

AggroControlSystem Params3.png

This lets you adjust the settings for this plugin's Aggro mechanics. Most of these settings focus on the visual gauge display of the Aggro gauge, but you can also change up the settings for how aggro is utilized.

---

General

 Priority: Highest TGR:
 - When enemies target actors for an single target attack, always target
   the highest members or make it weighted?
 Aggro Per Damage:
 - The amount of aggro generated per point of HP damage dealt to an enemy.
 Aggro Per Heal:
 - The amount of aggro generated per point of HP recovered to an ally.

---

Gauge

 Visible Battler Gauge:
 - Display an aggro gauge over an SV actor's head to show current aggro
   level compared to other party members.
 Visible Status Gauge:
 - Display an aggro gauge in the Battle Status Window to show the current
   aggro level compared to others.
 Gauge Color 1:
 - Use #rrggbb for custom colors or regular numbers for text colors from
   the Window Skin.
 Gauge Color 2:
 - Use #rrggbb for custom colors or regular numbers for text colors from
   the Window Skin.
 Gauge Width:
 - Width in pixels you want the gauge to be.
 Anchor X:
 Anchor Y:
 - Where do you want the Aggro Gauge sprite's anchor X/Y to be?
 - Use values between 0 and 1 to be safe.
 Scale:
 - How large/small do you want the Aggro Gauge to be scaled?
 Offset X:
 Offset Y:
 - How many pixels to offset the Aggro Gauge's X/Y by?

---

Options

 Add Provoke Option?
 - Add the 'Show Aggro Gauge' option to the Options menu?
 Adjust Window Height
 - Automatically adjust the options window height?
 Option Name
 - Command name of the option.

---


Terms of Use

1. These plugins may be used in free or commercial games provided that they have been acquired through legitimate means at VisuStella.com and/or any other official approved VisuStella sources. Exceptions and special circumstances that may prohibit usage will be listed on VisuStella.com.

2. All of the listed coders found in the Credits section of this plugin must be given credit in your games or credited as a collective under the name: "VisuStella".

3. You may edit the source code to suit your needs, so long as you do not claim the source code belongs to you. VisuStella also does not take responsibility for the plugin if any changes have been made to the plugin's code, nor does VisuStella take responsibility for user-provided custom code used for custom control effects including advanced JavaScript notetags and/or plugin parameters that allow custom JavaScript code.

4. You may NOT redistribute these plugins nor take code from this plugin to use as your own. These plugins and their code are only to be downloaded from VisuStella.com and other official/approved VisuStella sources. A list of official/approved sources can also be found on VisuStella.com.

5. VisuStella is not responsible for problems found in your game due to unintended usage, incompatibility problems with plugins outside of the VisuStella MZ library, plugin versions that aren't up to date, nor responsible for the proper working of compatibility patches made by any third parties. VisuStella is not responsible for errors caused by any user-provided custom code used for custom control effects including advanced JavaScript notetags and/or plugin parameters that allow JavaScript code.

6. If a compatibility patch needs to be made through a third party that is unaffiliated with VisuStella that involves using code from the VisuStella MZ library, contact must be made with a member from VisuStella and have it approved. The patch would be placed on VisuStella.com as a free download to the public. Such patches cannot be sold for monetary gain, including commissions, crowdfunding, and/or donations.

7. If this VisuStella MZ plugin is a paid product, all project team members must purchase their own individual copies of the paid product if they are to use it. Usage includes working on related game mechanics, managing related code, and/or using related Plugin Commands and features. Redistribution of the plugin and/or its code to other members of the team is NOT allowed unless they own the plugin itself as that conflicts with Article 4.

8. Any extensions and/or addendums made to this plugin's Terms of Use can be found on VisuStella.com and must be followed.

Terms of Use: Japanese


『VisuStella MZ』利用規約

1. これらのプラグインは、VisuStella.comおよび/または公式に承認されたVisuStellaのソースから合法的な手段で入手したものである限り、フリーゲームや商用ゲームに使用することができます。例外的に使用が禁止される場合については、VisuStella.comの記載をご確認ください。

2. 本プラグインの「クレジット」部分に記載されているすべてのコーダーの名前は、ゲーム内にクレジット表記を行うか、もしくは「VisuStella」という名前の下にまとめて表記する必要があります。

3. ソースコードを自分のものだと主張しない限りは、必要に応じて編集することが可能です。ただしプラグインのコードに変更が加えられた場合、VisuStellaはそのプラグインに対して一切の責任を負いません。高度なJavaScriptのノートタグやJavaScriptコードを許可するプラグインのパラメータを含む、カスタムコントロールエフェクトに使用される、ユーザー提供のカスタムコードについても、VisuStellaは一切の責任を負いません。

4. これらのプラグインやプラグイン内のコードを、「自分のもの」として再配布したり使用したりすることはできません。これらのプラグインとそのコードは、VisuStella.comおよび、その他の公式/承認済みVisuStellaソースからのみダウンロードすることができます。公式/承認済みのソースのリストは、VisuStella.comでご確認いただけます。

5. VisuStellaは、意図しない使用方法による問題、VisuStella MZライブラリ以外のプラグインとの非互換性の問題、プラグインのバージョンが最新でないことによる問題、第三者による互換性パッチが適切に動作していないことなどが原因でゲーム内で発生した問題については、一切の責任を負いません。VisuStellaは、高度なJavaScriptのノートタグやJavaScriptコードを許可するプラグインのパラメータを含む、カスタムコントロールエフェクトに使用される、ユーザー提供のカスタムコードに起因するエラーについても、一切の責任を負いません。

6. VisuStella MZライブラリのコードを使用した互換性パッチをVisuStellaとは関係のない第三者を通じて作成する必要がある場合は、まずVisuStellaのメンバーと連絡を取り、承認を得る必要があります。パッチはVisuStella.comに公開され、誰でも無料でダウンロードすることができるようになります。このようなパッチを、制作発注やクラウドファンディングの対象にしたり、寄付などの金銭的な利益を得るために販売することはできません。

7. このVisuStella MZプラグインが商用製品である場合、プロジェクトチームのすべてのメンバーは、それを使用するため、それぞれ製品を購入しなければなりません。使用方法には、関連するゲームメカニクスの作業、関連するコードの管理、および/または関連するプラグインコマンドや機能の使用、が含まれます。プラグインそのものやそのコードをチームの他のメンバーに再配布することは第4項に抵触するため、そのメンバーがプラグインそのものを所有していない限りは許可されません。

8. このプラグインの利用規約の追加項目や補足については、VisuStella.comに掲載されていますので、それを参照し従ってください。

Credits

If you are using this plugin, credit the following people in your game:

Team VisuStella

Changelog

Version 1.00: September 28, 2020

  • Finished Plugin!

End of File