diff --git a/logic/controller/pet_elo.go b/logic/controller/pet_elo.go index f0957afb3..02fa9718e 100644 --- a/logic/controller/pet_elo.go +++ b/logic/controller/pet_elo.go @@ -11,10 +11,6 @@ import ( "github.com/jinzhu/copier" ) -// PetEVDiy 自定义分配宠物努力值(EV) -// data: 包含宠物捕获时间和EV分配数据的输入信息 -// c: 当前玩家对象 -// 返回: 分配结果和错误码 func (h Controller) PetELV(data *pet.C2S_PET_EVOLVTION, c *player.Player) (result *fight.NullOutboundInfo, err errorcode.ErrorCode) { _, currentPet, found := c.FindPet(data.CacthTime) if !found { @@ -26,6 +22,9 @@ func (h Controller) PetELV(data *pet.C2S_PET_EVOLVTION, c *player.Player) (resul if flag == 0 { return nil, errorcode.ErrorCodes.ErrPokemonNotEvolveReady } + if xmlres.PetMAP[int(currentPet.ID)].EvolvingLv > int(currentPet.Level) { +return nil, errorcode.ErrorCodes.ErrPokemonNotEvolveReady + } evinfo := xmlres.EVOLVMAP[flag].Branches[data.Index-1] if c.Service.Item.CheakItem(uint32(evinfo.EvolvItem)) < int64(evinfo.EvolvItemCount) { diff --git a/modules/player/model/pet.go b/modules/player/model/pet.go index 2ca11900a..8f348b44a 100644 --- a/modules/player/model/pet.go +++ b/modules/player/model/pet.go @@ -313,7 +313,8 @@ func (pet *PetInfo) Downgrade(level uint32) { if ok { - if basic.EvolvesFrom != 0 { + if basic.EvolvesFrom != 0 && xmlres.PetMAP[int(basic.EvolvesFrom)].EvolvFlag == 0 { + pet.ID = uint32(basic.EvolvesFrom) }