mirror of
https://github.com/FlourishingWorld/hk4e.git
synced 2026-02-23 14:32:27 +08:00
修复动画打断问题
This commit is contained in:
@@ -94,25 +94,24 @@ func (g *Game) CombatInvocationsNotify(player *model.Player, payloadMsg pb.Messa
|
|||||||
}
|
}
|
||||||
scene := world.GetSceneById(player.SceneId)
|
scene := world.GetSceneById(player.SceneId)
|
||||||
for _, entry := range req.InvokeList {
|
for _, entry := range req.InvokeList {
|
||||||
player.CombatInvokeHandler.AddEntry(entry.ForwardType, entry)
|
|
||||||
switch entry.ArgumentType {
|
switch entry.ArgumentType {
|
||||||
case proto.CombatTypeArgument_COMBAT_EVT_BEING_HIT:
|
case proto.CombatTypeArgument_COMBAT_EVT_BEING_HIT:
|
||||||
evtBeingHitInfo := new(proto.EvtBeingHitInfo)
|
evtBeingHitInfo := new(proto.EvtBeingHitInfo)
|
||||||
err := pb.Unmarshal(entry.CombatData, evtBeingHitInfo)
|
err := pb.Unmarshal(entry.CombatData, evtBeingHitInfo)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("parse EvtBeingHitInfo error: %v", err)
|
logger.Error("parse EvtBeingHitInfo error: %v", err)
|
||||||
continue
|
break
|
||||||
}
|
}
|
||||||
// logger.Debug("EvtBeingHitInfo: %v, ForwardType: %v", evtBeingHitInfo, entry.ForwardType)
|
// logger.Debug("EvtBeingHitInfo: %v, ForwardType: %v", evtBeingHitInfo, entry.ForwardType)
|
||||||
attackResult := evtBeingHitInfo.AttackResult
|
attackResult := evtBeingHitInfo.AttackResult
|
||||||
if attackResult == nil {
|
if attackResult == nil {
|
||||||
logger.Error("attackResult is nil")
|
logger.Error("attackResult is nil")
|
||||||
continue
|
break
|
||||||
}
|
}
|
||||||
target := scene.GetEntity(attackResult.DefenseId)
|
target := scene.GetEntity(attackResult.DefenseId)
|
||||||
if target == nil {
|
if target == nil {
|
||||||
logger.Error("could not found target, defense id: %v", attackResult.DefenseId)
|
logger.Error("could not found target, defense id: %v", attackResult.DefenseId)
|
||||||
continue
|
break
|
||||||
}
|
}
|
||||||
fightProp := target.GetFightProp()
|
fightProp := target.GetFightProp()
|
||||||
currHp := fightProp[constant.FIGHT_PROP_CUR_HP]
|
currHp := fightProp[constant.FIGHT_PROP_CUR_HP]
|
||||||
@@ -133,7 +132,7 @@ func (g *Game) CombatInvocationsNotify(player *model.Player, payloadMsg pb.Messa
|
|||||||
gadgetDataConfig := gdconf.GetGadgetDataById(int32(gadgetEntity.GetGadgetId()))
|
gadgetDataConfig := gdconf.GetGadgetDataById(int32(gadgetEntity.GetGadgetId()))
|
||||||
if gadgetDataConfig == nil {
|
if gadgetDataConfig == nil {
|
||||||
logger.Error("get gadget data config is nil, gadgetId: %v", gadgetEntity.GetGadgetId())
|
logger.Error("get gadget data config is nil, gadgetId: %v", gadgetEntity.GetGadgetId())
|
||||||
continue
|
break
|
||||||
}
|
}
|
||||||
logger.Debug("[EvtBeingHit] GadgetData: %+v, uid: %v", gadgetDataConfig, player.PlayerID)
|
logger.Debug("[EvtBeingHit] GadgetData: %+v, uid: %v", gadgetDataConfig, player.PlayerID)
|
||||||
// TODO 临时的解决方案
|
// TODO 临时的解决方案
|
||||||
@@ -155,16 +154,16 @@ func (g *Game) CombatInvocationsNotify(player *model.Player, payloadMsg pb.Messa
|
|||||||
err := pb.Unmarshal(entry.CombatData, entityMoveInfo)
|
err := pb.Unmarshal(entry.CombatData, entityMoveInfo)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("parse EntityMoveInfo error: %v", err)
|
logger.Error("parse EntityMoveInfo error: %v", err)
|
||||||
continue
|
break
|
||||||
}
|
}
|
||||||
// logger.Debug("EntityMoveInfo: %v, ForwardType: %v", entityMoveInfo, entry.ForwardType)
|
// logger.Debug("EntityMoveInfo: %v, ForwardType: %v", entityMoveInfo, entry.ForwardType)
|
||||||
motionInfo := entityMoveInfo.MotionInfo
|
motionInfo := entityMoveInfo.MotionInfo
|
||||||
if motionInfo.Pos == nil || motionInfo.Rot == nil {
|
if motionInfo.Pos == nil || motionInfo.Rot == nil {
|
||||||
continue
|
break
|
||||||
}
|
}
|
||||||
sceneEntity := scene.GetEntity(entityMoveInfo.EntityId)
|
sceneEntity := scene.GetEntity(entityMoveInfo.EntityId)
|
||||||
if sceneEntity == nil {
|
if sceneEntity == nil {
|
||||||
continue
|
break
|
||||||
}
|
}
|
||||||
if sceneEntity.GetEntityType() == constant.ENTITY_TYPE_AVATAR {
|
if sceneEntity.GetEntityType() == constant.ENTITY_TYPE_AVATAR {
|
||||||
// 玩家实体在移动
|
// 玩家实体在移动
|
||||||
@@ -240,7 +239,7 @@ func (g *Game) CombatInvocationsNotify(player *model.Player, payloadMsg pb.Messa
|
|||||||
err := pb.Unmarshal(entry.CombatData, evtAnimatorParameterInfo)
|
err := pb.Unmarshal(entry.CombatData, evtAnimatorParameterInfo)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("parse EvtAnimatorParameterInfo error: %v", err)
|
logger.Error("parse EvtAnimatorParameterInfo error: %v", err)
|
||||||
continue
|
break
|
||||||
}
|
}
|
||||||
// logger.Debug("EvtAnimatorParameterInfo: %v, ForwardType: %v", evtAnimatorParameterInfo, entry.ForwardType)
|
// logger.Debug("EvtAnimatorParameterInfo: %v, ForwardType: %v", evtAnimatorParameterInfo, entry.ForwardType)
|
||||||
case proto.CombatTypeArgument_COMBAT_ANIMATOR_STATE_CHANGED:
|
case proto.CombatTypeArgument_COMBAT_ANIMATOR_STATE_CHANGED:
|
||||||
@@ -248,10 +247,11 @@ func (g *Game) CombatInvocationsNotify(player *model.Player, payloadMsg pb.Messa
|
|||||||
err := pb.Unmarshal(entry.CombatData, evtAnimatorStateChangedInfo)
|
err := pb.Unmarshal(entry.CombatData, evtAnimatorStateChangedInfo)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("parse EvtAnimatorStateChangedInfo error: %v", err)
|
logger.Error("parse EvtAnimatorStateChangedInfo error: %v", err)
|
||||||
continue
|
break
|
||||||
}
|
}
|
||||||
// logger.Debug("EvtAnimatorStateChangedInfo: %v, ForwardType: %v", evtAnimatorStateChangedInfo, entry.ForwardType)
|
// logger.Debug("EvtAnimatorStateChangedInfo: %v, ForwardType: %v", evtAnimatorStateChangedInfo, entry.ForwardType)
|
||||||
}
|
}
|
||||||
|
player.CombatInvokeHandler.AddEntry(entry.ForwardType, entry)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user