Пример #1
0
    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);
        }
    }