private void SetSprite(MapTransferRecord record, SceneNpcDataModel npcData, int myCamp) { var _iconId = (record.Camp == myCamp || record.LiveIcon2 == -1) ? record.LiveIcon : record.LiveIcon2; var _tbIcon = Table.GetIcon(_iconId); if (_tbIcon != null) { npcData.Atlas = _tbIcon.Atlas; npcData.SpriteName = _tbIcon.Sprite; } switch (npcData.CharType) { case 8: case 9: npcData.Color = record.Camp == myCamp ? MColor.green : MColor.red; break; } }
private void OnRefurbishSceneMapEvent(IEvent ievent) { var _e = ievent as RefresSceneMap; DataModel.SceneId = _e.SceneId; mSceneRecord = Table.GetScene(_e.SceneId); if (mSceneRecord == null) { return; } DataModel.ScenrIcon = mSceneRecord.ShowNameIcon; NpcDataModels.Clear(); var _scale = 1f * mSceneRecord.TerrainHeightMapWidth / mSceneRecord.TerrainHeightMapLength; if (_scale > 1.0f) { DataModel.MapWidth = (int)(MAP_HIGHT); DataModel.MapHeight = (int)(MAP_HIGHT / _scale); } else { DataModel.MapWidth = (int)(MAP_HIGHT * _scale); DataModel.MapHeight = (int)MAP_HIGHT; } var _camp = ObjManager.Instance.MyPlayer.GetCamp(); DataModel.NpcList.Clear(); DataModel.PlayerList.Clear(); Table.ForeachMapTransfer((record => { if (record.SceneID != _e.SceneId) { return(true); } var _npcData = new SceneNpcDataModel(); _npcData.Id = record.Id; _npcData.NpcId = record.NpcID; _npcData.SceneLoction = new Vector3(record.PosX, 0, record.PosZ); _npcData.MapLoction = TransformSceneToMap(_npcData.SceneLoction); _npcData.Color = GameUtils.GetTableColor(record.DisplayColor); _npcData.NpcName = record.Name; _npcData.CharType = record.Type; SetSprite(record, _npcData, _camp); _npcData.Width = record.PicWidth; _npcData.Height = record.PIcHight; _npcData.LabLoc = new Vector3(record.OffsetX, record.OffsetY, 0); _npcData.NpcType = record.ShowChar; _npcData.DisplaySort = record.DisplaySort; _npcData.Mark = record.Mark; NpcDataModels.Add(_npcData); return(true); })); NpcDataModels.Sort((a, b) => { if (a.CharType == b.CharType) { return((a.DisplaySort < b.DisplaySort) ? -1 : 1); } return((a.CharType < b.CharType) ? -1 : 1); }); var _obj = ObjManager.Instance.MyPlayer; if (_obj) { PositionChange(_obj.Position); } RefurbishNpcList(); }