이번에는 Yagudo Avatar와 Kirin의 Astral Flow 구조를 다시 정리하는 작업을 진행했다.
처음에는 Yagudos_Avatar 쪽이 제대로 동작하지 않는다고 판단해서 DB와 Lua를 이것저것 크게 건드렸는데, 결론적으로는 공용 구조를 잘못 이해한 상태에서 괜히 삽질한 부분이 많았다.
특히 가장 크게 헷갈렸던 부분은 이 구조였다.
- Yagudo_Avatar = 본체 NM
- Yagudos_Avatar = Astral Flow 전용 임시 소환수
- Tzee_Xicu_the_Manifest = 소환사 타입 HNM 본체
- Kirins_Avatar = Kirin의 AF 전용 아바타
처음에는 각 소환수마다 개별 skill_list를 만들어야 하는 줄 알고, Yagudos_Avatar에 별도의 30004 skill_list를 만들어서 아바타 필살기를 직접 등록하는 방향으로 테스트를 진행했다.
하지만 실제 LSB 구조를 다시 추적해보니 핵심은 DB가 아니라 공용 Lua mixin 구조였다.
실제 동작 흐름은 다음과 같았다.
mob:useMobAbility(734) -- Astral Flow
↓
scripts/actions/mobskills/astral_flow.lua
↓
mob:getID() + ASTRAL_PET_OFFSET
↓
scripts/mixins/families/avatar.lua
즉, 아바타 모델 선택과 필살기 사용은 이미 공용 avatar mixin 안에서 처리되고 있었다.
결국 내가 만들었던 30004 skill_list는 필요 없는 테스트 데이터였고, 실제 적용도 되지 않는 상태였다.
확인 결과 원래 정상 DB 구조는 다음과 같았다.
Yagudo_Avatar skill_list_id = 270
Yagudos_Avatar skill_list_id = 34
Tzee_Xicu skill_list_id = 360
Kirins_Avatar skill_list_id = 34
특히 이번 작업에서 가장 허탈했던 부분은 Kirin이었다.
기린은 IDs.lua에 별도 pet ID 상수를 추가하지 않았는데도 Astral Flow가 정상 동작하고 있었는데, 이유는 단순했다.
mob:setMobMod(xi.mobMod.ASTRAL_PET_OFFSET, 5)
이 한 줄로:
Kirin 본체 + 5 = Kirins_Avatar
를 직접 계산하고 있었기 때문이다.
즉, 애초에 IDs.lua에 추가할 필요도 없는 구조였다.
결국 이번 작업의 결론은 이렇다.
- 괜히 DB를 크게 건드릴 필요가 없었다.
- 공용 families/avatar.lua 구조를 제대로 이해하는 게 우선이었다.
- LSB는 이미 공용 구조를 만들어놨는데, 문제는 그 구조를 이해하기 어렵다는 점이다.
- 특히 Astral Flow 관련은 DB보다 Lua 흐름 추적이 훨씬 중요했다.
솔직히 이번 작업은 결과보다도 “왜 이렇게 만들어놨는지 이해하는 시간”이 훨씬 오래 걸렸다.
공용 파일로 처리할 거였으면 최소한 구조라도 좀 더 명확했으면 좋았을 텐데, 결국 하루 종일 로그 찍고 DB 확인하고 테스트만 반복했다.
| 확인된 것: - DB 30004 방식은 불필요했다. - Yagudo_Avatar / Yagudos_Avatar / Tzee DB는 정상화했다. - Kirin처럼 공용 avatar mixin 구조로 AF 자체는 동작한다. - 문제는 “Yagudos_Avatar만 트러스트까지 데미지가 안 들어가는 원인”은 끝내 확정 못했다. 보류: - avatar mixin / mobskill AoE / trust 대상 판정 차이 |




