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); }
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!"); } }
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(); }