Exemplo n.º 1
0
        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);
                }
            }
        }
Exemplo n.º 2
0
        //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);
        }