/* Sog 游戏基础库 2016 by zouwei */ using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Sog; using ProtoCSStruct; namespace Chat { // 系统消息: ping chat sysnotice public static class SysHandler { public static int ProcessPing(PlayerOnChat playerSession, StructPacket packet) { ref CSPing pingReq = ref packet.GetMessage(); long now = ChatServerUtils.GetApp().Time.GetTime(); pingReq.ServerTime = now; PlayerPacketSender.SendToPlayer(playerSession, packet); //在ping的时候给客户端发送新的系统消息跑马灯 //SysNoticeLampUtils.NoticePlayerNewSysNoticeLamp(playerSession); //SysNoticeUtils.NoticePlayerNewSysNotice(playerSession); return 0; } public static void ProcessChatPing(PlayerOnChat playerSession, StructPacket packet) { ref CSChatPing pingReq = ref packet.GetMessage(); //客户端发给服务器 pingReq.ServerTime = ChatServerUtils.GetApp().Time.GetTime(); PlayerPacketSender.SendToPlayer(playerSession, packet); //在ping的时候给客户端发送新的系统消息跑马灯 //SysNoticeLampUtils.NoticePlayerNewSysNoticeLamp(playerSession); //SysNoticeUtils.NoticePlayerNewSysNotice(playerSession); } public static void OnQuerySysnoticeReq(PlayerOnChat playerSession, StructPacket packet) { ref var req = ref packet.GetMessage(); CSQuerySysNoticeRes res = new CSQuerySysNoticeRes(); // 先拉去客户端请求语言 SysNoticeSvc.FillSysNotices(ref res, playerSession, req.Seq, req.Lang.GetString()); if (req.Lang.GetString().ToLower() != "en") { //公告请求为0 且,请求语言不为英语,拉取一遍英文公告 if (res.PopupList.Count == 0) { SysNoticeSvc.FillSysNotices(ref res, playerSession, req.Seq, "en", 1); } if (res.ClickList.Count == 0) { SysNoticeSvc.FillSysNotices(ref res, playerSession, req.Seq, "en", 2); } } PlayerPacketSender.SendToPlayer(playerSession, (int)CSGameMsgID.QuerySysnoticeRes, ref res); } } }