직업

직업마다 다른 성장

by 백호 posted Feb 22, 2009
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
#==============================================================================
# ++ 클래스에 의한 성장 보정 ver. 1.10 ++
#  Script by 파라개
#  http://rpg.para.s3p.net/
#------------------------------------------------------------------------------
# 레벨업시의 클래스에 의해서, 스테이터스 상승치에 보너스가 가산됩니다.
#==============================================================================

module PARA_CLSB
 
  CLASS_BONUS=[]#이 행은 지우지 말아 주세요

  # 성장 보너스가 있는 클래스 ID와 능력치에 가산하는 보너스
  # CLASS_BONUS[(클래스 ID)] = [최대 HP,최대 SP,완력, 손재주가 있음, 민첩함, 마력]
  CLASS_BONUS[9] = [20, 0, 5, 0, 0, 0]
  CLASS_BONUS[10] = [50, 20, 5, 0, -2, 2]

end

#==============================================================================
# ■ Game_Actor
#==============================================================================

class Game_Actor < Game_Battler
 
  #--------------------------------------------------------------------------
  # ● 셋업
  #    actor_id : 액터 ID
  #--------------------------------------------------------------------------
  alias setup_para_clsb setup
  def setup(actor_id)
    setup_para_clsb(actor_id)
    @param_bonus =[0,0,0,0,0,0]
    set_class_bonus(0,@level)
  end
  #--------------------------------------------------------------------------
  # ○성장 보너스를 플러스
  #--------------------------------------------------------------------------
  def set_class_bonus(before_level,after_level)
    up_level = after_level - before_level
    if PARA_CLSB::CLASS_BONUS[@class_id] != nil
      class_bonus = PARA_CLSB::CLASS_BONUS[@class_id]
    else
      class_bonus = [0,0,0,0,0,0]
    end
    for n in 0..5
      @param_bonus [n] = class_bonus != nil ? class_bonus[n] * up_level : 0
    end
  end 
  #--------------------------------------------------------------------------
  # ● 레벨의 변경
  #    level : 새로운 레벨
  #--------------------------------------------------------------------------
  def level=(level)
    before_level = @level
    # 상하한체크
    level = [[level, $data_actors[@actor_id].final_level].min, 1].max
    # EXP 를 변경
    self.exp = @exp_list[level]
    set_class_bonus(before_level,level)
  end
  #--------------------------------------------------------------------------
  # ● 기본 MaxHP 의 취득
  #--------------------------------------------------------------------------
  alias base_maxhp_para_clsb base_maxhp
  def base_maxhp
    n = base_maxhp_para_clsb
    if @param_bonus != nil
      n += @param_bonus[0]
    end
    return n
  end
  #--------------------------------------------------------------------------
  # ● 기본 MaxSP 의 취득
  #--------------------------------------------------------------------------
  alias base_maxsp_para_clsb base_maxsp
  def base_maxsp
    n = base_maxsp_para_clsb
    if @param_bonus != nil
      n += @param_bonus[1]
    end
    return n
  end
  #--------------------------------------------------------------------------
  # ● 기본 완력의 취득
  #--------------------------------------------------------------------------
  alias base_str_para_clsb base_str
  def base_str
    n = base_str_para_clsb
    if @param_bonus != nil
      n += @param_bonus[2]
    end
    return [[n, 1].max, 999].min
  end
  #--------------------------------------------------------------------------
  # ● 기본 손재주가 있음의 취득
  #--------------------------------------------------------------------------
  alias base_dex_para_clsb base_dex
  def base_dex
    n = base_dex_para_clsb
    if @param_bonus != nil
      n += @param_bonus[3]
    end
    return [[n, 1].max, 999].min
  end
  #--------------------------------------------------------------------------
  # ● 기본 민첩함의 취득
  #--------------------------------------------------------------------------
  alias base_agi_para_clsb base_agi
  def base_agi
    n = base_agi_para_clsb
    if @param_bonus != nil
      n += @param_bonus[4]
    end
    return [[n, 1].max, 999].min
  end
  #--------------------------------------------------------------------------
  # ● 기본 마력의 취득
  #--------------------------------------------------------------------------
  alias base_int_para_clsb base_int
  def base_int
    n = base_int_para_clsb
    if @param_bonus != nil
      n += @param_bonus[5]
    end
    return [[n, 1].max, 999].min
  end
end