# 딜배율 / 룬밸류 계산기 — 마비노기 모바일 시즌2 게임 「마비노기 모바일」 시즌2 의 딜 배율과 룬 값어치를 계산하는 비공식 팬 사이트입니다. 화면은 브라우저에서 계산하지만, 같은 계산을 주소로도 부를 수 있습니다. 기준 주소: https://set.mobimml.com ## ★ 먼저 — 시험 호출을 하지 마세요 **한 경로당 한 번만 부르세요. 그 한 번에 사용자의 전체 세팅을 담으세요.** 도구에 따라 같은 경로의 응답을 캐시해 두 번째 호출부터 첫 결과를 그대로 돌려줍니다. 물음표 뒤가 달라도 소용없습니다. 그래서 「잘 되나」 확인용으로 작은 JSON 을 먼저 보내면, 그 뒤 진짜 세팅을 보내도 **처음 그 작은 결과만 계속 돌아옵니다.** - 스크린샷을 다 읽고 **완성된 JSON** 을 만든 다음에 `https://set.mobimml.com/api/calc` 를 부르세요. - 룬 교체는 바꾸고 싶은 룬을 정한 뒤 `https://set.mobimml.com/api/swap` 을 **한 번만** 부르세요. - 결과가 이상하면(룬이 0개로 나온다든지) 다시 부르지 말고, 응답의 `읽은값` 을 사용자에게 보여 주고 무엇이 빠졌는지 물으세요. 응답 안의 `다음` 에 그 뒤 부를 전체 주소가 들어 있습니다. 주소를 직접 만들지 말고 거기 있는 것을 쓰세요. ## 이 문서를 읽는 AI 에게 사용자가 무엇을 주느냐에 따라 둘 중 하나입니다. **(가) 공유 주소(`/s/…`)를 줬다면** — 그 주소를 `Accept: application/json` 으로 부르거나 뒤에 `?format=json` 을 붙이세요. 그 세팅의 계산 결과가 JSON 으로 옵니다. 브라우저로 열면 사람이 보는 화면이 되고, 이렇게 부르면 값이 그대로 옵니다. ``` curl -s -H 'accept: application/json' https://set.mobimml.com/s/fX5YlMVP ``` 값을 바꿔 보려면 `GET /api/setting/` 로 `세팅` 객체를 받아 원하는 값을 고친 뒤 `POST /api/calc` 의 `setting` 에 담아 보내세요. 바뀐 세팅의 새 주소가 결과와 함께 돌아옵니다. 사용자에게는 그 주소를 건네세요. **(나) 게임 스크린샷을 줬다면** — 아래 세 단계를 따르세요. 게임 화면과 딜미터기 화면을 같이 줬다면 겹치는 항목은 게임 화면 쪽을 씁니다(아래 「읽는 규칙」 첫 줄). 1. 스크린샷에서 아래 형식대로 JSON 을 뽑습니다. 2. 그 JSON 을 문자열로 만들어 `POST /api/calc` 의 `text` 에 담아 보냅니다. 3. 돌아온 결과를 설명하고, 응답의 `주소` 를 **그대로** 사용자에게 건넵니다. 그 주소를 열면 계산에 쓴 세팅이 화면에 그대로 펼쳐집니다. 사용자가 직접 값을 고쳐 볼 수 있으니 반드시 함께 주세요. 응답의 `읽은값.건너뜀` 에 못 읽은 룬 이름이나 태그가 적혀 나옵니다. 그것을 사용자에게 알려 주고, 이름을 잘못 읽은 것 같으면 고쳐서 한 번 더 부르세요. ## 1단계 — 스크린샷에서 뽑을 것 없는 화면은 빈 배열이나 null 로 두세요. **추측하지 마세요.** 못 읽은 값은 비워 두는 편이 낫습니다. ```json { "cls": "직업명 또는 null", "stats_source": "내정보 또는 딜미터기", "stats": { "치명타": 0, "연타 강화": 0, "강타 강화": 0, "콤보 강화": 0, "추가타": 0, "스킬 위력": 0, "빠른 스킬": 0, "브레이크": 0, "광역 강화": 0, "궁극기": 0, "마도 저항": 0, "공격력": 0 }, "runes": ["장비를 못 채웠을 때만 룬 이름. 채웠으면 []"], "장비": { "무기": [{ "부위": "", "룬": "", "강화": 0, "스탯": {}, "인챈트": [] }], "장신구": [{ "부위": "", "룬": "", "강화": 0, "초월": 0, "스탯": {}, "인챈트": [] }], "엠블럼": [{ "룬": "", "강화": 0, "스탯": {}, "인챈트": [] }], "방어구": [{ "부위": "", "룬": "", "강화": 0, "스탯": {}, "인챈트": [] }], "펫": { "이름": "", "레벨": 0, "스탯": {} }, "누락": [], "룬합계": {} }, "세공": { "연타": { "댐증": 0, "쿨감": 0 } }, "보석": { "온전한 스타프리즘": 0, "순수한 헬리오도르": 0 }, "딜비중": { "1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "궁": 0, "기본": 0 }, "기록": { "전투시간초": 0, "총대미지억": 0, "DPS만": 0, "발동률": { "치명타": 0, "추가타": 0, "강타": 0, "연타": 0 }, "각성": { "비중": 0, "횟수": 0, "지속초": 0 }, "브레이크": { "비중": 0, "횟수": 0, "지속초": 0 }, "스킬": [{ "이름": "", "비중": 0, "타수": 0, "최대": "" }], "버프": [{ "이름": "", "가동률": 0, "최대": 0, "평균": 0 }], "구간": { "각성": [[0, 0]], "브레이크": [[0, 0]] } } } ``` 읽는 규칙 - ★ **같은 항목이 게임 화면과 딜미터기 양쪽에 다 있으면 게임 화면을 씁니다.** 게임 화면(내 정보·아이템 상세창·기억 중인 룬)이 원래 값이고, 딜미터기 값은 전투 중 버프가 섞인 값입니다. 두 값이 서로 달라도 정상입니다. 딜미터기는 게임 화면에 없는 것(딜 비중·기록 탭·전투 중 발동률)에만 씁니다. 단, 게임 스크린샷이 없는 경우에는 딜미터기의 데이터로 기입합니다. - **능력치**는 위 규칙대로 게임 「내 정보」 화면을 먼저 씁니다. 없으면 딜미터기 하단 스탯 목록의 정수 값을 씁니다. 전투력·생활력·매력, 이동 속도·경험치 같은 % 항목, 생활 스킬 목록은 읽지 마세요. - **마도 저항**과 **공격력**은 꼭 `stats` 에 넣으세요. 어비스 단계 배율과 한 방 수치 계산에 쓰입니다. - **룬 이름**은 「~의 각인」·「(+14)」·별·부위·속성 태그를 떼고 이름만 씁니다. 룬은 방어구 5 · 무기 1 · 엠블럼 1 · 장신구 3 으로 나뉘니 네 분류를 각각 훑으세요. 잠식·오염·밤의 축복·용의 문장 같은 상태 이름은 룬이 아닙니다. 게임 툴팁 이름과 각인 이름이 다른 룬이 있습니다(「작열」→「작열하는」, 「치명적+」→「치명적인+」). 둘 중 무엇으로 적어도 잡힙니다. 이름 목록은 에 있습니다. 무기·엠블럼·방어구는 모든 직업이 같고 장신구(각인)만 직업마다 다르니, 직업을 먼저 읽고 그 직업 묶음만 보세요. 주소를 부를 수 있는 도구라면 `GET /api/runes?cls=직업명` 도 같은 목록을 줍니다. - **인챈트**는 각인과 다른 줄입니다. **퍼센트가 붙은 줄만** 옮기고 「치명타 +50」 같은 고정 수치 줄은 빼세요. 고정 수치는 이미 능력치에 합산돼 있어 두 번 세어집니다. - **초월**은 장신구에만 있습니다. 아이콘 발광이 주황만이면 0, 초록+주황이면 1, 초록+노랑이면 2. 헷갈리면 null. - **세공(보석) 태그**는 딜미터기 장비 화면의 「#연타 댐증 18」 같은 칩입니다. 태그 이름은 칩 그대로 옮기세요. - **보석**은 같은 줄의 장착 보석 이름과 개수(「온전한 스타프리즘 20」)입니다. 이름은 화면 그대로. 보석 하나에 세공 옵션이 최대 셋이고 칩은 그 합이므로, 보석 개수는 「세공 칸을 몇 개 썼는지」를 재는 데 쓰입니다. 줄이 없으면 빼세요. - **딜비중**은 딜미터기의 **스킬별 딜 비중** 화면입니다. 스킬 바 슬롯 번호(아랫줄 1·2·3, 윗줄 4·5·6, 6번이 궁극기) 순으로 %를 적고, 「기본 공격」으로 따로 잡히는 몫은 `기본` 에 넣으세요. 슬롯 번호 대신 스킬 이름을 키로 써도 됩니다. 어느 슬롯이 어느 스킬인지는 `GET /api/skills?cls=직업명` 이 알려 줍니다. 이 값 하나로 스킬 종류별·세공 태그별 비중이 전부 계산됩니다. 화면에 없으면 통째로 빼세요. 값을 지어내지 마세요. - **기록**은 딜미터기의 **기록 탭**(전투 로그) 화면입니다. 그 화면이 없으면 `기록` 절을 **통째로 빼세요**. 항목 하나라도 못 읽었으면 그 항목만 빼고, 값을 지어내지 마세요. `기록` 을 적었으면 `딜비중` 은 안 적어도 됩니다 — 스킬 표에서 계산기가 직접 나눕니다. 각 항목이 화면 어디에서 오는지: - `전투시간초` — 요약의 「실제 전투 시간」(01:55 → 115). `총대미지억` — 「누적 총 대미지」(31.79억 → 31.79). `DPS만` — 「DPS」(2774.6만 → 2774.6). - `발동률` — 요약의 치명타·추가타·강타·연타 발동률 %. 연타·강타는 실연타율·실강타율 칸에 들어가고, 치명타·추가타는 계산기의 확률과 대조하는 데만 씁니다. - `각성` — 「각성 (33.1%) 10.52억 · 2회 · 40초」 줄. 괄호 안이 `비중`, 횟수와 초가 `횟수`·`지속초`. 2회 이상이면 각성 주기를 계산합니다. - `브레이크` — 「브레이크 (22.3%) 7.08억 · 1회 · 11초」 줄. 같은 식. 횟수와 지속으로 브레이크 주기·무방비 지속을 계산합니다. - `스킬` — 스킬 분석 표의 **맨 위 단계 줄만** 옮깁니다(「└」로 들여쓴 하위 줄은 빼세요). `이름` 은 표에 적힌 그대로(「프론트 스텝 (2-C)」처럼 꼬리가 붙어 있어도 그대로), `비중` 은 기여도 %. 같은 이름이 여러 줄이면 합치지 말고 **그대로 여러 개** 적으세요 — 합치는 것은 계산기가 합니다. 「평타」「기본 공격」 줄도 그대로 적으세요. `타수` 는 스킬 분석 표의 타수 열(맨 위 단계 줄의 값). 전부 더해 전투 시간으로 나눈 초당 타수가 됩니다. `최대` 는 최대 한 방 열 — 「4164.8만」처럼 단위 붙은 문자열 그대로. 둘 다 열이 없으면 빼세요. 스킬 분석 표에 패시브 이름(댄서의 「앵콜」「꽃과 나비」처럼)이 섞여 나오면 그대로 적으세요 — 계산기가 패시브로 잡습니다. 그래도 표에 없는 이름은 계산기가 응답의 `읽은값.건너뜀` 에 적어 돌려줍니다. - `버프` — 적용된 버프 표에서 **가동률이 0 이 아닌 줄만**. 같은 이름이 여러 줄이면(템포처럼 단계별로 갈린 것) 합치거나 고르지 말고 그대로 여러 개 적으세요 — 계산기가 가장 높은 줄을 씁니다. `이름` 은 표 그대로(「(전설)계승자」「(전사)전투의 함성」처럼 접두가 붙어 있어도 그대로), `가동률` 은 %. `최대`·`평균` 은 중첩 열이 있으면 적고 없으면 빼세요. 직업 입력의 가동률 칸(댄서의 템포 등)과 룬의 조건 항목에 맞는 것만 계산에 들어갑니다 — 중첩 룬은 가동률 × 평균 ÷ 최대를 실측 비율로 씁니다. 나머지는 읽은 개수만 알려 줍니다. 「(전사)」「(힐러)」처럼 직업이 접두인 버프는 파티원 직업으로 읽어 파티원 칸(가동률 높은 순 최대 3명)에 넣습니다. - `구간` — 실시간 차트의 파란 띠(각성)·초록 띠(브레이크)의 가로축 초. `[[시작초, 끝초], …]` 로 띠마다 하나씩. 눈금으로 어림해도 되고 못 읽으면 `구간` 을 빼세요. 시간축 판에만 쓰이고 저장엔 안 실립니다. ## 2단계 — 계산 부르기 ### 먼저 읽을 것 — 주소에 한글을 그대로 넣으면 안 됩니다 **주소에 한글이 인코딩 없이 들어가면 서버 앞단이 본문 없는 400 으로 거부합니다.** 그래서 `https://set.mobimml.com/api/calc?text={"cls":"댄서",...}` 같은 호출은 반드시 실패합니다. 중괄호·따옴표는 괜찮고 **한글만** 문제입니다. **POST 를 못 쓰는 도구는 `text64=` 를 쓰세요.** JSON 을 UTF-8 바이트로 만들어 base64url (`+`→`-`, `/`→`_`, 끝의 `=` 제거)로 접은 값이라 영숫자만 남아 절대 깨지지 않습니다. 길이도 퍼센트 인코딩의 절반 이하입니다. 바로 눌러 볼 수 있는 예시입니다. 이 주소는 그대로 동작합니다. ``` https://set.mobimml.com/api/calc?text64=eyJjbHMiOiLrjITshJwiLCJzdGF0cyI6eyLsuZjrqoXtg4AiOjk2OTksIuyXsO2DgCDqsJXtmZQiOjY4MTEsIuyKpO2CrCDsnITroKUiOjM5MDcsIuy2lOqwgO2DgCI6MzI1Nywi6rO16rKp66ClIjo3MjUwNCwi66eI64-EIOyggO2VrSI6NzIxNH0sInJ1bmVzIjpbIuyjveydjCIsIuqzhOyKueyekCIsIuyYpO2MlCDshLHrsLAiLCLrrLTrhIjsp4Qg6rK96rOEIiwi7J6g65OgIOuVhSIsIuyyqyDrsojsp7gg7ISc7JW9Iiwi7JiB7JuQ7ZWcIOuwpCJdfQ ``` (위 값은 `{"cls":"댄서","stats":{"치명타":9699,"연타 강화":6811,"스킬 위력":3907,"추가타":3257,"공격력":72504,"마도 저항":7214},"runes":["죽음","계승자","오팔 성배","무너진 경계","잠든 땅","첫 번째 서약","영원한 밤"]}` 를 접은 것입니다.) **물음표 뒤를 무시하고 캐시하는 도구라면 값을 경로에 담으세요.** 요청마다 주소가 달라져 캐시에 걸리지 않습니다. 같은 답을 돌려주는데, 서로 다른 세팅을 보냈는데 같은 결과가 돌아온다면 이 형태로 바꾸세요. ``` https://set.mobimml.com/api/calc/<값> https://set.mobimml.com/api/swap/<값>/<뺄 룬 이름을 base64url> ``` `<값>` 은 공유 주소 id · 세팅 문자열 · base64url JSON 아무거나 됩니다. 예를 들어 잠든 땅을 빼고 후보를 보려면 `<뺄 룬 이름을 base64url>` 자리에 `7J6g65OgIOuVhQ` 를 넣습니다. 받는 값은 넷 다 GET 으로 됩니다. `q=` 는 `text64=` 의 다른 이름입니다. ``` https://set.mobimml.com/api/calc?text64= ← 권장 https://set.mobimml.com/api/calc?text= https://set.mobimml.com/api/calc?s=<공유 주소의 id 또는 세팅 문자열> https://set.mobimml.com/api/calc?setting=<세팅 객체를 퍼센트 인코딩> ``` 400 이 나면 이 둘 중 하나입니다. - **본문이 비어 있으면** 주소에 한글이 인코딩 없이 들어간 것입니다. `text64=` 로 바꾸세요. - **본문에 `error` 가 있으면** 그 문구가 원인입니다. 「읽을 수 있는 값이 없습니다」는 `stats` 가 비었다는 뜻입니다. `{"cls":"댄서"}` 처럼 직업만 보내면 계산할 것이 없어 400 입니다. 주소가 길어 부담되면 사용자에게 사이트에 붙여넣고 **링크 복사**를 눌러 `/s/…` 주소를 달라고 하세요. 그 주소는 짧고 GET 으로 바로 읽힙니다. ### POST /api/calc 본문(JSON) 에 아래 넷 중 하나를 담습니다. GET 이면 같은 이름의 물음표 뒤 값으로 넣습니다. | 키 | 값 | |---|---| | `text` | 위에서 뽑은 JSON 을 문자열로. 코드블록이나 앞뒤 설명이 섞여 있어도 됩니다. | | `code` | 세팅 문자열(`#s=` 뒤의 값) | | `id` | 공유 주소의 짧은 id | | `setting` | 사이트가 쓰는 세팅 객체 그대로 (`GET /api/setting/` 의 `세팅`) | 둘 이상을 함께 보내면 `id` → `code` → `setting` → `text` 순으로 먼저 잡히는 하나만 씁니다. `장비` 의 `스탯`·`강화`·`펫` 은 화면에서 각인 칸을 채우는 데 쓰고, 이 API 의 계산에는 룬 이름·인챈트·초월만 씁니다. `세공` 태그는 댐증·쿨감만으로는 계산에 들어가지 않습니다 — 그 태그 스킬의 딜 비중이 있어야 곱해집니다. 딜 비중은 `딜비중` 하나로 넣는 것이 가장 쉽습니다(`profile` 로 직접 넣을 때는 `skillShareOn: 1` 과 `sk_1`~`sk_6`·`sk_basic`, 그리고 딜을 내는 패시브가 있는 직업이면 `sk_p<번호>` — 번호와 이름은 `/api/skills?cls=직업명` 의 `패시브` 가 알려 줍니다). 그러면 서버가 스킬 종류별 비중(`shareUlt` 등)과 태그별 비중(`tag_<태그>_share`)을 스킬표에서 나눕니다. 두 군데에 따로 넣을 필요가 없습니다. 스킬표의 세공 태그는 **각인이 없을 때** 값입니다. 장신구 각인을 끼면 스킬이 바뀌면서 태그도 달라지는데, 어느 룬이 어느 스킬을 바꾸는지는 계산기가 알고 있어 **룬 이름만 넣으면 태그가 알아서 바뀝니다**. 룬을 빼면 원래 태그로 돌아옵니다. 아직 바뀐 태그를 모아 두지 못한 룬이 있습니다. 그런 룬을 낀 상태에서 게임 스킬 카드의 태그가 다르면 `profile` 의 `skillTagOv` 로 덮어쓰세요 — 모양은 `{"댄서": {"sk_5": ["강타","연타","이동"], "sk_p2": []}}` 로 **직업별**이고, 빈 배열은 「태그 없음」입니다. 덮어쓴 스킬만 바뀌고 나머지는 계산기 값을 그대로 씁니다. 스킬 종류(궁극기·브레이크 등)는 각인으로 바뀌지 않아 덮어쓸 수 없습니다. 딜 비중은 **그 옵션(세공 댐증·「~스킬로 주는 피해」 룬)이 없을 때**의 분포를 넣습니다. 계산이 `1 + 옵션 × 비중` 이라 그렇습니다. 그 룬·세공을 낀 채로 잰 딜미터기 비중을 그대로 넣으면 두 번 세어져 결과가 부풀어 오릅니다 (옵션 30%·비중 40% 면 1.7%, 옵션 50%·비중 50% 면 4% 과대). 낀 채로 잰 값밖에 없으면 `플레인 = 표시 ÷ (1 + 옵션 × (1 − 표시))` 로 되돌려 넣으세요. 사용자에게도 이 점을 알려 주세요. 비중을 모르면 그대로 두고, 응답의 `읽은값.건너뜀` 에 적힌 안내를 사용자에게 전하세요. ``` curl -s https://set.mobimml.com/api/calc \ -H 'content-type: application/json' \ -d '{"text":"{\"cls\":\"댄서\",\"stats\":{\"치명타\":9319,\"연타 강화\":8200,\"공격력\":61234}}"}' ``` 응답 ```json { "ok": true, "주소": "https://set.mobimml.com/s/fX5YlMVP", "id": "fX5YlMVP", "code": "1-…", "결과": { "직업": "댄서", "딜배율": 54.712, "기대_한방": 3350261, "최대_한방": 13486159, "2분_예상누적": 2211172189, "항": { "공격력항": 1.598, "피해항": 1.804, "…": 0 }, "룬": [{ "name": "영원한 밤", "value": 0.35886 }], "경고": [] }, "읽은값": { "요약": "능력치 4개 · 룬 4개 · 마도 저항 8100 · 공격력 61234", "건너뜀": [] } } ``` `딜배율` 은 계수 100% 스킬 한 방의 배수입니다. `기대_한방` 은 배율 × 공격력, `2분_예상누적` 은 거기에 120초와 초당 계수를 곱한 값입니다. `룬[].value` 는 그 룬을 빼면 딜이 얼마나 떨어지는지(= 지금 세팅에서의 값어치)입니다. ### 룬을 바꿔 볼 때 — https://set.mobimml.com/api/swap 「이 룬 말고 다른 걸 껴 보고 싶다」는 물음은 이 주소로 답합니다. 그 자리에 넣을 수 있는 룬을 전부 계산해 줄 세워 줍니다. 입력은 계산과 똑같고(`text64` · `text` · `s` · `id` · `setting`), 여기에 다음을 더합니다. | 키 | 값 | |---|---| | `out` | 뺄 룬 이름(퍼센트 인코딩). 이것만 줘도 부위는 알아서 잡습니다 | | `cat` | 빈 자리를 채울 때의 부위 — 방어구 · 무기 · 엠블럼 · 장신구 | | `owned` | 가진 룬 이름을 쉼표로. 주면 그 안에서만 고릅니다 | | `limit` | 몇 개까지 볼지 (기본 20, 최대 60) | ``` https://set.mobimml.com/api/swap?text64=&out=%EC%9E%A0%EB%93%A0%20%EB%95%85&limit=10 https://set.mobimml.com/api/swap?s=<공유 주소 id>&cat=%EB%B0%A9%EC%96%B4%EA%B5%AC ``` 돌아오는 값에서 **`지금대비` 가 양수인 후보만 실제로 이득**입니다. 지금 낀 룬도 목록에 0% 로 함께 나오니 어디쯤인지 바로 보입니다. `값어치` 는 그 자리를 비웠을 때 대비 오르는 폭입니다. 사용자가 가진 룬을 모르면 전부 계산해 보여 주되, **가지고 있지 않을 수 있다는 점을 반드시 알리고** 게임의 「기억 중인 룬」 화면을 받아 `owned=` 로 좁히자고 제안하세요. ### 그 밖의 주소 - `https://set.mobimml.com/s/` (`Accept: application/json` 또는 `?format=json`) — 공유 주소를 그대로 읽는다 - `https://set.mobimml.com/api/calc?s=` — 같은 계산을 주소만으로 - `https://set.mobimml.com/api/setting/` — 저장된 세팅 원문 - `https://set.mobimml.com/api/runes?cls=…` — 그 직업이 낄 수 있는 룬 이름을 부위별로. **직업별 전체 주소는 아래 표에 그대로 있습니다.** - `https://set.mobimml.com/api/skills?cls=…` — 그 직업의 스킬표(슬롯·이름·태그·종류)와 딜을 내는 패시브(`패시브` 의 키·이름·태그). 룬 주소의 `runes` 를 `skills` 로 바꾸면 됩니다. 주소를 조립하지 못하는 도구를 위해 직업마다 완전한 주소를 적어 둡니다. 그대로 복사해 부르세요. | 직업 | 주소 | |---|---| | 전사 | `https://set.mobimml.com/api/runes?cls=%EC%A0%84%EC%82%AC` | | 대검전사 | `https://set.mobimml.com/api/runes?cls=%EB%8C%80%EA%B2%80%EC%A0%84%EC%82%AC` | | 검술사 | `https://set.mobimml.com/api/runes?cls=%EA%B2%80%EC%88%A0%EC%82%AC` | | 기사 | `https://set.mobimml.com/api/runes?cls=%EA%B8%B0%EC%82%AC` | | 궁수 | `https://set.mobimml.com/api/runes?cls=%EA%B6%81%EC%88%98` | | 석궁사수 | `https://set.mobimml.com/api/runes?cls=%EC%84%9D%EA%B6%81%EC%82%AC%EC%88%98` | | 장궁병 | `https://set.mobimml.com/api/runes?cls=%EC%9E%A5%EA%B6%81%EB%B3%91` | | 마법사 | `https://set.mobimml.com/api/runes?cls=%EB%A7%88%EB%B2%95%EC%82%AC` | | 화염술사 | `https://set.mobimml.com/api/runes?cls=%ED%99%94%EC%97%BC%EC%88%A0%EC%82%AC` | | 빙결술사 | `https://set.mobimml.com/api/runes?cls=%EB%B9%99%EA%B2%B0%EC%88%A0%EC%82%AC` | | 전격술사 | `https://set.mobimml.com/api/runes?cls=%EC%A0%84%EA%B2%A9%EC%88%A0%EC%82%AC` | | 힐러 | `https://set.mobimml.com/api/runes?cls=%ED%9E%90%EB%9F%AC` | | 사제 | `https://set.mobimml.com/api/runes?cls=%EC%82%AC%EC%A0%9C` | | 수도사 | `https://set.mobimml.com/api/runes?cls=%EC%88%98%EB%8F%84%EC%82%AC` | | 암흑술사 | `https://set.mobimml.com/api/runes?cls=%EC%95%94%ED%9D%91%EC%88%A0%EC%82%AC` | | 음유시인 | `https://set.mobimml.com/api/runes?cls=%EC%9D%8C%EC%9C%A0%EC%8B%9C%EC%9D%B8` | | 댄서 | `https://set.mobimml.com/api/runes?cls=%EB%8C%84%EC%84%9C` | | 악사 | `https://set.mobimml.com/api/runes?cls=%EC%95%85%EC%82%AC` | | 도적 | `https://set.mobimml.com/api/runes?cls=%EB%8F%84%EC%A0%81` | | 격투가 | `https://set.mobimml.com/api/runes?cls=%EA%B2%A9%ED%88%AC%EA%B0%80` | | 듀얼블레이드 | `https://set.mobimml.com/api/runes?cls=%EB%93%80%EC%96%BC%EB%B8%94%EB%A0%88%EC%9D%B4%EB%93%9C` | - `https://set.mobimml.com/api/swap?…` — 룬 교체 후보를 줄 세운다 (위 절) - `POST https://set.mobimml.com/api/share` — 계산 없이 공유 주소만 발급 (`code` · `id` · `setting`) 같은 세팅은 늘 같은 주소가 나옵니다. 주소는 지워지지 않습니다. ## 3단계 — 답할 때 - 배율만 말하지 말고 **어디서 오는지**를 같이 짚어 주세요. `항` 을 보면 공격력·피해·치명타 중 무엇이 모자란지 보입니다. - `룬` 목록의 값어치가 낮은 룬이 바꿀 후보입니다. 무엇으로 바꿀지는 `/api/swap` 이 답합니다. - `경고` 에 장착 불가 구성이나 계산에서 빠진 항목이 적혀 나옵니다. 있으면 반드시 전하세요. - 마지막에 `주소` 를 주세요. 사용자가 열어 값을 고치고 다른 세팅과 비교할 수 있습니다. ## 딜 모델 요약 총 딜 = 공격력항 × 피해항 × 강화항 × 치명타항 × 추가타항 × 브레이크항 × 속도항 × 시즌항 × 스킬 한정항 × 최종뎀증 × 마도 저항항 - 능력치 환산: 연타·강타·스킬위력·광역 ÷8500, 콤보 ÷17500, 궁극기 ÷8750, 추가타확률 ÷13000, 빠른스킬 ÷10000, 브레이크 ÷5250 - 치명타 확률 = 0.5 − 1/(2 + 치명/1000), 치명타 피해 = 1.4 + 치명/5000 - 최종 피해는 출처끼리 전부 곱합니다. 장신구 초월은 아이템별로 1초월 ×1.015, 2초월 ×1.03. - 「~스킬로 주는 피해」와 세공 태그 댐증은 피해 합이 아니라 스킬 한정항에 따로 곱합니다. - 조건부 룬은 조건마다 기대 가동률로 풀고, 총합은 밤의 축복 주기로 시간 가중한 평균입니다. ## 주의 - 계산 기준값과 비중은 **커뮤니티가 실측으로 추정한 값**이며 공식 수치가 아닙니다. 참고용으로만 쓰세요. - 이 사이트는 개인이 만든 비공식 팬 프로젝트이며 게임사와 아무 관계가 없습니다. - 저장되는 것은 게임 세팅 값뿐입니다. 개인 정보를 담아 보내지 마세요.