Files
bl/modules/player/service/room.go
昔念 fcb55d3a46 ```
refactor(controller): 替换BossCompletedTask为专用方法名

在战斗控制器中将p.BossCompletedTask替换为p.SptCompletedTask,
以及在塔沃控制器中将BossCompletedTask相关调用替换为TawerCompletedTask,
以更好地区分不同的任务完成逻辑。

---

fix(item_use): 添加nil检查防止程序崩溃

在处理神经元道具时,增加对oldPet对象的nil检查,
如果为空则返回系统错误码,避免程序出现
2026-01-20 04:40:36 +08:00

110 lines
2.1 KiB
Go

package service
import (
"blazing/cool"
"blazing/modules/player/model"
"context"
)
func (s *RoomService) Get(userid uint32) model.BaseHouseEx {
//todo待测试
var ttt model.BaseHouseEx
m := s.TestModel(s.Model)
m.Where("player_id", userid).Scan(&ttt)
return ttt
}
// func (s *RoomService) Add(id, count uint32) {
// //todo待测试
// var ttt model.BaseHouseEx
// m := s.TestModel(s.Model)
// m.Scan(&ttt)
// if ttt.OwnedItems == nil {
// ttt.OwnedItems = make(map[uint32]uint32)
// }
// t, ok := ttt.OwnedItems[id]
// if ok {
// ttt.OwnedItems[id] = t + count
// } else {
// ttt.OwnedItems[id] = count
// }
// ttt.PlayerID = uint64(s.userid)
// m.Save(ttt)
// }
func (s *RoomService) Set(id []model.FitmentShowInfo) {
//todo待测试
if cool.Config.ServerInfo.IsVip != 0 {
cool.Logger.Info(context.TODO(), "测试服不消耗物品玩家数据", s.userid)
return
}
var ttt model.BaseHouseEx
m := s.TestModel(s.Model)
m.Scan(&ttt)
ttt.PlacedItems = id
ttt.UsedItems = make(map[uint32]uint32)
for _, ids := range id {
_, ok := ttt.UsedItems[ids.Id]
if !ok {
ttt.UsedItems[ids.Id] = 1
} else {
ttt.UsedItems[ids.Id] = ttt.UsedItems[ids.Id] + 1
}
}
ttt.PlayerID = uint64(s.userid)
m.Save(ttt)
}
func (s *RoomService) Show(cactime []uint32) {
//todo待测试
var ttt model.BaseHouseEx
m := s.TestModel(s.Model)
m.Scan(&ttt)
ttt.ShowPokemon = cactime
ttt.PlayerID = uint64(s.userid)
m.Save(ttt)
}
// /添加进来的物品一定是保证存在的
type RoomService struct {
BaseService
}
func NewRoomService(id uint32) *RoomService {
return &RoomService{
BaseService: BaseService{userid: id,
Service: &cool.Service{Model: model.NewBaseHouse(), UniqueKey: map[string]string{
"player_id": "角色名称不能重复",
}, PageQueryOp: &cool.QueryOp{
KeyWordField: []string{"player_id"},
Where: func(ctx context.Context) [][]interface{} {
var (
//admin = cool.GetAdmin(ctx)
//userId = admin.UserId
)
return [][]interface{}{
// {"player_id", userId, true},
// {"free", 0, true},
}
},
}},
},
}
}