| Main/Core/NetworkPackage/DTCFile/ServerPack/HA0_Sys/DTCA001_tagBroadCastInfo.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/Core/NetworkPackage/DTCFile/ServerPack/HA0_Sys/DTCA001_tagBroadCastInfo.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/Core/NetworkPackage/ServerPack/HA0_Sys/HA001_tagBroadCastInfo.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/Core/NetworkPackage/ServerPack/HA0_Sys/HA001_tagBroadCastInfo.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/Main.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/Message/GMNotify.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/Message/GMNotify.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Main/Core/NetworkPackage/DTCFile/ServerPack/HA0_Sys/DTCA001_tagBroadCastInfo.cs
New file @@ -0,0 +1,14 @@ using UnityEngine; using System.Collections; //A0 01 Gm广播消息#tagBroadCastInfo public class DTCA001_tagBroadCastInfo : DtcBasic { public override void Done(GameNetPackBasic vNetPack) { base.Done(vNetPack); HA001_tagBroadCastInfo vNetData = vNetPack as HA001_tagBroadCastInfo; GMNotifyManager.Instance.Notify(vNetData); } } Main/Core/NetworkPackage/DTCFile/ServerPack/HA0_Sys/DTCA001_tagBroadCastInfo.cs.meta
New file @@ -0,0 +1,11 @@ fileFormatVersion: 2 guid: 42dceab20a12bc14da587223f4d76510 MonoImporter: externalObjects: {} serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs
@@ -147,6 +147,7 @@ Register(typeof(HB161_tagSCFuncPresetInfoList), typeof(DTCB161_tagSCFuncPresetInfoList)); Register(typeof(HB162_tagSCFuncPresetSwitchInfo), typeof(DTCB162_tagSCFuncPresetSwitchInfo)); Register(typeof(HB163_tagSCBatPresetSwitchInfo), typeof(DTCB163_tagSCBatPresetSwitchInfo)); Register(typeof(HA001_tagBroadCastInfo), typeof(DTCA001_tagBroadCastInfo)); } //主工程注册封包 Main/Core/NetworkPackage/ServerPack/HA0_Sys/HA001_tagBroadCastInfo.cs
New file @@ -0,0 +1,27 @@ using UnityEngine; using System.Collections; //A0 01 Gm广播消息#tagBroadCastInfo public class HA001_tagBroadCastInfo : GameNetPackBasic { public uint StartTime; public uint EndTime; public ushort Interval; //时间间隔 public ushort MsgLen; public string Msg; //size = MsgLen public byte IsDelOthers; //是否删除其他的 public HA001_tagBroadCastInfo () { _cmd = (ushort)0xA001; } public override void ReadFromBytes (byte[] vBytes) { TransBytes (out StartTime, vBytes, NetDataType.DWORD); TransBytes (out EndTime, vBytes, NetDataType.DWORD); TransBytes (out Interval, vBytes, NetDataType.WORD); TransBytes (out MsgLen, vBytes, NetDataType.WORD); TransBytes (out Msg, vBytes, NetDataType.Chars, MsgLen); TransBytes (out IsDelOthers, vBytes, NetDataType.BYTE); } } Main/Core/NetworkPackage/ServerPack/HA0_Sys/HA001_tagBroadCastInfo.cs.meta
New file @@ -0,0 +1,11 @@ fileFormatVersion: 2 guid: 8a5084f76f1b2d9469bcaebf5c3dbc79 MonoImporter: externalObjects: {} serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Main/Main.cs
@@ -103,6 +103,7 @@ managers.Add(EquipRecordManager.Instance); managers.Add(MinggeManager.Instance); managers.Add(FuncPresetManager.Instance); managers.Add(GMNotifyManager.Instance); foreach (var manager in managers) { Main/System/Message/GMNotify.cs
New file @@ -0,0 +1,118 @@ using System; using System.Collections; using System.Collections.Generic; public class GMNotifyManager : GameSystemManager<GMNotifyManager> { public override void Init() { GlobalTimeEvent.Instance.secondEvent += SecondEvent; DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin += OnBeforePlayerDataInitializeEventOnRelogin; DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOk; } public override void Release() { GlobalTimeEvent.Instance.secondEvent -= SecondEvent; DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin += OnBeforePlayerDataInitializeEventOnRelogin; DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOk; } public void OnBeforePlayerDataInitializeEventOnRelogin() { gmNotifies.Clear(); serverInited = false; } public void OnPlayerLoginOk() { serverInited = true; } private List<GMNotifyMessgae> gmNotifies = new List<GMNotifyMessgae>(); private ArrayList infoArray = new ArrayList(); private bool serverInited = false; private void SecondEvent() { if (!serverInited) { return; } for (int i = 0; i < gmNotifies.Count; i++) { var _notify = gmNotifies[i]; if (!CheckNotify(_notify)) { gmNotifies.RemoveAt(i); _notify = null; i--; continue; } if (CheckSend()) { if ((TimeUtility.ServerNow - _notify.nextNotifyTime).TotalSeconds >= 0) { var _totalMinutes = (int)(TimeUtility.ServerNow - _notify.start).TotalMinutes; var _detalMinutes = (_totalMinutes / _notify.interval + 1) * _notify.interval; _notify.nextNotifyTime = _notify.start.AddTicks(_detalMinutes * TimeSpan.TicksPerMinute); Notify(_notify); } } } } public void Notify(HA001_tagBroadCastInfo package) { if (package.IsDelOthers == 1) { gmNotifies.Clear(); } gmNotifies.Add(new GMNotifyMessgae() { start = TimeUtility.GetTime(package.StartTime), end = TimeUtility.GetTime(package.EndTime), message = UIHelper.ServerStringTrim(package.Msg).Replace(@"\", string.Empty), interval = package.Interval, nextNotifyTime = TimeUtility.GetTime(package.StartTime), }); } private void Notify(GMNotifyMessgae _notify) { ServerTipDetails.ShowMarquee(_notify.message, null, 10); ChatManager.Instance.AddSysData(_notify.message, infoArray, ChatChannel.World, false); } private bool CheckNotify(GMNotifyMessgae _notify) { if ((TimeUtility.ServerNow - _notify.end).TotalSeconds > 0) { return false; } return true; } private bool CheckSend() { if (StageManager.Instance.currentStage == StageName.Login) { return false; } return true; } public class GMNotifyMessgae { public DateTime start; public DateTime end; public DateTime nextNotifyTime; public int interval;//分钟 public string message = string.Empty; } } Main/System/Message/GMNotify.cs.meta
New file @@ -0,0 +1,11 @@ fileFormatVersion: 2 guid: f42b6a1b0c4602c47a26401533a82716 MonoImporter: externalObjects: {} serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: