diff options
Diffstat (limited to 'src/game-server/gamehandler.cpp')
-rw-r--r-- | src/game-server/gamehandler.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/game-server/gamehandler.cpp b/src/game-server/gamehandler.cpp index 0b0a795e..cfa6ad5f 100644 --- a/src/game-server/gamehandler.cpp +++ b/src/game-server/gamehandler.cpp @@ -199,7 +199,11 @@ void GameHandler::processMessage(NetComputer *comp, MessageIn &message) { int id = message.readShort(); MovingObject *o = findBeingNear(computer.character, id); - if (!o || o->getType() != OBJECT_NPC) break; + if (!o || o->getType() != OBJECT_NPC) + { + sendError(comp, id, "Not close enough to NPC\n"); + break; + } NPC *q = static_cast< NPC * >(o); if (message.getId() == PGMSG_NPC_SELECT) @@ -562,3 +566,11 @@ GameClient *GameHandler::getClientByNameSlow(std::string const &name) } return NULL; } + +void GameHandler::sendError(NetComputer *computer, int id, std::string errorMsg) +{ + MessageOut msg(GPMSG_NPC_ERROR); + msg.writeShort(id); + msg.writeString(errorMsg, errorMsg.size()); + computer->send(msg); +} |