新增精灵融合接口及处理逻辑,支持主副精灵融合生成新精灵,并消耗金币与材料。 同时调整了战斗技能选择流程、修复地图热度统计安全问题以及完善宠物删除机制。 - 添加 `PetFusion` 控制器方法实现融合核心逻辑 - 新增 `C2S_PetFusion` 和 `PetFusionInfo` 结构体用于通信 - 修正战斗中技能随机选取后立即返回的问题 - 修复太空站进入/离开时对地图热度的并发访问风险 -
45 lines
2.1 KiB
Go
45 lines
2.1 KiB
Go
package pet
|
||
|
||
import "blazing/logic/service/common"
|
||
|
||
type GetPetListInboundEmpty struct {
|
||
Head common.TomeeHeader `cmd:"2303" struc:"skip"`
|
||
}
|
||
type GetPetListFreeInboundEmpty struct {
|
||
Head common.TomeeHeader `cmd:"2320" struc:"skip"`
|
||
}
|
||
type GetPetListOutboundInfo struct {
|
||
ShortInfoListLen uint32 `struc:"int32,sizeof=ShortInfoList"`
|
||
ShortInfoList []PetShortInfo
|
||
}
|
||
|
||
// PetShortInfo 精灵简要信息结构体
|
||
type PetShortInfo struct {
|
||
ID uint32 // 精灵类型ID(
|
||
CatchTime uint32 // 精灵生成时间
|
||
Level uint32 // 精灵等级
|
||
SkinID uint32 // 精灵皮肤ID
|
||
Shiny uint32 // 精灵是否闪光(0=否,1=是)
|
||
}
|
||
|
||
// C2S_PetFusion 前端(Client)到后端(Server)的精灵融合请求包
|
||
type C2S_PetFusion struct {
|
||
Head common.TomeeHeader `cmd:"2351" struc:"skip"`
|
||
Mcatchtime uint32 `json:"mcatchtime" msgpack:"mcatchtime"` // 主精灵的时间戳
|
||
Auxcatchtime uint32 `json:"auxcatchtime" msgpack:"auxcatchtime"` // 副精灵的时间戳
|
||
Item1 uint32 `json:"item1" msgpack:"item1"` // 物品序号1
|
||
Item2 uint32 `json:"item2" msgpack:"item2"` // 物品序号2
|
||
Item3 uint32 `json:"item3" msgpack:"item3"` // 物品序号3
|
||
Item4 uint32 `json:"item4" msgpack:"item4"` // 物品序号4
|
||
GoldItem1 uint32 `json:"gold_item1" msgpack:"gold_item1"` // 0代表未放置 金豆物品1(C#:gold_item1)
|
||
GoldItem2 uint32 `json:"gold_item2" msgpack:"gold_item2"` // 0代表未放置 金豆物品2(C#:gold_item2)
|
||
}
|
||
|
||
// PetFusionInfo 精灵融合结果详情(后端回包嵌套结构体)
|
||
type PetFusionInfo struct {
|
||
ObtainTime uint32 `json:"obtainTime" msgpack:"obtainTime"` // 如果获得时间为0 则代表融合失败
|
||
SoulID uint32 `json:"soulID" msgpack:"soulID"` // 元神珠的id 融合失败为0
|
||
StarterCpTm uint32 `json:"starterCpTm" msgpack:"starterCpTm"` // 融合失败为0
|
||
CostItemFlag uint32 `json:"costItemFlag" msgpack:"costItemFlag"` // 是不是消耗掉了金豆道具 1代表消耗道具
|
||
}
|