diff --git a/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/MagicSwingHandler.kt b/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/MagicSwingHandler.kt index 99862dc15..84455411b 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/MagicSwingHandler.kt +++ b/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/MagicSwingHandler.kt @@ -86,6 +86,8 @@ open class MagicSwingHandler if (spell!!.type === SpellType.BLITZ) { ticks++ } + if(state.estimatedHit > victim.skills.lifepoints) state.estimatedHit = victim.skills.lifepoints + if(state.estimatedHit + state.secondaryHit > victim.skills.lifepoints) state.secondaryHit -= ((state.estimatedHit + state.secondaryHit) - victim.skills.lifepoints) addExperience(entity, victim, state) return ticks } diff --git a/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/MeleeSwingHandler.kt b/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/MeleeSwingHandler.kt index ec435e6c6..6128d4b84 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/MeleeSwingHandler.kt +++ b/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/MeleeSwingHandler.kt @@ -75,6 +75,10 @@ open class MeleeSwingHandler hit = RandomFunction.random(max) } state.estimatedHit = hit + if(victim != null) { + if (state.estimatedHit > victim.skills.lifepoints) state.estimatedHit = victim.skills.lifepoints + if (state.estimatedHit + state.secondaryHit > victim.skills.lifepoints) state.secondaryHit -= ((state.estimatedHit + state.secondaryHit) - victim.skills.lifepoints) + } addExperience(entity, victim, state) return 1 } diff --git a/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/RangeSwingHandler.kt b/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/RangeSwingHandler.kt index 5382702b1..777833444 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/RangeSwingHandler.kt +++ b/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/RangeSwingHandler.kt @@ -93,6 +93,8 @@ open class RangeSwingHandler if (entity == null || victim!!.location == null) { return -1 } + if(state.estimatedHit > victim.skills.lifepoints) state.estimatedHit = victim.skills.lifepoints + if(state.estimatedHit + state.secondaryHit > victim.skills.lifepoints) state.secondaryHit -= ((state.estimatedHit + state.secondaryHit) - victim.skills.lifepoints) useAmmo(entity, state, victim.location) addExperience(entity, victim, state) return 1 + ceil(entity.location.getDistance(victim.location) * 0.3).toInt()