feat(blazing): 更新怪物刷新规则模型结构

重构 monster_refresh.go 中的 MonsterRefresh 模型,调整字段定义以支持更灵活的刷新配置。
新增 MapID、MinLevel、MaxLevel、FixPos 和 Script 字段,用于支持地图和等级相关的刷新逻辑。
保留部分异色相关字段并标记为待定,便于后续决定是否移除。
新增 MonsterRefreshEX 结构体扩展 MonsterRefresh 并支持数组形式的 MonsterID 和 ShinyID。
修改注释内容以准确反映当前字段含义与用途。
同时修正 dict_info.go 中查询条件错误,将 type in (?) 更正
This commit is contained in:
2025-11-27 01:23:12 +08:00
parent 5a9c37e852
commit 0ab1a85d17
5 changed files with 180 additions and 17 deletions

View File

@@ -5,43 +5,51 @@ import (
)
const (
TableNameMonsterRefresh = "monster_refresh" // 怪物刷新规则表
TableNameMonsterRefresh = "monster_refresh" // 怪物刷新规则表(地图-精灵等级-刷新脚本配置)
)
// MonsterRefresh 怪物刷新规则模型(对应XML中的<monster>标签
// MonsterRefresh 怪物刷新规则模型(对应前端配置的地图/精灵/等级/脚本配置
type MonsterRefresh struct {
*cool.Model
*cool.Model // 嵌入通用Model包含ID/创建时间/更新时间等通用字段)
MonsterID int32 `gorm:"not null;comment:'对应原怪物唯一编号'" json:"monster_id"`
ShinyID int32 `gorm:"not null;uniqueIndex;comment:'异色唯一标识ID'" json:"shiny_id"`
RefreshScript string `gorm:"type:text;not null;comment:'刷新脚本JS格式可包含时间/天气/地形等条件)'" json:"refresh_script"`
MapID int32 `gorm:"not null;comment:'地图ID'" json:"map_id"`
MonsterID string `gorm:"not null;comment:'精灵ID,填0为填充数组'" json:"monster_id"`
MinLevel int32 `gorm:"not null;comment:'精灵最低等级'" json:"min_level"`
MaxLevel int32 `gorm:"not null;comment:'精灵最高等级'" json:"max_level"`
FixPos int32 `gorm:"not null;comment:'固定位置刷新0:随机位置,没有固定位置的时候就会取一个随机位置,如果没有随机位置就不刷新1-9:固定位置)'" json:"fix_pos"`
Script string `gorm:"type:text;not null;comment:'刷新脚本JS格式对应前端编辑器配置'" json:"value"`
ShinyFilter string `gorm:"type:text;not null;comment:'异色滤镜效果(文本描述或配置参数)'" json:"shiny_filter"`
ShinyEffect string `gorm:"type:text;not null;comment:'异色光效效果(文本描述或配置参数)'" json:"shiny_effect"`
// TODO: 增加ruffle的显示异色效果
// 以下为原模型保留的异色相关字段(前端暂未配置,如需移除可删除)
ShinyID string `gorm:"not null;comment:'异色唯一标识ID'" json:"shiny_id"`
// ShinyFilter string `gorm:"type:text;not null;comment:'异色滤镜效果(文本描述或配置参数)'" json:"shiny_filter"`
// ShinyEffect string `gorm:"type:text;not null;comment:'异色光效效果(文本描述或配置参数)'" json:"shiny_effect"`
// TODO: 增加ruffle的显示异色效果如需保留则完善无需则删除
}
// TableName MonsterRefresh's table name
type MonsterRefreshEX struct {
MonsterRefresh
MonsterID []uint32 `json:"monster_id"`
ShinyID []uint32 `json:"shiny_id"`
}
// TableName 指定MonsterRefresh对应的数据库表名
func (*MonsterRefresh) TableName() string {
return TableNameMonsterRefresh
}
// GroupName MonsterRefresh's table group
// GroupName 指定表所属的分组(保持和参考示例一致)
func (*MonsterRefresh) GroupName() string {
return "default"
}
// NewMonsterRefresh create a new MonsterRefresh
// NewMonsterRefresh 创建一个新的MonsterRefresh实例初始化通用Model
func NewMonsterRefresh() *MonsterRefresh {
return &MonsterRefresh{
Model: cool.NewModel(),
}
}
// 初始化表结构
// init 初始化表结构(程序启动时自动创建/同步表)
func init() {
cool.CreateTable(&MonsterRefresh{})
}