mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-22 10:05:32 +01:00
Core/LFG:
* added missing dungeon ID to high priestess Azil's encounter credit * fixed the last encounter lfg reward. Cataclysm dungeons use a single entry for both difficulties so the instance needs to find the proper dungeon for the difficulty. Fixed. * increased amount of required votes to kick a player from a party * use the remaining teleport error messages for their according purpose * use a bgdata location as teleport location when teleporting out of a dungeon * fixed lfg state after group has been formed * the amount of required roles is now determined by dbc values (thanks to Onkelz28) * added some safety checks for reward data packets if no quest is found * fixed lfr queue and reward display * add the possibility to make lfg reward quests repeatable. This is getting used for dungeon quests with valor point rewards. Setting the alternative quest once the limit has been reached is handled corewise now. * implement valor points display in the lfg window. Note: to see it for the first time you need at least 1 valor point * implement Call to Arms system. Thanks to Tisk for the base code * added loot for the Call to Arms Satches of Exotic mysteries
This commit is contained in:
@@ -241,6 +241,26 @@ void Group::ConvertToLFG()
|
||||
SendUpdate();
|
||||
}
|
||||
|
||||
void Group::ConvertToLFR()
|
||||
{
|
||||
m_groupType = GroupType(m_groupType | GROUPTYPE_LFG | GROUPTYPE_LFG_RESTRICTED | GROUPTYPE_RAID);
|
||||
m_lootMethod = NEED_BEFORE_GREED;
|
||||
|
||||
_initRaidSubGroupsCounter();
|
||||
|
||||
if (!isBGGroup() && !isBFGroup())
|
||||
{
|
||||
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_GROUP_TYPE);
|
||||
|
||||
stmt->setUInt8(0, uint8(m_groupType));
|
||||
stmt->setUInt32(1, m_dbStoreId);
|
||||
|
||||
CharacterDatabase.Execute(stmt);
|
||||
}
|
||||
|
||||
SendUpdate();
|
||||
}
|
||||
|
||||
void Group::ConvertToRaid()
|
||||
{
|
||||
m_groupType = GroupType(m_groupType | GROUPTYPE_RAID);
|
||||
@@ -2374,6 +2394,15 @@ void Group::SetLfgRoles(ObjectGuid guid, uint8 roles)
|
||||
SendUpdate();
|
||||
}
|
||||
|
||||
uint8 Group::GetLfgRoles(ObjectGuid guid)
|
||||
{
|
||||
member_witerator slot = _getMemberWSlot(guid);
|
||||
if (slot == m_memberSlots.end())
|
||||
return 0;
|
||||
|
||||
return slot->roles;
|
||||
}
|
||||
|
||||
bool Group::IsFull() const
|
||||
{
|
||||
return isRaidGroup() ? (m_memberSlots.size() >= MAXRAIDSIZE) : (m_memberSlots.size() >= MAXGROUPSIZE);
|
||||
@@ -2384,6 +2413,11 @@ bool Group::isLFGGroup() const
|
||||
return (m_groupType & GROUPTYPE_LFG) != 0;
|
||||
}
|
||||
|
||||
bool Group::isLFRGroup() const
|
||||
{
|
||||
return (m_groupType & GROUPTYPE_LFG) && (m_groupType & GROUPTYPE_RAID);
|
||||
}
|
||||
|
||||
bool Group::isRaidGroup() const
|
||||
{
|
||||
return (m_groupType & GROUPTYPE_RAID) != 0;
|
||||
|
||||
Reference in New Issue
Block a user