diff options
Diffstat (limited to 'src/map/skill.c')
-rw-r--r-- | src/map/skill.c | 15 |
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); } |