summaryrefslogtreecommitdiff
path: root/src/map/clif.c
diff options
context:
space:
mode:
authorcelest <celest@54d463be-8e91-2dee-dedb-b68131a5f0ec>2005-03-11 03:10:55 +0000
committercelest <celest@54d463be-8e91-2dee-dedb-b68131a5f0ec>2005-03-11 03:10:55 +0000
commit0c6df6d9aeb990235b65e4f33f6fdc2cb8d3fc03 (patch)
tree4b5031fe7da93ec44b0004c16baae5c8762333c4 /src/map/clif.c
parent114199854324d9d3ef203fecc6969c747e22404d (diff)
downloadhercules-0c6df6d9aeb990235b65e4f33f6fdc2cb8d3fc03.tar.gz
hercules-0c6df6d9aeb990235b65e4f33f6fdc2cb8d3fc03.tar.bz2
hercules-0c6df6d9aeb990235b65e4f33f6fdc2cb8d3fc03.tar.xz
hercules-0c6df6d9aeb990235b65e4f33f6fdc2cb8d3fc03.zip
* Updated Breaker, Cloaking
* Corrected 1206Sakexe's packet detection git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/branches/stable@1222 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/clif.c')
-rw-r--r--src/map/clif.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/map/clif.c b/src/map/clif.c
index 23db11c50..93a84a9ea 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -7366,10 +7366,11 @@ void clif_parse_WantToConnection(int fd, struct map_session_data *sd)
account_id = RFIFOL(fd,12);
else if (RFIFOREST(fd) >= 32 && (RFIFOB(fd,31) == 0 || RFIFOB(fd,31) == 1)) // 00 = Female, 01 = Male
account_id = RFIFOL(fd,10);
- else { // 29 28 28
- /*if (RFIFOW(fd,1) == 0) // testing ^^;
+ else { // 29 28 28 // search correct value
+ // if account id and char id of version 14
+ if (RFIFOL(fd,3) > 700000 && RFIFOL(fd,10) >= 150000 && RFIFOL(fd,10) < 5000000) // account id / char id (more than 5.000.000 characters?) [Yor]
account_id = RFIFOL(fd,3);
- else*/
+ else
account_id = RFIFOL(fd,5);
}
// 0x9B
@@ -7427,7 +7428,8 @@ void clif_parse_WantToConnection(int fd, struct map_session_data *sd)
sd->packet_ver = 11; // 5: old, 6: 7july04, 7: 13july04, 8: 26july04, 9: 9aug04/16aug04/17aug04, 10: 6sept04, 11: 21sept04, 12: 18oct04, 13: 25oct04 (by [Yor])
pc_setnewpc(sd, account_id, RFIFOL(fd,17), RFIFOL(fd,23), RFIFOL(fd,27), RFIFOB(fd,31), fd);
} else { // 29
- if (RFIFOW(fd,1) == 0) {
+ // if account id and char id of version 14
+ if (RFIFOL(fd,3) > 700000 && RFIFOL(fd,10) >= 150000 && RFIFOL(fd,10) < 5000000) { // account id / char id (more than 5.000.000 characters?)
sd->packet_ver = 15; // 5: old, 6: 7july04, 7: 13july04, 8: 26july04, 9: 9aug04/16aug04/17aug04, 10: 6sept04, 11: 21sept04, 12: 18oct04, 13: 25oct04 (by [Yor])
pc_setnewpc(sd, account_id, RFIFOL(fd,10), RFIFOL(fd,20), RFIFOL(fd,24), RFIFOB(fd,28), fd);
} else {
@@ -10707,12 +10709,11 @@ static int clif_parse(int fd) {
else if (RFIFOREST(fd) >= 32 && (RFIFOB(fd,31) == 0 || RFIFOB(fd,31) == 1)) // 00 = Female, 01 = Male
packet_ver = 11; // 11: 21sept04
else if (RFIFOREST(fd) >= 29 && (RFIFOB(fd,28) == 0 || RFIFOB(fd,28) == 1)) { // 00 = Female, 01 = Male
- /*if (RFIFOW(fd,1) == 0) // testing ^^;
- packet_ver = 15;
- else*/
+ if (RFIFOL(fd,3) > 700000 && RFIFOL(fd,10) >= 150000 && RFIFOL(fd,10) < 5000000) // account id / char id (more than 5.000.000 characters?) [Yor]
+ packet_ver = 15; // 14: 6dec04
+ else
packet_ver = 13; // 13: 25oct04 (by [Yor])
}
- // -- some way to identify version 14 and 15? --
// else probably incomplete packet
else if (RFIFOREST(fd) < 29)
return 0;