|
@@ -3830,7 +3830,7 @@ int64 skill_attack (int32 attack_type, struct block_list* src, struct block_list
|
|
|
//Display damage.
|
|
|
switch( skill_id ) {
|
|
|
case PA_GOSPEL: //Should look like Holy Cross [Skotlex]
|
|
|
- dmg.dmotion = clif_skill_damage( *src, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, CR_HOLYCROSS, -1, DMG_SPLASH );
|
|
|
+ clif_skill_damage( *src, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, CR_HOLYCROSS, -1, DMG_SPLASH );
|
|
|
break;
|
|
|
//Skills that need be passed as a normal attack for the client to display correctly.
|
|
|
case NPC_SELFDESTRUCTION:
|
|
@@ -3843,17 +3843,17 @@ int64 skill_attack (int32 attack_type, struct block_list* src, struct block_list
|
|
|
case NPC_CRITICALSLASH:
|
|
|
case TF_DOUBLE:
|
|
|
case GS_CHAINACTION:
|
|
|
- dmg.dmotion = clif_damage(*src,*bl,tick,dmg.amotion,dmg.dmotion,damage,dmg.div_,dmg.type,dmg.damage2,false);
|
|
|
+ clif_damage(*src,*bl,tick,dmg.amotion,dmg.dmotion,damage,dmg.div_,dmg.type,dmg.damage2,false);
|
|
|
break;
|
|
|
|
|
|
case AS_SPLASHER:
|
|
|
if( flag&SD_ANIMATION ) // the surrounding targets
|
|
|
- dmg.dmotion = clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -1, DMG_SPLASH ); // needs -1 as skill level
|
|
|
+ clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -1, DMG_SPLASH ); // needs -1 as skill level
|
|
|
else // the central target doesn't display an animation
|
|
|
- dmg.dmotion = clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -2, DMG_SPLASH ); // needs -2(!) as skill level
|
|
|
+ clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -2, DMG_SPLASH ); // needs -2(!) as skill level
|
|
|
break;
|
|
|
case SR_EARTHSHAKER:
|
|
|
- dmg.dmotion = clif_skill_damage( *src, *bl, tick, dmg.amotion, dmg.dmotion, damage, 1, skill_id, -2, DMG_SINGLE );
|
|
|
+ clif_skill_damage( *src, *bl, tick, dmg.amotion, dmg.dmotion, damage, 1, skill_id, -2, DMG_SINGLE );
|
|
|
break;
|
|
|
case WL_SOULEXPANSION:
|
|
|
case WL_COMET:
|
|
@@ -3862,19 +3862,19 @@ int64 skill_attack (int32 attack_type, struct block_list* src, struct block_list
|
|
|
#ifndef RENEWAL
|
|
|
case NJ_HUUMA:
|
|
|
#endif
|
|
|
- dmg.dmotion = clif_skill_damage( *src, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, skill_lv, DMG_MULTI_HIT );
|
|
|
+ clif_skill_damage( *src, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, skill_lv, DMG_MULTI_HIT );
|
|
|
break;
|
|
|
case WL_CHAINLIGHTNING_ATK:
|
|
|
- dmg.dmotion = clif_skill_damage( *src, *bl, tick, dmg.amotion, dmg.dmotion, damage, 1, WL_CHAINLIGHTNING_ATK, -2, DMG_SINGLE );
|
|
|
+ clif_skill_damage( *src, *bl, tick, dmg.amotion, dmg.dmotion, damage, 1, WL_CHAINLIGHTNING_ATK, -2, DMG_SINGLE );
|
|
|
break;
|
|
|
case WL_TETRAVORTEX_FIRE:
|
|
|
- dmg.dmotion = clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, WL_TETRAVORTEX_WIND, -1, DMG_SPLASH );
|
|
|
+ clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, WL_TETRAVORTEX_WIND, -1, DMG_SPLASH );
|
|
|
break;
|
|
|
case LG_SHIELDPRESS:
|
|
|
- dmg.dmotion = clif_skill_damage( *dsrc, *bl, tick, status_get_amotion(src), dmg.dmotion, damage, dmg.div_, skill_id, -1, DMG_SINGLE );
|
|
|
+ clif_skill_damage( *dsrc, *bl, tick, status_get_amotion(src), dmg.dmotion, damage, dmg.div_, skill_id, -1, DMG_SINGLE );
|
|
|
break;
|
|
|
case NPC_EARTHQUAKE:
|
|
|
- dmg.dmotion = clif_skill_damage( *src, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -1, DMG_ENDURE );
|
|
|
+ clif_skill_damage( *src, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -1, DMG_ENDURE );
|
|
|
break;
|
|
|
case NPC_DARKPIERCING:
|
|
|
case EL_FIRE_BOMB:
|
|
@@ -3896,19 +3896,19 @@ int64 skill_attack (int32 attack_type, struct block_list* src, struct block_list
|
|
|
case KO_BAKURETSU:
|
|
|
case GN_HELLS_PLANT_ATK:
|
|
|
case SU_SV_ROOTTWIST_ATK:
|
|
|
- dmg.dmotion = clif_skill_damage( *src, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -1, DMG_SPLASH );
|
|
|
+ clif_skill_damage( *src, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -1, DMG_SPLASH );
|
|
|
break;
|
|
|
case GN_FIRE_EXPANSION_ACID:
|
|
|
- dmg.dmotion = clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, CR_ACIDDEMONSTRATION, skill_lv, DMG_MULTI_HIT );
|
|
|
+ clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, CR_ACIDDEMONSTRATION, skill_lv, DMG_MULTI_HIT );
|
|
|
break;
|
|
|
case GN_SLINGITEM_RANGEMELEEATK:
|
|
|
- dmg.dmotion = clif_skill_damage( *src, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, GN_SLINGITEM, -2, DMG_SINGLE );
|
|
|
+ clif_skill_damage( *src, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, GN_SLINGITEM, -2, DMG_SINGLE );
|
|
|
break;
|
|
|
case EL_STONE_RAIN:
|
|
|
- dmg.dmotion = clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -1, (flag&1) ? DMG_MULTI_HIT : DMG_SPLASH );
|
|
|
+ clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -1, (flag&1) ? DMG_MULTI_HIT : DMG_SPLASH );
|
|
|
break;
|
|
|
case WM_SEVERE_RAINSTORM_MELEE:
|
|
|
- dmg.dmotion = clif_skill_damage( *src, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, WM_SEVERE_RAINSTORM, -2, DMG_SPLASH );
|
|
|
+ clif_skill_damage( *src, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, WM_SEVERE_RAINSTORM, -2, DMG_SPLASH );
|
|
|
break;
|
|
|
case HT_CLAYMORETRAP:
|
|
|
case HT_BLASTMINE:
|
|
@@ -3917,20 +3917,20 @@ int64 skill_attack (int32 attack_type, struct block_list* src, struct block_list
|
|
|
case RA_CLUSTERBOMB:
|
|
|
case RA_FIRINGTRAP:
|
|
|
case RA_ICEBOUNDTRAP:
|
|
|
- dmg.dmotion = clif_skill_damage( *src, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, (flag&SD_LEVEL) ? -1 : skill_lv, DMG_SPLASH );
|
|
|
+ clif_skill_damage( *src, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, (flag&SD_LEVEL) ? -1 : skill_lv, DMG_SPLASH );
|
|
|
if( dsrc != src ) // avoid damage display redundancy
|
|
|
break;
|
|
|
[[fallthrough]];
|
|
|
case HT_LANDMINE:
|
|
|
- dmg.dmotion = clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -1, dmg_type );
|
|
|
+ clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -1, dmg_type );
|
|
|
break;
|
|
|
case WZ_SIGHTBLASTER:
|
|
|
//Sightblaster should never call clif_skill_damage twice
|
|
|
- dmg.dmotion = clif_skill_damage( *src, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, (flag&SD_LEVEL) ? -1 : skill_lv, DMG_SPLASH );
|
|
|
+ clif_skill_damage( *src, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, (flag&SD_LEVEL) ? -1 : skill_lv, DMG_SPLASH );
|
|
|
break;
|
|
|
case RL_R_TRIP_PLUSATK:
|
|
|
case RL_S_STORM:
|
|
|
- dmg.dmotion = clif_skill_damage( *dsrc, *bl, tick, status_get_amotion(src), dmg.dmotion, damage, dmg.div_, skill_id, -1, DMG_SPLASH );
|
|
|
+ clif_skill_damage( *dsrc, *bl, tick, status_get_amotion(src), dmg.dmotion, damage, dmg.div_, skill_id, -1, DMG_SPLASH );
|
|
|
break;
|
|
|
case SU_LUNATICCARROTBEAT:
|
|
|
case SU_LUNATICCARROTBEAT2:
|
|
@@ -3943,31 +3943,31 @@ int64 skill_attack (int32 attack_type, struct block_list* src, struct block_list
|
|
|
clif_skill_nodamage(dsrc, *bl, skill_id, skill_lv);
|
|
|
[[fallthrough]];
|
|
|
case WM_REVERBERATION:
|
|
|
- dmg.dmotion = clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -2, dmg_type );
|
|
|
+ clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -2, dmg_type );
|
|
|
break;
|
|
|
case SJ_FALLINGSTAR_ATK:
|
|
|
case SJ_FALLINGSTAR_ATK2:
|
|
|
- dmg.dmotion = clif_skill_damage( *src, *bl,tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -2, DMG_MULTI_HIT );
|
|
|
+ clif_skill_damage( *src, *bl,tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -2, DMG_MULTI_HIT );
|
|
|
break;
|
|
|
case SJ_NOVAEXPLOSING:
|
|
|
- dmg.dmotion = clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -2, DMG_SINGLE );
|
|
|
+ clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -2, DMG_SINGLE );
|
|
|
break;
|
|
|
case DK_HACKANDSLASHER_ATK:
|
|
|
- dmg.dmotion = clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -1, dmg_type );
|
|
|
+ clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -1, dmg_type );
|
|
|
break;
|
|
|
case AG_STORM_CANNON:
|
|
|
case AG_CRIMSON_ARROW:
|
|
|
- dmg.dmotion = clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, skill_lv, DMG_SPLASH );
|
|
|
+ clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, skill_lv, DMG_SPLASH );
|
|
|
break;
|
|
|
case TR_ROSEBLOSSOM_ATK:
|
|
|
case ABC_FROM_THE_ABYSS_ATK:
|
|
|
- dmg.dmotion = clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -1, DMG_SPLASH );
|
|
|
+ clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -1, DMG_SPLASH );
|
|
|
break;
|
|
|
case TR_SOUNDBLEND:
|
|
|
if (flag&SD_ANIMATION)// For some reason the caster reacts on the splash flag. Best reduce amotion to minimize it for now. [Rytech]
|
|
|
- dmg.dmotion = clif_skill_damage( *dsrc, *bl, tick, 10, dmg.dmotion, damage, dmg.div_, skill_id, -1, DMG_SPLASH );
|
|
|
+ clif_skill_damage( *dsrc, *bl, tick, 10, dmg.dmotion, damage, dmg.div_, skill_id, -1, DMG_SPLASH );
|
|
|
else
|
|
|
- dmg.dmotion = clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, skill_lv, dmg_type );
|
|
|
+ clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, skill_lv, dmg_type );
|
|
|
break;
|
|
|
case AB_DUPLELIGHT_MELEE:
|
|
|
case AB_DUPLELIGHT_MAGIC:
|
|
@@ -3983,7 +3983,7 @@ int64 skill_attack (int32 attack_type, struct block_list* src, struct block_list
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
- dmg.dmotion = clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, (flag&SD_LEVEL) ? -1 : skill_lv, dmg_type );
|
|
|
+ clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, (flag&SD_LEVEL) ? -1 : skill_lv, dmg_type );
|
|
|
break;
|
|
|
}
|
|
|
|
|
@@ -4011,7 +4011,7 @@ int64 skill_attack (int32 attack_type, struct block_list* src, struct block_list
|
|
|
|| skill_id == HW_GRAVITATION
|
|
|
#endif
|
|
|
|| skill_id == NPC_EVILLAND) && !shadow_flag )
|
|
|
- battle_damage(src, bl, damage, dmg.dmotion, skill_lv, skill_id, dmg.dmg_lv, dmg.flag, false, tick, false);
|
|
|
+ battle_damage(src, bl, damage, dmg.div_, skill_lv, skill_id, dmg.dmg_lv, dmg.flag, false, tick, false);
|
|
|
if( !status_isdead(*bl) && additional_effects )
|
|
|
skill_additional_effect(src,bl,skill_id,skill_lv,dmg.flag,dmg.dmg_lv,tick);
|
|
|
if( damage > 0 ) //Counter status effects [Skotlex]
|
|
@@ -4030,7 +4030,7 @@ int64 skill_attack (int32 attack_type, struct block_list* src, struct block_list
|
|
|
if( dmg.flag > ATK_BLOCK )
|
|
|
skill_counter_additional_effect(src, bl, skill_id, skill_lv, dmg.flag, tick);
|
|
|
} else
|
|
|
- battle_delay_damage(tick, dmg.amotion,src,bl,dmg.flag,skill_id,skill_lv,damage,dmg.dmg_lv,dmg.dmotion, additional_effects, false);
|
|
|
+ battle_delay_damage(tick, dmg.amotion, src, bl, dmg.flag, skill_id, skill_lv, damage, dmg.dmg_lv, dmg.div_, additional_effects, false);
|
|
|
} else {
|
|
|
// Trigger monster skill condition for damage skills with no amotion.
|
|
|
if (bl->type == BL_MOB && src != bl && !status_isdead(*bl)) {
|
|
@@ -21667,7 +21667,8 @@ bool skill_check_shadowform(struct block_list *bl, int64 damage, int32 hit)
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- status_damage(bl, src, damage, 0, clif_damage(*src, *src, gettick(), 500, 500, damage, hit, (hit > 1 ? DMG_MULTI_HIT : DMG_NORMAL), 0, false), 0, SC__SHADOWFORM);
|
|
|
+ clif_damage(*src, *src, gettick(), 500, 500, damage, hit, (hit > 1 ? DMG_MULTI_HIT : DMG_NORMAL), 0, false);
|
|
|
+ status_damage(bl, src, damage, 0, 500, 0, SC__SHADOWFORM);
|
|
|
if( sc && sc->getSCE(SC__SHADOWFORM) && (--sc->getSCE(SC__SHADOWFORM)->val3) <= 0 ) {
|
|
|
status_change_end(bl, SC__SHADOWFORM);
|
|
|
if( src->type == BL_PC )
|