팁과 노하우

전체보기

모바일 상단 메뉴

본문 페이지

[전문기술] dpm표에 오류가 있는거 같아요

Narnke
댓글: 15 개
조회: 24459
추천: 49
2020-08-06 14:26:59

???: 저는 코드 볼줄 모르는데요?

그래서 준비했습니다

숫자만 읽을줄 알아도 따라할 수 있는 코드 보는 방법


2. 자기 직업 파일을 찾아서 들어갑니다.
  * 직업 이름들 스펠링이 이상하긴 한데 일단 참아주세요.

3. 대충 아래 이미지 같은 내용이 보입니다. 신궁을 들어가보겠습니다.



???: 아!!!!!!!! 이런거 모른다고!!!!!!!!

진정하시고 끝까지 읽어주세요. 지금부터 누구나 가능한 부분만 집어서 설명드리겠습니다.

패시브 스킬 적용

(신궁의 경우 거리비례 패시브는 발동되지 않는 스킬들이 있어 따로 적용합니다)

패시브 스킬들은 get_passive_skill() 이라고 써진 곳 아래를 보시면 확인할 수 있습니다.

여기서 "크리티컬 샷"과 같은 스킬명 옆에 있는 숫자들에 주목하시면 됩니다.

대부분 보면 알 수 있는 수치들이지만 정리를 해보면

  • stat_main: 주스탯
  • stat_sub: 부스탯
  • pstat_main: 주스탯%
  • pstat_sub: 부스탯%
  • att : 공마
  • patt: 공마%
  • crit: 크확
  • crit_damage: 크뎀
  • pdamage: 뎀퍼
  • boss_pdamage: 보공
  • armor_ignore: 방무
  • pdamage_indep: 최종뎀

입니다.

올스탯%는 pstat_main, pstat_sub 두개를 같이 넣는 것으로 적용합니다.

여기서 적용된 패시브들과 상시 가동 버프들을 통해 자동으로 무보엠 잠재 최적화를 진행하고 있습니다.

무기상수, 숙련도 적용


무기상수, 숙련도는 바로 아래 있는 get_not_implied_skill_list에 내용이 있습니다.

무기상수가 1.35라면 최종뎀 35%와 동일한 효과이므로 pdamage_indep = 35를 써둔 것입니다.

숙련도는 85%라면 -7.5, 90%라면 -5로 적용합니다.

숙련도가 90%라는 것은 최소 스공이 최대 스공의 90%라는 것으로, 평균 내면 95%가 됩니다.

그러면 최종뎀 -5%의 효과와 동일하기 때문에 (1-숙련도)/2 만큼을 빼주는 것입니다.

현재 카데나의 무기상수, 숙련도가 잘못 입력되어 있는 오류는 인지하고 있습니다. 하지만 논체인아츠 스킬들의 연계 딜레이가 전부 하나씩 따로 쓸때의 딜레이로 동작하고 있으므로 무기상수,숙련도 수정시 dpm을 논하는 것은 의미가 없습니다. 

버프 스킬

(크리인은 아래쪽에 극딜기 사용하는 쪽에 선언하고 있음)

스크롤을 더 아래로 내려보면 generate() 안쪽에 버프 스킬들이 정리되어 있습니다.

버프 스킬 정의를 읽는 방법은 다음과 같습니다.

core.BuffSkill(스킬명, 딜레이, 지속시간, 쿨타임 및 버프 효과들)

딜레이, 지속시간 등 모든 시간 관련은 ms단위를 사용합니다. 1초 = 1000ms

버프 효과들에 있는 내용은 패시브에서 설명한 것들과 동일하나 2가지가 더 있습니다.

"rem = True" 로 써져있는 스킬은 버프 지속시간 효과를 받습니다.
"red = True" 로 써져있는 스킬은 메르유니온, 쿨감뚝 효과를 받습니다.

현재 많은 스킬들에 rem, red 유무 표기가 잘 되지 않은 문제가 있으니 많은 제보 부탁드립니다.

공격 스킬


공격 스킬을 읽는 방법은 다음과 같습니다.

core.DamageSkill(스킬명, 딜레이, 퍼뎀, 타수, cooltime=쿨타임, modifier=추가 효과)

딜레이는 풀공속 기준 딜레이로 넣어야 합니다.

공속이 적용되는 스킬들은 (위컴알 표기 딜레이 * 0.75)를 30 단위로 반올림한 수치를 사용합니다.

간혹 타수가 0.4 와 같이 써져있는게 있는데, 40% 확률로 발동하는 파이널 어택 같은 것을 0.4타로 표현합니다.

modifier에는 스킬에 있는 추가 크확,보공,방무 등을 적용하기 위한 것입니다.

스킬 자체에 달려있기도 하고, 다른 패시브로 추가되기도 하고, 하이퍼 스킬 적용도 여기서 합니다.

예시로 현재 신궁의 공격 스킬들에는 전부 디스턴싱 센스 등의 최종뎀 방무 보정이 전부 박혀있습니다.

5차 스킬들에는 간혹 .getV(1, 1) 같은게 내용에 들어가 있습니다. 이는 해당 스킬의 코어 레벨을 돌려줍니다.

즉, 레벨 당 퍼뎀 증가량 같은 것을 표현하기 위해 들어가 있습니다.

DamageSkill 뒤에는 .isV 혹은 .setV 라는게 따라오기도 합니다.

.isV(장착 우선순위, 코강 우선순위) - 5차 액티브 스킬에 붙여줍니다
.setV(코강 우선순위, 1레벨당 최종뎀 증가량) - 5차 강화코어에 붙여줍니다

이 부분도 알고계신 코강 우선순위, 최종뎀 수치가 다른 부분이 있으면 제보 부탁드립니다.

소환 스킬


소환 스킬을 읽는 방법은 다음과 같습니다.

core.SummonSkill(스킬명, 시전딜레이, 공격간격, 퍼뎀, 타수, 지속시간, cooltime=쿨타임, modifier=추가효과)

소환 스킬의 총 공격 횟수는 (지속시간 / 공격간격)을 버림한 수치입니다.

간혹 일부 공격스킬 혹은 사출기를 편의상 소환수로 취급해 사용하고 있습니다.

그 외에는 공격 스킬과 다른 부분은 없습니다.

이 외에도 스킬간의 규칙을 정의하기 위한 코드들이 더 있으나, 그 부분까지 해석 가능하신 분들에게는 이 글이 필요 없을거라 생각합니다.

그리고 복잡한 스킬을 구현하기 위한 더미 스킬들이 몇 있는데, 깊이 생각하지 않으셔도 괜찮습니다.

4. 문제를 찾았으면 제보할 수 있는 루트는 다음과 같습니다.

1) Github Issue (가장 추천합니다)

사이트에 가입하고, 문제되는 파일과 해당 코드와 함께 설명을 적어주시면 가장 빠른 답변이 가능합니다.

질문하기 전에 검색 기능을 활용해서 이미 같은 문의가 있는지 확인해 주신다면 더더욱 좋습니다.

또한, 문제가 해결될 시 코드가 어떻게 변경되며, 예상 dpm에 대한 답변도 가능합니다.

2) Discord

여기서 문의 내용을 #문의 채널에 적어주시면 확인 후 Github Issue로 정리해 달아두겠습니다.

이쪽으로 질문이 들어오는 만큼 개발 속도는 느려지기 때문에 가능하면 1번 방식으로 부탁드립니다.

3) 기타

댓글, 쪽지도 확인은 하지만 보고 있는 만큼 개발에 집중하기 힘듭니다.

위 2가지 방식이 아닌 루트로 들어오는 문의에 제가 답변하지 못하더라도 이해 부탁드립니다.

대부분의 문의는 1~2일 안에 응답 가능하도록 해보겠습니다.

변경 적용 규칙

"~~ 왜 여기있음?" 혹은 "이거 아무튼 아닌데 확인좀" 류의 문의는 받지 않습니다.

코드상에 어떤 부분에 오류가 있으며, 현재 A로 되어있는데 정확한 수치는 B입니다. 정도로 알려주셔야 합니다.

정보가 충분히 제공되지 않은 문의에 대해서는 답변이 불가능합니다.

모든 코드 변경은 저를 포함해 최소 2명의 개발자가 확인 후 적용됩니다.




여담

dpm의 정확도를 가르는 요소를 중요도 순으로 나열하면 다음과 같습니다.

* 캐릭터 기본 스펙
  * 패시브와 버프로 오르는 보공 방무 등등...
  * 어쩌다 한번씩 패시브 방무가 적용 안된거 수정만 해줘도 크게 달라집니다

* 주력기 퍼뎀, 타수, 딜레이
  * 패시브로 붙는 최종뎀도 사실상 주력기 퍼뎀에 관련있으므로 비슷하게 중요합니다

* 극딜기 퍼뎀, 타수
  * 짧쿨일수록 점점 더 중요해집니다.

* 시간 차이가 적은 극딜버프+극딜기 맞춰 사용
  * 예를 들어 90초 주기의 엔버링크를 100초 주기의 극딜기에 맞춰 쓰는건 꽤 중요합니다.
  * 하지만 90초 주기의 엔버링크를 120초 주기의 극딜기에 맞춰 쓰는건 생각해 볼 필요가 있습니다.
  * A와 B를 맞춰 사용하기 위해 기다리는 A,B의 시간이 적을수록 중요도가 올라갑니다.

* 시간 차이가 긴 극딜버프+극딜기 맞춰 사용
  * 팬텀 딜사이클을 ms단위로 다 맞춰서 돌리도록 해봤는데, 고작 3% 올랐습니다.
  * 들이는 시간 대비 올라가는 정확도가 크지 않기에, 반영 속도가 느립니다.

모두가 함께 만들어 나가는 dpm입니다.

여러분이 조금씩만 도와주신다면 가장 중요한 위 3개가 빠르게 수정될 수 있고, 저는 나머지에 집중할 수 있게 됩니다.

dpm 제작에 대해 부정적인 시선으로 바라보는 사람도 있다는 것을 알고 있습니다.

충분히 그럴 수 있다고 생각합니다. 지금까지 워낙 많은 일들이 있었으니 말입니다.

그래도 다 함께 만들어 나간다면 긍정적인 부분만을 더 키워나갈 수 있을거라 생각합니다.

누군가가 dpm 오류에 관련된 질문을 한다면 이 글을 링크해주시면 좋겠습니다.

감사합니다.


해당 프로젝트는 제가 만들지 않았습니다.원작자 oleneyl 님, 기여자 cheese98 님의 기여가 대부분이며 저는 최근에 기여하기 시작했습니다. 

Lv36 Narnke

모바일 게시판 하단버튼

댓글

새로고침
새로고침

모바일 게시판 하단버튼

지금 뜨는 인벤

더보기+

모바일 게시판 리스트

모바일 게시판 하단버튼

글쓰기

모바일 게시판 페이징

최근 HOT한 콘텐츠

  • 메이플
  • 게임
  • IT
  • 유머
  • 연예
AD