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

This commit is contained in:
昔念
2026-02-14 23:14:43 +08:00
parent 3b271e7c41
commit e1f910848f
23 changed files with 58 additions and 44 deletions

View File

@@ -135,6 +135,8 @@ func (s *Service) ServiceUpdate(ctx context.Context, req *UpdateReq) (data inter
}
}
m := DBM(s.Model)
rmap["updateTime"] = nil
//rmap["id"] = nil
_, err = m.Data(rmap).Where("id", rmap["id"]).Update()
return

View File

@@ -87,13 +87,17 @@ func (h Controller) ArenaFightOwner(data *fight.ARENA_FIGHT_OWENR, c *player.Pla
UseEV: int32(addev),
})
} else {
c.GetSpace().Owner.ARENA_Player.GetInfo().MaxArenaWins += 1
oper := c.GetSpace().Owner.ARENA_Player.GetInfo()
if oper != nil {
c.GetSpace().Owner.ARENA_Player.GetInfo().MaxArenaWins += 1
c.GetSpace().Owner.ARENA_Player.GetInfo().EVPool += addev
c.GetSpace().Owner.ARENA_Player.GetInfo().EVPool += addev
c.GetSpace().Owner.ARENA_Player.SendPackCmd(50001, &pet.S2C_50001{
UseEV: int32(addev),
})
}
c.GetSpace().Owner.ARENA_Player.SendPackCmd(50001, &pet.S2C_50001{
UseEV: int32(addev),
})
}
}

View File

@@ -30,17 +30,14 @@ func (h Controller) EnterMap(data *space.InInfo, c *player.Player) (result *info
println("进入地图", c.Info.UserID, c.Info.MapID)
}
defer func() {
if data.MapId > 10000 && data.MapId != c.Info.UserID {
c.Service.Done.UpdateRoom(1, 0)
service.NewDoneService(data.MapId).UpdateRoom(0, 1)
}
}()
// copier.CopyWithOption(result, c.Info, copier.Option{DeepCopy: true})
c.GetSpace().EnterMap(c)
if data.MapId > 10000 && data.MapId != c.Info.UserID {
c.Service.Done.UpdateRoom(1, 0)
service.NewDoneService(data.MapId).UpdateRoom(0, 1)
}
return nil, -1
}
func (h Controller) GetMapHot(data *maphot.InInfo, c *player.Player) (result *maphot.OutInfo, err errorcode.ErrorCode) {

View File

@@ -43,7 +43,10 @@ func (f *FightC) Over(c common.PlayerI, res info.EnumBattleOverReason) {
f.overl.Do(func() {
f.Reason = res
f.WinnerId = f.GetInputByPlayer(c, true).UserID
if f.GetInputByPlayer(c, true) != nil {
f.WinnerId = f.GetInputByPlayer(c, true).UserID
}
close(f.quit)
})

View File

@@ -117,6 +117,7 @@ func (f *FightC) battleLoop() {
// f.Our.Player.(*player.Player).MapNPC.Reset(7 * time.Second)
copier.Copy(&f.FightOverInfo, f.Our.Player.(*player.Player).Info)
f.Our.Player.(*player.Player).MapNPC.Reset(7 * time.Second)
// f.Our.Player.(*player.Player).Info.FightTime = f.Our.Player.(*player.Player).Info.FightTime + time.Now().Unix() - f.StartTime.Unix()
}

View File

@@ -59,7 +59,7 @@ func NewFight(p1, p2 common.PlayerI, fn func(info.FightOverInfo)) (*FightC, erro
f.Opp.Finished = true //PVE 默认boss数据直接加载完成
loadtime = 60 * time.Second
//f.handleNPCFightSpecial(&fightStartInfo)
f.Our.Player.(*player.Player).GenMonster()
if f.Opp.Player.(*player.AI_player).CanCapture > 0 {
f.Opp.CanCapture = f.Opp.Player.(*player.AI_player).CanCapture
f.FightStartOutboundInfo.Info2.Catchable = 1 //可以捕捉就置1

View File

@@ -26,7 +26,7 @@ var (
r := parser.GetOpt("debug", false)
if r.Bool() {
g.DB().SetDebug(true)
// service.NewServerService().SetServerScreen(0, "sss")
cool.Config.ServerInfo.IsDebug = 1
}
if cool.IsRedisMode {

View File

@@ -11,7 +11,7 @@ const (
// ItemGift 物品奖励基础配置模型(与数据库表 item_gift 字段一一对应,核心存储结构)
type ItemGift struct {
*BaseConfig
*cool.Model // 保留通用ModelID/创建时间/更新时间等)
// 核心业务字段按需求实现物品id、备注、是否启用、是否为扭蛋、物品数量
ItemID int64 `gorm:"not null;default:0;comment:'物品ID关联物品配置表主键'" json:"item_id"`
@@ -20,6 +20,7 @@ type ItemGift struct {
ItemMinCount int64 `gorm:"column:item_min_count;not null;comment:单次采集最小产出数量" json:"item_min_count"`
// ItemMaxCount 单次采集最大产出数量
ItemMaxCount uint32 `gorm:"column:item_max_count;not null;comment:单次采集最大产出数量" json:"item_max_count"`
Remark string `gorm:"type:varchar(255);default:'';comment:'性别配置备注(如:默认性别规则)'" json:"remark"` // 调整注释
}
// TableName 指定ItemGift对应的数据库表名遵循现有代码规范
@@ -35,7 +36,7 @@ func (*ItemGift) GroupName() string {
// NewItemGift 创建一个新的ItemGift实例初始化通用Model字段+默认值,与现有实例创建逻辑一致)
func NewItemGift() *ItemGift {
return &ItemGift{
BaseConfig: NewBaseConfig(),
Model: cool.NewModel(),
}
}

View File

@@ -11,15 +11,16 @@ const (
// PetReward 精灵奖励基础配置模型(核心存储结构,与数据库表字段一一对应)
type PetReward struct {
*BaseConfig
*cool.Model // 保留通用ModelID/创建时间/更新时间等)
MonID int32 `gorm:"not null;comment:'BOSS对应的精灵ID'" json:"mon_id"`
DV int32 `gorm:"not null;default:0;comment:'成长值'" json:"dv"`
Nature int32 `gorm:"not null;default:0;comment:'BOSS属性-性格'" json:"nature"`
Effect int32 `gorm:"not null;comment:'BOSS特性'" json:"effect"`
Lv int32 `gorm:"not null;comment:'BOSS等级LvHpMatchUser非0时此配置无效'" json:"lv"`
IsEgg uint32 `gorm:"not null;default:0;comment:'是否蛋'" json:"is_egg"` //奖励是否为扭蛋奖励
IsLight uint32 `gorm:"not null;default:0;comment:'是否擦灯'" json:"is_light"` //奖励是否为光之子``
IsEgg uint32 `gorm:"not null;default:0;comment:'是否蛋'" json:"is_egg"` //奖励是否为扭蛋奖励
IsLight uint32 `gorm:"not null;default:0;comment:'是否擦灯'" json:"is_light"` //奖励是否为光之子``
Remark string `gorm:"type:varchar(255);default:'';comment:'性别配置备注(如:默认性别规则)'" json:"remark"` // 调整注释
}
// TableName 指定PetReward对应的数据库表名遵循现有代码规范
@@ -35,7 +36,7 @@ func (*PetReward) GroupName() string {
// NewPetReward 创建一个新的PetReward实例初始化通用Model字段+所有字段默认值与NewBossConfig保持一致
func NewPetReward() *PetReward {
return &PetReward{
BaseConfig: NewBaseConfig(),
Model: cool.NewModel(),
}
}

View File

@@ -7,7 +7,7 @@ import (
)
// /取消redis空节点的强制缓存
func dbm(m cool.IModel) *gdb.Model {
func dbm_enable(m cool.IModel) *gdb.Model {
ret := cool.DBM(m)
if cool.Config.ServerInfo.IsVip == 0 { //正式服启动缓存
ret = ret.Where("is_enable", 1)
@@ -20,7 +20,7 @@ func dbm(m cool.IModel) *gdb.Model {
}
return ret
}
func dbm_fix(m cool.IModel) *gdb.Model {
func dbm_notenable(m cool.IModel) *gdb.Model {
ret := cool.DBM(m).Cache(gdb.CacheOption{
Force: false,
})
@@ -40,3 +40,8 @@ func dbm_nocache(m cool.IModel) *gdb.Model {
// }
return ret
}
func dbm_nocache_noenable(m cool.IModel) *gdb.Model {
ret := cool.DBM(m)
return ret
}

View File

@@ -25,7 +25,7 @@ func (s *BossService) Get(id uint32) *model.BossConfig {
return nil
}
var item *model.BossConfig
dbm_fix(s.Model).Where("id", id).Scan(&item)
dbm_notenable(s.Model).Where("id", id).Scan(&item)
return item

View File

@@ -40,7 +40,7 @@ func NewCdkService() *CdkService {
}
func (s *CdkService) Get(id string) *model.CDKConfig {
var item *model.CDKConfig
dbm_fix(s.Model).Where("cdk_code", id).WhereNot("exchange_remain_count", 0).Scan(&item)
dbm_notenable(s.Model).Where("cdk_code", id).WhereNot("exchange_remain_count", 0).Scan(&item)
return item

View File

@@ -10,7 +10,7 @@ type EffectService struct {
}
func (s *EffectService) Args(id uint32) (int, []int) {
m := dbm_fix(s.Model).Where("se_idx", id)
m := dbm_notenable(s.Model).Where("se_idx", id)
var tt model.PlayerPetSpecialEffect
m.Scan(&tt)

View File

@@ -23,7 +23,7 @@ func NewEggService() *EggService {
func (s *EggService) GetData(p1 uint32) []int32 {
//cacheKey := strings.Join([]string{fmt.Sprintf("%d", p1), fmt.Sprintf("%d", p2)}, ":")
m := dbm(s.Model)
m := dbm_enable(s.Model)
var pet []model.Egg //一个特性应该是唯一的,但是我们要获取默认随机特性
m.Wheref(`male_pet_ids @> ARRAY[?]::integer[]`, p1).Scan(&pet)
@@ -37,7 +37,7 @@ func (s *EggService) GetData(p1 uint32) []int32 {
}
func (s *EggService) GetResult(m, f uint32) uint32 {
//cacheKey := strings.Join([]string{fmt.Sprintf("%d", p1), fmt.Sprintf("%d", p2)}, ":")
md := dbm(s.Model)
md := dbm_enable(s.Model)
var pet *model.Egg //一个特性应该是唯一的,但是我们要获取默认随机特性
md.Wheref(`male_pet_ids @> ARRAY[?]::integer[]`, m).

View File

@@ -17,14 +17,14 @@ type ItemService struct {
func (s *ItemService) GetItem(id uint32) *model.ItemGift {
var item *model.ItemGift
dbm(s.Model).Where("id", id).Scan(&item)
dbm_notenable(s.Model).Where("id", id).Scan(&item)
return item
}
func (s *ItemService) GetItemCount(id uint32) data.ItemInfo {
var item model.ItemGift
var res data.ItemInfo
dbm(s.Model).Where("id", id).Scan(&item)
dbm_notenable(s.Model).Where("id", id).Scan(&item)
if item.ItemID == 0 {
@@ -41,7 +41,7 @@ func (s *ItemService) GetItemCount(id uint32) data.ItemInfo {
}
func (s *ItemService) GetEgg(count int64) []data.ItemInfo {
var item []model.ItemGift
dbm(s.Model).Where("is_egg", 1).Scan(&item)
dbm_notenable(s.Model).Where("is_egg", 1).Scan(&item)
rr := utils.RandomSlice(item, int(count))
var res = make([]data.ItemInfo, len(rr))

View File

@@ -23,7 +23,7 @@ func NewPetRewardService() *PetRewardService {
}
func (s *PetRewardService) GetEgg() model.PetReward {
var item model.PetReward
dbm_nocache(s.Model).Where("is_egg", 1).OrderRandom().Limit(1).Scan(&item)
dbm_nocache_noenable(s.Model).Where("is_egg", 1).OrderRandom().Limit(1).Scan(&item)
return item
@@ -33,7 +33,7 @@ func (s *PetRewardService) Get(id uint32) *model.PetReward {
return nil
}
var item *model.PetReward
dbm(s.Model).Where("id", id).Scan(&item)
dbm_notenable(s.Model).Where("id", id).Scan(&item)
return item

View File

@@ -43,7 +43,7 @@ func (s *PetFusionMaterialService) Data(Material1 [4]uint32) int32 {
}
}
m := dbm(s.Model)
m := dbm_enable(s.Model)
var effect *model.PetFusionMaterial //一个特性应该是唯一的,但是我们要获取默认随机特性
condition := g.Map{

View File

@@ -64,7 +64,7 @@ func (s *PetFusionService) Data(p1, p2, rand uint32) uint32 {
func (s *PetFusionService) getData(p1, p2 uint32) []model.PetFusion {
var pet []model.PetFusion //一个特性应该是唯一的,但是我们要获取默认随机特性
dbm(s.Model).Where("main_pet_id", p1).Wheref(`sub_pet_ids @> ARRAY[?]::integer[]`, p2).Scan(&pet)
dbm_enable(s.Model).Where("main_pet_id", p1).Wheref(`sub_pet_ids @> ARRAY[?]::integer[]`, p2).Scan(&pet)
return pet
@@ -73,7 +73,7 @@ func (s *PetFusionService) getData(p1, p2 uint32) []model.PetFusion {
func (s *PetFusionService) def() []model.PetFusion {
var pets []model.PetFusion
dbm(s.Model).Where("is_default", 1).Scan(&pets)
dbm_enable(s.Model).Where("is_default", 1).Scan(&pets)
return pets
// return ret.Interface().([]model.PetFusion)

View File

@@ -46,7 +46,7 @@ func (s *ShinyService) RandShiny(id uint32) *model.ColorfulSkin {
var ret []model.ColorfulSkin
// 执行 Raw SQL 并扫描返回值
dbm(s.Model).
dbm_enable(s.Model).
Wheref(`bind_elf_ids @> ?::jsonb`, id).
Wheref(`jsonb_typeof(bind_elf_ids) = ?`, "array").Scan(&ret)
@@ -73,7 +73,7 @@ func (s *ShinyService) FixShiny(id uint32) *model.ColorfulSkin {
var ret []model.ColorfulSkin
// 执行 Raw SQL 并扫描返回值
dbm(s.Model).
dbm_enable(s.Model).
Wheref(`bind_elf_ids @> ?::jsonb`, id).
Wheref(`jsonb_typeof(bind_elf_ids) = ?`, "array").Scan(&ret)
if len(ret) == 0 {
@@ -93,7 +93,7 @@ func (s *ShinyService) GetShiny(id int) *data.GlowFilter {
var ret []model.ColorfulSkin
// 执行 Raw SQL 并扫描返回值
dbm(s.Model).
dbm_enable(s.Model).
Where("id", id).Scan(&ret)
if len(ret) == 0 {
return nil

View File

@@ -21,7 +21,7 @@ func NewShopService() *ShopService {
}
}
func (s *ShopService) Get(product_id uint32) *model.ShopConfig {
m := dbm(s.Model).Where("product_id", product_id)
m := dbm_enable(s.Model).Where("product_id", product_id)
var tt *model.ShopConfig
m.Scan(&tt)

View File

@@ -21,7 +21,7 @@ func NewTalkConfigService() *TalkConfigService {
func (s *TalkConfigService) GetCache(flag int) model.MineralCollectionConfig {
var config model.MineralCollectionConfig
dbm(s.Model).Where("type", flag).Scan(&config)
dbm_enable(s.Model).Where("type", flag).Scan(&config)
return config
}

View File

@@ -25,7 +25,7 @@ func NewTaskService() *TaskService {
}
func (s *TaskService) Get(id, os int) *model.TaskConfig {
var item []model.TaskConfig
dbm(s.Model).Where("task_id", id).Scan(&item)
dbm_enable(s.Model).Where("task_id", id).Scan(&item)
var res *model.TaskConfig
for _, v := range item {
if v.OutState == os {
@@ -40,7 +40,7 @@ func (s *TaskService) Get(id, os int) *model.TaskConfig {
}
func (s *TaskService) GetDaily() []model.TaskConfig {
var item []model.TaskConfig
dbm(s.Model).Where("task_type", 1).Scan(&item)
dbm_enable(s.Model).Where("task_type", 1).Scan(&item)
return item

View File

@@ -68,7 +68,7 @@ func (m *UnifiedTowerModel) GroupName() string {
// Boss 根据塔等级获取对应的Boss配置统一入口
func (s *TowerService) Boss(towerLevel uint32) *model.BaseTowerConfig {
// 构建基础查询条件
query := dbm(s.Model).Where("tower_level = ?", towerLevel)
query := dbm_enable(s.Model).Where("tower_level = ?", towerLevel)
// 600塔专属的缓存配置
var config model.BaseTowerConfig