Files
bl/modules/blazing/model/talk.go

80 lines
2.1 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"
)
// 资源采集计数表名
const TableNameResourceCollection = "talk"
func NewTalk() *Talk {
return &Talk{
Model: cool.NewModel(),
}
}
// ResourceCollection 记录玩家每种资源的采集计数
type Talk struct {
*cool.Model
PlayerID uint64 `gorm:"not null;index:idx_player_resource;comment:'所属玩家ID'" json:"player_id"`
Data string `gorm:"type:text;not null;comment:'全部数据'" json:"data"` //map[uint32]uint32
}
type TalkEX struct {
Talk
Data map[uint32]uint32 `orm:"data" json:"data"`
}
// TableName 资源采集表名
func (*Talk) TableName() string {
return TableNameResourceCollection
}
// GroupName 资源采集表分组
func (*Talk) GroupName() string {
return "default"
}
// // 检查是否可以采集(未超过每日上限)
// func (rc *ResourceCollection) CanCollect(maxDaily uint32) bool {
// // 先检查是否需要重置计数
// rc.checkAndReset()
// return rc.CollectCnt < maxDaily
// }
// // 增加采集计数,返回是否成功
// func (rc *ResourceCollection) AddCollectCount(maxDaily uint32) bool {
// if !rc.CanCollect(maxDaily) {
// return false
// }
// rc.CollectCnt++
// return true
// }
// // 检查并重置每日计数
// func (rc *ResourceCollection) checkAndReset() {
// now := time.Now()
// if now.After(rc.DailyReset) {
// rc.CollectCnt = 0
// // 重置为明天24点
// rc.DailyReset = now.Truncate(24 * time.Hour).Add(24 * time.Hour)
// }
// }
// ResourceConfig 资源配置信息对应XML中的配置
type ResourceConfig struct {
Type uint32 `json:"type"` // 资源类型ID
MapID uint32 `json:"map_id"` // 所在地图ID
Name string `json:"name"` // 资源名称
CollectType string `json:"collect_type"` // 采集类型
MaxDailyCnt uint32 `json:"max_daily_cnt"` // 每日最大采集次数
Unit string `json:"unit"` // 单位
Dir uint32 `json:"dir"` // 方向
}
// 初始化创建表
func init() {
cool.CreateTable(&Talk{})
// 可以在这里加载资源配置
// LoadResourceConfigsFromXML()
}