| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360 |
- package msg
- import (
- "rocommon"
- "rocommon/util"
- "roserver/baseserver/model"
- model2 "roserver/game/model"
- "roserver/serverproto"
- )
- func init() {
- //webgm
- serverproto.Handle_GAME_SSWebGMBanNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSWebGMBanNtf)
- util.InfoF("receive SSWebGMBanNtf msg=%v", msg)
- banRole := model2.RoleMag.GetRoleFromUUid(msg.BanUid)
- if banRole == nil {
- banRole = model2.RoleMag.GetRoleFromOffline(msg.BanUid)
- }
- if banRole != nil {
- if msg.BanType == 1 {
- banRole.BanRole(msg.IsBan, msg.BanTime, model2.CheatType_GMWEB)
- } else if msg.BanType == 2 {
- banRole.BanRoleChat(msg.IsBan, msg.BanTime, model2.CheatType_GMWEB)
- }
- }
- })
- //来自webgm的走马灯公告
- serverproto.Handle_GAME_SSWebGMNoticeNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSWebGMNoticeNtf)
- util.InfoF("receive SSWebGMNoticeNtf msg=%v", msg)
- model2.RoleMag.SetGMNoticeInfo(msg)
- })
- //gmweb->social->game 服务器维护(强制所有玩家下线)
- serverproto.Handle_GAME_SSWEBGMServerMaintainNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSWEBGMServerMaintainNtf)
- util.InfoF("receive SSWEBGMServerMaintainNtf msg=%v", msg)
- model2.RoleMag.ServerMaintain(msg.State)
- })
- //gmweb->social->all game 服务器配置文件热加载
- serverproto.Handle_GAME_SSServerConfigReloadNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSServerConfigReloadNtf)
- util.InfoF("receive SSServerConfigReloadNtf msg=%v", msg)
- model2.ServerReloadConfig(msg.CfgList)
- model2.RoleMag.ServerReloadConfigNtf(msg.CfgList)
- })
- //gmweb->social->all game 背包内道具删除
- serverproto.Handle_GAME_SSWebGMDelItemNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSWebGMDelItemNtf)
- util.InfoF("receive SSWebGMDelItemNtf msg=%v", msg)
- role := model2.RoleMag.GetRoleFromUUid(msg.Uid)
- if role == nil {
- role = model2.RoleMag.GetRoleFromOffline(msg.Uid)
- }
- if role != nil {
- role.(*model2.Role).WebGMDelItem(msg.DelItemList)
- }
- })
- //webgm
- //获取好友系统列表信息(不包括推荐列表信息)
- serverproto.Handle_GAME_CSFriendReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.CSFriendReq)
- role := model2.RoleMag.GetRoleOrKick(cliId, ev)
- if role == nil {
- return
- }
- util.InfoF("uid=%v receive CSFriendReq msg=%v", role.GetUUid(), msg)
- role.(model2.RoleSocialOuter).FriendReq(msg.Type)
- })
- //添加关注(添加好友,这边添加好友是单向的)
- serverproto.Handle_GAME_CSFriendAddReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.CSFriendAddReq)
- role := model2.RoleMag.GetRoleOrKick(cliId, ev)
- if role == nil {
- return
- }
- util.InfoF("uid=%v receive CSFriendAddReq msg=%v", role.GetUUid(), msg)
- role.(model2.RoleSocialOuter).FriendAdd(msg.AddUid)
- })
- //from social 根据错误码处理发送关注失败,放到db中做处理
- serverproto.Handle_GAME_SSFriendAddAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSFriendAddAck)
- role := model2.RoleMag.GetRoleFromUUid(msg.FromUid)
- if role == nil {
- role = model2.RoleMag.GetRoleFromOffline(msg.FromUid)
- if role == nil {
- return
- }
- }
- util.InfoF("uid=%v receive SSFriendAddAck msg=%v", role.GetUUid(), msg)
- //social未找到直接发送给db处理
- if msg.Error == int32(serverproto.ErrorCode_ERROR_SOCIAL_NOT_FIND_SERVICE_ID) {
- ssDBReqMsg := &serverproto.SSDBFriendAddFansReq{
- FromUid: msg.FromUid,
- AddUid: msg.AddUid.Uid,
- }
- role.(*model2.Role).SendDb(ssDBReqMsg)
- } else if msg.Error != int32(serverproto.ErrorCode_ERROR_OK) {
- //添加关注不成功
- ackMsg := serverproto.SCFriendAddAck{
- Error: msg.Error,
- }
- role.ReplayGate(ackMsg, true)
- } else {
- //添加对方的粉丝列表成功
- role.(*model2.Role).GetRoleSocial().HandlerSubList(true, msg.AddUid.Uid, msg.AddUid)
- }
- })
- //from db添加到对方粉丝列表消息回复
- serverproto.Handle_GAME_SSDBFriendAddFansAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSDBFriendAddFansAck)
- util.InfoF("receive SSDBFriendAddFansAck msg=%v", msg)
- role := model2.RoleMag.GetRole(cliId)
- if role == nil {
- return
- }
- if msg.Error == int32(serverproto.ErrorCode_ERROR_OK) {
- role.(*model2.Role).GetRoleSocial().HandlerSubList(true, msg.AddUid.Uid, msg.AddUid)
- } else {
- ackMsg := &serverproto.SCFriendAddAck{
- Error: msg.Error,
- }
- role.ReplayGate(ackMsg, true)
- }
- })
- //from social来自其他服务器的添加关注请求
- serverproto.Handle_GAME_SSFriendAddReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSFriendAddReq)
- util.InfoF("receive SSFriendAddReq msg=%v", msg)
- addRole := model2.RoleMag.GetRoleFromUUid(msg.AddUid)
- if addRole == nil {
- addRole = model2.RoleMag.GetRoleFromOffline(msg.AddUid)
- }
- //角色信息未找到,返回social并返回game,交给db处理
- if addRole == nil {
- ackMsg := &serverproto.SSFriendAddAck{
- Error: int32(serverproto.ErrorCode_ERROR_SOCIAL_NOT_FIND_SERVICE_ID),
- FromUid: msg.FromUid.Uid,
- AddUid: &serverproto.CommonPlayerBriefInfo{Uid: msg.AddUid},
- }
- model.ServiceReplay(ev, ackMsg)
- } else {
- ackMsg := &serverproto.SSFriendAddAck{
- Error: int32(serverproto.ErrorCode_ERROR_OK),
- FromUid: msg.FromUid.Uid,
- }
- addRoleSocial := addRole.(*model2.Role).GetRoleSocial()
- ret := addRoleSocial.CanAddFansList(msg.FromUid.Uid)
- if ret != serverproto.ErrorCode_ERROR_OK {
- ackMsg.AddUid = &serverproto.CommonPlayerBriefInfo{Uid: msg.AddUid}
- } else {
- addRoleSocial.HandlerFansList(true, msg.FromUid.Uid, msg.FromUid)
- addRoleBfInfo := &serverproto.CommonPlayerBriefInfo{}
- addRole.(*model2.Role).GetRoleBriefInfo(addRoleBfInfo)
- ackMsg.AddUid = addRoleBfInfo
- }
- model.ServiceReplay(ev, ackMsg)
- }
- })
- //取消关注
- serverproto.Handle_GAME_CSFriendDelReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.CSFriendDelReq)
- role := model2.RoleMag.GetRoleOrKick(cliId, ev)
- if role == nil {
- return
- }
- util.InfoF("uid=%v receive CSFriendDelReq ms=%v", role.GetUUid(), msg)
- role.(model2.RoleSocialOuter).FriendDel(msg.DelUid)
- })
- //from social在social上没有找到对应玩家信息
- serverproto.Handle_GAME_SSFriendDelAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSFriendDelAck)
- util.InfoF("receive SSFriendDelAck msg=%v", msg)
- //role := model2.RoleMag.GetRole(cliId)
- //if role == nil {
- // return
- //}
- //role.(model2.RoleSocialOuter).FriendDel(msg.DelUid)
- delRole := model2.RoleMag.GetRoleFromUUid(msg.DelUid)
- if delRole == nil {
- delRole = model2.RoleMag.GetRoleFromOffline(msg.DelUid)
- }
- //数据库操作
- if delRole == nil {
- ssDBMsg := &serverproto.SSDBFriendDelFansNtf{
- FromUid: msg.FromUid,
- DelUid: msg.DelUid,
- }
- model2.SendDb(ssDBMsg)
- } else {
- delRole.(*model2.Role).GetRoleSocial().HandlerFansList(false, msg.FromUid, nil)
- }
- })
- //from social来自其他game服务器的删除粉丝列表请求(从delUid中移除粉丝fromUid)
- serverproto.Handle_GAME_SSFriendDelReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSFriendDelReq)
- util.InfoF("receive SSFriendDelReq msg=%v", msg)
- delRole := model2.RoleMag.GetRoleFromUUid(msg.DelUid)
- if delRole == nil {
- delRole = model2.RoleMag.GetRoleFromOffline(msg.DelUid)
- }
- //数据库操作
- if delRole == nil {
- ssDBMsg := &serverproto.SSDBFriendDelFansNtf{
- FromUid: msg.FromUid,
- DelUid: msg.DelUid,
- }
- model2.SendDb(ssDBMsg)
- } else {
- delRole.(*model2.Role).GetRoleSocial().HandlerFansList(false, msg.FromUid, nil)
- }
- })
- //添加/删除屏蔽名单(添加和删除同一条协议,不在黑名单中加入黑名单,在黑名单中移除黑名单)
- serverproto.Handle_GAME_CSFriendBlackReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.CSFriendBlackReq)
- role := model2.RoleMag.GetRoleOrKick(cliId, ev)
- if role == nil {
- return
- }
- util.InfoF("uid=%v receive CSFriendBlackReq msg=%v", role.GetUUid(), msg)
- role.(model2.RoleSocialOuter).FriendBlack(msg.BlackUid)
- })
- //获取推荐好友列表
- serverproto.Handle_GAME_CSFriendRecommendReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.CSFriendRecommendReq)
- role := model2.RoleMag.GetRoleOrKick(cliId, ev)
- if role == nil {
- return
- }
- util.InfoF("uid=%v receive CSFriendRecommendReq msg=%v", role.GetUUid(), msg)
- role.(model2.RoleSocialOuter).FriendRecommend()
- })
- //搜索玩家
- serverproto.Handle_GAME_CSFriendSearchReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.CSFriendSearchReq)
- role := model2.RoleMag.GetRoleOrKick(cliId, ev)
- if role == nil {
- return
- }
- util.InfoF("uid=%v receive CSFriendSearchReq msg=%v", role.GetUUid(), msg)
- role.(model2.RoleSocialOuter).FriendSearch(msg.TargetName)
- })
- //from db
- serverproto.Handle_GAME_SSGetUidByRoleNameAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSGetUidByRoleNameAck)
- util.InfoF("receive SSGetUidByRoleNameAck msg=%v", msg)
- role := model2.RoleMag.GetRole(cliId)
- if role == nil {
- return
- }
- ssMsg := &serverproto.SSOnlineStateReq{
- ProType: 1, //表示search操作
- BriefInfoList: append(msg.BriefInfoList),
- }
- if len(msg.BriefInfoList) > 0 {
- role.(*model2.Role).SendSocial(ssMsg)
- } else {
- ackMsg := &serverproto.SCFriendSearchAck{
- Error: int32(serverproto.ErrorCode_ERROR_OK),
- }
- role.ReplayGate(ackMsg, true)
- }
- })
- //from social
- serverproto.Handle_GAME_SSOnlineStateAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSOnlineStateAck)
- util.InfoF("receive SSOnlineStateAck msg=%v", msg)
- role := model2.RoleMag.GetRole(cliId)
- if role == nil {
- return
- }
- //表示search操作
- if msg.ProType == 1 {
- ackMsg := &serverproto.SCFriendSearchAck{
- Error: int32(serverproto.ErrorCode_ERROR_OK),
- BriefInfoList: append(msg.BriefInfoList),
- }
- role.ReplayGate(ackMsg, true)
- } else if msg.ProType == 2 {
- //推荐列表
- if msg.ListType == int32(model2.StateTypeRecommend) {
- ackMsg := &serverproto.SCFriendRecommendNtf{}
- ackMsg.BriefInfoList = append(msg.BriefInfoList)
- role.ReplayGate(ackMsg, true)
- } else {
- ackMsg := &serverproto.SCGetOtherPlayerBriefInfoAck{
- Type: msg.ListType,
- }
- ackMsg.BriefInfo = append(msg.BriefInfoList)
- role.ReplayGate(ackMsg, true)
- }
- }
- })
- //from social
- serverproto.Handle_GAME_SSDaoChang100WheelLogAddNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSDaoChang100WheelLogAddNtf)
- ntfMsg := &serverproto.SCDaoChang100WheelLogNtf{
- LogList: msg.LogList,
- }
- model2.RoleMag.SendMsg2OnlinePlayer(ntfMsg, 0)
- })
- serverproto.Handle_GAME_SSWebGMHeadChange = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSWebGMHeadChange)
- util.InfoF("receive SSWebGMHeadChange msg=%v", msg)
- banRole := model2.RoleMag.GetRoleFromUUid(msg.Uid)
- if banRole == nil {
- banRole = model2.RoleMag.GetRoleFromOffline(msg.Uid)
- }
- if banRole != nil {
- head := banRole.(*model2.Role).GetHeadMag()
- if head != nil {
- head.SetHeadState(msg.HeadId, model2.EmHeadState(msg.State))
- }
- } else {
- dbmsg := &serverproto.SSUpdateHeadDataSaveReq{}
- dbmsg.Uid = msg.Uid
- dbmsg.HeadId = msg.HeadId
- dbmsg.State = msg.State
- model2.SendDb(dbmsg)
- }
- })
- }
|