diff options
author | ultramage <ultramage@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2008-05-28 11:00:55 +0000 |
---|---|---|
committer | ultramage <ultramage@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2008-05-28 11:00:55 +0000 |
commit | 9d4f34b6e4d0b7907f3eba1f7dd6e887ed7e85b3 (patch) | |
tree | b5a0c82ccd2dba68b7b19262732788afbe2239c5 | |
parent | 267ca3ca3c0703be39348d3a0ae1dffa1bce4329 (diff) | |
download | hercules-9d4f34b6e4d0b7907f3eba1f7dd6e887ed7e85b3.tar.gz hercules-9d4f34b6e4d0b7907f3eba1f7dd6e887ed7e85b3.tar.bz2 hercules-9d4f34b6e4d0b7907f3eba1f7dd6e887ed7e85b3.tar.xz hercules-9d4f34b6e4d0b7907f3eba1f7dd6e887ed7e85b3.zip |
Fixed stat values displaying incorrectly when increasing them past 255 (wraparound, ack packet only has 1 byte).
Reordered the packets so that a status update for the increased stat is sent immediately after the buggy ack packet.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12737 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r-- | Changelog-Trunk.txt | 3 | ||||
-rw-r--r-- | src/map/clif.c | 2 | ||||
-rw-r--r-- | src/map/pc.c | 8 |
3 files changed, 8 insertions, 5 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index dd6514e84..8bb94c81c 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -3,6 +3,9 @@ Date Added AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK. IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. +2008/05/28 + * Fixed stat values displaying incorrectly when increasing them + past 255 (wraparound, ack packet only has 1 byte) [ultramage] 2008/05/26 * Updating configure script: [FlavioJS] - fixed memory manager using the argument of the last enable/disable option (any option) diff --git a/src/map/clif.c b/src/map/clif.c index 71742011d..fab7605ae 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -2612,7 +2612,7 @@ int clif_statusupack(struct map_session_data *sd,int type,int ok,int val) WFIFOW(fd,0)=0xbc; WFIFOW(fd,2)=type; WFIFOB(fd,4)=ok; - WFIFOB(fd,5)=val; + WFIFOB(fd,5)=cap_value(val,0,UCHAR_MAX); WFIFOSET(fd,packet_len(0xbc)); return 0; diff --git a/src/map/pc.c b/src/map/pc.c index c98016418..8f0bb9b63 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -4493,13 +4493,13 @@ int pc_statusup(struct map_session_data *sd,int type) } sd->status.status_point-=need; - if(need!=pc_need_status_point(sd,type)){ + status_calc_pc(sd,0); + + if( need != pc_need_status_point(sd,type) ) clif_updatestatus(sd,type-SP_STR+SP_USTR); - } clif_updatestatus(sd,SP_STATUSPOINT); - clif_updatestatus(sd,type); - status_calc_pc(sd,0); clif_statusupack(sd,type,1,val); + clif_updatestatus(sd,type); // send after the 'ack' to override the value return 0; } |