diff --git a/src/map/battle.c b/src/map/battle.c index 6bf09cdb3b..75a4747692 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -4438,13 +4438,6 @@ struct Damage battle_attack_sc_bonus(struct Damage wd, struct block_list *src, s } } - if (sc->data[SC_FLASHCOMBO]) { - ATK_ADD(wd.damage, wd.damage2, sc->data[SC_FLASHCOMBO]->val2); -#ifdef RENEWAL - ATK_ADD(wd.equipAtk, wd.equipAtk2, sc->data[SC_FLASHCOMBO]->val2); -#endif - } - if((wd.flag&(BF_LONG|BF_MAGIC)) == BF_LONG) { // Monster Transformation bonus if (sc->data[SC_MTF_RANGEATK]) { ATK_ADDRATE(wd.damage, wd.damage2, sc->data[SC_MTF_RANGEATK]->val1); diff --git a/src/map/skill.c b/src/map/skill.c index 8c6965b695..3a49ebe991 100755 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -3845,12 +3845,6 @@ static int skill_timerskill(int tid, unsigned int tick, int id, intptr_t data) target = map_id2bl(skl->target_id); if( ( skl->skill_id == RG_INTIMIDATE || skl->skill_id == SC_FATALMENACE ) && (!target || target->prev == NULL || !check_distance_bl(src,target,AREA_SIZE)) ) target = src; //Required since it has to warp. - if(target == NULL) - break; // Target offline? - if(target->prev == NULL) - break; // Target not on Map - if(src->m != target->m) - break; // Different Maps if (skl->skill_id == SR_SKYNETBLOW) { clif_skill_damage(src,src,tick,status_get_amotion(src),0,-30000,1,skl->skill_id,skl->skill_lv,DMG_SKILL); @@ -3860,6 +3854,13 @@ static int skill_timerskill(int tid, unsigned int tick, int id, intptr_t data) break; } + if(target == NULL) + break; // Target offline? + if(target->prev == NULL) + break; // Target not on Map + if(src->m != target->m) + break; // Different Maps + if(status_isdead(src)) { switch(skl->skill_id) { case WL_CHAINLIGHTNING_ATK: @@ -9743,7 +9744,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui if (sd) sd->ud.attackabletime = sd->canuseitem_tick = sd->ud.canact_tick; clif_skill_nodamage(src,bl,skill_id,skill_lv, - sc_start2(src,bl,type,100,skill_lv,bl->id,skill_get_time(skill_id,skill_lv))); + sc_start(src,src,type,100,skill_lv,skill_get_time(skill_id,skill_lv))); for (i = 0; i < ARRAYLENGTH(combo); i++) skill_addtimerskill(src,tick + delay[i],bl->id,0,0,combo[i],skill_lv,BF_WEAPON,flag|SD_LEVEL); } diff --git a/src/map/status.c b/src/map/status.c index 896e14e6d9..3f41600479 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -723,7 +723,7 @@ void initChangeTables(void) set_sc( SR_GENTLETOUCH_ENERGYGAIN , SC_GT_ENERGYGAIN , SI_GENTLETOUCH_ENERGYGAIN , SCB_NONE ); set_sc( SR_GENTLETOUCH_CHANGE , SC_GT_CHANGE , SI_GENTLETOUCH_CHANGE , SCB_WATK|SCB_MDEF|SCB_ASPD ); set_sc( SR_GENTLETOUCH_REVITALIZE , SC_GT_REVITALIZE , SI_GENTLETOUCH_REVITALIZE , SCB_MAXHP|SCB_REGEN ); - set_sc( SR_FLASHCOMBO , SC_FLASHCOMBO , SI_FLASHCOMBO , SCB_NONE ); + set_sc( SR_FLASHCOMBO , SC_FLASHCOMBO , SI_FLASHCOMBO , SCB_WATK ); /* Wanderer / Minstrel */ set_sc( WA_SWING_DANCE , SC_SWINGDANCE , SI_SWINGDANCE , SCB_SPEED|SCB_ASPD ); @@ -5518,6 +5518,8 @@ static unsigned short status_calc_watk(struct block_list *bl, struct status_chan watk += watk * sc->data[SC_ANGRIFFS_MODUS]->val2/100; if(sc->data[SC_ODINS_POWER]) watk += 40 + 30 * sc->data[SC_ODINS_POWER]->val1; + if (sc->data[SC_FLASHCOMBO]) + watk += sc->data[SC_FLASHCOMBO]->val2; return (unsigned short)cap_value(watk,0,USHRT_MAX); }