public void SCNotifyAllianceActiveTask(DBActiveTask msg) { EventDispatcher.Instance.DispatchEvent(new ActiveTaskInfoEvent(msg)); }
private void OnRecvTask(DBActiveTask msg) { DataModel.AllianceData.Clear(); DataModel.PlayerData.Clear(); DataModel.AllianceRankData.Clear(); DataModel.PlayerRankData.Clear(); DataModel.Idx = -1; DataModel.AllianceIdx = -1; { DataModel.myRank.Name = PlayerDataManager.Instance.GetName(); DataModel.myRank.Level = PlayerDataManager.Instance.GetLevel(); DataModel.myRank.Fight = PlayerDataManager.Instance.PlayerDataModel.Attributes.FightValue; DataModel.myRank.Score = PlayerDataManager.Instance.GetExData(949); DataModel.myRank.Role = PlayerDataManager.Instance.GetRoleId(); DataModel.myRank.Idx = GameUtils.GetDictionaryText(100000640); } { DataModel.myAllianceRank.Idx = GameUtils.GetDictionaryText(100000640); //DataModel.myAllianceRank.AllianceId = m.AllianceId; //DataModel.myAllianceRank.Fight = m.Fight; //DataModel.myAllianceRank.Level = m.Level; //DataModel.myAllianceRank.Flags = m.Flags; //DataModel.myAllianceRank.Name = m.Name; //DataModel.myAllianceRank.Score = m.Score; } foreach (var id in msg.pTaskIDs) {//玩家任务 var tb = Table.GetObjectTable(id); if (tb == null) { continue; } FieldMissionBaseDataModel tmp = new FieldMissionBaseDataModel(); tmp.Id = id; tmp.ExIdx = tb.ExData; tmp.Count = PlayerDataManager.Instance.GetExData(tb.ExData); tmp.MaxCount = tb.NeedCount; tmp.Flag = tb.IsGet; if (PlayerDataManager.Instance.GetFlag(tb.IsGet) == true) {//已领取 tmp.Stat = 2; } else { tmp.Stat = tmp.Count >= tmp.MaxCount ? 1 : 0; } for (int i = 0; i < tb.Reward.Length && i < tb.RewardNum.Length && i < tmp.Rewards.Count; i++) { tmp.Rewards[i].ItemId = tb.Reward[i]; tmp.Rewards[i].Count = tb.RewardNum[i]; } DataModel.PlayerData.Add(tmp); } foreach (var id in msg.aTaskIDs) {//战盟任务 var tb = Table.GetObjectTable(id); if (tb == null) { continue; } FieldMissionBaseDataModel tmp = new FieldMissionBaseDataModel(); tmp.Id = id; tmp.ExIdx = tb.ExData; tmp.Flag = tb.IsGet; tmp.MaxCount = tb.NeedCount; for (int i = 0; i < tb.Reward.Length && i < tb.RewardNum.Length && i < tmp.Rewards.Count; i++) { tmp.Rewards[i].ItemId = tb.Reward[i]; tmp.Rewards[i].Count = tb.RewardNum[i]; } DataModel.AllianceData.Add(tmp); } List <FieldMissionAllianceRankDataModel> l = new List <FieldMissionAllianceRankDataModel>(); foreach (var v in msg.AllianceTaskList) {//战盟任务信息 FieldMissionAllianceRankDataModel tmp = new FieldMissionAllianceRankDataModel(); tmp.AllianceId = v.Key; tmp.Name = v.Value.Name; tmp.Score = v.Value.Score; tmp.Fight = v.Value.Fight; tmp.Flags = v.Value.Flags; tmp.Level = v.Value.Level; if (tmp.AllianceId == PlayerDataManager.Instance.GetExData(eExdataDefine.e282)) { var info = v.Value; for (int i = 0; i < DataModel.AllianceData.Count; i++) { var m = DataModel.AllianceData[i]; if (info.TaskList.ContainsKey(m.Id)) { m.Count = info.TaskList[m.Id].Count; if (PlayerDataManager.Instance.GetFlag(m.Flag) == true) {//已领取 m.Stat = 2; } else { m.Stat = info.TaskList[m.Id].Count >= info.TaskList[m.Id].Need ? 1 : 0; } } } } l.Add(tmp); } l.Sort((a, b) => { if (b.Flags > a.Flags) { return(1); } if (b.Flags < a.Flags) { return(-1); } return(b.Score - a.Score); }); for (int i = 0; i < l.Count; i++) { var m = l[i]; m.Idx = (i + 1).ToString(); if (m.AllianceId == PlayerDataManager.Instance.GetExData(eExdataDefine.e282)) { DataModel.AllianceIdx = i; DataModel.myAllianceRank.AllianceId = m.AllianceId; DataModel.myAllianceRank.Fight = m.Fight; DataModel.myAllianceRank.Level = m.Level; DataModel.myAllianceRank.Idx = m.Idx; DataModel.myAllianceRank.Flags = m.Flags; DataModel.myAllianceRank.Name = m.Name; DataModel.myAllianceRank.Score = m.Score; } DataModel.AllianceRankData.Add(m); } for (int i = 0; i < msg.PlayerTaskList.Count; i++) {//玩家积分排行 var v = msg.PlayerTaskList[i]; FieldMissionPlayerRankDataModel data = new FieldMissionPlayerRankDataModel(); data.Id = v.guid; data.Role = v.role; data.Name = v.name; data.Score = v.score; data.Idx = (i + 1).ToString(); data.Level = v.level; data.Fight = v.fight; if (data.Id == PlayerDataManager.Instance.CharacterGuid) { DataModel.Idx = i + 1; DataModel.myRank.Idx = (i + 1).ToString(); } DataModel.PlayerRankData.Add(data); } CheckNotic(); }