1
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful

This commit is contained in:
昔念
2026-04-15 03:22:59 +08:00
parent a58ef20fab
commit 5f47bf0589
7 changed files with 42 additions and 19 deletions

View File

@@ -34,9 +34,6 @@ func (p *baseplayer) GetInfo() *model.PlayerInfo {
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

View File

@@ -27,10 +27,11 @@ func (p *Player) AddPetExp(petInfo *model.PetInfo, addExp int64) {
if petInfo == nil || addExp <= 0 {
return
}
panelLimit := p.CurrentMapPetLevelLimit()
if petInfo.Level > 100 {
currentHP := petInfo.Hp
petInfo.Update(false)
petInfo.CalculatePetPane(100)
petInfo.CalculatePetPane(panelLimit)
petInfo.Hp = utils.Min(currentHP, petInfo.MaxHp)
}
addExp = utils.Min(addExp, p.Info.ExpPool)
@@ -40,13 +41,12 @@ func (p *Player) AddPetExp(petInfo *model.PetInfo, addExp int64) {
gainedExp := exp //已获得的经验
for exp >= int64(petInfo.NextLvExp) {
petInfo.Level++
exp -= int64(petInfo.LvExp)
petInfo.Update(true)
}
petInfo.Exp = (exp)
// 重新计算面板
if originalLevel != petInfo.Level {
petInfo.CalculatePetPane(100)
petInfo.CalculatePetPane(panelLimit)
petInfo.Cure()
p.Info.PetMaxLevel = utils.Max(petInfo.Level, p.Info.PetMaxLevel)

View File

@@ -239,6 +239,10 @@ func (p *Player) CurrentMapPetLevelLimit() uint32 {
return 100
}
func (p *Player) IsCurrentMapLevelBreak() bool {
return p != nil && p.CurrentMapPetLevelLimit() == 0
}
// CanFight 检查玩家是否可以进行战斗
// 0无战斗1PVP2,BOOS,3PVE
func (p *Player) CanFight() errorcode.ErrorCode {