Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # )----------------------------------------------------------------------------(
- # )-- AUTHOR: Mr Trivel --(
- # )-- NAME: Static Exp --(
- # )-- CREATED: 2014-06-11 --(
- # )-- VERSION: 1.1a --(
- # )----------------------------------------------------------------------------(
- # )-- VERSION HISTORY --(
- # )-- 1.1a - Reserve Members now properly gain XP if specified. --(
- # )-- 1.1 - Fixed Overflow XP bug and a crash if party had atleast 1 --(
- # )-- inactive party member. --(
- # )----------------------------------------------------------------------------(
- # )-- DESCRIPTION --(
- # )-- Every level will require same amount of XP. But enemies lower level --(
- # )-- than actor will give less XP and higher level enemies will give more --(
- # )-- XP. --(
- # )----------------------------------------------------------------------------(
- # )-- INSTRUCTIONS --(
- # )-- EXP box in Enemy Database now denotes the Enemies level. --(
- # )-- E.g.: An enemy with with EXP set to 3 will be used as a level 3 enemy.--(
- # )----------------------------------------------------------------------------(
- # )-- LICENSE INFO --(
- # )-- Free for non-commercial games if credit was given to Mr Trivel. --(
- # )----------------------------------------------------------------------------(
- module MrTS
- module Static_Exp
- # )-----------------------------------------(
- # )-- How much XP per level actor needs --(
- # )-----------------------------------------(
- NEXT_LEVEL_XP = 200
- # )-------------------------------------------(
- # )-- Does XP overflow to the next level? --(
- # )-- E.g. If true and Actor is at 95 XP --(
- # )-- and it gets 10XP, he will level up --(
- # )-- and he will have 5 XP ready. If false--(
- # )-- he will have 0 XP after level up. --(
- # )-------------------------------------------(
- OVERFLOW_XP = true
- # )---------------------------------(
- # )-- Base amout of XP rewarded --(
- # )---------------------------------(
- XP_REWARDED = 15
- # )--------------------------------------------------------------(
- # )-- XP Bonus for killing higher level enemy per it's level --(
- # )--------------------------------------------------------------(
- XP_BONUS = 7
- # )------------------------------------------------------------(
- # )-- XP Loss for killing lower level enemy per it's level --(
- # )------------------------------------------------------------(
- XP_LOSS = 3
- end
- module Vocab
- # )----------------------(
- # )-- XP Get message --(
- # )----------------------(
- OBTAIN_EXP = "%s has received %s EXP!" # actor name, total xp gotten
- end
- end
- # )------------------------(
- # )-- Class: Game_Actor --(
- # )------------------------(
- class Game_Actor < Game_Battler
- # )---------------------------------------(
- # )-- Overwrite Method: exp_for_level --(
- # )---------------------------------------(
- def exp_for_level(level)
- 0
- end
- # )----------------------------------------(
- # )-- Overwrite Method: next_level_exp --(
- # )----------------------------------------(
- def next_level_exp
- MrTS::Static_Exp::NEXT_LEVEL_XP
- end
- # )----------------------------------(
- # )-- Overwrite Method: level_up --(
- # )----------------------------------(
- def level_up
- @level += 1
- @exp[@class_id] = MrTS::Static_Exp::OVERFLOW_XP ? @exp[class_id]-MrTS::Static_Exp::NEXT_LEVEL_XP : 0
- self.class.learnings.each do |learning|
- learn_skill(learning.skill_id) if learning.level == @level
- end
- end
- end
- # )------------------------(
- # )-- Class: Game_Troop --(
- # )------------------------(
- class Game_Troop < Game_Unit
- # )-----------------------------------(
- # )-- Overwrite Method: exp_total --(
- # )-----------------------------------(
- def exp_total
- party_exp = []
- loop = 0
- $game_party.all_members.each do
- party_exp[loop] = dead_members.inject(0) do |totalxp, enemy|
- xp_reward = MrTS::Static_Exp::XP_REWARDED
- xp_reward += MrTS::Static_Exp::XP_BONUS * (enemy.exp - $game_party.all_members[loop].level) if enemy.exp > $game_party.all_members[loop].level
- xp_reward -= MrTS::Static_Exp::XP_LOSS * ($game_party.all_members[loop].level - enemy.exp) if enemy.exp < $game_party.all_members[loop].level
- xp_reward = 0 if xp_reward < 0
- totalxp += xp_reward
- end
- loop += 1
- end
- return party_exp
- end
- end
- module BattleManager
- # )----------------------------------(
- # )-- Overwrite Method: gain_exp --(
- # )----------------------------------(
- def self.gain_exp
- i = 0
- $game_party.all_members.each do |actor|
- actor.gain_exp($game_troop.exp_total[i])
- i += 1
- end
- wait_for_message
- end
- # )-------------------------------------(
- # )-- Overwrite Method: display_exp --(
- # )-------------------------------------(
- def self.display_exp
- if $game_troop.exp_total.size > 0
- i = 0
- $game_party.members.each do |member|
- if $game_troop.exp_total[i] > 0
- text = sprintf(MrTS::Vocab::OBTAIN_EXP, member.name, $game_troop.exp_total[i])
- $game_message.add('\.' + text)
- end
- i += 1
- end
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement