KExpBook VX + ACE - kyonides -  09-19-2024
 
 
KExpBooK VX + ACE 
 
by Kyonides 
 
 
Introduction 
 
Yes, I know that this is a scriptlet but I thought that some of you might have been thinking about an easy way to make items become actual experience books that allow your heroes to earn some experience points. Well, here's my version of such a script. 
 
All versions of my scriptlet will let you freeze or thaw an actor's experience gaining feature. 
By default the experience gaining feature is enabled. (@exp_frozen = nil) 
 
VX Version 
 
You will need to use the following note tag: <exp 100> 
 
Its value could be 100 or anything you game devs can come up with. 
 
Code: # * KExpBooK VX 
#   Scripter : Kyonides Arkanthes 
#   v1.0.0 - 2022-01-02 
 
# Let items become books filled with experience points by adding a simple 
# note tag! * Offer only valid for Actors aka Heroes! * 
# You can also freeze the experience gaining feature at any given time. 
# Item Note Example: <exp 500> 
 
# This scriptlet is free as in beer and speech! 
 
# * Script Calls * # 
 
# - Get a Party Member 
# actor = $game_party.members[ActorIndex] 
# - Get an Actor listed in the DB 
# actor = $game_actors[ActorID] 
 
# - Freeze or Thaw the Experience Gaining Feature 
# actor.exp_frozen = true or false # Default: nil (here the same as false) 
 
module KExp 
  BOOKS_NOTE = /<exp (\d+)>/i 
end 
 
class Game_Battler 
  alias :kyon_exp_book_gm_btlr_item_gr_fx :item_growth_effect 
  alias :kyon_exp_book_gm_btlr_item_fx? :item_effective? 
  def item_growth_effect(user, item) 
    if actor? 
      item.note[KExp::BOOKS_NOTE] 
      book_exp = $1.to_i 
      return gain_exp(book_exp, true) if book_exp > 0 
    end 
    kyon_exp_book_gm_btlr_item_gr_fx(user, item) 
  end 
 
  def item_effective?(user, item) 
    return !@exp_frozen if actor? and item.note[KExp::BOOKS_NOTE] 
    kyon_exp_book_gm_btlr_item_fx?(user, item) 
  end 
end 
 
class Game_Actor 
  attr_accessor :exp_frozen 
end
  
 
 
 
VX ACE Version 
 
You will need to use the following note tag: <exp 100> 
 
Its value could be 100 or anything you game devs can come up with. 
 
Code: # * KExpBooK ACE 
#   Scripter : Kyonides Arkanthes 
#   v1.0.0 - 2022-01-02 
 
# Let items become books filled with experience points by adding a simple 
# note tag! * Offer only valid for Actors aka Heroes! * 
# You can also freeze the experience gaining feature at any given time. 
# Item Note Example: <exp 500> 
 
# This scriptlet is free as in beer and speech! 
 
# * Script Calls * # 
 
# - Get a Party Member 
# actor = $game_party.members[ActorIndex] 
# - Get an Actor listed in the DB 
# actor = $game_actors[ActorID] 
 
# - Freeze or Thaw the Experience Gaining Feature 
# actor.exp_frozen = true or false # Default: nil (here the same as false) 
 
module KExp 
  BOOKS_NOTE = /<exp (\d+)>/i 
end 
 
class Game_Battler 
  alias :kyon_exp_book_gm_btlr_item_apply :item_apply 
  alias :kyon_exp_book_gm_btlr_item_test :item_test 
  def item_apply(user, item) 
    if actor? 
      item.note[KExp::BOOKS_NOTE] 
      book_exp = $1.to_i 
      gain_exp(book_exp) if book_exp > 0 
    end 
    kyon_exp_book_gm_btlr_item_apply(user, item) 
  end 
 
  def item_test(user, item) 
    return !@exp_frozen if actor? and item.note[KExp::BOOKS_NOTE] 
    kyon_exp_book_gm_btlr_item_test(user, item) 
  end 
end 
 
class Game_Actor 
  attr_accessor :exp_frozen 
end
  
Terms & Conditions 
 
The only thing you need to know about it is that it is free as in   beer and   speech!
 
 
 
 |