Main/Core/NetworkPackage/DTCFile/ServerPack/HA1_Sys/DTCA106_tagMCCoinToGoldReport.cs
New file @@ -0,0 +1,12 @@ using UnityEngine; using System.Collections; //A1 06 点卷转化元宝充值记录 #tagMCCoinToGoldReport public class DTCA106_tagMCCoinToGoldReport : DtcBasic { public override void Done(GameNetPackBasic vNetPack) { base.Done(vNetPack); HA106_tagMCCoinToGoldReport vNetData = vNetPack as HA106_tagMCCoinToGoldReport; SDKUtils.Instance.SendTraceEvent(6, money : (int)vNetData.Coin, orderID : vNetData.OrderID); } } Main/Core/NetworkPackage/DTCFile/ServerPack/HA1_Sys/DTCA106_tagMCCoinToGoldReport.cs.meta
New file @@ -0,0 +1,11 @@ fileFormatVersion: 2 guid: c73183669494bd4448b57d8ca997ff7d MonoImporter: externalObjects: {} serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Main/Core/NetworkPackage/DTCFile/ServerPack/HA1_Sys/DTCA124_tagMCPlayerInfo.cs
New file @@ -0,0 +1,12 @@ using UnityEngine; using System.Collections; // A1 24 玩家初始化扩展信息 #tagMCPlayerInfo public class DTCA124_tagMCPlayerInfo : DtcBasic { public override void Done(GameNetPackBasic vNetPack) { base.Done(vNetPack); HA124_tagMCPlayerInfo vNetData = vNetPack as HA124_tagMCPlayerInfo; TimeUtility.OnRefreshCreateRoleTime(vNetData); } } Main/Core/NetworkPackage/DTCFile/ServerPack/HA1_Sys/DTCA124_tagMCPlayerInfo.cs.meta
New file @@ -0,0 +1,11 @@ fileFormatVersion: 2 guid: 4ecfdd87361b3b246a7ee62fe89eccf2 MonoImporter: externalObjects: {} serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs
@@ -153,6 +153,8 @@ Register(typeof(HA131_tagSCSettingDataInfo), typeof(DTCA131_tagSCSettingDataInfo)); Register(typeof(HAA88_tagMCActLunhuidianInfo), typeof(DTCAA88_tagMCActLunhuidianInfo)); Register(typeof(HAA89_tagMCActLunhuidianPlayerInfo), typeof(DTCAA89_tagMCActLunhuidianPlayerInfo)); Register(typeof(HA124_tagMCPlayerInfo), typeof(DTCA124_tagMCPlayerInfo)); Register(typeof(HA106_tagMCCoinToGoldReport), typeof(DTCA106_tagMCCoinToGoldReport)); } //主工程注册封包 Main/Core/NetworkPackage/ServerPack/HA1_Sys/HA106_tagMCCoinToGoldReport.cs
New file @@ -0,0 +1,27 @@ using UnityEngine; using System.Collections; //A1 06 点卷转化元宝充值记录 #tagMCCoinToGoldReport public class HA106_tagMCCoinToGoldReport : GameNetPackBasic { public byte OrderLen; public string OrderID; // 订单id public uint Coin; // 充值的点卷 public ushort RecordID; // ctgID public byte OrderInfoLen; public string OrderInfo; public HA106_tagMCCoinToGoldReport () { _cmd = (ushort)0xA106; } public override void ReadFromBytes (byte[] vBytes) { TransBytes (out OrderLen, vBytes, NetDataType.BYTE); TransBytes (out OrderID, vBytes, NetDataType.Chars, OrderLen); TransBytes (out Coin, vBytes, NetDataType.DWORD); TransBytes (out RecordID, vBytes, NetDataType.WORD); TransBytes (out OrderInfoLen, vBytes, NetDataType.BYTE); TransBytes (out OrderInfo, vBytes, NetDataType.Chars, OrderInfoLen); } } Main/Core/NetworkPackage/ServerPack/HA1_Sys/HA106_tagMCCoinToGoldReport.cs.meta
New file @@ -0,0 +1,11 @@ fileFormatVersion: 2 guid: 1a8a63a50f578424b82e430ed3d7528d MonoImporter: externalObjects: {} serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Main/Core/NetworkPackage/ServerPack/HA1_Sys/HA124_tagMCPlayerInfo.cs
New file @@ -0,0 +1,19 @@ using UnityEngine; using System.Collections; // A1 24 玩家初始化扩展信息 #tagMCPlayerInfo public class HA124_tagMCPlayerInfo : GameNetPackBasic { public byte IsAdult; //是否成年 public string CreateRoleTime; public HA124_tagMCPlayerInfo () { _cmd = (ushort)0xA124; } public override void ReadFromBytes (byte[] vBytes) { TransBytes (out IsAdult, vBytes, NetDataType.BYTE); TransBytes (out CreateRoleTime, vBytes, NetDataType.Chars, 19); } } Main/Core/NetworkPackage/ServerPack/HA1_Sys/HA124_tagMCPlayerInfo.cs.meta
New file @@ -0,0 +1,11 @@ fileFormatVersion: 2 guid: 2b001feac8eba034fbae445ae04c4e40 MonoImporter: externalObjects: {} serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Main/SDK/SDKUtils.cs
@@ -21,6 +21,7 @@ Free = 1,// 默认 Quick = 10, //quick Hy = 15, //欢游 Gaore = 20, // 20-高热 - 硬核渠道 } //权限申请回调 @@ -483,6 +484,10 @@ { ChannelPlatform = E_ChannelPlatform.Quick; } else if (_channelPlatform.Equals("gaore")) { ChannelPlatform = E_ChannelPlatform.Gaore; } } } @@ -615,6 +620,16 @@ Application.Quit(); } break; case CodeA2U.GetAdAward: if (AdsManager.Instance.waitAdID > 0) { AdsManager.Instance.GetAdsAward(AdsManager.Instance.waitAdID); AdsManager.Instance.waitAdID = 0; } break; case CodeA2U.AdLoadFail: AdsManager.Instance.lastLoadErrorTime = Time.time; break; } onSdkMsg?.Invoke(_code, _json); } @@ -696,6 +711,8 @@ public const int PingfenCallBack = 113; //评分回调 和 GotoShopOK 不一样 具体看使用区分 public const int GotoShopOK = 115; //前往商店成功 public const int GotoFBOK = 116; public const int GetAdAward = 117; //广告播放成功发放奖励 public const int AdLoadFail = 118; //广告加载失败 #endregion } @@ -780,11 +797,7 @@ public const int FansHouse = 120; //粉丝屋 论坛等 public const int GotoShop = 121; //前往商店 public const int TrackEvent = 122; //自定义事件 /** * 极光推送 * */ public const int JPushAddLocalMessage = 200; public const int JPushRemoveLocalMessage = 201; public const int PlayAds = 123; //播放广告 /** * IOS特殊需求 */ @@ -824,7 +837,7 @@ public int totalMemory; } #region 自由sdk相关 #region sdk相关 public UnityAction onFreePlatformInitOk; public UnityAction onFreePlatformInitFail; @@ -881,17 +894,9 @@ #endif } public void FreePlatformBindPhone() { #if UNITY_ANDROID AndroidJavaClass _jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject _jo = _jc.GetStatic<AndroidJavaObject>("currentActivity"); _jo.Call("BindPhone"); #endif } /// <summary> /// 自由SDK登陆 /// SDK登陆 /// </summary> public void FreePlatformLogin() { @@ -900,18 +905,6 @@ SendMessageToSDK(m_Json); } public void TencentLogin(string param) { #if !UNITY_EDITOR m_Json.Clear(); m_Json["code"] = CodeU2A.TencentLogin; if (!string.IsNullOrEmpty(param)) { m_Json["param"] = param; } SendMessageToSDK(m_Json); #endif } /// <summary> /// 自由SDK登出 @@ -925,28 +918,7 @@ // FreePlatformLogin(); #endif } public void ShowAccountView() { #if !UNITY_EDITOR m_Json.Clear(); m_Json["code"] = CodeU2A.ShowAccountView; SendMessageToSDK(m_Json); // FreePlatformLogin(); #endif } public void FreePlatformSwitchAccount() { #if UNITY_ANDROID AndroidJavaClass _jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject _jo = _jc.GetStatic<AndroidJavaObject>("currentActivity"); _jo.Call("SwitchAccount"); #endif } private Dictionary<string, string> m_PaymentTable = new Dictionary<string, string>(); private string m_EncodeKey = "03sujm7gerywdvyd5vkkk772rs4by230"; @@ -1058,6 +1030,7 @@ m_Json["createTime"] = TimeUtility.CreateSeconds.ToString(); m_Json["familyID"] = PlayerDatas.Instance.baseData.FamilyId.ToString(); m_Json["fightPower"] = PlayerDatas.Instance.baseData.FightPower.ToString(); m_Json["num"] = 1; #if UNITY_IOS m_Json["identifier"] = VersionConfig.Get().bundleIdentifier; @@ -1066,54 +1039,6 @@ } /// <summary> /// 分享到facebook /// /// </summary> public void ShareToFaceBook(int type) { // Debug.Log("越南分享"); // m_Json.Clear(); // m_Json["code"] = CodeU2A.ShareToFaceBook; // m_Json["type"] = type; // SendMessageToSDK(m_Json); } /// <summary> /// 去商店评论 /// </summary> public void GoToPingfen() { // Debug.Log("越南评分"); // m_Json.Clear(); // m_Json["code"] = CodeU2A.GoToPingfen; // SendMessageToSDK(m_Json); } //前往商店 public void GoToShop() { // m_Json.Clear(); // m_Json["code"] = CodeU2A.GotoShop; // SendMessageToSDK(m_Json); } /** * @param context * @param event 事件名 * @param value 事件值,如果没有可以传"" * @param isRepeatReport 是否重复上报。根据运营需求是否排重上报,true可以重复上报,false仅上报一次 */ public void TraceEvent(string eventName, string value, bool isRepeatReport) { // Debug.Log("越南事件汇报 :" + eventName); // m_Json.Clear(); // m_Json["code"] = CodeU2A.TrackEvent; // m_Json["eventName"] = eventName; // m_Json["value"] = value; // m_Json["isRepeatReport"] = isRepeatReport; // SendMessageToSDK(m_Json); } private void BuildFreePlatformInfo(JsonData json) { @@ -1167,10 +1092,6 @@ FreePlatformInfo.phone = 0; } private void HandleFreePlatformRegisteOk(JsonData json) { // BuildFreePlatformInfo(json); } private void HandleFreePlatformLoginOk(JsonData data) { @@ -1183,46 +1104,6 @@ } } // public void OnServerChargeOk(HA106_tagMCCoinToGoldReport pack) // { // string orderID = pack.OrderID; // uint coin = pack.Coin; // OperationLogCollect.Instance.RecordEvent(9, coin); // if (onFreePlatformPayOk != null) // { // onFreePlatformPayOk(); // } // m_Json.Clear(); // m_Json["code"] = CodeU2A.PayFinished; // m_Json["orderID"] = orderID; // m_Json["payType"] = "_default_"; // m_Json["moneyType"] = "CNY"; // m_Json["money"] = (float)coin / 100; // SendMessageToSDK(m_Json); // } public void SendRegistEvent(bool _ok, string _result) { if (_ok) { if (!_result.Equals("0")) { m_Json.Clear(); m_Json["code"] = CodeU2A.SendRegistEvent; SendMessageToSDK(m_Json); } } } public void SendLoginEvent() { m_Json.Clear(); m_Json["code"] = CodeU2A.SendLoginEvent; SendMessageToSDK(m_Json); } public void SendHideFloatWin() { @@ -1240,6 +1121,12 @@ public void CreateRoleOk(string roleID, string roleName, string time) { if (VersionConfig.Get().appId == "ryzj") { SendGaoreEvent(2); return; } m_Json.Clear(); m_Json["code"] = CodeU2A.CreateRole; @@ -1277,6 +1164,11 @@ public void RoleLogin() { if (VersionConfig.Get().appId == "ryzj") { SendGaoreEvent(3); return; } m_Json.Clear(); m_Json["code"] = CodeU2A.RoleLogin; @@ -1296,8 +1188,84 @@ SendMessageToSDK(m_Json); } void SendGaoreEvent(int dataType, string pageType = "无", string pageName = "无", string pageItemId = "无", int money = 0, string orderID = "") { m_Json.Clear(); m_Json["code"] = CodeU2A.TrackEvent; m_Json["dataType"] = dataType; m_Json["sid"] = ServerListCenter.Instance.currentServer.region_flag; m_Json["serverName"] = ServerListCenter.Instance.currentServer.name; m_Json["roleName"] = PlayerDatas.Instance.baseData.PlayerName; m_Json["level"] = PlayerDatas.Instance.baseData.LV; m_Json["roleID"] = PlayerDatas.Instance.baseData.PlayerID; m_Json["orderId"] = orderID; m_Json["mount"] = money; //充值分 m_Json["money"] = PlayerDatas.Instance.baseData.diamond; m_Json["createTime"] = TimeUtility.CreateSeconds < 0 ? 0 : TimeUtility.CreateSeconds; m_Json["familyID"] = PlayerDatas.Instance.baseData.FamilyId; m_Json["familyName"] = PlayerDatas.Instance.baseData.FamilyName; m_Json["familyLV"] = PlayerDatas.Instance.fairyData.fairy != null ? PlayerDatas.Instance.fairyData.fairy.FamilyLV.ToString() : "0"; m_Json["familyLeaderName"] = PlayerDatas.Instance.fairyData.fairy != null ? PlayerDatas.Instance.fairyData.fairy.LeaderName : ""; m_Json["fightPower"] = PlayerDatas.Instance.baseData.FightPower; m_Json["job"] = 0; m_Json["jobName"] = "无"; m_Json["sex"] = "无"; m_Json["jobID"] = 0; m_Json["jobIDName"] = "无"; m_Json["vipLevel"] = 0; if (PlayerDatas.Instance.fairyData.mine != null && PlayerDatas.Instance.fairyData.mine.FmLV > 0) { if (PlayerDatas.Instance.fairyData.mine.FmLV == 3) { m_Json["faimilyRoleID"] = 1; } else if (PlayerDatas.Instance.fairyData.mine.FmLV == 2) { m_Json["faimilyRoleID"] = 2; } else { m_Json["faimilyRoleID"] = 3; } m_Json["faimilyRoleName"] = RichTextMsgReplaceConfig.GetRichReplace("FAMILY", PlayerDatas.Instance.fairyData.mine.FmLV); } else { m_Json["faimilyRoleID"] = 0; m_Json["faimilyRoleName"] = "无"; } m_Json["opentime"] = 0; m_Json["pageType"] = pageType; m_Json["pageName"] = pageName; m_Json["pageItemId"] = pageItemId; SendMessageToSDK(m_Json); } //事件记录 public void SendTraceEvent(int dataType, string pageType = "无", string pageName = "无", string pageItemId = "无", int money = 0, string orderID = "") { if (VersionConfig.Get().appId == "ryzj") { SendGaoreEvent(dataType, pageType, pageName, pageItemId, money, orderID); return; } } public void RoleLevelUp() { if (VersionConfig.Get().appId == "ryzj") { SendGaoreEvent(4); return; } m_Json.Clear(); m_Json["code"] = CodeU2A.RoleLevelUp; @@ -1323,9 +1291,15 @@ { if (PlayerDatas.Instance.PlayerId == 0) return; if (!DTC0403_tagPlayerLoginLoadOK.finishedLogin) if (!DTC0403_tagPlayerLoginLoadOK.finishedLogin) return; if (VersionConfig.Get().appId == "ryzj") { SendGaoreEvent(5); return; } m_Json.Clear(); m_Json["code"] = CodeU2A.RoleLoginOut; @@ -1347,60 +1321,30 @@ SendMessageToSDK(m_Json); } public void GotoFansHouse() { Debug.Log("越南点赞"); m_Json.Clear(); m_Json["code"] = CodeU2A.FansHouse; SendMessageToSDK(m_Json); } #endregion #region 插件相关 #endregion #region 极光推送相关 public void GeTui_SendLocalMessage(JsonData jsonData) #region 广告 //type为0立即播放视频,1为预加载 public void PlayAds(string adid) { return; Debug.Log("GeTui_SendLocalMessage:" + jsonData["id"]); // ------ 举例 ------ // JsonData _params = new JsonData (); // _params ["code"] = 2005; // _params ["id"] = 5;// id 重要, 标示每个通知的更新或者移除 // _params ["title"] = "the title";// 推送标题 // _params ["subtitle"] = "the subtitle";// 副标题 // _params ["content"] = "the content";// 具体内容 // _params ["badge"] = -1;// 角标 // // // 以下为决定应该多久后弹出此通知 // System.TimeSpan ts = System.DateTime.UtcNow - new System.DateTime (1970, 1, 1, 0, 0, 0, 0); // long ret = System.Convert.ToInt64 (ts.TotalSeconds) + 3;// 表示3秒后 // _params ["fireTime"] = ret; #if !UNITY_EDITOR jsonData["code"] = CodeU2A.JPushAddLocalMessage; #if UNITY_ANDROID jsonData["fireTime"] = (long)jsonData["fireTime"] * 1000; #endif SendMessageToSDK(jsonData); #endif } public void GeTui_RemoveLocalMessage(string id) { return; Debug.Log("GeTui_RemoveLocalMessage:" + id); #if !UNITY_EDITOR m_Json.Clear(); m_Json["code"] = CodeU2A.JPushRemoveLocalMessage; m_Json["id"] = id;// id 重要, 标示每个通知的更新或者移除 m_Json["code"] = CodeU2A.PlayAds; m_Json["adid"] = adid; m_Json["type"] = 0; SendMessageToSDK(m_Json); #endif } //打开带广告的界面 提前加载 public void LoadAds(string adid) { m_Json.Clear(); m_Json["code"] = CodeU2A.PlayAds; m_Json["adid"] = adid; m_Json["type"] = 1; SendMessageToSDK(m_Json); } #endregion } Main/System/BoneField/AdsCell.cs
@@ -19,6 +19,7 @@ AdsManager.Instance.OnAdsInfoListUpdateEvent += OnAdsInfoListUpdateEvent; adBtn.AddListener(OnClickAds); OnAdsInfoListUpdateEvent(adID, type, value); AdsManager.Instance.LoadAds(); } protected void OnDisable() Main/System/BoneField/AdsManager.cs
@@ -1,11 +1,17 @@ using System; using System.Collections.Generic; using UnityEngine; public class AdsManager : GameSystemManager<AdsManager> { //<广告ID,今日已领取广告奖励次数> private Dictionary<int, int> adsInfoDict = new Dictionary<int, int>(); public event Action<int, int, int> OnAdsInfoListUpdateEvent;//ADID type value public Dictionary<int, Redpoint> redPointDict = new Dictionary<int, Redpoint>(); public int waitAdID = 0; //回调后发放奖励用 int loadErrorCD = 10; //等待10秒后才能再请求 public float lastLoadErrorTime = 0; public override void Init() { DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin += OnBeforePlayerDataInitializeEvent; @@ -45,6 +51,7 @@ public void OnBeforePlayerDataInitializeEvent() { waitAdID = 0; adsInfoDict.Clear(); } @@ -66,9 +73,52 @@ GameNetSystem.Instance.SendInfo(pack); } //如果有广告SDK接入,该函数改成回调触发 //区分不同渠道是否有广告SDK public void PlayAds(int ADID) { //有广告的SDK if (VersionConfig.Get().appId == "ryzj") { //视频加载失败需要等10秒后再调用 //奖励需要设置标识对应发放 if (WaitForLoadNewAd()) { SysNotifyMgr.Instance.ShowTip("AdLoadFail"); return; } waitAdID = ADID; SDKUtils.Instance.PlayAds("b69a2b68bb3d22"); return; } //没广告的SDK 直接给奖励 GetAdsAward(ADID); } public void LoadAds() { if (VersionConfig.Get().appId == "ryzj") { if (WaitForLoadNewAd()) { return; } SDKUtils.Instance.LoadAds("b69a2b68bb3d22"); } } //上一次加载失败,检查是否需要等待 public bool WaitForLoadNewAd() { if (Time.time - lastLoadErrorTime < loadErrorCD) { return true; } return false; } public void GetAdsAward(int ADID) { switch (ADID) { case 1: Main/System/BoneField/BoneFieldWin.cs
@@ -50,6 +50,7 @@ protected override void OnPreOpen() { base.OnPreOpen(); AdsManager.Instance.LoadAds(); DungeonManager.Instance.UpdateFBInfoListEvent += OnUpdateFBInfoChangeEvent; AdsManager.Instance.OnAdsInfoListUpdateEvent += OnAdsInfoListUpdateEvent; TimeMgr.Instance.OnDayEvent += OnDayEvent; Main/System/Equip/BlessLVADWin.cs
@@ -24,6 +24,7 @@ protected override void OnPreOpen() { AdsManager.Instance.LoadAds(); moneyText.text = UIHelper.ShowUseMoney(BlessLVManager.Instance.freeEnergyMoneyType, BlessLVManager.Instance.freeEnergyMoney); moneyTypeImg.SetIconWithMoneyType(BlessLVManager.Instance.freeEnergyMoneyType); } Main/System/Login/LoginWin.cs
@@ -193,6 +193,7 @@ private void OnServerChange() { ChangeServerInfo(ServerListCenter.Instance.currentServer); SDKUtils.Instance.SendTraceEvent(1); } // private void OnLoginBtnClick() Main/System/NewBieGuidance/NewBieCenter.cs
@@ -377,6 +377,10 @@ send.GuideIndex = (byte)_id; send.IsOK = 1; GameNetSystem.Instance.SendInfo(send); if (guideRecord == 16) { SDKUtils.Instance.SendTraceEvent(7); } } if (guideCompletedEvent != null) @@ -422,6 +426,10 @@ send.GuideIndex = (byte)guideRecord; send.IsOK = 1; GameNetSystem.Instance.SendInfo(send); if (guideRecord == 16) { SDKUtils.Instance.SendTraceEvent(7); } } if (guideCompletedEvent != null) Main/System/Recharge/RechargeWin.cs
@@ -72,7 +72,7 @@ { if (i % 3 == 0) { djqScroller.AddCell(ScrollerDataType.Header,i); djqScroller.AddCell(ScrollerDataType.Header, i); } } djqScroller.Restart(); @@ -81,6 +81,7 @@ { djqScroller.m_Scorller.RefreshActiveCellViews(); } SDKUtils.Instance.SendTraceEvent(8, "充值", "玄玉", "0"); } else if (RechargeManager.Instance.selectTabIndex == 1) { @@ -105,6 +106,7 @@ { goldScroller.m_Scorller.RefreshActiveCellViews(); } SDKUtils.Instance.SendTraceEvent(8, "充值", "元宝", "1"); } } Main/System/TianziBillborad/TianziBillboradWin.cs
@@ -84,6 +84,7 @@ protected override void OnPreOpen() { base.OnPreOpen(); AdsManager.Instance.LoadAds(); model.UpdateTianziKYInfoExent += OnUpdateTianziKYInfoExent; dungeonModel.UpdateFBInfoListEvent += OnUpdateFBInfoListEvent; adsModel.OnAdsInfoListUpdateEvent += OnAdsInfoListUpdateEvent; Main/Utility/TimeUtility.cs
@@ -168,18 +168,16 @@ } public static event Action OnCreateRoleTimeRefresh; // public static void OnRefreshCreateRoleTime(HA124_tagMCPlayerInfo _package) // { // createRoleTime = Convert.ToDateTime(UIHelper.GetTime(_package.CreateRoleTime)); // createRoleTimeTail = new DateTime(createRoleTime.Year, createRoleTime.Month, createRoleTime.Day); // if (OnCreateRoleTimeRefresh != null) // { // OnCreateRoleTimeRefresh(); // } // Debug.LogFormat("CreateRoleTime {0} CreateDays {1}", createRoleTimeTail, CreateDays); // } public static void OnRefreshCreateRoleTime(HA124_tagMCPlayerInfo _package) { createRoleTime = Convert.ToDateTime(UIHelper.GetTime(_package.CreateRoleTime)); createRoleTimeTail = new DateTime(createRoleTime.Year, createRoleTime.Month, createRoleTime.Day); if (OnCreateRoleTimeRefresh != null) { OnCreateRoleTimeRefresh(); } Debug.LogFormat("CreateRoleTime {0} CreateDays {1}", createRoleTimeTail, CreateDays); } public static event Action OnServerTimeRefresh; public static void OnRefreshServerTime(HA004_tagServerDateTime vNetData)