summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormekolat <mekolat@users.noreply.github.com>2015-06-02 07:03:38 -0400
committermekolat <mekolat@users.noreply.github.com>2015-06-16 12:15:35 -0400
commit5e0b18ca7746b006f9a4fe64a706959af878a5f6 (patch)
tree45af02cf0dfb974acfad8c9bd1db0f442a8ddf30
parenta8c5e27698455abbf24da88d487c9f4c8887ea5c (diff)
downloadtmwa-5e0b18ca7746b006f9a4fe64a706959af878a5f6.tar.gz
tmwa-5e0b18ca7746b006f9a4fe64a706959af878a5f6.tar.bz2
tmwa-5e0b18ca7746b006f9a4fe64a706959af878a5f6.tar.xz
tmwa-5e0b18ca7746b006f9a4fe64a706959af878a5f6.zip
do not send new stuff to old clients
-rw-r--r--src/map/clif.cpp13
-rw-r--r--src/mmo/version.hpp3
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<block_list> 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<map_session_data> 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<map_session_data> 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<map_session_data> sd)
std::vector<Packet_Repeat<0x010f>> 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<map_session_data> 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<map_session_data> 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