|
@@ -5085,20 +5085,16 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
|
|
|
break;
|
|
|
#endif
|
|
|
case RK_DRAGONBREATH_WATER:
|
|
|
- case RK_DRAGONBREATH: {
|
|
|
- struct status_change *tsc2 = NULL;
|
|
|
- if( (tsc2 = status_get_sc(bl)) && (tsc2->data[SC_HIDING] )) {
|
|
|
- clif_skill_nodamage(src,src,skill_id,skill_lv,1);
|
|
|
- } else
|
|
|
- skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag);
|
|
|
- }
|
|
|
+ case RK_DRAGONBREATH:
|
|
|
+ if( tsc->data[SC_HIDING] )
|
|
|
+ clif_skill_nodamage(src,src,skill_id,skill_lv,1);
|
|
|
+ else
|
|
|
+ skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag);
|
|
|
break;
|
|
|
|
|
|
- case NPC_SELFDESTRUCTION: {
|
|
|
- struct status_change *tsc2 = NULL;
|
|
|
- if( (tsc2 = status_get_sc(bl)) && tsc2->data[SC_HIDING] )
|
|
|
+ case NPC_SELFDESTRUCTION:
|
|
|
+ if( tsc->data[SC_HIDING] )
|
|
|
break;
|
|
|
- }
|
|
|
case HVAN_EXPLOSION:
|
|
|
if (src != bl)
|
|
|
skill_attack(BF_MISC,src,src,bl,skill_id,skill_lv,tick,flag);
|
|
@@ -5558,15 +5554,13 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
|
|
|
}
|
|
|
break;
|
|
|
|
|
|
- case SO_POISON_BUSTER: {
|
|
|
- struct status_change *tsc2 = status_get_sc(bl);
|
|
|
- if( tsc2 && tsc2->data[SC_POISON] ) {
|
|
|
- skill_attack(skill_get_type(skill_id), src, src, bl, skill_id, skill_lv, tick, flag);
|
|
|
- status_change_end(bl, SC_POISON, INVALID_TIMER);
|
|
|
- }
|
|
|
- else if( sd )
|
|
|
- clif_skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0);
|
|
|
+ case SO_POISON_BUSTER:
|
|
|
+ if( tsc && tsc->data[SC_POISON] ) {
|
|
|
+ skill_attack(skill_get_type(skill_id), src, src, bl, skill_id, skill_lv, tick, flag);
|
|
|
+ status_change_end(bl, SC_POISON, INVALID_TIMER);
|
|
|
}
|
|
|
+ else if( sd )
|
|
|
+ clif_skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0);
|
|
|
break;
|
|
|
|
|
|
case GN_SPORE_EXPLOSION:
|
|
@@ -5660,14 +5654,13 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
|
|
|
case EL_TIDAL_WEAPON:
|
|
|
if( src->type == BL_ELEM ) {
|
|
|
struct elemental_data *ele = BL_CAST(BL_ELEM,src);
|
|
|
- struct status_change *sc2 = status_get_sc(&ele->bl);
|
|
|
- struct status_change *tsc2 = status_get_sc(bl);
|
|
|
+ struct status_change *tsc_ele = status_get_sc(&ele->bl);
|
|
|
sc_type type = status_skill2sc(skill_id), type2;
|
|
|
type2 = type-1;
|
|
|
|
|
|
clif_skill_nodamage(src,battle_get_master(src),skill_id,skill_lv,1);
|
|
|
clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SKILL);
|
|
|
- if( (sc2 && sc2->data[type2]) || (tsc2 && tsc2->data[type]) ) {
|
|
|
+ if( (tsc_ele && tsc_ele->data[type2]) || (tsc && tsc->data[type]) ) {
|
|
|
elemental_clean_single_effect(ele, skill_id);
|
|
|
}
|
|
|
if( rnd()%100 < 50 )
|