From 147758c5aec596eabb1355a24e1d431bcaf1670e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=94=E5=BF=B5?= <1@72wo.cn> Date: Tue, 25 Nov 2025 02:35:36 +0800 Subject: [PATCH] =?UTF-8?q?fix(fight=5Fboss):=20=E8=B0=83=E6=95=B4Boss?= =?UTF-8?q?=E6=8D=95=E6=8D=89=E9=80=BB=E8=BE=91=E4=BD=8D=E7=BD=AE=E4=BB=A5?= =?UTF-8?q?=E7=A1=AE=E4=BF=9D=E6=AD=A3=E7=A1=AE=E6=89=A7=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将Boss捕捉率获取逻辑从循环外移至循环内,确保在处理Boss宠物信息之后再进行捕捉率赋值。 feat(pet): 新增协议结构体定义用于学习力相关操作 新增C2S_9756与S2C_9756结构体,支持学习力相关的客户端请求与服务端响应处理。 --- logic/controller/active.go | 17 +++++++++++++++++ logic/controller/fight_boss.go | 7 ++++--- logic/service/pet/BargeList.go | 6 ++++++ 3 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 logic/controller/active.go diff --git a/logic/controller/active.go b/logic/controller/active.go new file mode 100644 index 000000000..4e1f04561 --- /dev/null +++ b/logic/controller/active.go @@ -0,0 +1,17 @@ +package controller + +import ( + "blazing/common/socket/errorcode" + "blazing/logic/service/pet" + "blazing/logic/service/player" + + "github.com/gogf/gf/v2/util/grand" +) + +// 传送仓抓稀有 +func (h Controller) Cacthpet(data *pet.C2S_9756, c *player.Player) (result *pet.S2C_9756, err errorcode.ErrorCode) { + result = &pet.S2C_9756{ + UseEV: uint32(grand.Intn(10)), + } + return +} diff --git a/logic/controller/fight_boss.go b/logic/controller/fight_boss.go index 24af64f9c..daab809f3 100644 --- a/logic/controller/fight_boss.go +++ b/logic/controller/fight_boss.go @@ -71,9 +71,7 @@ func (h Controller) PlayerFightBoss(data *fight.ChallengeBossInboundInfo, c *pla if bc.TaskID != nil { taskid = *bc.TaskID } - if bc.BossCatchable == 1 { - cancpet = xmlres.PetMAP[int(mo.ID)].CatchRate - } + for _, bm := range bc.BossMon { mo = c.GenPetInfo( @@ -88,6 +86,9 @@ func (h Controller) PlayerFightBoss(data *fight.ChallengeBossInboundInfo, c *pla moinfo.PetList = append(moinfo.PetList, *mo) } + if bc.BossCatchable == 1 { + cancpet = xmlres.PetMAP[int(mo.ID)].CatchRate + } moinfo.Nick = xmlres.PetMAP[int(mo.ID)].DefName break } diff --git a/logic/service/pet/BargeList.go b/logic/service/pet/BargeList.go index c8785acf5..cf5e44756 100644 --- a/logic/service/pet/BargeList.go +++ b/logic/service/pet/BargeList.go @@ -8,6 +8,9 @@ type PetBargeListInboundInfo struct { StartPetId uint32 `description:"开始精灵id" codec:"startPetId"` // @UInt long 对应Go的uint32(无符号64位) EndPetId uint32 `description:"结束精灵id" codec:"endPetId"` // 字段标签模拟注解功能(描述、编解码标识) } +type C2S_9756 struct { + Head common.TomeeHeader `cmd:"9756" struc:"skip"` +} // PetBargeListInfo 对应Java的PetBargeListInfo类 type PetBargeListInfo struct { @@ -29,3 +32,6 @@ type PetEV struct { type S2C_50001 struct { UseEV uint32 //用掉的学习力 } +type S2C_9756 struct { + UseEV uint32 //用掉的学习力 +}