82 lines
2.9 KiB
Python
82 lines
2.9 KiB
Python
|
|
"""바란, 클라드 스킬 몽타주 확인"""
|
||
|
|
import json
|
||
|
|
|
||
|
|
with open('../../원본데이터/AnimMontage.json', 'r', encoding='utf-8') as f:
|
||
|
|
montage_data = json.load(f)
|
||
|
|
|
||
|
|
with open('../../원본데이터/DataTable.json', 'r', encoding='utf-8') as f:
|
||
|
|
dt_data = json.load(f)
|
||
|
|
|
||
|
|
# DT_Skill 찾기
|
||
|
|
dt_skill = None
|
||
|
|
for asset in dt_data.get('Assets', []):
|
||
|
|
if asset.get('AssetName') == 'DT_Skill':
|
||
|
|
dt_skill = asset
|
||
|
|
break
|
||
|
|
|
||
|
|
print("=== 바란, 클라드 스킬 몽타주 확인 ===\n")
|
||
|
|
|
||
|
|
target_skills = {
|
||
|
|
'SK130301': '일격분쇄 (바란)',
|
||
|
|
'SK150201': '다시 흙으로 (클라드)'
|
||
|
|
}
|
||
|
|
skill_montages = {}
|
||
|
|
|
||
|
|
for row in dt_skill.get('Rows', []):
|
||
|
|
row_name = row.get('RowName', '')
|
||
|
|
if row_name in target_skills:
|
||
|
|
row_data = row.get('Data', {})
|
||
|
|
use_montages = row_data.get('useMontages', [])
|
||
|
|
skill_name = row_data.get('name', '')
|
||
|
|
|
||
|
|
print(f"[{row_name}] {skill_name}")
|
||
|
|
print(f" useMontages: {len(use_montages)}개")
|
||
|
|
|
||
|
|
if use_montages:
|
||
|
|
for montage_path in use_montages:
|
||
|
|
print(f" Path: {montage_path}")
|
||
|
|
|
||
|
|
# 몽타주 이름 추출
|
||
|
|
montage_name = montage_path.split('/')[-1].replace("'", "").split('.')[0]
|
||
|
|
if row_name not in skill_montages:
|
||
|
|
skill_montages[row_name] = []
|
||
|
|
skill_montages[row_name].append(montage_name)
|
||
|
|
print(f" Name: {montage_name}")
|
||
|
|
print()
|
||
|
|
|
||
|
|
# 각 몽타주에서 노티파이 확인
|
||
|
|
print("\n=== 몽타주 노티파이 확인 ===\n")
|
||
|
|
|
||
|
|
for skill_id, montage_names in skill_montages.items():
|
||
|
|
for montage_name in montage_names:
|
||
|
|
for asset in montage_data.get('Assets', []):
|
||
|
|
if asset.get('AssetName') == montage_name:
|
||
|
|
print(f"[{skill_id}] {target_skills[skill_id]} - {montage_name}")
|
||
|
|
|
||
|
|
notifies = asset.get('AnimNotifies', [])
|
||
|
|
print(f" 총 노티파이: {len(notifies)}개\n")
|
||
|
|
|
||
|
|
found_attack_notify = False
|
||
|
|
|
||
|
|
for idx, notify in enumerate(notifies):
|
||
|
|
notify_class = notify.get('NotifyClass', '')
|
||
|
|
|
||
|
|
# SimpleSendEvent 노티파이
|
||
|
|
if 'SimpleSendEvent' in notify_class:
|
||
|
|
custom_props = notify.get('CustomProperties', {})
|
||
|
|
event_tag = custom_props.get('Event Tag', '')
|
||
|
|
|
||
|
|
# Event.SkillActivate 확인
|
||
|
|
if 'SkillActivate' in event_tag:
|
||
|
|
print(f" [{idx}] SimpleSendEvent")
|
||
|
|
print(f" Event Tag: {event_tag}")
|
||
|
|
print(f" >>> Event.SkillActivate 발견! (공격 스킬)")
|
||
|
|
found_attack_notify = True
|
||
|
|
print()
|
||
|
|
|
||
|
|
if not found_attack_notify:
|
||
|
|
print(" *** Event.SkillActivate를 찾지 못했습니다. ***\n")
|
||
|
|
|
||
|
|
print("-" * 60)
|
||
|
|
print()
|