Files
bl/logic/service/space/hot.go

85 lines
1.6 KiB
Go
Raw Permalink Normal View History

package space
2026-04-02 22:38:02 +08:00
import "sync"
// MapHotInfo 表示地图热度信息
type MapHotInfo struct {
MapID uint32 `json:"mapId"` // 地图ID
Count int32 `struc:"uint32" json:"count"` // 地图里的人数
}
type MapTip struct {
2026-04-02 22:38:02 +08:00
mu sync.RWMutex
Count int `struc:"uint32" json:"count"` // 地图里的人数
TipInfoS map[uint32]*TipInfo `json:"tipInfoS"`
}
type TipInfo struct {
Talk []uint32 `json:"talk"` //矿物
Boss []uint32 `json:"boss"` //boss
Pet []uint32 `json:"pet"` //宠物
Diao []uint32 `json:"diao"` //掉落
}
2026-04-02 22:38:02 +08:00
func (m *MapTip) ChangeCount(delta int) int {
m.mu.Lock()
defer m.mu.Unlock()
2026-04-02 22:38:02 +08:00
if delta != 0 {
m.Count += delta
if m.Count < 0 {
m.Count = 0
}
}
return m.Count
}
2026-04-02 22:38:02 +08:00
func (m *MapTip) CountValue() int {
m.mu.RLock()
defer m.mu.RUnlock()
return m.Count
}
var maphot = make(map[uint32]*MapTip, 0)
func GetMapHot() []MapHotInfo {
ret := make([]MapHotInfo, 0)
for k, v := range maphot {
ret = append(ret, MapHotInfo{
MapID: k,
2026-04-02 22:38:02 +08:00
Count: int32(v.CountValue()),
})
}
return ret
// result1, _, _ := requestGroup.Do("map_hot", func() (interface{}, error) {
// tt := make(map[uint32]uint32)
// for _, v := range xmlres.MapConfig.Maps {
// t1, ok := tt[uint32(v.Super)]
// if ok {
// tt[uint32(v.Super)] = uint32(int(t1) + GetSpace(uint32(v.ID)).User.Count())
// } else {
// tt[uint32(v.Super)] = uint32(GetSpace(uint32(v.ID)).User.Count())
// }
// }
// var result = make([]MapHotInfo, 0)
// for k, v := range tt {
// result = append(result, MapHotInfo{
// MapID: uint32(k),
// Count: uint32(v),
// })
// }
// return result, nil
// })
2025-08-28 23:23:24 +00:00
}