Difference between revisions of "Category:Lunatic Mode (MV)"
(→Battle Engine Core) |
(→Battle Engine Core) |
||
Line 214: | Line 214: | ||
equal the user's MP ratio. If the user has 25% MP, the CTB gauge will go | equal the user's MP ratio. If the user has 25% MP, the CTB gauge will go | ||
to 25% full for the user. | to 25% full for the user. | ||
+ | </nowiki> | ||
+ | |||
+ | === [[Counter Control (YEP)|Counter Control]] === | ||
+ | <hr> | ||
+ | |||
+ | ; Custom Counter Skills | ||
+ | |||
+ | <nowiki> | ||
+ | For those with JavaScript proficiency, you can use the following Lunatic | ||
+ | Mode notetags to give a dynamic set of skills granted for counter usage. | ||
+ | |||
+ | Actor, Class, Enemy, Weapon, Armor, and State Notetags: | ||
+ | |||
+ | <Custom Counter Skills> | ||
+ | if (user.name() === 'Harold') { | ||
+ | skills.push(50, 51, 52); | ||
+ | } else if (user.name() === 'Therese') { | ||
+ | skills.push(53, 54, 55); | ||
+ | } else if (user.name() === 'Marsha') { | ||
+ | skills.push(56, 57, 58); | ||
+ | } else if (user.name() === 'Lucius') { | ||
+ | skills.push(59, 60, 61); | ||
+ | } | ||
+ | </Custom Counter Skills> | ||
+ | The 'skills' variable is an array that will contain all the counter skills | ||
+ | that will be added to the list of potential skills the battler can counter | ||
+ | actions with provided that their requirements are met. | ||
+ | </nowiki> | ||
+ | |||
+ | ; Custom Counter Total | ||
+ | |||
+ | <nowiki> | ||
+ | For those with JavaScript proficiency, you can use the following Lunatic | ||
+ | Mode notetags to give a dynamic counter total bonus: | ||
+ | |||
+ | Actor, Class, Enemy, Weapon, Armor, and State Notetags: | ||
+ | |||
+ | <Custom Counter Total> | ||
+ | value = user.level; | ||
+ | </Custom Counter Total> | ||
+ | The 'value' variable is the total amount of counters is increased or | ||
+ | decreased by. If the total counter value reaches 0 or less than 0 for the | ||
+ | battler, the battler is unable to use counter skills. | ||
+ | </nowiki> | ||
+ | |||
+ | ; Custom Counter Rate | ||
+ | |||
+ | <nowiki> | ||
+ | For those with JavaScript proficiency, you can use the following Lunatic | ||
+ | Mode notetags to make the attacker's traits alter the target's CNT rate. | ||
+ | |||
+ | Actor, Class, Enemy, Weapon, Armor, and State Notetags: | ||
+ | |||
+ | <Custom Target Counter Rate> | ||
+ | rate -= user.hpRate(); | ||
+ | </Custom Target Counter Rate> | ||
+ | The 'rate' variable is the final rate used to determine the counter rate | ||
+ | the target has. It is already given the value calculated from the target's | ||
+ | CNT value. This is calculated before the skill's custom counter rate. | ||
+ | </nowiki> | ||
+ | |||
+ | ; Custom Counter Rates | ||
+ | |||
+ | <nowiki> | ||
+ | For those with JavaScript proficiency, you can use the following Lunatic | ||
+ | Mode notetags to give skills a dynamic chance for the target to counter. | ||
+ | |||
+ | Skill and Item Notetags: | ||
+ | |||
+ | <Custom Counter Rate> | ||
+ | rate += target.hpRate(); | ||
+ | </Custom Counter Rate> | ||
+ | The 'rate' variable is the final rate used to determine the counter rate | ||
+ | the target has. It is already given the value calculated from the target's | ||
+ | CNT value plus any additional counter rate modifiers from the skill. This | ||
+ | is calculated after the attacker's custom target counter rate. | ||
+ | </nowiki> | ||
+ | |||
+ | ; Custom Counter Condition | ||
+ | |||
+ | <nowiki> | ||
+ | For those with JavaScript proficiency, you can use the following Luantic | ||
+ | Mode notetags to give counter skills a custom counter condition. While you | ||
+ | can do the same with an Eval condition, this notetag is for those who prefer | ||
+ | to take control over everything at once. | ||
+ | |||
+ | Skill Notetags: | ||
+ | |||
+ | <Custom Counter Condition> | ||
+ | if (attacker.name() === 'Harold') { | ||
+ | condition = true; | ||
+ | } else if (defender.name() === 'Therese') { | ||
+ | condition = true; | ||
+ | } else { | ||
+ | condition = false; | ||
+ | } | ||
+ | </Custom Counter Condition> | ||
+ | The 'condition' variable determines whether or not the counter skill will | ||
+ | pass or fail. If the 'condition' variable returns 'true', the condition is | ||
+ | met. If the 'condition' variable returns 'false', the condition fails to | ||
+ | be met. Once the condition is met, the rest of the <Counter Condition> | ||
+ | conditions will be checked. | ||
</nowiki> | </nowiki> | ||
Revision as of 17:20, 26 June 2019
VisuStella, Caz Wolf, Fallen Angel Olivia, Atelier Irina, and other affiliated content creators.
Introduction
Lunatic Mode is a key phrase coined by Yanfly and is often seen used across the RPG Maker community by many users to refer to advanced usage of plugins involving code of some sort. It usually pertains to the usage of notetags, but it can also be applied to other things, such as Plugin Parameters and comment tags, too. It is recommended that users don't dabble with Lunatic Mode features unless they understand that what they're using can cause their game to crash if the code is made incorrectly.
Origin
The origin of Lunatic Mode came from Touhou Project, a Japanese bullet hell shoot 'em up game series. In the games, there are often four modes: Easy, Normal, Hard, and Lunatic. During the RPG Maker VX era, the Yanfly Engine ReDux series had their usage labeled in the four categories:
- Easy Mode: The scripts would be plug and play by simply adding the script to your list.
- Normal Mode: The scripts would require interaction with the game project through the usage of notetags.
- Hard Mode: The scripts would require alteration of the script's module settings.
- Lunatic Mode: The scripts would require basic coding knowledge to use correctly.
This difficulty scheme was never used again since the VX script libraries, but the term Lunatic Mode has stuck with the community since then.
Base Parameter Control
Class Base Parameters
- Custom Class Parameters
If your formulas are short and simple, you can use this notetag to cover the entire formula list for all of the base parameters: Class Notetag: <Custom Class Parameters> maxhp = level * 30 + 300; maxmp = level * 20 + 150; atk = level * 15 + 15; def = level * 11 + 16; mat = level * 12 + 14; mdf = level * 10 + 13; agi = level * 14 + 15; luk = level * 13 + 12; exp = level * 100; </Custom Class Parameters> The 'maxhp', 'maxmp', 'atk', 'def', 'mat', 'mdf', 'agi', 'luk', and 'exp'. variables each refer to their own individual stats. The 'level' variable refers to the actor's current level. The formula can be made any way you like as long as it returns a legal number. * Note: The 'exp' stat here refers to the amount of exp needed to reach the next level.
- Detailed Custom Parameter Formulas
For those who wish to put a bit more detail in calculating the formula for each stat, you can use the following notetag setup: Class Notetags: <Custom Param Formula> if (this.name() === 'Harold') { value = level * 30 + 300; } else { value = level * 25 + 250; } </Custom Param Formula> Replace 'Param' with 'maxhp', 'maxmp', 'atk', 'def', 'mat', 'mdf', 'agi', 'luk', or 'exp'. The 'value' variable is the final result that's returned to count as the base class parameter. The 'level' variable refers to the actor's current level. The formula can be made any way you like as long as it returns a legal number. * Note: The 'exp' stat here refers to the amount of exp needed to reach the next level.
Battle Engine Core
Battle System - ATB
- Conditional ATB Speed and Conditional ATB Charge
For those who have a bit of JavaScript experience and would like to have more unique ways of performing ATB speed and charge changes, you can use the following notetags: Skill and Item Notetags: <Target ATB Eval> speed = x; charge = x; </Target ATB Eval> You can omit speed and/or charge. Whatever you set 'speed' to will change the ATB speed of the target. If the target is charging, 'charge' will cause the target's charge to change to that value. To make things more simple, 'max' will be the full gauge value. Here is an example: <Target ATB Eval> speed = target.hp / target.mhp * max; charge = target.hp / target.mhp * max; </Target ATB Eval> The above code will set the user's current ATB gauge to position equal to the target's HP ratio. If the target has 25% HP, the ATB gauge will go to 25% full for the target. --- --- --- --- --- <After ATB Eval> speed = x; </After ATB Eval> This is the ATB set after the user has used the skill/item and the custom ATB amount you want the user to be at after. 'max' be the value of the full gauge value. Whatever you set 'speed', the user's ATB speed value will change to that much: Here is an example: <After ATB Eval> speed = user.mp / user.mmp * max; </After ATB Eval> The above code will set the user's ATB gauge after using the skill/item to equal the user's MP ratio. If the user has 25% MP, the ATB gauge will go to 25% full for the user. --- --- --- --- --- <ATB Interrupt Eval> interrupt = true; </ATB Interrupt Eval> This will allow you to set custom conditions for interrupting a target. Keep in mind that even though it is a custom condition, it still requires the target to be in the charging phase for the interrupt to work. By setting 'interrupt = true', the target will be interrupted. Here is an example: <ATB Interrupt Eval> if (user.hp > target.hp) { interrupt = true; } </ATB Interrupt Eval> The above code will state that if the user has more HP than the target, the target will be interrupted.
Battle System - CTB
- Conditional CTB Speed and Conditional CTB Charge
For those who have a bit of JavaScript experience and would like to have more unique ways of performing CTB speed and charge changes, you can use the following notetags: Skill and Item Notetags: <Target CTB Speed Eval> speed = x; charge = x; </Target CTB Speed Eval> You can omit speed and/or charge. Whatever you set 'speed' to will change the CTB speed of the target. If the target is charging, 'charge' will cause the target's charge to change to that value. To make things more simple, 'max' will be the full gauge value. Here is an example: <Target CTB Speed Eval> speed = target.hp / target.mhp * max; charge = target.hp / target.mhp * max; </Target CTB Speed Eval> The above code will set the user's current CTB gauge to position equal to the target's HP ratio. If the target has 25% HP, the CTB gauge will go to 25% full for the target. --- --- --- --- --- <Target CTB Order Eval> order = x; </Target CTB Order Eval> Set the 'order' variable to how much you want to alter the target's current turn order by. If 'order' is positive, the order will need to wait that many more turns before its turn comes up. If 'order' is negative, it will will that amount of turns less before the order comes up. Here is an example: <Target CTB Order Eval> if (target.hp > 1000) { order = 3; } else { order = -1; } </Target CTB Order Eval> If the target when attacked has over 1000 HP left, the target will have to wait 3 more turns before its turn arrives. If the target has 1000 or less, the target actually waits 1 less turn. --- --- --- --- --- <After CTB Eval> speed = x; </After CTB Eval> This is the CTB set after the user has used the skill/item and the custom CTB amount you want the user to be at after. 'max' be the value of the full gauge value. Whatever you set 'speed', the user's CTB speed value will change to that much: Here is an example: <After CTB Eval> speed = user.mp / user.mmp * max; </After CTB Eval> The above code will set the user's CTB gauge after using the skill/item to equal the user's MP ratio. If the user has 25% MP, the CTB gauge will go to 25% full for the user.
Counter Control
- Custom Counter Skills
For those with JavaScript proficiency, you can use the following Lunatic Mode notetags to give a dynamic set of skills granted for counter usage. Actor, Class, Enemy, Weapon, Armor, and State Notetags: <Custom Counter Skills> if (user.name() === 'Harold') { skills.push(50, 51, 52); } else if (user.name() === 'Therese') { skills.push(53, 54, 55); } else if (user.name() === 'Marsha') { skills.push(56, 57, 58); } else if (user.name() === 'Lucius') { skills.push(59, 60, 61); } </Custom Counter Skills> The 'skills' variable is an array that will contain all the counter skills that will be added to the list of potential skills the battler can counter actions with provided that their requirements are met.
- Custom Counter Total
For those with JavaScript proficiency, you can use the following Lunatic Mode notetags to give a dynamic counter total bonus: Actor, Class, Enemy, Weapon, Armor, and State Notetags: <Custom Counter Total> value = user.level; </Custom Counter Total> The 'value' variable is the total amount of counters is increased or decreased by. If the total counter value reaches 0 or less than 0 for the battler, the battler is unable to use counter skills.
- Custom Counter Rate
For those with JavaScript proficiency, you can use the following Lunatic Mode notetags to make the attacker's traits alter the target's CNT rate. Actor, Class, Enemy, Weapon, Armor, and State Notetags: <Custom Target Counter Rate> rate -= user.hpRate(); </Custom Target Counter Rate> The 'rate' variable is the final rate used to determine the counter rate the target has. It is already given the value calculated from the target's CNT value. This is calculated before the skill's custom counter rate.
- Custom Counter Rates
For those with JavaScript proficiency, you can use the following Lunatic Mode notetags to give skills a dynamic chance for the target to counter. Skill and Item Notetags: <Custom Counter Rate> rate += target.hpRate(); </Custom Counter Rate> The 'rate' variable is the final rate used to determine the counter rate the target has. It is already given the value calculated from the target's CNT value plus any additional counter rate modifiers from the skill. This is calculated after the attacker's custom target counter rate.
- Custom Counter Condition
For those with JavaScript proficiency, you can use the following Luantic Mode notetags to give counter skills a custom counter condition. While you can do the same with an Eval condition, this notetag is for those who prefer to take control over everything at once. Skill Notetags: <Custom Counter Condition> if (attacker.name() === 'Harold') { condition = true; } else if (defender.name() === 'Therese') { condition = true; } else { condition = false; } </Custom Counter Condition> The 'condition' variable determines whether or not the counter skill will pass or fail. If the 'condition' variable returns 'true', the condition is met. If the 'condition' variable returns 'false', the condition fails to be met. Once the condition is met, the rest of the <Counter Condition> conditions will be checked.
Message Core
Extended Message Pack 2
For those with JavaScript experience and would like to customize the way the text codes provided by this plugin behave, you can alter the code used for each of the text codes within the plugin parameters. Inside the plugin parameters exist the code used when each text code is being converted by the in-game message functions. Refer to the variables displayed in the comments at the top of each code to understand which of the variables are being used and how they're being used. By default: x - Refers to the x variable being inserted into the text code. This can be a number or string, depending on the text code. y - Refers to the y variable being inserted into the text code. This can be a number of string, depending on the text code. text - Refers to the text that will be displayed by the message system. This is what will appear as the final result for using the said text code.
Pages in category "Lunatic Mode (MV)"
The following 51 pages are in this category, out of 51 total.