summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSkotlex <Skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2011-08-10 16:53:47 +0000
committerSkotlex <Skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2011-08-10 16:53:47 +0000
commit9242fc277751e76f7f9204ff7fca98ce59e6de57 (patch)
tree87c81eb475f1ae4e639ceea30f4a3d90e0a4fdcf /src
parent09b2f259b86749e57b1179d795f19f495c5defab (diff)
downloadhercules-9242fc277751e76f7f9204ff7fca98ce59e6de57.tar.gz
hercules-9242fc277751e76f7f9204ff7fca98ce59e6de57.tar.bz2
hercules-9242fc277751e76f7f9204ff7fca98ce59e6de57.tar.xz
hercules-9242fc277751e76f7f9204ff7fca98ce59e6de57.zip
- added sending a dummy 0x08b9 packet in the char-server, required to support clients from this year.
- added a fix to status_heal to take into account that -int_max == int_max in some architectures, which leads to an infinite loop (bugreport:3410) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14930 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src')
-rw-r--r--src/char/char.c10
-rw-r--r--src/char_sql/char.c10
-rw-r--r--src/map/status.c2
3 files changed, 22 insertions, 0 deletions
diff --git a/src/char/char.c b/src/char/char.c
index 4c9e1fb7d..6e7100403 100644
--- a/src/char/char.c
+++ b/src/char/char.c
@@ -2223,6 +2223,16 @@ int parse_fromlogin(int fd)
{
// send characters to player
mmo_char_send006b(i, sd);
+#if PACKETVER >= 20110309
+ // PIN code system, disabled
+ WFIFOHEAD(i, 12);
+ WFIFOW(i, 0) = 0x08B9;
+ WFIFOW(i, 2) = 0;
+ WFIFOW(i, 4) = 0;
+ WFIFOL(i, 6) = sd->account_id;
+ WFIFOW(i, 10) = 0;
+ WFIFOSET(i, 12);
+#endif
}
}
RFIFOSKIP(fd,62);
diff --git a/src/char_sql/char.c b/src/char_sql/char.c
index 1844295b8..535338177 100644
--- a/src/char_sql/char.c
+++ b/src/char_sql/char.c
@@ -1942,6 +1942,16 @@ int parse_fromlogin(int fd)
{
// send characters to player
mmo_char_send006b(i, sd);
+#if PACKETVER >= 20110309
+ // PIN code system, disabled
+ WFIFOHEAD(i, 12);
+ WFIFOW(i, 0) = 0x08B9;
+ WFIFOW(i, 2) = 0;
+ WFIFOW(i, 4) = 0;
+ WFIFOL(i, 6) = sd->account_id;
+ WFIFOW(i, 10) = 0;
+ WFIFOSET(i, 12);
+#endif
}
}
RFIFOSKIP(fd,62);
diff --git a/src/map/status.c b/src/map/status.c
index 69f6757d0..33ad82eb3 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -869,6 +869,7 @@ int status_heal(struct block_list *bl,int hp,int sp, int flag)
sc = NULL;
if (hp < 0) {
+ if (hp == INT_MIN) hp++; //-INT_MIN == INT_MIN in some architectures!
status_damage(NULL, bl, -hp, 0, 0, 1);
hp = 0;
}
@@ -882,6 +883,7 @@ int status_heal(struct block_list *bl,int hp,int sp, int flag)
}
if(sp < 0) {
+ if (sp==INT_MIN) sp++;
status_damage(NULL, bl, 0, -sp, 0, 1);
sp = 0;
}