| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- package msg
- import (
- "rocommon"
- "rocommon/util"
- "roserver/baseserver/model"
- "roserver/serverproto"
- model2 "roserver/social/model"
- )
- func init() {
- //聊天消息
- serverproto.Handle_SOCIAL_CSChatMessageReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.CSChatMessageReq)
- util.InfoF("receive CSChatMessageReq msg:%v", msg)
- switch (serverproto.ChatMessageType)(msg.Type) {
- case serverproto.ChatMessageType_CMT_PERSONAL:
- ackMsg := &serverproto.SSChatMessageAck{
- Error: int32(serverproto.ErrorCode_ERROR_OK),
- TargetId: msg.TargetId,
- Message: msg.Message,
- Type: msg.Type,
- }
- targetPlayer := model2.GetSocialPlayer(msg.TargetId)
- if targetPlayer != nil {
- //在线玩家处理
- ntfMsg := &serverproto.SSChatMessageNtf{
- TargetId: msg.TargetId,
- Type: msg.Type,
- Message: msg.Message,
- FromId: msg.FromId,
- }
- targetPlayer.SendGame(ntfMsg)
- } else {
- util.InfoF("target player not found:", msg.TargetId)
- //ackMsg.Error = int32(serverproto.ErrorCode_ERROR_FAIL)
- ackMsg.Error = int32(serverproto.ErrorCode_ERROR_CHAT_WORLD_TARGET_OFFLINE)
- }
- model.ServiceReplay(ev, ackMsg)
- case serverproto.ChatMessageType_CMT_WORLD:
- //发送给其他game服务器节点
- ntfMsg := &serverproto.SSChatMessageNtf{
- Type: msg.Type,
- Message: msg.Message,
- FromId: msg.FromId,
- }
- model2.SendToAllGameExcept(ntfMsg, msg.FromId.Uid)
- }
- })
- //公会聊天
- serverproto.Handle_SOCIAL_SSGuildChatMessageNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSGuildChatMessageNtf)
- util.InfoF("receive SSGuildChatMessageNtf msg:%v", msg)
- ackMsg := &serverproto.SSChatMessageNtf{
- Message: msg.Message,
- Type: msg.Type,
- FromId: msg.FromId,
- }
- for _, data := range msg.UidList {
- targetPlayer := model2.GetSocialPlayer(data)
- if targetPlayer != nil {
- ackMsg.TargetId = data
- targetPlayer.SendGame(ackMsg)
- }
- }
- })
- //公会聊天
- serverproto.Handle_SOCIAL_SSGuildNoticeMessageNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSGuildNoticeMessageNtf)
- util.InfoF("receive SSGuildNoticeMessageNtf msg:%v", msg)
- ntfMsg := &serverproto.SSGuildNoticeToRoleNtf{}
- for _, data := range msg.UidList {
- targetPlayer := model2.GetSocialPlayer(data)
- if targetPlayer != nil {
- ntfMsg.SysMsg = msg.SysMsg
- ntfMsg.Uid = data
- targetPlayer.SendGame(ntfMsg)
- }
- }
- })
- //获取私聊玩家在线状态
- serverproto.Handle_SOCIAL_CSChatPlayerStateReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.CSChatPlayerStateReq)
- util.InfoF("receive CSChatPlayerStateReq msg:%v", msg)
- ackMsg := &serverproto.SCChatPlayerStateAck{}
- for _, data := range msg.TargetIdList {
- targetPlayer := model2.GetSocialPlayer(data)
- if targetPlayer != nil {
- ackMsg.StateList = append(ackMsg.StateList, &serverproto.PlayerStateInfo{
- Uid: data,
- Online: true,
- })
- } else {
- ackMsg.StateList = append(ackMsg.StateList, &serverproto.PlayerStateInfo{
- Uid: data,
- Online: false,
- })
- }
- }
- model.ServiceReplay(ev, ackMsg)
- })
- //通过social->gmweb 发送给gm后台做聊天消息监控
- serverproto.Handle_SOCIAL_SSWebGMChatMsgNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSWebGMChatMsgNtf)
- util.InfoF("receive SSWebGMChatMsgNtf msg:%v", msg)
- model2.SendGmweb(msg)
- })
- }
|