summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-11-28 13:42:49 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-11-28 13:42:49 +0000
commit6a9d17e48f65570c8504e862cfeb8fe3822a59c8 (patch)
tree1f093166197f6bc810ff54dbff110772bda6338e /src/map
parent434c36b4267b2665780f1afbee2b7d7118bc3c01 (diff)
downloadhercules-6a9d17e48f65570c8504e862cfeb8fe3822a59c8.tar.gz
hercules-6a9d17e48f65570c8504e862cfeb8fe3822a59c8.tar.bz2
hercules-6a9d17e48f65570c8504e862cfeb8fe3822a59c8.tar.xz
hercules-6a9d17e48f65570c8504e862cfeb8fe3822a59c8.zip
- Modified the way Storm Gust freeze's counter works. Now it checks for the caster of the Storm Gust, if it's the same as the previous hit, the counter is increased, otherwise, the ID is updated and the counter is changed to 1.
- Fixed always receiving at least 1 bexp/jexp even when the mob gives no exp at all. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9345 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map')
-rw-r--r--src/map/mob.c4
-rw-r--r--src/map/skill.c8
-rw-r--r--src/map/status.c2
3 files changed, 10 insertions, 4 deletions
diff --git a/src/map/mob.c b/src/map/mob.c
index 927c180a6..bce62d938 100644
--- a/src/map/mob.c
+++ b/src/map/mob.c
@@ -1842,7 +1842,7 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type)
}
jper = per;
- if (map[md->bl.m].flag.nobaseexp)
+ if (map[md->bl.m].flag.nobaseexp || !md->db->base_exp)
base_exp=0;
else {
temp = bonus; //Do not alter bonus for the jExp section below.
@@ -1862,7 +1862,7 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type)
base_exp = 1;
}
//Homun earned job-exp is always lost.
- if (map[md->bl.m].flag.nojobexp || md->dmglog[i].flag)
+ if (map[md->bl.m].flag.nojobexp || !md->db->job_exp || md->dmglog[i].flag)
job_exp=0;
else {
if (map[md->bl.m].jexp != 100)
diff --git a/src/map/skill.c b/src/map/skill.c
index 0f78fe32a..ee3619822 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -1117,7 +1117,13 @@ 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].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;
+ }
+
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 adb35c32d..306273087 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -6134,7 +6134,7 @@ int status_change_end( struct block_list* bl , int type,int tid )
break;
case SC_FREEZE:
- sc->data[type].val3 = 0; //Clear Storm Gust hit count
+ sc->data[type].val2 = 0; //Clear ID of SG caster
break;
case SC_MARIONETTE: