Enemy Levels VisuStella MZ

From Yanfly.moe Wiki
Revision as of 01:00, 8 October 2020 by Yanfly (talk | contribs) (Notetags)
Jump to navigation Jump to search

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.



VisuMZ Polish.png VisuMZ Polish.png
VisuMZ Polish.png VisuMZ Polish.png

Required Plugins

The following plugins are required in order to use this plugin.

Place the following plugins above this plugin located in the Plugin Manager.


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

Enemies in RPG Maker MZ do not have levels by default, but instead are given static parameters that do not change throughout the game. This plugin adds the functionality to apply levels and level-based parameter changes to all of your enemies, along with control over how their levels are handled.

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

  • Assign levels to each enemy from exact values to dynamic values based on the party's levels, variables, etc.
  • Level variance and and bonus modifiers to make enemies dynamically leveled even if they're in the same battle.
  • Decide enemy levels based on the map the player is in.
  • Have enemies use different images based on what level they are.
  • Skill effects, item effects, and Plugin Commands that alter the levels of enemies mid-battle.
  • Notetags to prevent certain skills from being used until the enemy reaches a specific level.

Requirements

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

Required Plugin List


Tier 3

This plugin is a Tier 3 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.


Major Changes

This plugin adds some new hard-coded features to RPG Maker MZ's functions. The following is a list of them.

---

enemy.level

- A new property, 'level' is defined for Game_Enemy and it used to determine the enemy's current level. This allows you, the game dev, to use a.level or b.level in damage formulas and other calculations.

---

Parameter Calculations

To understand how parameter calculations are made, refer to the formula below for all base parameters, EXP, gold, and drop rate.

---

base + (level * base * rate) + (level * flat)

Where:
- 'base' is the original base value of the parameter found in the database.
- 'level' is the previous level of the enemy (minimum: 0).
- 'rate' is the rate of growth determined by notetags or Plugin Parameters.
- 'flat' is the flat growth value also determined by notetags/parameters.

---

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.

---

Setup Enemy Level Notetags

Enemy Levels.png

These are the notetags that determine an enemy's level upon creation.

---

<Show Level>
<Hide Level>

- Used for: Enemy Notetags
- Lets you show or hide an enemy's level from their name.
- This will override the Plugin Parameters => General => Show Enemy Level?
  setting.

---

<Level: x>

- Used for: Enemy Notetags
- Sets the enemy's level to a static level of 'x' whenever it's created.
- Replace 'x' with a numeric value representing its level.
- This will bypass the default level settings and ignore map levels.
- This is affected by the Level Bonus and Level Variance modifiers.

---

<Level: x to y>

- Used for: Enemy Notetags
- Sets the enemy's level to a level between 'x' and 'y'  whenever the enemy
  is created.
- Replace 'x' and 'y' with a numeric values representing its level range.
- This will bypass the default level settings and ignore map levels.
- This is affected by the Level Bonus and Level Variance modifiers.

---

<Level Variable: x>

- Used for: Enemy Notetags
- Sets the enemy's level to a level represented by the value used inside
  Game Variable x.
- Replace 'x' with the ID of the Game Variable to reference its value.
- This will bypass the default level settings and ignore map levels.
- This is affected by the Level Bonus and Level Variance modifiers.

---

<Level: Highest Actor Level>
<Level: Highest Party Level>

<Level: Average Actor Level>
<Level: Average Party Level>

<Level: Lowest Actor Level>
<Level: Lowest Party Level>

- Used for: Enemy Notetags
- Sets the base level of this enemy equal to either (respectively:
  - The highest level of any actor in the player's party.
  - The highest level of any actor in the battling party.
  - The average level of any actor in the player's party.
  - The average level of any actor in the battling party.
  - The lowest level of any actor in the player's party.
  - The lowest level of any actor in the battling party.
- This will bypass the default level settings and ignore map levels.
- This is affected by the Level Bonus and Level Variance modifiers.

---

<Level Bonus: +x>
<Level Bonus: -x>

- Used for: Enemy
- This will add/subtrack the base level decided using the above notetags
  with a specific value.
- Replace 'x' with a numeric value on how much to adjust the base level by.

---

<Level Variance: x>

- Used for: Enemy Notetags
- This can allow the level range for the enemy to be anywhere from 'x' less
  than the base to 'x' more than the base.
- Replace 'x' with a numeric value indicating how much level variance there
  is from the base level.

---

<Positive Level Variance: x>
<Negative Level Variance: x>

- Used for: Enemy Notetags
- This specifies the positive and negative level variances applied to the
  base level, specifying a change anywhere between the negative and positive
  modifiers to the base level.
- Replace 'x' with a numeric value indicating how much level variance there
  is from the base level (negatively or positively).

---

<Minimum Level: x>
<Maximum Level: x>

- Used for: Enemy Notetags
- These notetags determine the absolute lowest and absolute highest level
  the enemy can be after all other modifiers.
- Even if the bonus, variance, and manual level changes are applied, the
  enemy's level cannot be less than the minimum or larger than the maximum.
- Replace 'x' with numeric values representing the limits of the enemy's
  level ranges.

---

JavaScript Notetags: Setup Enemy Level

Enemy Levels.png

The following are notetags made for users with JavaScript knowledge to determine dynamic enemy level setup notetags.

---

<JS Level: code>

- Used for: Enemy Notetags
- Sets the enemy's level to a static level determined by code whenever
  it's created.
- Replace 'code' with JavaScript code to determine the enemy's base level.

---

<JS Level Bonus: code>

- Used for: Enemy Notetags
- This will add/subtrack the base level decided using the above notetags
  by a value determined by JavaScript code.
- Replace 'code' with JavaScript code to determine the level bonus.

---

<JS Level Variance: code>

- Used for: Enemy Notetags
- This can allow the level range for the enemy determined by JavaScript code
  as variance.
- Replace 'code' with JavaScript code to determine the level variance.

---

<JS Positive Level Variance: code>
<JS Negative Level Variance: code>

- Used for: Enemy Notetags
- This specifies the positive and negative level variances applied to the
  base level, specifying a change anywhere between the negative and positive
  modifiers to the base level.
- Replace 'code' with JavaScript code to determine the level variance.

---

Enemy Appearance-Related Notetags

Enemy Levels.png

These notetags allow you to adjust how enemies look based on their level. These settings will always start with level 1 being the default appearance while changing appearances once they reach a specific level.

---

<Level x Image: filename>

- Used for: Enemy Notetags
- Once the enemy reaches level 'x' and above, its image will change to
  whatever 'filename' is used until it reaches the next appearance setting.
- Replace 'x' with a number representing the level required to reach.
- Replace 'filename' with the filename of the enemy in the img/enemies/
  and/or img/sv_enemies folder.
- Insert multiples of these notetags to give them different image settings
  throughout various levels.
- If multiple notetags are used, the settings will be arranged from lowest
  to highest, giving priority to the highest met level.

---

<Level Images>
 x: filename
 x: filename
 x: filename
</Level Images>

- Used for: Enemy Notetags
- Once the enemy reaches level 'x' and above, its image will change to
  whatever 'filename' is used until it reaches the next appearance setting.
- Replace 'x' with a number representing the level required to reach.
- Replace 'filename' with the filename of the enemy in the img/enemies/
  and/or img/sv_enemies folder.
- Insert multiple lines of the 'x: filename' portion of the notetag to
  designate multiple settings.
- If multiple settings are used, the settings will be arranged from lowest
  to highest, giving priority to the highest met level.

---

Map Notetags that Determine Enemy Levels

EnemyLevels MapNotetag.png

The following are notetags that are placed inside of a map's notebox to determine the levels of enemies fought on that map. These notetags cannot bypass the <Level: x> notetags but will take priority over the default Plugin Parameter settings.

---

<Enemy Level: x>

- Used for: Map Notetags
- Sets the levels of the map's enemies to a static level of 'x' whenever
  they're created.
- Replace 'x' with a numeric value representing its level.
- This will bypass the default level settings but cannot bypass any of the
  <Level: x> notetags.
- This is affected by the Level Bonus and Level Variance modifiers.

---

<Enemy Level: x to y>

- Used for: Map Notetags
- Sets the map's enemy levels to a level between 'x' and 'y'  whenever they
  are created.
- Replace 'x' and 'y' with a numeric values representing its level range.
- This will bypass the default level settings but cannot bypass any of the
  <Level: x> notetags.
- This is affected by the Level Bonus and Level Variance modifiers.

---

<Enemy Level: Highest Actor Level>
<Enemy Level: Highest Party Level>

<Enemy Level: Average Actor Level>
<Enemy Level: Average Party Level>

<Enemy Level: Lowest Actor Level>
<Enemy Level: Lowest Party Level>

- Used for: Map Notetags
- Sets the base level of this map's levels equal to either (respectively:
  - The highest level of any actor in the player's party.
  - The highest level of any actor in the battling party.
  - The average level of any actor in the player's party.
  - The average level of any actor in the battling party.
  - The lowest level of any actor in the player's party.
  - The lowest level of any actor in the battling party.
- This will bypass the default level settings but cannot bypass any of the
  <Level: x> notetags.
- This is affected by the Level Bonus and Level Variance modifiers.

---

JavaScript Notetags: Map Notetags that Determine Enemy Levels

The following are notetags made for users with JavaScript knowledge to make map-related notetags that determine enemy levels. These notetags cannot bypass the <Level: x> notetags but will take priority over the default Plugin Parameter settings.

---

<JS Enemy Level: code>

- Used for: Map Notetags
- Sets the levels of the map enemies to a static level determined by code
  whenever it's created.
- Replace 'code' with JavaScript code to determine the enemy's base level.

---

Enemy Level Parameter Notetags

EnemyLevel StatView.png

The growth rate and flat growth amounts can be determined by default in Plugin Parameters => Parameters Growth. However, if you wish for enemies to have special or unique growth, use the following notetags.

---

<Growth Rate Per Level>
 MaxHP: +x.x
 MaxMP: +x.x
 ATK: +x.x
 DEF: +x.x
 MAT: +x.x
 MDF: +x.x
 AGI: +x.x
 LUK: +x.x
 EXP: +x.x
 Gold: +x.x
 Drop: +x.x
</Growth Rate Per Level>

- Used for: Enemy Notetags
- Changes the rate of growth per level for the enemy.
- Replace 'x.x' with a positive or negative value on how much to raise the
  parameter by for each level relative to the base value.

---

<Growth Flat Per Level>
 MaxHP: +x.x
 MaxMP: +x.x
 ATK: +x.x
 DEF: +x.x
 MAT: +x.x
 MDF: +x.x
 AGI: +x.x
 LUK: +x.x
 EXP: +x.x
 Gold: +x.x
 Drop: +x.x
</Growth Flat Per Level>

- Used for: Enemy Notetags
- Changes the flat growth value per level for the enemy.
- Replace 'x.x' with a positive or negative value on how much to raise the
  parameter by for each level as a flat value.

---

<Static Level Parameters>

- Used for: Enemy Notetags
- Insert this notetag if you do not wish for the growth modifiers to affect
  the enemy and just use the database's parameters as its current parameters
  no matter the level.

---

Enemy Level Skill Requirement Notetags

---

<Enemy Skill id Require Level: x>
<Enemy Skill name Require Level: x>

- Used for: Enemy Notetags
- To make actions for enemies require specific levels, use the above notetag
  to define what level the enemy can use the identified skill at.
- Replace 'id' with the ID of the skill to assign a level to.
- Replace 'name' with the name of the skill to assign a level to.
- Insert multiples of this notetag to assign levels to multiple skills.

---

Enemy Level Change Notetags

These notetags affect mid-battle level changing effects for enemies.

---

<Change Enemy Level: +x>
<Change Enemy Level: -x>

- Used for: Skill, Item Notetags
- Changes the enemy's level by 'x' positively or negatively mid-battle.
- This will also alter the enemy's parameters.
- Replace 'x' with the amount to raise/drop the level by.

---

<Reset Enemy Level>

- Used for: Skill, Item Notetags
- Resets any level changes made to the enemy from the start of battle.

---

<Resist Level Change>

- Used for: Enemy, State Notetags
- Makes the affected enemy resist level changes.

---

JavaScript Notetags: Enemy Level Change

The following are notetags made for users with JavaScript knowledge to affect mid-battle level changing effects for enemies.

---

<JS Change Enemy Level: code>

- Used for: Skill, Item Notetags
- Changes the enemy's level by a value determined by JavaScript code either
  positively or negatively mid-battle.
- This will also alter the enemy's parameters.
- Replace 'code' with JavaScript code to determine the amount to change the
  enemy's level by.

---

Plugin Commands

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

---

Enemy-Related Plugin Commands

---

Enemy: Change Level - Change target enemy(ies) level by a value.

 Enemy Index(es):
 - Select which enemy(ies) to affect.
 Level:
 - Changes level by this value.
 - You may use JavaScript code.
 Bypass Resist?:
 - Bypasses <Resist Level Change> effect?

---

Enemy: Reset Level - Reset target enemy(ies) level to its original level.

 Enemy Index(es):
 - Select which enemy(ies) to affect.
 Bypass Resist?:
 - Bypasses <Resist Level Change> effect?

---

Enemy: Set Level - Set target enemy(ies) level to a specific value.

 Enemy Index(es):
 - Select which enemy(ies) to affect.
 Level:
 - Sets level to this value.
 - You may use JavaScript code.
 Bypass Resist?:
 - Bypasses <Resist Level Change> effect?

---

Debug-Related Plugin Commands

---

DEBUG: View Level Stats - View the stats of specific enemies for each level. - This will appear in the Debug Console.

 Enemy Index(es):
 - Select which enemy(ies) to view.

---

Plugin Parameters

General Settings

These are the general settings that pertain to enemy levels, letting you adjust the defaults to how some mechanics work as well as the vocabulary shown for the enemy levels.

---

Levels

 Level Type:
 - Choose the default level type for all enemies.
   - Highest Actor Level
   - Highest Party Level
   - Average Actor Level
   - Average Party Level
   - Lowest Actor Level
   - Lowest Party Level
   - Variable x
   - Static x
 - Replace 'x' with a number if present.
 Minimum Level:
 - Default minimum level for enemies.
 Maximum Level:
 - Default maximum level for enemies.
 Negative Variance:
 - Default negative level variance.
 Positive Variance:
 - Default positive level variance.

---

Mechanics

 Preserve HP/MP Rates?:
 - If level changing, preserve the enemy's HP/MP rates?

---

Vocabulary

 Show Enemy Level?:
 - Show enemy levels by default? Use the notetags <Show Level> and
   <Hide Level> to determine otherwise.
 Enemy Name Format:
 - Text format used for enemy names in battle.
 - %1 - Level, %2 - Enemy's Name

---

Parameter Growth Settings

Determine how much growth for each parameter enemies gain by default. These growth settings can be relative to the enemy's base value or increases at a flat amount each level. The formula for each increase is the following:

 base + (level * base * rate) + (level * flat)

Where: - 'base' is the original base value of the parameter found in the database. - 'level' is the previous level of the enemy (minimum: 0). - 'rate' is the rate of growth determined by notetags or Plugin Parameters. - 'flat' is the flat growth value also determined by notetags/parameters.

Build around that formula for the best results.

---

MaxHP, MaxMP, ATK, DEF, MAT, MDF, AGI, LUK, EXP, Gold, Drop Rate

 Growth Rate:
 - Default rate of growth relative to parameter base value.
 Flat Growth:
 - Default flat growth amount based on level.

---


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: October 21, 2020

  • Finished Plugin!

End of File