|
@@ -3015,7 +3015,7 @@ int64 skill_attack (int attack_type, struct block_list* src, struct block_list *
|
|
|
dmg = battle_calc_attack(attack_type,src,bl,skill_id,skill_lv,flag&0xFFF);
|
|
|
|
|
|
//If the damage source is a unit, the damage is not delayed
|
|
|
- if (src != dsrc)
|
|
|
+ if (src != dsrc && skill_id != GS_GROUNDDRIFT)
|
|
|
dmg.amotion = 0;
|
|
|
|
|
|
//! CHECKME: This check maybe breaks the battle_calc_attack, and maybe need better calculation.
|
|
@@ -13641,7 +13641,7 @@ int skill_unit_onplace_timer(struct skill_unit *unit, struct block_list *bl, uns
|
|
|
&unit->bl,tick);
|
|
|
sg->unit_id = UNT_USED_TRAPS;
|
|
|
//clif_changetraplook(&src->bl, UNT_FIREPILLAR_ACTIVE);
|
|
|
- sg->limit=DIFF_TICK(tick,sg->tick)+1500;
|
|
|
+ sg->limit=DIFF_TICK(tick,sg->tick);
|
|
|
break;
|
|
|
|
|
|
case UNT_POISONSMOKE:
|
|
@@ -17003,23 +17003,23 @@ static int skill_trap_splash(struct block_list *bl, va_list ap)
|
|
|
skill_additional_effect(ss,bl,sg->skill_id,sg->skill_lv,BF_MISC,ATK_DEF,tick);
|
|
|
break;
|
|
|
case UNT_GROUNDDRIFT_WIND:
|
|
|
- if(skill_attack(BF_MISC,ss,src,bl,sg->skill_id,sg->skill_lv,tick,sg->val1))
|
|
|
- sc_start(ss,bl,SC_STUN,5,sg->skill_lv,skill_get_time2(sg->skill_id, sg->skill_lv));
|
|
|
+ if(skill_attack(skill_get_type(sg->skill_id),ss,src,bl,sg->skill_id,sg->skill_lv,tick,sg->val1))
|
|
|
+ sc_start(ss,bl,SC_STUN,50,sg->skill_lv,skill_get_time2(sg->skill_id, 1));
|
|
|
break;
|
|
|
case UNT_GROUNDDRIFT_DARK:
|
|
|
- if(skill_attack(BF_MISC,ss,src,bl,sg->skill_id,sg->skill_lv,tick,sg->val1))
|
|
|
- sc_start(ss,bl,SC_BLIND,5,sg->skill_lv,skill_get_time2(sg->skill_id, sg->skill_lv));
|
|
|
+ if(skill_attack(skill_get_type(sg->skill_id),ss,src,bl,sg->skill_id,sg->skill_lv,tick,sg->val1))
|
|
|
+ sc_start(ss,bl,SC_BLIND,50,sg->skill_lv,skill_get_time2(sg->skill_id, 2));
|
|
|
break;
|
|
|
case UNT_GROUNDDRIFT_POISON:
|
|
|
- if(skill_attack(BF_MISC,ss,src,bl,sg->skill_id,sg->skill_lv,tick,sg->val1))
|
|
|
- sc_start2(ss,bl,SC_POISON,5,sg->skill_lv,ss->id,skill_get_time2(sg->skill_id, sg->skill_lv));
|
|
|
+ if(skill_attack(skill_get_type(sg->skill_id),ss,src,bl,sg->skill_id,sg->skill_lv,tick,sg->val1))
|
|
|
+ sc_start2(ss,bl,SC_POISON,50,sg->skill_lv,ss->id,skill_get_time2(sg->skill_id, 3));
|
|
|
break;
|
|
|
case UNT_GROUNDDRIFT_WATER:
|
|
|
- if(skill_attack(BF_MISC,ss,src,bl,sg->skill_id,sg->skill_lv,tick,sg->val1))
|
|
|
- sc_start(ss,bl,SC_FREEZE,5,sg->skill_lv,skill_get_time2(sg->skill_id, sg->skill_lv));
|
|
|
+ if(skill_attack(skill_get_type(sg->skill_id),ss,src,bl,sg->skill_id,sg->skill_lv,tick,sg->val1))
|
|
|
+ sc_start(ss,bl,SC_FREEZE,50,sg->skill_lv,skill_get_time2(sg->skill_id, 4));
|
|
|
break;
|
|
|
case UNT_GROUNDDRIFT_FIRE:
|
|
|
- if(skill_attack(BF_MISC,ss,src,bl,sg->skill_id,sg->skill_lv,tick,sg->val1))
|
|
|
+ if(skill_attack(skill_get_type(sg->skill_id),ss,src,bl,sg->skill_id,sg->skill_lv,tick,sg->val1))
|
|
|
skill_blown(src,bl,skill_get_blewcount(sg->skill_id,sg->skill_lv),-1,0);
|
|
|
break;
|
|
|
case UNT_ELECTRICSHOCKER:
|