View Single Post
  #8  
Old 03-24-2004, 05:30 AM
smogo
Discordant
 
Join Date: Jan 2004
Location: 47
Posts: 339
Default

it may not not be THAT complicated, as the groups code is quite compact. At first glance, a 'simple check' on level in the Group::AddMember in zone/groups.cpp would do it.

If it is only to reproduce 'official' EQ behaviour, get the max level of all actual members in a group (there is already such function), and fail to add a new member if level gap is too high. As a group is always created with a member, there should be no problem...

Basically :
Code:
  if ((i == MAX_GROUP_MEMBERS) || (!newmember->IsClient()))
    return false;
changed to :
Code:
  if ((i == MAX_GROUP_MEMBERS) || (!newmember->IsClient())
      || abs(newmember->CastToClient.GetLevel() -GetHighestLevel()) > 6 )
    return false;
for a (very|too) simple check. More accurate checks can be thought of. Did not test it though, but as you mentionned it ...

At first glance, again, no other part of the code is to be changed
Reply With Quote