summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-11-28 19:48:24 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-11-28 19:48:24 +0000
commit1aabb60a820129e5abc2aa12e7e8e78badf4b83e (patch)
treee3da28cadbfa3b0865eee6319b797b18fc96a380
parent0b0a39e39623321141c51115214a1b5233fd7b1d (diff)
downloadhercules-1aabb60a820129e5abc2aa12e7e8e78badf4b83e.tar.gz
hercules-1aabb60a820129e5abc2aa12e7e8e78badf4b83e.tar.bz2
hercules-1aabb60a820129e5abc2aa12e7e8e78badf4b83e.tar.xz
hercules-1aabb60a820129e5abc2aa12e7e8e78badf4b83e.zip
- Reverted the previous SG freeze counter method. Now the counter is reset on status_change_clear.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9351 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r--src/map/skill.c8
-rw-r--r--src/map/status.c11
2 files changed, 10 insertions, 9 deletions
diff --git a/src/map/skill.c b/src/map/skill.c
index 60153cfb5..413431c5e 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -1117,13 +1117,7 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int
break;
case WZ_STORMGUST:
- if (tsc->data[SC_FREEZE].val2 == src->id)
- tsc->data[SC_FREEZE].val3++; //Repeated hits from same SG
- else { //New SG, reset count
- tsc->data[SC_FREEZE].val2 = src->id;
- tsc->data[SC_FREEZE].val3 = 1;
- }
-
+ 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;
diff --git a/src/map/status.c b/src/map/status.c
index 0abff57a9..51914dede 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -5894,11 +5894,18 @@ int status_change_clear(struct block_list *bl,int type)
sc = status_get_sc(bl);
- if (!sc || sc->count == 0)
+ if (!sc)
+ return 0;
+
+ if (sc->data[SC_FREEZE].val3)
+ sc->data[SC_FREEZE].val3 = 0; //Reset freeze counter.
+
+ if (!sc->count)
return 0;
if(sc->data[SC_DANCING].timer != -1)
skill_stop_dancing(bl);
+
for(i = 0; i < SC_MAX; i++)
{
if(sc->data[i].timer == -1)
@@ -6138,7 +6145,7 @@ int status_change_end( struct block_list* bl , int type,int tid )
break;
case SC_FREEZE:
- sc->data[type].val2 = 0; //Clear ID of SG caster
+ sc->data[type].val3 = 0; //Clear Storm Gust hit count
break;
case SC_MARIONETTE: