2 Commits

Author SHA1 Message Date
ffcec649fa chore: 산출물 재생성 — map01~05 몬스터 인스턴스 entry_id 수정 반영
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011xhLoQbJvQYL65kBtDNDTy
2026-07-03 01:18:06 +09:00
3b678e35d1 fix(monster): 맵 인스턴스 origin.entry_id를 modelId와 일치시켜 MissingModel 해소
메이커가 엔티티의 원본 모델을 origin.entry_id로 해석하는데, entry_id를
enemyId("junior_bugi")로 넣어 model://monster-junior_bugi(실제 EntryKey)와
불일치 → [LEA-3028] MissingModel로 전 몬스터 미표시. entry_id를
modelEntryId(=modelId="monster-<id>")로 수정. 메이커 인게임 검증: 전투에서
전 종 정상 렌더(stump=1110101도 나무토막 확인).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011xhLoQbJvQYL65kBtDNDTy
2026-07-03 01:18:06 +09:00
7 changed files with 37 additions and 37 deletions

View File

@@ -6468,7 +6468,7 @@
"revision": 2,
"origin": {
"type": "Model",
"entry_id": "junior_bugi",
"entry_id": "monster-junior_bugi",
"sub_entity_id": null,
"root_entity_id": "000005dc-0000-4000-8000-0000000005dc",
"replaced_model_id": null
@@ -6620,7 +6620,7 @@
"revision": 2,
"origin": {
"type": "Model",
"entry_id": "kapa_drake",
"entry_id": "monster-kapa_drake",
"sub_entity_id": null,
"root_entity_id": "000005dd-0000-4000-8000-0000000005dd",
"replaced_model_id": null
@@ -6772,7 +6772,7 @@
"revision": 2,
"origin": {
"type": "Model",
"entry_id": "junior_neki",
"entry_id": "monster-junior_neki",
"sub_entity_id": null,
"root_entity_id": "000005de-0000-4000-8000-0000000005de",
"replaced_model_id": null
@@ -6924,7 +6924,7 @@
"revision": 2,
"origin": {
"type": "Model",
"entry_id": "octopus",
"entry_id": "monster-octopus",
"sub_entity_id": null,
"root_entity_id": "000005df-0000-4000-8000-0000000005df",
"replaced_model_id": null
@@ -7076,7 +7076,7 @@
"revision": 2,
"origin": {
"type": "Model",
"entry_id": "green_mushroom",
"entry_id": "monster-green_mushroom",
"sub_entity_id": null,
"root_entity_id": "000005e0-0000-4000-8000-0000000005e0",
"replaced_model_id": null
@@ -7228,7 +7228,7 @@
"revision": 2,
"origin": {
"type": "Model",
"entry_id": "orange_mushroom",
"entry_id": "monster-orange_mushroom",
"sub_entity_id": null,
"root_entity_id": "000005e1-0000-4000-8000-0000000005e1",
"replaced_model_id": null
@@ -7382,7 +7382,7 @@
"revision": 2,
"origin": {
"type": "Model",
"entry_id": "dile",
"entry_id": "monster-dile",
"sub_entity_id": null,
"root_entity_id": "000005e2-0000-4000-8000-0000000005e2",
"replaced_model_id": null
@@ -7536,7 +7536,7 @@
"revision": 2,
"origin": {
"type": "Model",
"entry_id": "mano",
"entry_id": "monster-mano",
"sub_entity_id": null,
"root_entity_id": "000005e3-0000-4000-8000-0000000005e3",
"replaced_model_id": null
@@ -7690,7 +7690,7 @@
"revision": 2,
"origin": {
"type": "Model",
"entry_id": "king_slime",
"entry_id": "monster-king_slime",
"sub_entity_id": null,
"root_entity_id": "000005e4-0000-4000-8000-0000000005e4",
"replaced_model_id": null

View File

@@ -6379,7 +6379,7 @@
"revision": 2,
"origin": {
"type": "Model",
"entry_id": "pig",
"entry_id": "monster-pig",
"sub_entity_id": null,
"root_entity_id": "000009c4-0000-4000-8000-0000000009c4",
"replaced_model_id": null
@@ -6533,7 +6533,7 @@
"revision": 2,
"origin": {
"type": "Model",
"entry_id": "green_mushroom",
"entry_id": "monster-green_mushroom",
"sub_entity_id": null,
"root_entity_id": "000009c5-0000-4000-8000-0000000009c5",
"replaced_model_id": null
@@ -6685,7 +6685,7 @@
"revision": 2,
"origin": {
"type": "Model",
"entry_id": "blue_mushroom",
"entry_id": "monster-blue_mushroom",
"sub_entity_id": null,
"root_entity_id": "000009c6-0000-4000-8000-0000000009c6",
"replaced_model_id": null
@@ -6839,7 +6839,7 @@
"revision": 2,
"origin": {
"type": "Model",
"entry_id": "orange_mushroom",
"entry_id": "monster-orange_mushroom",
"sub_entity_id": null,
"root_entity_id": "000009c7-0000-4000-8000-0000000009c7",
"replaced_model_id": null
@@ -6993,7 +6993,7 @@
"revision": 2,
"origin": {
"type": "Model",
"entry_id": "slime",
"entry_id": "monster-slime",
"sub_entity_id": null,
"root_entity_id": "000009c8-0000-4000-8000-0000000009c8",
"replaced_model_id": null
@@ -7147,7 +7147,7 @@
"revision": 2,
"origin": {
"type": "Model",
"entry_id": "mushmom",
"entry_id": "monster-mushmom",
"sub_entity_id": null,
"root_entity_id": "000009c9-0000-4000-8000-0000000009c9",
"replaced_model_id": null
@@ -7302,7 +7302,7 @@
"revision": 2,
"origin": {
"type": "Model",
"entry_id": "slime_boss",
"entry_id": "monster-slime_boss",
"sub_entity_id": null,
"root_entity_id": "000009ca-0000-4000-8000-0000000009ca",
"replaced_model_id": null

View File

@@ -6379,7 +6379,7 @@
"revision": 2,
"origin": {
"type": "Model",
"entry_id": "octopus",
"entry_id": "monster-octopus",
"sub_entity_id": null,
"root_entity_id": "00000dac-0000-4000-8000-000000000dac",
"replaced_model_id": null
@@ -6531,7 +6531,7 @@
"revision": 2,
"origin": {
"type": "Model",
"entry_id": "junior_neki",
"entry_id": "monster-junior_neki",
"sub_entity_id": null,
"root_entity_id": "00000dad-0000-4000-8000-000000000dad",
"replaced_model_id": null
@@ -6683,7 +6683,7 @@
"revision": 2,
"origin": {
"type": "Model",
"entry_id": "junior_bugi",
"entry_id": "monster-junior_bugi",
"sub_entity_id": null,
"root_entity_id": "00000dae-0000-4000-8000-000000000dae",
"replaced_model_id": null
@@ -6835,7 +6835,7 @@
"revision": 2,
"origin": {
"type": "Model",
"entry_id": "slime",
"entry_id": "monster-slime",
"sub_entity_id": null,
"root_entity_id": "00000daf-0000-4000-8000-000000000daf",
"replaced_model_id": null
@@ -6989,7 +6989,7 @@
"revision": 2,
"origin": {
"type": "Model",
"entry_id": "slime_elite",
"entry_id": "monster-slime_elite",
"sub_entity_id": null,
"root_entity_id": "00000db0-0000-4000-8000-000000000db0",
"replaced_model_id": null
@@ -7143,7 +7143,7 @@
"revision": 2,
"origin": {
"type": "Model",
"entry_id": "king_slime",
"entry_id": "monster-king_slime",
"sub_entity_id": null,
"root_entity_id": "00000db1-0000-4000-8000-000000000db1",
"replaced_model_id": null

View File

@@ -6379,7 +6379,7 @@
"revision": 2,
"origin": {
"type": "Model",
"entry_id": "kapa_drake",
"entry_id": "monster-kapa_drake",
"sub_entity_id": null,
"root_entity_id": "00001194-0000-4000-8000-000000001194",
"replaced_model_id": null
@@ -6531,7 +6531,7 @@
"revision": 2,
"origin": {
"type": "Model",
"entry_id": "junior_neki",
"entry_id": "monster-junior_neki",
"sub_entity_id": null,
"root_entity_id": "00001195-0000-4000-8000-000000001195",
"replaced_model_id": null
@@ -6683,7 +6683,7 @@
"revision": 2,
"origin": {
"type": "Model",
"entry_id": "junior_bugi",
"entry_id": "monster-junior_bugi",
"sub_entity_id": null,
"root_entity_id": "00001196-0000-4000-8000-000000001196",
"replaced_model_id": null
@@ -6835,7 +6835,7 @@
"revision": 2,
"origin": {
"type": "Model",
"entry_id": "stump",
"entry_id": "monster-stump",
"sub_entity_id": null,
"root_entity_id": "00001197-0000-4000-8000-000000001197",
"replaced_model_id": null
@@ -6988,7 +6988,7 @@
"revision": 2,
"origin": {
"type": "Model",
"entry_id": "dile",
"entry_id": "monster-dile",
"sub_entity_id": null,
"root_entity_id": "00001198-0000-4000-8000-000000001198",
"replaced_model_id": null
@@ -7142,7 +7142,7 @@
"revision": 2,
"origin": {
"type": "Model",
"entry_id": "mushmom",
"entry_id": "monster-mushmom",
"sub_entity_id": null,
"root_entity_id": "00001199-0000-4000-8000-000000001199",
"replaced_model_id": null

View File

@@ -6379,7 +6379,7 @@
"revision": 2,
"origin": {
"type": "Model",
"entry_id": "kapa_drake",
"entry_id": "monster-kapa_drake",
"sub_entity_id": null,
"root_entity_id": "0000157c-0000-4000-8000-00000000157c",
"replaced_model_id": null
@@ -6531,7 +6531,7 @@
"revision": 2,
"origin": {
"type": "Model",
"entry_id": "octopus",
"entry_id": "monster-octopus",
"sub_entity_id": null,
"root_entity_id": "0000157d-0000-4000-8000-00000000157d",
"replaced_model_id": null
@@ -6683,7 +6683,7 @@
"revision": 2,
"origin": {
"type": "Model",
"entry_id": "junior_bugi",
"entry_id": "monster-junior_bugi",
"sub_entity_id": null,
"root_entity_id": "0000157e-0000-4000-8000-00000000157e",
"replaced_model_id": null
@@ -6835,7 +6835,7 @@
"revision": 2,
"origin": {
"type": "Model",
"entry_id": "junior_neki",
"entry_id": "monster-junior_neki",
"sub_entity_id": null,
"root_entity_id": "0000157f-0000-4000-8000-00000000157f",
"replaced_model_id": null
@@ -6987,7 +6987,7 @@
"revision": 2,
"origin": {
"type": "Model",
"entry_id": "dile",
"entry_id": "monster-dile",
"sub_entity_id": null,
"root_entity_id": "00001580-0000-4000-8000-000000001580",
"replaced_model_id": null
@@ -7141,7 +7141,7 @@
"revision": 2,
"origin": {
"type": "Model",
"entry_id": "slime_elite",
"entry_id": "monster-slime_elite",
"sub_entity_id": null,
"root_entity_id": "00001581-0000-4000-8000-000000001581",
"replaced_model_id": null
@@ -7295,7 +7295,7 @@
"revision": 2,
"origin": {
"type": "Model",
"entry_id": "king_slime",
"entry_id": "monster-king_slime",
"sub_entity_id": null,
"root_entity_id": "00001582-0000-4000-8000-000000001582",
"replaced_model_id": null

View File

@@ -69,7 +69,7 @@ export function buildMonsterInstance({ enemyId, enemy, name, guid, mapTag, x, gr
jsonString: {
name, path, nameEditable: true, enable: true, visible: true, localize: false,
displayOrder: 4, pathConstraints: '///', revision: 2,
origin: { type: 'Model', entry_id: enemyId, sub_entity_id: null, root_entity_id: guid, replaced_model_id: null },
origin: { type: 'Model', entry_id: modelEntryId(enemyId), sub_entity_id: null, root_entity_id: guid, replaced_model_id: null },
modelId: modelEntryId(enemyId),
'@components': components,
'@version': 1,

View File

@@ -42,7 +42,7 @@ test('buildMonsterModel: 원본 skeleton 비변형(순수 함수)', () => {
test('buildMonsterInstance: 모델 연결·컴포넌트 값', () => {
const e = buildMonsterInstance({ enemyId: 'slime', enemy, name: 'slime', guid: '00000bb9-0000-4000-8000-000000000bb9', mapTag: '03', x: 3.4, group: 'elite' });
assert.equal(e.jsonString.modelId, 'monster-slime');
assert.equal(e.jsonString.origin.entry_id, 'slime');
assert.equal(e.jsonString.origin.entry_id, 'monster-slime');
assert.equal(e.jsonString.origin.root_entity_id, e.id);
assert.equal(e.path, '/maps/map03/slime');
const comp = (t) => e.jsonString['@components'].find((c) => c['@type'] === t);