コード例 #1
0
        public static void HandleCharacterList(MapleConnection connection, InPacket packet)
        {
            bool viewAllCharacters = packet.ReadBool();
            byte count             = packet.ReadByte();

            for (byte b = 0; b < count; b++)
            {
                Character character = new Character();

                character.Index = b;

                HelpPacket.DecodeCharacterStatistics(character, packet);
                HelpPacket.DecodeCharacterAppearance(character, packet);

                packet.ReadByte();

                if (packet.ReadBool())
                {
                    packet.ReadBytes(16); // NOTE: Ranking.
                }

                character.AvatarUrl = "http://direct.craftnet.nl/maplestory_get_rank_info.php?name=" + character.Name + "&get_character_image";

                Main.Instance.DrawCharacterTile(character);
            }

            MapleConnection.User.PicMode = (PicMode)packet.ReadByte();

            Main.Instance.SetTab(Indexer.CharacterSelect);
        }
コード例 #2
0
ファイル: FieldHandler.cs プロジェクト: github-esme/Averte
        public static void HandleSetField(MapleConnection connection, InPacket packet)
        {
            connection.Character = new Character();

            ushort loopCount = packet.ReadUShort();

            for (int i = 0; i < loopCount; i++)
            {
                packet.ReadLong();
            }

            int gameServerId = packet.ReadInt();

            packet.ReadByte();
            packet.ReadInt();
            connection.Character.PortalCount = packet.ReadByte();
            packet.ReadInt();

            bool characterData = packet.ReadBool();

            if (characterData)
            {
                HelpPacket.DecodeCharacterData(connection.Character, packet);
            }
            else
            {
            }

            Main.Instance.SetField(new Bitmap(1500, 2000));
        }
コード例 #3
0
ファイル: SocialHandler.cs プロジェクト: github-esme/Averte
        public static void HandleMapleChat(MapleConnection connection, InPacket packet)
        {
            MapleChatMode mode = (MapleChatMode)packet.ReadByte();

            switch (mode)
            {
            case MapleChatMode.InviteReceive:
            {
                if (MapleChat.Instance != null)
                {
                    return;         // NOTE: Invite is automatically ignored while being in a chat session.
                }

                string sender   = packet.ReadString();
                byte   unknown1 = packet.ReadByte();
                MapleChat.ID = packet.ReadInt();
                byte unknown2 = packet.ReadByte();

                DialogResult result = Main.Instance.Notify(sender + " has invited you to a chat. Would you like to join?", "Maple Chat", 0, false, true);

                if (result == DialogResult.Yes)
                {
                    connection.Send(SocialPacket.JoinMapleChat(MapleChat.ID));
                }
            }
            break;

            case MapleChatMode.InviteSent:
            {
            }
            break;
            }
        }
コード例 #4
0
ファイル: Client.cs プロジェクト: dasdsad/ms-wind
 /// <summary>
 /// Change current MapleConnection
 /// </summary>
 /// <param name="host">Host IP address as a string</param>
 /// <param name="port">Host port</param>
 public void ChangeConnection(string host, int port)
 {
     if (this.MapleConnect != null)
     {
         this.MapleConnect.Close();
     }
     this.MapleConnect = new MapleConnection(host, port, this);
 }
コード例 #5
0
ファイル: FieldHandler.cs プロジェクト: github-esme/Averte
        public static void HandleSpawnCharacter(MapleConnection connection, InPacket packet)
        {
            Character character = new Character();

            character.ID    = packet.ReadInt();
            character.Level = packet.ReadByte();
            packet.ReadShort();
            character.Name = packet.ReadString();

            Main.Instance.DrawCharacterObject(character);
        }
コード例 #6
0
        public static void HandleLogin(MapleConnection connection, InPacket packet)
        {
            LoginStatus status = (LoginStatus)packet.ReadByte();

            if (status == LoginStatus.Valid)
            {
                packet.Reset(packet.Length - 8);

                MapleConnection.User.SessionID = packet.ReadLong();

                connection.Send(LoginPacket.RequestWorldList());
            }
        }
コード例 #7
0
        public static void HandleMigrate(MapleConnection connection, InPacket packet)
        {
            ushort status = packet.ReadUShort();

            if (status == 0)
            {
                string ip   = string.Join(".", packet.ReadBytes(4));
                ushort port = packet.ReadUShort();

                packet.ReadBytes(6); // NOTE: Unknown.

                MapleConnection.User.ID = packet.ReadInt();
                MapleConnection.Instance.Reconnect(UserState.Game, ip, port);
            }
        }
コード例 #8
0
        public static void HandleWorldInformation(MapleConnection connection, InPacket packet)
        {
            byte worldId = packet.ReadByte();

            if (worldId == byte.MaxValue)
            {
                Main.Instance.SetTab(Indexer.WorldSelect);
            }
            else
            {
                string name = packet.ReadString();

                Main.Instance.DrawWorldTile(worldId, name);
            }
        }
コード例 #9
0
ファイル: GeneralHandler.cs プロジェクト: github-esme/Averte
 public static void HandlePing(MapleConnection connection, InPacket packet)
 {
     connection.Send(GeneralPacket.Pong());
 }