This commit is contained in:
@@ -32,17 +32,22 @@ func (p *baseplayer) GetInfo() *model.PlayerInfo {
|
||||
return p.Info
|
||||
}
|
||||
|
||||
func ApplyPetLevelLimit(pet model.PetInfo, limitlevel uint32) model.PetInfo {
|
||||
originalHP := pet.Hp
|
||||
if limitlevel > 0 {
|
||||
pet.Level = utils.Min(pet.Level, limitlevel)
|
||||
}
|
||||
pet.CalculatePetPane(limitlevel)
|
||||
pet.Hp = utils.Min(originalHP, pet.MaxHp)
|
||||
return pet
|
||||
}
|
||||
|
||||
func (p *baseplayer) GetPetInfo(limitlevel uint32) []model.PetInfo {
|
||||
|
||||
var ret []model.PetInfo
|
||||
ret := make([]model.PetInfo, 0, len(p.Info.PetList))
|
||||
|
||||
for _, pet := range p.Info.PetList {
|
||||
if limitlevel > 0 {
|
||||
pet.Level = utils.Min(pet.Level, limitlevel)
|
||||
|
||||
}
|
||||
|
||||
ret = append(ret, pet)
|
||||
ret = append(ret, ApplyPetLevelLimit(pet, limitlevel))
|
||||
}
|
||||
return ret
|
||||
}
|
||||
|
||||
@@ -106,12 +106,20 @@ func validatePetBagOrder(
|
||||
return true
|
||||
}
|
||||
|
||||
func buildLimitedPetList(petList []model.PetInfo, limitlevel uint32) []model.PetInfo {
|
||||
result := make([]model.PetInfo, 0, len(petList))
|
||||
for _, petInfo := range petList {
|
||||
result = append(result, ApplyPetLevelLimit(petInfo, limitlevel))
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
// GetUserBagPetInfo 返回主背包和并列备用精灵列表。
|
||||
func (p *Player) GetUserBagPetInfo() *pet.GetUserBagPetInfoOutboundInfo {
|
||||
func (p *Player) GetUserBagPetInfo(limitlevel uint32) *pet.GetUserBagPetInfoOutboundInfo {
|
||||
|
||||
result := &pet.GetUserBagPetInfoOutboundInfo{
|
||||
PetList: p.Info.PetList,
|
||||
BackupPetList: p.Info.BackupPetList,
|
||||
PetList: buildLimitedPetList(p.Info.PetList, limitlevel),
|
||||
BackupPetList: buildLimitedPetList(p.Info.BackupPetList, limitlevel),
|
||||
}
|
||||
|
||||
return result
|
||||
|
||||
@@ -228,6 +228,17 @@ func (p *Player) GetSpace() *space.Space {
|
||||
return space.GetSpace(p.Info.MapID)
|
||||
}
|
||||
|
||||
func (p *Player) CurrentMapPetLevelLimit() uint32 {
|
||||
if p == nil {
|
||||
return 100
|
||||
}
|
||||
currentSpace := p.GetSpace()
|
||||
if currentSpace != nil && currentSpace.IsLevelBreakMap {
|
||||
return 0
|
||||
}
|
||||
return 100
|
||||
}
|
||||
|
||||
// CanFight 检查玩家是否可以进行战斗
|
||||
// 0无战斗,1PVP,2,BOOS,3PVE
|
||||
func (p *Player) CanFight() errorcode.ErrorCode {
|
||||
|
||||
Reference in New Issue
Block a user