diff --git a/logic/service/space/hot.go b/logic/service/space/hot.go index d12f21ae..46786858 100644 --- a/logic/service/space/hot.go +++ b/logic/service/space/hot.go @@ -5,15 +5,40 @@ type MapHotInfo struct { MapID uint32 `json:"mapId"` // 地图ID Count int32 `struc:"uint32" json:"count"` // 地图里的人数 } +type MapTip struct { + Count int `struc:"uint32" json:"count"` // 地图里的人数 + TipInfoS map[uint32]*TipInfo `json:"tipInfoS"` +} -var maphot = make(map[uint32]*int32, 0) +type TipInfo struct { + Talk []uint32 `json:"talk"` //矿物 + Boss []uint32 `json:"boss"` //boss + Pet []uint32 `json:"pet"` //宠物 + Diao []uint32 `json:"diao"` //掉落 +} + +func (m *MapTip) GetCount(t int) int { + + switch { + case t < 0: + if m.Count > 0 { + m.Count -= t + } + case t > 0: + m.Count += t + } + + 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, - Count: *v, + Count: int32(v.GetCount(0)), }) } diff --git a/logic/service/space/in_out.go b/logic/service/space/in_out.go index 81734fbd..9c6ecc9c 100644 --- a/logic/service/space/in_out.go +++ b/logic/service/space/in_out.go @@ -36,8 +36,9 @@ func (s *Space) LeaveMap(c common.PlayerI) { s.Broadcast(c, 2002, info) current, ok := maphot[s.Super] - if ok && *current > 0 { - atomic.AddInt32(maphot[s.Super], -1) + if ok { + current.GetCount(-1) + } if atomic.CompareAndSwapUint32(&s.Owner.UserID, c.GetInfo().UserID, 0) { @@ -57,9 +58,10 @@ func (s *Space) EnterMap(c common.PlayerI) { s.Broadcast(c, 2001, out) s.User.Store(c.GetInfo().UserID, c) s.UserInfo.Store(c.GetInfo().UserID, *out) - _, ok := maphot[s.Super] + curmaps, ok := maphot[s.Super] if ok { - atomic.AddInt32(maphot[s.Super], 1) + curmaps.GetCount(1) + //atomic.AddInt32(maphot[s.Super], 1) } } diff --git a/logic/service/space/space.go b/logic/service/space/space.go index 12bf9486..e4c37fd0 100644 --- a/logic/service/space/space.go +++ b/logic/service/space/space.go @@ -80,10 +80,19 @@ func GetSpace(id uint32) *Space { _, ok := maphot[ret.Super] if !ok { - var t1 int32 - maphot[ret.Super] = &t1 - } + maphot[ret.Super] = &MapTip{} + maphot[ret.Super].TipInfoS = make(map[uint32]*TipInfo, 0) + } + _, ok = maphot[ret.Super].TipInfoS[ret.ID] + if !ok { + tips := &TipInfo{} + tips.Diao = service.NewMapService().GetData(ret.ID).DropItemIds + tips.Pet = service.NewMapPitService().GetDataALL(ret.ID) + tips.Talk = service.NewTalkConfigService().GetTip(ret.ID) + tips.Boss = service.NewMapNodeService().GetTip(ret.ID) + maphot[ret.Super].TipInfoS[ret.ID] = tips + } ret.Name = v.Name break } diff --git a/modules/config/controller/admin/map.go b/modules/config/controller/admin/map.go index 8b0a0965..98dddd1e 100644 --- a/modules/config/controller/admin/map.go +++ b/modules/config/controller/admin/map.go @@ -31,15 +31,20 @@ type TimeMapReq struct { func (this *MapController) TimeMap(ctx context.Context, req *TimeMapReq) (res *cool.BaseRes, err error) { res = &cool.BaseRes{} res.Data = service.NewMapService().GetTimeMap() + // re := service.NewMapService().GetTimeMap() + // for _, v := range re { + // v. + + // } return res, nil } -type MapTipReq struct { - g.Meta `path:"/maptip" method:"GET"` -} +// type MapTipReq struct { +// g.Meta `path:"/maptip" method:"GET"` +// } -func (this *MapController) MapTip(ctx context.Context, req *MapTipReq) (res *cool.BaseRes, err error) { - res = &cool.BaseRes{} - res.Data = service.NewMapService().GetTimeMap() - return res, nil -} +// func (this *MapController) MapTip(ctx context.Context, req *MapTipReq) (res *cool.BaseRes, err error) { +// res = &cool.BaseRes{} +// res.Data = service.NewMapService().GetTimeMap() +// return res, nil +// } diff --git a/modules/config/model/map_pit.go b/modules/config/model/map_pit.go index 0b7788fd..6d1ad40c 100644 --- a/modules/config/model/map_pit.go +++ b/modules/config/model/map_pit.go @@ -30,7 +30,7 @@ type MapPit struct { // 复用通用基础配置(ID/创建时间/更新时间等) MapID int32 `gorm:"not null;index;comment:'所属地图ID'" json:"map_id" description:"地图ID"` - RefreshID []int `gorm:"type:int[];comment:'精灵ID列表'" json:"refresh_id"` + RefreshID []uint32 `gorm:"type:int[];comment:'精灵ID列表'" json:"refresh_id"` Pos []int `gorm:"type:int[];comment:'坑位位置'" json:"pos"` //最小等级 MinLevel int `gorm:"type:int;not null;default:1;comment:'最小等级'" json:"min_level"` diff --git a/modules/config/service/map.go b/modules/config/service/map.go index c6dbe6a5..b746a63b 100644 --- a/modules/config/service/map.go +++ b/modules/config/service/map.go @@ -39,12 +39,13 @@ func (s *MapService) GetTimeMap() (ret []model.MapConfig) { return } -func (s *MapService) GetTimeTip() (ret []model.MapConfig) { - //cacheKey := strings.Join([]string{fmt.Sprintf("%d", p1), fmt.Sprintf("%d", p2)}, ":") - m := dbm_notenable(s.Model) - m.Where(`is_time_space`, 1).Scan(&ret) +// func (s *MapService) GetTimeTip() (ret []model.MapConfig) { +// //cacheKey := strings.Join([]string{fmt.Sprintf("%d", p1), fmt.Sprintf("%d", p2)}, ":") +// m := dbm_notenable(s.Model) - return +// m.Where(`is_time_space`, 1).Scan(&ret) -} +// return + +// } diff --git a/modules/config/service/map_node.go b/modules/config/service/map_node.go index 828f6645..abca3636 100644 --- a/modules/config/service/map_node.go +++ b/modules/config/service/map_node.go @@ -3,6 +3,8 @@ package service import ( "blazing/cool" "blazing/modules/config/model" + + "github.com/samber/lo" ) type MapNodeService struct { @@ -44,3 +46,16 @@ func (s *MapNodeService) GetDataNode(mapid, node uint32) *model.MapNode { return pet } +func (s *MapNodeService) GetTip(mapid uint32) []uint32 { + + var pet []model.MapNode //一个特性应该是唯一的,但是我们要获取默认随机特性 + dbm_enable(s.Model).Where("map_id", mapid).Scan(&pet) + var ret []uint32 + for _, v := range pet { + ret = append(ret, v.TriggerID) + + } + + return lo.Union(ret) + +} diff --git a/modules/config/service/map_pit.go b/modules/config/service/map_pit.go index 0a68fb23..55b6402c 100644 --- a/modules/config/service/map_pit.go +++ b/modules/config/service/map_pit.go @@ -3,6 +3,8 @@ package service import ( "blazing/cool" "blazing/modules/config/model" + + "github.com/samber/lo" ) type MapPitService struct { @@ -28,3 +30,16 @@ func (s *MapPitService) GetData(mapid, pos uint32) []model.MapPit { return pet } +func (s *MapPitService) GetDataALL(mapid uint32) []uint32 { + + var pet []model.MapPit //一个特性应该是唯一的,但是我们要获取默认随机特性 + dbm_enable(s.Model).Where("map_id", mapid).Scan(&pet) + var ret []uint32 + for _, v := range pet { + + ret = append(ret, v.RefreshID...) + } + + return lo.Union(ret) + +} diff --git a/modules/config/service/talkconfig.go b/modules/config/service/talkconfig.go index 45cc71ad..9812b39c 100644 --- a/modules/config/service/talkconfig.go +++ b/modules/config/service/talkconfig.go @@ -3,6 +3,8 @@ package service import ( "blazing/cool" "blazing/modules/config/model" + + "github.com/samber/lo" ) type TalkConfigService struct { @@ -25,3 +27,16 @@ func (s *TalkConfigService) GetCache(flag int) model.MineralCollectionConfig { return config } + +func (s *TalkConfigService) GetTip(mapid uint32) []uint32 { + var item []model.TaskConfig + dbm_enable(s.Model).Where("map_id", mapid).Scan(&item) + var res []uint32 + for _, v := range item { + res = append(res, v.ItemRewardIds...) + + } + + return lo.Union(res) + +} diff --git a/modules/config/service/task.go b/modules/config/service/task.go index 2ff1b5b8..aee82d4a 100644 --- a/modules/config/service/task.go +++ b/modules/config/service/task.go @@ -57,3 +57,4 @@ func (s *TaskService) IsAcceptable(taskid uint32) (out *model.TaskConfig) { return } + \ No newline at end of file diff --git a/public/config/72_com.robot.core.config.xml.EggsXMLInfo_xmlClass.bin b/public/config/72_com.robot.core.config.xml.EggsXMLInfo_xmlClass.bin deleted file mode 100644 index d93bab56..00000000 --- a/public/config/72_com.robot.core.config.xml.EggsXMLInfo_xmlClass.bin +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - -