Files
bl/modules/config/model/map_model.go
昔念 5995f0670c
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful
```
feat(game): 实现扭蛋系统批量物品添加功能并优化地图逻辑

- 新增ItemAddBatch方法用于批量添加物品,支持普通道具和特殊道具的分别处理
- 优化扭蛋游戏玩法中的物品添加逻辑,使用新的批量接口提升性能
- 在扭蛋机器人命令中实现完整的物品检查和批量添加流程

refactor(map): 重构地图控制器代码结构并添加注释

- 为EnterMap、LeaveMap、GetMapPlayerList等方法添加中文注释
- 统一地图相关的命名规范,如enter
2026-04-01 20:10:29 +08:00

77 lines
2.4 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package model
import (
"blazing/cool"
)
// 表名统一改为 map_model
const (
TableNameMapModel = "map_model"
)
// 模型类型常量 (0:精灵, 1:NPC)
const (
MapModelTypePet = 0
MapModelTypeNPC = 1
)
const (
MapModelDirectionRight = iota
MapModelDirectionRightDown
MapModelDirectionDown
MapModelDirectionLeftDown
MapModelDirectionLeft
MapModelDirectionLeftUp
MapModelDirectionUp
MapModelDirectionRightUp
)
// MapModelBroadcastNode 地图模型广播节点配置
type MapModelBroadcastNode struct {
TriggerID uint32 `gorm:"comment:'触发器ID'" json:"trigger_id" description:"触发器ID"`
Pos string `gorm:"type:varchar(255);default:'';comment:'位置'" json:"pos" description:"位置"`
HP int32 `gorm:"type:int;default:0;comment:'血量'" json:"hp" description:"血量"`
Direction int32 `gorm:"type:int;default:2;comment:'BOSS方向(0-7)'" json:"direction" description:"BOSS方向"`
}
// MapModel 地图模型配置表(NPC/宠物)
type MapModel struct {
*cool.Model // 保留通用ModelID/创建时间/更新时间等)
*MapModelBroadcastNode
MapID int32 `gorm:"not null;index;comment:'所属地图ID'" json:"map_id" description:"地图ID"`
NodeID uint32 `gorm:"not null;default:0;comment:'节点ID'" json:"node_id" description:"节点ID"`
ModelID uint32 `gorm:"not null;default:0;comment:'模型ID(NPCID或精灵ID)'" json:"model_id" description:"模型ID"`
ModelType int32 `gorm:"type:int;default:0;comment:'模型类型(0:精灵,1:NPC)'" json:"model_type" description:"模型类型"`
ModelName string `gorm:"type:varchar(100);default:'';comment:'模型名称'" json:"model_name" description:"模型名称"`
HeadTalk string `gorm:"type:varchar(255);default:'';comment:'头顶对话框内容'" json:"head_talk" description:"头顶对话框内容"`
TriggerPlotID uint32 `gorm:"default:0;comment:'触发剧情ID0表示无剧情'" json:"trigger_plot_id" description:"触发剧情ID"`
Cloths []uint32 `gorm:"type:varchar(255);default:'';comment:'服装'" json:"cloths" description:"服装"`
Shinyid int32 `gorm:"type:int;default:0;comment:'是否发光'" json:"shiny" description:"是否发光"`
}
func (*MapModel) TableName() string {
return TableNameMapModel
}
func (*MapModel) GroupName() string {
return "default"
}
func NewMapModel() *MapModel {
return &MapModel{
Model: cool.NewModel(),
MapModelBroadcastNode: &MapModelBroadcastNode{},
}
}
func init() {
cool.CreateTable(&MapModel{})
}