Пример #1
0
        private void RefreshMonsterList(SceneNpcPosList posList)
        {
            var enumorator1 = DataModel.CharaModels.GetEnumerator();

            while (enumorator1.MoveNext())
            {
                var data = enumorator1.Current;
                if (data != null)
                {
                    data.CharType = -1;
                }
            }

            if (posList != null)
            {
                var enumorator4 = posList.NpcIdPosList.GetEnumerator();
                while (enumorator4.MoveNext())
                {
                    var pos = enumorator4.Current;
                    if (pos != null)
                    {
                        CreateMinimapCharacter(new Vector3(pos.PosX, 0, pos.PosY), pos.type, pos.Id, pos.npcId);
                    }
                }

                var playerId   = ObjManager.Instance.MyPlayer.GetObjId();
                var enumorator = posList.NpcList.GetEnumerator();
                while (enumorator.MoveNext())
                {
                    var pos = enumorator.Current;
                    if (pos != null)
                    {
                        if (playerId != pos.Id)
                        {
                            CreateMinimapCharacter(new Vector3(pos.PosX, 0, pos.PosY), pos.type, pos.Id, -1);
                        }
                    }
                }
            }

            var enumorator3 = DataModel.CharaModels.GetEnumerator();

            while (enumorator3.MoveNext())
            {
                var data = enumorator3.Current;
                if (data != null && data.CharType == -1)
                {
                    dataModelsDict.Remove(data.CharacterId);
                    var e1 = new MieShiSceneMapRemoveRadar(data.CharacterId);
                    EventDispatcher.Instance.DispatchEvent(e1);
                }
            }

            DataModel.CharaModels.RemoveAll(gc => gc.CharType == -1);
        }
Пример #2
0
        private void RemoveMinimapCharacter(ulong charId)
        {
            MapRadarDataModel dataModel;

            if (dataModelsDict.TryGetValue(charId, out dataModel))
            {
                var e1 = new MieShiSceneMapRemoveRadar(charId);
                EventDispatcher.Instance.DispatchEvent(e1);
                DataModel.CharaModels.Remove(dataModel);
            }
            else
            {
                Logger.Error("RemoveMinimapCharacter charId not exit!");
            }
        }
Пример #3
0
        private void ClearMonsterList()
        {
            var enumorator = DataModel.CharaModels.GetEnumerator();

            while (enumorator.MoveNext())
            {
                var pos = enumorator.Current;

                var e1 = new MieShiSceneMapRemoveRadar(pos.CharacterId);
                EventDispatcher.Instance.DispatchEvent(e1);
            }

            DataModel.CharaModels.Clear();
            dataModelsDict.Clear();
        }