public void ProcessLinkshellSetActive(Session requestSession, string lsName) { //Deactivate all if (lsName.Equals("")) { requestSession.SetActiveLS(lsName); SubPacket activeLsPacket = SetActiveLinkshellPacket.BuildPacket(requestSession.sessionId, 0); requestSession.clientConnection.QueuePacket(activeLsPacket); requestSession.SendGameMessage(25132, 0x20, (object)1); } else { Linkshell ls = mLinkshellManager.GetLinkshell(lsName); if (ls == null || !ls.HasMember(requestSession.sessionId)) { requestSession.SendGameMessage(25167, 0x20, (object)1, (object)lsName); } else { requestSession.SetActiveLS(lsName); SubPacket activeLsPacket = SetActiveLinkshellPacket.BuildPacket(requestSession.sessionId, ls.groupIndex); requestSession.clientConnection.QueuePacket(activeLsPacket); requestSession.SendGameMessage(25131, 0x20, (object)1, (object)lsName); } } }
//Login Zone In public void DoLogin(Session session) { SendMotD(session); //Send party, retainer, ls groups Party pt = mPartyManager.GetParty(session.sessionId); pt.SendGroupPackets(session); SendPartySync(pt); mRetainerGroupManager.GetRetainerGroup(session.sessionId).SendGroupPackets(session); List <Linkshell> linkshells = mLinkshellManager.GetPlayerLinkshellMembership(session.sessionId); foreach (Linkshell ls in linkshells) { ls.SendGroupPackets(session); } //Reset to blank if in unknown state ulong activeGroupIndex = 0; if (!session.activeLinkshellName.Equals("")) { Linkshell activeLs = mLinkshellManager.GetLinkshell(session.activeLinkshellName); if (activeLs != null && activeLs.HasMember(session.sessionId)) { activeGroupIndex = activeLs.groupIndex; } else { session.activeLinkshellName = ""; Database.SetActiveLS(session, ""); } } SubPacket activeLsPacket = SetActiveLinkshellPacket.BuildPacket(session.sessionId, activeGroupIndex); session.clientConnection.QueuePacket(activeLsPacket); }