mirror of
https://github.com/araxiaonline/TrinityCore.git
synced 2026-06-16 13:09:50 -04:00
[8455] Do not disband guild, if guild ranks are not defined for that guild, removed obsolete comment.
Do not allow to delete guild rank, when there are only 5 or less ranks defined.
Signed-off-by: Triply <triply@getmangos.com>
--HG--
branch : trunk
This commit is contained in:
@@ -299,7 +299,11 @@ bool Guild::LoadRanksFromDB(uint32 GuildId)
|
||||
QueryResult *result = CharacterDatabase.PQuery("SELECT rid,rname,rights,BankMoneyPerDay FROM guild_rank WHERE guildid = '%u' ORDER BY rid ASC", GuildId);
|
||||
|
||||
if(!result)
|
||||
return false;
|
||||
{
|
||||
sLog.outError("Guild %u has broken `guild_rank` data, creating new...",GuildId);
|
||||
CreateDefaultGuildRanks(0);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool broken_ranks = false;
|
||||
|
||||
@@ -343,7 +347,6 @@ bool Guild::LoadRanksFromDB(uint32 GuildId)
|
||||
CharacterDatabase.PExecute("DELETE FROM guild_rank WHERE guildid='%u'", GuildId);
|
||||
for(size_t i = 0; i < m_Ranks.size(); ++i)
|
||||
{
|
||||
// guild_rank.rid always store rank+1
|
||||
std::string name = m_Ranks[i].name;
|
||||
uint32 rights = m_Ranks[i].rights;
|
||||
CharacterDatabase.escape_string(name);
|
||||
@@ -643,7 +646,8 @@ void Guild::AddRank(const std::string& name_,uint32 rights, uint32 money)
|
||||
|
||||
void Guild::DelRank()
|
||||
{
|
||||
if(m_Ranks.empty())
|
||||
// client won't allow to have less than GUILD_RANKS_MIN_COUNT ranks in guild
|
||||
if(m_Ranks.size() <= GUILD_RANKS_MIN_COUNT)
|
||||
return;
|
||||
|
||||
// delete lowest guild_rank
|
||||
|
||||
@@ -333,7 +333,7 @@ pAuraHandler AuraHandler[TOTAL_AURAS]=
|
||||
&Aura::HandleNoImmediateEffect, //277 SPELL_AURA_MOD_ABILITY_AFFECTED_TARGETS implemented in spell::settargetmap
|
||||
&Aura::HandleAuraModDisarm, //278 SPELL_AURA_MOD_DISARM_RANGED disarm ranged weapon
|
||||
&Aura::HandleAuraInitializeImages, //279 SPELL_AURA_INITIALIZE_IMAGES
|
||||
&Aura::HandleNoImmediateEffect, //280 SPELL_AURA_MOD_ARMOR_PENETRATION_PCT
|
||||
&Aura::HandleNoImmediateEffect, //280 SPELL_AURA_MOD_TARGET_ARMOR_PCT implemented in Unit::CalcArmorReducedDamage
|
||||
&Aura::HandleNoImmediateEffect, //281 SPELL_AURA_MOD_HONOR_GAIN_PCT implemented in Player::RewardHonor
|
||||
&Aura::HandleAuraIncreaseBaseHealthPercent, //282 SPELL_AURA_INCREASE_BASE_HEALTH_PERCENT
|
||||
&Aura::HandleNoImmediateEffect, //283 SPELL_AURA_MOD_HEALING_RECEIVED implemented in Unit::SpellHealingBonus
|
||||
|
||||
@@ -1615,6 +1615,7 @@ uint32 Unit::CalcArmorReducedDamage(Unit* pVictim, const uint32 damage, SpellEnt
|
||||
{
|
||||
uint32 newdamage = 0;
|
||||
float armor = pVictim->GetArmor();
|
||||
|
||||
// Ignore enemy armor by SPELL_AURA_MOD_TARGET_RESISTANCE aura
|
||||
armor += GetTotalAuraModifierByMiscMask(SPELL_AURA_MOD_TARGET_RESISTANCE, SPELL_SCHOOL_MASK_NORMAL);
|
||||
|
||||
@@ -1679,19 +1680,24 @@ uint32 Unit::CalcArmorReducedDamage(Unit* pVictim, const uint32 damage, SpellEnt
|
||||
armor -= armorPen;
|
||||
}
|
||||
|
||||
if (armor < 0.0f) armor=0.0f;
|
||||
// Ignore enemy armor by SPELL_AURA_MOD_TARGET_ARMOR_PCT
|
||||
//armor *= 1.0f - GetTotalAuraModifier(SPELL_AURA_MOD_ARMOR_PENETRATION_PCT) / 100.0f;
|
||||
|
||||
if (armor < 0.0f)
|
||||
armor = 0.0f;
|
||||
|
||||
float levelModifier = getLevel();
|
||||
if ( levelModifier > 59 )
|
||||
if (levelModifier > 59)
|
||||
levelModifier = levelModifier + (4.5f * (levelModifier-59));
|
||||
|
||||
float tmpvalue = 0.1f * armor / (8.5f * levelModifier + 40);
|
||||
tmpvalue = tmpvalue/(1.0f + tmpvalue);
|
||||
|
||||
if(tmpvalue < 0.0f)
|
||||
if (tmpvalue < 0.0f)
|
||||
tmpvalue = 0.0f;
|
||||
if(tmpvalue > 0.75f)
|
||||
if (tmpvalue > 0.75f)
|
||||
tmpvalue = 0.75f;
|
||||
|
||||
newdamage = uint32(damage - (damage * tmpvalue));
|
||||
|
||||
return (newdamage > 1) ? newdamage : 1;
|
||||
|
||||
Reference in New Issue
Block a user