using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Sog; using ProtoCSStruct; namespace World { public static class ChatSvc { public static void OnChatLoginReq(uint remoteAppId, StructPacket packet) { ref CSChatLoginReq req = ref packet.GetMessage(); req.Ret = CSErrCode.Fail; PlayerInfoWorld player = WorldServerUtils.GetPlayerTableOp().GetPlayerInfo(req.PlayerUid); if (player == null) { TraceLog.Trace("ChatSvc.OnChatLoginReq player {0} = null", packet.ObjectID); return; } req.Ret = CSErrCode.None; req.RoleBase.CopyFrom(ref player.roleBase); req.Lang.SetString(player.Lang); req.SysData.CopyFrom(ref player.sysData); req.ExtData.CopyFrom(ref player.extData); player.ChatServerID = remoteAppId; req.NeedSycClient = true; req.RealmId = player.RealmID; req.LoginToken = player.LoginToken; req.EnableMsgTime = player.GagChatEndTime; WorldServerUtils.GetPacketSender().SendToChatServer((int)CSGameMsgID.ChatloginReq, ref req, req.PlayerUid); return; } public static void OnChatReq(uint remoteAppId, StructPacket packet) { ref CSChatReq req = ref packet.GetMessage(); PlayerInfoWorld player = WorldServerUtils.GetPlayerTableOp().GetPlayerInfo(packet.ObjectID); if (player == null) { TraceLog.Error("ChatSvc.OnChatReq player {0} = null", packet.ObjectID); return; } //发给好友聊天 if (req.ChatChannelType == ChatChannelType.Friend) { WorldServerUtils.GetPacketSender().SendToFriendServer((int)CSGameMsgID.ChatReq, ref req, player.UserID); } else { TraceLog.Trace("ChatSvc.OnChatRes Error ChatChannelType {0}", req.ChatChannelType); return; } } //没有逻辑用的,暂时还不知道做啥用的?? public static void OnChatConsumeRes(uint remoteAppId, StructPacket packet) { PlayerInfoWorld player = WorldServerUtils.GetPlayerTableOp().GetPlayerInfo(packet.ObjectID); if (player == null) { TraceLog.Error("ChatSvc.OnChatConsumeRes player {0} = null", packet.ObjectID); return; } ref SSChatConsumeRes consumeres = ref packet.GetMessage(); var req = consumeres.Chat; } } }