|
@@ -328,13 +328,23 @@ int battle_attr_fix(struct block_list *src, struct block_list *target, int damag
|
|
|
sg->limit = DIFF_TICK(gettick(),sg->tick)+300;
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- if( atk_elem == ELE_FIRE && tsc && tsc->count && tsc->data[SC_SPIDERWEB] ){
|
|
|
- tsc->data[SC_SPIDERWEB]->val1 = 0; // free to move now
|
|
|
- if( tsc->data[SC_SPIDERWEB]->val2-- > 0 )
|
|
|
- damage <<= 1; // double damage
|
|
|
- if( tsc->data[SC_SPIDERWEB]->val2 == 0 )
|
|
|
- status_change_end(target, SC_SPIDERWEB, INVALID_TIMER);
|
|
|
+ }
|
|
|
+ if( tsc && tsc->count ) {
|
|
|
+ if( tsc->data[SC_SPIDERWEB] && atk_elem == ELE_FIRE ){
|
|
|
+ tsc->data[SC_SPIDERWEB]->val1 = 0; // free to move now
|
|
|
+ if( tsc->data[SC_SPIDERWEB]->val2-- > 0 )
|
|
|
+ damage <<= 1; // double damage
|
|
|
+ if( tsc->data[SC_SPIDERWEB]->val2 == 0 )
|
|
|
+ status_change_end(target, SC_SPIDERWEB, INVALID_TIMER);
|
|
|
+ }
|
|
|
+ if( tsc->data[SC_ORATIO] && atk_elem == ELE_HOLY )
|
|
|
+ ratio += tsc->data[SC_ORATIO]->val1 * 2;
|
|
|
+ if( tsc->data[SC_VENOMIMPRESS] && atk_elem == ELE_POISON )
|
|
|
+ ratio += tsc->data[SC_VENOMIMPRESS]->val2;
|
|
|
+ if( tsc->data[SC_THORNSTRAP] && atk_elem == ELE_FIRE )
|
|
|
+ status_change_end(target, SC_THORNSTRAP, -1);
|
|
|
+ if( tsc->data[SC_FIRE_CLOAK_OPTION] && atk_elem == ELE_FIRE )
|
|
|
+ damage -= damage * tsc->data[SC_FIRE_CLOAK_OPTION]->val2 / 100;
|
|
|
}
|
|
|
return damage*ratio/100;
|
|
|
}
|