summaryrefslogtreecommitdiff
path: root/src/game-server/monstermanager.cpp
diff options
context:
space:
mode:
authorErik Schilling <ablu.erikschilling@googlemail.com>2012-08-06 14:47:18 +0200
committerErik Schilling <ablu.erikschilling@googlemail.com>2012-08-06 14:47:18 +0200
commit1ccf0958ece7fbfde3761207f3238719e0585105 (patch)
treec2b2b0ba5bfedca8f793d35e5d3216e9c301cbf3 /src/game-server/monstermanager.cpp
parent1bbf0a238b62f2c977800f539386df5af9424fff (diff)
parentaf59c9d650bc254683618e7b334795e5a75886b2 (diff)
downloadmanaserv-1ccf0958ece7fbfde3761207f3238719e0585105.tar.gz
manaserv-1ccf0958ece7fbfde3761207f3238719e0585105.tar.bz2
manaserv-1ccf0958ece7fbfde3761207f3238719e0585105.tar.xz
manaserv-1ccf0958ece7fbfde3761207f3238719e0585105.zip
Merge branch 'master' into lpc2012
Conflicts: src/game-server/item.cpp
Diffstat (limited to 'src/game-server/monstermanager.cpp')
-rw-r--r--src/game-server/monstermanager.cpp20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/game-server/monstermanager.cpp b/src/game-server/monstermanager.cpp
index e0b45bad..cfe540d8 100644
--- a/src/game-server/monstermanager.cpp
+++ b/src/game-server/monstermanager.cpp
@@ -98,12 +98,26 @@ void MonsterManager::initialize()
if (xmlStrEqual(subnode->name, BAD_CAST "drop"))
{
MonsterDrop drop;
- drop.item = itemManager->getItem(
- XML::getProperty(subnode, "item", 0));
+ std::string item = XML::getProperty(subnode, "item",
+ std::string());
+ ItemClass *itemClass;
+ if (utils::isNumeric(item))
+ itemClass = itemManager->getItem(utils::stringToInt(item));
+ else
+ itemClass = itemManager->getItemByName(item);
+
+ if (!itemClass)
+ {
+ LOG_WARN("Monster Manager: Invalid item name \"" << item
+ << "\"");
+ break;
+ }
+
+ drop.item = itemClass;
drop.probability = XML::getFloatProperty(subnode, "percent",
0.0) * 100 + 0.5;
- if (drop.item && drop.probability)
+ if (drop.probability)
drops.push_back(drop);
}
else if (xmlStrEqual(subnode->name, BAD_CAST "attributes"))