From 5e0b18ca7746b006f9a4fe64a706959af878a5f6 Mon Sep 17 00:00:00 2001 From: mekolat Date: Tue, 2 Jun 2015 07:03:38 -0400 Subject: do not send new stuff to old clients --- src/map/clif.cpp | 13 ++++++++----- src/mmo/version.hpp | 3 +++ 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/map/clif.cpp b/src/map/clif.cpp index 8c8b853..015c703 100644 --- a/src/map/clif.cpp +++ b/src/map/clif.cpp @@ -842,7 +842,7 @@ void clif_0225_being_move3_sub(dumb_ptr bl, const Buffer& buf) if (sd->sess != nullptr) { - if(sd->client_version >= 3) + if(sd->client_version >= 3) // require 1.5.5.23 or above { send_buffer(sd->sess, buf); } @@ -2054,7 +2054,7 @@ void clif_map_pvp(dumb_ptr sd) { nullpo_retv(sd); - if (sd->client_version < 3) + if (sd->client_version < 2) // require 1.5.5.9 or above return; Packet_Fixed<0x0199> fixed_199; @@ -2068,6 +2068,9 @@ void clif_pvpstatus(dumb_ptr sd) { nullpo_retv(sd); + if (sd->client_version < 2) // require 1.5.5.9 or above + return; + Packet_Fixed<0x019a> fixed_19a; fixed_19a.block_id = sd->bl_id; fixed_19a.rank = sd->state.pvp_rank; @@ -2716,7 +2719,7 @@ void clif_skillinfoblock(dumb_ptr sd) std::vector> repeat_10f; for (SkillID i : erange(SkillID(), MAX_SKILL)) { - if (sd->status.skill[i].lv && sd->client_version >= 1) + if (sd->status.skill[i].lv) { Packet_Repeat<0x010f> info; // [Fate] Version 1 and later don't crash because of bad skill IDs anymore @@ -4848,7 +4851,7 @@ void clif_sendallquest(dumb_ptr sd) if (!sd->sess) return; - if(sd->client_version < 2) + if(sd->client_version < 2) // require 1.5.5.9 or above return; Session *s = sd->sess; @@ -4885,7 +4888,7 @@ void clif_sendquest(dumb_ptr sd, QuestId questid, int value) if (!sd->sess) return; - if(sd->client_version < 2) + if(sd->client_version < 2) // require 1.5.5.9 or above return; Session *s = sd->sess; diff --git a/src/mmo/version.hpp b/src/mmo/version.hpp index 6de3a9c..20cb1d9 100644 --- a/src/mmo/version.hpp +++ b/src/mmo/version.hpp @@ -36,6 +36,9 @@ namespace tmwa #define TMWA_SERVER_MAP 0x08 // increase the min version when the protocol is incompatible with old m+ versions +// 1 = latest mana, old manaplus, bots +// 2 = manaplus 1.5.5.9 and above +// 3 = manaplus 1.5.5.23 and above #define MIN_CLIENT_VERSION 1 // TODO now that I generate the protocol, split 'flags' out of the struct -- cgit v1.2.3-60-g2f50