*기타 RPG XP -> RPG2003 경험치 공식 변환하기
니오티님의 강의 입니다.
게이지 강의 보시기전에 해야할 일입니다.
스크립트 에디터를 켜시고
Game_Actor 부분을 여시고 91번째 라인을 보세요.
#--------------------------------------------------------------------------
# ● EXP 계산
#--------------------------------------------------------------------------
def make_exp_list
actor = $data_actors[@actor_id]
@exp_list[1] = 0
pow_i = 2.4 + actor.exp_inflation / 100.0
for i in 2..100
if i > actor.final_level
@exp_list[i] = 0
else
n = actor.exp_basis * ((i + 3) ** pow_i) / (5 ** pow_i)
@exp_list[i] = @exp_list[i-1] + Integer(n)
end
end
end
Game_Actor 부분을 지우시고 이 소스로 붙여 넣으세요.
#--------------------------------------------------------------------------
# ● EXP 계산
# ● 제작 : NIOT
# ● 주의 할점 보정치는 XP에서 정할 수 없습니다.
# 또한 데이터 베이스에서 보시면 게임 실제 경험치와 다를것인데요.
# ● RPG 2003 계산방식 - EXP 계산 공식
# [주인공 도달할 레벨] * [주인공 현재 레벨] * [주인공 경험치 증가도]
# + [기본치] * [주인공 도달할 레벨] + [현재 레벨] * [보정치]
# ● subexp = 10 이 RPG2003에서의 보정치입니다.
#--------------------------------------------------------------------------
def make_exp_list
actor = $data_actors[@actor_id]
@exp_list[1] = 0
pow_i = 2.4 + actor.exp_inflation / 100.0
subexp = 10
for i in 2..100
if i > actor.final_level
@exp_list[i] = 0
else
#n = actor.exp_basis * ((i + 3) ** pow_i) / (5 ** pow_i)
n = (actor.exp_inflation * i * (i - 1)) + (actor.exp_basis * i ) + (subexp * ( i - 1 ))
@exp_list[i] = Integer(n)
end
end
end
변경하게되면, 이전 강의에서와 같은 공식을 사용하지 않으셔도됩니다. RPG2003방식으로 변경됩니다.
RPG XP 데이터 베이스에서는 스크립트를 바꾸어도 경험치표는 변경되지 않습니다.
게임 속에서는 변경되었으니 사용하셔도 무방할 것입니다.
누적 경험치 구하는 공식
-> [주인공이 도달할 레벨] * [주인공의 현재 레벨] * [주인공의 데이터베이스 경험치 증가도]
+ [경험치 기본치] * [주인공이 도달할 레벨] + [현재 레벨] * [주인공의 데이터베이스 보정치]
(물론, 곱셈이 먼저인 것은 아시겠죠?)
직접 계산하고 구하느라 애먹었습니다.