summaryrefslogtreecommitdiff
path: root/src/map/skill.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/skill.c')
-rw-r--r--src/map/skill.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/map/skill.c b/src/map/skill.c
index c31ec78cf..6567cfa4a 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -1117,7 +1117,6 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int
break;
case WZ_STORMGUST:
- tsc->data[SC_FREEZE].val3++;
if(tsc->data[SC_FREEZE].val3 >= 3) //Tharis pointed out that this is normal freeze chance with a base of 300%
sc_start(bl,SC_FREEZE,300,skilllv,skill_get_time2(skillid,skilllv));
break;
@@ -7121,7 +7120,19 @@ int skill_unit_onplace_timer (struct skill_unit *src, struct block_list *bl, uns
//Otherwise, Knockback attack.
skill_attack(BF_WEAPON,ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,0);
break;
-
+ case WZ_STORMGUST:
+ if (tsc)
+ { //This should be safe as skill_additional_effect
+ //won't be triggered if the attack is absorbed. [Skotlex]
+ //And if the target is already frozen,
+ //the counter is reset when it ends.
+ if (tsc->data[SC_FREEZE].val4 == sg->group_id)
+ tsc->data[SC_FREEZE].val3++; //SG hit counter.
+ else { //New SG
+ tsc->data[SC_FREEZE].val4 = sg->group_id;
+ tsc->data[SC_FREEZE].val3 = 1;
+ }
+ }
default:
skill_attack(skill_get_type(sg->skill_id),ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,0);
}