summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorultramage <ultramage@54d463be-8e91-2dee-dedb-b68131a5f0ec>2008-05-28 11:00:55 +0000
committerultramage <ultramage@54d463be-8e91-2dee-dedb-b68131a5f0ec>2008-05-28 11:00:55 +0000
commit9d4f34b6e4d0b7907f3eba1f7dd6e887ed7e85b3 (patch)
treeb5a0c82ccd2dba68b7b19262732788afbe2239c5
parent267ca3ca3c0703be39348d3a0ae1dffa1bce4329 (diff)
downloadhercules-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.txt3
-rw-r--r--src/map/clif.c2
-rw-r--r--src/map/pc.c8
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;
}