Advertisement
Guest User

MrTS_StaticExp.js [Modified]

a guest
Mar 20th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //==============================================================================
  2. // MrTS_StaticExp.js [Modified]
  3. // Compatible fix for LMBS by dsiver144.
  4. //==============================================================================
  5.  
  6. /*:
  7. * @plugindesc Makes every level require same amount of EXP. Enemies give exp depending on actor level.
  8. * @author Mr. Trivel
  9. *
  10. * @param EXP Needed
  11. * @desc EXP Needed for each level.
  12. * @default 200
  13. *
  14. * @param Overflow
  15. * @desc Does EXP Overflow to next level? (Y/N)
  16. * @default N
  17. *
  18. * @param EXP Reward
  19. * @desc EXP rewarded for killing same level enemy
  20. * @default 15
  21. *
  22. * @param EXP Bonus
  23. * @desc EXP bonus for killing higher level enemy per it's level
  24. * @default 7
  25. *
  26. * @param EXP Loss
  27. * @desc EXP Loss for killing lower level enemy per it's level
  28. * @default 3
  29. *
  30. * @param Obtained Exp Message
  31. * @desc Message display after victory
  32. * @default %1 received %2 %3!
  33. *
  34. * @help
  35. * --------------------------------------------------------------------------------
  36. * Terms of Use
  37. * --------------------------------------------------------------------------------
  38. * Don't remove the header or claim that you wrote this plugin.
  39. * Credit Mr. Trivel if using this plugin in your project.
  40. * Free for commercial and non-commercial projects.
  41. * --------------------------------------------------------------------------------
  42. * Version 1.0
  43. * --------------------------------------------------------------------------------
  44. *
  45. * Enemies give EXP according to Actor level.
  46. * Enemies that have lower level will give less EXP while enemies higher level than
  47. * Actor give more EXP.
  48. *
  49. * Tags for enemy note fields:
  50. * <level: X> - Level of enemy. If no level noted assumes level 1.
  51. * <custom_base_exp> - instead of using default base EXP,
  52. * use the number in enemy database EXP field for it.
  53. */
  54.  
  55. (function(){
  56.     var parameters = PluginManager.parameters('MrTS_StaticExp');
  57.  
  58.     var overflow    = String(parameters['Overflow']     || "N");
  59.     var expNeeded   = Number(parameters['EXP Needed']   || 200);
  60.     var expReward   = Number(parameters['EXP Reward']   || 15);
  61.     var expBonus    = Number(parameters['EXP Bonus']    || 7);
  62.     var expLoss     = Number(parameters['EXP Loss']     || 3);
  63.  
  64.     var expObtainedMessage = String(parameters['Obtained Exp Message'] || "%1 received %2 %3!");
  65.     //----------------------------------------------------------------------------------------------------------------------------------------------------------
  66.     // ** Exp For Level
  67.     //----------------------------------------------------------------------------------------------------------------------------------------------------------
  68.     Game_Actor.prototype.expForLevel = function(level) {
  69.         return expNeeded*(level-1);
  70.     };
  71.     //----------------------------------------------------------------------------------------------------------------------------------------------------------
  72.     // ** Level Up
  73.     //----------------------------------------------------------------------------------------------------------------------------------------------------------
  74.     var _Game_Actor_levelUp = Game_Actor.prototype.levelUp;
  75.     Game_Actor.prototype.levelUp = function() {
  76.         _Game_Actor_levelUp.call(this);
  77.         if (overflow.toUpperCase() == "N")
  78.             this._exp[this._classId] = this.expForLevel(this._level);
  79.     }
  80.     //----------------------------------------------------------------------------------------------------------------------------------------------------------
  81.     // ** Exp
  82.     //----------------------------------------------------------------------------------------------------------------------------------------------------------
  83.     var _Game_Enemy_exp = Game_Enemy.prototype.exp;
  84.     Game_Enemy.prototype.exp = function() {
  85.         if (this.enemy().meta.custom_base_exp)
  86.             return _Game_Enemy_exp.call(this);
  87.         else
  88.             return expReward;
  89.     }
  90.     //----------------------------------------------------------------------------------------------------------------------------------------------------------
  91.     // ** Total Exp
  92.     //----------------------------------------------------------------------------------------------------------------------------------------------------------
  93.     Game_Troop.prototype.expTotal = function() {
  94.         var t_exp = [];
  95.         var i = 0;
  96.         $gameParty.allMembers().forEach(function(member){
  97.             t_exp[i] = 0;
  98.             $gameTroop.deadMembers().forEach(function(enemy){
  99.                 var dif = (enemy.enemy().meta.level ? enemy.enemy().meta.level : 1) - member.level;
  100.                 var exp = enemy.exp();
  101.                 if (dif > 0)
  102.                     exp += expBonus * dif;
  103.                 else if (dif < 0)
  104.                     exp += expLoss * dif;
  105.  
  106.                 if (exp < 0) exp = 0;
  107.                 t_exp[i] += exp;
  108.  
  109.             });
  110.             i++;
  111.         });
  112.  
  113.         return t_exp;
  114.     }
  115.     //----------------------------------------------------------------------------------------------------------------------------------------------------------
  116.     // ** Gain Exp
  117.     //----------------------------------------------------------------------------------------------------------------------------------------------------------
  118.     BattleManager.gainExp = function() {
  119.         var exp = this._rewards.exp;
  120.         var i = 0;
  121.         $gameParty.allMembers().forEach(function(actor) {
  122.             actor.gainExp(exp[i]);
  123.             i++;
  124.         });
  125.     };
  126.     //----------------------------------------------------------------------------------------------------------------------------------------------------------
  127.     // ** Display Exp
  128.     //----------------------------------------------------------------------------------------------------------------------------------------------------------
  129.     BattleManager.displayExp = function() {
  130.         var exp = this._rewards.exp;
  131.         $gameMessage.newPage();
  132.         var i = 0;
  133.         $gameParty.battleMembers().forEach(function(member){
  134.             var t_exp = exp[i];
  135.             if (t_exp > 0)
  136.             {
  137.                 var text = expObtainedMessage.format(member.name(), exp[i], TextManager.exp);
  138.                 $gameMessage.add('\\.' + text);
  139.             }
  140.             i++;
  141.         });
  142.     };
  143.     //----------------------------------------------------------------------------------------------------------------------------------------------------------
  144.     // ** get Result Data [overwriten]
  145.     //----------------------------------------------------------------------------------------------------------------------------------------------------------
  146.     BattleManager.getResultData = function() {
  147.         this.makeRewards();
  148.         var new_exp = this._rewards.exp;
  149.         if (this._rewards.exp.constructor === Array) {
  150.             new_exp = 0;
  151.             for (var i = 0; i < this._rewards.exp.length; i++) {
  152.                 new_exp += this._rewards.exp[i];
  153.             }
  154.         }
  155.         $gameTemp._bResult[0] = true;    
  156.         $gameTemp._bResult[1] = new_exp;
  157.         $gameTemp._bResult[2] = this._rewards.gold;
  158.         $gameTemp._bResult[3] = this._rewards.items;
  159.         $gameTemp._bResult[4] = [];
  160.     };
  161. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement