zhaoyang 2 ani în urmă
părinte
comite
35f134a072

+ 3 - 0
GameClient/Assets/Game/HotUpdate/Constant/ConstMessage.cs

@@ -107,6 +107,9 @@ namespace GFGGame
         public const string LEAGUE_LOG_CHANGE = "LEAGUE_LOG_CHANGE";//联盟日志变化
         public const string LEAGUE_INFO_CHANGE = "LEAGUE_INFO_CHANGE";//联盟信息变化
         public const string LEAGUE_NUMBERIC_CHANGE = "LEAGUE_NUMBERIC_CHANGE";//联盟数值变化
+        public const string LEAGUE_ANSWER_DATA_CHANGE = "LEAGUE_ANSWER_DATA_CHANGE";//联盟答题数据变化,有人加入退出答对题目(需要刷新玩家答题数据列表)
+        public const string LEAGUE_ANSWER_START = "LEAGUE_ANSWER_START";//联盟新一轮答题开始
+        public const string LEAGUE_ANSWER_END = "LEAGUE_ANSWER_END";//联盟本轮答题结束
         public const string OTHER_ROLE_INFO_CHANGE = "OTHER_ROLE_INFO_CHANGE";//其他玩家信息变化
 
     }

+ 2 - 1
GameClient/Assets/Game/HotUpdate/Data/LeagueDataManager.cs

@@ -16,7 +16,8 @@ namespace GFGGame
         public Dictionary<long, LeagueListData> ListDatas = new Dictionary<long, LeagueListData>();//联盟列表
         public Dictionary<long, OtherRoleInfoData> ListApplyDatas = new Dictionary<long, OtherRoleInfoData>();//联盟申请列表
         public List<LeagueLogData> ListLogDatas = new List<LeagueLogData>();//日志数据
-        public Dictionary<long, int> ListAnswerDatas = new Dictionary<long, int>();//答题数据
+        public Dictionary<long, int> ListAnswerintDatas = new Dictionary<long, int>();//当前答题玩家数据,roleId,答题数量。
+        public Dictionary<int, List<LeagueAnswerData>> ListAnswerRankDatas = new Dictionary<int, List<LeagueAnswerData>>();//答题排行榜数据,int:type//1:周排行 2:上周排行
 
 
         public void Clear()

+ 6 - 0
GameClient/Assets/Game/HotUpdate/Data/VO/LeagueData.cs

@@ -60,4 +60,10 @@ namespace GFGGame
         public long EndTime;//结束时间
         public LeagueWelfareCfg GiftCfg;
     }
+
+    public class LeagueAnswerData
+    {
+        public long RoleId;
+        public int Num;//答对次数
+    }
 }

+ 58 - 5
GameClient/Assets/Game/HotUpdate/ServerProxy/LeagueSproxy.cs

@@ -210,7 +210,8 @@ namespace GFGGame
     {
         protected override async ETTask Run(Session session, L2C_NoticeJoinAnswer message)
         {
-
+            LeagueDataManager.Instance.ListAnswerintDatas[message.RoleId] = 0;
+            EventAgent.DispatchEvent(ConstMessage.LEAGUE_ANSWER_DATA_CHANGE);
             await ETTask.CompletedTask;
         }
     }
@@ -219,7 +220,8 @@ namespace GFGGame
     {
         protected override async ETTask Run(Session session, S2C_SyncAnswerNum message)
         {
-
+            LeagueDataManager.Instance.ListAnswerintDatas[message.RoleId] = message.Num;
+            EventAgent.DispatchEvent(ConstMessage.LEAGUE_ANSWER_DATA_CHANGE);
             await ETTask.CompletedTask;
         }
     }
@@ -228,7 +230,9 @@ namespace GFGGame
     {
         protected override async ETTask Run(Session session, S2C_SyncAnswerStart message)
         {
-
+            LeagueDataManager.Instance.SetNumeric(LeagueNumericType.LeagueQuestionId, message.QuestionId);
+            LeagueDataManager.Instance.SetNumeric(LeagueNumericType.LeagueQuestionStatusEndTime, message.Time);
+            EventAgent.DispatchEvent(ConstMessage.LEAGUE_ANSWER_START);
             await ETTask.CompletedTask;
         }
     }
@@ -237,7 +241,9 @@ namespace GFGGame
     {
         protected override async ETTask Run(Session session, L2C_NoticeAnswerPause message)
         {
-
+            LeagueDataManager.Instance.SetNumeric(LeagueNumericType.LeagueQuestionStatus, message.Type);
+            LeagueDataManager.Instance.SetNumeric(LeagueNumericType.LeagueQuestionStatusEndTime, message.Time);
+            EventAgent.DispatchEvent(ConstMessage.LEAGUE_ANSWER_END);
             await ETTask.CompletedTask;
         }
     }
@@ -561,6 +567,48 @@ namespace GFGGame
             }
             return false;
         }
+
+        //获取答题排行
+        public static async ETTask<bool> ReqGetAnswerRank(int type)
+        {
+            S2C_GetAnswerRank response = null;
+            response = (S2C_GetAnswerRank)await MessageHelper.SendToServer(new C2S_GetAnswerRank() { RoleId = RoleDataManager.roleId, Type = type });
+            if (response != null)
+            {
+                if (response.Error == ErrorCode.ERR_Success)
+                {
+                    if (!LeagueDataManager.Instance.ListAnswerRankDatas.ContainsKey(type))
+                    {
+                        LeagueDataManager.Instance.ListAnswerRankDatas[type] = new List<LeagueAnswerData>();
+                    }
+                    List<LeagueAnswerData> answerDatas = LeagueDataManager.Instance.ListAnswerRankDatas[type];
+                    answerDatas.Clear();
+                    for (int i = 0; i < response.RoleInfos.Count; i++)
+                    {
+                        LeagueAnswerData answerData = new LeagueAnswerData();
+                        answerData.RoleId = response.RoleInfos[i].RoleId;
+                        answerData.Num = response.RoleInfos[i].Num;
+                        answerDatas.Add(answerData);
+                    }
+                    return true;
+                }
+            }
+            return false;
+        }
+        //回答题目
+        public static async ETTask<bool> ReqAnswerQuestion(int questionId, string answer)
+        {
+            S2C_AnswerQuestion response = null;
+            response = (S2C_AnswerQuestion)await MessageHelper.SendToServer(new C2S_AnswerQuestion() { RoleId = RoleDataManager.roleId, QuestionId = questionId, Answer = answer });
+            if (response != null)
+            {
+                if (response.Error == ErrorCode.ERR_Success)
+                {
+                    return true;
+                }
+            }
+            return false;
+        }
         //加入答题
         public static async ETTask<bool> ReqJoinAnswer()
         {
@@ -570,7 +618,11 @@ namespace GFGGame
             {
                 if (response.Error == ErrorCode.ERR_Success)
                 {
-                    // PromptController.Instance.ShowFloatTextPrompt("购买成功");
+                    for (int i = 0; i < response.RoleInfos.Count; i++)
+                    {
+                        LeagueDataManager.Instance.ListAnswerintDatas[response.RoleInfos[i].RoleId] = response.RoleInfos[i].Num;
+                    }
+
                     return true;
                 }
             }
@@ -592,6 +644,7 @@ namespace GFGGame
             return false;
         }
 
+
         //获取技能列表
         public static async ETTask<bool> ReqGetSkillList(int sKillType)
         {