map_msg.go 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. package msg
  2. import (
  3. "rocommon"
  4. "rocommon/util"
  5. "roserver/baseserver/model"
  6. model3 "roserver/server_aoi/model"
  7. "roserver/serverproto"
  8. )
  9. func init() {
  10. //角色进入地图(消息来自game)
  11. serverproto.Handle_AOI_SSPlayerEnterMapReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  12. msg := ev.Msg().(*serverproto.SSPlayerEnterMapReq)
  13. tmpEv := ev.(*model.RecvServiceMsgEvent)
  14. if tmpEv == nil {
  15. return
  16. }
  17. util.InfoF("receive SSPlayerEnterMapReq msg=%v master=%v", msg, tmpEv.IsMaster)
  18. //msg.MapType == 0表示主城
  19. aoiMap := model3.RoleMapMag.GetAoiMap(msg.MapType, msg.GuildId)
  20. if aoiMap != nil {
  21. aoiMap.PlayerEnterMap(msg.Pos, msg.ShowInfo.Uid,
  22. &model.ClientID{
  23. SessID: msg.ClientId,
  24. ServiceID: msg.ServiceNode, //这边需要看一下是否有错,消息来自game
  25. }, int32(model3.UnityType_Player), msg.ShowInfo, tmpEv.IsMaster)
  26. } else {
  27. util.InfoF("uid=%v SSPlayerEnterMapReq aoi map err=aoi map not find", msg.ShowInfo.Uid)
  28. }
  29. })
  30. //角色离开地图
  31. serverproto.Handle_AOI_SSPlayerLeaveMapNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  32. msg := ev.Msg().(*serverproto.SSPlayerLeaveMapNtf)
  33. tmpEv := ev.(*model.RecvServiceMsgEvent)
  34. if tmpEv == nil {
  35. return
  36. }
  37. util.InfoF("receive SSPlayerLeaveMapNtf msg=%v master=%v", msg, tmpEv.IsMaster)
  38. if cliId.SessID == 0 {
  39. aoiMap := model3.RoleMapMag.GetAoiMap(0, 0)
  40. if aoiMap != nil {
  41. aoiMap.NpcLeave(msg.Uid)
  42. }
  43. } else {
  44. model3.RoleMapMag.Leave(cliId.SessID, cliId.ServiceID)
  45. }
  46. })
  47. //移动
  48. serverproto.Handle_AOI_CSPlayerMoveReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  49. msg := ev.Msg().(*serverproto.CSPlayerMoveReq)
  50. tmpEv := ev.(*model.RecvServiceMsgEvent)
  51. if tmpEv == nil {
  52. return
  53. }
  54. //util.InfoF("receive CSPlayerMoveReq cliId=%v msg=%v master=%v", cliId.SessID, msg, tmpEv.IsMaster)
  55. model3.RoleMapMag.Move(msg.Pos, cliId.SessID)
  56. })
  57. //获取其他玩家角色信息
  58. serverproto.Handle_AOI_CSMapGetOtherPlayersInfoReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  59. msg := ev.Msg().(*serverproto.CSMapGetOtherPlayersInfoReq)
  60. util.InfoF("receive CSMapGetOtherPlayersInfoReq msg=%v", msg)
  61. ntfMsg := &serverproto.SCMapOtherPlayersInfoNtf{}
  62. for _, value := range msg.PlayerList {
  63. info := &serverproto.PlayerShowInfo{Uid: value}
  64. ret := model3.RoleMapMag.FillAoiPlayerShowInfo(info)
  65. if !ret {
  66. continue
  67. }
  68. ntfMsg.InfoList = append(ntfMsg.InfoList, info)
  69. }
  70. if len(ntfMsg.InfoList) > 0 {
  71. model.ServiceReplay(ev, ntfMsg)
  72. }
  73. })
  74. ////移动到目标点
  75. //serverproto.Handle_AOI_CSPlayerMoveToReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  76. // //msg := ev.Msg().(*serverproto.CSPlayerMoveToReq)
  77. // //baseutil.InfoF("receive CSPlayerMoveToReq msg:%v", msg)
  78. // //todo...
  79. //})
  80. //avatar信息同步等数据相关消息
  81. serverproto.Handle_AOI_SSPlayerShowChangeReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  82. msg := ev.Msg().(*serverproto.SSPlayerShowChangeReq)
  83. util.InfoF("receive SSPlayerShowChangeReq msg:%v", msg)
  84. model3.RoleMapMag.MapRoleChangeShow(cliId.SessID, msg.ShowInfo)
  85. })
  86. //客户端播放动作请求(来自mapRouter)
  87. serverproto.Handle_AOI_CSPlayerActionReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  88. msg := ev.Msg().(*serverproto.CSPlayerActionReq)
  89. util.InfoF("receive CSPlayerActionReq msg:%v", msg)
  90. model3.RoleMapMag.MapRoleDoAction(cliId.SessID, msg.Uid, msg.ActionId, msg.Pos)
  91. })
  92. }