- 在 `fight_boss.go` 中,调整了玩家挑战 Boss 的奖励事件注册逻辑, 并在战斗结束后正确取消事件监听。 - 修改了多个技能效果文件(`effect_13.go`、`effect_38.go`、`effect_49.go`), 增强状态持续时间计算和数据安全性。 - 更新 `player/done.go` 中的 `SPT` 方法签名以返回监听器实例。 - 调整数据库操作方法,将 `Update` 替换为 `Save` 以确保数据一致性。 - 修复菜单排序语法问题,统一使用字符串形式的排序表达式。
39 lines
601 B
Go
39 lines
601 B
Go
package service
|
|
|
|
import (
|
|
"blazing/cool"
|
|
"blazing/modules/blazing/model"
|
|
)
|
|
|
|
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)
|
|
}
|
|
|
|
}
|