- 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://svn.code.sf.net/p/rathena/svn/trunk@9345 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
skotlex 2006-11-28 13:42:49 +00:00
parent 1e8a3bcd3f
commit b06ebc1719
4 changed files with 16 additions and 4 deletions

View File

@ -4,6 +4,12 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2006/11/28
* 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.
[Skotlex]
* Fixed always receiving at least 1 bexp/jexp even when the mob gives no
exp at all. [Skotlex]
* Changed write to send as suggested by TheUltraMage in:
http://www.eathena.ws/board/index.php?showtopic=105417
Hopefully that will take care of the SIGPIPE problem in Debian and cygwin. [FlavioJS]

View File

@ -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)

View File

@ -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;

View File

@ -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: