| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551 |
- 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_CSCrossYuanHangTrialBuyChallengeNumReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.CSCrossYuanHangTrialBuyChallengeNumReq)
- util.InfoF("uid=%v CSCrossYuanHangTrialBuyChallengeNumReq msg=%v", cliId.SessID, msg)
- role := gameModel.RoleMag.GetRoleOrKick(cliId, ev)
- if role == nil {
- return
- }
- role.(gameModel.CrossLogicOuter).YuanHangTrialChallengeBuy()
- })
- //挑战结果通知
- 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.InfoF("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)
- })
- }
|