Ejemplo n.º 1
0
        public void RegisterMission(Session p, PacketRead r)
        {
            int missionID = r.Int();

            r.Jump(4);
            int missionUID = r.Int();
            int progress   = 0;

            PacketWrite pw = new PacketWrite();

            pw.Int(0);
            pw.Int(missionID);
            pw.Int(1);
            pw.Int(missionUID);
            pw.Int(missionID);
            pw.Int(0);//Progress
            pw.HexArray("59 21 9E A1 59 20 4D 21 00 00 00 00");

            p.SendPacket(pw, 174);
            DataSet Query0 = new DataSet();

            GameServer.Sql.Exec(Query0, "INSERT INTO Missions (  LoginUID,  MissionID,  MissionUID,  Progress) VALUES  (    '{0}',    '{1}',    '{2}',    '{3}'  )", p.PInfo.m_dwUserUID, missionID, missionUID, progress);

            DataSet Query = new DataSet();

            GameServer.Sql.Exec(Query, "DELETE FROM  GoodsObjectlist WHERE OwnerLogin = '******'   AND ItemID = '{1}'", p.PInfo.m_strLogin, missionID);
            p.PInventory.InventoryItens(p);
        }
Ejemplo n.º 2
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);
     }
 }
Ejemplo n.º 3
0
        public static void KRoomInfo(Session right, PacketRead rs)
        {
            libcomservice.REQUEST.Room room = new libcomservice.REQUEST.Room();

            ushort m_usRoomID = rs.UShort();

            room.m_strRoomName   = rs.UnicodeString();
            room.m_bPublic       = rs.Bool();
            room.m_bGuild        = rs.Bool();
            room.m_strRoomPasswd = rs.UnicodeString();
            short m_usUsers = rs.Short();

            room.m_usMaxUsers     = rs.Get_Short();
            room.m_bPlaying       = rs.Bool();
            room.m_cGrade         = rs.Byte();
            room.m_cGameCategory  = rs.Byte();
            room.m_iGameMode      = rs.Int();
            room.m_iSubGameMode   = rs.Int();
            room.m_bRandomableMap = rs.Bool();
            room.m_iMapID         = rs.Int();
            room.m_iP2PVersion    = rs.Int();
            byte[] m_abSlotOpen = rs.Buffer_Array_Bytes(6);
            room.m_vecMonsterSlot = rs.Int();
            room.m_cDifficulty    = rs.Int();
            rs.Jump(17);

            ushort index_room = 0;

            for (ushort i = 1; i < GameServer.m_usMaxUsers; i++)
            {
                if (GameServer.List_Rooms.ContainsKey(i))
                {
                    continue;
                }
                index_room = i;
                break;
            }
            room.m_usRoomID = index_room;

            room.m_dwSlots[0].Active = true;
            room.m_dwSlots[0].usr    = right;
            room.m_dwSlots[0].Leader = true;
            room.m_dwSlots[0].Open   = false;
            room.m_dwSlots[0].Status = 0;
            room.m_dwSlots[0].AFK    = false;
            room.m_dwSlots[0].Team   = 0;

            for (int i = 1; i < room.m_usMaxUsers; i++)
            {
                room.m_dwSlots[i].Active = false;
                room.m_dwSlots[i].usr    = null;
                room.m_dwSlots[i].Leader = false;
                room.m_dwSlots[i].Open   = true;
                room.m_dwSlots[i].Status = 0;
                room.m_dwSlots[i].AFK    = false;
                room.m_dwSlots[i].Team   = 0;
            }
            right.PInfo.CurRoom = room;
        }
Ejemplo n.º 4
0
        public void OnChat(Session p, PacketRead r)
        {
            r.Jump(1);
            r.Jump(4);
            string ServerName = r.UnicodeString();

            r.Jump(4);
            r.Jump(4);
            r.Jump(4);
            string text = r.UnicodeString();

            if (p.PInfo.m_cStatus == "LOBBY")
            {
                SendText(p, 0, text);
            }
            if (p.PInfo.m_cStatus == "ROOM")
            {
                SendText(p, 1, text);
            }
        }
Ejemplo n.º 5
0
        public void DepotInfo(Session p, PacketRead r)
        {
            r.Jump(5);
            p.PInfo.m_ucCharType = r.Byte();
            //Log.Write("Depot, CharType:{0}", p.PInfo.m_ucCharType);
            PacketWrite pw = new PacketWrite();

            pw.Int(5);
            pw.Byte(0);
            pw.Byte(p.PInfo.m_ucCharType);
            pw.HexArray("01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00");
            p.SendPacket(pw, 1342);
        }
Ejemplo n.º 6
0
        public void RoomMyInfoDivide(Session p, PacketRead r)
        {
            r.Jump(6);
            ushort roomid    = (ushort)r.Get_Short();
            Room   room      = RoomExists(roomid);
            int    TempCount = -1;

            for (int i = 0; i < room.m_usMaxUsers; i++)
            {
                if (room.m_dwSlots[i].Active == false)
                {
                    continue;
                }
                TempCount++;
                if (room.m_dwSlots[i].usr == p)
                {
                    PacketWrite pw = new PacketWrite();
                    pw.Int(0);
                    pw.Int(room.m_usUsers());
                    pw.Int(TempCount);
                    pw.UnicodeStr(room.m_dwSlots[i].usr.PInfo.m_strLogin);
                    pw.Int(room.m_dwSlots[i].usr.PInfo.m_dwUserUID);
                    pw.UnicodeStr(room.m_dwSlots[i].usr.PInfo.m_strNickName);
                    pw.Int(i);
                    pw.Byte(room.m_dwSlots[i].usr.PInfo.m_ucCharType);
                    pw.Int(0);
                    pw.HexArray("00 FF 00 FF 00 FF 00 00 00 00");
                    pw.Byte((byte)room.GetTeam(room.m_dwSlots[i].usr));
                    pw.HexArray("00 00 00 00 64 00 00");
                    pw.Int(room.m_dwSlots[i].usr.PInfo.m_iGamePoint);
                    pw.Short(0);
                    Serializables.SerializeStages(room.m_dwSlots[i].usr, pw);
                    if (room.m_sSearchLeader() == room.m_dwSlots[i].usr)
                    {
                        pw.Bool(true);
                    }
                    else
                    {
                        pw.Bool(false);
                    }
                    pw.HexArray("01 00 00 00 00 00 00 00 00 00 00 00 00");
                    Serializables.m_roomCharacterInfo(room.m_dwSlots[i].usr, pw);
                    pw.HexArray("00 00 00 02 76 19 A8 C0 10 0C D6 BA 00 00 00 01 7F 39 00 00 00 00 00 00 00 00 00 00 00");
                    pw.Byte(room.m_dwSlots[i].Status);
                    pw.HexArray("00 00 00 00 00 12 C8 F2 00 00 00 00 00 D6 D9 BE 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 04 42 00 52 00 0B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 D2 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 D2 F0 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 01 00 00 00 00 00 06 11 16 00 00 00 00 00 00 00 00 46 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 97 D8 00 00 01 A0 04 7B 00 00 00 00 00 00 00 00");

                    p.SendPacket(pw, 1472);
                    break;
                }
            }
        }
Ejemplo n.º 7
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);
        }
Ejemplo n.º 8
0
        public static void KUserInfo(Session right, PacketRead rs)
        {
            string m_strLogin    = rs.String();
            int    m_dwID        = rs.Int();
            string m_strNickName = rs.String();

            rs.Int();
            byte m_cStatus = rs.Byte();

            rs.Jump(22);
            int m_iGamePoint = rs.Int();

            rs.Short();

            right.PInfo.m_ucCharType = m_cStatus;
        }
Ejemplo n.º 9
0
        public void ChangeCharInChannel(Session right, PacketRead r)
        {
            try
            {
                ChangeJob(right);
                WorldBossContrib(right);
                CharacterUserInfo(right);
                CharsEquipsInfo(right);
                r.Jump(1);
                byte newCharacter     = r.Byte();
                int  m_dwCharPosition = right.PCharacters.PositionCharacter(newCharacter, right);
                right.PInfo.m_ucCharType = newCharacter;

                PacketWrite ks = new PacketWrite();
                ks.Int(0);
                ks.Int(0);
                ks.Byte(newCharacter);
                ks.HexArray("00 00 00 00 00 00 00 00 00 00 00 8C 00 00 78 6E 00 00 00 01 00 00 00 00 00 00 00 00 00 00 78 78 00 00 00 01 00 00 00 00 00 00 00 00 00 00 78 82 00 00 00 01 00 00 00 00 00 00 00 00 00 00 78 8C 00 00 00 01 00 00 00 00 00 00 00 00 00 00 78 96 00 00 00 01 00 00 00 00 00 00 00 00 00 00 78 A0 00 00 00 01 00 00 00 00 00 00 00 00 00 00 78 AA 00 00 00 01 00 00 00 00 00 00 00 00 00 00 78 B4 00 00 00 01 00 00 00 00 00 00 00 00 00 00 78 BE 00 00 00 01 00 00 00 00 00 00 00 00 00 00 78 C8 00 00 00 01 00 00 00 00 00 00 00 00 00 00 78 D2 00 00 00 01 00 00 00 00 00 00 00 00 00 00 78 DC 00 00 00 01 00 00 00 00 00 00 00 00 00 00 78 E6 00 00 00 01 00 00 00 00 00 00 00 00 00 00 78 F0 00 00 00 01 00 00 00 00 00 00 00 00 00 00 78 FA 00 00 00 01 00 00 00 00 00 00 00 00 00 00 79 04 00 00 00 01 00 00 00 00 00 00 00 00 00 00 79 0E 00 00 00 01 00 00 00 00 00 00 00 00 00 00 79 18 00 00 00 01 00 00 00 00 00 00 00 00 00 00 79 22 00 00 00 01 00 00 00 00 00 00 00 00 00 00 79 2C 00 00 00 01 00 00 00 00 00 00 00 00 00 00 79 36 00 00 00 01 00 00 00 00 00 00 00 00 00 00 79 40 00 00 00 01 00 00 00 00 00 00 00 00 00 00 79 4A 00 00 00 01 00 00 00 00 00 00 00 00 00 00 85 C0 00 00 00 01 00 00 00 00 00 00 00 00 00 00 85 CA 00 00 00 01 00 00 00 00 00 00 00 00 00 00 85 D4 00 00 00 01 00 00 00 00 00 00 00 00 00 00 85 DE 00 00 00 01 00 00 00 00 00 00 00 00 00 00 85 E8 00 00 00 01 00 00 00 00 00 00 00 00 00 00 85 F2 00 00 00 01 00 00 00 00 00 00 00 00 00 00 85 FC 00 00 00 01 00 00 00 00 00 00 00 00 00 00 86 06 00 00 00 01 00 00 00 00 00 00 00 00 00 00 86 10 00 00 00 01 00 00 00 00 00 00 00 00 00 00 86 1A 00 00 00 01 00 00 00 00 00 00 00 00 00 00 86 24 00 00 00 01 00 00 00 00 00 00 00 00 00 00 86 2E 00 00 00 01 00 00 00 00 00 00 00 00 00 00 86 38 00 00 00 01 00 00 00 00 00 00 00 00 00 00 86 42 00 00 00 01 00 00 00 00 00 00 00 00 00 00 86 4C 00 00 00 01 00 00 00 00 00 00 00 00 00 01 45 8C 00 00 00 01 00 00 00 00 00 00 00 00 00 01 45 96 00 00 00 01 00 00 00 00 00 00 00 00 00 01 45 A0 00 00 00 01 00 00 00 00 00 00 00 00 00 01 45 AA 00 00 00 01 00 00 00 00 00 00 00 00 00 01 45 B4 00 00 00 01 00 00 00 00 00 00 00 00 00 01 45 BE 00 00 00 01 00 00 00 00 00 00 00 00 00 01 45 C8 00 00 00 01 00 00 00 00 00 00 00 00 00 01 45 D2 00 00 00 01 00 00 00 00 00 00 00 00 00 01 45 DC 00 00 00 01 00 00 00 00 00 00 00 00 00 01 45 E6 00 00 00 01 00 00 00 00 00 00 00 00 00 01 45 F0 00 00 00 01 00 00 00 00 00 00 00 00 00 01 45 FA 00 00 00 01 00 00 00 00 00 00 00 00 00 01 46 04 00 00 00 01 00 00 00 00 00 00 00 00 00 01 46 0E 00 00 00 01 00 00 00 00 00 00 00 00 00 01 46 18 00 00 00 01 00 00 00 00 00 00 00 00 00 01 46 22 00 00 00 01 00 00 00 00 00 00 00 00 00 01 46 2C 00 00 00 01 00 00 00 00 00 00 00 00 00 01 46 36 00 00 00 01 00 00 00 00 00 00 00 00 00 01 46 40 00 00 00 01 00 00 00 00 00 00 00 00 00 01 46 4A 00 00 00 01 00 00 00 00 00 00 00 00 00 01 9B 18 00 00 00 01 00 00 00 00 00 00 00 00 00 01 FF 40 00 00 00 01 00 00 00 00 00 00 00 00 00 01 FF 4A 00 00 00 01 00 00 00 00 00 00 00 00 00 02 1E 9E 00 00 00 01 00 00 00 00 00 00 00 00 00 02 29 A2 00 00 00 01 00 00 00 00 00 00 00 00 00 02 41 08 00 00 00 01 00 00 00 00 00 00 00 00 00 02 CA 56 00 00 00 01 00 00 00 00 00 00 00 00 00 02 CA 60 00 00 00 01 00 00 00 00 00 00 00 00 00 02 CA 6A 00 00 00 01 00 00 00 00 00 00 00 00 00 02 CA 74 00 00 00 01 00 00 00 00 00 00 00 00 00 02 D1 2C 00 00 00 01 00 00 00 00 00 00 00 00 00 02 D1 36 00 00 00 01 00 00 00 00 00 00 00 00 00 02 D1 40 00 00 00 01 00 00 00 00 00 00 00 00 00 02 D1 4A 00 00 00 01 00 00 00 00 00 00 00 00 00 02 E0 54 00 00 00 01 00 00 00 00 00 00 00 00 00 02 E0 5E 00 00 00 01 00 00 00 00 00 00 00 00 00 02 E0 68 00 00 00 01 00 00 00 00 00 00 00 00 00 02 E0 72 00 00 00 01 00 00 00 00 00 00 00 00 00 02 E0 7C 00 00 00 01 00 00 00 00 00 00 00 00 00 02 E0 86 00 00 00 01 00 00 00 00 00 00 00 00 00 03 4A 76 00 00 00 01 00 00 00 00 00 00 00 00 00 03 4A 80 00 00 00 01 00 00 00 00 00 00 00 00 00 03 4A 8A 00 00 00 01 00 00 00 00 00 00 00 00 00 03 4A 94 00 00 00 01 00 00 00 00 00 00 00 00 00 04 89 86 00 00 00 01 00 00 00 00 00 00 00 00 00 04 89 90 00 00 00 01 00 00 00 00 00 00 00 00 00 05 0F 6E 00 00 00 01 00 00 00 00 00 00 00 00 00 05 0F 78 00 00 00 01 00 00 00 00 00 00 00 00 00 05 9A 42 00 00 00 01 00 00 00 00 00 00 00 00 00 06 E2 3A 00 00 00 01 00 00 00 00 00 00 00 00 00 08 33 1A 00 00 00 01 00 00 00 00 00 00 00 00 00 08 33 24 00 00 00 01 00 00 00 00 00 00 00 00 00 09 54 66 00 00 00 01 00 00 00 00 00 00 00 00 00 09 54 70 00 00 00 01 00 00 00 00 00 00 00 00 00 09 54 7A 00 00 00 01 00 00 00 00 00 00 00 00 00 09 54 84 00 00 00 01 00 00 00 00 00 00 00 00 00 09 54 8E 00 00 00 01 00 00 00 00 00 00 00 00 00 0A 1E 28 00 00 00 01 00 00 00 00 00 00 00 00 00 0A 1E 32 00 00 00 01 00 00 00 00 00 00 00 00 00 0C 55 08 00 00 00 01 00 00 00 00 00 00 00 00 00 0C 55 12 00 00 00 01 00 00 00 00 00 00 00 00 00 0D 72 94 00 00 00 01 00 00 00 00 00 00 00 00 00 0D 72 9E 00 00 00 01 00 00 00 00 00 00 00 00 00 0E E9 E4 00 00 00 01 00 00 00 00 00 00 00 00 00 0E E9 EE 00 00 00 01 00 00 00 00 00 00 00 00 00 0E E9 F8 00 00 00 01 00 00 00 00 00 00 00 00 00 0E EA 02 00 00 00 01 00 00 00 00 00 00 00 00 00 0E EA 0C 00 00 00 01 00 00 00 00 00 00 00 00 00 0E EA 16 00 00 00 01 00 00 00 00 00 00 00 00 00 0F 85 98 00 00 00 01 00 00 00 00 00 00 00 00 00 0F 85 A2 00 00 00 01 00 00 00 00 00 00 00 00 00 10 49 60 00 00 00 01 00 00 00 00 00 00 00 00 00 10 49 6A 00 00 00 01 00 00 00 00 00 00 00 00 00 10 6A 3A 00 00 00 01 00 00 00 00 00 00 00 00 00 10 6A 44 00 00 00 01 00 00 00 00 00 00 00 00 00 10 A5 18 00 00 00 01 00 00 00 00 00 00 00 00 00 10 A5 22 00 00 00 01 00 00 00 00 00 00 00 00 00 10 E6 E0 00 00 00 01 00 00 00 00 00 00 00 00 00 10 E6 EA 00 00 00 01 00 00 00 00 00 00 00 00 00 12 6A A6 00 00 00 01 00 00 00 00 00 00 00 00 00 12 6A B0 00 00 00 01 00 00 00 00 00 00 00 00 00 12 6A BA 00 00 00 01 00 00 00 00 00 00 00 00 00 12 6A C4 00 00 00 01 00 00 00 00 00 00 00 00 00 12 6A CE 00 00 00 01 00 00 00 00 00 00 00 00 00 12 6A D8 00 00 00 01 00 00 00 00 00 00 00 00 00 12 9F 26 00 00 00 01 00 00 00 00 00 00 00 00 00 12 9F 30 00 00 00 01 00 00 00 00 00 00 00 00 00 12 9F 3A 00 00 00 01 00 00 00 00 00 00 00 00 00 12 9F 44 00 00 00 01 00 00 00 00 00 00 00 00 00 12 9F 4E 00 00 00 01 00 00 00 00 00 00 00 00 00 13 8C 24 00 00 00 01 00 00 00 00 00 00 00 00 00 13 8C 2E 00 00 00 01 00 00 00 00 00 00 00 00 00 13 8C 38 00 00 00 01 00 00 00 00 00 00 00 00 00 13 8C 42 00 00 00 01 00 00 00 00 00 00 00 00 00 13 8C 4C 00 00 00 01 00 00 00 00 00 00 00 00 00 13 8C 56 00 00 00 01 00 00 00 00 00 00 00 00 00 13 8C 60 00 00 00 01 00 00 00 00 00 00 00 00 00 13 8C 6A 00 00 00 01 00 00 00 00 00 00 00 00 00 13 8C 74 00 00 00 01 00 00 00 00 00 00 00 00 00 13 8C 7E 00 00 00 01 00 00 00 00 00 00 00 00 00 13 8C 88 00 00 00 01 00 00 00 00 00 00 00 00 00 13 8C 92 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 02 00 14 DC DC 00 00 00 01 3B 9C 50 A1 00");
                ks.Int(500);//talvez rank
                ks.HexArray("35 8E F2 5A 34 3D 72 00 00 00 00 00 14 DC E6 00 00 00 01 3B 9C 50 A2 00 00 00 00 5A 35 8E F2 5A 34 3D 72 00 00 00 00");
                Serializables.SerializeStages(right, ks);
                ks.Byte(0);
                ks.Int(right.PCharacters.CharInfo[m_dwCharPosition].Equipements.Count);
                for (int x = 0; x < right.PCharacters.CharInfo[m_dwCharPosition].Equipements.Count; x += 1)
                {
                    ks.Int(right.PCharacters.CharInfo[m_dwCharPosition].Equipements[x].ItemID);
                    ks.Int(0);
                    ks.Int(right.PCharacters.CharInfo[m_dwCharPosition].Equipements[x].ItemUID);
                    ks.HexArray("00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00");
                }
                ks.HexArray("00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00");
                ks.Int(right.PInfo.m_dwInvetoryInfo);
                ks.HexArray("00 00 00 64 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 FF FF 00 00 00 00 00 00 00 00 00 00 40 47 1C");
                right.SendPacket(ks, 1621);
                CharsEquipsInfo(right);
            }
            catch (Exception ex)
            {
                Log.Write("\n===========:Error:===========\n{0}\n{1}\n=============================n", ex.Message, ex.StackTrace);
            }
        }
Ejemplo n.º 10
0
        public void EnterRoom(Session p, PacketRead r)
        {
            try
            {
                r.Jump(4);
                ushort roomID   = (ushort)r.Get_Short();
                string Password = r.UnicodeString();
                r.Jump(5);
                string userLogin = r.UnicodeString();
                r.Jump(4);
                string userNick = r.UnicodeString();
                r.Jump(4);
                p.PInfo.m_ucCharType = r.Byte();

                Room room = RoomExists(roomID);

                if (room == null)
                {
                    PacketWrite pw2 = new PacketWrite();
                    pw2.Int(1);
                    p.SendPacket(pw2, 54);
                    return;
                }
                else if (room.m_abTotalSlotsOpen() == 0)
                {
                    PacketWrite pw2 = new PacketWrite();
                    pw2.Int(1);
                    p.SendPacket(pw2, 54);
                    return;
                }
                else if (room.m_bPlaying == true)
                {
                    PacketWrite pw2 = new PacketWrite();
                    pw2.Int(1);
                    p.SendPacket(pw2, 54);
                    return;
                }
                else if (room.m_strRoomPasswd != Password)
                {
                    PacketWrite pw2 = new PacketWrite();
                    pw2.Int(1);
                    p.SendPacket(pw2, 54);
                    return;
                }
                int pos = 0;
                if (room.m_cGameCategory == 2)
                {
                    pos = room.m_abSlotOpen();
                }
                else
                {
                    byte Team1 = 0, Team2 = 0;
                    int  EmptyPos1 = -1, EmptyPos2 = -1;
                    for (int i = 0; i < 3; i++)
                    {
                        if (room.m_dwSlots[i].Active == true)
                        {
                            Team1++;
                        }
                        if (EmptyPos1 == -1 && room.m_dwSlots[i].Open == true)
                        {
                            EmptyPos1 = i;
                        }
                    }
                    for (int i = 3; i < 6; i++)
                    {
                        if (room.m_dwSlots[i].Active == true)
                        {
                            Team2++;
                        }
                        if (EmptyPos2 == -1 && room.m_dwSlots[i].Open == true)
                        {
                            EmptyPos2 = i;
                        }
                    }

                    pos = EmptyPos1;
                    if (Team1 >= Team2)
                    {
                        pos = EmptyPos2;
                    }
                }
                room.m_dwSlots[pos].Active       = true;
                room.m_dwSlots[pos].usr          = p;
                room.m_dwSlots[pos].Open         = false;
                room.m_dwSlots[pos].AFK          = false;
                room.m_dwSlots[pos].Deaths       = 0;
                room.m_dwSlots[pos].Kills        = 0;
                room.m_dwSlots[pos].Win          = 0;
                room.m_dwSlots[pos].PositionSlot = pos;
                room.m_dwSlots[pos].Leader       = false;

                p.PInfo.CurRoom   = room;
                p.PInfo.m_cStatus = "ROOM";
                GameServer.UsersList.Remove(p);

                PacketWrite pw = new PacketWrite();
                pw.UnicodeStr(p.PInfo.m_strLogin);
                pw.Int(p.PInfo.m_dwUserUID);
                pw.UnicodeStr(p.PInfo.m_strNickName);
                pw.Int(pos);
                pw.Byte(p.PInfo.m_ucCharType);
                pw.Int(0);
                pw.HexArray("00 FF 00 FF 00 FF 00 00 00 00");
                pw.Byte((byte)(pos / 3));
                pw.HexArray("01 00 00 00 64 00 00");
                pw.Int(p.PInfo.m_iGamePoint);
                pw.Short(0);
                Serializables.SerializeStages(p, pw);
                if (room.m_sSearchLeader() == p)
                {
                    pw.Bool(true);
                }
                else
                {
                    pw.Bool(false);
                }
                pw.HexArray("01 00 00 00 00 00 00 00 00 00 00 00 00");
                Serializables.m_roomCharacterInfo(p, pw);
                pw.HexArray("00 00 00 02 76 19 A8 C0 10 0C D6 BA 00 00 00 01 7F 39 00 00 00 00 00 00 00 00 00 00 00");
                pw.Byte(room.m_dwSlots[pos].Status);
                pw.HexArray("00 00 00 00 00 12 C8 F2 00 00 00 00 00 D6 D9 BE 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 04 42 00 52 00 0B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 D2 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 D2 F0 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 01 00 00 00 00 00 06 11 16 00 00 00 00 00 00 00 00 46 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 97 D8 00 00 01 A0 04 7B 00 00 00 00 00 00 00 00");

                room.SendForAllPlayersInRoom(pw, 54);
                RoomInfo(p, room);
                RoomInfoDivide(p, room);
            }
            catch (Exception ex)
            {
                Log.Write("{0}", ex.StackTrace);
                PacketWrite pw = new PacketWrite();
                pw.Int(1);
                p.SendPacket(pw, 54);
                p.PInfo.CurRoom   = null;
                p.PInfo.m_cStatus = "LOBBY";
                GameServer.UsersList.Add(p);
            }
        }
Ejemplo n.º 11
0
        public static void KEquipItemInfo(Session right, PacketRead rs, int m_vecCharInfo)
        {
            for (int i = 0; i < m_vecCharInfo; i += 1)
            {
                byte m_cCharIndex     = rs.Byte();
                int  m_vecEquipInfo   = rs.Int();
                int  m_dwCharPosition = right.PCharacters.PositionCharacter(m_cCharIndex, right);
                for (int x = 0; x < m_vecEquipInfo; x += 1)
                {
                    int    m_dwID      = rs.Int();
                    int    m_dwUnk     = rs.Int();
                    int    m_dwUID     = rs.Int();
                    byte   m_cUpgrade  = rs.Byte();
                    byte   m_cGrade    = rs.Byte();
                    int    m_dwLevel   = rs.Int();
                    byte[] test        = rs.Buffer_Array_Bytes(9);
                    int    m_dwAtrribs = rs.Int();
                    for (int x2 = 0; x2 < m_dwAtrribs; x2++)
                    {
                        rs.Jump(7);
                    }
                    right.PCharacters.AddEquipment(m_dwID, m_dwUID, m_dwCharPosition, right);
                    //Log.Write("Character:{0} Equips: {1} Current Item:{2} Atribbs:{3}", m_cCharIndex, m_vecEquipInfo, m_dwID, m_dwAtrribs);
                }
                int m_vecDelInfo = rs.Int();
                for (int x = 0; x < m_vecDelInfo; x += 1)
                {
                    int    m_dwID      = rs.Int();
                    int    m_dwUnk     = rs.Int();
                    int    m_dwUID     = rs.Int();
                    byte   m_cUpgrade  = rs.Byte();
                    byte   m_cGrade    = rs.Byte();
                    int    m_dwLevel   = rs.Int();
                    byte[] test        = rs.Buffer_Array_Bytes(9);
                    int    m_dwAtrribs = rs.Int();
                    for (int x2 = 0; x2 < m_dwAtrribs; x2++)
                    {
                        rs.Jump(7);
                    }
                    right.PCharacters.RemoveEquipment(m_dwID, m_dwCharPosition, right);
                }
                int    m_dwPetIsNew = rs.Int();
                int    m_dwPetUID   = rs.Int();
                int    m_dwPetID    = rs.Int();
                string m_strPetName = rs.String();
                int    m_mapInitExp = rs.Int();
                for (int x = 0; x < m_mapInitExp; x++)
                {
                    rs.Byte();
                    rs.Int();
                }
                uint m_dwExp          = rs.UInt();
                int  m_iLevel         = rs.Int();
                byte m_cPromotion     = rs.Byte();
                int  m_nHatchingID    = rs.Int();
                int  m_iInitSatiation = rs.Int();
                int  m_iSatiation     = rs.Int();
                uint m_vecEquipItem   = rs.UInt();
                right.PCharacters.CharInfo[m_dwCharPosition].Pets[0].Slot1.Clear();
                for (uint x = 0; x < m_vecEquipItem; x++)
                {
                    uint m_dwPetAtkId = rs.UInt();
                    rs.Jump(4);
                    uint m_dwPetAtkUID = rs.UInt();
                    rs.Byte();
                    right.PCharacters.AddAtkPetSlot1((int)m_dwPetAtkId, m_dwPetAtkUID, m_dwCharPosition, right);
                }
                uint m_vecEquipItem2 = rs.UInt();
                right.PCharacters.CharInfo[m_dwCharPosition].Pets[0].Slot2.Clear();
                for (uint x = 0; x < m_vecEquipItem2; x++)
                {
                    uint m_dwPetAtkId = rs.UInt();
                    rs.Jump(4);
                    uint m_dwPetAtkUID = rs.UInt();
                    rs.Byte();
                    right.PCharacters.AddAtkPetSlot2((int)m_dwPetAtkId, m_dwPetAtkUID, m_dwCharPosition, right);
                }
                byte[] restantPet = rs.Buffer_Array_Bytes(14);
                right.PCharacters.CharInfo[m_dwCharPosition].Pets[0].m_dwUID          = m_dwPetUID;
                right.PCharacters.CharInfo[m_dwCharPosition].Pets[0].m_dwID           = m_dwPetID;
                right.PCharacters.CharInfo[m_dwCharPosition].Pets[0].m_strName        = m_strPetName;
                right.PCharacters.CharInfo[m_dwCharPosition].Pets[0].m_cPromotion     = m_cPromotion;
                right.PCharacters.CharInfo[m_dwCharPosition].Pets[0].m_dwEXP          = m_dwExp;
                right.PCharacters.CharInfo[m_dwCharPosition].Pets[0].m_iInitSatiation = m_iInitSatiation;
                right.PCharacters.CharInfo[m_dwCharPosition].Pets[0].m_iLevel         = m_iLevel;
                right.PCharacters.CharInfo[m_dwCharPosition].Pets[0].m_iSatiation     = m_iSatiation;
                right.PCharacters.CharInfo[m_dwCharPosition].Pets[0].m_mapInitExp     = m_mapInitExp;
                right.PCharacters.CharInfo[m_dwCharPosition].Pets[0].m_nHatchingID    = m_nHatchingID;
                //Log.Write("Character:{0} PetID: {1} PetName:{2} Equips:{3}", m_cCharIndex, m_dwPetID, m_strPetName, m_vecEquipItem);

                rs.Jump(41);
            }
        }