|
@@ -11547,7 +11547,7 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui
|
|
|
|
|
|
case AB_EPICLESIS:
|
|
case AB_EPICLESIS:
|
|
if( (sg = skill_unitsetting(src, skill_id, skill_lv, x, y, 0)) ) {
|
|
if( (sg = skill_unitsetting(src, skill_id, skill_lv, x, y, 0)) ) {
|
|
- i = sg->unit->range;
|
|
|
|
|
|
+ i = skill_get_splash(skill_id, skill_lv);
|
|
map_foreachinarea(skill_area_sub, src->m, x - i, y - i, x + i, y + i, BL_CHAR, src, ALL_RESURRECTION, 1, tick, flag|BCT_NOENEMY|1,skill_castend_nodamage_id);
|
|
map_foreachinarea(skill_area_sub, src->m, x - i, y - i, x + i, y + i, BL_CHAR, src, ALL_RESURRECTION, 1, tick, flag|BCT_NOENEMY|1,skill_castend_nodamage_id);
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
@@ -12659,7 +12659,7 @@ static int skill_unit_onplace(struct skill_unit *unit, struct block_list *bl, un
|
|
// If you are fiberlocked and can't move, it will only increase your fireweakness level. [Inkfish]
|
|
// If you are fiberlocked and can't move, it will only increase your fireweakness level. [Inkfish]
|
|
sc->data[SC_SPIDERWEB]->val2++;
|
|
sc->data[SC_SPIDERWEB]->val2++;
|
|
break;
|
|
break;
|
|
- } else if( sc && battle_check_target(&sg->unit->bl,bl,sg->target_flag) > 0 ) {
|
|
|
|
|
|
+ } else if( sc && battle_check_target(&unit->bl,bl,sg->target_flag) > 0 ) {
|
|
int sec = skill_get_time2(sg->skill_id,sg->skill_lv);
|
|
int sec = skill_get_time2(sg->skill_id,sg->skill_lv);
|
|
if( status_change_start(ss, bl,type,10000,sg->skill_lv,1,sg->group_id,0,sec,SCSTART_NORATEDEF) ) {
|
|
if( status_change_start(ss, bl,type,10000,sg->skill_lv,1,sg->group_id,0,sec,SCSTART_NORATEDEF) ) {
|
|
const struct TimerData* td = sc->data[type]?get_timer(sc->data[type]->timer):NULL;
|
|
const struct TimerData* td = sc->data[type]?get_timer(sc->data[type]->timer):NULL;
|
|
@@ -12729,7 +12729,7 @@ static int skill_unit_onplace(struct skill_unit *unit, struct block_list *bl, un
|
|
break;
|
|
break;
|
|
|
|
|
|
case UNT_QUAGMIRE:
|
|
case UNT_QUAGMIRE:
|
|
- if( !sce && battle_check_target(&sg->unit->bl,bl,sg->target_flag) > 0 )
|
|
|
|
|
|
+ if( !sce && battle_check_target(&unit->bl,bl,sg->target_flag) > 0 )
|
|
sc_start4(ss, bl,type,100,sg->skill_lv,sg->group_id,0,0,sg->limit);
|
|
sc_start4(ss, bl,type,100,sg->skill_lv,sg->group_id,0,0,sg->limit);
|
|
break;
|
|
break;
|
|
|
|
|
|
@@ -12846,12 +12846,12 @@ static int skill_unit_onplace(struct skill_unit *unit, struct block_list *bl, un
|
|
break;
|
|
break;
|
|
|
|
|
|
case UNT_FIRE_EXPANSION_SMOKE_POWDER:
|
|
case UNT_FIRE_EXPANSION_SMOKE_POWDER:
|
|
- if (!sce && battle_check_target(&sg->unit->bl, bl, sg->target_flag) > 0)
|
|
|
|
|
|
+ if (!sce && battle_check_target(&unit->bl, bl, sg->target_flag) > 0)
|
|
sc_start(ss, bl, type, 100, sg->skill_lv, sg->limit);
|
|
sc_start(ss, bl, type, 100, sg->skill_lv, sg->limit);
|
|
break;
|
|
break;
|
|
|
|
|
|
case UNT_FIRE_EXPANSION_TEAR_GAS:
|
|
case UNT_FIRE_EXPANSION_TEAR_GAS:
|
|
- if (!sce && battle_check_target(&sg->unit->bl, bl, sg->target_flag) > 0)
|
|
|
|
|
|
+ if (!sce && battle_check_target(&unit->bl, bl, sg->target_flag) > 0)
|
|
if( sc_start4(ss, bl, type, 100, sg->skill_lv, 0, ss->id,0, sg->limit) )
|
|
if( sc_start4(ss, bl, type, 100, sg->skill_lv, 0, ss->id,0, sg->limit) )
|
|
sc_start(ss, bl, SC_TEARGAS_SOB, 100, sg->skill_lv, sg->limit);
|
|
sc_start(ss, bl, SC_TEARGAS_SOB, 100, sg->skill_lv, sg->limit);
|
|
break;
|
|
break;
|
|
@@ -12884,7 +12884,7 @@ static int skill_unit_onplace(struct skill_unit *unit, struct block_list *bl, un
|
|
case UNT_GD_GLORYWOUNDS:
|
|
case UNT_GD_GLORYWOUNDS:
|
|
case UNT_GD_SOULCOLD:
|
|
case UNT_GD_SOULCOLD:
|
|
case UNT_GD_HAWKEYES:
|
|
case UNT_GD_HAWKEYES:
|
|
- if ( !sce && battle_check_target(&sg->unit->bl, bl, sg->target_flag) > 0 )
|
|
|
|
|
|
+ if ( !sce && battle_check_target(&unit->bl, bl, sg->target_flag) > 0 )
|
|
sc_start4(ss, bl,type,100,sg->skill_lv,0,0,0,1000);
|
|
sc_start4(ss, bl,type,100,sg->skill_lv,0,0,0,1000);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
@@ -17739,7 +17739,7 @@ static int skill_unit_timer_sub(DBKey key, DBData *data, va_list ap)
|
|
struct block_list *src = map_id2bl(group->src_id);
|
|
struct block_list *src = map_id2bl(group->src_id);
|
|
struct status_change *sc;
|
|
struct status_change *sc;
|
|
if (src && (sc = status_get_sc(src)) != NULL && sc->data[SC__FEINTBOMB]) { // Copycat explodes if caster is still hidden.
|
|
if (src && (sc = status_get_sc(src)) != NULL && sc->data[SC__FEINTBOMB]) { // Copycat explodes if caster is still hidden.
|
|
- map_foreachinrange(skill_area_sub, &group->unit->bl, unit->range, splash_target(src), src, SC_FEINTBOMB, group->skill_lv, tick, BCT_ENEMY|SD_ANIMATION|1, skill_castend_damage_id);
|
|
|
|
|
|
+ map_foreachinrange(skill_area_sub, &unit->bl, unit->range, splash_target(src), src, SC_FEINTBOMB, group->skill_lv, tick, BCT_ENEMY|SD_ANIMATION|1, skill_castend_damage_id);
|
|
status_change_end(bl, SC__FEINTBOMB, INVALID_TIMER);
|
|
status_change_end(bl, SC__FEINTBOMB, INVALID_TIMER);
|
|
}
|
|
}
|
|
skill_delunit(unit);
|
|
skill_delunit(unit);
|
|
@@ -17899,15 +17899,15 @@ int skill_unit_move_sub(struct block_list* bl, va_list ap)
|
|
|
|
|
|
nullpo_ret(group = unit->group);
|
|
nullpo_ret(group = unit->group);
|
|
|
|
|
|
- if( flag&1 && ( unit->group->skill_id == PF_SPIDERWEB || unit->group->skill_id == GN_THORNS_TRAP ) )
|
|
|
|
|
|
+ if( flag&1 && ( group->skill_id == PF_SPIDERWEB || group->skill_id == GN_THORNS_TRAP ) )
|
|
return 0; // Fiberlock is never supposed to trigger on skill_unit_move. [Inkfish]
|
|
return 0; // Fiberlock is never supposed to trigger on skill_unit_move. [Inkfish]
|
|
|
|
|
|
dissonance = skill_dance_switch(unit, 0);
|
|
dissonance = skill_dance_switch(unit, 0);
|
|
|
|
|
|
//Necessary in case the group is deleted after calling on_place/on_out [Skotlex]
|
|
//Necessary in case the group is deleted after calling on_place/on_out [Skotlex]
|
|
- skill_id = unit->group->skill_id;
|
|
|
|
|
|
+ skill_id = group->skill_id;
|
|
|
|
|
|
- if( unit->group->interval != -1 && !(skill_get_unit_flag(skill_id)&UF_DUALMODE) && skill_id != BD_LULLABY ) //Lullaby is the exception, bugreport:411
|
|
|
|
|
|
+ if( group->interval != -1 && !(skill_get_unit_flag(skill_id)&UF_DUALMODE) && skill_id != BD_LULLABY ) //Lullaby is the exception, bugreport:411
|
|
{ //Non-dualmode unit skills with a timer don't trigger when walking, so just return
|
|
{ //Non-dualmode unit skills with a timer don't trigger when walking, so just return
|
|
if( dissonance ) {
|
|
if( dissonance ) {
|
|
skill_dance_switch(unit, 1);
|
|
skill_dance_switch(unit, 1);
|