public static void UpdateNPC(int sceneID, bool isInstance) { curSceneID = sceneID; if (!MapData.dataMap.ContainsKey(curSceneID) || MapData.dataMap[curSceneID].npcList == null || MapData.dataMap[curSceneID].npcList.Count == 0) { return; } for (int i = 0; i < MapData.dataMap[curSceneID].npcList.Count; i++) { int index = i; int id = MapData.dataMap[curSceneID].npcList[index]; if (!NPCData.dataMap.ContainsKey(id)) { continue; } EntityNPC entityNPC = new EntityNPC(); entityNPC.ID = (uint)id; entityNPC.name = LanguageData.dataMap[NPCData.dataMap[id].name].content; entityNPC.position.x = (float)NPCData.dataMap[id].mapx / 100; entityNPC.position.z = (float)NPCData.dataMap[id].mapy / 100; entityNPC.rotation = new Vector3(NPCData.dataMap[id].rotation[0] % 360, NPCData.dataMap[id].rotation[1] % 360, NPCData.dataMap[id].rotation[2] % 360); entityNPC.standbyAction = NPCData.dataMap[id].standbyAction; entityNPC.actionList = NPCData.dataMap[id].actionList; entityNPC.thinkInterval = NPCData.dataMap[id].thinkInterval; entityNPC.idleTimeRange = NPCData.dataMap[id].idleTimeRange; entityNPC.CreateModel(); npcEntities.Add((uint)id, entityNPC); } }