当サイトの運営者です。ゲーム制作とプラグイン開発が好きで、コミュニティに貢献したいと考えています。
RPGツクールMZでゲームを制作中です。
※プログラマ・エンジニアではありません。
NRP 多重職業によって自由度の高い成長システムを実現 - NRP_AdditionalClasses.js
シェア用テキスト:
▼NRP 多重職業によって自由度の高い成長システムを実現(砂川赳様作) - NRP_AdditionalClasses.js
https://plugin-mz.fungamemake.com/archives/3650
アクターに対して、複数の職業を同時に設定することにより、自由度の高い成長システムを実現します。
ふりがな:たじゅうしょくぎょうによってじゆうどのたかいせいちょうしすてむをじつげん
機能概要: アクターに対して、複数の職業を同時に設定することにより、自由度の高い成長システムを実現します。
利用規約(ライセンス):
・著作権:保持
・商用利用:許可
・追加改変:許可
・再配布:許可
・詳細はダウンロードページ・プラグイン内を確認
作者:砂川赳
作者サイト:https://newrpg.seesaa.net//
解説ページ:https://newrpg.seesaa.net//article/483582956.html
ファイル名:NRP_AdditionalClasses.js
プラグインのヘルプ:
/*:ja * @target MZ * @plugindesc v1.001 多重職業によって自由度の高い成長システムを実現。 * @author 砂川赳(http://newrpg.seesaa.net/) * @orderAfter NRP_TraitsPlus * @url http://newrpg.seesaa.net/article/483582956.html * * @help アクターに対して、複数の職業を同時に設定することにより、 * 自由度の高い成長システムを実現します。 * * RPGツクールMZの職業はかなりクセのある仕様になっています。 * 職業とそのレベルによって、アクターの能力がほぼ確定するため、 * アクター自身の個性を設定することが困難です。 * * もし、この仕様に基づいて転職を行うと、 * 全く別の能力を持ったキャラクターになってしまいます。 * ※いわゆるDQ3型およびFF3型 * * 実際のところ、ほとんどの作品ではアクターと職業を * 一対一に対応させることで、アクターの個性を表現しています。 * 事実上、職業という仕組みが機能していない有様です。 * * そこでこのプラグインでは、 * アクターの能力値のベースとなる職業(ベース職業)を残したまま、 * さらに追加の職業(追加職業)を付与することで、 * 自由度の高い転職システムを実現します。 * * 例えば、DQ6のように元の個性を残したままの転職が可能です。 * 追加職業は独自のレベルを持ち、そのレベルに応じてスキルも習得します。 * ※初期状態では通常の経験値でレベルアップします。 * * その他にも、FF6の魔石システムやDQ8のスキルマスターのように、 * 熟練度によってスキルを段階的に習得するシステム全般に活用できます。 * * ------------------------------------------ * ■使用方法 * ------------------------------------------ * 追加用の職業を作成し、 * プラグインコマンドでアクターに追加すればOKです。 * ベース職業と追加職業の2つの特徴を併せ持ったアクターが誕生します。 * * さらに転職によって自由なアクターのカスタマイズが可能です。 * 付属の『NRP_AdditionalCCScene.js』を利用すれば、 * 簡単に転職システムを作成できます。 * * その他にも当プラグインは非常にカスタマイズ性が高くなっています。 * プラグインコマンドやパラメータの解説をお読みください。 * * ------------------------------------------ * ■プラグインコマンド * ------------------------------------------ * ◆職業の追加 * 追加職業をアクターに設定します。 * * インデックスを変更することによって、複数の職業を追加できます。 * サブ職のようなシステムを作りたい場合に有用です。 * * ◆職業の削除 * 追加職業を削除します。 * * ◆経験値の増減 * 追加職業に対して経験値を増減させます。 * イベントコマンドの『経験値の増減』とは異なり、 * 追加職業に対してのみ増減を行います。 * * ◆レベルの増減 * 追加職業に対してレベルを増減させます。 * イベントコマンドの『レベルの増減』とは異なり、 * 追加職業に対してのみ増減を行います。 * * ◆追加職業の情報を取得 * アクターが就いている追加職業に関する情報を変数に格納します。 * 職業ID、レベル、経験値を取得可能です。 * * 追加職業は通常のイベントコマンドでは判別できないため、 * このコマンドを使用してください。 * * ------------------------------------------ * ■主なプラグインパラメータ * ------------------------------------------ * ◆パラメータを加算 * 職業の能力値曲線に設定されている値を、アクターに加算します。 * レベル成長する職業などに活用できます。 * 初期値はオフです。 * * ◆スキルを維持する * 転職時、習得した追加職業のスキルを維持します。 * 初期値はオフです。 * * なお、スキル単位での設定も可能です。 * ※以下の『スキルのメモ欄』を参照 * * ◆通常の経験値を使用 * 追加職業に対しても、通常の経験値処理を使用します。 * 戦闘勝利時やイベントコマンドによる * 経験値処理の影響を受けるようにします。 * * 初期値はオンです。 * 熟練度のような独自の経験値処理を行う場合は、オフにしてください。 * * オフの場合もプラグインコマンドで経験値やレベルを操作可能です。 * また、敵キャラ毎に職業専用の経験値を設定することも可能です。 * ※以下の『敵キャラのメモ欄』を参照 * * ◆経験値の共有化 * 職業の経験値をパーティで共有します。 * つまり、誰が転職しても同じ職業は同じレベルになります。 * 初期値はオフです。 * * FF8のGFやペルソナ1~2、軌跡シリーズのマスタークオーツのように、 * アクターとは独立した成長システムを想定しています。 * * ◆職業欄を上書表示、ステータスにレベル表示 * 追加職業を職業欄やステータス画面に表示します。 * その代わり、アクターのベース職業や二つ名は非表示になります。 * 初期値はオンです。 * * ------------------------------------------ * ■職業のメモ欄 * ------------------------------------------ * <MaxLevel:?> * 追加職業毎に最大レベルを指定します。 * プラグインパラメータの既定値よりも優先されます。 * * ------------------------------------------ * ■スキルのメモ欄 * ------------------------------------------ * <KeepSkill> * スキルを維持しない設定でも、転職時にスキルを維持するようにします。 * * <KeepSkill:false> * 逆にスキルを維持する設定でも、維持しないようにします。 * * ------------------------------------------ * ■敵キャラのメモ欄 * ------------------------------------------ * <ClassExp:?> * 追加職業にのみ加算する経験値を指定します。 * * 『通常の経験値を使用』をオフにすることによって、 * 独自の熟練度のようなものを実装できます。 * * 戦闘終了時の表示には『EXPの表示名』が使用されます。 * * ------------------------------------------ * ■スクリプト * ------------------------------------------ * ◆actor.currentAdditionalClass(0); * アクターの追加職業情報を取得します。 * * サブ職業が存在する場合は、数値(0が先頭)を増やせばOKです。 * 例えば、以下で先頭のアクターの職業名や職業レベルを取得できます。 * * $gameParty.members()[0].currentAdditionalClass(0).name; * $gameParty.members()[0].currentAdditionalClass(0).level; * * ※actorはGame_Actorクラスのオブジェクトです。 * ※追加職業に就いてない場合はエラーになります。 * * ■利用規約 * 特に制約はありません。 * 改変、再配布自由、商用可、権利表示も任意です。 * 作者は責任を負いませんが、不具合については可能な範囲で対応します。 * * @command AddClass * @text 職業の追加 * @desc 追加職業をアクターに設定します。 * * @arg Actor * @text アクター * @type actor * @desc 対象とするアクターです。 * * @arg VariableActor * @text アクター(変数指定) * @type variable * @desc 対象とするアクターを変数で指定します。 * こちらのほうが優先されます。 * * @arg Index * @text インデックス * @type number * @default 0 * @desc 職業の登録位置です。0から開始。 * 空白にすると後ろに追加します。 * * @arg AdditionalClass * @text 追加職業 * @type class * @desc 追加する職業です。 * * * * @command RemoveClass * @text 職業の削除 * @desc 追加職業をアクターから削除します。 * 条件をAND指定してください。 * * @arg Actor * @text アクター * @type actor * @desc 対象とするアクターです。 * * @arg VariableActor * @text アクター(変数指定) * @type variable * @desc 対象とするアクターを変数で指定します。 * こちらのほうが優先されます。 * * @arg <Condition> * @text <対象条件> * * @arg Index * @parent <Condition> * @text インデックス * @type number * @desc 削除する職業の登録位置です。 * 0から開始します。 * * @arg AdditionalClass * @parent <Condition> * @text 削除する追加職業 * @type class * @desc 削除する追加職業です。 * * @arg <Option> * @text <オプション> * * @arg FillGap * @parent <Option> * @text 隙間を詰める * @type boolean * @default false * @desc 削除後に隙間を詰めます。 * * * * @command ChangeExp * @text 経験値の増減 * @desc 追加職業の経験値を変更します。 * 対象条件をAND指定してください。 * * @arg Exp * @text 経験値 * @type number @min -9999999 @max 9999999 * @desc 増減する経験値の量です。マイナス指定可。 * * @arg ShowLvUpMessage * @text レベルアップを表示 * @type boolean * @default false * @desc レベルアップ時にメッセージを表示します。 * * @arg <Condition> * @text <対象条件> * * @arg Actor * @parent <Condition> * @text アクター * @type actor * @desc 対象とするアクターです。 * 未指定ならパーティ全体を対象とします。 * * @arg VariableActor * @parent <Condition> * @text アクター(変数指定) * @type variable * @desc 対象とするアクターを変数で指定します。 * こちらのほうが優先されます。 * * @arg Index * @parent <Condition> * @text インデックス * @type number * @desc 対象とする職業の登録位置です。 * 未指定なら就いている職業全てを対象とします。 * * @arg AdditionalClass * @parent <Condition> * @text 追加職業 * @type class * @desc 対象とする追加職業です。 * 未指定なら就いている職業全てを対象とします。 * * * * @command ChangeLevel * @text レベルの増減 * @desc 追加職業のレベルを変更します。 * 対象条件をAND指定してください。 * * @arg Level * @text レベル * @type number @min -99 @max 99 * @desc 増減するレベルの量です。マイナス指定可。 * * @arg ShowLvUpMessage * @text レベルアップを表示 * @type boolean * @default false * @desc レベルアップ時にメッセージを表示します。 * * @arg <Condition> * @text <対象条件> * * @arg Actor * @parent <Condition> * @text アクター * @type actor * @desc 対象とするアクターです。 * 未指定ならパーティ全体を対象とします。 * * @arg VariableActor * @parent <Condition> * @text アクター(変数指定) * @type variable * @desc 対象とするアクターを変数で指定します。 * こちらのほうが優先されます。 * * @arg Index * @parent <Condition> * @text インデックス * @type number * @desc 対象とする職業の登録位置です。 * 未指定なら就いている職業全てを対象とします。 * * @arg AdditionalClass * @parent <Condition> * @text 追加職業 * @type class * @desc 対象とする追加職業です。 * 未指定なら就いている職業全てを対象とします。 * * * * @command GetInformation * @text 追加職業の情報を取得 * @desc アクターが就いている追加職業に関する情報を取得します。 * * @arg VariableAtClass * @text 変数(追加職業) * @type variable * @desc アクターが就いている追加職業のIDを格納する変数です。 * * @arg VariableAtLv * @text 変数(レベル) * @type variable * @desc アクターが就いている追加職業のレベルを格納する変数です。 * * @arg VariableAtExp * @text 変数(経験値) * @type variable * @desc アクターが就いている追加職業の経験値を格納する変数です。 * * @arg <Condition> * @text <取得条件> * * @arg Actor * @parent <Condition> * @text アクター * @type actor * @desc 対象とするアクターです。 * * @arg VariableActor * @parent <Condition> * @text アクター(変数指定) * @type variable * @desc 対象とするアクターを変数で指定します。 * こちらのほうが優先されます。 * * @arg Index * @parent <Condition> * @text インデックス * @type number * @default 0 * @desc 対象とする職業の登録位置です。 * 0から開始します。 * * * * @param ParamPlus * @text パラメータを加算 * @type boolean * @default false * @desc 職業の能力値をアクターに加算します。 * * @param KeepSkill * @text スキルを維持する * @type boolean * @default false * @desc 転職時、スキルを維持するようにします。 * * @param DefaultMaxLevel * @text 最大レベル既定値 * @type number @max 99 * @desc 追加職業の最大レベルの既定値です。 * 特に指定がなければ、この値が使用されます。 * * @param LvUpMessage * @text Lvアップメッセージ * @type string * @default %1は%2レベル %3 に上がった! * @desc 職業のレベルアップメッセージを表示します。 * %1=アクター, %2=職業名, %3=Lvとなります。 * * @param LvName * @text Lvの表示名 * @type string * @default Lv * @desc 職業のレベルを表す表示名です。 * * @param ExpName * @text EXPの表示名 * @type string * @default EXP * @desc 職業の経験値を表す表示名です。 * * @param <ClassExp> * @text <職業経験値関連> * * @param UseNormalExp * @parent <ClassExp> * @text 通常の経験値を使用 * @type boolean * @default true * @desc 通常の経験値取得時に、追加職業へも経験値を反映させます。 * 独自ポイントを使う場合はオフにしてください。 * * @param DefaultClassExp * @parent <ClassExp> * @text 職業経験値の既定値 * @type string * @desc 職業経験値の既定値を設定します。 * 数式可(例:1 + Math.floor(a.exp() / 100)) * * @param ClassExpMessage * @parent <ClassExp> * @text EXP獲得メッセージ * @type string * @default %1 の%2を獲得! * @desc 職業経験値の獲得メッセージを表示します。 * %1=数値, %2=EXPの表示名となります。 * * @param ClassExpSwitch * @parent <ClassExp> * @text 職業経験値の有効化スイッチ * @type switch * @desc 指定のスイッチがオンの際、追加職業への経験値の増減を有効化します。空白なら常に有効。 * * @param BenchClassExpRate * @parent <ClassExp> * @text 控えの獲得率 * @type string * @default 1.00 * @desc 控えメンバーの職業経験値の獲得率です。数式可 * 空白の場合は通常経験値と同率を使用。 * * @param UnificationExp * @parent <ClassExp> * @text 経験値の共有化 * @type boolean * @default false * @desc 職業の経験値をパーティで共有します。 * 成長する魔石のようなシステムに使えます。 * * @param NoDuplicateExp * @parent UnificationExp * @text 経験値の重複禁止 * @type boolean * @default false * @desc 経験値の共有化を行う場合、かつ複数人が同一の職業に就いている場合、経験値の重複加算を禁止します。 * * @param OverwriteClassField * @text 職業欄を上書表示 * @type boolean * @default true * @desc 追加職業を職業欄に表示します。(通常の職業は非表示) * 先頭の追加職業(インデックス=0)のみが対象です。 * * @param ShowLevelOnStatus * @text ステータスにレベル表示 * @type boolean * @default true * @desc 追加職業のレベルをステータス画面に表示します。 * なお、調整のために二つ名を削除します。 */