RPG Maker Forums

Made this script for a request here.

Sharing it here in case any one else need this feature in their game.

Features:

[1] A chance of double exp/gold based on a sum up total of actor's luck/dex that stacks with the game default double gold/exp.

[2] The more actors with the tags in the battle the higher the chance of getting double gold/exp

[3] Max success rate % per actor can get is 9.99% (999 luck/dex) unless you have scripts that exceed that.

How to Use:

[1] Plug & Play + tags, place the script above Material and below Main

[2] Add <EXTRAEXP> or <extra exp> in the actor's note tag for extra exp based on luck

[3] Add <EXTRAGOLD> or <extra gold> in the actor's note tag for extra gold based on dex

Compatibility:

Part of this script is using the overwrite method, so it will conflict witch scripts that tries to overwrite how the exp/gold is being displayed/earned at the end of a battle.

Terms of Use:

Free for use in commercial and free games

Script:

Code:
#==============================================================================# ■ Meow Face Extra Battle Bonuses#------------------------------------------------------------------------------# Double Exp/Gold based on Actor's Luck/Dex#==============================================================================# How to Use:# [1] Plug & Play, Put this script below Material and above other custom scripts# [2] For the actors you want to have this special ability#      Add <EXTRAEXP> or <extra exp> in the actor's note tag for extra exp based on luck#      Add <EXTRAGOLD> or <extra gold> in the actor's note tag for extra gold based on dex#==============================================================================# Edit Anything Pass This Line at Your Own Risk!#==============================================================================#--------------------------------------------------------------------------# ○ Starting of New Methods#--------------------------------------------------------------------------class RPG::Actor < RPG::BaseItem  def expex    return true if @note[/<(?:EXTRAEXP|extra exp)>/i]    return false  end  def goldex    return true if @note[/<(?:EXTRAGOLD|extra gold)>/i]    return false  end  endclass Game_Actor < Game_Battler  def ex_exp?    actor.expex  end  def ex_gold?    actor.goldex  endendclass Game_Troop < Game_Unit  def get_battle_member_luck    @total_luk = 0    $game_party.battle_members.each do |m|      if m.ex_exp?        @total_luk += m.luk      end    end    return @total_luk/100 if @total_luk != nil  end  def get_battle_member_dex    @total_agi = 0    $game_party.battle_members.each do |m|      if m.ex_gold?        @total_agi += m.agi      end    end    return @total_agi/100  if @total_agi != nil  end  def exp_extra?    @ex_exp_rate = get_battle_member_luck    @rate = rand(100)+1    return true if @rate <= @ex_exp_rate    return false  end  def gold_extra?    @ex_gold_rate = get_battle_member_dex    @rate = rand(100)+1    return true if @rate <= @ex_gold_rate    return false  endend#--------------------------------------------------------------------------# ○ End of New Methods#--------------------------------------------------------------------------module BattleManager#--------------------------------------------------------------------------# ◎ Starting of Alias Methods#--------------------------------------------------------------------------  class <<self      alias meow_setup setup  end  def self.setup(troop_id, can_escape = true, can_lose = false)    meow_setup(troop_id, can_escape = true, can_lose = false)    @extraexp = $game_troop.exp_extra?    @extragold = $game_troop.gold_extra?  end#--------------------------------------------------------------------------# ◎ End of Alias Methods#--------------------------------------------------------------------------#--------------------------------------------------------------------------# ● Starting of Overwrite Methods#--------------------------------------------------------------------------  def self.display_exp    if $game_troop.exp_total > 0      earn = $game_troop.exp_total      earn *= 2 if @extraexp      text = sprintf(Vocab::ObtainExp, earn)      $game_message.add('\.' + "Double Exp Gained!") if @extraexp      $game_message.add('\.' + text)    end  end  def self.gain_gold    if $game_troop.gold_total > 0      earn = $game_troop.gold_total      earn *= 2 if @extragold      text = sprintf(Vocab::ObtainGold, earn)      $game_message.add('\.' + "Double Gold Income!") if @extragold      $game_message.add('\.' + text)      $game_party.gain_gold(earn)    end    wait_for_message  end  def self.gain_exp    earn = $game_troop.exp_total    earn *= 2 if @extraexp    $game_party.all_members.each do |actor|      actor.gain_exp(earn)    end    wait_for_message  endend#--------------------------------------------------------------------------# ● End of Overwrite Methods#--------------------------------------------------------------------------

Latest Threads

Latest Profile Posts

Day 9 of giveaways! 8 prizes today :D
He mad, but he cute :kaopride:

Our latest feature is an interview with... me?!

People4_2 (Capelet off and on) added!

Just beat the last of us 2 last night and starting jedi: fallen order right now, both use unreal engine & when I say i knew 80% of jedi's buttons right away because they were the same buttons as TLOU2 its ridiculous, even the same narrow hallway crawl and barely-made-it jump they do. Unreal Engine is just big budget RPG Maker the way they make games nearly identical at its core lol.

Forum statistics

Threads
106,037
Messages
1,018,464
Members
137,821
Latest member
Capterson
Top