fix(fight_boss): 修复NPC战斗中宠物ID和闪光属性处理逻辑 - 在NPC战斗中,当refPet.Ext不为0时,正确设置refPet.Id - 当refPet.Ext不为0且满足随机条件时,为怪物添加随机闪光属性 - 修正了宠物信息生成时的ID使用逻辑 fix(monster): 修正注释说明稀有精灵概率计算 - 更新注释说明,明确单个ID固定刷出时的概率变尼尔尼奥不是稀有精灵 refactor(player): 重构宠物闪光属性随机生成逻辑 - 简化OgrePetInfo.RandSHiny方法的条件判断逻辑 - 统一闪光属性随机生成的处理方式 fix(task): 修复任务奖励物品信息返回 - 修正任务奖励
43 lines
749 B
Go
43 lines
749 B
Go
package service
|
|
|
|
import (
|
|
"blazing/cool"
|
|
"blazing/modules/config/model"
|
|
|
|
"github.com/gogf/gf/v2/database/gdb"
|
|
)
|
|
|
|
type PetRewardService struct {
|
|
*cool.Service
|
|
}
|
|
|
|
func NewPetRewardService() *PetRewardService {
|
|
return &PetRewardService{
|
|
&cool.Service{
|
|
Model: model.NewPetReward(),
|
|
},
|
|
}
|
|
}
|
|
func (s *PetRewardService) GetEgg() model.PetReward {
|
|
var item model.PetReward
|
|
cool.DBM(s.Model).Where("is_egg", 1).Where("is_enabled", 1).OrderRandom().Limit(1).Scan(&item)
|
|
|
|
return item
|
|
|
|
}
|
|
func (s *PetRewardService) Get(id uint32) *model.PetReward {
|
|
if id == 0 {
|
|
return nil
|
|
}
|
|
var item *model.PetReward
|
|
cool.DBM(s.Model).Where("id", id).
|
|
Cache(gdb.CacheOption{
|
|
// Duration: time.Hour,
|
|
|
|
Force: false,
|
|
}).Scan(&item)
|
|
|
|
return item
|
|
|
|
}
|