Merge pull request #19 from Evildead666/develop21

correct spawn rules and configurability for new ore system
This commit is contained in:
Evildead666 2015-05-17 19:59:15 +02:00
commit cd10e3463a
4 changed files with 49 additions and 8 deletions

View File

@ -1752,7 +1752,45 @@ void GameObject::RollIfMineralVein()
uint32 GameObject::RollMineralVein(uint32 entry) //Maybe incedicite bloodstone and indurium have alternate spawns?
{
uint32 entrynew = entry;
switch (entry)
if ((GetZoneId() == 46) || (GetZoneId() == 51)) // each node in searing gorge or burning steppes is able to spawn dark iron
{
if (urand (0, 100) < sWorld.getConfig(CONFIG_UINT32_RATE_MINING_DARKIRON))
entrynew = 165658;
return entrynew;
}
if (urand (0, 100) < sWorld.getConfig(CONFIG_UINT32_RATE_MINING_LOWER)) // beside silver all base ores have the possibility to spawn the lower base ore type so rol for lower version spawn
{
switch (entry)
{
case 1735: // Iron can spawn Tin
entry = 1732;
break;
case 2040: // Mithril can spawn Iron
entry = 1735;
break;
case 123310: // Ooze covered mithril can spawn ooze covered iron
entry = 73939;
break;
case 324: // small thorium Vein can spawn Mithril
entry = 2040;
break;
case 123848: // ooze covered thorium Vein can spawn ooze covered mithril
entry = 123310;
break;
case 175404: // Rich thorium Vein can spawn small Thorium vein
entry = 324;
break;
case 177388: // ooze covered Rich thorium Vein can spawn ooze covered thorium
entry = 123848;
break;
default: //default case for copper, tin or not listet special veins
break;
}
}
switch (entry) // Now roll for rare spawn
{
case 1732: // Tin can spawn Silver
if (urand (0, 100) < sWorld.getConfig(CONFIG_UINT32_RATE_MINING_RARE))
@ -1768,14 +1806,7 @@ uint32 GameObject::RollMineralVein(uint32 entry) //Maybe incedicite bloodst
break;
case 2040: // Mithril can spawn Truesilver
if (urand (0, 100) < sWorld.getConfig(CONFIG_UINT32_RATE_MINING_RARE))
{
entrynew = 2047;
if ((GetZoneId() == 46) || (GetZoneId() == 51)) // roll for darkiron spawn in burning steppes and searing gorge
{
if (urand (0,3) < 1)
entrynew = 165658;
}
}
break;
case 123310: // Ooze covered mithril can spawn ooze covered truesilver
if (urand (0, 100) < sWorld.getConfig(CONFIG_UINT32_RATE_MINING_RARE))

View File

@ -443,7 +443,9 @@ void World::LoadConfigSettings(bool reload)
setConfig(CONFIG_FLOAT_RATE_HONOR, "Rate.Honor", 1.0f);
setConfigPos(CONFIG_FLOAT_RATE_MINING_AMOUNT, "Rate.Mining.Amount", 1.0f);
setConfigPos(CONFIG_FLOAT_RATE_MINING_NEXT, "Rate.Mining.Next", 1.0f);
setConfig(CONFIG_UINT32_RATE_MINING_LOWER, "Rate.Mining.Lower", 50);
setConfig(CONFIG_UINT32_RATE_MINING_RARE, "Rate.Mining.Rare", 20);
setConfig(CONFIG_UINT32_RATE_MINING_DARKIRON, "Rate.Mining.Dakriron", 10);
//setConfig(CONFIG_UINT32_RATE_MINING_AUTOPOOLING, "Rate.Mining.Autopooling", 90);
setConfigPos(CONFIG_FLOAT_RATE_INSTANCE_RESET_TIME, "Rate.InstanceResetTime", 1.0f);
setConfigPos(CONFIG_FLOAT_RATE_TALENT, "Rate.Talent", 1.0f);

View File

@ -139,7 +139,9 @@ enum eConfigUInt32Values
CONFIG_UINT32_MASS_MAILER_SEND_PER_TICK,
CONFIG_UINT32_UPTIME_UPDATE,
CONFIG_UINT32_AUCTION_DEPOSIT_MIN,
CONFIG_UINT32_RATE_MINING_LOWER,
CONFIG_UINT32_RATE_MINING_RARE,
CONFIG_UINT32_RATE_MINING_DARKIRON,
//CONFIG_UINT32_RATE_MINING_AUTOPOOLING,
CONFIG_UINT32_SKILL_CHANCE_ORANGE,
CONFIG_UINT32_SKILL_CHANCE_YELLOW,

View File

@ -1265,8 +1265,12 @@ Visibility.AIRelocationNotifyDelay = 1000
# Mining Rates (Mining.Amount changes minimum/maximum usetimes of a deposit,
# Mining.Next changes chance to have next use of a deposit)
#
# Rate.Mining.Lower
# Spawn percentage of lower mineral base ores
# Rate.Mining.Rare
# Spawn percentage of rare mineral nodes
# Rate.Mining.Darkiron
# Spawn percentage Darkiron in Burning Steppes and Searing Gorge
# Autopooling.Mining.Enable
# Increases server startup can be disabled for testing purposes when fast server restart is demanded
# 0 = Disabled (default)
@ -1402,7 +1406,9 @@ Auction.Deposit.Min = 0
Rate.Honor = 1
Rate.Mining.Amount = 1
Rate.Mining.Next = 1
Rate.Mining.Lower = 50
Rate.Mining.Rare = 20
Rate.Mining.Darkiron = 10
Autopooling.Mining.Enable = 0
Rate.Mining.Autopooling = 90
Rate.Talent = 1