Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //==============================================================================
- // MrTS_StaticExp.js [Modified]
- // Compatible fix for LMBS by dsiver144.
- //==============================================================================
- /*:
- * @plugindesc Makes every level require same amount of EXP. Enemies give exp depending on actor level.
- * @author Mr. Trivel
- *
- * @param EXP Needed
- * @desc EXP Needed for each level.
- * @default 200
- *
- * @param Overflow
- * @desc Does EXP Overflow to next level? (Y/N)
- * @default N
- *
- * @param EXP Reward
- * @desc EXP rewarded for killing same level enemy
- * @default 15
- *
- * @param EXP Bonus
- * @desc EXP bonus for killing higher level enemy per it's level
- * @default 7
- *
- * @param EXP Loss
- * @desc EXP Loss for killing lower level enemy per it's level
- * @default 3
- *
- * @param Obtained Exp Message
- * @desc Message display after victory
- * @default %1 received %2 %3!
- *
- * @help
- * --------------------------------------------------------------------------------
- * Terms of Use
- * --------------------------------------------------------------------------------
- * Don't remove the header or claim that you wrote this plugin.
- * Credit Mr. Trivel if using this plugin in your project.
- * Free for commercial and non-commercial projects.
- * --------------------------------------------------------------------------------
- * Version 1.0
- * --------------------------------------------------------------------------------
- *
- * Enemies give EXP according to Actor level.
- * Enemies that have lower level will give less EXP while enemies higher level than
- * Actor give more EXP.
- *
- * Tags for enemy note fields:
- * <level: X> - Level of enemy. If no level noted assumes level 1.
- * <custom_base_exp> - instead of using default base EXP,
- * use the number in enemy database EXP field for it.
- */
- (function(){
- var parameters = PluginManager.parameters('MrTS_StaticExp');
- var overflow = String(parameters['Overflow'] || "N");
- var expNeeded = Number(parameters['EXP Needed'] || 200);
- var expReward = Number(parameters['EXP Reward'] || 15);
- var expBonus = Number(parameters['EXP Bonus'] || 7);
- var expLoss = Number(parameters['EXP Loss'] || 3);
- var expObtainedMessage = String(parameters['Obtained Exp Message'] || "%1 received %2 %3!");
- //----------------------------------------------------------------------------------------------------------------------------------------------------------
- // ** Exp For Level
- //----------------------------------------------------------------------------------------------------------------------------------------------------------
- Game_Actor.prototype.expForLevel = function(level) {
- return expNeeded*(level-1);
- };
- //----------------------------------------------------------------------------------------------------------------------------------------------------------
- // ** Level Up
- //----------------------------------------------------------------------------------------------------------------------------------------------------------
- var _Game_Actor_levelUp = Game_Actor.prototype.levelUp;
- Game_Actor.prototype.levelUp = function() {
- _Game_Actor_levelUp.call(this);
- if (overflow.toUpperCase() == "N")
- this._exp[this._classId] = this.expForLevel(this._level);
- }
- //----------------------------------------------------------------------------------------------------------------------------------------------------------
- // ** Exp
- //----------------------------------------------------------------------------------------------------------------------------------------------------------
- var _Game_Enemy_exp = Game_Enemy.prototype.exp;
- Game_Enemy.prototype.exp = function() {
- if (this.enemy().meta.custom_base_exp)
- return _Game_Enemy_exp.call(this);
- else
- return expReward;
- }
- //----------------------------------------------------------------------------------------------------------------------------------------------------------
- // ** Total Exp
- //----------------------------------------------------------------------------------------------------------------------------------------------------------
- Game_Troop.prototype.expTotal = function() {
- var t_exp = [];
- var i = 0;
- $gameParty.allMembers().forEach(function(member){
- t_exp[i] = 0;
- $gameTroop.deadMembers().forEach(function(enemy){
- var dif = (enemy.enemy().meta.level ? enemy.enemy().meta.level : 1) - member.level;
- var exp = enemy.exp();
- if (dif > 0)
- exp += expBonus * dif;
- else if (dif < 0)
- exp += expLoss * dif;
- if (exp < 0) exp = 0;
- t_exp[i] += exp;
- });
- i++;
- });
- return t_exp;
- }
- //----------------------------------------------------------------------------------------------------------------------------------------------------------
- // ** Gain Exp
- //----------------------------------------------------------------------------------------------------------------------------------------------------------
- BattleManager.gainExp = function() {
- var exp = this._rewards.exp;
- var i = 0;
- $gameParty.allMembers().forEach(function(actor) {
- actor.gainExp(exp[i]);
- i++;
- });
- };
- //----------------------------------------------------------------------------------------------------------------------------------------------------------
- // ** Display Exp
- //----------------------------------------------------------------------------------------------------------------------------------------------------------
- BattleManager.displayExp = function() {
- var exp = this._rewards.exp;
- $gameMessage.newPage();
- var i = 0;
- $gameParty.battleMembers().forEach(function(member){
- var t_exp = exp[i];
- if (t_exp > 0)
- {
- var text = expObtainedMessage.format(member.name(), exp[i], TextManager.exp);
- $gameMessage.add('\\.' + text);
- }
- i++;
- });
- };
- //----------------------------------------------------------------------------------------------------------------------------------------------------------
- // ** get Result Data [overwriten]
- //----------------------------------------------------------------------------------------------------------------------------------------------------------
- BattleManager.getResultData = function() {
- this.makeRewards();
- var new_exp = this._rewards.exp;
- if (this._rewards.exp.constructor === Array) {
- new_exp = 0;
- for (var i = 0; i < this._rewards.exp.length; i++) {
- new_exp += this._rewards.exp[i];
- }
- }
- $gameTemp._bResult[0] = true;
- $gameTemp._bResult[1] = new_exp;
- $gameTemp._bResult[2] = this._rewards.gold;
- $gameTemp._bResult[3] = this._rewards.items;
- $gameTemp._bResult[4] = [];
- };
- })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement