当サイトの運営者です。ゲーム制作とプラグイン開発が好きで、コミュニティに貢献したいと考えています。
RPGツクールMZでゲームを制作中です。
※プログラマ・エンジニアではありません。
YEP Skill Mastery Levels - YEP_SkillMasteryLevels.js

▼YEP Skill Mastery Levels(Yanfly様作) - YEP_SkillMasteryLevels.js
https://plugin.fungamemake.com/archives/10591
スキル習熟レベルのシステムを導入
ふりがな:すきるますたりーれべる
機能概要: スキル習熟レベルのシステムを導入
利用規約(ライセンス):http://www.yanfly.moe/wiki/Category:Yanfly_Engine_Plugi…
作者:Yanfly
作者サイト:http://yanfly.moe/
解説ページ:https://fungamemake.com/archives/1697
ダウンロードページ:http://yanfly.moe/2019/01/25/yep-178-skill-mastery-leve…
ファイル名:YEP_SkillMasteryLevels.js
プラグインのヘルプ:
/*:ja
* @plugindesc v1.00 スキルを使用するとスキルの習熟が向上するシステムを導入できます。スキルの習熟レベルが上がると、スキルコストが下がるかスキルダメージが上がります。
* @author Yanfly Engine Plugins
*
* @help
* 翻訳:ムノクラ
* https://munokura.tk/
* https://twitter.com/munokura/
*
* ============================================================================
* Introduction
* ============================================================================
*
* 注:YEP_SkillCore.js、YEP_X_SkillCooldowns.jsを使用している場合、
* プラグイン管理でこのプラグインを上記の下に配置します。
* このプラグインはこれらのプラグインとは無関係に機能しますが、
* この特定の順序で配置されているとよりうまく機能します。
*
* RPGの中には、スキルを繰り返し使用することで何らかの形のスキル習熟、
* ダメージの増加、スキルのコストの削減、
* スキルのクールダウンターンの短縮がもたらされるものもあります。
* このプラグインを使用すると、これらを達成できます。
*
* スキル熟達レベルのシステムはこのような働きをします。
* アクターや敵が戦闘でスキルを使うと、彼らはスキル経験値を得ます。
* スキル経験値が一定の閾値に達すると、そのスキルの習熟レベルが上がり、
* その結果、ダメージの増加、スキルコストの減少、クールダウンターンの短縮など、
* 望ましいスキルアップ効果が得られます。
* これらの各機能は、ダメージの増加、コストの変更、クールダウンの期間まで、
* レベル毎に必要な経験値に使用される式で調整できます。
*
* ============================================================================
* Notetags
* ============================================================================
*
* スキルの習熟レベル・他の様々な習熟関連の特性が及ぼす影響を判断するには、
* それらのスキルに次のメモタグを使用します。
*
* ---
*
* スキルのメモタグ
*
* <Max Mastery Level: x>
* - '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>
* - スキルの習熟レベルに応じて、
* ダメージ、HPコスト、MPコスト、TPコスト、クールダウンターンが
* それぞれ増減します。
* 'x'をスキルの習熟レベルに応じて変化させたい数値に置き換えてください。
* - 注: HPCostにはYEP_SkillCore.jsが必要です。
* - 注: クールダウンにはYEP_X_SkillCooldowns.jsが必要です。
*
* <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>
* - スキルの習熟レベルに応じて、
* ダメージ、HPコスト、MPコスト、TPコスト、クールダウンターンが
* それぞれ増減します。
* 'x'をスキルの習熟レベルに応じて変化させたい割合値で置き換えてください。
* - 注: HPCostにはYEP_SkillCore.jsが必要です。
* - 注: クールダウンにはYEP_X_SkillCooldowns.jsが必要です。
*
* <No Damage Mastery Effect>
* <No HP Cost Mastery Effect>
* <No MP Cost Mastery Effect>
* <No TP Cost Mastery Effect>
* <No Cooldown Mastery Effect>
* - メモタグはデフォルト設定からそれぞれのスキルアップ効果を無効にします。
* それらはデフォルト値を持つだけで、何も変わっていません。
* - 注: HPCostにはYEP_SkillCore.jsが必要です。
* - 注: クールダウンにはYEP_X_SkillCooldowns.jsが必要です。
*
* <Custom EXP Mastery Formula: x>
* -スキル用のカスタム経験値スキルアップ効果計算式を作成します。
* あなたがそれに使用したい希望の式で'x'を置き換えてください。
* - 例: <Custom EXP Mastery Formula: level * 20 + 5>
*
* <Custom Damage Mastery Formula: x>
* -スキルのためにカスタムダメージスキルアップ効果計算式を作ります。
* あなたがそれに使用したい希望の式で'x'を置き換えてください。
* - 例: <Custom Damage Mastery Formula: value * (1.00 + (level * 0.20))>
*
* <Custom HP Cost Mastery Formula: x>
* -スキルのためのカスタムHPコストスキルアップ効果計算式を作ります。
* あなたがそれに使用したい希望の式で'x'を置き換えてください。
* - 例: <Custom HP Cost Mastery Formula: cost * (1.00 - (level * 0.05))>
* - 注:HP CostにはYEP_SkillCore.jsが必要です。
*
* <Custom MP Cost Mastery Formula: x>
* - スキルのためのカスタムMPコストスキルアップ効果計算式を作ります。
* あなたがそれに使用したい希望の式で'x'を置き換えてください。
* - 例: <Custom MP Cost Mastery Formula: cost * (1.00 - (level * 0.05))>
*
* <Custom TP Cost Mastery Formula: x>
* - スキルのためのカスタムTPコストスキルアップ効果計算式を作ります。
* あなたがそれに使用したい希望の式で'x'を置き換えてください。
* - 例: <Custom TP Cost Mastery Formula: cost * (1.00 - (level * 0.05))>
*
* <Custom Cooldown Mastery Formula: x>
* - スキルのカスタムクールダウンスキルアップ効果計算式を作ります。
* あなたがそれに使用したい希望の式で'x'を置き換えてください。
* - 例: <Custom Cooldown Mastery Formula: turns - (level * 1.5)>
*
* ---
*
* アクターと敵のメモタグ
*
* <Starting Skill Masteries>
* list
* list
* list
* </Starting Skill Masteries>
* - アクターや敵に初期のスキルの習熟レベルを持たせたい場合、
* 上記のメモタグを使用してください。
* 新しいゲームを開始したり初期化したりする時、アクターにのみ適用されます。
* 'list'を以下のいずれかの設定に置き換えます。
*
* Skill x: level
* Skill x: level, exp
* name: level
* name: level, exp
* - 'x'を開始習熟レベルを変更したいスキルのIDに置き換えてください。
* スキル'x'を'名前'に置き換えることもできます。
* 複数のスキルがデータベース内で同じ名前を持つ場合、
* その名前を持つ最初のスキルエントリに適用されます。
* - 'level'を始めのレベルに置き換えます。
* これは0を下回ったり、スキルの最大レベルを超えたりすることはできません。
* -使用されている場合、'exp'を現在開始時の経験値の量に置き換えます。
* これはスキル習熟レベルの経験値の最大値以上にすることはできません。
* 使用しない場合、デフォルトの0になります。
*
* 例:
*
* <Starting Skill Masteries>
* Skill 5: 2
* Skill 6: 3, 4
* Firaga: 7
* Firaja: 8, 10
* </Starting Skill Masteries>
* - 上記の例では、始めにアクター/敵はスキル5と6を習熟レベル2と3で持ちます。
* スキル6は4のスキル経験値も持ちます。
* アクター/敵の'Firaga'と'Firaja'のスキルはレベル7と8で始まります。
* 'Firaja'は10のスキル経験値を持ちます。
*
* ---
*
* ============================================================================
* Script Calls
* ============================================================================
*
* JavaScriptの経験がある人は、次のスクリプトコールを使用して、
* スキルの習熟レベルを好みに合わせて変更できます。
*
* Script Calls:
*
* battler.skillMasteryLevel(skillId)
* - 'battler'はアクター/敵を表す変数です。
* 'skillId'を習熟レベルを習熟したいスキルのIDに置き換えてください。
* これはそのスキルの習熟レベルを返します。
*
* battler.setSkillMasteryLevel(skillId, level)
* - 'battler'はアクター/敵を表す変数です。
* 'skillId'を、習熟レベルを変更したいスキルのIDに置き換えます。
* 'level'を設定したいスキルのレベルに置き換えてください。
* これはスキルの習熟レベルが0を下回ったり
* 最大レベルを超えたりすることを許しません。
* その場合、レベルは0に設定されます。
*
* battler.gainSkillMasteryLevel(skillId, value)
* - 'battler'はアクター/敵を表す変数です。
* 'skillId'を、習熟レベルを上げたいスキルのIDに置き換えます。
* 'value'をスキルの現在の熟達レベルを増加(減少)させる
* レベルの量に置き換えます。
*
* battler.skillMasteryUses(skillId)
* - 'battler'はアクター/敵を表す変数です。
* 'skillId'を、現在の習熟経験値を取得したいスキルのIDに置き換えます。
* そのスキルの現在の習熟経験値を返します。
*
* battler.setSkillMasteryUses(skillId, value)
* - 'battler'はアクター/敵を表す変数です。
* 'skillId'を、現在の習熟経験値を変更するスキルのIDに置き換えます。
* 値を設定する量で'value'を置き換えます。
* 経験値が次のレベルに到達する必要性を超えると、
* スキルは自動的に次の習熟レベルに更新し、習熟経験値を0に設定します。
*
* battler.gainSkillMasteryUses(skillId, value)
* - 'battler'はアクター/敵を表す変数です。
* 'skillId'を、現在の習熟経験値を変更するスキルのIDに置き換えます。
* 'value'を増減する量に置き換えます。
* 経験値が次のレベルに到達する必要性を超えると、
* スキルは自動的に次の習熟レベルに更新し、習熟経験値を0に設定します。
*
* ============================================================================
* Lunatic Mode - Requires YEP_SkillCore.js
* ============================================================================
*
* 特定のスキルの熟達レベルはありませんが、ヘルプファイルのこの部分は、
* 戦闘者の熟達レベルに基づいて特殊効果を追加する方法について
* 潜在的な質問に答えるための手段として役立ちます。
*
* これらの例は特別な効果を生み出すためにSkillCoreのlunaticメモタグを使うので
* YEP_SkillCore.jsを必要とします。
*
* YEP_SkillCore.js のスキルのメモタグ例
*
* ---
*
* <After Eval>
* if (user.skillMasteryLevel(item.id) >= 5) {
* target.addState(10);
* target.removeState(9);
* }
* <After Eval>
*
* 上記のコードは、
* 使用者の現在のスキルの習熟レベルが5以上であるかどうかを確認します。
* データベースのステート10もターゲットに適用されます。
* ステート9はターゲットから削除されます。
*
* ---
*
* <After Eval>
* if (user.skillMasteryLevel(item.id) >= 2) {
* user.addBuff(3, 5);
* user.addDebuff(5, 8);
* }
* <After Eval>
*
* 上記のコードは、
* スキルの現在の習熟レベルが2以上であるかどうかを確認します。
* もしそうであれば、使用者は5ターンの間DEFバフを獲得し、
* 使用者は8ターンMDFのデバフを受けることになります。
*
* パラメータIDのリファレンス
*
* 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>
*
* 上記のコードは、
* 使用者の現在のスキルの習熟レベルが3以上であるかどうかを確認します。
* そうであれば、コモンイベント5が予約され、適用されると実行されます。
*
* ---
*
* ここにリストされている例だけではなく、
* lunaticコードの使用方法にも多くの可能性があります。
* いくつかのアイデアについては、
* Yanfly.moeのTips&Tricksを必ずチェックしてください。
*
* ============================================================================
* Changelog
* ============================================================================
*
* Version 1.00:
* - Finished Plugin!
*
* ============================================================================
* End of Helpfile
* ============================================================================
*
* @param ---設定---
* @default
*
* @param Default Max Mastery
* @parent ---設定---
* @type number
* @desc スキルのデフォルトの最大習熟レベル。
* @default 10
*
* @param Level Formula
* @parent ---設定---
* @type combo
* @option 5 // 5 uses per mastery level
* @option 10 // 10 uses per mastery level
* @option 20 // 20 uses per mastery level
* @option level * 5 // Increases by 5 each level
* @option level * 10 // Increases by 10 each level
* @option level * 20 // Increases by 20 each level
* @desc 次のスキルレベルに到達するまでに必要な経験値。level:到達する目標レベル
* @default level * 5 // Increases by 5 each level
*
* @param Damage Formula
* @parent ---設定---
* @type combo
* @option value // 習熟度による変更なし
* @option value * (1.00 + (level * 0.05)) // +5% / レベル
* @option value * (1.00 + (level * 0.10)) // +10% / レベル
* @option value * (1.00 + (level * 0.20)) // +20% / レベル
* @option value + (level * 1) // +1 MP / レベル
* @option value + (level * 5) // +5 MP / レベル
* @option value + (level * 10) // +10 MP / レベル
* @desc レベルに基づくダメージ率 値:元のダメージレベル:到達する目標レベル
* @default value * (1.00 + (level * 0.20)) // +20% / レベル
*
* @param MP Cost Formula
* @parent ---設定---
* @type combo
* @option cost // 習熟度による変更なし
* @option cost * (1.00 - (level * 0.05)) // -5% / レベル
* @option cost * (1.00 - (level * 0.10)) // -10% / レベル
* @option cost * (1.00 - (level * 0.20)) // -20% / レベル
* @option cost - (level * 1) // -1 MP / レベル
* @option cost - (level * 5) // -5 MP / レベル
* @option cost - (level * 10) // -10 MP / レベル
* @desc MPコストはレベルに基づきます。コスト:元のコストレベル:到達する目標レベル
* @default cost * (1.00 + (level * 0.10)) // -10% / レベル
*
* @param Minimum MP Cost
* @parent MP Cost Formula
* @desc それが減少した場合、スキルの最小MPコストはいくらですか? スキルがMPコストを持たない場合、これは適用されません。
* @default 1
*
* @param TP Cost Formula
* @parent ---設定---
* @type combo
* @option cost // 習熟度による変更なし
* @option cost * (1.00 - (level * 0.05)) // -5% / レベル
* @option cost * (1.00 - (level * 0.10)) // -10% / レベル
* @option cost * (1.00 - (level * 0.20)) // -20% / レベル
* @option cost - (level * 1) // -1 TP / レベル
* @option cost - (level * 5) // -5 TP / レベル
* @option cost - (level * 10) // -10 TP / レベル
* @desc レベルに基づくTPコスト コスト:元のコストレベル:到達する目標レベル
* @default cost * (1.00 + (level * 0.10)) // -10% / レベル
*
* @param Minimum TP Cost
* @parent TP Cost Formula
* @desc スキルが減少した場合のスキルの最低TPコストはいくらですか? スキルがTPコストを持たない場合、これは適用されません。
* @default 1
*
* @param (YEP_SkillCore)
* @parent ---設定---
*
* @param HP Cost Formula
* @parent (YEP_SkillCore)
* @type combo
* @option cost // 習熟度による変更なし
* @option cost * (1.00 - (level * 0.05)) // -5% / レベル
* @option cost * (1.00 - (level * 0.10)) // -10% / レベル
* @option cost * (1.00 - (level * 0.20)) // -20% / レベル
* @option cost - (level * 1) // -1 HP / レベル
* @option cost - (level * 5) // -5 HP / レベル
* @option cost - (level * 10) // -10 HP / レベル
* @desc HPのコストはレベルに基づいています。コスト:元のコストレベル:到達する目標レベル
* @default cost * (1.00 + (level * 0.10)) // -10% / レベル
*
* @param Minimum HP Cost
* @parent HP Cost Formula
* @desc それが減少した場合、スキルのHPの最小コストはいくらですか? スキルにHPのコストがない場合、これは適用されません。
* @default 1
*
* @param (YEP_X_SkillCooldowns)
* @parent ---設定---
*
* @param Cooldown Formula
* @parent (YEP_X_SkillCooldowns)
* @type combo
* @option turns // 習熟度による変更なし
* @option turns * (1.00 - (level * 0.05)) // -5% / レベル
* @option turns * (1.00 - (level * 0.10)) // -10% / レベル
* @option turns * (1.00 - (level * 0.20)) // -20% / レベル
* @option turns - (level * 1) // -1 turn / レベル
* @option turns - (level * 5) // -5 turns / レベル
* @option turns - (level * 10) // -10 turns / レベル
* @desc レベルに基づいて変わります。ターン:オリジナルのターンレベル:到達する目標レベル
* @default turns - (level * 1) // -1 turn / レベル
*
* @param Minimum Cooldown
* @parent Cooldown Formula
* @desc それが減少した場合のスキルの最小クールダウンは何ですか? スキルがクールダウンしていない場合、これは適用されません。
* @default 1
*
* @param ---ビジュアル---
* @default
*
* @param Level Up Animation
* @parent ---ビジュアル---
* @type animation
* @desc スキルが習熟レベルに達するとアニメーションが再生されます。アニメーションを表示しないようにするには、0に
* @default 0
*
* @param Mirror Actor
* @parent Level Up Animation
* @type boolean
* @on 表示
* @off 非表示
* @desc アクターのレベルアップアニメ表示
* 表示 - true 非表示 - false
* @default true
*
* @param Mirror Enemy
* @parent Level Up Animation
* @type boolean
* @on 表示
* @off 非表示
* @desc 敵のレベルアップアニメ表示
* 表示 - true 非表示 - false
* @default false
*
* @param Draw Gauge
* @parent ---ビジュアル---
* @type boolean
* @on 表示
* @off 非表示
* @desc スキル習熟レベルのゲージ表示
* 表示 - true 非表示 - false
* @default true
*
* @param Gauge Color 1
* @parent Draw Gauge
* @type number
* @min 0
* @max 31
* @desc 習熟ゲージに使用される文字色1
* @default 12
*
* @param Gauge Color 2
* @parent Draw Gauge
* @type number
* @min 0
* @max 31
* @desc 習熟ゲージに使用される文字色2
* @default 4
*
* @param Gauge Height
* @parent Draw Gauge
* @type number
* @min 1
* @desc ゲージの高さ
* @default 6
*
* @param Gauge Outline
* @parent Draw Gauge
* @type boolean
* @on 有り
* @off 無し
* @desc ゲージの輪郭の有無
* 有り - true 無し - false
* @default true
*
* @param Draw Level
* @parent ---ビジュアル---
* @type boolean
* @on 表示
* @off 非表示
* @desc 習熟レベルのゲージ表示
* 表示 - true 非表示 - false
* @default true
*
* @param Show Level 0
* @parent Draw Level
* @type boolean
* @on 表示
* @off 非表示
* @desc スキルが0のスキルを習熟したときのレベルを表示しますか?
* 表示 - true 非表示 - false
* @default false
*
* @param Text Color
* @parent Draw Level
* @type number
* @min 0
* @max 31
* @desc 習熟レベルの文字色
* @default 29
*
* @param Text Align
* @parent Draw Level
* @type combo
* @option left
* @option center
* @option right
* @desc 習熟レベルのテキスト配置
* left center right
* @default right
*
* @param Text Format
* @parent Draw Level
* @desc 習熟レベルの表示形式
* %1 - value
* @default Lv %1
*
* @param Text Size
* @parent Draw Level
* @type number
* @desc 習熟レベルのフォントサイズ
* @default 14
*
* @param Text Y Offset
* @parent Draw Level
* @desc Y位置をオフセット
* @default -8
*
*/