출처: REV122 eraMegaten0.309 190910 - ERB - RPG - 戦闘 - SYSTEM_BATTLE.ERB
장비 및 장비 지식으로 인한 보정치 제외
기본 수치에 힘/지/마/인/속/행 수식 계산 더하고 보정치 계산
[0]요약
-공통 스텟 계산
HP = (기본 수치 + 힘*2 + 인*7 + 5)*(100 + 기본 수치*3)/100
MP = (기본 수치 + 지/2 + 마*1.5 + 5)*(100 + 기본 수치)/100
이후 활천계, 마맥계 곱연산 후 보정치 합연산
-인간 스텟 계산
공격 = (기본 수치/2 + 힘 + 인/2) + 보정치
명중 = (기본 수치 + 속 + 운/2) + 보정치
방어 = (기본 수치 + 인) + 보정치
회피 = (기본 수치 + 속 + 운/2) + 보정치
마법위력 = (기본 수치/2 + 지/2 + 마) + 보정치
마법효과 = (기본 수치 + 지 + 운/2) + 보정치
-악마 스텟 계산 & 인간 스텟 계산 공식 변화 체크시
공격 = (기본 수치/2 + 힘*2.5 + 인) + 보정치
명중 = (기본 수치 + 속*2.5 + 운) + 보정치
방어 = (기본 수치 + 힘/2 + 인*3) + 보정치
회피 = (기본 수치 + 속*2.5 + 운) + 보정치
마법위력 = (기본 수치 + 지 + 마*2.5) + 보정치
마법효과 = (기본 수치*2 + 지/2 + 운) + 보정치
--건슬링어 보유시
총명중 = (기본 수치 + 지 + 속 + 운) + 보정치
총공격 = (기본 수치 + 지/2 + 속/2) + 보정치
--건슬링어 미보유시
총명중 = (기본 수치 + 지/2 + 속/2 + 운/2) + 보정치
총공격 = (기본 수치/2 + 지/4 + 속/4) + 보정치
--인스톨 소프트 [하모나이저] 보정치
공격 보정치 = (기본 수치*1.5 + 힘*1.5 + 인/2) * (GET_SUMMONER_LV2(), 6)중 최소치 * 0.1
명중 보정치 = (기본 수치 + 속*1.5 + 운/2) * (GET_SUMMONER_LV2(), 6)중 최소치 * 0.1
방어 보정치 = (기본 수치 + 힘/2 + 인*2) * (GET_SUMMONER_LV2(), 6)중 최소치 * 0.1
회피 보정치 = (기본 수치 + 속*1.5 + 운/2) * (GET_SUMMONER_LV2(), 6)중 최소치 * 0.1
마법위력 보정치 = (기본 수치*1.5 + 지/2 + 마*1.5) * (GET_SUMMONER_LV2(), 6)중 최소치 * 0.1
마법효과 보정치 = (기본 수치 + 지 + 마*1.5 + 운/2) * (GET_SUMMONER_LV2(), 6)중 최소치 * 0.1
--인간 및 반마인 LV 80 초과시 + 리빙엣지 미장착시 보정치 + 장비변경보정횟수 4 초과시
공격 보정치 = (장착자 LV - 80) * 공격장비보정치/4
명중 보정치 = (장착자 LV - 80) * 명중장비보정치/4
방어 보정치 = (장착자 LV - 80) * 방어장비보정치/4
회피 보정치 = (장착자 LV - 80) * 회피장비보정치/4
마법위력 보정치 = (장착자 LV - 80) * 마법위력장비보정치/4
마법효과 보정치 = (장착자 LV - 80) * 마법효과장비보정치/4
총공격 보정치 = (장착자 LV - 80) * 총공격장비보정치/4
총명중 보정치 = (장착자 LV - 80) * 총명중장비보정치/4
--모든 종족 LV 80 초과시 + 인간 및 반마인의 경우 리빙엣지 미장착시 보정치
공격 보정치 = (장착자 LV - 80) * 2.25
명중 보정치 = (장착자 LV - 80) * 1.75
방어 보정치 = (장착자 LV - 80) * 2.75
회피 보정치 = (장착자 LV - 80) * 1.75
마법위력 보정치 = (장착자 LV - 80) * 2.25
마법효과 보정치 = (장착자 LV - 80) * 1.75
총공격 보정치 = (장착자 LV - 80) * 1.75
총명중 보정치 = (장착자 LV - 80) * 2.25
[1]인간 및 반마인 스텟 계산
;HP
MAXBASE:ARG:HP = (LOCAL+LOCAL:1*2+LOCAL:4*7+5)*(100+LOCAL*3)/100
SIF CFLAG:ARG:PTフラグ == 0 && ! CFLAG:ARG:ボスフラグ
MAXBASE:ARG:HP = (LOCAL*3+LOCAL:1*2+LOCAL:4*9/2+5)*(100+LOCAL*3)/100
SIF CFLAG:ARG:ボスフラグ
MAXBASE:ARG:HP *= 4+(CFLAG:ARG:ボスフラグ)
SIF CFLAG:ARG:PTフラグ == 0 && FLAG:전투난이도 > 3
TIMES MAXBASE:ARG:HP , 1.50
IF HAVE_SKILL(ARG,[[스킬:무도의마음가짐]]) > 0
TIMES MAXBASE:ARG:HP,1.60
ELSEIF HAVE_SKILL(ARG,[[스킬:삼할의활천]]) > 0
TIMES MAXBASE:ARG:HP,1.30
ELSEIF HAVE_SKILL(ARG,[[스킬:이할의활천]]) > 0
TIMES MAXBASE:ARG:HP,1.20
ELSEIF HAVE_SKILL(ARG,[[스킬:일할의활천]]) > 0
TIMES MAXBASE:ARG:HP,1.10
ELSEIF HAVE_SKILL(ARG,[[스킬:네버기브업]]) > 0
TIMES MAXBASE:ARG:HP,1.30
ENDIF
MAXBASE:ARG:HP += CFLAG:ARG:HP보정
;MP
MAXBASE:ARG:MP = 0
SIF TALENT:ARG:이능자 || TALENT:ARG:달인 || TALENT:ARG:페르소나구사자 || TALENT:ARG:데빌시프터 || TALENT:ARG:식노 || TALENT:ARG:악마빙의자 || ABL:ARG:종족 == 36
MAXBASE:ARG:MP = ((LOCAL+LOCAL:2/2+(LOCAL:3*3/2))*2 + 5) * (100+LOCAL)/100
SIF CFLAG:ARG:ボスフラグ
MAXBASE:ARG:MP *= 4+(CFLAG:ARG:ボスフラグ)
IF HAVE_SKILL(ARG,[[스킬:마술의소양]]) > 0
TIMES MAXBASE:ARG:MP,1.60
ELSEIF HAVE_SKILL(ARG,[[스킬:삼할의마맥]]) > 0
TIMES MAXBASE:ARG:MP,1.30
ELSEIF HAVE_SKILL(ARG,[[스킬:이할의마맥]]) > 0
TIMES MAXBASE:ARG:MP,1.20
ELSEIF HAVE_SKILL(ARG,[[스킬:일할의마맥]]) > 0
TIMES MAXBASE:ARG:MP,1.10
ELSEIF HAVE_SKILL(ARG,[[스킬:네버기브업]]) > 0
TIMES MAXBASE:ARG:MP,1.30
ENDIF
MAXBASE:ARG:MP += CFLAG:ARG:MP보정
IF FLAG:인간전투ステ설정 == 2
;공격
BASE:ARG:(GET_BATTLESTATUS(0)) = (LOCAL/2+LOCAL:1*5/2+LOCAL:4) + CFLAG:ARG:공격보정
;명중
BASE:ARG:(GET_BATTLESTATUS(1)) = (LOCAL+LOCAL:5*5/2+LOCAL:6) + CFLAG:ARG:명중보정
;방어
BASE:ARG:(GET_BATTLESTATUS(2)) = (LOCAL+LOCAL:4*3+(LOCAL:1)/2) + CFLAG:ARG:방어보정
;회피
BASE:ARG:(GET_BATTLESTATUS(3)) = (LOCAL+LOCAL:5*5/2+LOCAL:6) + CFLAG:ARG:회피보정
;마법위력
BASE:ARG:(GET_BATTLESTATUS(4)) = (LOCAL/2+LOCAL:3*5/2+LOCAL:2) + CFLAG:ARG:마법위력보정
;마법효과
BASE:ARG:(GET_BATTLESTATUS(5)) = (LOCAL+LOCAL:2*2+LOCAL:6+LOCAL:3/2) + CFLAG:ARG:마법효과보정
ELSE
;공격
BASE:ARG:(GET_BATTLESTATUS(0)) = (LOCAL/2+LOCAL:1+LOCAL:4/2) + CFLAG:ARG:공격보정
;명중
BASE:ARG:(GET_BATTLESTATUS(1)) = (LOCAL+LOCAL:5+LOCAL:6/2) + CFLAG:ARG:명중보정
;방어
BASE:ARG:(GET_BATTLESTATUS(2)) = (LOCAL+LOCAL:4) + CFLAG:ARG:방어보정
;회피
BASE:ARG:(GET_BATTLESTATUS(3)) = (LOCAL+LOCAL:5+LOCAL:6/2) + CFLAG:ARG:회피보정
;마법위력
BASE:ARG:(GET_BATTLESTATUS(4)) = (LOCAL/2+LOCAL:3+LOCAL:2/2) + CFLAG:ARG:마법위력보정
;마법효과
BASE:ARG:(GET_BATTLESTATUS(5)) = (LOCAL+LOCAL:2+LOCAL:6/2) + CFLAG:ARG:마법효과보정
IF FLAG:인간전투ステ설정 == 1
;명중
BASE:ARG:(GET_BATTLESTATUS(1)) = (LOCAL+LOCAL:5*5/2+LOCAL:6) + CFLAG:ARG:명중보정
;마법효과
BASE:ARG:(GET_BATTLESTATUS(5)) = (LOCAL+LOCAL:2*2+LOCAL:6+LOCAL:3/2) + CFLAG:ARG:마법효과보정
ENDIF
ENDIF
;총명중
IF TALENT:ARG:건슬링거 == 1
BASE:ARG:총명중 = (LOCAL+LOCAL:5+LOCAL:6+LOCAL:2) + CFLAG:ARG:총명중보정
ELSE
BASE:ARG:총명중 = (LOCAL+LOCAL:5/2+LOCAL:6/2+LOCAL:2/2) + CFLAG:ARG:총명중보정
ENDIF
;총공격
IF TALENT:ARG:건슬링거 == 1
BASE:ARG:총공격 = (LOCAL + LOCAL:2/2 + LOCAL:5/2) + CFLAG:ARG:총공격보정
ELSE
BASE:ARG:총공격 = (LOCAL/2 + LOCAL:2/4 + LOCAL:5/4) + CFLAG:ARG:총공격보정
ENDIF
;ソフトハーモナイザーで基本能力강화
IF EQUIP:MASTER:하모나이저 && GET_SUMMONER_LV2() > 2 && CFLAG:ARG:PTフラグ > 0
;공격
BASE:ARG:(GET_BATTLESTATUS(0)) += (LOCAL*3/2+LOCAL:1*3/2+LOCAL:4*1/2) * MIN((GET_SUMMONER_LV2()-2)*2,6) * 10 / 100
;명중
BASE:ARG:(GET_BATTLESTATUS(1)) += (LOCAL+LOCAL:5*3/2+LOCAL:6*1/2) * MIN((GET_SUMMONER_LV2()-2)*2,6) * 10 / 100
;방어
BASE:ARG:(GET_BATTLESTATUS(2)) += (LOCAL+LOCAL:4*2+(LOCAL:1)/2) * MIN((GET_SUMMONER_LV2()-2)*2,6) * 10 / 100
;회피
BASE:ARG:(GET_BATTLESTATUS(3)) += (LOCAL+LOCAL:5*3/2+LOCAL:6*1/2) * MIN((GET_SUMMONER_LV2()-2)*2,6) * 10 / 100
;마법위력
BASE:ARG:(GET_BATTLESTATUS(4)) += (LOCAL*3/2+LOCAL:3*3/2+LOCAL:2*1/2) * MIN((GET_SUMMONER_LV2()-2)*2,6) * 10 / 100
;마법효과
BASE:ARG:(GET_BATTLESTATUS(5)) += (LOCAL+LOCAL:2+LOCAL:6/2+LOCAL:3/2) * MIN((GET_SUMMONER_LV2()-2)*2,6) * 10 / 100
ENDIF
;LVが80を超えている場合、장비部分に相当する보정を追加で与える
IF BASE:ARG:LV > 80 && CFLAG:ARG:장비보정변경횟수 > 0 && EQUIP:ARG:검 != [[아이템:리빙・엣지]]
;공격
BASE:ARG:(GET_BATTLESTATUS(0)) += (BASE:ARG:LV - 80) * CFLAG:ARG:1040 / 4
;명중
BASE:ARG:(GET_BATTLESTATUS(1)) += (BASE:ARG:LV - 80) * CFLAG:ARG:1041 / 4
;방어
BASE:ARG:(GET_BATTLESTATUS(2)) += (BASE:ARG:LV - 80) * CFLAG:ARG:1042 / 4
;회피
BASE:ARG:(GET_BATTLESTATUS(3)) += (BASE:ARG:LV - 80) * CFLAG:ARG:1043 / 4
;마법위력
BASE:ARG:(GET_BATTLESTATUS(4)) += (BASE:ARG:LV - 80) * CFLAG:ARG:1044 / 4
;마법효과
BASE:ARG:(GET_BATTLESTATUS(5)) += (BASE:ARG:LV - 80) * CFLAG:ARG:1045 / 4
;총공격
BASE:ARG:총공격 += (BASE:ARG:LV - 80) * CFLAG:ARG:1046 / 4
;총명중
BASE:ARG:총명중 += (BASE:ARG:LV - 80) * CFLAG:ARG:1047 / 4
ELSEIF BASE:ARG:LV > 80 && EQUIP:ARG:검 != [[아이템:리빙・엣지]]
;공격
BASE:ARG:(GET_BATTLESTATUS(0)) += (BASE:ARG:LV - 80) * 9 / 4
;명중
BASE:ARG:(GET_BATTLESTATUS(1)) += (BASE:ARG:LV - 80) * 7 / 4
;방어
BASE:ARG:(GET_BATTLESTATUS(2)) += (BASE:ARG:LV - 80) * 11 / 4
;회피
BASE:ARG:(GET_BATTLESTATUS(3)) += (BASE:ARG:LV - 80) * 7 / 4
;마법위력
BASE:ARG:(GET_BATTLESTATUS(4)) += (BASE:ARG:LV - 80) * 9 / 4
;마법효과
BASE:ARG:(GET_BATTLESTATUS(5)) +=(BASE:ARG:LV - 80) * 7 / 4
;총명중
BASE:ARG:총명중 += (BASE:ARG:LV - 80) * 7 / 4
;총공격
BASE:ARG:총공격 += (BASE:ARG:LV - 80) * 9 / 4
ENDIF
[2]그 외 종족 스텟 계산
;HP
MAXBASE:ARG:HP = (LOCAL+LOCAL:1*2+LOCAL:4*7+5)*(100+LOCAL*3)/100
SIF CFLAG:ARG:PTフラグ == 0 && ! CFLAG:ARG:ボスフラグ
MAXBASE:ARG:HP = (LOCAL*3+LOCAL:1*2+LOCAL:4*9/2+5)*(100+LOCAL*3)/100
SIF CFLAG:ARG:ボスフラグ
MAXBASE:ARG:HP *= 5+CFLAG:ARG:ボスフラグ
SIF CFLAG:ARG:PTフラグ == 0 && FLAG:전투난이도 > 3
TIMES MAXBASE:ARG:HP , 1.50
IF HAVE_SKILL(ARG,[[스킬:무도의마음가짐]]) > 0
TIMES MAXBASE:ARG:HP,1.60
ELSEIF HAVE_SKILL(ARG,[[스킬:삼할의활천]]) > 0
TIMES MAXBASE:ARG:HP,1.30
ELSEIF HAVE_SKILL(ARG,[[스킬:이할의활천]]) > 0
TIMES MAXBASE:ARG:HP,1.20
ELSEIF HAVE_SKILL(ARG,[[스킬:일할의활천]]) > 0
TIMES MAXBASE:ARG:HP,1.10
ELSEIF HAVE_SKILL(ARG,[[스킬:네버기브업]]) > 0
TIMES MAXBASE:ARG:HP,1.30
ENDIF
MAXBASE:ARG:HP += CFLAG:ARG:HP보정
;MP
MAXBASE:ARG:MP = ((LOCAL+LOCAL:2/2+(LOCAL:3*3/2))*2 + 5) * (100+LOCAL)/100
SIF CFLAG:ARG:ボスフラグ
MAXBASE:ARG:MP *= 5+CFLAG:ARG:ボスフラグ
IF HAVE_SKILL(ARG,[[스킬:마술의소양]]) > 0
TIMES MAXBASE:ARG:MP,1.60
ELSEIF HAVE_SKILL(ARG,[[스킬:삼할의마맥]]) > 0
TIMES MAXBASE:ARG:MP,1.30
ELSEIF HAVE_SKILL(ARG,[[스킬:이할의마맥]]) > 0
TIMES MAXBASE:ARG:MP,1.20
ELSEIF HAVE_SKILL(ARG,[[스킬:일할의마맥]]) > 0
TIMES MAXBASE:ARG:MP,1.10
ELSEIF HAVE_SKILL(ARG,[[스킬:네버기브업]]) > 0
TIMES MAXBASE:ARG:MP,1.30
ENDIF
MAXBASE:ARG:MP += CFLAG:ARG:MP보정
;공격
BASE:ARG:(GET_BATTLESTATUS(0)) = (LOCAL*2+LOCAL:1*5/2+LOCAL:4) + CFLAG:ARG:공격보정
;명중
BASE:ARG:(GET_BATTLESTATUS(1)) = (LOCAL*2+LOCAL:5*5/2+LOCAL:6) + CFLAG:ARG:명중보정
;방어
BASE:ARG:(GET_BATTLESTATUS(2)) = (LOCAL*2+LOCAL:4*3+(LOCAL:1)/2) + CFLAG:ARG:방어보정
;회피
BASE:ARG:(GET_BATTLESTATUS(3)) = (LOCAL*2+LOCAL:5*5/2+LOCAL:6) + CFLAG:ARG:회피보정
;마법위력
BASE:ARG:(GET_BATTLESTATUS(4)) = (LOCAL*2+LOCAL:3*5/2+LOCAL:2) + CFLAG:ARG:마법위력보정
;마법효과
BASE:ARG:(GET_BATTLESTATUS(5)) = (LOCAL*2+LOCAL:2*2+LOCAL:6+LOCAL:3/2) + CFLAG:ARG:마법효과보정
;장비지식스킬持ちならここで処理
IF SKILL_EQUIPTHEORY_IS_HAVE_SKILL(ARG)
;총명중
IF TALENT:ARG:건슬링거 == 1
BASE:ARG:총명중 = (LOCAL+LOCAL:5+LOCAL:6+LOCAL:2) + CFLAG:ARG:총명중보정
ELSE
BASE:ARG:총명중 = (LOCAL+LOCAL:5/2+LOCAL:6/2+LOCAL:2/2) + CFLAG:ARG:총명중보정
ENDIF
;총공격
IF TALENT:ARG:건슬링거 == 1
BASE:ARG:총공격 = (LOCAL + LOCAL:2/2 + LOCAL:5/2) + CFLAG:ARG:총공격보정
ELSE
BASE:ARG:총공격 = (LOCAL/2 + LOCAL:2/4 + LOCAL:5/4) + CFLAG:ARG:총공격보정
ENDIF
;LVが80を超えている場合、장비部分に相当する보정を追加で与える
IF BASE:ARG:LV > 80
;장비効果設定が通常の場合影響あり
IF BATTLE_SETTING_IS_EQUIPTHEORY() == 0
;공격
BASE:ARG:(GET_BATTLESTATUS(0)) += (BASE:ARG:LV - 80) * 9 / 4
;명중
BASE:ARG:(GET_BATTLESTATUS(1)) += (BASE:ARG:LV - 80) * 7 / 4
;방어
BASE:ARG:(GET_BATTLESTATUS(2)) += (BASE:ARG:LV - 80) * 11 / 4
;회피
BASE:ARG:(GET_BATTLESTATUS(3)) += (BASE:ARG:LV - 80) * 7 / 4
;마법위력
BASE:ARG:(GET_BATTLESTATUS(4)) += (BASE:ARG:LV - 80) * 9 / 4
;마법효과
BASE:ARG:(GET_BATTLESTATUS(5)) +=(BASE:ARG:LV - 80) * 7 / 4
ENDIF
;총명중
BASE:ARG:총명중 += (BASE:ARG:LV - 80) * 7 / 4
;총공격
BASE:ARG:총공격 += (BASE:ARG:LV - 80) * 9 / 4
ENDIF