```
feat(fight): 优化Boss战奖励发放与经验通知逻辑 - 重构 Boss 怪物掉落物品发放代码,提高可读性与扩展性 - 注释掉宠物经验变化的通知指令(2509),暂不发送给客户端 - 修复战斗模式判断条件,从 Mode 改为 Status 判断 PVE 战斗 - 调整战斗超时逻辑,修改超时原因并增加调试日志输出 - 优化战斗结束回调执行顺序,确保广播前完成状态更新 - 重写 PetInfo.AddEV 方法,支持更安全
This commit is contained in:
@@ -159,23 +159,21 @@ func (h Controller) OnPlayerFightNpcMonster(data *fight.FightNpcMonsterInboundIn
|
||||
if foi.Reason == 0 && foi.WinnerId == c.Info.UserID {
|
||||
|
||||
if refpet.Item != 0 {
|
||||
|
||||
c.SendPackCmd(8004, &info.S2C_GET_BOSS_MONSTER{
|
||||
|
||||
ItemList: c.ItemAdd(model.ItemInfo{
|
||||
ItemId: refpet.Item,
|
||||
ItemCnt: uint32(grand.Intn(2) + 1),
|
||||
}),
|
||||
items := &info.S2C_GET_BOSS_MONSTER{}
|
||||
items.ItemList = c.ItemAdd(model.ItemInfo{
|
||||
ItemId: refpet.Item,
|
||||
ItemCnt: uint32(grand.Intn(2) + 1),
|
||||
})
|
||||
c.SendPackCmd(8004, items)
|
||||
}
|
||||
|
||||
foi.Winpet.ADD_EV(gconv.Uint32s(strings.Split(xmlres.PetMAP[int(mo.ID)].YieldingEV, " ")))
|
||||
foi.Winpet.AddEV(gconv.Uint32s(strings.Split(xmlres.PetMAP[int(mo.ID)].YieldingEV, " ")))
|
||||
exp := uint32(xmlres.PetMAP[int(mo.ID)].YieldingExp) * mo.Level / 7
|
||||
c.Info.ExpPool += exp * 4
|
||||
c.AddPetExp(foi.Winpet, uint32(exp)*2)
|
||||
c.SendPackCmd(2509, &info.PET_WAR_EXP_NOTICE{
|
||||
EXP: exp * 2,
|
||||
})
|
||||
// c.SendPackCmd(2509, &info.PET_WAR_EXP_NOTICE{
|
||||
// EXP: exp * 2,
|
||||
// })
|
||||
|
||||
}
|
||||
return 0
|
||||
|
||||
Reference in New Issue
Block a user