89 lines
2.5 KiB
JavaScript
89 lines
2.5 KiB
JavaScript
/*:-----------------------------------------------------------------------------------
|
||
* NUUN_ChangeMaxLevel.js
|
||
*
|
||
* Copyright (C) 2020 NUUN
|
||
* This software is released under the MIT License.
|
||
* http://opensource.org/licenses/mit-license.php
|
||
* -------------------------------------------------------------------------------------
|
||
*
|
||
* 更新履歴
|
||
* 2020/12/13 Ver.1.0.1
|
||
* 微修正
|
||
* 2020/12/12 Ver.1.0.0
|
||
* 初版
|
||
*
|
||
*/
|
||
/*:
|
||
* @target MZ
|
||
* @plugindesc 最大レベル変動プラグイン
|
||
* @author NUUN
|
||
* @orderBefore NUUN_LevelUnlimited
|
||
*
|
||
* @help
|
||
* アクターの最大レベルを任意のタイミングで変更できます。
|
||
*
|
||
* プラグインコマンド
|
||
* MaxLevelSet アクターの最大レベルを変更。
|
||
*
|
||
* 利用規約
|
||
* このプラグインはMITライセンスで配布しています。
|
||
*
|
||
*
|
||
* @command MaxLevelSet
|
||
* @text 最大レベルの変更。
|
||
* @desc 最大レベルを変更します。
|
||
*
|
||
* @arg changeMaxLevel
|
||
* @type number
|
||
* @min 1
|
||
* @default 99
|
||
* @text 最大レベル
|
||
* @desc 最大レベルを変更します。
|
||
*
|
||
* @arg ActorId
|
||
* @type actor
|
||
* @default 1
|
||
* @text アクター
|
||
* @desc 変更するアクターを指定します。
|
||
* @min 0
|
||
* @max 9999
|
||
*
|
||
*/
|
||
var Imported = Imported || {};
|
||
Imported.NUUN_ChangeMaxLevel = true;
|
||
|
||
(() => {
|
||
const parameters = PluginManager.parameters("NUUN_ChangeMaxLevel");
|
||
const pluginName = "NUUN_ChangeMaxLevel";
|
||
|
||
PluginManager.registerCommand(pluginName, "MaxLevelSet", (args) => {
|
||
$gameActors.actor(args.ActorId).changeMaxLevel(Number(args.changeMaxLevel));
|
||
});
|
||
|
||
const _Game_Actor_initMembers = Game_Actor.prototype.initMembers;
|
||
Game_Actor.prototype.initMembers = function () {
|
||
_Game_Actor_initMembers.call(this);
|
||
this._maxLevel = 0;
|
||
};
|
||
|
||
Game_Actor.prototype.changeMaxLevel = function (changeMaxLevel) {
|
||
if (!Imported.NUUN_LevelUnlimited && !Imported.VisuMZ_0_CoreEngine) {
|
||
Math.min(changeMaxLevel, 99);
|
||
}
|
||
this._maxLevel =
|
||
this._level <= changeMaxLevel ? changeMaxLevel : this._maxLevel;
|
||
};
|
||
|
||
const _Game_Actor_maxLevel = Game_Actor.prototype.maxLevel;
|
||
Game_Actor.prototype.maxLevel = function () {
|
||
return this._maxLevel > 0
|
||
? this._maxLevel
|
||
: _Game_Actor_maxLevel.call(this);
|
||
};
|
||
|
||
const _Game_Actor_changeExp = Game_Actor.prototype.changeExp;
|
||
Game_Actor.prototype.changeExp = function (exp, show) {
|
||
exp = Math.min(this.expForLevel(this.maxLevel()), exp);
|
||
_Game_Actor_changeExp.call(this, exp, show);
|
||
};
|
||
})();
|