diff --git a/logic/controller/maphot.go b/logic/controller/maphot.go index c6227207..66aaef07 100644 --- a/logic/controller/maphot.go +++ b/logic/controller/maphot.go @@ -4,15 +4,24 @@ import ( "blazing/common/data/entity" "blazing/common/socket/errorcode" "blazing/logic/service/maphot" + "blazing/logic/service/space" ) func (h Controller) MapHot(data *maphot.InInfo, c *entity.Player) (result *maphot.OutInfo, err errorcode.ErrorCode) { - result = &maphot.OutInfo{ HotInfos: make([]maphot.MapHotInfo, 0), } - return + ttt := space.GetMapHot() + for k, v := range ttt { + result.HotInfos = append(result.HotInfos, maphot.MapHotInfo{ + MapID: uint32(k), + Count: uint32(space.GetPlanet(uint32(v)).Len()), + }) + + } + + return } diff --git a/logic/service/maphot/maphot.go b/logic/service/maphot/maphot.go index 7dba06f8..ab58f825 100644 --- a/logic/service/maphot/maphot.go +++ b/logic/service/maphot/maphot.go @@ -4,8 +4,8 @@ import "blazing/common/socket/handler" // MapHotInfo 表示地图热度信息 type MapHotInfo struct { - MapID uint64 `json:"mapId"` // 地图ID - Count uint64 `json:"count"` // 地图里的人数 + MapID uint32 `json:"mapId"` // 地图ID + Count uint32 `json:"count"` // 地图里的人数 } type InInfo struct { Head handler.TomeeHeader `cmd:"1004" struc:"[0]pad"` //玩家登录 diff --git a/logic/service/space/walk.go b/logic/service/space/walk.go index e32a6e46..0d6efab0 100644 --- a/logic/service/space/walk.go +++ b/logic/service/space/walk.go @@ -8,8 +8,27 @@ import ( "blazing/modules/blazing/model" ) +func GetMapHot() map[uint32]uint32 { + + tt := make(map[uint32]uint32) + + for _, v := range xml.MapConfig.Maps { + + t1, ok := tt[uint32(v.Super)] + if ok { + tt[uint32(v.Super)] = uint32(int(t1) + GetPlanet(uint32(v.ID)).Len()) + + } else { + tt[uint32(v.Super)] = uint32(GetPlanet(uint32(v.ID)).Len()) + } + + } +return tt +} + // 获取星球 func GetPlanet(id uint32) *Space { + planet, ok := planetmap.Load(id) if ok { return planet