rathena
rathena copied to clipboard
Reflect Issue
- rAthena Hash: 09cbf2dfa61e3eed34936e7cd2e312c02d20a211
- Client Date: 2015 05 13
- Server Mode: Pre Renewal
-
Description of Issue:
- Result: Champion received reflect from Paladin w/ +15 Valk Garment, Reflect Shield and Auto Guard.
- Expected Result: If Paladin receive damage champion will also receive a reflect damage from Asura skill.
- How to Reproduce: https://rathena.org/board/topic/110855-asura-reflect-when-missed-wtf/#comment-324552 I'll link the topic from the forum.
- Official Information: No official information about this im just concerned about this.
-
Modifications that may affect results: Modification or None it still the same.
Is there any temporary fix for this issue?
I'm sorry did't got fully the issue, but maybe lines below can help: conf/battle/skill.conf
// Using 'old' behavior for devotion vs reflect damage? (Note 2)
// Default is 0 (official). If 'devotion_rdamage' is > 0 (chance to devote the reflected damage),
// when player with devotion attacks player with reflect damage ability (item bonus or skill),
// the damage will be taken by the person who provides devotion instead the attacker.
devotion_rdamage: 0
// Officially, reflecting shield (SC_REFLECTDAMAGE) reflects physical damage by skill or normal attack.
// But if the target is being devoted, it ONLY reflects the damage for melee skill. (Note 1)
devotion_rdamage_skill_only: yes
Result: Champion received reflect from Paladin w/ +15 Valk Garment, Reflect Shield and Auto Guard. Expected Result: If Paladin receive damage champion will also receive a reflect damage from Asura skill.
Looks like you're missing an information what the bug actually is about?
From the forum thread:
when i use asure on them and miss i get the damage back to me! I want to asura don't be reflected when missed! or asura or all skills, the mod tha is easier to do... any ideia?
So the champion is getting reflect damage even though the damage skill (Asura Strike) missed. To reproduce this issue... How am I supposed to make Asura Strike miss?
It's possible to miss using Auto Guard. But it takes a few attempts.
Asura Strike missed without giving any reflect damage, when the Pala is not wearing a Valkyria's Manteau. If the Paladin is wearing a Valkyria's Manteau, the damage is reflected even if it missed. Though the skill Reflect Shild isn't needed to reproduce this issue. Tested on 54a119c56a90bddc09c1747188d9d6875ec4c167 in Pre-Renewal mode.
Edit:
Why are these two reflect types (Reflect Shield and short_weapon_damage_return) not calculated equally? The function battle_calc_return_damage
is called in two completely different places with a flipped status_reflect
value. Unfortunately there is no comment why it's important to differentiate status reflect and other reflect values?
int64 battle_calc_return_damage(struct block_list* bl, struct block_list *src, int64 *dmg, int flag, uint16 skill_id, bool status_reflect){
[...]
if (flag & BF_SHORT) {//Bounces back part of the damage.
if ( !status_reflect && sd && sd->bonus.short_weapon_damage_return ) {
rdamage += damage * sd->bonus.short_weapon_damage_return / 100;
rdamage = i64max(rdamage,1);
} else if( status_reflect && sc && sc->count ) {
if( sc->data[SC_REFLECTSHIELD] ) {
[...]
how to fix this problem?
up