Esempio n. 1
0
        public override void Process()
        {
            // 기본 영주 정보 얻어오기
            fmLord lord = null;

            m_session.TryGetLord(out lord);

            // 프로토콜 RQ
            using (var recvfmProtocol = new PT_CG_Item_Equip_RQ())
            {
                // 프로토콜 Read
                recvfmProtocol.Deserialize(m_recvPacket);

                // 프로토콜 RS
                using (var sendfmProtocol = new PT_CG_Item_Equip_RS())
                {
                    // check
                    if (null == lord)
                    {
                        sendfmProtocol.m_eErrorCode = eErrorCode.Auth_PleaseLogin;
                        m_session.SendPacket(sendfmProtocol);
                        return;
                    }
                    // check state
                    if (lord.State != eLordState.Normal)
                    {
                        sendfmProtocol.m_eErrorCode = eErrorCode.Auth_PleaseLogin;
                        m_session.SendPacket(sendfmProtocol);
                        return;
                    }

                    // 아이템 장착
                    lord.TryEquip(recvfmProtocol, sendfmProtocol);

                    // 프로토콜 send
                    m_session.SendPacket(sendfmProtocol);

                    if (sendfmProtocol.m_eErrorCode == eErrorCode.Success)
                    {
                        // 로그 남기기
                        ArchiveExecuter.Instance.Push(new Msg_Log_Act(m_server.dbLog(),
                                                                      new fmLogAct
                        {
                            Time  = fmServerTime.Now,
                            PType = sendfmProtocol.GeteProtocolType(),
                            AccId = lord.AccId,
                            Lv    = lord.GetLv(),
                            Gold  = lord.GetGold(),
                            C1    = lord.GetRuby(),
                            C2    = lord.GetStone(),
                        }
                                                                      ));
                    }
                }
            }
        }
        public override void Process()
        {
            // 기본 영주 정보 얻어오기
            fmLord lord = null;

            m_session.TryGetLord(out lord);

            // 프로토콜 RQ
            using (var recvfmProtocol = new PT_CG_Lord_GetLord_RQ())
            {
                // 프로토콜 Read
                recvfmProtocol.Deserialize(m_recvPacket);

                // 프로토콜 RS
                using (var sendfmProtocol = new PT_CG_Lord_GetLord_RS())
                {
                    if (null == lord)
                    {
                        sendfmProtocol.m_eErrorCode = eErrorCode.Auth_PleaseLogin;
                        m_session.SendPacket(sendfmProtocol);
                        return;
                    }

                    using (var query = new urq_GetOtherLord(eRedis.Game))
                    {
                        query.i_strName             = recvfmProtocol.Name;
                        sendfmProtocol.m_eErrorCode = query.Execute();

                        if (sendfmProtocol.m_eErrorCode == eErrorCode.Success)
                        {
                            sendfmProtocol.Lv    = query.o_lordBase.Lv;
                            sendfmProtocol.Items = query.o_items.Where(x => x.Equip == true).ToList();
                        }
                    }

                    m_session.SendPacket(sendfmProtocol);
                }
            }
        }
Esempio n. 3
0
        public override void Process()
        {
            // 기본 영주 정보 얻어오기
            fmLord lord = null;

            m_session.TryGetLord(out lord);

            // 프로토콜 RQ
            using (var recvfmProtocol = new PT_CG_Rank_GetList_RQ())
            {
                recvfmProtocol.Deserialize(m_recvPacket);

                using (var sendfmProtocol = new PT_CG_Rank_GetList_RS())
                {
                    if (null == lord)
                    {
                        sendfmProtocol.m_eErrorCode = eErrorCode.Auth_PleaseLogin;
                        m_session.SendPacket(sendfmProtocol);
                        return;
                    }

                    using (var db = new urq_GetRank(eRedis.Game))
                    {
                        db.i_rankerKey = new fmRankerKey
                        {
                            AccId = lord.AccId,
                            Name  = lord.GetName()
                        };

                        sendfmProtocol.m_eErrorCode = db.Execute();

                        sendfmProtocol.m_list    = db.o_rankers;
                        sendfmProtocol.m_nMyRank = db.o_myRank;
                        m_session.SendPacket(sendfmProtocol);
                    }
                }
            }
        }
        public override void Process()
        {
            // 기본 영주 정보 얻어오기
            fmLord lord = null;

            m_session.TryGetLord(out lord);

            // 프로토콜 RQ
            using (var recvfmProtocol = new PT_CG_Item_GetList_RQ())
            {
                // 프로토콜 Read
                recvfmProtocol.Deserialize(m_recvPacket);

                // 프로토콜 RS
                using (var sendfmProtocol = new LZ4_PT_CG_Item_GetList_RS())
                {
                    // check
                    if (null == lord)
                    {
                        sendfmProtocol.m_eErrorCode = eErrorCode.Auth_PleaseLogin;
                        m_session.SendPacket(sendfmProtocol);
                        return;
                    }
                    // check state
                    if (lord.State != eLordState.Normal)
                    {
                        sendfmProtocol.m_eErrorCode = eErrorCode.Auth_PleaseLogin;
                        m_session.SendPacket(sendfmProtocol);
                        return;
                    }

                    // 아이템 정보 얻기
                    lord.TryGetItems(sendfmProtocol);
                    // 프로토콜 전송
                    m_session.SendPacket(sendfmProtocol);
                }
            }
        }
        public override void Process()
        {
            fmLord lord = null;

            //Logger.Debug("Msg_Session_Remove start");

            if (true == m_session.TryGetLord(out lord))
            {
                //Logger.Debug("TryGetLord lord");

                //if (lord.State == eLordState.Maze)
                //{
                //    //BattleExecuter.Instance.Push(new Msg_Maze_Delegate_Leave(lord));
                //}
                //else
                {
                    LordManager.Instance.Logout(lord);
                }
            }

            //Logger.Debug("Msg_Session_Remove end");
            ClientSessionManager.Instance.Remove(m_session);
        }