package msg import ( "rocommon" "rocommon/util" "roserver/baseserver/model" gameModel "roserver/game/model" "roserver/serverproto" ) func init() { //////远航试炼 //获取远航界面可视列表 serverproto.Handle_GAME_CSCrossYuanHangTrialViewListReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.CSCrossYuanHangTrialViewListReq) util.InfoF("uid=%v CSCrossYuanHangTrialViewListReq msg=%v", cliId.SessID, msg) role := gameModel.RoleMag.GetRoleOrKick(cliId, ev) if role == nil { return } if !msg.Notify { role.(gameModel.CrossLogicOuter).YuanHangTrialViewList() } else { gameModel.AddNtfUid(role.GetUUid()) } }) serverproto.Handle_GAME_CSCrossYuanHangTrialViewListOutReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.CSCrossYuanHangTrialViewListOutReq) util.InfoF("uid=%v CSCrossYuanHangTrialViewListOutReq msg=%v", cliId.SessID, msg) role := gameModel.RoleMag.GetRoleOrKick(cliId, ev) if role == nil { return } gameModel.DelNtfUid(role.GetUUid()) }) //刷新远航试炼品质 serverproto.Handle_GAME_CSCrossYuanHangTrialRefreshTrialTypeReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.CSCrossYuanHangTrialRefreshTrialTypeReq) util.InfoF("uid=%v CSCrossYuanHangTrialRefreshTrialTypeReq msg=%v", cliId.SessID, msg) role := gameModel.RoleMag.GetRoleOrKick(cliId, ev) if role == nil { return } role.(gameModel.CrossLogicOuter).RefreshYuanHangTrialType(msg.Force) }) //发起远航试炼 serverproto.Handle_GAME_CSCrossYuanHangTrialReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.CSCrossYuanHangTrialReq) util.InfoF("uid=%v CSCrossYuanHangTrialReq msg=%v", cliId.SessID, msg) role := gameModel.RoleMag.GetRoleOrKick(cliId, ev) if role == nil { return } role.(gameModel.CrossLogicOuter).YuanHangTrial() }) //获取远航试炼奖励(试炼结束奖励) serverproto.Handle_GAME_CSCrossYuanHangTrialRewardReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.CSCrossYuanHangTrialRewardReq) util.InfoF("uid=%v CSCrossYuanHangTrialRewardReq msg=%v", cliId.SessID, msg) role := gameModel.RoleMag.GetRoleOrKick(cliId, ev) if role == nil { return } role.(gameModel.CrossLogicOuter).YuanHangTrialReward() }) //远航试炼挑战 serverproto.Handle_GAME_CSCrossYuanHangTrialChallengeReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.CSCrossYuanHangTrialChallengeReq) util.InfoF("uid=%v CSCrossYuanHangTrialChallengeReq msg=%v", cliId.SessID, msg) role := gameModel.RoleMag.GetRoleOrKick(cliId, ev) if role == nil { return } role.(gameModel.CrossLogicOuter).YuanHangTrialChallenge(msg.ChallengeUid, msg.ChallengeUidEndTime) }) //挑战结果通知 serverproto.Handle_GAME_CSCrossYuanHangTrialChallengeResultReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.CSCrossYuanHangTrialChallengeResultReq) util.InfoF("uid=%v CSCrossYuanHangTrialChallengeResultReq msg=%v", cliId.SessID, msg) role := gameModel.RoleMag.GetRoleOrKick(cliId, ev) if role == nil { return } role.(gameModel.CrossLogicOuter).YuanHangTrialChallengeResult(msg) }) //远航试炼排行榜获取 serverproto.Handle_GAME_CSCrossYuanHangTrialRankListReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.CSCrossYuanHangTrialRankListReq) util.InfoF("uid=%v CSCrossYuanHangTrialRankListReq msg=%v", cliId.SessID, msg) role := gameModel.RoleMag.GetRoleOrKick(cliId, ev) if role == nil { return } role.(gameModel.CrossLogicOuter).YuanHangTrialRankList(msg.StartIdx) }) //查询飞艇信息 serverproto.Handle_GAME_CSCrossYuanHangTrialInfoReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.CSCrossYuanHangTrialInfoReq) util.InfoF("uid=%v CSCrossYuanHangTrialInfoReq msg=%v", cliId.SessID, msg) role := gameModel.RoleMag.GetRoleOrKick(cliId, ev) if role == nil { return } role.(gameModel.CrossLogicOuter).YuanHangTrialInfoQuery(msg.TrialUid, msg.TrialEndTime) }) //日志获取 serverproto.Handle_GAME_CSCrossYuanHangTrialLogReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.CSCrossYuanHangTrialLogReq) util.InfoF("uid=%v CSCrossYuanHangTrialLogReq msg=%v", cliId.SessID, msg) role := gameModel.RoleMag.GetRoleOrKick(cliId, ev) if role == nil { return } role.(gameModel.CrossLogicOuter).YuanHangTrialLog(msg.LogTime) }) //from router //跨服聊天消息返回 serverproto.Handle_GAME_SSGCrossChatMessageNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.SSGCrossChatMessageNtf) chatNtf := &serverproto.SCChatMessageNtf{} chatNtf.MsgList = append(chatNtf.MsgList, msg.MsgList...) gameModel.SendMsgFromCrossRouter(chatNtf, cliId) }) serverproto.Handle_GAME_SSCrossYuanHangTrialViewListAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.SSCrossYuanHangTrialViewListAck) role := gameModel.RoleMag.GetRole(cliId) if role == nil { return } util.DebugF("uid=%v receive SSCrossYuanHangTrialViewListAck viewList=%v", role.GetUUid(), len(msg.TrialViewList)) //cache manager if msg.Error == int32(serverproto.ErrorCode_ERROR_OK) { gameModel.SetYuanHangTrialViewList(msg.TrialViewList) } ackMsg := &serverproto.SCCrossYuanHangTrialViewListAck{ Error: msg.Error, TrialViewList: msg.TrialViewList, } role.ReplayGate(ackMsg, true) }) serverproto.Handle_GAME_SSCrossYuanHangTrialSelfAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.SSCrossYuanHangTrialSelfAck) role := gameModel.RoleMag.GetRole(cliId) if role == nil { return } util.DebugF("uid=%v receive SSCrossYuanHangTrialSelfAck selfInfo=%v", role.GetUUid(), msg.SelfInfo) //self info if msg.SelfInfo != nil { role.(*gameModel.Role).GetRoleCross().UpdateTrialInfo(msg.SelfInfo.BeChallengeNum) } }) serverproto.Handle_GAME_SSCrossYuanHangTrialChallengeAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.SSCrossYuanHangTrialChallengeAck) role := gameModel.RoleMag.GetRole(cliId) if role == nil { return } util.DebugF("uid=%v receive SSCrossYuanHangTrialChallengeAck ms=%v", role.GetUUid(), msg) ackMsg := &serverproto.SCCrossYuanHangTrialChallengeAck{ Error: msg.Error, ChallengeUid: msg.ChallengeUid, ChallengeUidEndTime: msg.ChallengeUidEndTime, FightInfo: msg.FightInfo, } role.ReplayGate(ackMsg, true) }) serverproto.Handle_GAME_SSCrossYuanHangTrialChallengeResultAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.SSCrossYuanHangTrialChallengeResultAck) role := gameModel.RoleMag.GetRole(cliId) if role == nil { return } util.DebugF("uid=%v receive SSCrossYuanHangTrialChallengeResultAck ms=%v", role.GetUUid(), msg) role.(gameModel.CrossLogicOuter).OnYuanHangTrialChallengeResult(msg) }) serverproto.Handle_GAME_SSCrossYuanHangTrialViewNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.SSCrossYuanHangTrialViewNtf) util.DebugF("receive SSCrossYuanHangTrialViewNtf ms=%v", msg) //更新cache列表 gameModel.UpdateTrialViewItem(msg.TrialViewList) ntfMsg := &serverproto.SCCrossYuanHangTrialViewListNtf{ TrialViewList: msg.TrialViewList, } gameModel.NtfMsg(ntfMsg) }) serverproto.Handle_GAME_SSCrossYuanHangTrialRankListAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.SSCrossYuanHangTrialRankListAck) role := gameModel.RoleMag.GetRole(cliId) if role == nil { return } util.DebugF("uid=%v receive SSCrossYuanHangTrialRankListAck ms=%v", role.GetUUid(), msg) //update cache gameModel.UpdateYuanHangTrialRankList(msg.StartIdx, msg.RankList) role.(*gameModel.Role).GetRoleCross().UpdateRankListSelfInfoCache(msg) ackMsg := &serverproto.SCCrossYuanHangTrialRankListAck{ SelfRank: msg.SelfRank, SelfScore: msg.SelfScore, TotalRank: msg.TotalRank, RankList: msg.RankList, StartIdx: msg.StartIdx, } role.ReplayGate(ackMsg, true) }) //远航被挑战日志通知 serverproto.Handle_GAME_SSCrossYuanHangTrialLogNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.SSCrossYuanHangTrialLogNtf) util.DebugF("uid=%v receive SSCrossYuanHangTrialLogNtf ms=%v", msg.NtfUid, msg) if msg.NtfUid > 0 { role := gameModel.RoleMag.GetRoleFromUUid(msg.NtfUid) if role == nil { role = gameModel.RoleMag.GetRoleFromOffline(msg.NtfUid) } if role != nil { role.(*gameModel.Role).GetRoleCross().AddLog(msg.LogData) } else { gameModel.SendDb(msg) } } }) serverproto.Handle_GAME_SSCCrossYuanHangTrialInfoAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.SSCCrossYuanHangTrialInfoAck) role := gameModel.RoleMag.GetRole(cliId) if role == nil { return } util.DebugF("uid=%v receive SSCCrossYuanHangTrialInfoAck ms=%v", role.GetUUid(), msg) ackMsg := &serverproto.SCCrossYuanHangTrialInfoAck{ Error: msg.Error, TrialData: msg.TrialData, NickName: msg.NickName, } role.ReplayGate(ackMsg, true) }) //////巅峰之塔 serverproto.Handle_GAME_CSCrossTopTowerFightListReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.CSCrossTopTowerFightListReq) role := gameModel.RoleMag.GetRoleOrKick(cliId, ev) if role == nil { return } util.InfoF("uid=%v CSCrossTopTowerFightListReq msg=%v", role.GetUUid(), msg) role.(gameModel.CrossLogicOuter).TopTowerFightListReq() }) //发起挑战,判断合法性 serverproto.Handle_GAME_CSCrossTopTowerChallengeReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.CSCrossTopTowerChallengeReq) role := gameModel.RoleMag.GetRoleOrKick(cliId, ev) if role == nil { return } util.InfoF("uid=%v CSCrossTopTowerChallengeReq msg=%v", role.GetUUid(), msg) ret, info := role.(*gameModel.Role).GetRoleCross().TopTowerChallengeReq(msg.FightIdx) ackMsg := &serverproto.SCCrossTopTowerChallengeAck{ Error: int32(ret), FightInfo: info, } role.ReplayGate(ackMsg, true) }) //获取挑战者view信息 serverproto.Handle_GAME_CSCrossTopTowerChallengeViewInfoReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.CSCrossTopTowerChallengeViewInfoReq) role := gameModel.RoleMag.GetRoleOrKick(cliId, ev) if role == nil { return } util.InfoF("uid=%v CSCrossTopTowerChallengeViewInfoReq msg=%v", role.GetUUid(), msg) ret, info := role.(*gameModel.Role).GetRoleCross().TopTowerChallengeReq(msg.FightIdx) ackMsg := &serverproto.SCCrossTopTowerChallengeViewInfoAck{ Error: int32(ret), FightInfo: info, } role.ReplayGate(ackMsg, true) }) //战斗结果通知 serverproto.Handle_GAME_CSCrossTopTowerChallengeResultReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.CSCrossTopTowerChallengeResultReq) role := gameModel.RoleMag.GetRoleOrKick(cliId, ev) if role == nil { return } util.InfoF("uid=%v CSCrossTopTowerChallengeResultReq msg=%v", role.GetUUid(), msg) role.(gameModel.CrossLogicOuter).TopTowerChallengeResultReq(msg.IsWin, msg.FightIdx) }) //买路操作(直接胜利) serverproto.Handle_GAME_CSCrossTopTowerForceWinReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.CSCrossTopTowerForceWinReq) role := gameModel.RoleMag.GetRoleOrKick(cliId, ev) if role == nil { return } util.InfoF("uid=%v CSCrossTopTowerForceWinReq msg=%v", role.GetUUid(), msg) role.(gameModel.CrossLogicOuter).TopTowerForceWinReq(msg.FightIdx) }) //获取买路排行榜 serverproto.Handle_GAME_CSCrossTopTowerForceWinRankListReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.CSCrossTopTowerForceWinRankListReq) role := gameModel.RoleMag.GetRoleOrKick(cliId, ev) if role == nil { return } util.InfoF("uid=%v CSCrossTopTowerForceWinRankListReq msg=%v", role.GetUUid(), msg) crossSSMsg := &serverproto.SSCrossTopTowerForceWinRankListReq{ Uid: msg.Uid, StartIdx: msg.StartIdx, } role.(*gameModel.Role).SendSocial(crossSSMsg) }) //from router //巅峰之塔匹配玩家ack serverproto.Handle_GAME_SSCrossTopTowerMatchFightAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.SSCrossTopTowerMatchFightAck) role := gameModel.RoleMag.GetRole(cliId) if role == nil { return } util.DebugF("uid=%v receive SSCrossTopTowerMatchFightAck msg=%v", role.GetUUid(), msg) role.(*gameModel.Role).GetRoleCross().OnTopTowerFightMatchList(msg) }) //获取买路排行榜 serverproto.Handle_GAME_SSCrossTopTowerForceWinRankListAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.SSCrossTopTowerForceWinRankListAck) role := gameModel.RoleMag.GetRole(cliId) if role == nil { return } util.DebugF("uid=%v receive SSCrossTopTowerForceWinRankListAck ms=%v", role.GetUUid(), msg) ackMsg := &serverproto.SCCrossTopTowerForceWinRankListAck{ SelfRank: msg.SelfRank, SelfScore: msg.SelfScore, TotalRank: msg.TotalRank, RankList: msg.RankList, StartIdx: msg.StartIdx, } role.ReplayGate(ackMsg, true) }) //////GlobalCross 跨服地图相关系统(教堂) //获取服务器列表信息(状态) serverproto.Handle_GAME_CSGCrossGetServerStateReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.CSGCrossGetServerStateReq) util.DebugF("uid=%v receive CSGCrossGetServerStateReq msg=%v", cliId.SessID, msg) role := gameModel.RoleMag.GetRoleOrKick(cliId, ev) if role == nil { return } ackMsg := gameModel.GetServerStateListByType(msg.ServerType, true) if ackMsg == nil { ssStateMsg := &serverproto.SSGetGServerStateReq{ ServerType: model.SERVICE_NODE_TYPE_GLOBALCROSSMAP, } role.(*gameModel.Role).SendSocial(ssStateMsg) } else { role.ReplayGate(ackMsg, true) } }) //角色进入地图 serverproto.Handle_GAME_CSGCrossPlayerEnterMapReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.CSGCrossPlayerEnterMapReq) util.DebugF("uid=%v receive CSGCrossPlayerEnterMapReq msg=%v", cliId.SessID, msg) role := gameModel.RoleMag.GetRoleOrKick(cliId, ev) if role == nil { return } role.(gameModel.RoleCrossMapRouter).PlayerEnterMap(msg) }) //角色离开地图 serverproto.Handle_GAME_CSGCrossPlayerLeaveMapReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.CSGCrossPlayerLeaveMapReq) util.DebugF("uid=%v receive CSGCrossPlayerLeaveMapReq msg=%v", cliId.SessID, msg) role := gameModel.RoleMag.GetRoleOrKick(cliId, ev) if role == nil { return } role.(gameModel.RoleCrossMapRouter).PlayerLeave(msg) }) //客户端1s内发送的位置同步包(视野同步) serverproto.Handle_GAME_CSGCrossPlayerMapSyncPosReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.CSGCrossPlayerMapSyncPosReq) //util.DebugF("uid=%v receive CSGCrossPlayerMapSyncPosReq msg=%v", cliId.SessID, msg) role := gameModel.RoleMag.GetRoleOrKick(cliId, ev) if role == nil { return } role.(gameModel.RoleCrossMapRouter).PlayerMoveSync(msg) }) //客户端模拟使用 serverproto.Handle_GAME_CSGCrossPlayerMapSyncParamReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.CSGCrossPlayerMapSyncParamReq) //util.DebugF("uid=%v receive CSGCrossPlayerMapSyncParamReq msg=%v", cliId.SessID, msg) role := gameModel.RoleMag.GetRoleOrKick(cliId, ev) if role == nil { return } role.(gameModel.RoleCrossMapRouter).PlayerSyncParam(msg) }) //获取其他玩家角色信息,AOI地图显示使用(注意:每次发送不超过10个玩家,超过10个后服务器不会返回,做保护处理) serverproto.Handle_GAME_CSGCrossPlayerShowInfoReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.CSGCrossPlayerShowInfoReq) util.DebugF("uid=%v receive CSGCrossPlayerShowInfoReq msg=%v", cliId.SessID, msg) role := gameModel.RoleMag.GetRoleOrKick(cliId, ev) if role == nil { return } if len(msg.PlayerList) > 30 && len(msg.PlayerList) <= 0 { util.WarnF("uid=%v CSCrossPlayerShowInfoReq player beyond[30] limit len=%v", role.GetUUid(), len(msg.PlayerList)) return } ssCrossMsg := &serverproto.SSGCrossMapOtherUnitShowInfoReq{ ShowUidList: msg.PlayerList, CurSpaceId: role.(*gameModel.Role).GetRoleCross().GetCrossCurSpaceId(), } role.(*gameModel.Role).SendSocial(ssCrossMsg) }) //from router //获取服务器线路信息 serverproto.Handle_GAME_SSGetGServerStateAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.SSGetGServerStateAck) gameModel.UpdateServerStateListByType(msg.ServerType, msg) if cliId.SessID > 0 { util.DebugF("uid=%v receive SSGetGServerStateAck msg=%v", cliId.SessID, msg) role := gameModel.RoleMag.GetRole(cliId) if role == nil { return } ackMsg := gameModel.GetServerStateListByType(msg.ServerType, false) role.ReplayGate(ackMsg, true) } }) //进入地图回应 serverproto.Handle_GAME_SSGCrossMapEnterAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.SSGCrossMapEnterAck) role := gameModel.RoleMag.GetRole(cliId) if role == nil { return } util.DebugF("uid=%v receive SSGCrossMapEnterAck ms=%v", role.GetUUid(), msg) ackMsg := &serverproto.SCGCrossPlayerEnterMapAck{ Error: msg.Error, SelfInfo: msg.UnitInfo, LineNum: msg.LineNum, } role.ReplayGate(ackMsg, true) //选择线路成功 if msg.Error == int32(serverproto.ErrorCode_ERROR_OK) { role.(*gameModel.Role).GetRoleCross().OnPlayerEnterMapSuccess(msg) } }) //通知其他玩家,有单位进入地图 serverproto.Handle_GAME_SSGCrossMapEnterNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.SSGCrossMapEnterNtf) //util.DebugF("SSGCrossMapEnterNtf ms=%v", len(msg.UnitInfoList)) ntfMsg := &serverproto.SCGCrossPlayerEnterNtf{ UnitInfoList: msg.UnitInfoList, } gameModel.SendMsgFromCrossRouter(ntfMsg, cliId) }) //通知其他单位,有单位离开地图 serverproto.Handle_GAME_SSGCrossMapLeaveNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.SSGCrossMapLeaveNtf) //util.DebugF("SSGCrossMapLeaveNtf ms=%v", len(msg.UnitInfoList)) ntfMsg := &serverproto.SCGCrossPlayerLeaveNtf{ UnitInfoList: msg.UnitInfoList, } gameModel.SendMsgFromCrossRouter(ntfMsg, cliId) }) //位置同步消息 serverproto.Handle_GAME_SSGCrossMapSyncPosNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.SSGCrossMapSyncPosNtf) //util.DebugF("SSGCrossMapSyncPosNtf ms=%v", len(msg.SyncUnitList)) ntfMsg := &serverproto.SCGCrossPlayerMapSyncPosNtf{ UnitInfoList: msg.SyncUnitList, } gameModel.SendMsgFromCrossRouter(ntfMsg, cliId) }) serverproto.Handle_GAME_SSGCrossMapSyncParamNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.SSGCrossMapSyncParamNtf) //util.DebugF("SSGCrossMapSyncParamNtf ms=%v", msg.SyncUnitList) ntfMsg := &serverproto.SCGCrossPlayerMapSyncParamNtf{ UnitInfoList: msg.SyncUnitList, } gameModel.SendMsgFromCrossRouter(ntfMsg, cliId) }) serverproto.Handle_GAME_SSGCrossMapOtherUnitShowInfoNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.SSGCrossMapOtherUnitShowInfoNtf) util.DebugF("receive SSGCrossMapOtherUnitShowInfoAck msg=%v", len(msg.ShowInfoList)) ntfMsg := &serverproto.SCGCrossPlayerShowInfoNtf{ ShowInfoList: msg.ShowInfoList, } gameModel.SendMsgFromCrossRouter(ntfMsg, cliId) }) }