diff options
author | Shauren <none@none> | 2010-09-15 10:44:38 +0200 |
---|---|---|
committer | Shauren <none@none> | 2010-09-15 10:44:38 +0200 |
commit | 9d9f18f9d28b496312c13d7e639c244b8fc33f3a (patch) | |
tree | dd0f59b3e921c3f5caa84eb7a2b2511cb4af51a4 /src | |
parent | 48786f29963d2977a441e615ccaffe87cb627341 (diff) |
Core/Loot: Add new config option "Rate.Drop.Item.ReferencedAmount" which allows multiplication of referenced loot count
Closes issue #814.
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Loot/LootMgr.cpp | 3 | ||||
-rw-r--r-- | src/server/game/World/World.cpp | 1 | ||||
-rw-r--r-- | src/server/game/World/World.h | 1 | ||||
-rw-r--r-- | src/server/worldserver/worldserver.conf.dist | 1 |
4 files changed, 5 insertions, 1 deletions
diff --git a/src/server/game/Loot/LootMgr.cpp b/src/server/game/Loot/LootMgr.cpp index cf76cd4036d..d7a1791a7be 100644 --- a/src/server/game/Loot/LootMgr.cpp +++ b/src/server/game/Loot/LootMgr.cpp @@ -1231,7 +1231,8 @@ void LootTemplate::Process(Loot& loot, LootStore const& store, bool rate, uint16 if (!Referenced) continue; // Error message already printed at loading stage - for (uint32 loop = 0; loop < i->maxcount; ++loop) // Ref multiplicator + uint32 maxcount = uint32(float(i->maxcount) * sWorld.getRate(RATE_DROP_ITEM_REFERENCED_AMOUNT)); + for (uint32 loop = 0; loop < maxcount; ++loop) // Ref multiplicator Referenced->Process(loot, store, rate, lootMode, i->group); } else // Plain entries (not a reference, not grouped) diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 5b8f849eefb..f621fc921cc 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -466,6 +466,7 @@ void World::LoadConfigSettings(bool reload) rate_values[RATE_DROP_ITEM_LEGENDARY] = sConfig.GetFloatDefault("Rate.Drop.Item.Legendary", 1.0f); rate_values[RATE_DROP_ITEM_ARTIFACT] = sConfig.GetFloatDefault("Rate.Drop.Item.Artifact", 1.0f); rate_values[RATE_DROP_ITEM_REFERENCED] = sConfig.GetFloatDefault("Rate.Drop.Item.Referenced", 1.0f); + rate_values[RATE_DROP_ITEM_REFERENCED_AMOUNT] = sConfig.GetFloatDefault("Rate.Drop.Item.ReferencedAmount", 1.0f); rate_values[RATE_DROP_MONEY] = sConfig.GetFloatDefault("Rate.Drop.Money", 1.0f); rate_values[RATE_XP_KILL] = sConfig.GetFloatDefault("Rate.XP.Kill", 1.0f); rate_values[RATE_XP_QUEST] = sConfig.GetFloatDefault("Rate.XP.Quest", 1.0f); diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h index 3aaca395b31..e273fc80e8a 100644 --- a/src/server/game/World/World.h +++ b/src/server/game/World/World.h @@ -329,6 +329,7 @@ enum Rates RATE_DROP_ITEM_LEGENDARY, RATE_DROP_ITEM_ARTIFACT, RATE_DROP_ITEM_REFERENCED, + RATE_DROP_ITEM_REFERENCED_AMOUNT, RATE_DROP_MONEY, RATE_XP_KILL, RATE_XP_QUEST, diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist index 5ca4bf7a53e..451ab7efb9b 100644 --- a/src/server/worldserver/worldserver.conf.dist +++ b/src/server/worldserver/worldserver.conf.dist @@ -1665,6 +1665,7 @@ Rate.Drop.Item.Epic = 1 Rate.Drop.Item.Legendary = 1 Rate.Drop.Item.Artifact = 1 Rate.Drop.Item.Referenced = 1 +Rate.Drop.Item.ReferencedAmount = 1 Rate.Drop.Money = 1 Rate.XP.Kill = 1 Rate.XP.Quest = 1 |