출처: 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