Core/Creatures: Refactor CreatureEliteType (#29525)
* Turn into enum class with official names
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
ALTER TABLE `creature_template`
|
||||
CHANGE COLUMN `rank` `Classification` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `scale`;
|
||||
@@ -192,7 +192,7 @@ WorldPacket CreatureTemplate::BuildQueryData(LocaleConstant loc, Difficulty diff
|
||||
|
||||
stats.CreatureType = type;
|
||||
stats.CreatureFamily = family;
|
||||
stats.Classification = rank;
|
||||
stats.Classification = uint32(Classification);
|
||||
|
||||
for (uint32 i = 0; i < MAX_KILL_CREDIT; ++i)
|
||||
stats.ProxyCreatureID[i] = KillCredit[i];
|
||||
@@ -1114,19 +1114,25 @@ bool Creature::Create(ObjectGuid::LowType guidlow, Map* map, uint32 entry, Posit
|
||||
if (cinfo->flags_extra & CREATURE_FLAG_EXTRA_DUNGEON_BOSS && map->IsDungeon())
|
||||
m_respawnDelay = 0; // special value, prevents respawn for dungeon bosses unless overridden
|
||||
|
||||
switch (cinfo->rank)
|
||||
switch (GetCreatureClassification())
|
||||
{
|
||||
case CREATURE_ELITE_RARE:
|
||||
m_corpseDelay = sWorld->getIntConfig(CONFIG_CORPSE_DECAY_RARE);
|
||||
break;
|
||||
case CREATURE_ELITE_ELITE:
|
||||
case CreatureClassifications::Elite:
|
||||
m_corpseDelay = sWorld->getIntConfig(CONFIG_CORPSE_DECAY_ELITE);
|
||||
break;
|
||||
case CREATURE_ELITE_RAREELITE:
|
||||
case CreatureClassifications::RareElite:
|
||||
m_corpseDelay = sWorld->getIntConfig(CONFIG_CORPSE_DECAY_RAREELITE);
|
||||
break;
|
||||
case CREATURE_ELITE_WORLDBOSS:
|
||||
m_corpseDelay = sWorld->getIntConfig(CONFIG_CORPSE_DECAY_WORLDBOSS);
|
||||
case CreatureClassifications::Obsolete:
|
||||
m_corpseDelay = sWorld->getIntConfig(CONFIG_CORPSE_DECAY_OBSOLETE);
|
||||
break;
|
||||
case CreatureClassifications::Rare:
|
||||
m_corpseDelay = sWorld->getIntConfig(CONFIG_CORPSE_DECAY_RARE);
|
||||
break;
|
||||
case CreatureClassifications::Trivial:
|
||||
m_corpseDelay = sWorld->getIntConfig(CONFIG_CORPSE_DECAY_TRIVIAL);
|
||||
break;
|
||||
case CreatureClassifications::MinusMob:
|
||||
m_corpseDelay = sWorld->getIntConfig(CONFIG_CORPSE_DECAY_MINUSMOB);
|
||||
break;
|
||||
default:
|
||||
m_corpseDelay = sWorld->getIntConfig(CONFIG_CORPSE_DECAY_NORMAL);
|
||||
@@ -1574,12 +1580,12 @@ void Creature::SelectLevel()
|
||||
void Creature::UpdateLevelDependantStats()
|
||||
{
|
||||
CreatureTemplate const* cInfo = GetCreatureTemplate();
|
||||
uint32 rank = IsPet() ? 0 : cInfo->rank;
|
||||
CreatureClassifications classification = IsPet() ? CreatureClassifications::Normal : cInfo->Classification;
|
||||
uint8 level = GetLevel();
|
||||
CreatureBaseStats const* stats = sObjectMgr->GetCreatureBaseStats(level, cInfo->unit_class);
|
||||
|
||||
// health
|
||||
float healthmod = _GetHealthMod(rank);
|
||||
float healthmod = GetHealthMod(classification);
|
||||
|
||||
uint32 basehp = GetMaxHealthByLevel(level);
|
||||
uint32 health = uint32(basehp * healthmod);
|
||||
@@ -1641,22 +1647,26 @@ void Creature::SelectWildBattlePetLevel()
|
||||
}
|
||||
}
|
||||
|
||||
float Creature::_GetHealthMod(int32 Rank)
|
||||
float Creature::GetHealthMod(CreatureClassifications classification)
|
||||
{
|
||||
switch (Rank) // define rates for each elite rank
|
||||
switch (classification)
|
||||
{
|
||||
case CREATURE_ELITE_NORMAL:
|
||||
return sWorld->getRate(RATE_CREATURE_NORMAL_HP);
|
||||
case CREATURE_ELITE_ELITE:
|
||||
return sWorld->getRate(RATE_CREATURE_ELITE_ELITE_HP);
|
||||
case CREATURE_ELITE_RAREELITE:
|
||||
return sWorld->getRate(RATE_CREATURE_ELITE_RAREELITE_HP);
|
||||
case CREATURE_ELITE_WORLDBOSS:
|
||||
return sWorld->getRate(RATE_CREATURE_ELITE_WORLDBOSS_HP);
|
||||
case CREATURE_ELITE_RARE:
|
||||
return sWorld->getRate(RATE_CREATURE_ELITE_RARE_HP);
|
||||
case CreatureClassifications::Normal:
|
||||
return sWorld->getRate(RATE_CREATURE_HP_NORMAL);
|
||||
case CreatureClassifications::Elite:
|
||||
return sWorld->getRate(RATE_CREATURE_HP_ELITE);
|
||||
case CreatureClassifications::RareElite:
|
||||
return sWorld->getRate(RATE_CREATURE_HP_RAREELITE);
|
||||
case CreatureClassifications::Obsolete:
|
||||
return sWorld->getRate(RATE_CREATURE_HP_OBSOLETE);
|
||||
case CreatureClassifications::Rare:
|
||||
return sWorld->getRate(RATE_CREATURE_HP_RARE);
|
||||
case CreatureClassifications::Trivial:
|
||||
return sWorld->getRate(RATE_CREATURE_HP_TRIVIAL);
|
||||
case CreatureClassifications::MinusMob:
|
||||
return sWorld->getRate(RATE_CREATURE_HP_MINUSMOB);
|
||||
default:
|
||||
return sWorld->getRate(RATE_CREATURE_ELITE_ELITE_HP);
|
||||
return sWorld->getRate(RATE_CREATURE_HP_ELITE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1666,41 +1676,49 @@ void Creature::LowerPlayerDamageReq(uint64 unDamage)
|
||||
m_PlayerDamageReq > unDamage ? m_PlayerDamageReq -= unDamage : m_PlayerDamageReq = 0;
|
||||
}
|
||||
|
||||
float Creature::_GetDamageMod(int32 Rank)
|
||||
float Creature::GetDamageMod(CreatureClassifications classification)
|
||||
{
|
||||
switch (Rank) // define rates for each elite rank
|
||||
switch (classification)
|
||||
{
|
||||
case CREATURE_ELITE_NORMAL:
|
||||
return sWorld->getRate(RATE_CREATURE_NORMAL_DAMAGE);
|
||||
case CREATURE_ELITE_ELITE:
|
||||
return sWorld->getRate(RATE_CREATURE_ELITE_ELITE_DAMAGE);
|
||||
case CREATURE_ELITE_RAREELITE:
|
||||
return sWorld->getRate(RATE_CREATURE_ELITE_RAREELITE_DAMAGE);
|
||||
case CREATURE_ELITE_WORLDBOSS:
|
||||
return sWorld->getRate(RATE_CREATURE_ELITE_WORLDBOSS_DAMAGE);
|
||||
case CREATURE_ELITE_RARE:
|
||||
return sWorld->getRate(RATE_CREATURE_ELITE_RARE_DAMAGE);
|
||||
case CreatureClassifications::Normal:
|
||||
return sWorld->getRate(RATE_CREATURE_DAMAGE_NORMAL);
|
||||
case CreatureClassifications::Elite:
|
||||
return sWorld->getRate(RATE_CREATURE_DAMAGE_ELITE);
|
||||
case CreatureClassifications::RareElite:
|
||||
return sWorld->getRate(RATE_CREATURE_DAMAGE_RAREELITE);
|
||||
case CreatureClassifications::Obsolete:
|
||||
return sWorld->getRate(RATE_CREATURE_DAMAGE_OBSOLETE);
|
||||
case CreatureClassifications::Rare:
|
||||
return sWorld->getRate(RATE_CREATURE_DAMAGE_RARE);
|
||||
case CreatureClassifications::Trivial:
|
||||
return sWorld->getRate(RATE_CREATURE_DAMAGE_TRIVIAL);
|
||||
case CreatureClassifications::MinusMob:
|
||||
return sWorld->getRate(RATE_CREATURE_DAMAGE_MINUSMOB);
|
||||
default:
|
||||
return sWorld->getRate(RATE_CREATURE_ELITE_ELITE_DAMAGE);
|
||||
return sWorld->getRate(RATE_CREATURE_DAMAGE_ELITE);
|
||||
}
|
||||
}
|
||||
|
||||
float Creature::GetSpellDamageMod(int32 Rank) const
|
||||
float Creature::GetSpellDamageMod(CreatureClassifications classification) const
|
||||
{
|
||||
switch (Rank) // define rates for each elite rank
|
||||
switch (classification)
|
||||
{
|
||||
case CREATURE_ELITE_NORMAL:
|
||||
return sWorld->getRate(RATE_CREATURE_NORMAL_SPELLDAMAGE);
|
||||
case CREATURE_ELITE_ELITE:
|
||||
return sWorld->getRate(RATE_CREATURE_ELITE_ELITE_SPELLDAMAGE);
|
||||
case CREATURE_ELITE_RAREELITE:
|
||||
return sWorld->getRate(RATE_CREATURE_ELITE_RAREELITE_SPELLDAMAGE);
|
||||
case CREATURE_ELITE_WORLDBOSS:
|
||||
return sWorld->getRate(RATE_CREATURE_ELITE_WORLDBOSS_SPELLDAMAGE);
|
||||
case CREATURE_ELITE_RARE:
|
||||
return sWorld->getRate(RATE_CREATURE_ELITE_RARE_SPELLDAMAGE);
|
||||
case CreatureClassifications::Normal:
|
||||
return sWorld->getRate(RATE_CREATURE_SPELLDAMAGE_NORMAL);
|
||||
case CreatureClassifications::Elite:
|
||||
return sWorld->getRate(RATE_CREATURE_SPELLDAMAGE_ELITE);
|
||||
case CreatureClassifications::RareElite:
|
||||
return sWorld->getRate(RATE_CREATURE_SPELLDAMAGE_RAREELITE);
|
||||
case CreatureClassifications::Obsolete:
|
||||
return sWorld->getRate(RATE_CREATURE_SPELLDAMAGE_OBSOLETE);
|
||||
case CreatureClassifications::Rare:
|
||||
return sWorld->getRate(RATE_CREATURE_SPELLDAMAGE_RARE);
|
||||
case CreatureClassifications::Trivial:
|
||||
return sWorld->getRate(RATE_CREATURE_SPELLDAMAGE_TRIVIAL);
|
||||
case CreatureClassifications::MinusMob:
|
||||
return sWorld->getRate(RATE_CREATURE_SPELLDAMAGE_MINUSMOB);
|
||||
default:
|
||||
return sWorld->getRate(RATE_CREATURE_ELITE_ELITE_SPELLDAMAGE);
|
||||
return sWorld->getRate(RATE_CREATURE_SPELLDAMAGE_ELITE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1948,7 +1966,7 @@ void Creature::SetSpawnHealth()
|
||||
curhealth = m_creatureData->curhealth;
|
||||
if (curhealth)
|
||||
{
|
||||
curhealth = uint32(curhealth*_GetHealthMod(GetCreatureTemplate()->rank));
|
||||
curhealth = uint32(curhealth*GetHealthMod(GetCreatureTemplate()->Classification));
|
||||
if (curhealth < 1)
|
||||
curhealth = 1;
|
||||
}
|
||||
@@ -2444,13 +2462,12 @@ bool Creature::IsImmunedToSpellEffect(SpellInfo const* spellInfo, SpellEffectInf
|
||||
return Unit::IsImmunedToSpellEffect(spellInfo, spellEffectInfo, caster, requireImmunityPurgesEffectAttribute);
|
||||
}
|
||||
|
||||
bool Creature::isElite() const
|
||||
bool Creature::IsElite() const
|
||||
{
|
||||
if (IsPet())
|
||||
return false;
|
||||
|
||||
uint32 rank = GetCreatureTemplate()->rank;
|
||||
return rank != CREATURE_ELITE_NORMAL && rank != CREATURE_ELITE_RARE;
|
||||
return HasClassification(CreatureClassifications::Elite) || HasClassification(CreatureClassifications::RareElite);
|
||||
}
|
||||
|
||||
bool Creature::isWorldBoss() const
|
||||
|
||||
@@ -129,6 +129,9 @@ class TC_GAME_API Creature : public Unit, public GridObject<Creature>, public Ma
|
||||
MovementGeneratorType GetDefaultMovementType() const override { return m_defaultMovementType; }
|
||||
void SetDefaultMovementType(MovementGeneratorType mgt) { m_defaultMovementType = mgt; }
|
||||
|
||||
CreatureClassifications GetCreatureClassification() const { return GetCreatureTemplate()->Classification; }
|
||||
bool HasClassification(CreatureClassifications classification) const { return GetCreatureTemplate()->Classification == classification; }
|
||||
|
||||
bool IsDungeonBoss() const { return (GetCreatureTemplate()->flags_extra & CREATURE_FLAG_EXTRA_DUNGEON_BOSS) != 0; }
|
||||
bool IsAffectedByDiminishingReturns() const override { return Unit::IsAffectedByDiminishingReturns() || (GetCreatureTemplate()->flags_extra & CREATURE_FLAG_EXTRA_ALL_DIMINISH) != 0; }
|
||||
|
||||
@@ -157,7 +160,7 @@ class TC_GAME_API Creature : public Unit, public GridObject<Creature>, public Ma
|
||||
bool CanCreatureAttack(Unit const* victim, bool force = true) const;
|
||||
void LoadTemplateImmunities();
|
||||
bool IsImmunedToSpellEffect(SpellInfo const* spellInfo, SpellEffectInfo const& spellEffectInfo, WorldObject const* caster, bool requireImmunityPurgesEffectAttribute = false) const override;
|
||||
bool isElite() const;
|
||||
bool IsElite() const;
|
||||
bool isWorldBoss() const;
|
||||
|
||||
bool HasScalableLevels() const;
|
||||
@@ -208,7 +211,7 @@ class TC_GAME_API Creature : public Unit, public GridObject<Creature>, public Ma
|
||||
uint8 GetCurrentEquipmentId() const { return m_equipmentId; }
|
||||
void SetCurrentEquipmentId(uint8 id) { m_equipmentId = id; }
|
||||
|
||||
float GetSpellDamageMod(int32 Rank) const;
|
||||
float GetSpellDamageMod(CreatureClassifications classification) const;
|
||||
|
||||
VendorItemData const* GetVendorItems() const;
|
||||
uint32 GetVendorItemCurrentCount(VendorItem const* vItem);
|
||||
@@ -366,7 +369,7 @@ class TC_GAME_API Creature : public Unit, public GridObject<Creature>, public Ma
|
||||
void SetRespawnCompatibilityMode(bool mode = true) { m_respawnCompatibilityMode = mode; }
|
||||
bool GetRespawnCompatibilityMode() { return m_respawnCompatibilityMode; }
|
||||
|
||||
static float _GetDamageMod(int32 Rank);
|
||||
static float GetDamageMod(CreatureClassifications classification);
|
||||
|
||||
float m_SightDistance, m_CombatDistance;
|
||||
|
||||
@@ -436,7 +439,7 @@ class TC_GAME_API Creature : public Unit, public GridObject<Creature>, public Ma
|
||||
// vendor items
|
||||
VendorItemCounts m_vendorItemCounts;
|
||||
|
||||
static float _GetHealthMod(int32 Rank);
|
||||
static float GetHealthMod(CreatureClassifications classification);
|
||||
|
||||
GuidUnorderedSet m_tapList;
|
||||
bool m_dontClearTapListOnEvade;
|
||||
|
||||
@@ -518,7 +518,7 @@ struct TC_GAME_API CreatureTemplate
|
||||
float speed_walk;
|
||||
float speed_run;
|
||||
float scale;
|
||||
uint32 rank;
|
||||
CreatureClassifications Classification;
|
||||
uint32 dmgschool;
|
||||
uint32 BaseAttackTime;
|
||||
uint32 RangeAttackTime;
|
||||
|
||||
@@ -908,7 +908,7 @@ bool Guardian::InitStatsForLevel(uint8 petlevel)
|
||||
ApplyLevelScaling();
|
||||
|
||||
CreatureDifficulty const* creatureDifficulty = GetCreatureDifficulty();
|
||||
SetCreateHealth(std::max(sDB2Manager.EvaluateExpectedStat(ExpectedStatType::CreatureHealth, petlevel, creatureDifficulty->GetHealthScalingExpansion(), m_unitData->ContentTuningID, Classes(cinfo->unit_class), 0) * creatureDifficulty->HealthModifier * _GetHealthMod(cinfo->rank), 1.0f));
|
||||
SetCreateHealth(std::max(sDB2Manager.EvaluateExpectedStat(ExpectedStatType::CreatureHealth, petlevel, creatureDifficulty->GetHealthScalingExpansion(), m_unitData->ContentTuningID, Classes(cinfo->unit_class), 0) * creatureDifficulty->HealthModifier * GetHealthMod(cinfo->Classification), 1.0f));
|
||||
SetCreateMana(stats->BaseMana);
|
||||
SetCreateStat(STAT_STRENGTH, 22);
|
||||
SetCreateStat(STAT_AGILITY, 22);
|
||||
|
||||
@@ -1034,7 +1034,7 @@ void Creature::CalculateMinMaxDamage(WeaponAttackType attType, bool normalized,
|
||||
float basePct = GetPctModifierValue(unitMod, BASE_PCT) * attackSpeedMulti;
|
||||
float totalValue = GetFlatModifierValue(unitMod, TOTAL_VALUE);
|
||||
float totalPct = addTotalPct ? GetPctModifierValue(unitMod, TOTAL_PCT) : 1.0f;
|
||||
float dmgMultiplier = GetCreatureDifficulty()->DamageModifier; // = DamageModifier * _GetDamageMod(rank);
|
||||
float dmgMultiplier = GetCreatureDifficulty()->DamageModifier; // = DamageModifier * GetDamageMod(rank);
|
||||
|
||||
minDamage = ((weaponMinDamage + baseValue) * dmgMultiplier * basePct + totalValue) * totalPct;
|
||||
maxDamage = ((weaponMaxDamage + baseValue) * dmgMultiplier * basePct + totalValue) * totalPct;
|
||||
|
||||
@@ -6635,7 +6635,7 @@ float Unit::SpellDamagePctDone(Unit* victim, SpellInfo const* spellProto, Damage
|
||||
|
||||
// Pet damage?
|
||||
if (GetTypeId() == TYPEID_UNIT && !IsPet())
|
||||
DoneTotalMod *= ToCreature()->GetSpellDamageMod(ToCreature()->GetCreatureTemplate()->rank);
|
||||
DoneTotalMod *= ToCreature()->GetSpellDamageMod(ToCreature()->GetCreatureTemplate()->Classification);
|
||||
|
||||
// Versatility
|
||||
if (Player* modOwner = GetSpellModOwner())
|
||||
|
||||
@@ -427,7 +427,7 @@ void ObjectMgr::LoadCreatureTemplate(Field* fields)
|
||||
creatureTemplate.speed_walk = fields[12].GetFloat();
|
||||
creatureTemplate.speed_run = fields[13].GetFloat();
|
||||
creatureTemplate.scale = fields[14].GetFloat();
|
||||
creatureTemplate.rank = uint32(fields[15].GetUInt8());
|
||||
creatureTemplate.Classification = CreatureClassifications(fields[15].GetUInt8());
|
||||
creatureTemplate.dmgschool = uint32(fields[16].GetInt8());
|
||||
creatureTemplate.BaseAttackTime = fields[17].GetUInt32();
|
||||
creatureTemplate.RangeAttackTime = fields[18].GetUInt32();
|
||||
@@ -973,7 +973,7 @@ void ObjectMgr::LoadCreatureTemplateDifficulty()
|
||||
CreatureStaticFlags6(fields[23].GetUInt32()), CreatureStaticFlags7(fields[24].GetUInt32()), CreatureStaticFlags8(fields[25].GetUInt32()));
|
||||
|
||||
// TODO: Check if this still applies
|
||||
creatureDifficulty.DamageModifier *= Creature::_GetDamageMod(itr->second.rank);
|
||||
creatureDifficulty.DamageModifier *= Creature::GetDamageMod(itr->second.Classification);
|
||||
|
||||
if (creatureDifficulty.HealthScalingExpansion < EXPANSION_LEVEL_CURRENT || creatureDifficulty.HealthScalingExpansion >= MAX_EXPANSIONS)
|
||||
{
|
||||
|
||||
@@ -191,7 +191,7 @@ namespace Trinity
|
||||
if ((uint32(creature->GetCreatureDifficulty()->GetHealthScalingExpansion()) < GetExpansionForLevel(player->GetLevel())))
|
||||
gain = uint32(round(gain / 10.0f));
|
||||
|
||||
if (creature->isElite())
|
||||
if (creature->IsElite())
|
||||
{
|
||||
// Elites in instances have a 2.75x XP bonus instead of the regular 2x world bonus.
|
||||
if (u->GetMap()->IsDungeon())
|
||||
|
||||
@@ -4727,15 +4727,15 @@ enum CreatureTypeFlags2
|
||||
CREATURE_TYPE_FLAG_2_UNK8 = 0x00000080
|
||||
};
|
||||
|
||||
enum CreatureEliteType
|
||||
enum class CreatureClassifications : uint32
|
||||
{
|
||||
CREATURE_ELITE_NORMAL = 0,
|
||||
CREATURE_ELITE_ELITE = 1,
|
||||
CREATURE_ELITE_RAREELITE = 2,
|
||||
CREATURE_ELITE_WORLDBOSS = 3,
|
||||
CREATURE_ELITE_RARE = 4,
|
||||
CREATURE_ELITE_TRIVIAL = 5, // found in 2.2.3 for 2 mobs
|
||||
CREATURE_WEAK = 6
|
||||
Normal = 0,
|
||||
Elite = 1,
|
||||
RareElite = 2,
|
||||
Obsolete = 3,
|
||||
Rare = 4,
|
||||
Trivial = 5,
|
||||
MinusMob = 6
|
||||
};
|
||||
|
||||
// Holidays.dbc (9.0.2.37176)
|
||||
|
||||
@@ -3832,7 +3832,7 @@ void Spell::EffectSkinning()
|
||||
if (uint32 pureSkillValue = player->GetPureSkillValue(skinningSkill))
|
||||
{
|
||||
// Double chances for elites
|
||||
player->UpdateGatherSkill(skinningSkill, pureSkillValue, reqValue, creature->isElite() ? 2 : 1);
|
||||
player->UpdateGatherSkill(skinningSkill, pureSkillValue, reqValue, creature->IsElite() ? 2 : 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -659,36 +659,42 @@ void World::LoadConfigSettings(bool reload)
|
||||
TC_LOG_ERROR("server.loading", "Rate.RepairCost ({}) must be >=0. Using 0.0 instead.", rate_values[RATE_REPAIRCOST]);
|
||||
rate_values[RATE_REPAIRCOST] = 0.0f;
|
||||
}
|
||||
rate_values[RATE_REPUTATION_GAIN] = sConfigMgr->GetFloatDefault("Rate.Reputation.Gain", 1.0f);
|
||||
rate_values[RATE_REPUTATION_LOWLEVEL_KILL] = sConfigMgr->GetFloatDefault("Rate.Reputation.LowLevel.Kill", 1.0f);
|
||||
rate_values[RATE_REPUTATION_LOWLEVEL_QUEST] = sConfigMgr->GetFloatDefault("Rate.Reputation.LowLevel.Quest", 1.0f);
|
||||
rate_values[RATE_REPUTATION_GAIN] = sConfigMgr->GetFloatDefault("Rate.Reputation.Gain", 1.0f);
|
||||
rate_values[RATE_REPUTATION_LOWLEVEL_KILL] = sConfigMgr->GetFloatDefault("Rate.Reputation.LowLevel.Kill", 1.0f);
|
||||
rate_values[RATE_REPUTATION_LOWLEVEL_QUEST] = sConfigMgr->GetFloatDefault("Rate.Reputation.LowLevel.Quest", 1.0f);
|
||||
rate_values[RATE_REPUTATION_RECRUIT_A_FRIEND_BONUS] = sConfigMgr->GetFloatDefault("Rate.Reputation.RecruitAFriendBonus", 0.1f);
|
||||
rate_values[RATE_CREATURE_NORMAL_DAMAGE] = sConfigMgr->GetFloatDefault("Rate.Creature.Normal.Damage", 1.0f);
|
||||
rate_values[RATE_CREATURE_ELITE_ELITE_DAMAGE] = sConfigMgr->GetFloatDefault("Rate.Creature.Elite.Elite.Damage", 1.0f);
|
||||
rate_values[RATE_CREATURE_ELITE_RAREELITE_DAMAGE] = sConfigMgr->GetFloatDefault("Rate.Creature.Elite.RAREELITE.Damage", 1.0f);
|
||||
rate_values[RATE_CREATURE_ELITE_WORLDBOSS_DAMAGE] = sConfigMgr->GetFloatDefault("Rate.Creature.Elite.WORLDBOSS.Damage", 1.0f);
|
||||
rate_values[RATE_CREATURE_ELITE_RARE_DAMAGE] = sConfigMgr->GetFloatDefault("Rate.Creature.Elite.RARE.Damage", 1.0f);
|
||||
rate_values[RATE_CREATURE_NORMAL_HP] = sConfigMgr->GetFloatDefault("Rate.Creature.Normal.HP", 1.0f);
|
||||
rate_values[RATE_CREATURE_ELITE_ELITE_HP] = sConfigMgr->GetFloatDefault("Rate.Creature.Elite.Elite.HP", 1.0f);
|
||||
rate_values[RATE_CREATURE_ELITE_RAREELITE_HP] = sConfigMgr->GetFloatDefault("Rate.Creature.Elite.RAREELITE.HP", 1.0f);
|
||||
rate_values[RATE_CREATURE_ELITE_WORLDBOSS_HP] = sConfigMgr->GetFloatDefault("Rate.Creature.Elite.WORLDBOSS.HP", 1.0f);
|
||||
rate_values[RATE_CREATURE_ELITE_RARE_HP] = sConfigMgr->GetFloatDefault("Rate.Creature.Elite.RARE.HP", 1.0f);
|
||||
rate_values[RATE_CREATURE_NORMAL_SPELLDAMAGE] = sConfigMgr->GetFloatDefault("Rate.Creature.Normal.SpellDamage", 1.0f);
|
||||
rate_values[RATE_CREATURE_ELITE_ELITE_SPELLDAMAGE] = sConfigMgr->GetFloatDefault("Rate.Creature.Elite.Elite.SpellDamage", 1.0f);
|
||||
rate_values[RATE_CREATURE_ELITE_RAREELITE_SPELLDAMAGE] = sConfigMgr->GetFloatDefault("Rate.Creature.Elite.RAREELITE.SpellDamage", 1.0f);
|
||||
rate_values[RATE_CREATURE_ELITE_WORLDBOSS_SPELLDAMAGE] = sConfigMgr->GetFloatDefault("Rate.Creature.Elite.WORLDBOSS.SpellDamage", 1.0f);
|
||||
rate_values[RATE_CREATURE_ELITE_RARE_SPELLDAMAGE] = sConfigMgr->GetFloatDefault("Rate.Creature.Elite.RARE.SpellDamage", 1.0f);
|
||||
rate_values[RATE_CREATURE_AGGRO] = sConfigMgr->GetFloatDefault("Rate.Creature.Aggro", 1.0f);
|
||||
rate_values[RATE_REST_INGAME] = sConfigMgr->GetFloatDefault("Rate.Rest.InGame", 1.0f);
|
||||
rate_values[RATE_REST_OFFLINE_IN_TAVERN_OR_CITY] = sConfigMgr->GetFloatDefault("Rate.Rest.Offline.InTavernOrCity", 1.0f);
|
||||
rate_values[RATE_REST_OFFLINE_IN_WILDERNESS] = sConfigMgr->GetFloatDefault("Rate.Rest.Offline.InWilderness", 1.0f);
|
||||
rate_values[RATE_DAMAGE_FALL] = sConfigMgr->GetFloatDefault("Rate.Damage.Fall", 1.0f);
|
||||
rate_values[RATE_AUCTION_TIME] = sConfigMgr->GetFloatDefault("Rate.Auction.Time", 1.0f);
|
||||
rate_values[RATE_AUCTION_DEPOSIT] = sConfigMgr->GetFloatDefault("Rate.Auction.Deposit", 1.0f);
|
||||
rate_values[RATE_AUCTION_CUT] = sConfigMgr->GetFloatDefault("Rate.Auction.Cut", 1.0f);
|
||||
rate_values[RATE_HONOR] = sConfigMgr->GetFloatDefault("Rate.Honor", 1.0f);
|
||||
rate_values[RATE_INSTANCE_RESET_TIME] = sConfigMgr->GetFloatDefault("Rate.InstanceResetTime", 1.0f);
|
||||
rate_values[RATE_TALENT] = sConfigMgr->GetFloatDefault("Rate.Talent", 1.0f);
|
||||
rate_values[RATE_CREATURE_HP_NORMAL] = sConfigMgr->GetFloatDefault("Rate.Creature.HP.Normal", 1.0f);
|
||||
rate_values[RATE_CREATURE_HP_ELITE] = sConfigMgr->GetFloatDefault("Rate.Creature.HP.Elite", 1.0f);
|
||||
rate_values[RATE_CREATURE_HP_RAREELITE] = sConfigMgr->GetFloatDefault("Rate.Creature.HP.RareElite", 1.0f);
|
||||
rate_values[RATE_CREATURE_HP_OBSOLETE] = sConfigMgr->GetFloatDefault("Rate.Creature.HP.Obsolete", 1.0f);
|
||||
rate_values[RATE_CREATURE_HP_RARE] = sConfigMgr->GetFloatDefault("Rate.Creature.HP.Rare", 1.0f);
|
||||
rate_values[RATE_CREATURE_HP_TRIVIAL] = sConfigMgr->GetFloatDefault("Rate.Creature.HP.Trivial", 1.0f);
|
||||
rate_values[RATE_CREATURE_HP_MINUSMOB] = sConfigMgr->GetFloatDefault("Rate.Creature.HP.MinusMob", 1.0f);
|
||||
rate_values[RATE_CREATURE_DAMAGE_NORMAL] = sConfigMgr->GetFloatDefault("Rate.Creature.Damage.Normal", 1.0f);
|
||||
rate_values[RATE_CREATURE_DAMAGE_ELITE] = sConfigMgr->GetFloatDefault("Rate.Creature.Damage.Elite", 1.0f);
|
||||
rate_values[RATE_CREATURE_DAMAGE_RAREELITE] = sConfigMgr->GetFloatDefault("Rate.Creature.Damage.RareElite", 1.0f);
|
||||
rate_values[RATE_CREATURE_DAMAGE_OBSOLETE] = sConfigMgr->GetFloatDefault("Rate.Creature.Damage.Obsolete", 1.0f);
|
||||
rate_values[RATE_CREATURE_DAMAGE_RARE] = sConfigMgr->GetFloatDefault("Rate.Creature.Damage.Rare", 1.0f);
|
||||
rate_values[RATE_CREATURE_DAMAGE_TRIVIAL] = sConfigMgr->GetFloatDefault("Rate.Creature.Damage.Trivial", 1.0f);
|
||||
rate_values[RATE_CREATURE_DAMAGE_MINUSMOB] = sConfigMgr->GetFloatDefault("Rate.Creature.Damage.MinusMob", 1.0f);
|
||||
rate_values[RATE_CREATURE_SPELLDAMAGE_NORMAL] = sConfigMgr->GetFloatDefault("Rate.Creature.SpellDamage.Normal", 1.0f);
|
||||
rate_values[RATE_CREATURE_SPELLDAMAGE_ELITE] = sConfigMgr->GetFloatDefault("Rate.Creature.SpellDamage.Elite", 1.0f);
|
||||
rate_values[RATE_CREATURE_SPELLDAMAGE_RAREELITE] = sConfigMgr->GetFloatDefault("Rate.Creature.SpellDamage.RareElite", 1.0f);
|
||||
rate_values[RATE_CREATURE_SPELLDAMAGE_OBSOLETE] = sConfigMgr->GetFloatDefault("Rate.Creature.SpellDamage.Obsolete", 1.0f);
|
||||
rate_values[RATE_CREATURE_SPELLDAMAGE_RARE] = sConfigMgr->GetFloatDefault("Rate.Creature.SpellDamage.Rare", 1.0f);
|
||||
rate_values[RATE_CREATURE_SPELLDAMAGE_TRIVIAL] = sConfigMgr->GetFloatDefault("Rate.Creature.SpellDamage.Trivial", 1.0f);
|
||||
rate_values[RATE_CREATURE_SPELLDAMAGE_MINUSMOB] = sConfigMgr->GetFloatDefault("Rate.Creature.SpellDamage.MinusMob", 1.0f);
|
||||
rate_values[RATE_CREATURE_AGGRO] = sConfigMgr->GetFloatDefault("Rate.Creature.Aggro", 1.0f);
|
||||
rate_values[RATE_REST_INGAME] = sConfigMgr->GetFloatDefault("Rate.Rest.InGame", 1.0f);
|
||||
rate_values[RATE_REST_OFFLINE_IN_TAVERN_OR_CITY] = sConfigMgr->GetFloatDefault("Rate.Rest.Offline.InTavernOrCity", 1.0f);
|
||||
rate_values[RATE_REST_OFFLINE_IN_WILDERNESS] = sConfigMgr->GetFloatDefault("Rate.Rest.Offline.InWilderness", 1.0f);
|
||||
rate_values[RATE_DAMAGE_FALL] = sConfigMgr->GetFloatDefault("Rate.Damage.Fall", 1.0f);
|
||||
rate_values[RATE_AUCTION_TIME] = sConfigMgr->GetFloatDefault("Rate.Auction.Time", 1.0f);
|
||||
rate_values[RATE_AUCTION_DEPOSIT] = sConfigMgr->GetFloatDefault("Rate.Auction.Deposit", 1.0f);
|
||||
rate_values[RATE_AUCTION_CUT] = sConfigMgr->GetFloatDefault("Rate.Auction.Cut", 1.0f);
|
||||
rate_values[RATE_HONOR] = sConfigMgr->GetFloatDefault("Rate.Honor", 1.0f);
|
||||
rate_values[RATE_INSTANCE_RESET_TIME] = sConfigMgr->GetFloatDefault("Rate.InstanceResetTime", 1.0f);
|
||||
rate_values[RATE_TALENT] = sConfigMgr->GetFloatDefault("Rate.Talent", 1.0f);
|
||||
if (rate_values[RATE_TALENT] < 0.0f)
|
||||
{
|
||||
TC_LOG_ERROR("server.loading", "Rate.Talent ({}) must be > 0. Using 1 instead.", rate_values[RATE_TALENT]);
|
||||
@@ -1291,11 +1297,12 @@ void World::LoadConfigSettings(bool reload)
|
||||
m_int_configs[CONFIG_CHAT_STRICT_LINK_CHECKING_SEVERITY] = sConfigMgr->GetIntDefault("ChatStrictLinkChecking.Severity", 0);
|
||||
m_int_configs[CONFIG_CHAT_STRICT_LINK_CHECKING_KICK] = sConfigMgr->GetIntDefault("ChatStrictLinkChecking.Kick", 0);
|
||||
|
||||
m_int_configs[CONFIG_CORPSE_DECAY_NORMAL] = sConfigMgr->GetIntDefault("Corpse.Decay.NORMAL", 60);
|
||||
m_int_configs[CONFIG_CORPSE_DECAY_RARE] = sConfigMgr->GetIntDefault("Corpse.Decay.RARE", 300);
|
||||
m_int_configs[CONFIG_CORPSE_DECAY_ELITE] = sConfigMgr->GetIntDefault("Corpse.Decay.ELITE", 300);
|
||||
m_int_configs[CONFIG_CORPSE_DECAY_RAREELITE] = sConfigMgr->GetIntDefault("Corpse.Decay.RAREELITE", 300);
|
||||
m_int_configs[CONFIG_CORPSE_DECAY_WORLDBOSS] = sConfigMgr->GetIntDefault("Corpse.Decay.WORLDBOSS", 3600);
|
||||
m_int_configs[CONFIG_CORPSE_DECAY_NORMAL] = sConfigMgr->GetIntDefault("Corpse.Decay.Normal", 60);
|
||||
m_int_configs[CONFIG_CORPSE_DECAY_ELITE] = sConfigMgr->GetIntDefault("Corpse.Decay.Elite", 300);
|
||||
m_int_configs[CONFIG_CORPSE_DECAY_RAREELITE] = sConfigMgr->GetIntDefault("Corpse.Decay.RareElite", 300);
|
||||
m_int_configs[CONFIG_CORPSE_DECAY_OBSOLETE] = sConfigMgr->GetIntDefault("Corpse.Decay.Obsolete", 3600);
|
||||
m_int_configs[CONFIG_CORPSE_DECAY_TRIVIAL] = sConfigMgr->GetIntDefault("Corpse.Decay.Trivial", 300);
|
||||
m_int_configs[CONFIG_CORPSE_DECAY_MINUSMOB] = sConfigMgr->GetIntDefault("Corpse.Decay.MinusMob", 150);
|
||||
|
||||
m_int_configs[CONFIG_DEATH_SICKNESS_LEVEL] = sConfigMgr->GetIntDefault ("Death.SicknessLevel", 11);
|
||||
m_bool_configs[CONFIG_DEATH_CORPSE_RECLAIM_DELAY_PVP] = sConfigMgr->GetBoolDefault("Death.CorpseReclaimDelay.PvP", true);
|
||||
|
||||
@@ -326,10 +326,12 @@ enum WorldIntConfigs
|
||||
CONFIG_AUCTION_LEVEL_REQ,
|
||||
CONFIG_MAIL_LEVEL_REQ,
|
||||
CONFIG_CORPSE_DECAY_NORMAL,
|
||||
CONFIG_CORPSE_DECAY_RARE,
|
||||
CONFIG_CORPSE_DECAY_ELITE,
|
||||
CONFIG_CORPSE_DECAY_RAREELITE,
|
||||
CONFIG_CORPSE_DECAY_WORLDBOSS,
|
||||
CONFIG_CORPSE_DECAY_OBSOLETE,
|
||||
CONFIG_CORPSE_DECAY_RARE,
|
||||
CONFIG_CORPSE_DECAY_TRIVIAL,
|
||||
CONFIG_CORPSE_DECAY_MINUSMOB,
|
||||
CONFIG_DEATH_SICKNESS_LEVEL,
|
||||
CONFIG_INSTANT_LOGOUT,
|
||||
CONFIG_DISABLE_BREATHING,
|
||||
@@ -486,21 +488,27 @@ enum Rates
|
||||
RATE_REPUTATION_LOWLEVEL_KILL,
|
||||
RATE_REPUTATION_LOWLEVEL_QUEST,
|
||||
RATE_REPUTATION_RECRUIT_A_FRIEND_BONUS,
|
||||
RATE_CREATURE_NORMAL_HP,
|
||||
RATE_CREATURE_ELITE_ELITE_HP,
|
||||
RATE_CREATURE_ELITE_RAREELITE_HP,
|
||||
RATE_CREATURE_ELITE_WORLDBOSS_HP,
|
||||
RATE_CREATURE_ELITE_RARE_HP,
|
||||
RATE_CREATURE_NORMAL_DAMAGE,
|
||||
RATE_CREATURE_ELITE_ELITE_DAMAGE,
|
||||
RATE_CREATURE_ELITE_RAREELITE_DAMAGE,
|
||||
RATE_CREATURE_ELITE_WORLDBOSS_DAMAGE,
|
||||
RATE_CREATURE_ELITE_RARE_DAMAGE,
|
||||
RATE_CREATURE_NORMAL_SPELLDAMAGE,
|
||||
RATE_CREATURE_ELITE_ELITE_SPELLDAMAGE,
|
||||
RATE_CREATURE_ELITE_RAREELITE_SPELLDAMAGE,
|
||||
RATE_CREATURE_ELITE_WORLDBOSS_SPELLDAMAGE,
|
||||
RATE_CREATURE_ELITE_RARE_SPELLDAMAGE,
|
||||
RATE_CREATURE_HP_NORMAL,
|
||||
RATE_CREATURE_HP_ELITE,
|
||||
RATE_CREATURE_HP_RAREELITE,
|
||||
RATE_CREATURE_HP_OBSOLETE,
|
||||
RATE_CREATURE_HP_RARE,
|
||||
RATE_CREATURE_HP_TRIVIAL,
|
||||
RATE_CREATURE_HP_MINUSMOB,
|
||||
RATE_CREATURE_DAMAGE_NORMAL,
|
||||
RATE_CREATURE_DAMAGE_ELITE,
|
||||
RATE_CREATURE_DAMAGE_RAREELITE,
|
||||
RATE_CREATURE_DAMAGE_OBSOLETE,
|
||||
RATE_CREATURE_DAMAGE_RARE,
|
||||
RATE_CREATURE_DAMAGE_TRIVIAL,
|
||||
RATE_CREATURE_DAMAGE_MINUSMOB,
|
||||
RATE_CREATURE_SPELLDAMAGE_NORMAL,
|
||||
RATE_CREATURE_SPELLDAMAGE_ELITE,
|
||||
RATE_CREATURE_SPELLDAMAGE_RAREELITE,
|
||||
RATE_CREATURE_SPELLDAMAGE_OBSOLETE,
|
||||
RATE_CREATURE_SPELLDAMAGE_RARE,
|
||||
RATE_CREATURE_SPELLDAMAGE_TRIVIAL,
|
||||
RATE_CREATURE_SPELLDAMAGE_MINUSMOB,
|
||||
RATE_CREATURE_AGGRO,
|
||||
RATE_REST_INGAME,
|
||||
RATE_REST_OFFLINE_IN_TAVERN_OR_CITY,
|
||||
|
||||
@@ -1787,23 +1787,29 @@ CreatureFamilyFleeDelay = 7000
|
||||
WorldBossLevelDiff = 3
|
||||
|
||||
#
|
||||
# Corpse.Decay.NORMAL
|
||||
# Corpse.Decay.RARE
|
||||
# Corpse.Decay.ELITE
|
||||
# Corpse.Decay.RAREELITE
|
||||
# Corpse.Decay.WORLDBOSS
|
||||
# Corpse.Decay.Normal
|
||||
# Corpse.Decay.Elite
|
||||
# Corpse.Decay.RareElite
|
||||
# Corpse.Decay.Obsolete
|
||||
# Corpse.Decay.Rare
|
||||
# Corpse.Decay.Trivial
|
||||
# Corpse.Decay.MinusMob
|
||||
# Description: Time (in seconds) until creature corpse will decay if not looted or skinned.
|
||||
# Default: 300 - (5 Minutes, Corpse.Decay.NORMAL)
|
||||
# 300 - (5 Minutes, Corpse.Decay.RARE)
|
||||
# 300 - (5 Minutes, Corpse.Decay.ELITE)
|
||||
# 300 - (5 Minutes, Corpse.Decay.RAREELITE)
|
||||
# 3600 - (1 Hour, Corpse.Decay.WORLDBOSS)
|
||||
# Default: 300 - (5 Minutes, Corpse.Decay.Normal)
|
||||
# 300 - (5 Minutes, Corpse.Decay.Elite)
|
||||
# 300 - (5 Minutes, Corpse.Decay.RareElite)
|
||||
# 3600 - (1 Hour, Corpse.Decay.Obsolete)
|
||||
# 300 - (5 Minutes, Corpse.Decay.Rare)
|
||||
# 300 - (5 Minutes, Corpse.Decay.Trivial)
|
||||
# 150 - (2.5 Minutes, Corpse.Decay.MinusMob)
|
||||
|
||||
Corpse.Decay.NORMAL = 300
|
||||
Corpse.Decay.RARE = 300
|
||||
Corpse.Decay.ELITE = 300
|
||||
Corpse.Decay.RAREELITE = 300
|
||||
Corpse.Decay.WORLDBOSS = 3600
|
||||
Corpse.Decay.Normal = 300
|
||||
Corpse.Decay.Elite = 300
|
||||
Corpse.Decay.RareElite = 300
|
||||
Corpse.Decay.Obsolete = 3600
|
||||
Corpse.Decay.Rare = 300
|
||||
Corpse.Decay.Trivial = 300
|
||||
Corpse.Decay.MinusMob = 150
|
||||
|
||||
#
|
||||
# Rate.Corpse.Decay.Looted
|
||||
@@ -1814,62 +1820,79 @@ Corpse.Decay.WORLDBOSS = 3600
|
||||
Rate.Corpse.Decay.Looted = 0.5
|
||||
|
||||
#
|
||||
# Rate.Creature.Normal.Damage
|
||||
# Rate.Creature.Elite.Elite.Damage
|
||||
# Rate.Creature.Elite.RARE.Damage
|
||||
# Rate.Creature.Elite.RAREELITE.Damage
|
||||
# Rate.Creature.Elite.WORLDBOSS.Damage
|
||||
# Rate.Creature.Damage.Normal
|
||||
# Rate.Creature.Damage.Elite
|
||||
# Rate.Creature.Damage.RareElite
|
||||
# Rate.Creature.Damage.Obsolete
|
||||
# Rate.Creature.Damage.Rare
|
||||
# Rate.Creature.Damage.Trivial
|
||||
# Rate.Creature.Damage.MinusMob
|
||||
# Description: Multiplier for creature melee damage.
|
||||
# Default: 1 - (Rate.Creature.Normal.Damage)
|
||||
# 1 - (Rate.Creature.Elite.Elite.Damage)
|
||||
# 1 - (Rate.Creature.Elite.RARE.Damage)
|
||||
# 1 - (Rate.Creature.Elite.RAREELITE.Damage)
|
||||
# 1 - (Rate.Creature.Elite.WORLDBOSS.Damage)
|
||||
#
|
||||
# Default: 1 - (Rate.Creature.Damage.Normal)
|
||||
# 1 - (Rate.Creature.Damage.Elite)
|
||||
# 1 - (Rate.Creature.Damage.RareElite)
|
||||
# 1 - (Rate.Creature.Damage.Obsolete)
|
||||
# 1 - (Rate.Creature.Damage.Rare)
|
||||
# 1 - (Rate.Creature.Damage.Trivial)
|
||||
# 1 - (Rate.Creature.Damage.MinusMob)
|
||||
|
||||
Rate.Creature.Normal.Damage = 1
|
||||
Rate.Creature.Elite.Elite.Damage = 1
|
||||
Rate.Creature.Elite.RARE.Damage = 1
|
||||
Rate.Creature.Elite.RAREELITE.Damage = 1
|
||||
Rate.Creature.Elite.WORLDBOSS.Damage = 1
|
||||
Rate.Creature.Damage.Normal = 1
|
||||
Rate.Creature.Damage.Elite = 1
|
||||
Rate.Creature.Damage.RareElite = 1
|
||||
Rate.Creature.Damage.Obsolete = 1
|
||||
Rate.Creature.Damage.Rare = 1
|
||||
Rate.Creature.Damage.Trivial = 1
|
||||
Rate.Creature.Damage.MinusMob = 1
|
||||
|
||||
#
|
||||
# Rate.Creature.Normal.SpellDamage
|
||||
# Rate.Creature.Elite.Elite.SpellDamage
|
||||
# Rate.Creature.Elite.RARE.SpellDamage
|
||||
# Rate.Creature.Elite.RAREELITE.SpellDamage
|
||||
# Rate.Creature.Elite.WORLDBOSS.SpellDamage
|
||||
# Rate.Creature.SpellDamage.Normal
|
||||
# Rate.Creature.SpellDamage.Elite
|
||||
# Rate.Creature.SpellDamage.RareElite
|
||||
# Rate.Creature.SpellDamage.Obsolete
|
||||
# Rate.Creature.SpellDamage.Rare
|
||||
# Rate.Creature.SpellDamage.Trivial
|
||||
# Rate.Creature.SpellDamage.MinusMob
|
||||
# Description: Multiplier for creature spell damage.
|
||||
# Default: 1 - (Rate.Creature.Normal.SpellDamage)
|
||||
# 1 - (Rate.Creature.Elite.Elite.SpellDamage)
|
||||
# 1 - (Rate.Creature.Elite.RARE.SpellDamage)
|
||||
# 1 - (Rate.Creature.Elite.RAREELITE.SpellDamage)
|
||||
# 1 - (Rate.Creature.Elite.WORLDBOSS.SpellDamage)
|
||||
# Default: 1 - (Rate.Creature.SpellDamage.Normal)
|
||||
# 1 - (Rate.Creature.SpellDamage.Elite)
|
||||
# 1 - (Rate.Creature.SpellDamage.RareElite)
|
||||
# 1 - (Rate.Creature.SpellDamage.Obsolete)
|
||||
# 1 - (Rate.Creature.SpellDamage.Rare)
|
||||
# 1 - (Rate.Creature.SpellDamage.Trivial)
|
||||
# 1 - (Rate.Creature.SpellDamage.MinusMob)
|
||||
|
||||
Rate.Creature.Normal.SpellDamage = 1
|
||||
Rate.Creature.Elite.Elite.SpellDamage = 1
|
||||
Rate.Creature.Elite.RARE.SpellDamage = 1
|
||||
Rate.Creature.Elite.RAREELITE.SpellDamage = 1
|
||||
Rate.Creature.Elite.WORLDBOSS.SpellDamage = 1
|
||||
Rate.Creature.SpellDamage.Normal = 1
|
||||
Rate.Creature.SpellDamage.Elite = 1
|
||||
Rate.Creature.SpellDamage.RareElite = 1
|
||||
Rate.Creature.SpellDamage.Obsolete = 1
|
||||
Rate.Creature.SpellDamage.Rare = 1
|
||||
Rate.Creature.SpellDamage.Trivial = 1
|
||||
Rate.Creature.SpellDamage.MinusMob = 1
|
||||
|
||||
#
|
||||
# Rate.Creature.Normal.HP
|
||||
# Rate.Creature.Elite.Elite.HP
|
||||
# Rate.Creature.Elite.RARE.HP
|
||||
# Rate.Creature.Elite.RAREELITE.HP
|
||||
# Rate.Creature.Elite.WORLDBOSS.HP
|
||||
# Description: Multiplier for creature health.
|
||||
# Default: 1 - (Rate.Creature.Normal.HP)
|
||||
# 1 - (Rate.Creature.Elite.Elite.HP)
|
||||
# 1 - (Rate.Creature.Elite.RARE.HP)
|
||||
# 1 - (Rate.Creature.Elite.RAREELITE.HP)
|
||||
# 1 - (Rate.Creature.Elite.WORLDBOSS.HP)
|
||||
# Rate.Creature.HP.Normal
|
||||
# Rate.Creature.HP.Elite
|
||||
# Rate.Creature.HP.RareElite
|
||||
# Rate.Creature.HP.Obsolete
|
||||
# Rate.Creature.HP.Rare
|
||||
# Rate.Creature.HP.Trivial
|
||||
# Rate.Creature.HP.MinusMob
|
||||
# Description: Multiplier for creature spell damage.
|
||||
# Default: 1 - (Rate.Creature.HP.Normal)
|
||||
# 1 - (Rate.Creature.HP.Elite)
|
||||
# 1 - (Rate.Creature.HP.RareElite)
|
||||
# 1 - (Rate.Creature.HP.Obsolete)
|
||||
# 1 - (Rate.Creature.HP.Rare)
|
||||
# 1 - (Rate.Creature.HP.Trivial)
|
||||
# 1 - (Rate.Creature.HP.MinusMob)
|
||||
|
||||
Rate.Creature.Normal.HP = 1
|
||||
Rate.Creature.Elite.Elite.HP = 1
|
||||
Rate.Creature.Elite.RARE.HP = 1
|
||||
Rate.Creature.Elite.RAREELITE.HP = 1
|
||||
Rate.Creature.Elite.WORLDBOSS.HP = 1
|
||||
Rate.Creature.HP.Normal = 1
|
||||
Rate.Creature.HP.Elite = 1
|
||||
Rate.Creature.HP.RareElite = 1
|
||||
Rate.Creature.HP.Obsolete = 1
|
||||
Rate.Creature.HP.Rare = 1
|
||||
Rate.Creature.HP.Trivial = 1
|
||||
Rate.Creature.HP.MinusMob = 1
|
||||
|
||||
#
|
||||
# Creature.PickPocketRefillDelay
|
||||
|
||||
Reference in New Issue
Block a user