OpenNos.GameObject.Group.LeaveGroup C# (CSharp) Method

LeaveGroup() public method

public LeaveGroup ( ClientSession session ) : void
session ClientSession
return void
        public void LeaveGroup(ClientSession session)
        {
            session.Character.Group = null;
            _characters.Remove(session.Character.CharacterId);
        }

Usage Example

 public void GroupLeave(ClientSession session)
 {
     if (Groups != null)
     {
         Group grp = Instance.Groups.FirstOrDefault(s => s.IsMemberOfGroup(session.Character.CharacterId));
         if (grp != null)
         {
             if (grp.CharacterCount == 3)
             {
                 if (grp.Characters.ElementAt(0) == session)
                 {
                     Broadcast(session, session.Character.GenerateInfo(Language.Instance.GetMessageFromKey("NEW_LEADER")), ReceiverType.OnlySomeone, string.Empty, grp.Characters.ElementAt(1).Character.CharacterId);
                 }
                 grp.LeaveGroup(session);
                 foreach (ClientSession groupSession in grp.Characters)
                 {
                     ClientSession sess = GetSessionByCharacterId(groupSession.Character.CharacterId);
                     sess.SendPacket(sess.Character.GeneratePinit());
                     sess.SendPacket(sess.Character.GenerateMsg(string.Format(Language.Instance.GetMessageFromKey("LEAVE_GROUP"), session.Character.Name), 0));
                 }
                 session.SendPacket("pinit 0");
                 Broadcast(session.Character.GeneratePidx(true));
                 session.SendPacket(session.Character.GenerateMsg(Language.Instance.GetMessageFromKey("GROUP_LEFT"), 0));
             }
             else
             {
                 foreach (ClientSession targetSession in grp.Characters)
                 {
                     targetSession.SendPacket("pinit 0");
                     targetSession.SendPacket(targetSession.Character.GenerateMsg(Language.Instance.GetMessageFromKey("GROUP_CLOSED"), 0));
                     Broadcast(targetSession.Character.GeneratePidx(true));
                     grp.LeaveGroup(targetSession);
                 }
                 RemoveGroup(grp);
             }
             session.Character.Group = null;
         }
     }
 }
All Usage Examples Of OpenNos.GameObject.Group::LeaveGroup