1
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful

This commit is contained in:
昔念
2026-02-20 22:39:04 +08:00
parent 922f7c3622
commit f6b583575a
5 changed files with 30 additions and 30 deletions

View File

@@ -2,14 +2,14 @@ package space
import ( import (
"blazing/common/data/xmlres" "blazing/common/data/xmlres"
"blazing/common/utils"
"blazing/cool" "blazing/cool"
"blazing/modules/config/service"
"blazing/logic/service/common" "blazing/logic/service/common"
"blazing/logic/service/space/info" "blazing/logic/service/space/info"
"github.com/gogf/gf/v2/util/grand"
csmap "github.com/mhmtszr/concurrent-swiss-map" csmap "github.com/mhmtszr/concurrent-swiss-map"
"github.com/samber/lo"
"github.com/tnnmigga/enum" "github.com/tnnmigga/enum"
) )
@@ -20,9 +20,6 @@ var WeatherStatus = enum.New[struct {
Snow uint32 `enum:"2"` // 下雪 Snow uint32 `enum:"2"` // 下雪
}]() }]()
// 定义天气地图
var wermap = []uint32{32}
// Space 针对Player的并发安全map键为uint32类型 // Space 针对Player的并发安全map键为uint32类型
type Space struct { type Space struct {
User *csmap.CsMap[uint32, common.PlayerI] // 存储玩家数据的map键为玩家ID User *csmap.CsMap[uint32, common.PlayerI] // 存储玩家数据的map键为玩家ID
@@ -112,28 +109,33 @@ func GetSpace(id uint32) *Space {
} }
} }
if _, ok := lo.Find(wermap, func(mapID uint32) bool { return mapID == ret.ID }); ok { r := service.NewMapService().GetData(ret.ID)
// ret.CanWeather = 1 if r != nil {
cool.Cron.CustomFunc(ret, func() { if len(r.WeatherType) > 1 {
//if ret.CanWeather == 1 { // ret.CanWeather = 1
var neww uint32 = 0 cool.Cron.CustomFunc(ret, func() {
//if ret.CanWeather == 1 {
var neww uint32 = 0
if grand.Meet(1, 10) { if len(r.WeatherType) == 2 {
neww = uint32(grand.N(1, 2)) neww, _ = utils.RandomByWeight(r.WeatherType, []uint32{9, 1})
} else {
neww, _ = utils.RandomByWeight(r.WeatherType, []uint32{8, 1, 1})
}
} if neww != ret.Weather {
ret.Broadcast(nil, 50004, &info.S2C_50004{Id: uint32(neww)})
ret.Weather = neww
ret.getwerboss()
}
if neww != ret.Weather { //}
ret.Broadcast(nil, 50004, &info.S2C_50004{Id: uint32(neww)})
ret.Weather = neww
ret.getwerboss()
}
//} })
}
})
} }
planetmap.Store(id, ret) planetmap.Store(id, ret)
return ret return ret
} }

View File

@@ -14,7 +14,7 @@ func init() {
// 初始化控制器配置路由前缀、支持的API、绑定Service // 初始化控制器配置路由前缀、支持的API、绑定Service
var petFusionController = &PetFusionController{ var petFusionController = &PetFusionController{
&cool.Controller{ &cool.Controller{
Prefix: "/admin/pet/fusion", // 路由前缀(按模块分类:宠物-融合配方) Prefix: "/admin/config/fusion", // 路由前缀(按模块分类:宠物-融合配方)
Api: []string{"Add", "Delete", "Update", "Info", "List", "Page"}, // 支持的基础CRUD接口 Api: []string{"Add", "Delete", "Update", "Info", "List", "Page"}, // 支持的基础CRUD接口
Service: service.NewPetFusionService(), // 绑定主表Service Service: service.NewPetFusionService(), // 绑定主表Service
}, },

View File

@@ -14,9 +14,9 @@ func init() {
// 初始化控制器配置路由前缀、支持的API、绑定Service // 初始化控制器配置路由前缀、支持的API、绑定Service
var petFusionMaterialController = &PetFusionMaterialController{ var petFusionMaterialController = &PetFusionMaterialController{
&cool.Controller{ &cool.Controller{
Prefix: "/admin/pet/fusionmaterial", // 路由前缀(主表路由+子表名,层级清晰) Prefix: "/admin/config/fusionmaterial", // 路由前缀(主表路由+子表名,层级清晰)
Api: []string{"Add", "Delete", "Update", "Info", "List", "Page"}, // 支持的基础CRUD接口 Api: []string{"Add", "Delete", "Update", "Info", "List", "Page"}, // 支持的基础CRUD接口
Service: service.NewPetFusionMaterialService(), // 绑定子表Service Service: service.NewPetFusionMaterialService(), // 绑定子表Service
}, },
} }
// 注册控制器到框架 // 注册控制器到框架

View File

@@ -11,17 +11,15 @@ const (
// MapConfig 地图核心配置模型(包含地图基础属性、刷怪配置、天气配置、掉落物配置) // MapConfig 地图核心配置模型(包含地图基础属性、刷怪配置、天气配置、掉落物配置)
type MapConfig struct { type MapConfig struct {
*BaseConfig *cool.Model // 保留通用ModelID/创建时间/更新时间等)
// 核心字段 // 核心字段
MapID uint32 `gorm:"not null;primaryKey;comment:'地图唯一ID主键'" json:"map_id" description:"地图ID"` MapID uint32 `gorm:"not null;primaryKey;comment:'地图唯一ID主键'" json:"map_id" description:"地图ID"`
IsSpawnMonster int32 `gorm:"not null;default:0;comment:'是否开启刷怪1:开启0:关闭)'" json:"is_spawn_monster" description:"是否开启刷怪"`
//`gorm:"type:int[];comment:'副宠物IDs1,2,3'" json:"sub_pet_ids"`
WeatherType []uint32 `gorm:"type:int[];comment:'天气类型( 1-雨天2-雪天)'" json:"weather_type"` WeatherType []uint32 `gorm:"type:int[];comment:'天气类型( 1-雨天2-雪天)'" json:"weather_type"`
// 掉落物配置 // 掉落物配置
DropItemIds []uint32 `gorm:"type:int[];comment:'掉落物IDs" json:"drop_item_ids"` DropItemIds []uint32 `gorm:"type:int[];comment:'掉落物IDs" json:"drop_item_ids"`
Remark string `gorm:"type:varchar(255);default:'';comment:'性别配置备注(如:默认性别规则)'" json:"remark"` // 调整注释
} }
// -------------------------- 核心配套方法(遵循项目规范)-------------------------- // -------------------------- 核心配套方法(遵循项目规范)--------------------------
@@ -35,7 +33,7 @@ func (*MapConfig) GroupName() string {
func NewMapConfig() *MapConfig { func NewMapConfig() *MapConfig {
return &MapConfig{ return &MapConfig{
BaseConfig: NewBaseConfig(), Model: cool.NewModel(),
} }
} }

View File

@@ -22,7 +22,7 @@ func NewMapService() *MapService {
func (s *MapService) GetData(p1 uint32) (ret *model.MapConfig) { func (s *MapService) GetData(p1 uint32) (ret *model.MapConfig) {
//cacheKey := strings.Join([]string{fmt.Sprintf("%d", p1), fmt.Sprintf("%d", p2)}, ":") //cacheKey := strings.Join([]string{fmt.Sprintf("%d", p1), fmt.Sprintf("%d", p2)}, ":")
m := dbm_enable(s.Model) m := dbm_notenable(s.Model)
m.Wheref(`male_pet_ids @> ARRAY[?]::integer[]`, p1).Scan(&ret) m.Wheref(`male_pet_ids @> ARRAY[?]::integer[]`, p1).Scan(&ret)