mirror of
https://github.com/EQEmu/Server.git
synced 2026-03-05 05:12:26 +00:00
[Faction] Alliance line is only allowed 1 faction change at a time. (#3718)
This commit is contained in:
parent
f9f45eedcd
commit
690cacdaab
27
zone/mob.cpp
27
zone/mob.cpp
@ -515,6 +515,7 @@ Mob::Mob(
|
|||||||
|
|
||||||
is_boat = IsBoat();
|
is_boat = IsBoat();
|
||||||
|
|
||||||
|
current_alliance_faction = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
Mob::~Mob()
|
Mob::~Mob()
|
||||||
@ -7126,24 +7127,10 @@ int8 Mob::GetDecayEffectValue(uint16 spell_id, uint16 spelleffect) {
|
|||||||
return effect_value;
|
return effect_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Faction Mods for Alliance type spells
|
// Faction Mods for Alliance type spells (only 1 ever active)
|
||||||
void Mob::AddFactionBonus(uint32 pFactionID,int32 bonus) {
|
void Mob::AddFactionBonus(uint32 pFactionID,int32 bonus) {
|
||||||
std::map <uint32, int32> :: const_iterator faction_bonus;
|
current_alliance_faction = pFactionID;
|
||||||
typedef std::pair <uint32, int32> NewFactionBonus;
|
current_alliance_mod = bonus;
|
||||||
|
|
||||||
faction_bonus = faction_bonuses.find(pFactionID);
|
|
||||||
if(faction_bonus == faction_bonuses.end())
|
|
||||||
{
|
|
||||||
faction_bonuses.emplace(NewFactionBonus(pFactionID,bonus));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if(faction_bonus->second<bonus)
|
|
||||||
{
|
|
||||||
faction_bonuses.erase(pFactionID);
|
|
||||||
faction_bonuses.emplace(NewFactionBonus(pFactionID,bonus));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Faction Mods from items
|
// Faction Mods from items
|
||||||
@ -7167,11 +7154,9 @@ void Mob::AddItemFactionBonus(uint32 pFactionID,int32 bonus) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int32 Mob::GetFactionBonus(uint32 pFactionID) {
|
int32 Mob::GetFactionBonus(uint32 pFactionID) {
|
||||||
std::map <uint32, int32> :: const_iterator faction_bonus;
|
if(current_alliance_faction == pFactionID)
|
||||||
faction_bonus = faction_bonuses.find(pFactionID);
|
|
||||||
if(faction_bonus != faction_bonuses.end())
|
|
||||||
{
|
{
|
||||||
return (*faction_bonus).second;
|
return current_alliance_mod;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1774,8 +1774,9 @@ protected:
|
|||||||
uint32 time_until_can_move;
|
uint32 time_until_can_move;
|
||||||
HateList hate_list;
|
HateList hate_list;
|
||||||
std::set<uint32> feign_memory_list;
|
std::set<uint32> feign_memory_list;
|
||||||
// This is to keep track of mobs we cast faction mod spells on
|
// This is to keep track of the current (one only) faction mod (alliance)
|
||||||
std::map<uint32,int32> faction_bonuses; // Primary FactionID, Bonus
|
uint32 current_alliance_faction;
|
||||||
|
int32 current_alliance_mod;
|
||||||
void AddFactionBonus(uint32 pFactionID,int32 bonus);
|
void AddFactionBonus(uint32 pFactionID,int32 bonus);
|
||||||
int32 GetFactionBonus(uint32 pFactionID);
|
int32 GetFactionBonus(uint32 pFactionID);
|
||||||
// This is to keep track of item faction modifiers
|
// This is to keep track of item faction modifiers
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user