Index: src/server/zone/managers/group/GroupManager.cpp =================================================================== --- src/server/zone/managers/group/GroupManager.cpp (revision 6112) +++ src/server/zone/managers/group/GroupManager.cpp (working copy) @@ -51,6 +51,7 @@ #include "../../objects/creature/CreatureObject.h" #include "../../objects/creature/CreatureObject.h" +#include "server/zone/objects/player/PlayerObject.h" #include "../../objects/group/GroupObject.h" #include "server/chat/StringIdChatParameter.h" @@ -78,6 +79,12 @@ leader->sendSystemMessage("@group:must_be_leader"); return; } + + // can't invite if the group is full + if (group->getGroupSize() == 2) { + leader->sendSystemMessage("@group:full"); + return; + } } if (player->isGrouped()) { @@ -150,12 +157,12 @@ Locker clocker2(group, player); - if (group->getGroupSize() == 20) { + if (group->getGroupSize() == 2) { clocker.release(); player->updateGroupInviterID(0); - player->sendSystemMessage("@group:full"); + player->sendSystemMessage("The group is full."); return; } @@ -176,6 +183,11 @@ player->updateGroup(group); player->sendSystemMessage("@group:joined_self"); + // clear invitee's LFG setting once a group is joined + PlayerObject* ghost = cast(player->getSlottedObject("ghost")); + if (ghost != NULL) + ghost->clearCharacterBit(PlayerObject::LFG, true); + ManagedReference groupChannel = group->getGroupChannel(); if (groupChannel != NULL && player->isPlayerCreature()) { @@ -206,6 +218,11 @@ leader->updateGroup(group); leader->sendSystemMessage("@group:formed_self"); + // clear inviter's LFG setting once a group is created + PlayerObject* ghost = cast(leader->getSlottedObject("ghost")); + if (ghost != NULL) + ghost->clearCharacterBit(PlayerObject::LFG, true); + if (leader->getGroupInviterID() != 0) leader->updateGroupInviterID(0);