Don't allow disbanding mercs that have their owner in combat if the rule is set.

This commit is contained in:
E Spause 2017-03-15 06:52:16 -04:00
parent b2c6bb4df5
commit f8d000d660

View File

@ -6582,8 +6582,7 @@ void Client::Handle_OP_GroupDisband(const EQApplicationPacket *app)
if (group->IsLeader(this))
{
// the group leader can kick other members out of the group...
if (memberToDisband->IsClient())
{
if (memberToDisband->IsClient()) {
group->DelMember(memberToDisband, false);
Client* memberClient = memberToDisband->CastToClient();
Merc* memberMerc = memberToDisband->CastToClient()->GetMerc();
@ -6592,9 +6591,19 @@ void Client::Handle_OP_GroupDisband(const EQApplicationPacket *app)
memberMerc->MercJoinClientGroup();
}
}
else if (memberToDisband->IsMerc())
{
memberToDisband->CastToMerc()->Suspend();
else if (memberToDisband->IsMerc()) {
//Can only remove mercs that aren't in combat if the rule is set.
if (!RuleB(Mercs, AllowMercSuspendInCombat)) {
Mob* mercOwner = memberToDisband->CastToMerc()->GetOwner();
if (mercOwner && mercOwner->IsClient()) {
if (mercOwner->CastToClient()->CheckCanSpawnMerc(mercOwner->CastToClient()->GetMercInfo().MercTemplateID)) {
memberToDisband->CastToMerc()->Suspend();
}
}
}
else {
memberToDisband->CastToMerc()->Suspend();
}
}
}
else