*Update to Mangos 6995.
--HG-- branch : trunk
This commit is contained in:
+13
-10
@@ -2071,7 +2071,7 @@ void Player::SetGameMaster(bool on)
|
||||
setFaction(35);
|
||||
SetFlag(PLAYER_FLAGS, PLAYER_FLAGS_GM);
|
||||
|
||||
RemoveFlag(PLAYER_FLAGS, PLAYER_FLAGS_FFA_PVP);
|
||||
RemoveByteFlag(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_FFA_PVP);
|
||||
ResetContestedPvP();
|
||||
|
||||
getHostilRefManager().setOnlineOfflineState(false);
|
||||
@@ -2085,7 +2085,7 @@ void Player::SetGameMaster(bool on)
|
||||
|
||||
// restore FFA PvP Server state
|
||||
if(sWorld.IsFFAPvPRealm())
|
||||
SetFlag(PLAYER_FLAGS,PLAYER_FLAGS_FFA_PVP);
|
||||
SetByteFlag(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_FFA_PVP);
|
||||
|
||||
// restore FFA PvP area state, remove not allowed for GM mounts
|
||||
UpdateArea(m_areaUpdateId);
|
||||
@@ -2464,9 +2464,10 @@ void Player::InitStatsForLevel(bool reapplyMods)
|
||||
SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP_ATTACKABLE ); // must be set
|
||||
|
||||
// cleanup player flags (will be re-applied if need at aura load), to avoid have ghost flag without ghost aura, for example.
|
||||
RemoveFlag(PLAYER_FLAGS, PLAYER_FLAGS_AFK | PLAYER_FLAGS_DND | PLAYER_FLAGS_GM | PLAYER_FLAGS_GHOST | PLAYER_FLAGS_FFA_PVP);
|
||||
RemoveFlag(PLAYER_FLAGS, PLAYER_FLAGS_AFK | PLAYER_FLAGS_DND | PLAYER_FLAGS_GM | PLAYER_FLAGS_GHOST);
|
||||
|
||||
SetByteValue(UNIT_FIELD_BYTES_1, 2, 0x00); // one form stealth modified bytes
|
||||
RemoveByteFlag(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_FFA_PVP | UNIT_BYTE2_FLAG_SANCTUARY);
|
||||
|
||||
// restore if need some important flags
|
||||
SetUInt32Value(PLAYER_FIELD_BYTES2, 0 ); // flags empty by default
|
||||
@@ -3107,6 +3108,8 @@ void Player::removeSpell(uint32 spell_id, bool disabled)
|
||||
|
||||
for(SpellLearnSpellMap::const_iterator itr2 = spell_begin; itr2 != spell_end; ++itr2)
|
||||
removeSpell(itr2->second.spell, disabled);
|
||||
|
||||
// TODO: recast if need lesser ranks spell for passive with IsPassiveSpellStackableWithRanks
|
||||
}
|
||||
|
||||
void Player::RemoveArenaSpellCooldowns()
|
||||
@@ -6341,14 +6344,14 @@ void Player::UpdateArea(uint32 newArea)
|
||||
if(area && (area->flags & AREA_FLAG_ARENA))
|
||||
{
|
||||
if(!isGameMaster())
|
||||
SetFlag(PLAYER_FLAGS, PLAYER_FLAGS_FFA_PVP);
|
||||
SetByteFlag(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_FFA_PVP);
|
||||
}
|
||||
else
|
||||
{
|
||||
// remove ffa flag only if not ffapvp realm
|
||||
// removal in sanctuaries and capitals is handled in zone update
|
||||
if(HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_FFA_PVP) && !sWorld.IsFFAPvPRealm())
|
||||
RemoveFlag(PLAYER_FLAGS, PLAYER_FLAGS_FFA_PVP);
|
||||
if(HasByteFlag(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_FFA_PVP) && !sWorld.IsFFAPvPRealm())
|
||||
RemoveByteFlag(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_FFA_PVP);
|
||||
}
|
||||
|
||||
UpdateAreaDependentAuras(newArea);
|
||||
@@ -6412,7 +6415,7 @@ void Player::UpdateZone(uint32 newZone)
|
||||
{
|
||||
SetByteFlag(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_SANCTUARY);
|
||||
if(sWorld.IsFFAPvPRealm())
|
||||
RemoveFlag(PLAYER_FLAGS,PLAYER_FLAGS_FFA_PVP);
|
||||
RemoveByteFlag(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_FFA_PVP);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -6426,7 +6429,7 @@ void Player::UpdateZone(uint32 newZone)
|
||||
InnEnter(time(0),GetMapId(),0,0,0);
|
||||
|
||||
if(sWorld.IsFFAPvPRealm())
|
||||
RemoveFlag(PLAYER_FLAGS,PLAYER_FLAGS_FFA_PVP);
|
||||
RemoveByteFlag(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_FFA_PVP);
|
||||
}
|
||||
else // anywhere else
|
||||
{
|
||||
@@ -6440,7 +6443,7 @@ void Player::UpdateZone(uint32 newZone)
|
||||
SetRestType(REST_TYPE_NO);
|
||||
|
||||
if(sWorld.IsFFAPvPRealm())
|
||||
SetFlag(PLAYER_FLAGS,PLAYER_FLAGS_FFA_PVP);
|
||||
SetByteFlag(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_FFA_PVP);
|
||||
}
|
||||
}
|
||||
else // not in tavern (leave city then)
|
||||
@@ -6450,7 +6453,7 @@ void Player::UpdateZone(uint32 newZone)
|
||||
|
||||
// Set player to FFA PVP when not in rested environment.
|
||||
if(sWorld.IsFFAPvPRealm())
|
||||
SetFlag(PLAYER_FLAGS,PLAYER_FLAGS_FFA_PVP);
|
||||
SetByteFlag(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_FFA_PVP);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user