From 6035ea7abd218932baa23fe7ff9b2e894f6d313f Mon Sep 17 00:00:00 2001 From: Jared Adams Date: Mon, 12 Apr 2010 16:05:51 -0600 Subject: Completely ignore eAthena job 45 These are warps. Reviewed-by: Bertram --- src/map.cpp | 4 +--- src/net/ea/beinghandler.cpp | 8 ++++++++ 2 files changed, 9 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/map.cpp b/src/map.cpp index 3da94ea8..7ee18450 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -539,9 +539,7 @@ bool Map::occupied(int x, int y) const { const Being *being = *i; - // Eathena: The Job 45 is a portal, so they don't collide. - if (being->getTileX() == x && being->getTileY() == y - && being->getJob() != 45) + if (being->getTileX() == x && being->getTileY() == y) return true; } diff --git a/src/net/ea/beinghandler.cpp b/src/net/ea/beinghandler.cpp index 714150f7..6dcf9631 100644 --- a/src/net/ea/beinghandler.cpp +++ b/src/net/ea/beinghandler.cpp @@ -81,6 +81,8 @@ Being *createBeing(int id, short job) type = Being::NPC; else if (job > 1000 && job <= 2000) type = Being::MONSTER; + else if (job == 45) + return NULL; // Skip portals Being *being = beingManager->createBeing(id, type, job); @@ -138,6 +140,9 @@ void BeingHandler::handleMessage(Net::MessageIn &msg) } dstBeing = createBeing(id, job); + + if (!dstBeing) + break; } if (dstBeing->getType() == Being::PLAYER) @@ -529,6 +534,9 @@ void BeingHandler::handleMessage(Net::MessageIn &msg) if (!dstBeing) { dstBeing = createBeing(id, job); + + if (!dstBeing) + break; } if (dstBeing->getType() == Being::PLAYER) -- cgit v1.2.3-70-g09d2