From 21ae004979c5882d4e0b2a940e974011ebbc6a86 Mon Sep 17 00:00:00 2001 From: xinian Date: Thu, 26 Feb 2026 19:28:02 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=87=8D=E6=9E=84=E6=80=AA=E7=89=A9?= =?UTF-8?q?=E7=94=9F=E6=88=90=E5=92=8CNPC=E6=88=98=E6=96=97=E5=A4=84?= =?UTF-8?q?=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 调整怪物等级处理方式,将固定等级逻辑移至GetLevel方法 优化NPC战斗特殊情况的处理流程 --- logic/controller/fight_boss野怪和地图怪.go | 2 +- logic/service/player/Monster.go | 3 --- logic/service/player/player.go | 17 +++++++++++++---- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/logic/controller/fight_boss野怪和地图怪.go b/logic/controller/fight_boss野怪和地图怪.go index 66acbeb61..d24d4e956 100644 --- a/logic/controller/fight_boss野怪和地图怪.go +++ b/logic/controller/fight_boss野怪和地图怪.go @@ -140,7 +140,7 @@ func (Controller) OnPlayerFightNpcMonster(data1 *fight.FightNpcMonsterInboundInf -1, 0, //野怪没特性 - int(refPet.Lv), + int(refPet.GetLevel()), refPet.ShinyInfo, -1) monster.CatchMap = p.Info.MapID //设置当前地图 if refPet.Ext != 0 { diff --git a/logic/service/player/Monster.go b/logic/service/player/Monster.go index fdf71fd1d..f5db4b18b 100644 --- a/logic/service/player/Monster.go +++ b/logic/service/player/Monster.go @@ -64,7 +64,6 @@ func (p *Player) GenMonster() { if p.Data[i].ID != 0 { p.Data[i].Lv = uint32(grand.N(v.MinLevel, v.MaxLevel)) - if len(v.RefreshID) == 1 { //说明这里只固定刷一个,概率变尼尔尼奥,不是稀有精灵 @@ -75,8 +74,6 @@ func (p *Player) GenMonster() { p.Data[i].Ext = 416 } - p.Data[i].Lv = 16 - } } diff --git a/logic/service/player/player.go b/logic/service/player/player.go index 574a731f5..e4727356f 100644 --- a/logic/service/player/player.go +++ b/logic/service/player/player.go @@ -46,6 +46,13 @@ func (o *OgrePetInfo) GetID() int { } return int(o.ID) } +func (o *OgrePetInfo) GetLevel() int { + + if o.Ext != 0 { + return 16 + } + return int(o.Lv) +} func (o *OgrePetInfo) FixSHiny() { var co *data.GlowFilter if o.Ext == 0 { @@ -80,14 +87,16 @@ func (o *OgrePetInfo) RandomByWeightShiny() { // handleNPCFightSpecial 处理NPC战斗特殊情况 func (o *OgrePetInfo) HandleNPCFightSpecial(v int) { - if v == 0 { - o.IsCapture = 0 - return - } npcPetID := int(o.ID) if o.Ext != 0 { npcPetID = int(o.Ext) + } else { + if v == 0 { + o.IsCapture = 0 + return + + } } petCfg, ok := xmlres.PetMAP[npcPetID]