部分技能异常消耗耐力修复

This commit is contained in:
UnKownOwO
2022-12-20 08:40:16 +08:00
parent 0dc45708d6
commit 64c2244877

View File

@@ -1,6 +1,7 @@
package game package game
import ( import (
"strings"
"time" "time"
"hk4e/gdconf" "hk4e/gdconf"
@@ -57,14 +58,8 @@ func (g *GameManager) HandleAbilityStamina(player *model.Player, entry *proto.Ab
if avatarAbility == nil { if avatarAbility == nil {
return return
} }
// 距离技能开始过去的时间 // 重击对应的耐力消耗
pastTime := time.Now().UnixMilli() - player.StaminaInfo.LastSkillTime g.ChargedAttackStamina(player, worldAvatar, avatarAbility)
// 法器角色轻击也会算触发重击消耗
// 所以通过策略判断 必须距离技能开始过去200ms才算重击
if player.StaminaInfo.LastSkillId == uint32(avatarAbility.AvatarSkillId) && pastTime > 200 {
// 重击对应的耐力消耗
g.ChargedAttackStamina(player, worldAvatar, avatarAbility)
}
default: default:
break break
} }
@@ -205,6 +200,10 @@ func (g *GameManager) SkillSustainStamina(player *model.Player, isSwim bool) {
// ChargedAttackStamina 处理重击技能即时耐力消耗 // ChargedAttackStamina 处理重击技能即时耐力消耗
func (g *GameManager) ChargedAttackStamina(player *model.Player, worldAvatar *WorldAvatar, skillData *gdconf.AvatarSkillData) { func (g *GameManager) ChargedAttackStamina(player *model.Player, worldAvatar *WorldAvatar, skillData *gdconf.AvatarSkillData) {
// 确保技能为重击
if !strings.Contains(skillData.AbilityName, "ExtraAttack") {
return
}
// 获取现行角色的配置表 // 获取现行角色的配置表
avatarDataConfig, ok := gdconf.CONF.AvatarDataMap[int32(worldAvatar.avatarId)] avatarDataConfig, ok := gdconf.CONF.AvatarDataMap[int32(worldAvatar.avatarId)]
if !ok { if !ok {