Introduction
Note: If you are using YEP_SkillCore.js and/or YEP_X_SkillCooldowns.js, place this plugin under those in the plugin manager list. This plugin works independent of those plugins, but will work better with them if placed in this specific order.
注意:如果您使用的是YEP_SkillCore.js和/或YEP_X_SkillCooldowns.js,请将此插件放在插件管理器列表中的插件下。
In some RPG’s, using skills over and over will result in some form of skill mastery, effectively increasing the damage output, decreasing the cost of said skills, and/or lowering the cooldown duration of the skills, too. This plugin lets you accomplish such by adding in a Skill Mastery Level mechanic.
在角色扮演游戏中,重复使用技能可以增加技能熟练度,有效地增加伤害输出,降低所述技能的成本,或降低技能的冷却持续时间。此插件允许您通过添加技能熟练度来实现此目的。
The Skill Mastery Level mechanic works like such: when an actor or enemy uses a skill in battle, they gain mastery EXP. Once the mastery EXP reaches a certain threshhold, that skill’s mastery level will increase, giving it the desired mastery effects, of which can be increased damage, decreased skill costs, or decreased cooldown duration. Each of these aspects can be adjusted globally or individually from the formula used for the EXP required per level up to the damage increase, cost alteration, or cooldown durations.
技能熟练度的工作原理如下:当一个角色在战斗中使用技能时,他们获得精通EXP。一旦掌握EXP达到某个阈值,该技能的熟练度将增加,使其具有所需的掌握效果,其中可以增加伤害,降低技能成本或减少冷却持续时间。这些方面中的每一个都可以从用于每级所需的EXP的公式全局或单独调整。
Notetags
To determine the effect the mastery level of a skill has or other various mastery-related properties, use the following notetags for those skills:
要确定技能的熟练度或其他各种熟练度效果,请使用以下注意事项来获得这些技能:
—
Skill Notetags:
<Max Mastery Level: x>
– Replace ‘x’ with the max mastery level you want a skill to have. If you don’t want the skill to have any mastery level at all, replace it with 0.
- 将“x”替换为您希望技能拥有的最高精通等级。如果您不希望技能有熟练度,请将其替换为0。
<Mastery Effect: +x Damage Per Level>
<Mastery Effect: +x HP Cost Per Level>
<Mastery Effect: +x MP Cost Per Level>
<Mastery Effect: +x TP Cost Per Level>
<Mastery Effect: +x Cooldown Per Level>
<Mastery Effect: -x Damage Per Level>
<Mastery Effect: -x HP Cost Per Level>
<Mastery Effect: -x MP Cost Per Level>
<Mastery Effect: -x TP Cost Per Level>
<Mastery Effect: -x Cooldown Per Level>
– This will increase or decrease the damage, HP cost, MP cost, TP cost, cooldown turns respectively for the skill depending on its mastery level. Replace ‘x’ with a flat number value of how much you want it to shift per the skill’s mastery level.
– Note: HP Cost requires YEP_SkillCore.js.
– Note: Cooldown requires YEP_X_SkillCooldowns.
- 这将分别增加或减少技能的伤害,HP成本,MP成本,TP成本和冷却时间,具体取决于其熟练度。将“x”替换为您希望它根据技能的熟练度的增减多少。
- 注意:HP Cost需要YEP_SkillCore.js。
- 注意:冷却需要YEP_X_SkillCooldowns。
<Mastery Effect: +x% Damage Per Level>
<Mastery Effect: +x% HP Cost Per Level>
<Mastery Effect: +x% MP Cost Per Level>
<Mastery Effect: +x% TP Cost Per Level>
<Mastery Effect: +x% Cooldown Per Level>
<Mastery Effect: -x% Damage Per Level>
<Mastery Effect: -x% HP Cost Per Level>
<Mastery Effect: -x% MP Cost Per Level>
<Mastery Effect: -x% TP Cost Per Level>
<Mastery Effect: -x% Cooldown Per Level>
– This will increase or decrease the damage, HP cost, MP cost, TP cost, cooldown turns respectively for the skill depending on its mastery level. Replace ‘x’ with a percentile number value of how much you want it to shift per the skill’s mastery level.
– Note: HP Cost requires YEP_SkillCore.js.
– Note: Cooldown requires YEP_X_SkillCooldowns.
- 这将分别增加或减少技能的伤害,HP成本,MP成本,TP成本和冷却时间,具体取决于其熟练度。将'x'替换为百分数,表示您希望它根据技能的熟练度增减多少百分比。
- 注意:HP Cost需要YEP_SkillCore.js。
- 注意:冷却需要YEP_X_SkillCooldowns。
<No Damage Mastery Effect>
<No HP Cost Mastery Effect>
<No MP Cost Mastery Effect>
<No TP Cost Mastery Effect>
<No Cooldown Mastery Effect>
– These notetags will disable their respective mastery effects from the default settings. They will just have their default value with nothing changed about them at all.
– Note: HP Cost requires YEP_SkillCore.js.
– Note: Cooldown requires YEP_X_SkillCooldowns.
- 这些将从默认设置禁用其各自的熟练效果。他们将只有他们的默认值,根本没有任何改变。
- 注意:HP Cost需要YEP_SkillCore.js。
- 注意:冷却需要YEP_X_SkillCooldowns。
<Custom EXP Mastery Formula: x>
– Makes a custom EXP mastery formula for the skill. Replace ‘x’ with the desired formula you wish to use for it.
– Example: <Custom EXP Mastery Formula: level * 20 + 5>
- 为该技能制作自定义EXP精通公式。将'x'替换为您想要使用的所需公式。
<Custom Damage Mastery Formula: x>
– Makes a custom damage mastery formula for the skill. Replace ‘x’ with the desired formula you wish to use for it.
– Example: <Custom Damage Mastery Formula: value(1.00 + (level * 0.20))>
- 为技能制作自定义伤害公式。将'x'替换为您想要使用的所需公式。
<Custom HP Cost Mastery Formula: x>
– Makes a custom HP cost mastery formula for the skill. Replace ‘x’ with the desired formula you wish to use for it.
– Example: <Custom HP Cost Mastery Formula: cost(1.00 – (level * 0.05))>
– Note: HP Cost requires YEP_SkillCore.js.
- 为该技能制定自定义HP消耗公式。将'x'替换为您想要使用的所需公式。
<Custom MP Cost Mastery Formula: x>
– Makes a custom MP cost mastery formula for the skill. Replace ‘x’ with the desired formula you wish to use for it.
– Example: <Custom MP Cost Mastery Formula: cost(1.00 – (level * 0.05))>
- 为技能制定自定义MP消耗公式。将'x'替换为您想要使用的所需公式。
<Custom TP Cost Mastery Formula: x>
– Makes a custom TP cost mastery formula for the skill. Replace ‘x’ with the desired formula you wish to use for it.
– Example: <Custom TP Cost Mastery Formula: cost(1.00 – (level * 0.05))>
- 为该技能制定自定义TP消耗公式。将'x'替换为您想要使用的所需公式。
<Custom Cooldown Mastery Formula: x>
– Makes a custom cooldown mastery formula for the skill. Replace ‘x’ with the desired formula you wish to use for it.
– Example: <Custom Cooldown Mastery Formula: turns – (level * 1.5)>
- 为技能制定自定义冷却公式。将'x'替换为您想要使用的所需公式。
—
Actor and Enemy Notetags:
<Starting Skill Masteries>
list
list
list
</Starting Skill Masteries>
– If you want actors and/or enemies to have initial starting skill mastery levels, use the above notetag. This will only apply for actors when starting a new game or initializing them. Replace ‘list’ with one of the following setups:
-如果你想要的角色或敌人有初始熟练度,使用上述notetag。这仅适用于开始新游戏或初始化游戏时的角色。将“list”替换为以下设置之一
Skill x: level
Skill x: level, exp
name: level
name: level, exp
– Replace ‘x’ with the ID of the skill you wish to alter the starting mastery level of. Alternatively, you can replace ‘Skill x’ with the skill ‘name’. If multiple skills have the same name in the database, this will apply to the first skill entry with that name.
- 将“x”替换为您希望改变其起始熟练度的技能的ID。或者,您可以将“技能x”替换为技能“名称”。如果多个技能在数据库中具有相同的名称,则这将适用于具有该名称的第一个技能条目。
– Replace ‘level’ with the level you wish to start it off as. This cannot go under 0 nor go above the maximum level of the skill. - 将“级别”替换为您希望将其启动的级别。这不能低于0,也不能高于技能的最高等级。
– If used, replace ‘exp’ with the amount of EXP it will currently have at the start. This cannot be greater than or equal to the maximum value for the skill mastery level’s EXP. If not used, it will default to 0. - 如果使用,请将'exp'替换为开始时当前具有的EXP量。这不能大于或等于技能掌握等级EXP的最大值。如果未使用,则默认为0。
例:
Example:
<Starting Skill Masteries>
Skill 5: 2
Skill 6: 3, 4
Firaga: 7
Firaja: 8, 10
</Starting Skill Masteries>
– In the above example, the actor/enemy will have Skill 5 and 6 starting at levels 2 and 3 respectively. However, Skill 6 will also have some skill EXP starting at 4. The actor/enemy’s ‘Firaga’ and ‘Firaja’ skills will start at levels 7 and 8 respectively while ‘Firaja’ will have 10 skill EXP at the very start.
- 在上面的例子中,角色或敌人将从开始获得技能5和6的熟练度分别为2和3。然而,技能6也将从4开始有一些技能EXP。'Firaga'和'Firaja'技能将分别从7级和8级开始,而'Firaja'将在一开始就有10点技能EXP。
—
Script Calls
For those with JavaScript experience, you can use the following script calls reference or alter skill mastery levels to your liking:
对于具有JavaScript经验的人,您可以根据自己的喜好使用以下脚本调用引用或更改技能掌握程度:
Script Calls:
battler.skillMasteryLevel(skillId)
– ‘battler’ is a variable that represents an actor/enemy. Replace ‘skillId’ with the ID of the skill whose mastery level you wish to acquire. This will return the mastery level of that skill.
battler.setSkillMasteryLevel(skillId, level)
– ‘battler’ is a variable that represents an actor/enemy. Replace ‘skillId’ with the ID of the skill whose mastery level you wish to alter. Replace ‘level’ with the level of the skill you wish to set it to. This will not allow the skill mastery level to go below 0 or above its max level and the number of uses will be set to 0 for that level.
battler.gainSkillMasteryLevel(skillId, value)
– ‘battler’ is a variable that represents an actor/enemy. Replace ‘skillId’ with the ID of the skill whose mastery level you wish to increase. Replace ‘value’ with the amount of levels to increase (or decrease) the skill’s current mastery level by.
battler.skillMasteryUses(skillId)
– ‘battler’ is a variable that represents an actor/enemy. Replace ‘skillId’ with the ID of the skill whose current mastery usage amount you wish to acquire the value of. This will return the current mastery usage amount of that skill.
battler.setSkillMasteryUses(skillId, value)
– ‘battler’ is a variable that represents an actor/enemy. Replace ‘skillId’ with the ID of the skill whose current mastery usage amount to be changed. Replace ‘value’ with the amount to set the amount to. If the usage amount exceeds the need to reach the next level, the skill automatically update to the next mastery level and set the mastery usage amount to 0.
battler.gainSkillMasteryUses(skillId, value)
– ‘battler’ is a variable that represents an actor/enemy. Replace ‘skillId’ with the ID of the skill whose current mastery usage amount to be changed. Replace ‘value’ with the amount to increase/decrease. If the usage amount exceeds the need to reach the next level, the skill automatically update to the next mastery level and set the mastery usage amount to 0.
Lunatic Mode – Requires YEP_SkillCore.js
There are no specific Skill Mastery Levels lunatic notetags, but this part of the help file will serve as a means to answer potential questions that people may have about how to add special effects based on a battler’s mastery level.
These examples require YEP_SkillCore.js as they use the Skill Core’s lunatic notetags to produce special effects.
YEP_SkillCore.js Skill Notetag Examples:
—
<After Eval>
if (user.skillMasteryLevel(item.id) >= 5) {
target.addState(10);
target.removeState(9);
}
<After Eval>
The above code will make a check to see if the user’s current mastery level of the skill is greater than or equal to 5. If it is, then state 10 in the database will also be applied to the target. However, state 9 will then be removed from the target.
—
<After Eval>
if (user.skillMasteryLevel(item.id) >= 2) {
user.addBuff(3, 5);
user.addDebuff(5, 8);
}
<After Eval>
The above code will make a check to see if the user’s current mastery level of the skill is greater than or equal to 2. If it is, then the user will gain a DEF buff for 5 turns. However, the user will then suffer a debuff for MDF for 8 turns.
For reference on what the parameter ID’s are:
0 = MaxHP
1 = MaxMP
2 = ATK
3 = DEF
4 = MAT
5 = MDF
6 = AGI
7 = LUK
—
<After Eval>
if (user.skillMasteryLevel(item.id) >= 3) {
$gameTemp.reserveCommonEvent(5)
}
<After Eval>
The above code will make a check to see if the user’s current mastery level of the skill is greater than or equal to 3. If it is, common event 5 will be reserved and ran once applicable.
—
There are more possibilities with the way lunatic code can be used than just these examples listed here. For some ideas, be sure to check out the Tips & Tricks.