적용하기전에....
빈 스크립트를 찾아서
$game_special_elements = {}
$imported = {}
$data_states = load_data("Data/States.rxdata")
$data_system = load_data("Data/System.rxdata")
이걸 넣어주십시오.. 안하면 오류뜹니다
(KGC 스크립트들의 맨위에 넣으시면 됩니다)
스킬을 배워놓으면 능력치가 상승하는 스크립트 입니다
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#위력 최대 HP(maxhp)
#공격력 F 공격력(atk)
#회피 F 회피 수정(eva)
#완력 F 완력(str)
#손재주가 있음 F 손재주가 있음(dex)
#민첩함 F 민첩함(agi)
#마력 F 마력(int)
#명중율 명중율(hit)
#물리 방어 F 물리 방어(pdef)
#마법 방어 F 마법 방어(mdef)
#분산도 최대 SP(maxsp)
만드는법은 이걸 적용후속성란에 패시브 스킬 (꼭 이렇게)을 만든후 스킬란에 가서 스킬을 만든뒤
속성 패시브 스킬을 체크하면 그 때부터 패시브 스킬이 발동됩니다저기 위에 위력 최대 어쩌구 저쩌구
되잇는데... 스킬보면 위력 공격력 회피 완력 등등~ 있을겁니다...거기에 숫자 1을 넣으면 이 스킬을 배웠을 시에
1% 능력치 상승 입니다 저기 위에 보면 위력이 최대 hp 이니까 케릭터의 HP에서의 1%가 더 상승하게 되는군요
회피는 회피 수정인데.. 모르는분 계실까봐 말씀드리는건데 회피 수정은 몇퍼센트로 완전하게 회피를 하는겁니다
20% 이면 20% 확률로 완전회피 50%이면 50%확률로 완전회피 착오 없으시길..
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/ ◆패시브 스킬 - KGC_PassiveSkill◆
#_/----------------------------------------------------------------------------
#_/ 습득하는 것만으로 능력 가격인상승효과를 발휘하는 스킬을 작성합니다.
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#==============================================================================
# ★ 커스터마이즈 항목 ★
#==============================================================================
module KGC
# ◆수치 영향도
# 값이 큰 만큼 스킬의 설정치의 영향이 커진다.
# 100 으로 정확히[설정치%]분의 상승량.
# (회피 수정만 PS_INF 의 영향을 받지 않고, 설정치가 그대로 보정치가 된다)
PS_INF = 100
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#위력 최대 HP(maxhp)
#공격력 F 공격력(atk)
#회피 F 회피 수정(eva)
#완력 F 완력(str)
#손재주가 있음 F 손재주가 있음(dex)
#민첩함 F 민첩함(agi)
#마력 F 마력(int)
#명중율 명중율(hit)
#물리 방어 F 물리 방어(pdef)
#마법 방어 F 마법 방어(mdef)
#분산도 최대 SP(maxsp)
$imported["PassiveSkill"] = true
# 패시브 스킬 속성
$game_special_elements["passive_skill"] = $data_system.elements.index("패시브 스킬")
#==============================================================================
# ■ Game_Actor
#==============================================================================
module KGC_Game_Actor
#--------------------------------------------------------------------------
# ● 명중율의 취득
#--------------------------------------------------------------------------
if defined?(hit) && !@hit_passiveskill
alias hit_KGC_PassiveSkill hit
else
@hit_passiveskill = true
end
def hit
n = defined?(hit_KGC_PassiveSkill) ? hit_KGC_PassiveSkill : super
return Integer(n * get_rev("hit") / 100)
end
#--------------------------------------------------------------------------
# ● 공격력의 취득
#--------------------------------------------------------------------------
if defined?(atk) && !@atk_passiveskill
alias atk_KGC_PassiveSkill atk
else
@atk_passiveskill = true
end
def atk
n = defined?(atk_KGC_PassiveSkill) ? atk_KGC_PassiveSkill : super
return Integer(n * get_rev("atk") / 100)
end
#--------------------------------------------------------------------------
# ● 물리 방어의 취득
#--------------------------------------------------------------------------
if defined?(pdef) && !@pdef_passiveskill
alias pdef_KGC_PassiveSkill pdef
else
@pdef_passiveskill = true
end
def pdef
n = defined?(pdef_KGC_PassiveSkill) ? pdef_KGC_PassiveSkill : super
return Integer(n * get_rev("pdef") / 100)
end
#--------------------------------------------------------------------------
# ● 마법 방어의 취득
#--------------------------------------------------------------------------
if defined?(mdef) && !@mdef_passiveskill
alias mdef_KGC_PassiveSkill mdef
else
@mdef_passiveskill = true
end
def mdef
n = defined?(mdef_KGC_PassiveSkill) ? mdef_KGC_PassiveSkill : super
return Integer(n * get_rev("mdef") / 100)
end
#--------------------------------------------------------------------------
# ● 회피 수정의 취득
#--------------------------------------------------------------------------
if defined?(eva) && !@eva_passiveskill
alias eva_KGC_PassiveSkill eva
else
@eva_passiveskill = true
end
def eva
n = defined?(eva_KGC_PassiveSkill) ? eva_KGC_PassiveSkill : super
return n + get_rev("eva")
end
module_function :atk, :pdef, :mdef, :eva
public :atk, :pdef, :mdef, :eva
end
class Game_Actor < Game_Battler
include KGC_Game_Actor
#--------------------------------------------------------------------------
# ● 셋업
#--------------------------------------------------------------------------
alias setup_KGC_PassiveSkill setup
def setup(actor_id)
setup_KGC_PassiveSkill(actor_id)
# 보정치를 초기화
reset_rev
end
#--------------------------------------------------------------------------
# ● 기본 MaxHP 의 취득
#--------------------------------------------------------------------------
alias base_maxhp_KGC_PassiveSkill base_maxhp
def base_maxhp
# 보정한 값을 돌려준다
return Integer(base_maxhp_KGC_PassiveSkill * get_rev("maxhp") / 100)
end
#--------------------------------------------------------------------------
# ● 기본 MaxSP 의 취득
#--------------------------------------------------------------------------
alias base_maxsp_KGC_PassiveSkill base_maxsp
def base_maxsp
return Integer(base_maxsp_KGC_PassiveSkill * get_rev("maxsp") / 100)
end
#--------------------------------------------------------------------------
# ● 기본 완력의 취득
#--------------------------------------------------------------------------
alias base_str_KGC_PassiveSkill base_str
def base_str
# 보정
n = base_str_KGC_PassiveSkill * get_rev("str") / 100
# 한계치 처리
n = [[n, 1].max, $imported["LimitBreak"] ? KGC::LB_ACTOR_ETC_LIMIT : 999].min
return Integer(n)
end
#--------------------------------------------------------------------------
# ● 기본 손재주가 있음의 취득
#--------------------------------------------------------------------------
alias base_dex_KGC_PassiveSkill base_dex
def base_dex
n = base_dex_KGC_PassiveSkill * get_rev("dex") / 100
n = [[n, 1].max, $imported["LimitBreak"] ? KGC::LB_ACTOR_ETC_LIMIT : 999].min
return Integer(n)
end
#--------------------------------------------------------------------------
# ● 기본 민첩함의 취득
#--------------------------------------------------------------------------
alias base_agi_KGC_PassiveSkill base_agi
def base_agi
n = base_agi_KGC_PassiveSkill * get_rev("agi") / 100
n = [[n, 1].max, $imported["LimitBreak"] ? KGC::LB_ACTOR_ETC_LIMIT : 999].min
return Integer(n)
end
#--------------------------------------------------------------------------
# ● 기본 마력의 취득
#--------------------------------------------------------------------------
alias base_int_KGC_PassiveSkill base_int
def base_int
n = base_int_KGC_PassiveSkill * get_rev("int") / 100
n = [[n, 1].max, $imported["LimitBreak"] ? KGC::LB_ACTOR_ETC_LIMIT : 999].min
return n
end
#--------------------------------------------------------------------------
# ● 스킬을 기억한다
# skill_id : 스킬 ID
#--------------------------------------------------------------------------
alias learn_skill_KGC_PassiveSkill learn_skill
def learn_skill(skill_id)
# 원래의 처리를 실행
learn_skill_KGC_PassiveSkill(skill_id)
# 보정치를 수정
restore_rev
end
#--------------------------------------------------------------------------
# ● 스킬을 잊는다
# skill_id : 스킬 ID
#--------------------------------------------------------------------------
alias forget_skill_KGC_PassiveSkill forget_skill
def forget_skill(skill_id)
# 원래의 처리를 실행
forget_skill_KGC_PassiveSkill(skill_id)
# 보정치를 수정
restore_rev
end
#--------------------------------------------------------------------------
# ● 보정치를 리셋트
#--------------------------------------------------------------------------
def reset_rev
@maxhp_rev = @maxsp_rev = 100.0
@hit_rev = @atk_rev = @pdef_rev = @mdef_rev = 100.0
@str_rev = @dex_rev = @agi_rev = @int_rev = 100.0
@eva_rev = 0
end
protected :reset_rev
#--------------------------------------------------------------------------
# ● 보정치를 수정
#--------------------------------------------------------------------------
def restore_rev
# 보정치를 초기화
reset_rev
# 수정
for i in self.skills
skill = $data_skills[i]
# 패시브 스킬 판정
if skill.element_set.include?($game_special_elements["passive_skill"])
@maxhp_rev += skill.power * KGC::PS_INF / 100.0
@maxsp_rev += skill.variance * KGC::PS_INF / 100.0
@hit_rev += skill.hit * KGC::PS_INF / 100.0
@atk_rev += skill.atk_f * KGC::PS_INF / 100.0
@pdef_rev += skill.pdef_f * KGC::PS_INF / 100.0
@mdef_rev += skill.mdef_f * KGC::PS_INF / 100.0
@str_rev += skill.str_f * KGC::PS_INF / 100.0
@dex_rev += skill.dex_f * KGC::PS_INF / 100.0
@agi_rev += skill.agi_f * KGC::PS_INF / 100.0
@int_rev += skill.int_f * KGC::PS_INF / 100.0
@eva_rev += skill.eva_f
end
end
end
#--------------------------------------------------------------------------
# ● 보정치를 취득
#--------------------------------------------------------------------------
def get_rev(type)
type.downcase!
eval("@#{type}_rev = 100.0") if eval("@#{type}_rev == nil")
return eval("@#{type}_rev")
end
end
빈 스크립트를 찾아서
$game_special_elements = {}
$imported = {}
$data_states = load_data("Data/States.rxdata")
$data_system = load_data("Data/System.rxdata")
이걸 넣어주십시오.. 안하면 오류뜹니다
(KGC 스크립트들의 맨위에 넣으시면 됩니다)
스킬을 배워놓으면 능력치가 상승하는 스크립트 입니다
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#위력 최대 HP(maxhp)
#공격력 F 공격력(atk)
#회피 F 회피 수정(eva)
#완력 F 완력(str)
#손재주가 있음 F 손재주가 있음(dex)
#민첩함 F 민첩함(agi)
#마력 F 마력(int)
#명중율 명중율(hit)
#물리 방어 F 물리 방어(pdef)
#마법 방어 F 마법 방어(mdef)
#분산도 최대 SP(maxsp)
만드는법은 이걸 적용후속성란에 패시브 스킬 (꼭 이렇게)을 만든후 스킬란에 가서 스킬을 만든뒤
속성 패시브 스킬을 체크하면 그 때부터 패시브 스킬이 발동됩니다저기 위에 위력 최대 어쩌구 저쩌구
되잇는데... 스킬보면 위력 공격력 회피 완력 등등~ 있을겁니다...거기에 숫자 1을 넣으면 이 스킬을 배웠을 시에
1% 능력치 상승 입니다 저기 위에 보면 위력이 최대 hp 이니까 케릭터의 HP에서의 1%가 더 상승하게 되는군요
회피는 회피 수정인데.. 모르는분 계실까봐 말씀드리는건데 회피 수정은 몇퍼센트로 완전하게 회피를 하는겁니다
20% 이면 20% 확률로 완전회피 50%이면 50%확률로 완전회피 착오 없으시길..
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/ ◆패시브 스킬 - KGC_PassiveSkill◆
#_/----------------------------------------------------------------------------
#_/ 습득하는 것만으로 능력 가격인상승효과를 발휘하는 스킬을 작성합니다.
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#==============================================================================
# ★ 커스터마이즈 항목 ★
#==============================================================================
module KGC
# ◆수치 영향도
# 값이 큰 만큼 스킬의 설정치의 영향이 커진다.
# 100 으로 정확히[설정치%]분의 상승량.
# (회피 수정만 PS_INF 의 영향을 받지 않고, 설정치가 그대로 보정치가 된다)
PS_INF = 100
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#위력 최대 HP(maxhp)
#공격력 F 공격력(atk)
#회피 F 회피 수정(eva)
#완력 F 완력(str)
#손재주가 있음 F 손재주가 있음(dex)
#민첩함 F 민첩함(agi)
#마력 F 마력(int)
#명중율 명중율(hit)
#물리 방어 F 물리 방어(pdef)
#마법 방어 F 마법 방어(mdef)
#분산도 최대 SP(maxsp)
$imported["PassiveSkill"] = true
# 패시브 스킬 속성
$game_special_elements["passive_skill"] = $data_system.elements.index("패시브 스킬")
#==============================================================================
# ■ Game_Actor
#==============================================================================
module KGC_Game_Actor
#--------------------------------------------------------------------------
# ● 명중율의 취득
#--------------------------------------------------------------------------
if defined?(hit) && !@hit_passiveskill
alias hit_KGC_PassiveSkill hit
else
@hit_passiveskill = true
end
def hit
n = defined?(hit_KGC_PassiveSkill) ? hit_KGC_PassiveSkill : super
return Integer(n * get_rev("hit") / 100)
end
#--------------------------------------------------------------------------
# ● 공격력의 취득
#--------------------------------------------------------------------------
if defined?(atk) && !@atk_passiveskill
alias atk_KGC_PassiveSkill atk
else
@atk_passiveskill = true
end
def atk
n = defined?(atk_KGC_PassiveSkill) ? atk_KGC_PassiveSkill : super
return Integer(n * get_rev("atk") / 100)
end
#--------------------------------------------------------------------------
# ● 물리 방어의 취득
#--------------------------------------------------------------------------
if defined?(pdef) && !@pdef_passiveskill
alias pdef_KGC_PassiveSkill pdef
else
@pdef_passiveskill = true
end
def pdef
n = defined?(pdef_KGC_PassiveSkill) ? pdef_KGC_PassiveSkill : super
return Integer(n * get_rev("pdef") / 100)
end
#--------------------------------------------------------------------------
# ● 마법 방어의 취득
#--------------------------------------------------------------------------
if defined?(mdef) && !@mdef_passiveskill
alias mdef_KGC_PassiveSkill mdef
else
@mdef_passiveskill = true
end
def mdef
n = defined?(mdef_KGC_PassiveSkill) ? mdef_KGC_PassiveSkill : super
return Integer(n * get_rev("mdef") / 100)
end
#--------------------------------------------------------------------------
# ● 회피 수정의 취득
#--------------------------------------------------------------------------
if defined?(eva) && !@eva_passiveskill
alias eva_KGC_PassiveSkill eva
else
@eva_passiveskill = true
end
def eva
n = defined?(eva_KGC_PassiveSkill) ? eva_KGC_PassiveSkill : super
return n + get_rev("eva")
end
module_function :atk, :pdef, :mdef, :eva
public :atk, :pdef, :mdef, :eva
end
class Game_Actor < Game_Battler
include KGC_Game_Actor
#--------------------------------------------------------------------------
# ● 셋업
#--------------------------------------------------------------------------
alias setup_KGC_PassiveSkill setup
def setup(actor_id)
setup_KGC_PassiveSkill(actor_id)
# 보정치를 초기화
reset_rev
end
#--------------------------------------------------------------------------
# ● 기본 MaxHP 의 취득
#--------------------------------------------------------------------------
alias base_maxhp_KGC_PassiveSkill base_maxhp
def base_maxhp
# 보정한 값을 돌려준다
return Integer(base_maxhp_KGC_PassiveSkill * get_rev("maxhp") / 100)
end
#--------------------------------------------------------------------------
# ● 기본 MaxSP 의 취득
#--------------------------------------------------------------------------
alias base_maxsp_KGC_PassiveSkill base_maxsp
def base_maxsp
return Integer(base_maxsp_KGC_PassiveSkill * get_rev("maxsp") / 100)
end
#--------------------------------------------------------------------------
# ● 기본 완력의 취득
#--------------------------------------------------------------------------
alias base_str_KGC_PassiveSkill base_str
def base_str
# 보정
n = base_str_KGC_PassiveSkill * get_rev("str") / 100
# 한계치 처리
n = [[n, 1].max, $imported["LimitBreak"] ? KGC::LB_ACTOR_ETC_LIMIT : 999].min
return Integer(n)
end
#--------------------------------------------------------------------------
# ● 기본 손재주가 있음의 취득
#--------------------------------------------------------------------------
alias base_dex_KGC_PassiveSkill base_dex
def base_dex
n = base_dex_KGC_PassiveSkill * get_rev("dex") / 100
n = [[n, 1].max, $imported["LimitBreak"] ? KGC::LB_ACTOR_ETC_LIMIT : 999].min
return Integer(n)
end
#--------------------------------------------------------------------------
# ● 기본 민첩함의 취득
#--------------------------------------------------------------------------
alias base_agi_KGC_PassiveSkill base_agi
def base_agi
n = base_agi_KGC_PassiveSkill * get_rev("agi") / 100
n = [[n, 1].max, $imported["LimitBreak"] ? KGC::LB_ACTOR_ETC_LIMIT : 999].min
return Integer(n)
end
#--------------------------------------------------------------------------
# ● 기본 마력의 취득
#--------------------------------------------------------------------------
alias base_int_KGC_PassiveSkill base_int
def base_int
n = base_int_KGC_PassiveSkill * get_rev("int") / 100
n = [[n, 1].max, $imported["LimitBreak"] ? KGC::LB_ACTOR_ETC_LIMIT : 999].min
return n
end
#--------------------------------------------------------------------------
# ● 스킬을 기억한다
# skill_id : 스킬 ID
#--------------------------------------------------------------------------
alias learn_skill_KGC_PassiveSkill learn_skill
def learn_skill(skill_id)
# 원래의 처리를 실행
learn_skill_KGC_PassiveSkill(skill_id)
# 보정치를 수정
restore_rev
end
#--------------------------------------------------------------------------
# ● 스킬을 잊는다
# skill_id : 스킬 ID
#--------------------------------------------------------------------------
alias forget_skill_KGC_PassiveSkill forget_skill
def forget_skill(skill_id)
# 원래의 처리를 실행
forget_skill_KGC_PassiveSkill(skill_id)
# 보정치를 수정
restore_rev
end
#--------------------------------------------------------------------------
# ● 보정치를 리셋트
#--------------------------------------------------------------------------
def reset_rev
@maxhp_rev = @maxsp_rev = 100.0
@hit_rev = @atk_rev = @pdef_rev = @mdef_rev = 100.0
@str_rev = @dex_rev = @agi_rev = @int_rev = 100.0
@eva_rev = 0
end
protected :reset_rev
#--------------------------------------------------------------------------
# ● 보정치를 수정
#--------------------------------------------------------------------------
def restore_rev
# 보정치를 초기화
reset_rev
# 수정
for i in self.skills
skill = $data_skills[i]
# 패시브 스킬 판정
if skill.element_set.include?($game_special_elements["passive_skill"])
@maxhp_rev += skill.power * KGC::PS_INF / 100.0
@maxsp_rev += skill.variance * KGC::PS_INF / 100.0
@hit_rev += skill.hit * KGC::PS_INF / 100.0
@atk_rev += skill.atk_f * KGC::PS_INF / 100.0
@pdef_rev += skill.pdef_f * KGC::PS_INF / 100.0
@mdef_rev += skill.mdef_f * KGC::PS_INF / 100.0
@str_rev += skill.str_f * KGC::PS_INF / 100.0
@dex_rev += skill.dex_f * KGC::PS_INF / 100.0
@agi_rev += skill.agi_f * KGC::PS_INF / 100.0
@int_rev += skill.int_f * KGC::PS_INF / 100.0
@eva_rev += skill.eva_f
end
end
end
#--------------------------------------------------------------------------
# ● 보정치를 취득
#--------------------------------------------------------------------------
def get_rev(type)
type.downcase!
eval("@#{type}_rev = 100.0") if eval("@#{type}_rev == nil")
return eval("@#{type}_rev")
end
end