From cf81cc1f447ed101ed2e7e89971c6e3564543c6f Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Tue, 30 Sep 2014 12:10:53 +0300 Subject: eathena: add more reasons in processConnectionProblem. --- src/net/eathena/generalhandler.cpp | 135 +++++++++++++++++++++++++++---------- src/net/eathena/generalhandler.h | 2 + 2 files changed, 103 insertions(+), 34 deletions(-) diff --git a/src/net/eathena/generalhandler.cpp b/src/net/eathena/generalhandler.cpp index 2b5da81e4..0d7a551ea 100644 --- a/src/net/eathena/generalhandler.cpp +++ b/src/net/eathena/generalhandler.cpp @@ -141,47 +141,114 @@ void GeneralHandler::handleMessage(Net::MessageIn &msg) switch (msg.getId()) { case SMSG_CONNECTION_PROBLEM: - { - const uint8_t code = msg.readUInt8(); - logger->log("Connection problem: %u", - static_cast(code)); + processConnectionProblem(msg); + break; + + default: + break; + } +} + +void GeneralHandler::processConnectionProblem(Net::MessageIn &msg) +{ + const uint8_t code = msg.readUInt8(); + logger->log("Connection problem: %u", static_cast(code)); - switch (code) + switch (code) + { + case 0: + errorMessage = _("Authentication failed."); + break; + case 1: + errorMessage = _("No servers available."); + break; + case 2: + if (client->getState() == STATE_GAME) + { + errorMessage = _("Someone else is trying to use " + "this account."); + } + else { - case 0: - errorMessage = _("Authentication failed."); - break; - case 1: - errorMessage = _("No servers available."); - break; - case 2: - if (client->getState() == STATE_GAME) - { - errorMessage = _("Someone else is trying to use this " - "account."); - } - else - { - errorMessage = _("This account is already logged in."); - } - break; - case 3: - errorMessage = _("Speed hack detected."); - break; - case 8: - errorMessage = _("Duplicated login."); - break; - default: - errorMessage = _("Unknown connection error."); - break; + errorMessage = _("This account is already logged in."); } - client->setState(STATE_ERROR); break; - } - + case 3: + errorMessage = _("Speed hack detected."); + break; + case 4: + errorMessage = _("Server full."); + break; + case 5: + errorMessage = _("Sorry, you are underaged."); + break; + case 8: + errorMessage = _("Duplicated login."); + break; + case 9: + errorMessage = _("To many connections from same ip."); + break; + case 10: + errorMessage = _("Not paid for this time."); + break; + case 11: + errorMessage = _("Pay suspended."); + break; + case 12: + errorMessage = _("Pay changed."); + break; + case 13: + errorMessage = _("Pay wrong ip."); + break; + case 14: + errorMessage = _("Pay game room."); + break; + case 15: + errorMessage = _("Disconnect forced by GM."); + break; + case 16: + case 17: + errorMessage = _("Ban japan refuse."); + break; + case 18: + errorMessage = _("Remained other account."); + break; + case 100: + errorMessage = _("Ip unfair."); + break; + case 101: + errorMessage = _("Ip count all."); + break; + case 102: + errorMessage = _("Ip count."); + break; + case 103: + case 104: + errorMessage = _("Memory."); + break; + case 105: + errorMessage = _("Han valid."); + break; + case 106: + errorMessage = _("Ip limited access."); + break; + case 107: + errorMessage = _("Over characters list."); + break; + case 108: + errorMessage = _("Ip blocked."); + break; + case 109: + errorMessage = _("Invalid password count."); + break; + case 110: + errorMessage = _("Not allowed race."); + break; default: + errorMessage = _("Unknown connection error."); break; } + client->setState(STATE_ERROR); } void GeneralHandler::load() diff --git a/src/net/eathena/generalhandler.h b/src/net/eathena/generalhandler.h index 7f68f5f54..c7197d255 100644 --- a/src/net/eathena/generalhandler.h +++ b/src/net/eathena/generalhandler.h @@ -61,6 +61,8 @@ class GeneralHandler final : public MessageHandler, void gameEnded() const override final; protected: + void processConnectionProblem(Net::MessageIn &msg); + MessageHandlerPtr mAdminHandler; MessageHandlerPtr mBeingHandler; MessageHandlerPtr mBuySellHandler; -- cgit v1.2.3-70-g09d2