|
@@ -13365,7 +13365,7 @@ int skill_unit_onplace_timer(struct skill_unit *unit, struct block_list *bl, uns
|
|
struct block_list *ss;
|
|
struct block_list *ss;
|
|
TBL_PC* tsd;
|
|
TBL_PC* tsd;
|
|
struct status_data *tstatus;
|
|
struct status_data *tstatus;
|
|
- struct status_change *tsc;
|
|
|
|
|
|
+ struct status_change *sc, *tsc;
|
|
struct skill_unit_group_tickset *ts;
|
|
struct skill_unit_group_tickset *ts;
|
|
enum sc_type type;
|
|
enum sc_type type;
|
|
uint16 skill_id;
|
|
uint16 skill_id;
|
|
@@ -13382,10 +13382,14 @@ int skill_unit_onplace_timer(struct skill_unit *unit, struct block_list *bl, uns
|
|
|
|
|
|
tsd = BL_CAST(BL_PC, bl);
|
|
tsd = BL_CAST(BL_PC, bl);
|
|
tsc = status_get_sc(bl);
|
|
tsc = status_get_sc(bl);
|
|
|
|
+ sc = status_get_sc(ss);
|
|
tstatus = status_get_status_data(bl);
|
|
tstatus = status_get_status_data(bl);
|
|
type = status_skill2sc(sg->skill_id);
|
|
type = status_skill2sc(sg->skill_id);
|
|
skill_id = sg->skill_id;
|
|
skill_id = sg->skill_id;
|
|
|
|
|
|
|
|
+ if (sc && sc->data[SC_VOICEOFSIREN] && sc->data[SC_VOICEOFSIREN]->val2 == bl->id && (skill_get_inf2(skill_id)&INF2_TRAP))
|
|
|
|
+ return 0; // Traps cannot be activated by the Maestro or Wanderer that enticed the trapper with this skill.
|
|
|
|
+
|
|
if (tsc && tsc->data[SC_HOVERING] && skill_get_inf3(skill_id)&INF3_NO_EFF_HOVERING)
|
|
if (tsc && tsc->data[SC_HOVERING] && skill_get_inf3(skill_id)&INF3_NO_EFF_HOVERING)
|
|
return 0; // Under Hovering characters are immune to trap and ground target skills.
|
|
return 0; // Under Hovering characters are immune to trap and ground target skills.
|
|
|
|
|