Implemented SE_FactionModPct - Modifies faction gains and losses by percent.

This commit is contained in:
KayenEQ
2014-07-02 11:54:59 -04:00
committed by Arthur Ice
parent ede9d557a3
commit 9af74e6468
5 changed files with 32 additions and 1 deletions
+26
View File
@@ -1315,6 +1315,16 @@ void Client::ApplyAABonuses(uint32 aaid, uint32 slots, StatBonuses* newbon)
newbon->PetMeleeMitigation += base1;
break;
case SE_FactionModPct:
{
if((base1 < 0) && (newbon->FactionModPct > base1))
newbon->FactionModPct = base1;
else if(newbon->FactionModPct < base1)
newbon->FactionModPct = base1;
break;
}
}
}
}
@@ -2860,6 +2870,16 @@ void Mob::ApplySpellsBonuses(uint16 spell_id, uint8 casterlevel, StatBonuses* ne
newbon->Sanctuary = true;
break;
case SE_FactionModPct:
{
if((effect_value < 0) && (newbon->FactionModPct > effect_value))
newbon->FactionModPct = effect_value;
else if(newbon->FactionModPct < effect_value)
newbon->FactionModPct = effect_value;
break;
}
//Special custom cases for loading effects on to NPC from 'npc_spels_effects' table
if (IsAISpellEffect) {
@@ -4338,6 +4358,12 @@ void Mob::NegateSpellsBonuses(uint16 spell_id)
spellbonuses.Sanctuary = effect_value;
break;
case SE_FactionModPct:
spellbonuses.FactionModPct = effect_value;
itembonuses.FactionModPct = effect_value;
aabonuses.FactionModPct = effect_value;
break;
}
}
}
+3
View File
@@ -7629,6 +7629,9 @@ void Client::SetFactionLevel(uint32 char_id, uint32 npc_id, uint8 char_class, ui
if(npc_value[i] != 0) {
tmpValue = current_value + mod + npc_value[i];
int16 FactionModPct = spellbonuses.FactionModPct + itembonuses.FactionModPct + aabonuses.FactionModPct;
tmpValue += (tmpValue * FactionModPct) / 100;
// Make sure faction hits don't go to GMs...
if (m_pp.gm==1 && (tmpValue < current_value)) {
tmpValue = current_value;
+1
View File
@@ -373,6 +373,7 @@ struct StatBonuses {
bool BerserkSPA; // berserk effect
int16 Metabolism; // Food/drink consumption rates.
bool Sanctuary; // Sanctuary effect, lowers place on hate list until cast on others.
int16 FactionModPct; // Modifies amount of faction gained.
// AAs
int8 Packrat; //weight reduction for items, 1 point = 10%