12-10-2019, 08:02 AM
Modeled after the work of French Scripter, MicKo, this one too does not include points progression. In otherwords, I didn't add points for each level because he didn't.
Well, you could set up the actor's startup points to 0. After that, ... well.... Try adding THIS!:
Well, you could set up the actor's startup points to 0. After that, ... well.... Try adding THIS!:
Code:
#==============================================================================
#
# ** C O N F I G U R A T I O N M O D U L E ** #
#
#==============================================================================
module SkillTree
#--------------------------------------------------------------------------
# * SYSTEM REQUIRED HASHES - DO NOT TOUCH -
#--------------------------------------------------------------------------
PROGRESS = {}
#--------------------------------------------------------------------------
SHOW_PROGRESS = true
# Lvl -- Starting level for points progress
# Base -- Starting points
# Points - Number of basic point gain
# Rate - Rate of increase
# Increase - Rate of increase adjustment
# Lvl Base Points Rate Incr
# === ==== ====== ==== ===
PROGRESS[1] = [ 6, 5, 1, 3, 2 ] # Aluxes starts off strong
PROGRESS[5] = [ 6, 3, 0.5, 10, 0.5] # Estelle grows slower
end
#==============================================================================
# ** Game_Actor
#------------------------------------------------------------------------------
# This class handles the actor. It's used within the Game_Actors class
# ($game_actors) and refers to the Game_Party class ($game_party).
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# * Alias Listing
#--------------------------------------------------------------------------
alias skilltree_addon_game_actor_setup setup
alias skilltree_addon_game_actor_exp exp=
#--------------------------------------------------------------------------
# * Setup
# actor_id : actor ID
#--------------------------------------------------------------------------
def setup(actor_id)
actor = $data_actors[actor_id]
@actor_id = actor_id
skilltree_addon_game_actor_setup(actor_id)
@points_list = Array.new(101)
make_skillpoints_list
end
#--------------------------------------------------------------------------
# * Calculate Skillpoints progression
#--------------------------------------------------------------------------
def make_skillpoints_list
actor = $data_actors[@actor_id]
start = 0
base = 0
rate = 0.1
increase = 0.1
if SkillTree::PROGRESS.has_key?(@actor_id)
start = SkillTree::PROGRESS[@actor_id][0]
base = SkillTree::PROGRESS[@actor_id][1]
points = SkillTree::PROGRESS[@actor_id][2]
rate = SkillTree::PROGRESS[@actor_id][3]
increase = SkillTree::PROGRESS[@actor_id][4]
rate = 0.1 if rate <= 0
increase = 0.1 if increase <= 0
end
@points_list[1] = 0
j = 0
pow_i = 1.0 + increase / 100.0
for i in 2..100
if i > actor.final_level
@points_list[i] = 0
else
if i < start
@points_list[i] = 0
else
j += 1
n = points.to_f * j / rate.to_f + (increase.to_f * (j.to_f/10))
n += base.to_f if j== 1
# Erase if no skill tree progress
if SkillTree::PROGRESS.has_key?(@actor_id) != true
n = 0
end
@points_list[i] = Integer(n)
end
end
end
# Just to show the progress
if SkillTree::SHOW_PROGRESS == true
p "This is how many points gaine 'each' level"
p @points_list
test = []
testval = 0
for point in @points_list
if point.nil?
test.push(nil)
else
testval += point
test.push(testval)
end
end
p "This is the points progress"
p test
end
end
#--------------------------------------------------------------------------
# * Change EXP
# exp : new EXP
#--------------------------------------------------------------------------
def exp=(exp)
# Create test value
oldlevel = @level
# Perform the original call
skilltree_addon_game_actor_exp(exp)
# Add or remove based on testval level
if oldlevel < @level
@skillpoints += @points_list[@level]
elsif oldlevel > @level
@skillpoints -= @points_list[@level]
end
end
end