refactor(logic): 重构服务器启动逻辑与任务状态管理 - 移除了 `gcmd` 包在 controller 中的直接使用,改为通过参数传递端口和服务器类型 - 统一使用 `GetTask` 和 `SetTask` 方法替代直接访问 `TaskList` 数组,提升代码可维护性 - 修改了战斗逻辑中部分调试打印语句,并优化战斗循环结束日志输出 - 调整了新手玩家初始化流程,默认完成新手任务4 - 更新了数据库模型字段及结构定义,如增加 `max_ts` 字段、扩展 `TaskList` 长度等 - 改进了宠物添加逻辑,采用 SQL 方式确保捕捉时间唯一递增 - 清理了无用或注释掉的旧代码块
51 lines
805 B
Go
51 lines
805 B
Go
package service
|
|
|
|
import (
|
|
"blazing/cool"
|
|
"blazing/modules/blazing/model"
|
|
)
|
|
|
|
type TalkConfigService struct {
|
|
*cool.Service
|
|
}
|
|
|
|
func NewTalkConfigService() *TalkConfigService {
|
|
return &TalkConfigService{
|
|
|
|
Service: &cool.Service{Model: model.NewMineralCollectionConfig()},
|
|
}
|
|
|
|
}
|
|
|
|
type TalkService struct {
|
|
BaseService
|
|
}
|
|
|
|
func NewTalkService(id uint32) *TalkService {
|
|
return &TalkService{
|
|
|
|
BaseService: BaseService{userid: id,
|
|
|
|
Service: &cool.Service{Model: model.NewTalk()},
|
|
},
|
|
}
|
|
|
|
}
|
|
|
|
// TalkCheck 获取玩家当前的Talk数据
|
|
// todo 待实现xml解析判断是否溢出
|
|
func (s *TalkService) Exec(t func(map[uint32]uint32) bool) {
|
|
|
|
m1 := s.GModel(s.Model)
|
|
|
|
var talks model.TalkEX
|
|
m1.Scan(&talks)
|
|
|
|
ok := t(talks.Data)
|
|
if ok {
|
|
talks.PlayerID = uint64(s.userid)
|
|
m1.Save(talks)
|
|
}
|
|
|
|
}
|