mirror of
https://github.com/FlourishingWorld/hk4e.git
synced 2026-02-14 10:22:26 +08:00
耐力回复时使用技能回复异常修复
This commit is contained in:
@@ -271,7 +271,7 @@ func (g *GameManager) SkillStartStamina(player *model.Player, casterId uint32, s
|
|||||||
avatarSkillDataConfig := gdconf.GetAvatarSkillDataById(int32(skillId))
|
avatarSkillDataConfig := gdconf.GetAvatarSkillDataById(int32(skillId))
|
||||||
|
|
||||||
// 配置表确保存在技能开始对应的耐力消耗
|
// 配置表确保存在技能开始对应的耐力消耗
|
||||||
if avatarSkillDataConfig != nil {
|
if avatarSkillDataConfig != nil && avatarSkillDataConfig.CostStamina != 0 {
|
||||||
// 距离上次处理技能开始耐力消耗过去的时间
|
// 距离上次处理技能开始耐力消耗过去的时间
|
||||||
pastTime := time.Now().UnixMilli() - staminaInfo.LastSkillStartTime
|
pastTime := time.Now().UnixMilli() - staminaInfo.LastSkillStartTime
|
||||||
// 上次触发的技能相同则每400ms触发一次消耗
|
// 上次触发的技能相同则每400ms触发一次消耗
|
||||||
@@ -281,8 +281,6 @@ func (g *GameManager) SkillStartStamina(player *model.Player, casterId uint32, s
|
|||||||
g.UpdatePlayerStamina(player, avatarSkillDataConfig.CostStamina)
|
g.UpdatePlayerStamina(player, avatarSkillDataConfig.CostStamina)
|
||||||
staminaInfo.LastSkillStartTime = time.Now().UnixMilli()
|
staminaInfo.LastSkillStartTime = time.Now().UnixMilli()
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
// logger.Debug("skill start cost error, cost: %v", costStamina)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 记录最后释放的技能
|
// 记录最后释放的技能
|
||||||
@@ -364,6 +362,10 @@ func (g *GameManager) GetChangeStamina(curStamina int32, maxStamina int32, stami
|
|||||||
|
|
||||||
// UpdateVehicleStamina 更新载具耐力
|
// UpdateVehicleStamina 更新载具耐力
|
||||||
func (g *GameManager) UpdateVehicleStamina(player *model.Player, vehicleEntity *Entity, staminaCost int32) {
|
func (g *GameManager) UpdateVehicleStamina(player *model.Player, vehicleEntity *Entity, staminaCost int32) {
|
||||||
|
// 耐力消耗为0代表不更改 仍然执行后面的话会导致回复出问题
|
||||||
|
if staminaCost == 0 {
|
||||||
|
return
|
||||||
|
}
|
||||||
staminaInfo := player.StaminaInfo
|
staminaInfo := player.StaminaInfo
|
||||||
// 添加的耐力大于0为恢复
|
// 添加的耐力大于0为恢复
|
||||||
if staminaCost > 0 {
|
if staminaCost > 0 {
|
||||||
@@ -406,6 +408,10 @@ func (g *GameManager) UpdateVehicleStamina(player *model.Player, vehicleEntity *
|
|||||||
|
|
||||||
// UpdatePlayerStamina 更新玩家耐力
|
// UpdatePlayerStamina 更新玩家耐力
|
||||||
func (g *GameManager) UpdatePlayerStamina(player *model.Player, staminaCost int32) {
|
func (g *GameManager) UpdatePlayerStamina(player *model.Player, staminaCost int32) {
|
||||||
|
// 耐力消耗为0代表不更改 仍然执行后面的话会导致回复出问题
|
||||||
|
if staminaCost == 0 {
|
||||||
|
return
|
||||||
|
}
|
||||||
staminaInfo := player.StaminaInfo
|
staminaInfo := player.StaminaInfo
|
||||||
// 添加的耐力大于0为恢复
|
// 添加的耐力大于0为恢复
|
||||||
if staminaCost > 0 {
|
if staminaCost > 0 {
|
||||||
|
|||||||
Reference in New Issue
Block a user