-
requirements
- Python >= 3.7
- argparse
-
Demo
-
download
pip install dpmModule
git clone https://github.com/oleneyl/maplestory_dpm_calc
dpmModule은 메이플스토리에서 데미지와 관련된 계산(기댓값, DPM, 최적잠재 등) 을 쉽게 계산하기 위한 라이브러리입니다. 전체 43개 직업군중 데벤, 제논을 제외한 41개 직업군의 데미지 시뮬레이션을 지원합니다.
https://github.com/oleneyl/maplestory_dpm_calc_web_tool
- Slack Channel
-
CLI Usage
python3 test.py --job [직업명] --ulevel [유니온 레벨]
-
Basic Python Usage
import dpmModule from dpmModule.util.dpmgenerator import IndividualDPMGenerator gen = IndividualDPMGenerator('나이트로드') gen.set_runtime(1800 * 1000) ulevel = 8000 print(gen.get_dpm(spec_name=str(ulevel), ulevel=ulevel)) # Result 806902750018.9082 #Can be different by version
-
Parser Config
-
dpmModule.util.dpmgenerator.IndividualDPMGenerator-
job: 직업군의 한글명칭입니다.dpmModule.jobs.jobMap에 정의되어 있습니다. 대부분은 통상한글명칭입니다.- 지원되는 직업명 :
아크메이지불/독아크메이지썬/콜비숍히어로팔라딘신궁윈드브레이커소울마스터루미너스배틀메이지메카닉메르세데스데몬슬레이어다크나이트와일드헌터플레임위자드섀도어캐논슈터미하일듀얼블레이드카이저캡틴엔젤릭버스터팬텀나이트로드은월바이퍼나이트워커스트라이커에반보우마스터제로키네시스일리움패스파인더카데나아크블래스터아란아델호영
- 지원되는 직업명 :
-
template: 사용할 캐릭터의 상태를 정의합니다.dpmModule.jobs.characterTemplateHigh내의 template중 하나를 사용하면 됩니다. 스펙구간별로 적절한 template이 정의되어 있습니다.
-
-
generator.get_dpmulevel: 유니온 레벨입니다. 큰 값이 주어질수록 유니온으로부터 더 많은 스텟을 얻습니다.printFlag: True이면 시뮬레이션 로그를 출력합니다. default=Falsestatistics: True이면 통계치를 제공합니다. default=Falsespec_name: 캐릭터 세팅에 사용할 아이템 스펙 템플릿입니다.dpmModule/character/configs를 참고하세요.cdr: 적용할 쿨타임 감소 (초) 입니다.
-
-
Low API를 사용하여 계산하기
import dpmModule.jobs.nightlord as nightlord from dpmModule.kernel import core from dpmModule.kernel import policy from dpmModule.execution import rules from dpmModule.character.characterTemplate import TemplateGenerator from dpmModule.status.ability import Ability_grade from dpmModule.execution import rules gen = nightlord.JobGenerator() target, weapon_stat = TemplateGenerator().get_template_and_weapon_stat(gen=gen, spec_name='6000') # 유니온 6천급 캐릭터 세팅 v_builder = core.NjbStyleVBuilder(skill_core_level=25, each_enhanced_amount=17) #스킬코어 25렙, 3중코어코강 graph = gen.package( target, v_builder, ulevel=6000, weaponstat=weapon_stat, ability_grade=Ability_grade(4, 1), farm=False, options={} ) # 유니온 레벨 6천, 어빌은 레전-에픽, 농장 없음 sche = policy.AdvancedGraphScheduler(graph, policy.TypebaseFetchingPolicy(priority_list = [ core.BuffSkillWrapper, core.SummonSkillWrapper, core.DamageSkillWrapper ]), [rules.UniquenessRule()] + gen.get_predefined_rules(rules.RuleSet.BASE) ) # 버프, 소환수, 쿨타임 스킬 순으로 사용. 단, BASE predefined rule이 있으면 사용 analytics = core.Analytics(printFlag=False) # 로그를 최소한으로 출력 control = core.Simulator(sche, target, analytics) control.start_simulation(180 * 1000) # 3분간 시뮬레이션 진행 dpm = analytics.getDPM() # dpm 출력 print(dpm)
- 자세한 사용 방법은 dpmModule의 readme를 참조하십시오.