Пример #1
0
        public void AddRobot(t_MapNpcDataPos data, uint master_id)
        {
            if (data == null)
            {
                return;
            }

            Engine.Utility.Log.Trace("添加ROBOT:{0}", data.mapnpcdata.npcdata.dwBaseID);

            IEntitySystem es = ClientGlobal.Instance().GetEntitySystem();

            if (es == null)
            {
                Engine.Utility.Log.Error("严重错误:EntitySystem is null!");
                return;
            }

            if (es.FindRobot(data.mapnpcdata.npcdata.dwTempID) != null)
            {
                CreateNPC(data, master_id); // 更新数据
                return;
            }

            if (m_dicNPCData.ContainsKey(data.mapnpcdata.npcdata.dwTempID))
            {
                return;
            }

            CreateNPC(data, master_id);
        }
Пример #2
0
        public void AddNPC(t_MapNpcDataPos data, uint master_id)
        {
            Profiler.BeginSample("AddNpc");
            if (data == null)
            {
                return;
            }

            Engine.Utility.Log.Trace("添加NPC:{0}", data.mapnpcdata.npcdata.dwBaseID);

            IEntitySystem es = ClientGlobal.Instance().GetEntitySystem();

            if (es == null)
            {
                Engine.Utility.Log.Error("严重错误:EntitySystem is null!");
                return;
            }

            table.NpcDataBase npctable = GameTableManager.Instance.GetTableItem <table.NpcDataBase>((uint)data.mapnpcdata.npcdata.dwBaseID);
            if (npctable == null)
            {
                Engine.Utility.Log.Error("严重错误:not fount npc baseid {0}", data.mapnpcdata.npcdata.dwBaseID);
                return;
            }

            if (npctable.dwType == (uint)GameCmd.enumNpcType.NPC_TYPE_ROBOT)
            {
                if (es.FindRobot(data.mapnpcdata.npcdata.dwTempID) != null)
                {
                    CreateRobot(data, npctable.job); // 更新数据
                    return;
                }

                if (m_dicNPCData.ContainsKey(data.mapnpcdata.npcdata.dwTempID))
                {
                    return;
                }

                CreateRobot(data, npctable.job);
            }
            else
            {
                if (es.FindNPC(data.mapnpcdata.npcdata.dwTempID) != null)
                {
                    CreateNPC(data, master_id); // 更新数据
                    return;
                }

                if (m_dicNPCData.ContainsKey(data.mapnpcdata.npcdata.dwTempID))
                {
                    return;
                }

                CreateNPC(data, master_id);
            }
            Profiler.EndSample();
        }