```
feat(pet): 优化宠物融合错误码并记录原始捕获时间 - 将宠物融合过程中的错误码从 ErrSystemBusy 细分为多个更具体的错误码, 如 ErrPokemonNotFusionReady、ErrPokemonNotFusionReady2 等,便于问题定位。 - 在融合成功后,新增记录主宠的旧捕捉时间(OldCatchTime)字段。 - 调整战斗捕捉逻辑,使用对手玩家的第一个宠物信息进行添加,并重置战斗结束原因。 refactor(service): 移除未使用的管理员会话结构体字段和清理部分冗余代码 - 注释掉 base_sys_user.go
This commit is contained in:
@@ -18,24 +18,24 @@ func (h Controller) PetFusion(data *pet.C2S_PetFusion, c *player.Player) (result
|
||||
|
||||
//防止同一只
|
||||
if data.Mcatchtime == data.Auxcatchtime {
|
||||
return result, errorcode.ErrorCodes.ErrSystemBusy
|
||||
return result, errorcode.ErrorCodes.ErrPokemonNotFusionReady
|
||||
}
|
||||
|
||||
_, Mcatchpetinfo, ok := c.FindPet(data.Mcatchtime)
|
||||
if !ok {
|
||||
return result, errorcode.ErrorCodes.ErrSystemBusy
|
||||
return result, errorcode.ErrorCodes.ErrPokemonNotFusionReady2
|
||||
}
|
||||
|
||||
if xmlres.PetMAP[int(Mcatchpetinfo.ID)].FuseMaster == 0 {
|
||||
return result, errorcode.ErrorCodes.ErrSystemBusy
|
||||
return result, errorcode.ErrorCodes.ErrPokemonNotFusionReady3
|
||||
}
|
||||
_, Auxpetinfo, ok := c.FindPet(data.Auxcatchtime)
|
||||
if !ok {
|
||||
return result, errorcode.ErrorCodes.ErrSystemBusy
|
||||
return result, errorcode.ErrorCodes.ErrPokemonNotFusionReady2
|
||||
}
|
||||
|
||||
if xmlres.PetMAP[int(Auxpetinfo.ID)].FuseSub == 0 {
|
||||
return result, errorcode.ErrorCodes.ErrSystemBusy
|
||||
return result, errorcode.ErrorCodes.ErrPokemonNotFusionReady3
|
||||
}
|
||||
|
||||
///性格生成
|
||||
@@ -56,6 +56,7 @@ func (h Controller) PetFusion(data *pet.C2S_PetFusion, c *player.Player) (result
|
||||
dv2 := decimal.NewFromInt(1).Div(decimal.NewFromInt(3)).Mul(decimal.NewFromInt(int64(Auxpetinfo.Dv)))
|
||||
dv := dv1.Add(dv2).Add(decimal.NewFromInt(1)).IntPart()
|
||||
r := model.GenPetInfo(resid, int(dv), int(natureId), effect, -1, 1)
|
||||
r.OldCatchTime = Mcatchpetinfo.CatchTime
|
||||
c.Service.Pet.PetAdd(r)
|
||||
c.Pet_del(Auxpetinfo.CatchTime)
|
||||
c.Pet_del(Mcatchpetinfo.CatchTime)
|
||||
|
||||
@@ -72,12 +72,13 @@ func (f *FightC) battleLoop() {
|
||||
})
|
||||
|
||||
if f.Reason == info.BattleOverReason.Cacthok {
|
||||
f.Our.Player.(*player.Player).Service.Pet.PetAdd(&f.Opp.CurrentPet.Info)
|
||||
f.Our.Player.(*player.Player).Service.Pet.PetAdd(&f.Opp.Player.GetInfo().PetList[0])
|
||||
|
||||
f.Our.Player.SendPackCmd(2409, &info.CatchMonsterOutboundInfo{
|
||||
CatchTime: uint32(f.Opp.CurrentPet.Info.CatchTime),
|
||||
PetId: uint32(f.Opp.CurrentPet.ID),
|
||||
})
|
||||
f.Reason = 0 //清空
|
||||
}
|
||||
|
||||
//f.Reason = info.BattleOverReason.PlayerCaptureSuccess
|
||||
|
||||
@@ -77,4 +77,5 @@ func (c *BaseSysUserController) GetSession(ctx context.Context, req *SessionReq)
|
||||
type SessionRes struct {
|
||||
UserID int `json:"userid"`
|
||||
Session string `json:"session"`
|
||||
//Server model.ServerList `json:"server"`
|
||||
}
|
||||
|
||||
@@ -308,7 +308,7 @@ func NewBaseSysUserService() *BaseSysUserService {
|
||||
Extend: func(ctx g.Ctx, m *gdb.Model) *gdb.Model {
|
||||
return m.Group(`base_sys_user.id`)
|
||||
},
|
||||
KeyWordField: []string{"username", "email"},
|
||||
KeyWordField: []string{"username", "email", "id"},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
22
modules/blazing/controller/admin/item.go
Normal file
22
modules/blazing/controller/admin/item.go
Normal file
@@ -0,0 +1,22 @@
|
||||
package admin
|
||||
|
||||
import (
|
||||
"blazing/cool"
|
||||
"blazing/modules/blazing/service"
|
||||
)
|
||||
|
||||
type ItemBagController struct {
|
||||
*cool.Controller
|
||||
}
|
||||
|
||||
func init() {
|
||||
var task_info_controller = &ItemBagController{
|
||||
&cool.Controller{
|
||||
Prefix: "/admin/sun/item",
|
||||
Api: []string{"Delete", "Update", "Info", "List", "Page"},
|
||||
Service: service.NewItemService(0), //因为page已经过滤,所以这里需要改成0
|
||||
},
|
||||
}
|
||||
// 注册路由
|
||||
cool.RegisterController(task_info_controller)
|
||||
}
|
||||
@@ -3,6 +3,7 @@ package service
|
||||
import (
|
||||
"blazing/cool"
|
||||
"blazing/modules/blazing/model"
|
||||
"context"
|
||||
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
)
|
||||
@@ -57,6 +58,17 @@ func NewItemService(id uint32) *ItemService {
|
||||
|
||||
Service: &cool.Service{Model: model.NewPlayerBag(), UniqueKey: map[string]string{
|
||||
"player_id": "角色名称不能重复",
|
||||
}, PageQueryOp: &cool.QueryOp{
|
||||
Where: func(ctx context.Context) [][]interface{} {
|
||||
var (
|
||||
//admin = cool.GetAdmin(ctx)
|
||||
//userId = admin.UserId
|
||||
)
|
||||
return [][]interface{}{
|
||||
// {"player_id", userId, true},
|
||||
// {"free", 0, true},
|
||||
}
|
||||
},
|
||||
}},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -108,10 +108,18 @@ func NewPetService(userid uint32) *PetService {
|
||||
admin = cool.GetAdmin(ctx)
|
||||
userId = admin.UserId
|
||||
)
|
||||
return [][]interface{}{
|
||||
{"player_id", userId, true},
|
||||
{"free", 0, true},
|
||||
if userId != 10001 {
|
||||
return [][]interface{}{
|
||||
{"player_id", userId, true},
|
||||
{"free", 0, true},
|
||||
}
|
||||
} else {
|
||||
return [][]interface{}{
|
||||
{"player_id", userId, true},
|
||||
{"free", 0, true},
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
@@ -17,8 +17,8 @@ type PetFusionService struct {
|
||||
func NewPetFusionService() *PetFusionService {
|
||||
return &PetFusionService{
|
||||
&cool.Service{
|
||||
Model: model.NewPetFusion(), // 绑定PetFusion模型
|
||||
|
||||
Model: model.NewPetFusion(), // 绑定PetFusion模型
|
||||
PageQueryOp: &cool.QueryOp{FieldEQ: []string{"is_enable", "main_pet_id", "sub_pet_id", "result_pet_id"}},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,6 +33,10 @@ func NewUserService(id uint32) *UserService {
|
||||
}
|
||||
|
||||
func (s *BaseService) GModel(m cool.IModel) *gdb.Model {
|
||||
if s.userid != 0 {
|
||||
return cool.DBM(m).Where("player_id", s.userid)
|
||||
} else {
|
||||
return cool.DBM(m)
|
||||
}
|
||||
|
||||
return cool.DBM(m).Where("player_id", s.userid)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user