Index: db/packet_db.txt =================================================================== --- db/packet_db.txt (revision 17361) +++ db/packet_db.txt (working copy) @@ -1784,7 +1784,7 @@ //2012-06-18 packet_ver: 32 0x0983,29 -0x0861,18,bookingregreq,2:4:6 //actually 05-03 +0x0861,18,bookingregreq,2:4:6 //actually 12-05-03 //2012-07-02aRagexeRE (unstable) packet_ver: 33 Index: conf/battle/client.conf =================================================================== --- conf/battle/client.conf (revision 17361) +++ conf/battle/client.conf (working copy) @@ -12,26 +12,44 @@ // Set here which client version do you accept. Add all values of clients: // Clients older than accepted versions, and versions not set to 'accepted' // here will be rejected when logging in -// 0x00001: Clients older than 2004-09-06aSakray (packet versions 5-9) -// 0x00002: 2004-09-06aSakexe (version 10) -// 0x00004: 2004-09-20aSakexe (version 11) -// 0x00008: 2004-10-05aSakexe (version 12) -// 0x00010: 2004-10-25aSakexe (version 13) -// 0x00020: 2004-11-29aSakexe (version 14) -// 0x00040: 2005-01-10bSakexe (version 15) -// 0x00080: 2005-05-09aSakexe (version 16) -// 0x00100: 2005-06-28aSakexe (version 17) -// 0x00200: 2005-07-18aSakexe (version 18) -// 0x00400: 2005-07-19bSakexe (version 19) -// 0x00800: 2006-03-27aSakexe (version 20) -// 0x01000: 2007-01-08aSakexe (version 21) -// 0x02000: 2007-02-12aSakexe (version 22) -// 0x04000: 2008-09-10aSakexe (version 23) -// 0x08000: 2008-08-27aRagexeRE (version 24) -// 0x10000: 2008-09-10aRagexeRE (version 25) -// default value: 0xFFFFFFF (all clients) -packet_ver_flag: 0xFFFFFFF +// 0x00000001: Clients older than 2004-09-06aSakray (packet versions 5-9) +// 0x00000002: 2004-09-06 aSakexe (version 10) +// 0x00000004: 2004-09-20 aSakexe (version 11) +// 0x00000008: 2004-10-05 aSakexe (version 12) +// 0x00000010: 2004-10-25 aSakexe (version 13) +// 0x00000020: 2004-11-29 aSakexe (version 14) +// 0x00000040: 2005-01-10 bSakexe (version 15) +// 0x00000080: 2005-05-09 aSakexe (version 16) +// 0x00000100: 2005-06-28 aSakexe (version 17) +// 0x00000200: 2005-07-18 aSakexe (version 18) +// 0x00000400: 2005-07-19 bSakexe (version 19) +// 0x00000800: 2006-03-27 aSakexe (version 20) +// 0x00001000: 2007-01-08 aSakexe (version 21) +// 0x00002000: 2007-02-12 aSakexe (version 22) +// 0x00004000: 2008-09-10 aSakexe (version 23) +// 0x00008000: 2008-08-27 aRagexeRE (version 24) +// 0x00010000: 2008-09-10 aRagexeRE (version 25) +// 0x00020000: 2010-11-24 aRagexeRE (version 26) +// 0x00040000: 2011-10-05 aRagexeRE (version 27) +// 0x00080000: 2011-11-02 aRagexe (version 28) +// 0x00100000: 2012-03-07 fRagexeRE (version 29) +// 0x00200000: 2012-04-10 aRagexeRE (version 30) +// 0x00400000: 2012-04-18 aRagexeRE (version 31) +// 0x00800000: 2012-06-18 unknow (version 32) +// 0x01000000: 2012-07-02 aRagexeRE (version 33) +// 0x02000000: 2013-03-20 Ragexe (version 34) +// 0x04000000: 2013-05-15 aRagexe (version 35) +// 0x08000000: 2013-05-22 Ragexe (version 36) +// 0x10000000: 2013-05-29 Ragexe (version 37) +// 0x20000000: 2013-06-05 Ragexe (version 38) +// 0x40000000: 2013-06-12 Ragexe (version 39) +// default value: 0xFFFFFFFF (all clients/version) +packet_ver_flag: 0xFFFFFFFF +// 0x00000001: 2013-06-26 Ragexe (version 41) +// default value: 0xFFFFFFFF (all clients/version) +packet_ver_flag2: 0xFFFFFFFF + // Minimum delay between whisper/global/party/guild messages (in ms) // Messages that break this threshold are silently omitted. min_chat_delay: 0 Index: src/map/clif.c =================================================================== --- src/map/clif.c (revision 17361) +++ src/map/clif.c (working copy) @@ -721,7 +721,7 @@ /// Makes an item appear on the ground. /// 009e .L .W .B .W .W .B .B .W (ZC_ITEM_FALL_ENTRY) -/// 084b(2013) .L .W .W .B .W .W .B .B .W (ZC_ITEM_FALL_ENTRY4) +/// 084b .L .W .W .B .W .W .B .B .W (ZC_ITEM_FALL_ENTRY4) void clif_dropflooritem(struct flooritem_data* fitem) { #if PACKETVER >= 20130000 @@ -9061,8 +9063,9 @@ sex = RFIFOB(fd, packet_db[packet_ver][cmd].pos[4]); if( packet_ver < 5 || // reject really old client versions - (packet_ver <= 9 && (battle_config.packet_ver_flag & 1) == 0) || // older than 6sept04 - (packet_ver > 9 && (battle_config.packet_ver_flag & 1<<(packet_ver-9)) == 0)) // version not allowed + (packet_ver <= 9 && (battle_config.packet_ver_flag & 1) == 0) || // older than 6sept04 + (packet_ver > 9 && packet_ver <41 (battle_config.packet_ver_flag & 1<<(packet_ver-9)) == 0) || // version not allowed + (packet_ver >= 41 && packet_ver <=72 (battle_config.packet_ver_flag2 & 1<<(packet_ver-41)) == 0) ) {// packet version rejected ShowInfo("Rejected connection attempt, forbidden packet version (AID/CID: '"CL_WHITE"%d/%d"CL_RESET"', Packet Ver: '"CL_WHITE"%d"CL_RESET"', IP: '"CL_WHITE"%s"CL_RESET"').\n", account_id, char_id, packet_ver, ip2str(session[fd]->client_addr, NULL)); WFIFOHEAD(fd,packet_len(0x6a)); Index: src/map/battle.c =================================================================== --- src/map/battle.c (revision 17361) +++ src/map/battle.c (working copy) @@ -5812,7 +5812,8 @@ { "night_at_start", &battle_config.night_at_start, 0, 0, 1, }, { "show_mob_info", &battle_config.show_mob_info, 0, 0, 1|2|4, }, { "ban_hack_trade", &battle_config.ban_hack_trade, 0, 0, INT_MAX, }, - { "packet_ver_flag", &battle_config.packet_ver_flag, 0xFFFFFF,0x0000,INT_MAX, }, + { "packet_ver_flag", &battle_config.packet_ver_flag, 0xFFFFFFFF,0x0000,INT_MAX, }, + { "packet_ver_flag2", &battle_config.packet_ver_flag2, 0xFFFFFFFF,0x0000,INT_MAX, }, { "min_hair_style", &battle_config.min_hair_style, 0, 0, INT_MAX, }, { "max_hair_style", &battle_config.max_hair_style, 23, 0, INT_MAX, }, { "min_hair_color", &battle_config.min_hair_color, 0, 0, INT_MAX, }, Index: src/map/battle.h =================================================================== --- src/map/battle.h (revision 17361) +++ src/map/battle.h (working copy) @@ -337,6 +337,7 @@ int night_duration; // added by [Yor] int ban_hack_trade; // added by [Yor] int packet_ver_flag; // added by [Yor] + int packet_ver_flag2; // expend of packet_ver_flag int min_hair_style; // added by [MouseJstr] int max_hair_style; // added by [MouseJstr]