diff options
author | Jared Adams <jaxad0127@gmail.com> | 2010-04-12 16:05:51 -0600 |
---|---|---|
committer | Jared Adams <jaxad0127@gmail.com> | 2010-04-12 16:31:53 -0600 |
commit | 6035ea7abd218932baa23fe7ff9b2e894f6d313f (patch) | |
tree | b2b28f6345f80b2c6907b187e4eafd2acaa11f67 | |
parent | cd727d2223bc51f282bec29d666a0f5f30bdd151 (diff) | |
download | mana-6035ea7abd218932baa23fe7ff9b2e894f6d313f.tar.gz mana-6035ea7abd218932baa23fe7ff9b2e894f6d313f.tar.bz2 mana-6035ea7abd218932baa23fe7ff9b2e894f6d313f.tar.xz mana-6035ea7abd218932baa23fe7ff9b2e894f6d313f.zip |
Completely ignore eAthena job 45
These are warps.
Reviewed-by: Bertram
-rw-r--r-- | src/map.cpp | 4 | ||||
-rw-r--r-- | src/net/ea/beinghandler.cpp | 8 |
2 files changed, 9 insertions, 3 deletions
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) |