Просмотр исходного кода

所有代码都放在一个仓库里面.

hexiaojie 2 дней назад
Родитель
Сommit
ee853f5292
100 измененных файлов с 3604 добавлено и 1 удалено
  1. 0 1
      .gitignore
  2. BIN
      GameClient/Assets/Game/CSShare/.DS_Store
  3. 8 0
      GameClient/Assets/Game/CSShare/Codes.meta
  4. 3 0
      GameClient/Assets/Game/CSShare/Codes/Codes.asmref
  5. 7 0
      GameClient/Assets/Game/CSShare/Codes/Codes.asmref.meta
  6. 8 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix.meta
  7. 8 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/App.meta
  8. 8 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/App/Helper.meta
  9. 97 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/App/Helper/CalculateHelper.cs
  10. 11 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/App/Helper/CalculateHelper.cs.meta
  11. 8 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/App/Hutool.meta
  12. 188 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/App/Hutool/DateUtil.cs
  13. 11 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/App/Hutool/DateUtil.cs.meta
  14. 327 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/App/Hutool/MathUtil.cs
  15. 11 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/App/Hutool/MathUtil.cs.meta
  16. 8 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/App/LogServer.meta
  17. 8 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/App/LogServer/LogSplicing.meta
  18. 140 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/App/LogServer/LogSplicing/LogSplicingComponentSystem.cs
  19. 11 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/App/LogServer/LogSplicing/LogSplicingComponentSystem.cs.meta
  20. 41 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/App/LogServer/LogSplicing/LogSplicingUtil.cs
  21. 11 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/App/LogServer/LogSplicing/LogSplicingUtil.cs.meta
  22. 8 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/App/Role.meta
  23. 30 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/App/Role/RoleInfoSystem.cs
  24. 11 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/App/Role/RoleInfoSystem.cs.meta
  25. 8 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/App/ServerInfo.meta
  26. 23 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/App/ServerInfo/ServerInfoSystem.cs
  27. 11 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/App/ServerInfo/ServerInfoSystem.cs.meta
  28. 8 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/App/extend.meta
  29. 8 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/Core.meta
  30. 8 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/Core/Scene.meta
  31. 20 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/Core/Scene/ZoneSceneFlagComponentSystem.cs
  32. 11 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/Core/Scene/ZoneSceneFlagComponentSystem.cs.meta
  33. 46 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/Core/Scene/ZoneSceneManagerComponentSystem.cs
  34. 11 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/Core/Scene/ZoneSceneManagerComponentSystem.cs.meta
  35. 8 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/Module.meta
  36. 8 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/Module/Config.meta
  37. 84 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/Module/Config/ConfigComponentSystem.cs
  38. 11 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/Module/Config/ConfigComponentSystem.cs.meta
  39. 8 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/Module/Message.meta
  40. 8 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/Module/Numeric.meta
  41. 12 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/Module/Numeric/NumericChangeEvent_NotifyWatcher.cs
  42. 11 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/Module/Numeric/NumericChangeEvent_NotifyWatcher.cs.meta
  43. 8 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/Module/Ping.meta
  44. 67 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/Module/Ping/PingComponentSystem.cs
  45. 11 0
      GameClient/Assets/Game/CSShare/Codes/Hotfix/Module/Ping/PingComponentSystem.cs.meta
  46. 8 0
      GameClient/Assets/Game/CSShare/Codes/Model.meta
  47. 8 0
      GameClient/Assets/Game/CSShare/Codes/Model/App.meta
  48. 8 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/Account.meta
  49. 8 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer.meta
  50. 8 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/Annotation.meta
  51. 41 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/Annotation/LogColumnAttribute.cs
  52. 11 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/Annotation/LogColumnAttribute.cs.meta
  53. 15 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/Annotation/LogNameAttribute.cs
  54. 11 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/Annotation/LogNameAttribute.cs.meta
  55. 8 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/Enum.meta
  56. 27 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/Enum/CollectTypeEnum.cs
  57. 11 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/Enum/CollectTypeEnum.cs.meta
  58. 141 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/Enum/LogTypeEnum.cs
  59. 11 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/Enum/LogTypeEnum.cs.meta
  60. 37 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/Enum/NodeEnum.cs
  61. 11 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/Enum/NodeEnum.cs.meta
  62. 65 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/Enum/PlayParticipationEnum.cs
  63. 11 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/Enum/PlayParticipationEnum.cs.meta
  64. 583 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/Enum/ReasonEnum.cs
  65. 11 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/Enum/ReasonEnum.cs.meta
  66. 8 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd.meta
  67. 103 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/ArenaRoleFlow.cs
  68. 11 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/ArenaRoleFlow.cs.meta
  69. 8 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/Base.meta
  70. 7 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/Base/ILogBase.cs
  71. 11 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/Base/ILogBase.cs.meta
  72. 63 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/ChatMonitoringFlow.cs
  73. 11 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/ChatMonitoringFlow.cs.meta
  74. 58 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/ClothingDecomposition.cs
  75. 11 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/ClothingDecomposition.cs.meta
  76. 68 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/ClothingMaintenance.cs
  77. 11 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/ClothingMaintenance.cs.meta
  78. 58 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/ClothingSynthesis.cs
  79. 11 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/ClothingSynthesis.cs.meta
  80. 63 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/Collect.cs
  81. 11 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/Collect.cs.meta
  82. 48 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/CreateAccountFlow.cs
  83. 11 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/CreateAccountFlow.cs.meta
  84. 53 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/CreatePlayerFlow.cs
  85. 11 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/CreatePlayerFlow.cs.meta
  86. 53 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/DailyActivity.cs
  87. 11 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/DailyActivity.cs.meta
  88. 53 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/DailySignIn.cs
  89. 11 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/DailySignIn.cs.meta
  90. 53 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/DailyTask.cs
  91. 11 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/DailyTask.cs.meta
  92. 48 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/EventTrackFlow2.cs
  93. 11 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/EventTrackFlow2.cs.meta
  94. 78 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/FosterFlow.cs
  95. 11 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/FosterFlow.cs.meta
  96. 53 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/GuideFlow.cs
  97. 11 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/GuideFlow.cs.meta
  98. 83 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/ItemFlow.cs
  99. 11 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/ItemFlow.cs.meta
  100. 83 0
      GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/LeagueChatFlow.cs

+ 0 - 1
.gitignore

@@ -16,7 +16,6 @@
 /GameClient/Bundles_temp
 /GameClient/Assets/StreamingAssets/Bundles_temp.meta
 /GameClient/Assets/StreamingAssets/Bundles_temp
-/GameClient/Assets/Game/CSShare
 /GameClient/Assets/StreamingAssets/Bundles
 /GameClient/BuildlesUnity
 /GameClient/HybridCLRData/LocalIl2CppData

BIN
GameClient/Assets/Game/CSShare/.DS_Store


+ 8 - 0
GameClient/Assets/Game/CSShare/Codes.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 41b7294e9fb7e274f87a776899e49d1b
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 3 - 0
GameClient/Assets/Game/CSShare/Codes/Codes.asmref

@@ -0,0 +1,3 @@
+{
+    "reference": "GUID:46e5d16512650f34ca18c2edd2331c78"
+}

+ 7 - 0
GameClient/Assets/Game/CSShare/Codes/Codes.asmref.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: aa9389c907ff7f04696c21dcd7fb5d36
+AssemblyDefinitionReferenceImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b132b5277770a734f9c9209940efed8d
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/App.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 40c8c8cb48843ef4a80a4ebb25190c1f
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/App/Helper.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 612b346ea596e964bab2be34ead9f817
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 97 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/App/Helper/CalculateHelper.cs

@@ -0,0 +1,97 @@
+using System;
+using cfg.GfgCfg;
+
+namespace GFGGame
+{
+    /// <summary>
+    /// 前后端共享计算类,谨慎修改!!!
+    /// </summary>
+    public class CalculateHelper
+    {
+        /// <summary>
+        /// 获取物品实际属性分数值
+        /// </summary>
+        public static int GetItemAttribute(int scoreBase, int percentAdd, int scoreadd)
+        {
+            return (int)Math.Ceiling((scoreBase * (1f + percentAdd / 10000f) + scoreadd));
+        }
+
+        /// <summary>
+        /// 获取物品属性存储的key值
+        /// </summary>
+        public static int GetItemScoreKey(int typeAttribute, int typeAction)
+        {
+            return typeAttribute *10 + typeAction;
+        }
+
+        /// <summary>
+        /// 根据得分和配置计算星数
+        /// </summary>
+        public static int GetStoryChapterStar(int levelID, int score)
+        {
+            StoryLevelCfg levelCfg = CommonDataManager.Tables.TblStoryLevelCfg.GetOrDefault(levelID);
+            StoryFightCfg fightCfg = CommonDataManager.Tables.TblStoryFightCfg.GetOrDefault(int.Parse(levelCfg.FightID));
+            int starCount = 0;
+            if (score > fightCfg.Score1)
+            {
+                if (score > fightCfg.Score3)
+                {
+                    starCount = 3;
+                }
+                else if (score > fightCfg.Score2)
+                {
+                    starCount = 2;
+                }
+                else
+                {
+                    starCount = 1;
+                }
+            }
+            return starCount;
+        }
+
+        //生成章节宝箱奖励状态
+        public static int GenerateChapterBoxStates(int[] statesArr)
+        {
+            int valueBonusState = 0;
+            for (var i = 0; i < statesArr.Length; i++)
+            {
+                var state = statesArr[i];
+                if(i > 0)
+                {
+                    valueBonusState += state * (int)Math.Pow(10d, (double)i);
+                }
+                else
+                {
+                    valueBonusState += state;
+                }
+            }
+            return valueBonusState;
+        }
+
+        //生成章节宝箱奖励状态
+        public static void GenerateChapterBoxStates(int[] statesArr, int stateInt)
+        {
+            int value = stateInt;
+            for (var i = statesArr.Length - 1; i >= 0; i--)
+            {
+                if (i > 0)
+                {
+                    int temp = (int)Math.Pow(10d, (double)i);
+                    statesArr[i] = value / temp;
+                    value = value % temp;
+                }
+                else
+                {
+                    statesArr[i] = value;
+                }
+            }
+        }
+
+        //获取副本通关关卡的key值
+        public static int GenerateInstanceZonesLevelStateKey(int type, int subType, int chapterId)
+        {
+            return subType + type*10 + chapterId * 1000;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/App/Helper/CalculateHelper.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a8a2bb5a8069c7744a25499ee78e7455
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/App/Hutool.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c773f928f557b1e49a5668205ae35561
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 188 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/App/Hutool/DateUtil.cs

@@ -0,0 +1,188 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using ET;
+
+namespace Hutool
+{
+    public class DateUtil
+    {
+        public static int getAgeByBirth(string birth)
+        {
+            string yyear, mmonth, dday;
+            yyear = birth.Substring(0, 4);
+            mmonth = birth.Substring(4, 2);
+            dday = birth.Substring(6, 2);
+            int iyear = int.Parse(yyear);
+            int imonth = int.Parse(mmonth);
+            int iday = int.Parse(dday);
+            DateTime birthTime = new DateTime(iyear, imonth, iday);
+            return age(birthTime, DateTime.Now);
+        }
+
+        public static int thisYear()
+        {
+            return DateTime.Now.Year;
+        }
+
+        public static bool isLeapYear(int year)
+        {
+            return DateTime.IsLeapYear(year);
+        }
+
+        public static int age(DateTime birthday, DateTime dateToCompare)
+        {
+            int dYear = dateToCompare.Year - birthday.Year;
+            DateTime birthdayThisYear = birthday.AddYears(dYear);
+            if (dateToCompare.Ticks < birthdayThisYear.Ticks)
+            {
+                dYear--;
+            }
+
+            return dYear;
+        }
+
+        //从时间数组字符串里获取最近的一个开始时间,返回索引 leagueQuestionStartTime=10:10:00;19:10:00;20:10:00
+        public static int GetNearestStartTimeIndex(List<string> leagueQuestionStartTime)
+        {
+            List<DateTime> startTimeList = new List<DateTime>();
+            foreach (var timeStr in leagueQuestionStartTime)
+            {
+                DateTime time = DateTime.Parse(timeStr);
+                startTimeList.Add(time);
+            }
+
+            int nearestIndex = 0;
+            List<DateTime> nearestStartTimeList =
+                startTimeList.Where(t => t.TimeOfDay > DateTime.Now.TimeOfDay).ToList();
+            if (nearestStartTimeList.Count != 0)
+            {
+                DateTime nearestStartTime = nearestStartTimeList.Min();
+                nearestIndex = startTimeList.IndexOf(nearestStartTime);
+            }
+
+            startTimeList.Clear();
+            return nearestIndex;
+        }
+
+        //根据开服时间,获取近期的开月卡时间
+        public static DateTime GetMonthlyCardStartTime(DateTime endDate, DateTime serverStartDate)
+        {
+            DateTime startDate = endDate.AddDays(-30); // 假设最近一次购买是在结束日期前30天
+            while (startDate > serverStartDate)
+            {
+                TimeSpan difference = startDate - serverStartDate;
+                if (difference.Days < 30)
+                {
+                    break;
+                }
+
+                startDate = startDate.AddDays(-30); // 如果开始日期在开服日期之前,则往前推一个月卡周期
+            }
+
+            return startDate;
+        }
+
+        public static int CalculateDaysBetween(long startTimestamp, long endTimestamp)
+        {
+            // 将 Unix 时间戳转换为 DateTime
+            DateTime startTime = DateTimeUtil.TimeStampToDateTime(startTimestamp);
+            DateTime endTime = DateTimeUtil.TimeStampToDateTime(endTimestamp);
+
+            // 计算调整后的 DateTime 对象之间的天数差异
+            TimeSpan difference = endTime - startTime;
+            int daysDifference = difference.Days;
+            // 检查是否还有额外的时间差(小时、分钟、秒)
+            if (difference.Hours > 0 || difference.Minutes > 0 || difference.Seconds > 0)
+            {
+                daysDifference++; // 如果有,天数差+1
+            }
+
+            return daysDifference;
+        }
+
+        private static DateTime AdjustDateTime(DateTime dateTime)
+        {
+            // 如果时间小于凌晨5点,则将日期减去一天
+            if (dateTime.TimeOfDay < TimeSpan.FromHours(5))
+            {
+                dateTime = dateTime.AddDays(-1);
+            }
+
+            // 将时间调整为凌晨0点
+            dateTime = dateTime.Date;
+
+            return dateTime;
+        }
+
+        //按照凌晨5点为00点,获取当前月份
+        public static int GetCurrentMonth()
+        {
+            DateTime currentDate = DateTime.Now;
+            DateTime adjustedDate = currentDate.AddHours(-5); // 调整为当天上午5:00
+
+            return adjustedDate.Month;
+        }
+
+        public static string GetSundayDateInt()
+        {
+            // 获取今天的日期
+            DateTime today = DateTime.Today;
+
+            // 计算今天到周日的天数差
+            int daysUntilSunday = ((int)DayOfWeek.Sunday - (int)today.DayOfWeek + 7) % 7;
+
+            // 获取这周的周日日期
+            DateTime sunday = today.AddDays(daysUntilSunday);
+
+            return sunday.ToString("yyyyMMdd");
+        }
+        
+        public static int GetDateInt()
+        {
+            // 获取当前时间
+            DateTime now = DateTime.Now;
+
+            // 判断当前时间是否在凌晨5点之前
+            if (now.Hour < 5)
+            {
+                // 如果在凌晨5点之前,返回昨天的日期
+                DateTime yesterday = now.AddDays(-1);
+                return Convert.ToInt32(yesterday.ToString("yyyyMMdd"));
+            }
+            else
+            {
+                // 否则返回今天的日期
+                return Convert.ToInt32(now.ToString("yyyyMMdd"));
+            }
+        }
+        
+        /// <summary>
+        /// 年月日 解析到某个时间点
+        /// </summary>
+        /// <param name="weekDate"></param>
+        /// <param name="cfgClearingEndTime"></param>
+        /// <returns></returns>
+        /// <exception cref="Exception"></exception>
+        public static DateTime GetDateTime(int weekDate, string cfgClearingEndTime)
+        {
+            // 将整数型日期转换为字符串形式
+            string dateStr = weekDate.ToString();
+
+            // 完整的日期时间字符串
+            string dateTimeStr = dateStr + cfgClearingEndTime;
+
+            // 解析成 DateTime 对象
+            if (DateTime.TryParseExact(dateTimeStr.Trim(), "yyyyMMddHH:mm:ss", CultureInfo.InvariantCulture,
+                    DateTimeStyles.None, out var dateTime))
+            {
+                return dateTime;
+            }
+
+            throw new Exception("无法解析提供的日期时间字符串");
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/App/Hutool/DateUtil.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 328c247d2afc7644ea070ca4018e0b14
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 327 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/App/Hutool/MathUtil.cs

@@ -0,0 +1,327 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using ET;
+
+namespace Hutool
+{
+    public static class MathUtil
+    {
+        /// <summary>
+        /// 检查指定位置的位是否为1
+        /// </summary>
+        /// <param name="value">要检查的整数</param>
+        /// <param name="index">要检查的位位置</param>
+        /// <returns>如果指定位置的位为1,则返回true;否则返回false,注意:index不合法将会返回false</returns>
+        public static bool isBitSet(long value, int index)
+        {
+            // 检查指定的位位置是否在合法范围内
+            //sizeof(int) * 8 的结果就是 long 类型的二进制位数.long占用8字节,即64位
+            if (index < 0 || index >= sizeof(long) * 8)
+            {
+                Log.Error($"value:{value},index:{index},超出索引");
+                return false;
+            }
+
+            // 使用按位与运算符 & 将指定位置的位与1进行比较
+            // 如果结果不为0,则表示该位为1,返回true
+            // 如果结果为0,则表示该位为0,返回false
+            return (value & (1 << index)) != 0;
+        }
+
+        /// <summary>
+        /// 将指定位置的位设置为1
+        /// </summary>
+        /// <param name="num">待修改的整数</param>
+        /// <param name="bitPositions">要设置为1的位位置数组</param>
+        /// <returns>修改后的整数,报错返回默认值,注:bitPositions不合法将返回原始num</returns>
+        public static int SetBitsTo1(int num, int[] bitPositions)
+        {
+            // 检查位位置数组是否为空
+            if (bitPositions == null)
+            {
+                Log.Error($"num:{num}, bitPositions is null.");
+                return num;
+            }
+
+            // 检查位位置是否在合法范围内
+            int bitCount = sizeof(int) * 8;
+            foreach (int bitPos in bitPositions)
+            {
+                if (bitPos < 0 || bitPos >= bitCount)
+                {
+                    Log.Error($"num:{num}, bitPositions  bitPos:{bitPos} 超出索引");
+                    return num;
+                }
+            }
+
+            var mask = bitPositions.Aggregate(0, (current, bitPos) => current | 1 << bitPos);
+            return num | mask;
+        }
+
+        /// <summary>
+        /// 32位中设置某一位为1
+        /// </summary>
+        /// <param name="num">待设置的32位整数</param>
+        /// <param name="bitPos">要设置为1的位的位置</param>
+        /// <returns>设置后的整数,注:bitPos不合法将返回原始num</returns>
+        public static int SetBitsTo1(int num, int bitPos)
+        {
+            // 检查位位置是否在合法范围内
+            if (bitPos < 0 || bitPos >= sizeof(int) * 8)
+            {
+                Log.Error($"num:{num}, bitPos:{bitPos} 超出索引.");
+                return num;
+            }
+
+            // 使用按位或操作符 | 将指定位位置的位设置为1
+            return num | (1 << bitPos);
+        }
+
+        /// <summary>
+        /// 64位中,设置某一位为1
+        /// </summary>
+        /// <param name="num">待设置的64位整数</param>
+        /// <param name="bitPos">要设置为1的位的位置</param>
+        /// <returns>设置后的值,注:bitPos不合法将返回原始num</returns>
+        public static long SetBitsTo1Long(long num, int bitPos)
+        {
+            // 检查位位置是否在合法范围内
+            if (bitPos < 0 || bitPos >= sizeof(long) * 8)
+            {
+                Log.Error($"num:{num}, bitPos:{bitPos} 超出索引");
+                return num;
+            }
+
+            return num | (1L << bitPos);
+        }
+
+        /// <summary>
+        /// 将指定位置的位设置为0
+        /// </summary>
+        /// <param name="num">待修改的整数</param>
+        /// <param name="bitPosition">要设置为0的位位置</param>
+        /// <returns>修改后的整数,注:如果bitPosition不合法将返回原始num</returns>
+        public static int SetBitsTo0(int num, int bitPosition)
+        {
+            // 检查位位置是否在合法范围内
+            int bitCount = sizeof(int) * 8;
+            if (bitPosition < 0 || bitPosition >= bitCount)
+            {
+                Log.Error($"num:{num}, bitPosition: {bitPosition} 超出索引");
+                return num;
+            }
+
+            // 创建掩码
+            int mask = 1 << bitPosition;
+
+            // 使用掩码将指定位设置为0
+            return num & ~mask;
+        }
+
+        /// <summary>
+        /// 将指定位置的位设置为0
+        /// </summary>
+        /// <param name="num">待修改的整数</param>
+        /// <param name="bitPositions">要设置为0的位位置数组</param>
+        /// <returns>修改后的整数,注:bitPositions存在不合法的位将返回原始num</returns>
+        public static int SetBitsTo0(int num, int[] bitPositions)
+        {
+            // 检查位位置数组是否为空
+            if (bitPositions == null)
+            {
+                Log.Error("bitPositions is null.");
+                return num;
+            }
+
+            // 检查位位置是否在合法范围内
+            int bitCount = sizeof(int) * 8;
+            foreach (int bitPos in bitPositions)
+            {
+                if (bitPos < 0 || bitPos >= bitCount)
+                {
+                    Log.Error($"num:{num}, bitPositions  bitPos:{bitPos} 超出索引");
+                    return num;
+                }
+            }
+
+            var mask = bitPositions.Aggregate(0, (current, bitPos) => current | 1 << bitPos);
+            return num & ~mask;
+        }
+
+        /// <summary>
+        /// 统计32位无符号整数中的1位数目
+        /// </summary>
+        /// <param name="num">要统计的32位无符号整数</param>
+        /// <returns>1的位数目</returns>
+        public static int CountOnes(int num)
+        {
+            var count = 0;
+
+            for (int i = 0; i < 32; i++)
+            {
+                // 检查 num 的最低位是否为1,如果是则 count 加1
+                if ((num & 1) == 1)
+                {
+                    count++;
+                }
+
+                // 将 num 向右移动一位,继续检查下一位
+                num >>= 1;
+            }
+
+            return count;
+        }
+
+        /// <summary>
+        /// 统计64位无符号整数中的1位数目
+        /// </summary>
+        /// <param name="num">要统计的64位无符号整数</param>
+        /// <returns>1的位数目</returns>
+        public static int CountOnes2(long num)
+        {
+            var count = 0;
+
+            for (int i = 0; i < 64; i++)
+            {
+                // 检查 num 的最低位是否为1,如果是则 count 加1
+                if ((num & 1) == 1)
+                {
+                    count++;
+                }
+
+                // 将 num 向右移动一位,继续检查下一位
+                num >>= 1;
+            }
+
+            return count;
+        }
+
+        /// <summary>
+        /// 获取下一个索引,超出范围就获取0.
+        /// </summary>
+        /// <param name="curIndex">当前索引</param>
+        /// <param name="arrLength">数组长度</param>
+        /// <returns>返回下一个索引;返回true表示是新的一轮,返回false表示当轮</returns>
+        public static (int, bool) GetArIndex(int curIndex, int arrLength)
+        {
+            int nextIndex;
+            bool curIndexIsMax;
+            if (curIndex == arrLength - 1)
+            {
+                // 当前索引已经是最大索引
+                nextIndex = 0; // 重置获取索引为 0
+                curIndexIsMax = true;
+            }
+            else
+            {
+                // 当前索引不是最大索引
+                nextIndex = curIndex + 1; // 获取下一个索引
+                curIndexIsMax = false;
+            }
+
+            return (nextIndex, curIndexIsMax);
+        }
+
+        /// <summary>
+        /// 从issueNumbers里匹配下一个issueNumber
+        /// </summary>
+        /// <param name="issueNumber"></param>
+        /// <param name="issueNumbers"></param>
+        /// <returns></returns>
+        public static int GetNextIssueNumber(int issueNumber, int[] issueNumbers)
+        {
+            // 如果整数数组为空,无法获取下一个期号,返回默认值 0
+            if (issueNumbers == null || issueNumbers.Length == 0)
+            {
+                return 0;
+            }
+
+            // 查找 TeaPartyOpenCfgId 在整数数组中的索引
+            int index = Array.IndexOf(issueNumbers, issueNumber);
+
+            // 如果 TeaPartyOpenCfgId 不在整数数组中或者是整数数组的最后一个元素,则返回整数数组的第一个元素作为下一个期号
+            if (index == -1 || index == issueNumbers.Length - 1)
+            {
+                return issueNumbers[0];
+            }
+
+            // 返回相邻的下一个元素作为下一个期号
+            return issueNumbers[index + 1];
+        }
+
+        public static int ProgressCalculate(int haveCount, int totalCount)
+        {
+            if (haveCount > totalCount)
+            {
+                haveCount = totalCount;
+            }
+
+            float rate = haveCount * 100.0f / totalCount;
+            int result;
+            if (rate > 0 && rate <= 1)
+            {
+                result = 1;
+            }
+            else if (rate >= 99 && rate < 100)
+            {
+                result = 99;
+            }
+            else
+            {
+                result = (int)Math.Round(rate);
+            }
+
+            return result;
+        }
+
+        /// <summary>
+        /// 假设为[1,2,3,4,5,6] 如果我知道3,然后需要返回上一条数据2. 如果我知道的是1,上面已经没有数据了,就返回0
+        /// </summary>
+        /// <param name="list"></param>
+        /// <param name="target"></param>
+        /// <returns></returns>
+        public static int FindPreviousNumber(List<int> list, int target)
+        {
+            if (list.Contains(target))
+            {
+                int index = list.IndexOf(target);
+                if (index > 0)
+                {
+                    return list[index - 1];
+                }
+            }
+
+            return 0;
+        }
+
+        //遍历数组dropTimesArr,并检查每个元素是否大于或等于appearNum
+        public static int GetIndex(int[] dropTimesArr, int appearNum)
+        {
+            for (int i = 0; i < dropTimesArr.Length; i++)
+            {
+                if (dropTimesArr[i] >= appearNum)
+                {
+                    return i;
+                }
+            }
+
+            // 如果没有找到满足条件的元素,返回-1
+            return -1;
+        }
+
+        public static int GetIndex(List<int> dropTimesArr, int appearNum)
+        {
+            for (int i = 0; i < dropTimesArr.Count; i++)
+            {
+                if (dropTimesArr[i] >= appearNum)
+                {
+                    return i;
+                }
+            }
+
+            // 如果没有找到满足条件的元素,返回-1
+            return -1;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/App/Hutool/MathUtil.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f054f3eed8f3e5347ade1b64880aedea
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/App/LogServer.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 990712b7a23483347b16653b89e7cb1c
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/App/LogServer/LogSplicing.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 49f3be8a59c968b4e8cdf6506abad99b
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 140 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/App/LogServer/LogSplicing/LogSplicingComponentSystem.cs

@@ -0,0 +1,140 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Reflection;
+using System.Security.Cryptography;
+using System.Text;
+using System.Text.RegularExpressions;
+
+namespace ET
+{
+    public class LogSplicingComponentAwakeSystem : AwakeSystem<LogSplicingComponent>
+    {
+        public override void Awake(LogSplicingComponent self)
+        {
+        }
+    }
+
+    public class LogSplicingComponentDestroySystem : DestroySystem<LogSplicingComponent>
+    {
+        public override void Destroy(LogSplicingComponent self)
+        {
+        }
+    }
+
+    public static class LogSplicingComponentSystem
+    {
+        /// <summary>
+        /// 拼接日志数据
+        /// </summary>
+        /// <param name="baseObj"></param>
+        /// <returns></returns>
+        public static string LogObjectToStr(this LogSplicingComponent self, ILogBase baseObj)
+        {
+            return JsonHelper.ToJson(baseObj);
+        }
+
+        // 注释不删除
+        // /// <summary>
+        // /// 拼接日志数据
+        // /// </summary>
+        // /// <param name="baseObj"></param>
+        // /// <returns></returns>
+        // public static string LogObjectToStr(this LogSplicingComponent self, ILogBase baseObj)
+        // {
+        //     string logData = string.Empty;
+        //     Type baseObjType = baseObj.GetType();
+        //     //表名
+        //     var loggerTypeName = baseObjType.GetCustomAttribute<LogNameAttribute>().Name;
+        //
+        //     //检索表示在指定类型上定义的所有字段的集合
+        //     IEnumerable<FieldInfo> fieldInfos = baseObjType.GetRuntimeFields();
+        //
+        //     fieldInfos = fieldInfos.OrderBy(a => a.Name).Where(a => a.GetCustomAttribute<LogColumnAttribute>() != null).OrderBy(a => a.Name);
+        //
+        //     self.keyFieldInfos.Clear();
+        //     foreach (var item in fieldInfos)
+        //     {
+        //         LogColumnAttribute logAtt = item.GetCustomAttribute<LogColumnAttribute>();
+        //         string fieldName = self.GetOrDefualt(logAtt.name, item.Name);
+        //         if (self.keyFieldInfos.ContainsKey(fieldName))
+        //         {
+        //             self.keyFieldInfos[fieldName] = item;
+        //         }
+        //         else
+        //         {
+        //             self.keyFieldInfos.Add(fieldName, item);
+        //         }
+        //     }
+        //
+        //     var keyFieldInfoss = self.keyFieldInfos.OrderBy(a => a.Key);
+        //
+        //     if (keyFieldInfoss != null)
+        //     {
+        //         int index = 0;
+        //         foreach (var item in keyFieldInfoss) //全部统一使用字段名进行 升序 排序--结构亦如此
+        //         {
+        //             var fieldValue = item.Value.GetValue(baseObj);
+        //
+        //             if (fieldValue != null)
+        //             {
+        //                 fieldValue = Regex.Replace(fieldValue.ToString(), @"[\n`|$@]", "",
+        //                     RegexOptions.IgnoreCase);
+        //             }
+        //
+        //             index++;
+        //             //最后一个不拼接"|"
+        //             if (index == fieldInfos.Count())
+        //             {
+        //                 logData += fieldValue;
+        //             }
+        //             else
+        //             {
+        //                 logData += fieldValue + "|";
+        //             }
+        //         }
+        //     }
+        //
+        //     logData = InsertSpaceBeforeUpperCase(loggerTypeName.ToString()) + "|" + logData;
+        //     return logData;
+        // }
+
+        // private static string GetOrDefualt(this LogSplicingComponent self, string value,
+        //     string defualt)
+        // {
+        //     if (string.IsNullOrEmpty(value))
+        //     {
+        //         return defualt;
+        //     }
+        //
+        //     return value;
+        // }
+        //
+        // private static string InsertSpaceBeforeUpperCase(string str)
+        // {
+        //     var sb = new StringBuilder();
+        //
+        //     char previousChar = char.MinValue; // Unicode '\0'
+        //
+        //     foreach (char c in str)
+        //     {
+        //         if (char.IsUpper(c))
+        //         {
+        //             // If not the first character and previous character is not a space, insert a space before uppercase
+        //
+        //             if (sb.Length != 0 && previousChar != ' ')
+        //             {
+        //                 sb.Append('_');
+        //             }
+        //         }
+        //
+        //         sb.Append(c);
+        //
+        //         previousChar = c;
+        //     }
+        //
+        //     return sb.ToString();
+        // }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/App/LogServer/LogSplicing/LogSplicingComponentSystem.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 6531f7a9f74b2b94295f208775ea3027
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 41 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/App/LogServer/LogSplicing/LogSplicingUtil.cs

@@ -0,0 +1,41 @@
+using System;
+using System.IO;
+using System.Security.Cryptography;
+using System.Text;
+
+namespace ET
+{
+    public static class LogSplicingUtil
+    {
+        /// <summary>
+        /// AES加密算法
+        /// </summary>
+        /// <param name="plainText">明文字符串</param>
+        /// <param name="strKey">密钥</param>
+        /// <returns>返回加密后的密文字节数组</returns>
+        public static string AESEncrypt(string plainText, string strKey)
+        {
+            //分组加密算法
+            SymmetricAlgorithm des = Aes.Create();
+            byte[] inputByteArray = Encoding.UTF8.GetBytes(plainText); //得到需要加密的字节数组
+            //设置密钥及密钥向量
+            byte[] key1 =
+            {
+                0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF, 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB,
+                0xCD, 0xEF
+            };
+
+            des.Key = Encoding.UTF8.GetBytes(strKey);
+            des.IV = key1;
+            MemoryStream ms = new MemoryStream();
+            CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
+            cs.Write(inputByteArray, 0, inputByteArray.Length);
+            cs.FlushFinalBlock();
+            byte[] cipherBytes = ms.ToArray(); //得到加密后的字节数组
+            cs.Close();
+            ms.Close();
+
+            return Convert.ToBase64String(cipherBytes);
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/App/LogServer/LogSplicing/LogSplicingUtil.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a1d91f15ad032f34e9cf40755a2a33b8
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/App/Role.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 96a41648ead52ea4599bd78daab29383
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 30 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/App/Role/RoleInfoSystem.cs

@@ -0,0 +1,30 @@
+namespace ET
+{
+    public static class RoleInfoSystem
+    {
+        public static void FromMessage(this RoleInfo self, RoleInfoProto roleInfoProto)
+        {
+            self.Id = roleInfoProto.Id;
+            self.Name = roleInfoProto.Name;
+            self.State = roleInfoProto.State;
+            self.AccountId = roleInfoProto.AccountId;
+            self.CreateTime = roleInfoProto.CreateTime;
+            self.ServerId = roleInfoProto.ServerId;
+            self.LastLoginTime = roleInfoProto.LastLoginTime;
+        }
+
+        public static RoleInfoProto ToMessage(this RoleInfo self)
+        {
+            return new RoleInfoProto()
+            {
+                Id = self.Id,
+                Name = self.Name,
+                State = self.State,
+                AccountId = self.AccountId,
+                CreateTime = self.CreateTime,
+                ServerId = self.ServerId,
+                LastLoginTime = self.LastLoginTime
+            };
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/App/Role/RoleInfoSystem.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 9800597d4350f4b4ca59e6fdf134ac37
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/App/ServerInfo.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 3c77e997bc7e6164a833cccc4b19d570
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 23 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/App/ServerInfo/ServerInfoSystem.cs

@@ -0,0 +1,23 @@
+namespace ET
+{
+    public static class ServerInfoSystem
+    {
+        public static void FromMessage(this ServerInfo self, ServerInfoProto serverInfoProto)
+        {
+            self.Id = serverInfoProto.Id;
+            self.Status = serverInfoProto.Status;
+            self.ServerName = serverInfoProto.ServerName;
+            self.OpenServerTime = serverInfoProto.OpenServerTime;
+        }
+        
+        public static ServerInfoProto ToMessage(this ServerInfo self)
+        {
+            return new ServerInfoProto
+            {
+                Id = (int)self.Id,
+                ServerName = self.ServerName,
+                Status = self.Status,
+            };
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/App/ServerInfo/ServerInfoSystem.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: fab50028952081a4abbbe8518c93dca1
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/App/extend.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 03953bd33e8c5e047baf1fd953de3eaa
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/Core.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: bf790723eac8da7459b1c7ead622d634
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/Core/Scene.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: fd846525d89a18e4686aaf2f6b4ee920
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 20 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/Core/Scene/ZoneSceneFlagComponentSystem.cs

@@ -0,0 +1,20 @@
+namespace ET
+{
+    [ObjectSystem]
+    public class ZoneSceneFlagComponentDestroySystem: DestroySystem<ZoneSceneFlagComponent>
+    {
+        public override void Destroy(ZoneSceneFlagComponent self)
+        {
+            ZoneSceneManagerComponent.Instance.Remove(self.DomainZone());
+        }
+    }
+
+    [ObjectSystem]
+    public class ZoneSceneFlagComponentAwakeSystem: AwakeSystem<ZoneSceneFlagComponent>
+    {
+        public override void Awake(ZoneSceneFlagComponent self)
+        {
+            ZoneSceneManagerComponent.Instance.Add(self.GetParent<Scene>());
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/Core/Scene/ZoneSceneFlagComponentSystem.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 6c1fc36740e6dcd47b06928de1acdbb0
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 46 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/Core/Scene/ZoneSceneManagerComponentSystem.cs

@@ -0,0 +1,46 @@
+using System;
+
+namespace ET
+{
+    [ObjectSystem]
+    public class ZoneSceneManagerComponentAwakeSystem: AwakeSystem<ZoneSceneManagerComponent>
+    {
+        public override void Awake(ZoneSceneManagerComponent self)
+        {
+            ZoneSceneManagerComponent.Instance = self;
+        }
+    }
+
+    [ObjectSystem]
+    public class ZoneSceneManagerComponentDestroySystem: DestroySystem<ZoneSceneManagerComponent>
+    {
+        public override void Destroy(ZoneSceneManagerComponent self)
+        {
+            self.ZoneScenes.Clear();
+        }
+    }
+
+    public static class ZoneSceneManagerComponentSystem
+    {
+        public static Scene ZoneScene(this Entity entity)
+        {
+            return ZoneSceneManagerComponent.Instance.Get(entity.DomainZone());
+        }
+        
+        public static void Add(this ZoneSceneManagerComponent self, Scene zoneScene)
+        {
+            self.ZoneScenes.Add(zoneScene.Zone, zoneScene);
+        }
+        
+        public static Scene Get(this ZoneSceneManagerComponent self, int zone)
+        {
+            self.ZoneScenes.TryGetValue(zone, out Scene scene);
+            return scene;
+        }
+        
+        public static void Remove(this ZoneSceneManagerComponent self, int zone)
+        {
+            self.ZoneScenes.Remove(zone);
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/Core/Scene/ZoneSceneManagerComponentSystem.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a166ad93d8ebfd4448ad8b712754722a
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/Module.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8081a181f8e484541a3af6c42b95d05e
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/Module/Config.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 1f4422289d53e0247984a47201ca9e66
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 84 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/Module/Config/ConfigComponentSystem.cs

@@ -0,0 +1,84 @@
+using System;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+
+namespace ET
+{
+	[ObjectSystem]
+    public class ConfigAwakeSystem : AwakeSystem<ConfigComponent>
+    {
+        public override void Awake(ConfigComponent self)
+        {
+	        ConfigComponent.Instance = self;
+        }
+    }
+    
+    [ObjectSystem]
+    public class ConfigDestroySystem : DestroySystem<ConfigComponent>
+    {
+	    public override void Destroy(ConfigComponent self)
+	    {
+		    ConfigComponent.Instance = null;
+	    }
+    }
+    
+    public static class ConfigComponentSystem
+	{
+		public static void LoadOneConfig(this ConfigComponent self, Type configType)
+		{
+			byte[] oneConfigBytes = self.ConfigLoader.GetOneConfigBytes(configType.FullName);
+
+			object category = ProtobufHelper.FromBytes(configType, oneConfigBytes, 0, oneConfigBytes.Length);
+
+			self.AllConfig[configType] = category;
+		}
+		
+		public static void Load(this ConfigComponent self)
+		{
+			self.AllConfig.Clear();
+			HashSet<Type> types = Game.EventSystem.GetTypes(typeof (ConfigAttribute));
+			
+			Dictionary<string, byte[]> configBytes = new Dictionary<string, byte[]>();
+			self.ConfigLoader.GetAllConfigBytes(configBytes);
+
+			foreach (Type type in types)
+			{
+				self.LoadOneInThread(type, configBytes);
+			}
+		}
+		
+		public static async ETTask LoadAsync(this ConfigComponent self)
+		{
+			self.AllConfig.Clear();
+			HashSet<Type> types = Game.EventSystem.GetTypes(typeof (ConfigAttribute));
+			
+			Dictionary<string, byte[]> configBytes = new Dictionary<string, byte[]>();
+			self.ConfigLoader.GetAllConfigBytes(configBytes);
+
+			//using ()
+			//{
+				ListComponent<Task> listTasks = ListComponent<Task>.Create();
+				foreach (Type type in types)
+				{
+					Task task = Task.Run(() => self.LoadOneInThread(type, configBytes));
+					listTasks.Add(task);
+				}
+
+				await Task.WhenAll(listTasks.ToArray());
+			listTasks.Dispose();
+			//}
+		}
+
+		private static void LoadOneInThread(this ConfigComponent self, Type configType, Dictionary<string, byte[]> configBytes)
+		{
+			byte[] oneConfigBytes = configBytes[configType.Name];
+
+			object category = ProtobufHelper.FromBytes(configType, oneConfigBytes, 0, oneConfigBytes.Length);
+
+			lock (self)
+			{
+				self.AllConfig[configType] = category;	
+			}
+		}
+	}
+}

+ 11 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/Module/Config/ConfigComponentSystem.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 955388e4e7d59e34a87f8cabccb87650
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/Module/Message.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c55e0df834445464aa7eb05a2f8000a4
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/Module/Numeric.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 81ef59eec9f040140b86fe9bfc74ff5f
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 12 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/Module/Numeric/NumericChangeEvent_NotifyWatcher.cs

@@ -0,0 +1,12 @@
+namespace ET
+{
+	// 分发数值监听
+	public class NumericChangeEvent_NotifyWatcher: AEvent<EventType.NumbericChange>
+	{
+		protected override async ETTask Run(EventType.NumbericChange args)
+		{
+			NumericWatcherComponent.Instance.Run(args);
+			await ETTask.CompletedTask;
+		}
+	}
+}

+ 11 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/Module/Numeric/NumericChangeEvent_NotifyWatcher.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 873a8aeb9dd5a034bb4ee90c8b45af73
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/Module/Ping.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 1a99b8b7add5c5b45ba9ca1f30a3b417
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 67 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/Module/Ping/PingComponentSystem.cs

@@ -0,0 +1,67 @@
+using System;
+
+namespace ET
+{
+    [ObjectSystem]
+    public class PingComponentAwakeSystem: AwakeSystem<PingComponent>
+    {
+        public override void Awake(PingComponent self)
+        {
+
+            Log.Warning($"ping Awake: {self.Id} {self.InstanceId}");
+            PingAsync(self).Coroutine();
+        }
+
+        private static async ETTask PingAsync(PingComponent self)
+        {
+            Session session = self.GetParent<Session>();
+            long instanceId = self.InstanceId;
+            
+            while (true)
+            {
+                if (self.InstanceId != instanceId)
+                {
+                    return;
+                }
+
+                long time1 = TimeHelper.ClientNow();
+                try
+                {
+                    G2C_Ping response = await session.Call(self.C2G_Ping) as G2C_Ping;
+
+                    if (self.InstanceId != instanceId)
+                    {
+                        return;
+                    }
+
+                    long time2 = TimeHelper.ClientNow();
+                    self.Ping = time2 - time1;
+                    
+                    Game.TimeInfo.ServerMinusClientTime = response.Time + (time2 - time1) / 2 - time2;
+
+                    await TimerComponent.Instance.WaitAsync(2000);
+                }
+                catch (RpcException e)
+                {
+                    // session断开导致ping rpc报错,记录一下即可,不需要打成error
+                    Log.Info($"ping error: {self.Id} {e.Error}");
+                    return;
+                }
+                catch (Exception e)
+                {
+                    Log.Error($"ping error: \n{e}");
+                }
+            }
+        }
+    }
+
+    [ObjectSystem]
+    public class PingComponentDestroySystem: DestroySystem<PingComponent>
+    {
+        public override void Destroy(PingComponent self)
+        {
+            Log.Warning($"ping Destroy: {self.Id} {self.InstanceId}");
+            self.Ping = default;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/CSShare/Codes/Hotfix/Module/Ping/PingComponentSystem.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: dd6dcb9a6576eda428869496315e2d17
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/CSShare/Codes/Model.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 1b4439ca2d029f94f9c5a72217c43113
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a1bcea9adbd2aa041b17f8ac0e4fb37d
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/Account.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: cc0fe27c6e56f77409cb28e26fc76287
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c9a34228352ca274cacf58c101d6bcc5
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/Annotation.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: dd98edefcb4f2ef47ad62c2eccb5178e
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 41 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/Annotation/LogColumnAttribute.cs

@@ -0,0 +1,41 @@
+using System;
+
+namespace ET
+{
+    public class LogColumnAttribute : Attribute
+    {
+        /// <summary>
+        /// 字段名
+        /// </summary>
+        public string name { get; set; }
+        /// <summary>
+        /// 字段类型
+        /// </summary>
+        public string type { get; set; }
+        /// <summary>
+        /// 长度
+        /// </summary>
+        public int length { get; set; }
+        /// <summary>
+        /// 
+        /// </summary>
+        public int index { get; set; }
+        /// <summary>
+        /// 描述
+        /// </summary>
+        public string desc { get; set; }
+        /// <summary>
+        /// 字典
+        /// </summary>
+        public string disc { get; set; }
+        /// <summary>
+        /// 转换类
+        /// </summary>
+        public string transformer { get; set; }
+
+        public LogColumnAttribute(string desc)
+        {
+            this.desc = desc;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/Annotation/LogColumnAttribute.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 32c021be12ba735409d5f5849d6f082c
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 15 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/Annotation/LogNameAttribute.cs

@@ -0,0 +1,15 @@
+using System.ComponentModel;
+using System.Reflection;
+
+namespace ET
+{
+    public class LogNameAttribute : ObjectSystemAttribute
+    {
+        public LogTypeEnum Name { get; }
+
+        public LogNameAttribute(LogTypeEnum name)
+        {
+            this.Name = name;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/Annotation/LogNameAttribute.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 4516ce270f38642448267124cda08c81
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/Enum.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e48c61e456b0f1b49aa8832aaa168cfe
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 27 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/Enum/CollectTypeEnum.cs

@@ -0,0 +1,27 @@
+using System.ComponentModel;
+
+namespace ET
+{
+    public enum CollectTypeEnum
+    {
+        /// <summary>
+        /// 套装
+        /// </summary>
+        [Description("套装")] Suit = 1,
+
+        /// <summary>
+        /// 词牌
+        /// </summary>
+        [Description("词牌")] Card,
+
+        /// <summary>
+        /// 千山万水
+        /// </summary>
+        [Description("千山万水")] TravelGuide,
+
+        /// <summary>
+        /// 博物
+        /// </summary>
+        [Description("博物")] CulturalRelic
+    }
+}

+ 11 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/Enum/CollectTypeEnum.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e9307dd5d89490b469ba00342f43567d
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 141 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/Enum/LogTypeEnum.cs

@@ -0,0 +1,141 @@
+using System.ComponentModel;
+
+namespace ET
+{
+
+    public enum LogTypeEnum
+    {
+        /// <summary>
+        /// 未知
+        /// </summary>
+        [Description("未知")]
+        UN_KNOWN = 0,
+
+        /// <summary>
+        /// 节点统计
+        /// </summary>
+        [Description("节点统计")]
+        EventTrackFlow,
+
+        /// <summary>
+        /// 节点通过统计
+        /// </summary>
+        [Description("节点通过统计")]
+        EventTrackFlow2,
+
+
+        /// <summary>
+        /// 创建角色
+        /// </summary>
+        [Description("创建角色")]
+        CreatePlayerFlow,
+
+        /// <summary>
+        /// 创建账号
+        /// </summary>
+        [Description("创建账号")]
+        CreateAccountFlow,
+
+        /// <summary>
+        /// 活跃度统计
+        /// </summary>
+        [Description("活跃度统计")]
+        LivenCountFlow,
+
+        /// <summary>
+        /// 物品流水
+        /// </summary>
+        [Description("物品流水")]
+        ItemFlow,
+
+        /// <summary>
+        /// 养成流水
+        /// </summary>
+        [Description("养成流水")]
+        FosterFlow,
+
+        /// <summary>
+        /// 在线人数Ip,每5分钟统计在线人数跟在线ip数
+        /// </summary>
+        [Description("在线人数Ip,每5分钟统计在线人数跟在线ip数")]
+        OnlineCountFlow,
+
+        /// <summary>
+        /// 玩家在线时长
+        /// </summary>
+        [Description("玩家在线时长")]
+        OnlineTimeFlow,
+
+        /// <summary>
+        /// 游戏参与
+        /// </summary>
+        [Description("游戏参与")]
+        PlayParticipation,
+
+        /// <summary>
+        /// 关卡参与
+        /// </summary>
+        [Description("关卡参与")]
+        LevelParticipation,
+
+        /// <summary>
+        /// 田野调查
+        /// </summary>
+        [Description("田野调查")]
+        Fieldwork,
+
+        /// <summary>
+        /// 服装养护
+        /// </summary>
+        [Description("服装养护")]
+        ClothingMaintenance,
+
+        /// <summary>
+        /// 服装合成
+        /// </summary>
+        [Description("服装合成")]
+        ClothingSynthesis,
+
+        /// <summary>
+        /// 服装分解
+        /// </summary>
+        [Description("服装分解")]
+        ClothingDecomposition,
+
+        /// <summary>
+        /// 每日任务
+        /// </summary>
+        [Description("每日任务")]
+        DailyTask,
+
+        /// <summary>
+        /// 每日活跃度
+        /// </summary>
+        [Description("每日活跃度")]
+        DailyActivity,
+
+        /// <summary>
+        /// 每日签到
+        /// </summary>
+        [Description("每日签到")]
+        DailySignIn,
+
+        /// <summary>
+        /// 收集记录
+        /// </summary>
+        [Description("收集记录")]
+        Collect,
+
+        /// <summary>
+        /// 登录ip追踪
+        /// </summary>
+        [Description("登录ip追踪")]
+        IpLoginFlow,
+
+        /// <summary>
+        /// 玩家信息收集
+        /// </summary>
+        [Description("玩家信息收集")]
+        RoleInfoFlow
+    }
+}

+ 11 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/Enum/LogTypeEnum.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 47f38b5f7ec73a342ad0ae2bd655747f
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 37 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/Enum/NodeEnum.cs

@@ -0,0 +1,37 @@
+using System.ComponentModel;
+
+namespace ET
+{
+    /// <summary>
+    /// 策划列出来的游戏启动流程 节点
+    /// </summary>
+    public enum NodeEnum
+    {
+        [Description("游戏启动")]
+        OnStart = 1,
+
+        [Description("开始检查版本")]
+        StartCheckVersion = 2,
+
+        [Description("开始更新资源")]
+        StartDownload = 3,
+
+        [Description("开始加载游戏脚本")]
+        StartLoadGameDll = 4,
+
+        [Description("显示注册界面")]
+        ShowRegister = 5,
+
+        [Description("显示选服界面")]
+        ShowSelectServer = 6,
+
+        [Description("显示创角界面")]
+        ShowCreateRole = 7,
+
+        [Description("开始进入游戏")]
+        StartEnterGame = 8,
+
+        [Description("进入游戏成功")]
+        OnEnterGame = 9,
+    }
+}

+ 11 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/Enum/NodeEnum.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: daadf99150e59b544b05bfecd1c866b1
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 65 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/Enum/PlayParticipationEnum.cs

@@ -0,0 +1,65 @@
+using System.ComponentModel;
+
+namespace ET
+{
+    /// <summary>
+    /// 游戏玩法
+    /// </summary>
+    public enum PlayParticipationEnum
+    {
+
+        [Description("蜃中楼")]
+        CHUN_ZHONG_LOU = 901,
+
+        [Description("服装店")]
+        FU_ZHUANG_DIAN = 902,
+
+        [Description("服装养护")]
+        FU_ZHUANG_YANG_CHENG = 903,
+
+        [Description("服装合成")]
+        FU_ZHUANG_HE_CHENG = 904,
+
+        [Description("服装分解")]
+        FU_ZHUANG_FEN_JIE = 905,
+
+        [Description("摘星")]
+        ZAI_XING = 906,
+
+        [Description("织物修复")]
+        ZHI_WU_XIU_FU = 907,
+
+        [Description("金属修复")]
+        JIN_SHU_XIU_FU = 908,
+
+        [Description("书画修复")]
+        SHU_HUA_XIU_FU = 909,
+
+        [Description("查阅建档")]
+        CHA_YUE_JIAN_DNAG = 910,
+
+        [Description("田野调查")]
+        TIAN_YE_DIAO_CHA = 911,
+
+        [Description("图鉴")]
+        TU_JIAN = 912,
+
+        [Description("商城")]
+        SHANG_CHENG = 913,
+
+        [Description("拍照")]
+        PAI_ZHAO = 914,
+
+        [Description("每日任务")]
+        MEI_RI_REN_WU = 915,
+
+        [Description("每日登陆")]
+        MEI_RI_DNEG_LU = 916,
+
+        [Description("词牌")]
+        CI_PAI = 917,
+        
+        [Description("技能书分解")]
+        SKILL_BOOK_FEN_JIE = 918,
+    }
+}

+ 11 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/Enum/PlayParticipationEnum.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e55517911757f9e469807d87ed9e9393
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 583 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/Enum/ReasonEnum.cs

@@ -0,0 +1,583 @@
+using System.ComponentModel;
+
+namespace ET
+{
+    /// <summary>
+    /// 当前游戏的一些操作定位
+    /// </summary>
+    public enum ReasonEnum
+    {
+        /// <summary>
+        /// 默认/对于物品default不会记录日志
+        /// </summary>
+        [Description("默认")] Default = 0,
+
+        /// <summary>
+        /// Gm
+        /// </summary>
+        [Description("Gm")] Gm = 1,
+
+        /// <summary>
+        /// 充值
+        /// </summary>
+        [Description("充值")] Recharge = 2,
+
+        /// <summary>
+        /// 商店购买
+        /// </summary>
+        [Description("商店购买")] Shop = 3,
+
+        /// <summary>
+        /// 礼包返利
+        /// </summary>
+        [Description("礼包返利")] GiftBagRebate = 4,
+
+        /// <summary>
+        /// 秀坊-套装合成
+        /// </summary>
+        [Description("秀坊-套装合成")] XiuFangSuitSynthesis = 5,
+
+        /// <summary>
+        /// 秀坊-服装分解
+        /// </summary>
+        [Description("秀坊-服装分解")] XiuFangClothingDecomposition = 6,
+
+        /// <summary>
+        /// 收集得一套套装
+        /// </summary>
+        [Description("收集得一套套装")] CollectSuit = 7,
+
+        /// <summary>
+        /// 角色物品兑换
+        /// </summary>
+        [Description("角色物品兑换")] RoleItemExchange = 8,
+
+        /// <summary>
+        /// 请求使用物品
+        /// </summary>
+        [Description("请求使用物品")] ReqUseItem = 9,
+
+        /// <summary>
+        /// 获得词牌推送物品
+        /// </summary>
+        [Description("获得词牌推送物品")] GetCardPushItem = 10,
+
+        /// <summary>
+        /// 领取每日签到奖励
+        /// </summary>
+        [Description("领取每日签到奖励")] GetDailySinInBonus = 11,
+
+        /// <summary>
+        /// 接受礼物
+        /// </summary>
+        [Description("接受礼物")] TakeGiftFrom = 12,
+
+        /// <summary>
+        /// 点赞指定画廊作品
+        /// </summary>
+        [Description("点赞指定画廊作品")] LikeGalleryWorks = 13,
+
+        /// <summary>
+        /// 千山万水
+        /// </summary>
+        [Description("千山万水")] TravelGuide = 14,
+
+        /// <summary>
+        /// 抽奖(摘星)
+        /// </summary>
+        [Description("抽奖(摘星)")] DrawLuckyBox = 15,
+
+        /// <summary>
+        /// 获取套装养护奖金
+        /// </summary>
+        [Description("获取套装养护奖金")] GetMaintainSuitBonus = 16,
+
+        /// <summary>
+        /// 领取图鉴套装奖励
+        /// </summary>
+        [Description("领取图鉴套装奖励")] GetSuitGuideBoxBonus = 17,
+
+        /// <summary>
+        /// 领取合成套装奖励
+        /// </summary>
+        [Description("领取合成套装奖励")] GetSuitSyntheticBoxBonus = 18,
+
+        /// <summary>
+        /// 套装养护
+        /// </summary>
+        [Description("套装养护")] MakeNewSuit = 19,
+
+        /// <summary>
+        /// 完成剧情对话关卡
+        /// </summary>
+        [Description("完成剧情对话关卡")] FinishInstanceZonesDialog = 20,
+
+        /// <summary>
+        /// 完成战斗关卡
+        /// </summary>
+        [Description("完成战斗关卡")] FinishInstanceZonesFightLevel = 21,
+
+        /// <summary>
+        /// 快速完成战斗关卡
+        /// </summary>
+        [Description("快速完成战斗关卡")] FinishInstanceZonesFightQuickly = 22,
+
+        /// <summary>
+        /// 领取主线剧情宝箱奖励
+        /// </summary>
+        [Description("领取主线剧情宝箱奖励")] GetMainStoryBoxBonus = 23,
+
+        /// <summary>
+        /// 查阅建档分数宝箱
+        /// </summary>
+        [Description("查阅建档分数宝箱")] GetFilingScoreBonus = 24,
+
+        /// <summary>
+        /// 领取排行榜奖励
+        /// </summary>
+        [Description("领取排行榜奖励")] GetGalleryRankBonus = 25,
+
+        /// <summary>
+        /// 领取每日任务奖励
+        /// </summary>
+        [Description("领取每日任务奖励")] GetDailyTaskBonus = 26,
+
+        /// <summary>
+        /// 领取活跃度宝箱
+        /// </summary>
+        [Description("领取活跃度宝箱")] GetLivenessBox = 27,
+
+        /// <summary>
+        /// 田野副本结算
+        /// </summary>
+        [Description("田野副本结算")] GetFieldInstanceResult = 28,
+
+        /// <summary>
+        /// 领取邮件奖励
+        /// </summary>
+        [Description("领取邮件奖励")] GetMailItems = 29,
+
+        /// <summary>
+        /// 领取图鉴千山万水区域奖励
+        /// </summary>
+        [Description("领取图鉴千山万水区域奖励")] ReceiveTravelAreaReward = 30,
+
+        /// <summary>
+        /// 词牌升级
+        /// </summary>
+        [Description("词牌升级")] UpgradeCardLvl = 31,
+
+        /// <summary>
+        /// 词牌技能升级
+        /// </summary>
+        [Description("词牌技能升级")] UpgradeCardSkill = 32,
+
+        /// <summary>
+        /// 词牌升星
+        /// </summary>
+        [Description("词牌升星")] UpgradeCardStar = 33,
+
+        /// <summary>
+        /// 养护套装
+        /// </summary>
+        [Description("养护套装")] MaintainSuit = 34,
+
+        /// <summary>
+        /// 工作室副本购买次数
+        /// </summary>
+        [Description("工作室副本购买次数")] BuyStudioPlayTimes = 35,
+
+        /// <summary>
+        /// 角色物品兑换
+        /// </summary>
+        [Description("角色物品兑换")] ItemExchange = 36,
+
+        /// <summary>
+        /// 修改角色名
+        /// </summary>
+        [Description("修改角色名")] ModifyRoleName = 37,
+
+        /// <summary>
+        /// 领取任务奖励
+        /// </summary>
+        [Description("领取任务奖励")] GetTaskBonus = 38,
+
+        /// <summary>
+        /// 领取词牌星级奖励
+        /// </summary>
+        [Description("领取词牌星级奖励")] GetCardStarBonus = 39,
+
+        /// <summary>
+        /// 竞技场首次晋级奖励
+        /// </summary>
+        [Description("竞技场首次晋级奖励")] SendFightFirstUpPrize = 40,
+
+        /// <summary>
+        /// 竞技场发放战斗奖励
+        /// </summary>
+        [Description("竞技场发放战斗奖励")] SendFightPrize = 41,
+
+        /// <summary>
+        /// 竞技场购买挑战次数
+        /// </summary>
+        [Description("竞技场购买挑战次数")] BuyArenaFightTimes = 42,
+
+        /// <summary>
+        /// 竞技场刷新竞争对手
+        /// </summary>
+        [Description("竞技场刷新竞争对手")] RefreshArenaTargets = 43,
+
+        /// <summary>
+        /// 联盟修改名字或徽章
+        /// </summary>
+        [Description("联盟修改名字或徽章")] LeagueModifyNameOrBadge = 44,
+
+        /// <summary>
+        /// 领取VIP等级礼包
+        /// </summary>
+        [Description("领取VIP等级礼包")] GetVipLevelGif = 45,
+
+        /// <summary>
+        /// 领取VIP周礼包
+        /// </summary>
+        [Description("领取VIP周礼包")] GetVipWeekGif = 46,
+
+        /// <summary>
+        /// 补签
+        /// </summary>
+        [Description("补签")] ReSign = 47,
+
+        /// <summary>
+        /// 激活技能
+        /// </summary>
+        [Description("激活技能")] ActiveSkill = 48,
+
+        /// <summary>
+        /// 签到
+        /// </summary>
+        [Description("签到")] SignIn = 49,
+
+        /// <summary>
+        /// 领取专属单品
+        /// </summary>
+        [Description("领取专属单品")] GetMonthCardItem = 50,
+
+        /// <summary>
+        /// 领取/补领每日补给
+        /// </summary>
+        [Description("领取/补领每日补给")] DailySupply = 51,
+
+        /// <summary>
+        /// 联盟发广告
+        /// </summary>
+        [Description("联盟发广告")] SendLeagueAD = 52,
+
+        /// <summary>
+        /// 领取联盟福利
+        /// </summary>
+        [Description("领取联盟福利")] GetLeagueWelfare = 53,
+
+        /// <summary>
+        /// 创建联盟
+        /// </summary>
+        [Description("创建联盟")] CreateLeague = 54,
+
+        /// <summary>
+        /// 联盟祈福
+        /// </summary>
+        [Description("联盟祈福")] LeaguePray = 55,
+
+        /// <summary>
+        /// 升级通行证等级
+        /// </summary>
+        [Description("升级通行证等级")] UpgradeBattlePassLevel = 56,
+
+        /// <summary>
+        /// 领取通行证奖励
+        /// </summary>
+        [Description("领取通行证奖励")] GetBattlePassReward = 57,
+
+        /// <summary>
+        /// 七日活跃
+        /// </summary>
+        [Description("七日活跃")] Day7Activity = 58,
+
+        /// <summary>
+        /// 限时抽奖次数奖励
+        /// </summary>
+        [Description("限时抽奖次数奖励")] TimeLimitLuckyBoxTimesBonus = 59,
+
+        /// <summary>
+        /// 首充礼包
+        /// </summary>
+        [Description("首充礼包")] FirstRechargeBonus = 60,
+
+
+        /// <summary>
+        /// 活动奖励
+        /// </summary>
+        [Description("活动奖励")] ActivityBonus = 61,
+
+        /// <summary>
+        /// 限时累充
+        /// </summary>
+        [Description("限时累充")] ActivityRecharge = 62,
+
+        /// <summary>
+        /// 使用物品
+        /// </summary>
+        [Description("使用物品")] UseItem = 63,
+
+        /// <summary>
+        /// 领取月卡奖励
+        /// </summary>
+        [Description("领取月卡奖励")] GetMonthCardReward = 64,
+
+        /// <summary>
+        /// 开通月卡
+        /// </summary>
+        [Description("开通月卡")] OpenMonthCard = 65,
+
+        /// <summary>
+        /// 关闭月卡
+        /// </summary>
+        [Description("关闭月卡")] CloseMonthCard = 66,
+
+
+        /// <summary>
+        /// 竞技场赛季变更
+        /// </summary>  
+        [Description("竞技场赛季变更")] ArenaSeasonChange = 67,
+
+        /// <summary>
+        /// 雅集夜宴答题单题奖励
+        /// </summary>  
+        [Description("雅集夜宴答题单题奖励")] LeagueAnswerQuestionSingle = 68,
+
+        /// <summary>
+        /// 雅集夜宴答题结束奖励
+        /// </summary>  
+        [Description("雅集夜宴答题结束奖励")] LeagueAnswerQuestionEnd = 69,
+
+        /// <summary>
+        /// 秀坊-技能书分解
+        /// </summary>
+        [Description("秀坊-技能书分解")] XiuFangSkillBookDecomposition = 70,
+
+        /// <summary>
+        /// 茶话会雅集评分奖励
+        /// </summary>
+        [Description("茶话会雅集评分奖励")] LeagueTeaPartyAward = 71,
+
+        /// <summary>
+        /// 茶话会个人评分奖励
+        /// </summary>
+        [Description("茶话会个人评分奖励")] LeagueTeaPartyAwardPer = 72,
+
+        /// <summary>
+        /// 进入游戏
+        /// </summary>
+        [Description("进入游戏")] EnterGame = 73,
+
+        /// <summary>
+        /// 玩家升级
+        /// </summary>
+        [Description("玩家升级")] UpgradeRoleLvl = 74,
+
+        /// <summary>
+        /// 回复体力
+        /// </summary>
+        [Description("回复体力")] RecoverPower = 75,
+
+        /// <summary>
+        /// 阿福赠礼
+        /// </summary>
+        [Description("阿福赠礼")] ActivityLogin = 76,
+
+        /// <summary>
+        /// 茶会雅集奖励
+        /// </summary>
+        [Description("茶会雅集奖励")] TeapartyLeagueAward = 77,
+
+        /// <summary>
+        /// 茶会雅集个人
+        /// </summary>
+        [Description("茶会个人奖励")] TeapartyPerAward = 78,
+
+        /// <summary>
+        /// 激活码兑换
+        /// </summary>
+        [Description("激活码兑换")] RedeemRewards = 79,
+
+        /// <summary>
+        /// 小游戏
+        /// </summary>
+        [Description("小游戏")] MiniGame = 80,
+
+        /// <summary>
+        /// 千山万水加速
+        /// </summary>
+        [Description("千山万水加速")] TravelGuideSpeed = 81,
+
+        /// <summary>
+        /// 小游戏首通奖励
+        /// </summary>
+        [Description("小游戏首通奖励")] MiniGameFirstPassRewrd = 82,
+
+        /// <summary>
+        /// 小游戏星级奖励
+        /// </summary>
+        [Description("小游戏星级奖励")] MiniGameStarRewrd = 83,
+
+        /// <summary>
+        /// 活动套装部件合成
+        /// </summary>
+        [Description("活动套装部件合成")] ItemSynthetic = 84,
+
+        /// <summary>
+        /// 拜访活动礼盒奖励
+        /// </summary>
+        [Description("拜访活动礼盒奖励")] NpcVisitRewrd = 85,
+
+        /// <summary>
+        /// 招财进宝
+        /// </summary>
+        [Description("招财进宝")] ActivityDress = 86,
+
+        /// <summary>
+        /// 成长基金
+        /// </summary>
+        [Description("成长基金")] GrowthFund = 87,
+
+        /// <summary>
+        /// 红包
+        /// </summary>
+        [Description("红包")] RedPacket = 88,
+
+        /// <summary>
+        /// 活动签到
+        /// </summary>
+        [Description("活动签到")] ActivitySign = 89,
+
+        /// <summary>
+        /// 高级副本评分奖励领取
+        /// </summary>
+        [Description("高级副本评分奖励领取")] InstanceZonesRatingReward = 90,
+
+        /// <summary>
+        /// 高级副本全部评分奖励领取
+        /// </summary>
+        [Description("高级副本全部评分奖励领取")] AllInstanceZonesRatingReward = 91,
+
+        /// <summary>
+        /// 高级副本章节奖励
+        /// </summary>
+        [Description("高级副本章节奖励")] ChapterReward = 92,
+
+        /// <summary>
+        /// 新人登录礼包
+        /// </summary>
+        [Description("新人登录礼包")] NewLoginReward = 93,
+
+        /// <summary>
+        /// 关卡章节奖励
+        /// </summary>
+        [Description("关卡章节奖励")] ChapterPassReward = 94,
+
+        /// <summary>
+        /// 秀坊-卡牌合成
+        /// </summary>
+        [Description("秀坊-卡牌合成")] XiuFangCardSynthesis = 95,
+
+        /// <summary>
+        /// 三选一套装领取
+        /// </summary>
+        [Description("三选一套装领取")] SuitSelect = 96,
+
+        /// <summary>
+        /// 领取套装集齐奖励
+        /// </summary>
+        [Description("领取套装集齐奖励")] GetSuitBringTogetherBoxBonus = 97,
+
+        /// <summary>
+        /// 搭配学院学习
+        /// </summary>
+        [Description("搭配学院学习")] DressUpSkillLearning = 98,
+
+        /// <summary>
+        /// 每日首次分享
+        /// </summary>
+        [Description("每日首次分享")] DayFirstShareReward = 99,
+
+        /// <summary>
+        /// 领取消暑礼包
+        /// </summary>
+        [Description("领取消暑礼包")] GetSummerVacationBox = 100,
+
+        /// <summary>
+        /// 搭配赛评选普通奖励
+        /// </summary>
+        [Description("搭配赛评选普通奖励")] JudgingRewardType = 101,
+
+        /// <summary>
+        /// 搭配赛评选特殊奖励
+        /// </summary>
+        [Description("搭配赛评选特殊奖励")] ExtraRewardsType = 102,
+
+        /// <summary>
+        /// 爬塔一键通关
+        /// </summary>
+        [Description("爬塔一键通关")] CimbingTowerOneClickPass = 103,
+
+        /// <summary>
+        /// 爬塔通过关卡
+        /// </summary>
+        [Description("爬塔通过关卡")] CimbingTowerLevelPass = 104,
+
+        /// <summary>
+        /// 搭配赛头像框到期
+        /// </summary>
+        [Description("搭配赛头像框到期")] JudgingRoundEndTime = 105,
+
+        /// <summary>
+        /// 轮盘活动许愿
+        /// </summary>
+        [Description("轮盘活动许愿")] WishingLuckyBox = 106,
+
+        /// <summary>
+        /// 首次绑定手机号
+        /// </summary>
+        [Description("首次绑定手机号")] FirstBindPhoneNumber = 107,
+        
+        /// <summary>
+        /// 合成小游戏任务完成
+        /// </summary>
+        [Description("合成小游戏任务完成")] MergeGameLevelPass = 108,
+        
+        /// <summary>
+        /// 合成小游戏首次获得某材料
+        /// </summary>
+        [Description("合成小游戏首次获得某材料")] MergeGameBonusFirstReward = 109,
+        
+        /// <summary>
+        /// 合成小游戏购买材料
+        /// </summary>
+        [Description("合成小游戏购买材料")] MergeGameGouMaiCaiLiao = 110,
+        
+        /// <summary>
+        /// 合成小游戏材料出售
+        /// </summary>
+        [Description("合成小游戏材料出售")] MergeGameChuShou = 111,
+        
+        /// <summary>
+        /// 盲盒抽奖
+        /// </summary>
+        [Description("盲盒抽奖")] BlindBox = 112,
+        
+        /// <summary>
+        /// 登记玩家信息
+        /// </summary>
+        [Description("登记玩家信息")] FirstRegisterRoleInfo = 113,
+        
+    }
+}

+ 11 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/Enum/ReasonEnum.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 1873def82e7d7e64c8fe8782b1848ed5
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 2e3acffb00755f547be5d7f81d3b01eb
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 103 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/ArenaRoleFlow.cs

@@ -0,0 +1,103 @@
+using GFGGame;
+using System;
+
+namespace ET
+{
+    /// <summary>
+    /// 竞技场日志
+    /// </summary>
+    public class ArenaRoleFlow : SingletonBase<ArenaRoleFlow>, ILogBase
+    {
+         
+        /// <summary>
+        /// 平台ID
+        /// </summary>
+        public int PlatFormId = 1;
+
+        /// <summary>
+        /// 渠道ID
+        /// </summary>
+        public int ChannelId = 1;
+
+        /// <summary>
+        /// 服务器ID
+        /// </summary>
+        public int ServerId = 0;
+
+        /// <summary>
+        /// 记录时间
+        /// </summary>
+        public long DtEventTime = DateTimeUtil.GetNowTime(DateTimeUtil.FormatE);
+
+        /// <summary>
+        /// 操作编号
+        /// </summary>
+        public string EventId = GenerateIDUtil.GenerateId();
+
+        /// <summary>
+        /// 赛季编号
+        /// </summary>
+        public int SeasonNumber = 0;
+
+        /// <summary>
+        /// 挑战者玩家id
+        /// </summary>
+        public long PlayerId = 0;
+
+        /// <summary>
+        /// 挑战者玩家名
+        /// </summary>
+        public string PlayerName = "";
+
+        /// <summary>
+        /// 挑战者玩家段位
+        /// </summary>
+        public int PlayerRank = 0;
+
+        /// <summary>
+        /// 挑战者玩家战力
+        /// </summary>
+        public long PlayerPower = 0;
+
+        /// <summary>
+        /// 挑战者玩家名次
+        /// </summary>
+        public int PlayerRanking = 0;
+
+        /// <summary>
+        /// 对手是否是机器人
+        /// </summary>
+        public bool IsRobot = false;
+
+        /// <summary>
+        /// 对手玩家id
+        /// </summary>
+        public long TargetPlayerId = 0;
+
+        /// <summary>
+        /// 玩家名
+        /// </summary>
+        public string TargetPlayerName = "";
+
+        /// <summary>
+        /// 玩家段位
+        /// </summary>
+        public int TargetPlayerRank = 0;
+
+        /// <summary>
+        /// 玩家战力
+        /// </summary>
+        public long TargetPlayerPower = 0;
+
+        /// <summary>
+        /// 对手玩家名次
+        /// </summary>
+        public int TargetPlayerRanking = 0;
+
+        /// <summary>
+        /// 是否挑战胜利
+        /// </summary>
+        public bool IsVictory = false;
+
+    }
+}

+ 11 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/ArenaRoleFlow.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: b9024e4e50da3674084aba4bc4244ec0
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/Base.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a41d721e9eb16e346b407eb22dfd0403
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 7 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/Base/ILogBase.cs

@@ -0,0 +1,7 @@
+namespace ET
+{
+    public interface ILogBase
+    {
+
+    }
+}

+ 11 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/Base/ILogBase.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 44d5aefacf027aa4193ae78b69f300c5
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 63 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/ChatMonitoringFlow.cs

@@ -0,0 +1,63 @@
+using GFGGame;
+using System;
+
+namespace ET
+{
+    /// <summary>
+    /// 聊天监控
+    /// </summary>
+    public class ChatMonitoringFlow : SingletonBase<ChatMonitoringFlow>, ILogBase
+    {
+         
+        /// <summary>
+        /// 平台ID
+        /// </summary>
+        public int PlatFormId = 1;
+
+        /// <summary>
+        /// 渠道ID
+        /// </summary>
+        public int ChannelId = 1;
+
+        /// <summary>
+        /// 服务器ID
+        /// </summary>
+        public int ServerId = 0;
+
+        /// <summary>
+        /// 记录时间
+        /// </summary>
+        public long DtEventTime = DateTimeUtil.GetNowTime(DateTimeUtil.FormatE);
+
+        /// <summary>
+        /// 操作编号
+        /// </summary>
+        public string EventId = GenerateIDUtil.GenerateId();
+
+        /// <summary>
+        /// 玩家id
+        /// </summary>
+        public long PlayerId = 0;
+
+        /// <summary>
+        /// 玩家名
+        /// </summary>
+        public string PlayerName = "";
+
+        /// <summary>
+        /// 发送对象
+        /// </summary>
+        public string PushChatObj = "";
+
+        /// <summary>
+        /// 聊天内容
+        /// </summary>
+        public string Content = "";
+
+        /// <summary>
+        /// 聊天频道
+        /// </summary>
+        public int ChatChannelType = 0;
+
+    }
+}

+ 11 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/ChatMonitoringFlow.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 36758eb4e6f73af478cdc3400e320b1f
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 58 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/ClothingDecomposition.cs

@@ -0,0 +1,58 @@
+using GFGGame;
+using System;
+
+namespace ET
+{
+    /// <summary>
+    /// 服装分解
+    /// </summary>
+    public class ClothingDecomposition : SingletonBase<ClothingDecomposition>, ILogBase
+    {
+         
+        /// <summary>
+        /// 渠道ID
+        /// </summary>
+        public int ChannelId = 1;
+
+        /// <summary>
+        /// 记录时间
+        /// </summary>
+        public long DtEventTime = DateTimeUtil.GetNowTime(DateTimeUtil.FormatE);
+
+        /// <summary>
+        /// 操作编号
+        /// </summary>
+        public string EventId = GenerateIDUtil.GenerateId();
+
+        /// <summary>
+        /// 部件Ids 2,4,5
+        /// </summary>
+        public string ItemIds = "";
+
+        /// <summary>
+        /// 当次服装分解数量 2,4,5
+        /// </summary>
+        public string ItemNums = "";
+
+        /// <summary>
+        /// 平台ID
+        /// </summary>
+        public int PlatFormId = 1;
+
+        /// <summary>
+        /// 玩家id
+        /// </summary>
+        public long PlayerId = 0;
+
+        /// <summary>
+        /// 玩家名
+        /// </summary>
+        public string PlayerName = "";
+
+        /// <summary>
+        /// 服务器ID
+        /// </summary>
+        public int ServerId = 0;
+
+    }
+}

+ 11 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/ClothingDecomposition.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a6147cd38ca370a49887c2eee2e164e5
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 68 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/ClothingMaintenance.cs

@@ -0,0 +1,68 @@
+using GFGGame;
+using System;
+
+namespace ET
+{
+    /// <summary>
+    /// 服装养护
+    /// </summary>
+    public class ClothingMaintenance : SingletonBase<ClothingMaintenance>, ILogBase
+    {
+         
+        /// <summary>
+        /// 渠道ID
+        /// </summary>
+        public int ChannelId = 1;
+
+        /// <summary>
+        /// 当前养护等级
+        /// </summary>
+        public int CurLevel = 0;
+
+        /// <summary>
+        /// 记录时间
+        /// </summary>
+        public long DtEventTime = DateTimeUtil.GetNowTime(DateTimeUtil.FormatE);
+
+        /// <summary>
+        /// 操作编号
+        /// </summary>
+        public string EventId = GenerateIDUtil.GenerateId();
+
+        /// <summary>
+        /// 是否焕新
+        /// </summary>
+        public int IsRejuvenate = 0;
+
+        /// <summary>
+        /// 平台ID
+        /// </summary>
+        public int PlatFormId = 1;
+
+        /// <summary>
+        /// 玩家id
+        /// </summary>
+        public long PlayerId = 0;
+
+        /// <summary>
+        /// 玩家名
+        /// </summary>
+        public string PlayerName = "";
+
+        /// <summary>
+        /// 服务器ID
+        /// </summary>
+        public int ServerId = 0;
+
+        /// <summary>
+        /// 服装Id
+        /// </summary>
+        public int SuitId = 0;
+
+        /// <summary>
+        /// 服装名称
+        /// </summary>
+        public string SuitName = "";
+
+    }
+}

+ 11 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/ClothingMaintenance.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 047a05a257a127e4096acdfeab8b4e8a
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 58 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/ClothingSynthesis.cs

@@ -0,0 +1,58 @@
+using GFGGame;
+using System;
+
+namespace ET
+{
+    /// <summary>
+    /// 服装合成
+    /// </summary>
+    public class ClothingSynthesis : SingletonBase<ClothingSynthesis>, ILogBase
+    {
+         
+        /// <summary>
+        /// 渠道ID
+        /// </summary>
+        public int ChannelId = 1;
+
+        /// <summary>
+        /// 记录时间
+        /// </summary>
+        public long DtEventTime = DateTimeUtil.GetNowTime(DateTimeUtil.FormatE);
+
+        /// <summary>
+        /// 操作编号
+        /// </summary>
+        public string EventId = GenerateIDUtil.GenerateId();
+
+        /// <summary>
+        /// 平台ID
+        /// </summary>
+        public int PlatFormId = 1;
+
+        /// <summary>
+        /// 玩家id
+        /// </summary>
+        public long PlayerId = 0;
+
+        /// <summary>
+        /// 玩家名
+        /// </summary>
+        public string PlayerName = "";
+
+        /// <summary>
+        /// 服务器ID
+        /// </summary>
+        public int ServerId = 0;
+
+        /// <summary>
+        /// 服装Id
+        /// </summary>
+        public int SuitId = 0;
+
+        /// <summary>
+        /// 服装名称
+        /// </summary>
+        public string SuitName = "";
+
+    }
+}

+ 11 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/ClothingSynthesis.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 97db7b0a8d529cb4197a73b941d6a8fc
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 63 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/Collect.cs

@@ -0,0 +1,63 @@
+using GFGGame;
+using System;
+
+namespace ET
+{
+    /// <summary>
+    /// 套装收集日志,集成一套即记录
+    /// </summary>
+    public class Collect : SingletonBase<Collect>, ILogBase
+    {
+         
+        /// <summary>
+        /// 渠道ID
+        /// </summary>
+        public int ChannelId = 1;
+
+        /// <summary>
+        /// 收集id
+        /// </summary>
+        public int CollectId = 0;
+
+        /// <summary>
+        /// 收集名称
+        /// </summary>
+        public string CollectName = "";
+
+        /// <summary>
+        /// 收集类型
+        /// </summary>
+        public int CollectType = 0;
+
+        /// <summary>
+        /// 记录时间
+        /// </summary>
+        public long DtEventTime = DateTimeUtil.GetNowTime(DateTimeUtil.FormatE);
+
+        /// <summary>
+        /// 操作编号
+        /// </summary>
+        public string EventId = GenerateIDUtil.GenerateId();
+
+        /// <summary>
+        /// 平台ID
+        /// </summary>
+        public int PlatFormId = 1;
+
+        /// <summary>
+        /// 玩家id
+        /// </summary>
+        public long PlayerId = 0;
+
+        /// <summary>
+        /// 玩家名
+        /// </summary>
+        public string PlayerName = "";
+
+        /// <summary>
+        /// 服务器ID
+        /// </summary>
+        public int ServerId = 0;
+
+    }
+}

+ 11 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/Collect.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 704a53bb868f06f4983ec26d2c941598
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 48 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/CreateAccountFlow.cs

@@ -0,0 +1,48 @@
+using GFGGame;
+using System;
+
+namespace ET
+{
+    /// <summary>
+    /// 创建账号
+    /// </summary>
+    public class CreateAccountFlow : SingletonBase<CreateAccountFlow>, ILogBase
+    {
+         
+        /// <summary>
+        /// 账号名
+        /// </summary>
+        public string Account = "";
+
+        /// <summary>
+        /// 渠道ID
+        /// </summary>
+        public int ChannelId = 1;
+
+        /// <summary>
+        /// 记录时间
+        /// </summary>
+        public long DtEventTime = DateTimeUtil.GetNowTime(DateTimeUtil.FormatE);
+
+        /// <summary>
+        /// 操作编号
+        /// </summary>
+        public string EventId = GenerateIDUtil.GenerateId();
+
+        /// <summary>
+        /// 平台ID
+        /// </summary>
+        public int PlatFormId = 1;
+
+        /// <summary>
+        /// 服务器ID
+        /// </summary>
+        public int ServerId = 0;
+
+        /// <summary>
+        /// 账户id
+        /// </summary>
+        public long AccountId = 0;
+
+    }
+}

+ 11 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/CreateAccountFlow.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: ded7010f52dffd24081254702319d227
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 53 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/CreatePlayerFlow.cs

@@ -0,0 +1,53 @@
+using GFGGame;
+using System;
+
+namespace ET
+{
+    /// <summary>
+    /// 创建角色
+    /// </summary>
+    public class CreatePlayerFlow : SingletonBase<CreatePlayerFlow>, ILogBase
+    {
+         
+        /// <summary>
+        /// 渠道ID
+        /// </summary>
+        public int ChannelId = 1;
+
+        /// <summary>
+        /// 记录时间
+        /// </summary>
+        public long DtEventTime = DateTimeUtil.GetNowTime(DateTimeUtil.FormatE);
+
+        /// <summary>
+        /// 操作编号
+        /// </summary>
+        public string EventId = GenerateIDUtil.GenerateId();
+
+        /// <summary>
+        /// 平台ID
+        /// </summary>
+        public int PlatFormId = 1;
+
+        /// <summary>
+        /// 玩家id
+        /// </summary>
+        public long PlayerId = 0;
+
+        /// <summary>
+        /// 玩家名
+        /// </summary>
+        public string PlayerName = "";
+
+        /// <summary>
+        /// 服务器ID
+        /// </summary>
+        public int ServerId = 0;
+
+        /// <summary>
+        /// 账户id
+        /// </summary>
+        public long AccountId = 0;
+
+    }
+}

+ 11 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/CreatePlayerFlow.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 43f83fc808d162d498f29a00283220c6
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 53 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/DailyActivity.cs

@@ -0,0 +1,53 @@
+using GFGGame;
+using System;
+
+namespace ET
+{
+    /// <summary>
+    /// 每日活跃--每达成一个阶段 就上报一次日志
+    /// </summary>
+    public class DailyActivity : SingletonBase<DailyActivity>, ILogBase
+    {
+         
+        /// <summary>
+        /// 活跃宝箱id
+        /// </summary>
+        public int BoxId = 0;
+
+        /// <summary>
+        /// 渠道ID
+        /// </summary>
+        public int ChannelId = 1;
+
+        /// <summary>
+        /// 记录时间
+        /// </summary>
+        public long DtEventTime = DateTimeUtil.GetNowTime(DateTimeUtil.FormatE);
+
+        /// <summary>
+        /// 操作编号
+        /// </summary>
+        public string EventId = GenerateIDUtil.GenerateId();
+
+        /// <summary>
+        /// 平台ID
+        /// </summary>
+        public int PlatFormId = 1;
+
+        /// <summary>
+        /// 玩家id
+        /// </summary>
+        public long PlayerId = 0;
+
+        /// <summary>
+        /// 玩家名
+        /// </summary>
+        public string PlayerName = "";
+
+        /// <summary>
+        /// 服务器ID
+        /// </summary>
+        public int ServerId = 0;
+
+    }
+}

+ 11 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/DailyActivity.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 948d5f3e7ba8e5e47a7007d0f1724b6a
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 53 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/DailySignIn.cs

@@ -0,0 +1,53 @@
+using GFGGame;
+using System;
+
+namespace ET
+{
+    /// <summary>
+    /// 每日签到
+    /// </summary>
+    public class DailySignIn : SingletonBase<DailySignIn>, ILogBase
+    {
+         
+        /// <summary>
+        /// 渠道ID
+        /// </summary>
+        public int ChannelId = 1;
+
+        /// <summary>
+        /// 签到编号
+        /// </summary>
+        public int CurrentBonusId = 0;
+
+        /// <summary>
+        /// 记录时间
+        /// </summary>
+        public long DtEventTime = DateTimeUtil.GetNowTime(DateTimeUtil.FormatE);
+
+        /// <summary>
+        /// 操作编号
+        /// </summary>
+        public string EventId = GenerateIDUtil.GenerateId();
+
+        /// <summary>
+        /// 平台ID
+        /// </summary>
+        public int PlatFormId = 1;
+
+        /// <summary>
+        /// 玩家id
+        /// </summary>
+        public long PlayerId = 0;
+
+        /// <summary>
+        /// 玩家名
+        /// </summary>
+        public string PlayerName = "";
+
+        /// <summary>
+        /// 服务器ID
+        /// </summary>
+        public int ServerId = 0;
+
+    }
+}

+ 11 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/DailySignIn.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: b6700a84decc83b4d93b9ff4245a7bb4
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 53 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/DailyTask.cs

@@ -0,0 +1,53 @@
+using GFGGame;
+using System;
+
+namespace ET
+{
+    /// <summary>
+    /// 每日任务
+    /// </summary>
+    public class DailyTask : SingletonBase<DailyTask>, ILogBase
+    {
+         
+        /// <summary>
+        /// 渠道ID
+        /// </summary>
+        public int ChannelId = 1;
+
+        /// <summary>
+        /// 记录时间
+        /// </summary>
+        public long DtEventTime = DateTimeUtil.GetNowTime(DateTimeUtil.FormatE);
+
+        /// <summary>
+        /// 操作编号
+        /// </summary>
+        public string EventId = GenerateIDUtil.GenerateId();
+
+        /// <summary>
+        /// 平台ID
+        /// </summary>
+        public int PlatFormId = 1;
+
+        /// <summary>
+        /// 玩家id
+        /// </summary>
+        public long PlayerId = 0;
+
+        /// <summary>
+        /// 玩家名
+        /// </summary>
+        public string PlayerName = "";
+
+        /// <summary>
+        /// 服务器ID
+        /// </summary>
+        public int ServerId = 0;
+
+        /// <summary>
+        /// 任务id
+        /// </summary>
+        public int TaskId = 0;
+
+    }
+}

+ 11 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/DailyTask.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 30a9ea548bad2904c8ed0387fd9ddc00
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 48 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/EventTrackFlow2.cs

@@ -0,0 +1,48 @@
+using GFGGame;
+using System;
+
+namespace ET
+{
+    /// <summary>
+    /// 节点通过统计
+    /// </summary>
+    public class EventTrackFlow2 : SingletonBase<EventTrackFlow2>, ILogBase
+    {
+         
+        /// <summary>
+        /// 账号名
+        /// </summary>
+        public string Account = "";
+
+        /// <summary>
+        /// 渠道ID
+        /// </summary>
+        public int ChannelId = 1;
+
+        /// <summary>
+        /// 记录时间
+        /// </summary>
+        public long DtEventTime = DateTimeUtil.GetNowTime(DateTimeUtil.FormatE);
+
+        /// <summary>
+        /// 操作编号
+        /// </summary>
+        public string EventId = GenerateIDUtil.GenerateId();
+
+        /// <summary>
+        /// 节点位置id
+        /// </summary>
+        public int EventType = 0;
+
+        /// <summary>
+        /// 平台ID
+        /// </summary>
+        public int PlatFormId = 1;
+
+        /// <summary>
+        /// 服务器ID
+        /// </summary>
+        public int ServerId = 0;
+
+    }
+}

+ 11 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/EventTrackFlow2.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f3630462e4e4f184b99571f63c146d9b
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 78 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/FosterFlow.cs

@@ -0,0 +1,78 @@
+using GFGGame;
+using System;
+
+namespace ET
+{
+    /// <summary>
+    /// 养成流水
+    /// </summary>
+    public class FosterFlow : SingletonBase<FosterFlow>, ILogBase
+    {
+         
+        /// <summary>
+        /// 卡牌id
+        /// </summary>
+        public int CardId = 0;
+
+        /// <summary>
+        /// 卡牌名称
+        /// </summary>
+        public string CardName = "";
+
+        /// <summary>
+        /// 渠道ID
+        /// </summary>
+        public int ChannelId = 1;
+
+        /// <summary>
+        /// 当前等级
+        /// </summary>
+        public int CurLevel = 0;
+
+        /// <summary>
+        /// 当前星级
+        /// </summary>
+        public int CurStar = 0;
+
+        /// <summary>
+        /// 记录时间
+        /// </summary>
+        public long DtEventTime = DateTimeUtil.GetNowTime(DateTimeUtil.FormatE);
+
+        /// <summary>
+        /// 操作编号
+        /// </summary>
+        public string EventId = GenerateIDUtil.GenerateId();
+
+        /// <summary>
+        /// 操作类型 0词牌升级 1词牌升星 2技能升级
+        /// </summary>
+        public int OpeType = 0;
+
+        /// <summary>
+        /// 平台ID
+        /// </summary>
+        public int PlatFormId = 1;
+
+        /// <summary>
+        /// 玩家id
+        /// </summary>
+        public long PlayerId = 0;
+
+        /// <summary>
+        /// 玩家名
+        /// </summary>
+        public string PlayerName = "";
+
+        /// <summary>
+        /// 服务器ID
+        /// </summary>
+        public int ServerId = 0;
+
+        /// <summary>
+        /// 当前技能等级情况:技能id1:2级;技能id2:3级
+        /// </summary>
+        public string SkillDes = "";
+
+    }
+}

+ 11 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/FosterFlow.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 386b80393e0aa3c46bb9fa65c6a81d22
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 53 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/GuideFlow.cs

@@ -0,0 +1,53 @@
+using GFGGame;
+using System;
+
+namespace ET
+{
+    /// <summary>
+    /// 引导原始日志
+    /// </summary>
+    public class GuideFlow : SingletonBase<GuideFlow>, ILogBase
+    {
+         
+        /// <summary>
+        /// 平台ID
+        /// </summary>
+        public int PlatFormId = 1;
+
+        /// <summary>
+        /// 渠道ID
+        /// </summary>
+        public int ChannelId = 1;
+
+        /// <summary>
+        /// 服务器ID
+        /// </summary>
+        public int ServerId = 0;
+
+        /// <summary>
+        /// 记录时间
+        /// </summary>
+        public long DtEventTime = DateTimeUtil.GetNowTime(DateTimeUtil.FormatE);
+
+        /// <summary>
+        /// 操作编号
+        /// </summary>
+        public string EventId = GenerateIDUtil.GenerateId();
+
+        /// <summary>
+        /// 玩家Id
+        /// </summary>
+        public long PlayerId = 0;
+
+        /// <summary>
+        /// 玩家名
+        /// </summary>
+        public string PlayerName = "";
+
+        /// <summary>
+        /// 引导id -> GuideId*100+1 OR GuideId*100+2
+        /// </summary>
+        public int GuideId = 0;
+
+    }
+}

+ 11 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/GuideFlow.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 7e2a59ccd8a7365428f7b7e2efb67f02
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 83 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/ItemFlow.cs

@@ -0,0 +1,83 @@
+using GFGGame;
+using System;
+
+namespace ET
+{
+    /// <summary>
+    /// 物品流水
+    /// </summary>
+    public class ItemFlow : SingletonBase<ItemFlow>, ILogBase
+    {
+         
+        /// <summary>
+        /// 分表字段
+        /// </summary>
+        public string CreateTime  = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+
+        /// <summary>
+        /// 改变数量
+        /// </summary>
+        public long ChangeNum = 0;
+
+        /// <summary>
+        /// 渠道ID
+        /// </summary>
+        public int ChannelId = 1;
+
+        /// <summary>
+        /// 当前值
+        /// </summary>
+        public long CurNum = 0;
+
+        /// <summary>
+        /// 记录时间
+        /// </summary>
+        public long DtEventTime = DateTimeUtil.GetNowTime(DateTimeUtil.FormatE);
+
+        /// <summary>
+        /// 操作编号
+        /// </summary>
+        public string EventId = GenerateIDUtil.GenerateId();
+
+        /// <summary>
+        /// 物品id
+        /// </summary>
+        public int ItemId = 0;
+
+        /// <summary>
+        /// 物品名称
+        /// </summary>
+        public string ItemName = "";
+
+        /// <summary>
+        /// 平台ID
+        /// </summary>
+        public int PlatFormId = 1;
+
+        /// <summary>
+        /// 玩家id
+        /// </summary>
+        public long PlayerId = 0;
+
+        /// <summary>
+        /// 玩家名
+        /// </summary>
+        public string PlayerName = "";
+
+        /// <summary>
+        /// 来源
+        /// </summary>
+        public int Reason = 0;
+
+        /// <summary>
+        /// 服务器ID
+        /// </summary>
+        public int ServerId = 0;
+
+        /// <summary>
+        /// 产出消耗
+        /// </summary>
+        public int Type = 0;
+
+    }
+}

+ 11 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/ItemFlow.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 9681daa08266df84f88432761e15cf9a
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 83 - 0
GameClient/Assets/Game/CSShare/Codes/Model/App/LogServer/LogAdd/LeagueChatFlow.cs

@@ -0,0 +1,83 @@
+using GFGGame;
+using System;
+
+namespace ET
+{
+    /// <summary>
+    /// 雅集聊天日志
+    /// </summary>
+    public class LeagueChatFlow : SingletonBase<LeagueChatFlow>, ILogBase
+    {
+         
+        /// <summary>
+        /// 玩家id
+        /// </summary>
+        public long PlayerId = 0;
+
+        /// <summary>
+        /// 玩家名
+        /// </summary>
+        public string PlayerName = "";
+
+        /// <summary>
+        /// 账户id
+        /// </summary>
+        public long AccountId = 0;
+
+        /// <summary>
+        /// 账号名
+        /// </summary>
+        public string Account = "";
+
+        /// <summary>
+        /// 渠道ID
+        /// </summary>
+        public int ChannelId = 1;
+
+        /// <summary>
+        /// 记录时间
+        /// </summary>
+        public long DtEventTime = DateTimeUtil.GetNowTime(DateTimeUtil.FormatE);
+
+        /// <summary>
+        /// 操作编号
+        /// </summary>
+        public string EventId = GenerateIDUtil.GenerateId();
+
+        /// <summary>
+        /// 平台ID
+        /// </summary>
+        public int PlatFormId = 1;
+
+        /// <summary>
+        /// 服务器ID
+        /// </summary>
+        public int ServerId = 0;
+
+        /// <summary>
+        /// 聊天频道
+        /// </summary>
+        public int ChatType = 0;
+
+        /// <summary>
+        /// 雅集职位
+        /// </summary>
+        public string Pos = "";
+
+        /// <summary>
+        /// 聊天内容
+        /// </summary>
+        public string ChatContent = "";
+
+        /// <summary>
+        /// 联盟名称
+        /// </summary>
+        public string LeagueName = "";
+
+        /// <summary>
+        /// 联盟Id
+        /// </summary>
+        public long LeagueId = 0;
+
+    }
+}

Некоторые файлы не были показаны из-за большого количества измененных файлов