Example #1
0
        public void SEND_CRYPTOBUFFER(Session PLAYER)
        {
            try
            {
                byte[]      NEW_CRYPTO_KEY  = GENERATE_();
                byte[]      NEW_CRYPTO_AUTH = GENERATE_();
                PacketWrite WB = new PacketWrite();
                WB.Short(24787);
                WB.Int(8);
                WB.ArrayBytes(NEW_CRYPTO_AUTH);
                WB.Int(8);
                WB.ArrayBytes(NEW_CRYPTO_KEY);
                WB.Int(1);
                WB.Int(0);
                WB.Int(0);
                PLAYER.SendPacket(WB, 1);

                PLAYER.Cryptography.AUTHENTIC_KEY    = NEW_CRYPTO_AUTH;
                PLAYER.Cryptography.CRYPTOGRAPHY_KEY = NEW_CRYPTO_KEY;

                PacketWrite WAIT_TIME = new PacketWrite();
                WAIT_TIME.Int(100);
                PLAYER.SendPacket(WAIT_TIME, 5);
                System.Threading.Thread.Sleep(100);
            }
            catch (Exception ex)
            {
                Log.Write("\n===========:Error:===========\n{0}\n{1}\n=============================n", ex.Message, ex.StackTrace);
            }
        }
Example #2
0
        public void BundleSellItens(Session p, PacketRead r)
        {
            PacketWrite pw = new PacketWrite();

            r.Int();
            int m_dwDeleteCount = r.Int();

            pw.Int(m_dwDeleteCount);
            for (int i = 0; i < m_dwDeleteCount; i += 1)
            {
                int unk = r.Int();
                pw.Int(unk);
                uint m_dwUID = r.UInt();
                pw.UInt(m_dwUID);
                p.PInfo.m_iGamePoint += SelectPrice(m_dwUID);
                RemoveItem(p.PInfo.m_strLogin, m_dwUID);
            }
            int unk2 = r.Int();

            pw.Int(unk2);

            PacketWrite ks = new PacketWrite();

            ks.Int(0);//dwOK
            ks.Int(p.PInfo.m_iGamePoint);
            ks.Long(0);
            ks.ArrayBytes(pw.Get_Packet());
            p.SendPacket(ks, 867);
        }
Example #3
0
 public static void KInDoorItemInfo(int m_dwID, int m_dwUID, PacketWrite ks)
 {
     ks.Int(m_dwID);
     ks.Int(1);
     ks.Int(m_dwID);
     ks.HexArray("00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00");
 }
Example #4
0
        public void HandlerNewsFromChannel(Session PLAYER, Read_Buffer RB)
        {
            PacketWrite WB = new PacketWrite();

            WB.Int(0);
            WB.Int(0);
            PLAYER.SESSION_SEND(WB.Get_Packet(), 7);
        }
Example #5
0
        public void CheckItem(Session p, PacketRead r)
        {
            int         ItemID = r.Int();
            PacketWrite pw     = new PacketWrite();

            pw.Int(1);
            pw.Int(ItemID);
            p.SendPacket(pw, 677);
        }
Example #6
0
        public void packageInfoDetail(Session p, PacketRead r)
        {
            PacketWrite ks  = new PacketWrite();
            int         id1 = r.Int();
            int         id2 = r.Int();

            ks.Int(id1);
            ks.Int(id2);
            ks.Int(0);
            p.SendPacket(ks, 1600);
        }
Example #7
0
        public void EnterChannel(Session s, PacketRead r)
        {
            s.PInfo.m_dwChannelUID = r.Int();
            PacketWrite p = new PacketWrite();

            p.HexArray("00 00 00 00 03");
            p.Int(Serializables.m_timeStamp());
            p.Int(Serializables.m_timeStamp());
            s.SendPacket(p, 45);
            GameServer.UsersList.Add(s);
            s.PInfo.m_cStatus = "LOBBY";
        }
Example #8
0
        public void GachaSetReward(Session p, PacketRead r)
        {
            int unkvalue = r.Int();
            int account  = r.Int();
            //Log.Write("GachaSetReward, value:{0}", unkvalue);
            //Log.Write("GachaSetReward, value:{0}", account);
            PacketWrite pw = new PacketWrite();

            pw.Int(unkvalue);
            pw.Int(account);
            pw.HexArray("00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 01 00 0B F5 F4 00 00 00 01 00 00 00 01 00 0C 22 CC");
            p.SendPacket(pw, 456);
        }
Example #9
0
 public static void KUserInfo(Session right, PacketWrite ks)
 {
     //#c22CBAA
     //#c769EFF
     ks.UnicodeStr(right.PInfo.m_strLogin);
     ks.Int(right.PInfo.m_dwUserUID);
     ks.UnicodeStr(right.PInfo.m_strNickName);
     ks.Int(0);
     ks.Byte(right.PInfo.m_ucCharType);
     ks.HexArray("00 00 00 00 00 FF 00 FF 00 FF 00 00 00 00 00 00 00 00 00 64 00 00");
     ks.Int(right.PInfo.m_iGamePoint);
     ks.Short(0);
 }
Example #10
0
        public void GachaRewardList(Session p, PacketRead r)
        {
            int unkvalue = r.Int();
            int account  = r.Int();
            //Log.Write("GachaRewardList, value:{0}", unkvalue);
            //Log.Write("GachaRewardList, value:{0}", account);
            PacketWrite pw = new PacketWrite();

            pw.Int(unkvalue);
            pw.Int(account);
            pw.HexArray("01 00 00 00 02 00 00 00 00 00 00 00 06 00 0B F3 C4 00 0B F3 CE 00 0B F3 D8 00 0B F3 E2 00 0B F3 EC 00 0B F3 F6 00 00 00 01 00 00 00 05 00 0B F8 10 00 0B F8 1A 00 0B F8 24 00 0B F8 2E 00 0B F8 E2 00 00 00 06 00 00 00 1E 00 00 00 02 00 00 00 28 00 00 00 02 00 00 00 32 00 00 00 03 00 00 00 3C 00 00 00 03 00 00 00 46 00 00 00 04 00 00 00 50 00 00 00 05 00 00 00 00");
            p.SendPacket(pw, 454);
        }
Example #11
0
        public void RemoveMission(Session p, PacketRead r)
        {
            int         missionUID = r.Int();
            int         missionID  = r.Int();
            PacketWrite pw         = new PacketWrite();

            pw.Int(0);
            pw.Int(missionID);

            p.SendPacket(pw, 178);
            DataSet Query = new DataSet();

            GameServer.Sql.Exec(Query, "DELETE FROM  missions WHERE LoginUID = '{0}'   AND MissionID = '{1}'", p.PInfo.m_dwUserUID, missionID);
        }
Example #12
0
        public void Loading(Session p, Read_Buffer r)
        {
            PacketWrite WB = new PacketWrite();

            WB.HexArray("00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 01 00 00 00");
            WB.HexArray("02 00 00 00 03 00 00 00 04 00 00 00 01 00 00 00 00");

            WB.Int(TtLoad.Length);
            WB.UnicodeStr(TtLoad[0]);
            WB.UnicodeStr(TtLoad[1]);
            WB.UnicodeStr(TtLoad[2]);
            WB.UnicodeStr(TtLoad[3]);
            WB.HexArray("00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 00");

            WB.Int(Match.Length);
            WB.UnicodeStr(Match[0]);
            WB.UnicodeStr(Match[1]);
            WB.UnicodeStr(Match[2]);
            WB.Int(0);

            WB.Int(Square.Length);
            WB.Int(0);
            WB.UnicodeStr(Square[0]);
            WB.Int(1);
            WB.UnicodeStr(Square[1]);
            WB.Int(2);
            WB.UnicodeStr(Square[2]);
            WB.HexArray("00 00 00 03 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 00");
            WB.Int(0);
            p.SESSION_SEND(WB.Get_Packet(), 22);
            WaitTime(p, r);
        }
Example #13
0
        public void Loading(Session p, PacketRead r)
        {
            PacketWrite WB = new PacketWrite();

            WB.HexArray("00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 01 00 00 00");
            WB.HexArray("02 00 00 00 03 00 00 00 04 00 00 00 01 00 00 00 00");

            WB.Int(TtLoad.Length);
            WB.UnicodeStr(TtLoad[0]);
            WB.UnicodeStr(TtLoad[1]);
            WB.UnicodeStr(TtLoad[2]);
            WB.UnicodeStr(TtLoad[3]);
            WB.HexArray("00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 00");

            WB.Int(Match.Length);
            WB.UnicodeStr(Match[0]);
            WB.UnicodeStr(Match[1]);
            WB.UnicodeStr(Match[2]);
            WB.Int(0);

            WB.Int(Square.Length);
            WB.Int(0);
            WB.UnicodeStr(Square[0]);
            WB.Int(1);
            WB.UnicodeStr(Square[1]);
            WB.Int(2);
            WB.UnicodeStr(Square[2]);
            WB.HexArray("00 00 00 03 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 00");
            WB.Int(0);
            p.SendPacket(WB, 22);
            WaitTime(p, r);
        }
Example #14
0
        public void Kairos(Session p, PacketRead r)
        {
            r.Jump(4);
            int         itemuid = r.Int();
            PacketWrite pw      = new PacketWrite();

            pw.Int(0);
            pw.Int(0);
            pw.HexArray("00 01 5E 28");
            pw.Int(0);
            pw.Int(itemuid);
            pw.HexArray("00 00 00 00 00 00 00 01 00 00 00 00 00 00 FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 01 58 73 0D 0B CE 52 38 00 00 0B 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 22 B0 00 00 00 00 00 D9 9F 1D 00 00 00 01 00 00 00 01 00 00 FF FF 00 00 FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 01 58 73 0D 0A 96 51 A8 00 00 0B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0D 85 01 98 FF F9 FD 78 73 E5 F6 9D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 47 50 0D 85 01 98 0D 85 01 98 00 00 00 00 00 00 00 00 00 00 00 00");
            p.SendPacket(pw, 113);
        }
Example #15
0
        public void UsersList(Session s, PacketRead r)
        {
            PacketWrite pw = new PacketWrite();

            pw.Int(GameServer.UsersList.Count);
            for (int i = 0; i < GameServer.UsersList.Count; i++)
            {
                pw.Int(GameServer.UsersList[i].PInfo.m_dwUserUID);//id
                pw.UnicodeStr(GameServer.UsersList[i].PInfo.m_strLogin);
                pw.Byte((byte)11);
                pw.HexArray("00 13 00 00 00 00 00");
            }
            s.SendPacket(PacketCompress.HalfCompress(pw.Get_Packet()), 51);
        }
Example #16
0
        public void CompleteMission(Session p, PacketRead r)
        {
            int missionID = r.Int();

            PacketWrite pw = new PacketWrite();

            pw.Int(0);
            pw.Int(missionID);
            pw.HexArray("00 00 01 F8 00 00 00 11 00 00 00 01 00 00 22 B0 00 00 00 01 30 B2 5C A2 00 00 00 09 00 00 00 09 00 00 00 00 00 00 FF FF FF FF 00 00 00 00 57 AD 34 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF 00 00 00 00 00 00 00 00 00 00 00 00 0D 00 FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4E 00 00 00 07 00 00 00 01 01 01 00 00 00 00 00 00 00 00 00 08 00 00 00 01 01 01 00 00 00 00 00 00 00 00 00 09 00 00 00 01 01 01 00 00 00 00 00 00 00 00 00 0A 00 00 00 01 01 01 00 00 00 00 00 00 00 00 00 0B 00 00 00 01 01 01 00 00 00 00 00 00 00 00 00 0C 00 00 00 01 01 01 00 00 00 00 00 00 00 00 00 0D 00 00 00 01 01 01 00 00 00 00 00 00 00 00 00 0E 00 00 00 01 01 01 00 00 00 00 00 00 00 00 00 0F 00 00 00 01 01 01 00 00 00 00 00 00 00 00 00 10 00 00 00 01 01 01 00 00 00 00 00 00 00 00 00 11 00 00 00 01 01 01 00 00 00 00 00 00 00 00 00 12 00 00 00 01 01 01 00 00 00 00 00 00 00 00 00 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 17 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 19 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 27 00 00 00 01 01 00 00 00 00 00 00 00 00 00 00 28 00 00 00 01 01 00 00 00 00 00 00 00 00 00 00 29 00 00 00 01 01 00 00 00 00 00 00 00 00 00 00 2A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 32 00 00 00 00 00 00 00 00 00 00 00 00 00 00 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 34 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 00 00 00 00 00 00 00 00 00 00 00 00 00 00 36 00 00 00 00 00 00 00 00 00 00 00 00 00 00 37 00 00 00 00 00 00 00 00 00 00 00 00 00 00 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 39 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 43 00 00 00 00 00 00 00 00 00 00 00 00 00 00 44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 45 00 00 00 00 00 00 00 00 00 00 00 00 00 00 46 00 00 00 00 00 00 00 00 00 00 00 00 00 00 47 00 00 00 00 00 00 00 00 00 00 00 00 00 00 48 00 00 00 00 00 00 00 00 00 00 00 00 00 00 49 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 51 00 00 00 00 00 00 00 00 00 00 00 00 00 00 52 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 00 00 00 00 00 00 00 00 00 00 00 00 00 00 54 00 00 00 01 01 00 00 00 00 00 00 00 00 00 00 55 00 00 00 00 00 00 00 00 00 00 00 00 00 00 56 00 00 00 00 00 00 00 00 00 00 00 00 00 00 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 58 00 00 00 00 00 00 00 00 00 00 00 00 00 00 59 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5A 00 00 00 01 01 00 00 00 00 00 00 00 00 00 00 5B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 14 00 00 00 A0");

            p.SendPacket(pw, 177);
            DataSet Query = new DataSet();

            GameServer.Sql.Exec(Query, "DELETE FROM  Missions WHERE LoginUID = '{0}'   AND MissionID = '{1}'", p.PInfo.m_dwUserUID, missionID);
        }
Example #17
0
        private void ChangeJob(Session right)
        {
            PacketWrite ks = new PacketWrite();

            ks.Int(0);
            right.SendPacket(ks, 185);
        }
Example #18
0
        public void Register(Session p, PacketRead r)
        {
            string userNickname = r.UnicodeString();

            DataSet Query = new DataSet();

            GameServer.Sql.Exec(Query, "SELECT * FROM NickNames  WHERE nick = '{0}'", userNickname);
            if (Query.Tables[0].Rows.Count == 0)
            {
                p.PInfo.m_strNickName = userNickname;
                PacketWrite pw = new PacketWrite();
                pw.Int(0);
                pw.Str(userNickname);
                p.SendPacket(pw, 136);

                DataSet DBAcess = new DataSet();
                GameServer.Sql.Exec(DBAcess, "INSERT INTO NickNames(Login,nick) VALUES('{0}','{1}')", p.PInfo.m_strLogin, userNickname);
            }
            else
            {
                PacketWrite pw = new PacketWrite();
                pw.HexArray("FF FF FF FD 00 00 00 00");
                p.SendPacket(pw, 136);
            }
        }
Example #19
0
        public void HearBeat(Session PLAYER, Read_Buffer RB)
        {
            PacketWrite WB = new PacketWrite();

            WB.Int(0);
            PLAYER.SESSION_SEND(WB.Get_Packet(), 0);
        }
Example #20
0
        private void SESSION_RECEIVE(byte[] _buffer, int _size)
        {
            int        pos       = 0;
            PacketRead RB_BUFFER = new PacketRead(_buffer, 0);
            ushort     size      = RB_BUFFER.UShort();

            while (pos < _size)
            {
                if (C_Running == false)
                {
                    return;
                }
                if (pos >= _size)
                {
                    return;
                }
                try
                {
                    byte[] n_buffer = new byte[size];
                    Array.Copy(_buffer, pos, n_buffer, 0, size);

                    PacketRead r0 = new PacketRead(n_buffer, 0);

                    pos += (ushort)((_buffer[pos + 1] << 8) | (_buffer[pos]));
                    ushort new_size = r0.UShort();
                    r0.Short();
                    r0.Int();

                    byte[] iv          = r0.Buffer_Array_Bytes(8);
                    byte[] content     = r0.Buffer_Array_Bytes(new_size - 16 - 10);
                    byte[] get_payload = Cryptography.DECRYPT(content, iv);

                    PacketRead rb       = new PacketRead(get_payload, 0, true);
                    ushort     packetId = (ushort)((get_payload[0] << 8) | (get_payload[1]));

                    if (HRecv.HANDLER.ContainsKey(packetId))
                    {
                        Log.Write("clog : KTRUser::KSkTRUser::OnRecvCompleted({6}), {0}-{1}-{2}. {3}:{4}:{5}", DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Second, DateTime.Now.Minute, DateTime.Now.Hour, packetId);

                        Type type = Type.GetType(HRecv.TYPE_HANDLER[packetId].ToString());

                        object classInstance = Activator.CreateInstance(type, null);

                        HRecv.HANDLER[packetId].Invoke(classInstance, new object[] { this, rb });
                    }
                    else
                    {
                        Log.Write("clog : KTRUser::KSkTRUser::OnRecvFailed,Packet unknown {6}! {0}-{1}-{2}. {3}:{4}:{5}", DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Second, DateTime.Now.Minute, DateTime.Now.Hour, packetId);
                        Log.Write("\nclog : KTRUser::KSkTRUser::OnRecvFailed, Payload: \n{0}", BitConverter.ToString(get_payload).Replace("-", " "));
                        PacketWrite p = new PacketWrite();
                        p.Int(0);
                        SendPacket(p, (short)(packetId + 1));
                    }
                }
                catch (Exception ex)
                {
                    Log.Write("{0} \n {1}", ex.Message, ex.StackTrace);
                }
            }
        }
Example #21
0
        public void HearBeat(Session p, PacketRead r)
        {
            PacketWrite pw = new PacketWrite();

            pw.Int(0);
            p.SendPacket(pw, 0);
        }
Example #22
0
        public void WaitTime(Session PLAYER, PacketRead RB)
        {
            PacketWrite wb = new PacketWrite();

            wb.Int(100);
            PLAYER.SendPacket(wb, 5);
        }
Example #23
0
        public void WaitTime(Session PLAYER, Read_Buffer RB)
        {
            PacketWrite wb = new PacketWrite();

            wb.Int(100);
            PLAYER.SESSION_SEND(wb.Get_Packet(), 5);
        }
Example #24
0
        public void MigrateServer(Session p, PacketRead r)
        {
            PacketWrite pw = new PacketWrite();

            pw.Int(0);
            p.SendPacket(pw, 161);
        }
Example #25
0
 public void BuyVC(Session p, PacketRead r)
 {
     try
     {
         r.Jump(13);
         uint itemid = r.UInt();
         r.Jump(8);
         int  quantity   = r.Int();
         uint itemuid    = 0;
         int  valuePrice = SelectPrice(itemid);
         if (CheckItemExists(itemid, p) && quantity != -1)
         {
             sItem currentItem = ItemExists(itemid, p);
             itemuid   = currentItem.ItemUID;
             quantity += currentItem.Quantity;
             p.PInventory.UpdateItem(p.PInfo.m_strLogin, itemid, quantity, itemuid);
             p.PInventory.InventoryList.Remove(currentItem);
         }
         else
         {
             itemuid = GetUID();
             p.PInventory.AddItem(p.PInfo.m_strLogin, itemid, quantity, itemuid);
         }
         PacketWrite pw = new PacketWrite();
         pw.Int(BuyException(valuePrice, p));
         pw.Int(1);
         pw.UInt(itemid);
         pw.Int(1);
         pw.UInt(itemuid);
         pw.Int(quantity);
         pw.Int(quantity);
         pw.Short(0);//Epic
         pw.HexArray("00 00 00 00 FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00");
         pw.Byte(LoadItemType(itemid));
         pw.HexArray("00 00 00 00 00 00 00 00 00 00 00 00 00 04 FC F7 70 04 FC FF 78 00 00 0D 00 00 00 00 00 00 00 00 00 FF FF FF 9D");
         pw.Int(p.PInfo.m_iVirtualPoint);
         pw.HexArray("00 00 00 00 00 00 01 5E 1C 00 40 47 00 00 00 00");
         p.SendPacket(pw, 396);
     }
     catch
     {
         PacketWrite pw = new PacketWrite();
         pw.Int(1);
         pw.Int(0);
         p.SendPacket(pw, 396);
     }
 }
Example #26
0
        public void ReceiveExp(Session player, PacketRead r)
        {
            int exp = r.Int();

            if (exp < 203081358 && exp > 0)
            {
                PacketWrite write = new PacketWrite();
                write.Int(player.PInfo.CurRoom.m_usUsers());
                for (int i = 0; i < player.PInfo.CurRoom.m_usMaxUsers; i++)
                {
                    if (player.PInfo.CurRoom.m_dwSlots[i].Active == true)
                    {
                        int characterPosition = player.PCharacters.PositionCharacter(player.PInfo.m_ucCharType, player);
                        if (player.PInfo.CurRoom.m_dwSlots[i].usr.PCharacters.CharInfo[characterPosition].Exp < 2147483647)
                        {
                            libcomservice.Request.Server.EXPReward ExpManager = new libcomservice.Request.Server.EXPReward();
                            ExpManager.getExp(((int)player.PCharacters.CharInfo[characterPosition].Exp) + exp, player, player.PInfo.m_ucCharType, player.PInfo.CurRoom.m_dwSlots[i].usr.PCharacters.CharInfo[characterPosition].Level);

                            write.Int(player.PInfo.CurRoom.m_dwSlots[i].usr.PInfo.m_dwUserUID);
                            write.Byte(0);
                            write.Long(player.PInfo.CurRoom.m_dwSlots[i].usr.PCharacters.CharInfo[characterPosition].Exp * 2);
                            write.Long(player.PInfo.CurRoom.m_dwSlots[i].usr.PCharacters.CharInfo[characterPosition].Exp * 2);
                            if (ExpManager.isLevelUP == true)
                            {
                                write.Int(player.PInfo.CurRoom.m_dwSlots[i].usr.PCharacters.CharInfo[characterPosition].Level - 1);
                            }
                            else
                            {
                                write.Int(player.PInfo.CurRoom.m_dwSlots[i].usr.PCharacters.CharInfo[characterPosition].Level);
                            }

                            write.Int(player.PInfo.CurRoom.m_dwSlots[i].usr.PCharacters.CharInfo[characterPosition].Level);
                            write.HexArray("41 30 00 00 00 00 00 0C 00 00 00 A0");
                            for (int j = 0; j < player.PInfo.CurRoom.m_usMaxUsers; j++)
                            {
                                if (player.PInfo.CurRoom.m_dwSlots[j].Active == true)
                                {
                                    player.PInfo.CurRoom.m_dwSlots[j].usr.SendPacket(write, 921);
                                }
                            }
                            player.PInfo.CurRoom.m_dwSlots[i].usr.PCharacters.CharInfo[characterPosition].Exp += exp;
                            ExpManager.updateExp(((int)player.PInfo.CurRoom.m_dwSlots[i].usr.PCharacters.CharInfo[characterPosition].Exp), player.PInfo.CurRoom.m_dwSlots[i].usr.PInfo.m_strLogin, player.PInfo.CurRoom.m_dwSlots[i].usr.PCharacters.CharInfo[characterPosition].CharType);
                        }
                    }
                }
            }
        }
Example #27
0
        public void WorldBossContrib(Session right)
        {
            PacketWrite ks = new PacketWrite();

            ks.HexArray("FF FF FF 9D");
            ks.Int(right.PInfo.WorldBossPoint);
            right.SendPacket(ks, 1736);
        }
Example #28
0
        public void CharsEquipsInfo(Session right)
        {
            PacketWrite pw = new PacketWrite();

            pw.UnicodeStr(right.PInfo.m_strLogin);
            pw.Byte(right.PInfo.m_ucCharType);
            pw.Int(right.PCharacters.CharInfo.Length);
            for (int x = 0; x < right.PCharacters.CharInfo.Length; x++)
            {
                pw.Byte(right.PCharacters.CharInfo[x].CharType);
                pw.Int(right.PCharacters.CharInfo[x].Equipements.Count);
                for (int x2 = 0; x2 < right.PCharacters.CharInfo[x].Equipements.Count; x2++)
                {
                    pw.Int(right.PCharacters.CharInfo[x].Equipements[x2].ItemID);
                    pw.Int(1);
                    pw.Int(right.PCharacters.CharInfo[x].Equipements[x2].ItemUID);
                    pw.HexArray("00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00");
                }
                pw.Int(0);
                Serializables.KPetInfo(right, pw, x);
                pw.HexArray("00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00");
            }
            pw.Int(right.PInfo.m_dwUserUID);
            pw.Short(0);
            right.SendPacket(pw, 96);
            if (right.PInfo.CurRoom != null)
            {
                right.PInfo.CurRoom.SendForAllPlayersInRoom(pw, 96);
            }
        }
Example #29
0
        public void SendMyVirtualCash(Session p)
        {
            p.PInfo.m_iVirtualPoint = Querys.Execute_SelectVirtualPoint(p.PInfo.m_dwUserUID);

            PacketWrite pw = new PacketWrite();

            pw.Int(p.PInfo.m_iVirtualPoint);
            p.SendPacket(pw, 394);
        }
Example #30
0
        public void LeaveChannel(Session s, PacketRead r)
        {
            PacketWrite pw = new PacketWrite();

            pw.Int(0);
            s.SendPacket(pw, 58);
            GameServer.UsersList.Remove(s);
            s.PInfo.m_cStatus = "...";
        }