コード例 #1
0
        public PlayedCharacter(Bot bot, CharacterBaseInformations informations)
        {
            InformationLevel = MessageLevel.All;// MessageLevel.Warning | MessageLevel.Error;

            if (informations == null)
            {
                throw new ArgumentNullException("informations");
            }

            Bot = bot;

            Id    = informations.id;
            Level = informations.level;
            Name  = informations.name;
            Breed = new Breeds.Breed(ObjectDataManager.Instance.Get <Breed>(informations.breed));
            Look  = informations.entityLook;
            Sex   = informations.sex;

            Inventory        = new Inventory(this);
            Stats            = new Stats.PlayerStats(this);
            SpellsBook       = new SpellsBook(this);
            SpellShortcuts   = new SpellShortcutBar(this);
            GeneralShortcuts = new GeneralShortcutBar(this);

            m_jobs           = new ObservableCollectionMT <Job>();
            m_readOnlyJobs   = new ReadOnlyObservableCollectionMT <Job>(m_jobs);
            m_emotes         = new ObservableCollectionMT <Emoticon>();
            m_readOnlyEmotes = new ReadOnlyObservableCollectionMT <Emoticon>(m_emotes);
        }
コード例 #2
0
        private void BasicCharactersListMessageHandler(DofusClient Client, BasicCharactersListMessage Message)
        {
            CharacterBaseInformations c = Message.Characters[0];

            Client.Logger.Log("Connexion sur le personnage " + c.Name);
            Client.Send(new CharacterSelectionMessage(c.ObjectID));
        }
コード例 #3
0
 public void Deserialize(IDataReader reader)
 {
     Characters = new CharacterBaseInformations[reader.ReadShort()];
     for (var i = 0; i < Characters.Length; i++)
     {
         (Characters[i] = new CharacterBaseInformations()).Deserialize(reader);
     }
 }
コード例 #4
0
 public CharacterSelectedSuccessMessage(
     CharacterBaseInformations infos,
     bool isCollectingStats
     )
 {
     Infos             = infos;
     IsCollectingStats = isCollectingStats;
 }
コード例 #5
0
        protected override void serializeContent(ICustomDataWriter writer)
        {
            var characterInfos = new CharacterBaseInformations();

            characterInfos.Initialize(Entity);
            characterInfos.Serialize(writer);
            writer.WriteBool(false); // Is collecting stats
        }
コード例 #6
0
 private void generateRandom(int count)
 {
     for (int i = 0; i < count; i++)
     {
         var charaInfo = new CharacterBaseInformations();
         charaInfo.Initialize(CharacterGenerator.Instance.Generate());
         Characters.Add(charaInfo);
     }
 }
コード例 #7
0
 private void generateEachClass()
 {
     foreach (var breed in CharacterGenerator.Instance.Breeds)
     {
         var charaInfo = new CharacterBaseInformations();
         charaInfo.Initialize(CharacterGenerator.Instance.Generate(breed.Id));
         Characters.Add(charaInfo);
     }
 }
コード例 #8
0
 public CharactersListEntry(CharacterBaseInformations entry)
 {
     Id    = entry.id;
     Name  = entry.name;
     Level = entry.level;
     Look  = entry.entityLook;
     Breed = (PlayableBreedEnum)entry.breed;
     Sex   = entry.sex;
 }
コード例 #9
0
ファイル: CharacterHandler.cs プロジェクト: srdgame/Past
 public static void SendCharactersListMessage(GameClient client, bool tutorial)
 {
     CharacterBaseInformations[] characterBaseInformations = new CharacterBaseInformations[client.Account.Characters.Count];
     for (int i = 0; i < client.Account.Characters.Count; i++)
     {
         characterBaseInformations[i] = new CharacterBaseInformations(client.Account.Characters[i].Id, client.Account.Characters[i].Name, client.Account.Characters[i].Level, Functions.BuildEntityLook(client.Account.Characters[i].EntityLookString), (sbyte)client.Account.Characters[i].Breed, client.Account.Characters[i].Sex);
     }
     client.Send(new CharactersListMessage(false, tutorial, characterBaseInformations));
 }
コード例 #10
0
 public override void Deserialize(IDataReader reader)
 {
   uint num = (uint) reader.ReadUShort();
   for (int index = 0; (long) index < (long) num; ++index)
   {
     CharacterBaseInformations instance = ProtocolTypeManager.GetInstance<CharacterBaseInformations>((uint) reader.ReadUShort());
     instance.Deserialize(reader);
     this.characters.Add(instance);
   }
 }
コード例 #11
0
ファイル: Character.cs プロジェクト: TifouxDev/OptimusApi
        internal void Update(CharacterSelectedSuccessMessage packet)
        {
            CharacterBaseInformations message = (CharacterBaseInformations)packet.infos;

            ContextualId = message.id;
            Name         = message.name;
            Breed        = (BreedEnum)message.breed;
            Level        = message.level;
            Sex          = (SexEnum)Convert.ToInt16(message.sex);
        }
コード例 #12
0
 public override void Serialize(IDataWriter writer)
 {
     writer.WriteShort((short)((int)this.characters.Length));
     CharacterBaseInformations[] characterBaseInformationsArray = this.characters;
     for (int i = 0; i < (int)characterBaseInformationsArray.Length; i++)
     {
         CharacterBaseInformations characterBaseInformation = characterBaseInformationsArray[i];
         writer.WriteShort(characterBaseInformation.TypeId);
         characterBaseInformation.Serialize(writer);
     }
 }
コード例 #13
0
        public override void Deserialize(IDataReader reader)
        {
            var limit       = reader.ReadShort();
            var characters_ = new CharacterBaseInformations[limit];

            for (int i = 0; i < limit; i++)
            {
                characters_[i] = Types.ProtocolTypeManager.GetInstance <CharacterBaseInformations>(reader.ReadShort());
                characters_[i].Deserialize(reader);
            }
            characters = characters_;
        }
コード例 #14
0
        public override void Serialize(IDataWriter writer)
        {
            writer.WriteShort(((short)(Characters.Count)));
            int charactersIndex;

            for (charactersIndex = 0; (charactersIndex < Characters.Count); charactersIndex = (charactersIndex + 1))
            {
                CharacterBaseInformations objectToSend = Characters[charactersIndex];
                writer.WriteUShort(((ushort)(objectToSend.TypeID)));
                objectToSend.Serialize(writer);
            }
        }
コード例 #15
0
        public override void Deserialize(IDataReader reader)
        {
            int charactersCount = reader.ReadUShort();

            Characters = new List <CharacterBaseInformations>();
            for (int i = 0; i < charactersCount; i++)
            {
                CharacterBaseInformations objectToAdd = ProtocolManager.GetTypeInstance <CharacterBaseInformations>(reader.ReadUShort());
                objectToAdd.Deserialize(reader);
                Characters.Add(objectToAdd);
            }
        }
コード例 #16
0
        public override void Deserialize(ICustomDataInput reader)
        {
            var countCharacters = reader.ReadShort();

            Characters = new List <CharacterBaseInformations>();
            for (short i = 0; i < countCharacters; i++)
            {
                var characterstypeId           = reader.ReadShort();
                CharacterBaseInformations type = new CharacterBaseInformations();
                type.Deserialize(reader);
                Characters.Add(type);
            }
        }
コード例 #17
0
        public PlayedCharacter(Bot bot, CharacterBaseInformations informations)
        {
            if (informations == null)
            {
                throw new ArgumentNullException("informations");
            }

            Bot = bot;

            Id    = informations.id;
            Level = informations.level;
            Name  = informations.name;
            Breed = DataProvider.Instance.Get <Breed>(informations.breed);
            Look  = informations.entityLook;
            Sex   = informations.sex;

            Inventory  = new Inventory(this);
            Stats      = new Stats.PlayerStats(this);
            SpellsBook = new SpellsBook(this);
            Shortcuts  = new ShortcutBar(this);
            Jobs       = new List <Job>();
            Emotes     = new List <Emoticon>();
        }
コード例 #18
0
        public static void HandleCharacterCreation(BigEndianReader reader, WorldClient client, WorldServer server)
        {
            try
            {
                CharacterCreationRequestMessage message = new CharacterCreationRequestMessage();
                message.Unpack(reader);
                client.Send(new CharacterCreationResultMessage(0));
                Thread.Sleep(1000);
                int   y      = 0;
                int[] colors = new int[5];
                foreach (int x in message.colors)
                {
                    if (y < 5 && x != -1)
                    {
                        colors[y] = (y + 1 & 255) << 24 | x & 16777215;
                        //((nb & 255) << 24 | color & 16777215)
                        y++;
                    }
                    else
                    {
                        break;
                    }
                }

                for (int x = 0; x < colors.Length; x++)
                {
                    Out.Debug(colors[x].ToString(), "Colors");
                }
                //x => x.Key << 24 | x.Value.ToArgb() & 0xFFFFFF

                int style = message.breed * 10;
                if (message.sex)
                {
                    style++;
                }

                Char = new CharacterBaseInformations(
                    1,
                    200,
                    message.name,
                    new EntityLook(1, new short[] { (short)style }, colors, new short[] { 125 }, new SubEntity[] { }),
                    message.breed,
                    message.sex);

                IEnumerable <CharacterBaseInformations> chars = new List <CharacterBaseInformations>()
                {
                    Char
                };

                client.Send(new CharactersListMessage(false, chars));
            }
            catch (Exception e)
            {
                Out.Error(e.Message);
            }
            //var_character =
            //{
            //    Level = 1,
            //    Name = message.name,
            //    Breed = message.breed,
            //    Sex = message.sex,
            //    EntityLook = EntityManager.Instance.BuildEntityLook(message.breed, message.sex, message.colors.ToList()),
            //    MapId = BreedManager.Instance.GetStartMap(message.breed),
            //    CellId = BreedManager.Instance.GetStartCell(message.breed),
            //    Direction = BreedManager.Instance.GetStartDirection(message.breed),
            //    SpellsPoints = 1
            //};
        }
コード例 #19
0
 public CharacterSelectedSuccessMessage(CharacterBaseInformations Infos, bool IsCollectingStats)
 {
     this.Infos             = Infos;
     this.IsCollectingStats = IsCollectingStats;
 }
コード例 #20
0
 public override void Deserialize(ICustomDataInput reader)
 {
     this.infos = new CharacterBaseInformations();
     this.infos.Deserialize(reader);
     this.isCollectingStats = reader.ReadBoolean();
 }
コード例 #21
0
        public static object GetInstance(uint typeId)
        {
            object obj = null;

            switch (typeId)
            {
            case 11:
                obj = new Types.Version();
                break;

            case 25:
                obj = new GameServerInformations();
                break;

            case 55:
                obj = new EntityLook();
                break;

            case 54:
                obj = new SubEntity();
                break;

            case 110:
                obj = new CharacterMinimalInformations();
                break;

            case 163:
                obj = new CharacterMinimalPlusLookInformations();
                break;

            case 193:
                obj = new CharacterMinimalPlusLookAndGradeInformations();
                break;

            case 45:
                obj = new CharacterBaseInformations();
                break;

            case 212:
                obj = new CharacterToRecolorInformation();
                break;

            case 86:
                obj = new CharacterHardcoreInformations();
                break;

            case 63:
                obj = new EntityMovementInformations();
                break;

            case 60:
                obj = new EntityDispositionInformations();
                break;

            case 107:
                obj = new IdentifiedEntityDispositionInformations();
                break;

            case 217:
                obj = new FightEntityDispositionInformations();
                break;

            case 127:
                obj = new GuildInformations();
                break;

            case 204:
                obj = new ActorRestrictionsInformations();
                break;

            case 201:
                obj = new ActorAlignmentInformations();
                break;

            case 183:
                obj = new PaddockContentInformations();
                break;

            case 184:
                obj = new MountInformationsForPaddock();
                break;

            case 202:
                obj = new ActorExtendedAlignmentInformations();
                break;

            case 135:
                obj = new AlignmentBonusInformations();
                break;

            case 142:
                obj = new PrismSubAreaInformation();
                break;

            case 152:
                obj = new PrismConquestInformation();
                break;

            case 187:
                obj = new TaxCollectorName();
                break;

            case 96:
                obj = new TaxCollectorBasicInformations();
                break;

            case 4:
                obj = new CharacterBaseCharacteristic();
                break;

            case 215:
                obj = new CharacterSpellModification();
                break;

            case 8:
                obj = new CharacterCharacteristicsInformations();
                break;

            case 117:
                obj = new FightExternalInformations();
                break;

            case 43:
                obj = new FightCommonInformations();
                break;

            case 44:
                obj = new FightTeamMemberInformations();
                break;

            case 13:
                obj = new FightTeamMemberCharacterInformations();
                break;

            case 6:
                obj = new FightTeamMemberMonsterInformations();
                break;

            case 177:
                obj = new FightTeamMemberTaxCollectorInformations();
                break;

            case 20:
                obj = new FightOptionsInformations();
                break;

            case 116:
                obj = new AbstractFightTeamInformations();
                break;

            case 33:
                obj = new FightTeamInformations();
                break;

            case 115:
                obj = new FightTeamLightInformations();
                break;

            case 31:
                obj = new GameFightMinimalStats();
                break;

            case 41:
                obj = new FightLoot();
                break;

            case 16:
                obj = new FightResultListEntry();
                break;

            case 189:
                obj = new FightResultFighterListEntry();
                break;

            case 191:
                obj = new FightResultAdditionalData();
                break;

            case 192:
                obj = new FightResultExperienceData();
                break;

            case 190:
                obj = new FightResultPvpData();
                break;

            case 24:
                obj = new FightResultPlayerListEntry();
                break;

            case 216:
                obj = new FightResultMutantListEntry();
                break;

            case 84:
                obj = new FightResultTaxCollectorListEntry();
                break;

            case 206:
                obj = new AbstractFightDispellableEffect();
                break;

            case 208:
                obj = new FightDispellableEffectExtendedInformations();
                break;

            case 209:
                obj = new FightTemporaryBoostEffect();
                break;

            case 210:
                obj = new FightTriggeredEffect();
                break;

            case 207:
                obj = new FightTemporarySpellBoostEffect();
                break;

            case 211:
                obj = new FightTemporaryBoostWeaponDamagesEffect();
                break;

            case 214:
                obj = new FightTemporaryBoostStateEffect();
                break;

            case 205:
                obj = new GameFightSpellCooldown();
                break;

            case 7:
                obj = new Item();
                break;

            case 49:
                obj = new SpellItem();
                break;

            case 76:
                obj = new ObjectEffect();
                break;

            case 74:
                obj = new ObjectEffectString();
                break;

            case 70:
                obj = new ObjectEffectInteger();
                break;

            case 82:
                obj = new ObjectEffectMinMax();
                break;

            case 73:
                obj = new ObjectEffectDice();
                break;

            case 72:
                obj = new ObjectEffectDate();
                break;

            case 75:
                obj = new ObjectEffectDuration();
                break;

            case 71:
                obj = new ObjectEffectCreature();
                break;

            case 81:
                obj = new ObjectEffectLadder();
                break;

            case 179:
                obj = new ObjectEffectMount();
                break;

            case 178:
                obj = new MountClientData();
                break;

            case 168:
                obj = new ItemDurability();
                break;

            case 85:
                obj = new GameActionMarkedCell();
                break;

            case 123:
                obj = new GoldItem();
                break;

            case 124:
                obj = new ObjectItemMinimalInformation();
                break;

            case 119:
                obj = new ObjectItemQuantity();
                break;

            case 134:
                obj = new ObjectItemNotInContainer();
                break;

            case 37:
                obj = new ObjectItem();
                break;

            case 120:
                obj = new ObjectItemToSell();
                break;

            case 164:
                obj = new ObjectItemToSellInBid();
                break;

            case 198:
                obj = new ObjectItemInRolePlay();
                break;

            case 197:
                obj = new ObjectItemWithLookInRolePlay();
                break;

            case 199:
                obj = new OrientedObjectItemWithLookInRolePlay();
                break;

            case 185:
                obj = new PaddockItem();
                break;

            case 121:
                obj = new SellerBuyerDescriptor();
                break;

            case 122:
                obj = new BidExchangerObjectInfo();
                break;

            case 52:
                obj = new StartupActionAddObject();
                break;

            case 106:
                obj = new IgnoredInformations();
                break;

            case 105:
                obj = new IgnoredOnlineInformations();
                break;

            case 78:
                obj = new FriendInformations();
                break;

            case 92:
                obj = new FriendOnlineInformations();
                break;

            case 77:
                obj = new FriendSpouseInformations();
                break;

            case 93:
                obj = new FriendSpouseOnlineInformations();
                break;

            case 88:
                obj = new GuildMember();
                break;

            case 87:
                obj = new GuildEmblem();
                break;

            case 80:
                obj = new InteractiveElement();
                break;

            case 108:
                obj = new StatedElement();
                break;

            case 200:
                obj = new MapObstacle();
                break;

            case 213:
                obj = new PartyUpdateCommonsInformations();
                break;

            case 90:
                obj = new PartyMemberInformations();
                break;

            case 97:
                obj = new JobCrafterDirectorySettings();
                break;

            case 194:
                obj = new JobCrafterDirectoryEntryPlayerInfo();
                break;

            case 195:
                obj = new JobCrafterDirectoryEntryJobInfo();
                break;

            case 196:
                obj = new JobCrafterDirectoryListEntry();
                break;

            case 101:
                obj = new JobDescription();
                break;

            case 102:
                obj = new SkillActionDescription();
                break;

            case 103:
                obj = new SkillActionDescriptionTimed();
                break;

            case 99:
                obj = new SkillActionDescriptionCollect();
                break;

            case 100:
                obj = new SkillActionDescriptionCraft();
                break;

            case 104:
                obj = new SkillActionDescriptionCraftExtended();
                break;

            case 98:
                obj = new JobExperience();
                break;

            case 111:
                obj = new HouseInformations();
                break;

            case 112:
                obj = new HouseInformationsExtended();
                break;

            case 170:
                obj = new HouseInformationsForGuild();
                break;

            case 132:
                obj = new PaddockInformations();
                break;

            case 130:
                obj = new PaddockBuyableInformations();
                break;

            case 133:
                obj = new PaddockAbandonnedInformations();
                break;

            case 131:
                obj = new PaddockPrivateInformations();
                break;

            case 150:
                obj = new GameContextActorInformations();
                break;

            case 141:
                obj = new GameRolePlayActorInformations();
                break;

            case 157:
                obj = new HumanInformations();
                break;

            case 153:
                obj = new HumanWithGuildInformations();
                break;

            case 154:
                obj = new GameRolePlayNamedActorInformations();
                break;

            case 159:
                obj = new GameRolePlayHumanoidInformations();
                break;

            case 36:
                obj = new GameRolePlayCharacterInformations();
                break;

            case 3:
                obj = new GameRolePlayMutantInformations();
                break;

            case 129:
                obj = new GameRolePlayMerchantInformations();
                break;

            case 146:
                obj = new GameRolePlayMerchantWithGuildInformations();
                break;

            case 180:
                obj = new GameRolePlayMountInformations();
                break;

            case 147:
                obj = new TaxCollectorStaticInformations();
                break;

            case 148:
                obj = new GameRolePlayTaxCollectorInformations();
                break;

            case 167:
                obj = new TaxCollectorInformations();
                break;

            case 166:
                obj = new TaxCollectorInformationsInWaitForHelpState();
                break;

            case 186:
                obj = new ProtectedEntityWaitingForHelpInfo();
                break;

            case 169:
                obj = new TaxCollectorFightersInformation();
                break;

            case 165:
                obj = new AdditionalTaxCollectorInformations();
                break;

            case 144:
                obj = new MonsterInGroupInformations();
                break;

            case 140:
                obj = new GroupMonsterStaticInformations();
                break;

            case 160:
                obj = new GameRolePlayGroupMonsterInformations();
                break;

            case 155:
                obj = new NpcStaticInformations();
                break;

            case 156:
                obj = new GameRolePlayNpcInformations();
                break;

            case 161:
                obj = new GameRolePlayPrismInformations();
                break;

            case 143:
                obj = new GameFightFighterInformations();
                break;

            case 158:
                obj = new GameFightFighterNamedInformations();
                break;

            case 46:
                obj = new GameFightCharacterInformations();
                break;

            case 50:
                obj = new GameFightMutantInformations();
                break;

            case 151:
                obj = new GameFightAIInformations();
                break;

            case 29:
                obj = new GameFightMonsterInformations();
                break;

            case 203:
                obj = new GameFightMonsterWithAlignmentInformations();
                break;

            case 48:
                obj = new GameFightTaxCollectorInformations();
                break;

            case 174:
                obj = new MapCoordinates();
                break;

            case 176:
                obj = new MapCoordinatesExtended();
                break;

            case 175:
                obj = new AtlasPointsInformations();
                break;

            default:
                throw new Exception("Type with id " + typeId + " is unknown.");
            }
            return(obj);
        }
コード例 #22
0
 public override void Deserialize(IDataReader reader)
 {
     m_infos = new CharacterBaseInformations();
     m_infos.Deserialize(reader);
     m_isCollectingStats = reader.ReadBoolean();
 }
コード例 #23
0
 public static void HandleCharacterRemove(BigEndianReader reader, WorldClient client, WorldServer server)
 {
     Char = null;
     client.Send(new CharactersListMessage(false, new List <CharacterBaseInformations>()));
 }
コード例 #24
0
 public CharacterSelectedSuccessMessage(CharacterBaseInformations infos = null)
 {
     Infos = infos;
 }
コード例 #25
0
 public void Deserialize(IDataReader reader)
 {
     Infos = new CharacterBaseInformations();
     Infos.Deserialize(reader);
     IsCollectingStats = reader.ReadBoolean();
 }
コード例 #26
0
 public override void Deserialize(IDataReader reader)
 {
     infos = new CharacterBaseInformations();
     infos.Deserialize(reader);
 }
コード例 #27
0
 public CharacterSelectedSuccessMessage(CharacterBaseInformations infos)
 {
     this.infos = infos;
 }
コード例 #28
0
        public void OnReceivedPacket(object source, PacketEventArg e)
        {
            ServerPacketEnum PacketType = (ServerPacketEnum)e.Packet.MessageID;

            switch (PacketType)
            {
            case ServerPacketEnum.ProtocolRequired: break;

            case ServerPacketEnum.CredentialsAcknowledgementMessage: break;

            case ServerPacketEnum.BasicAckMessage: break;

            case ServerPacketEnum.TextInformationMessage:
                TextInformationMessage text = (TextInformationMessage)e.Packet;
                Log(LogMessageType.Arena, ((TextInformationTypeEnum)text.MsgType).ToString() + "ID = " + text.MsgId);
                for (int i = 0; i < text.Parameters.Count; i++)
                {
                    string t = text.Parameters[i];
                    Log(LogMessageType.Arena, "Parameter[" + i + "] " + t);
                }
                break;

            case ServerPacketEnum.HelloGameMessage:
                Log(LogMessageType.Info, "Connecté au serveur de jeu.");
                HelloGameMessage            helloGame = (HelloGameMessage)e.Packet;
                AuthenticationTicketMessage ATM       = new AuthenticationTicketMessage("fr", _ticket.ToString());
                _GameSocket.Send(ATM);
                break;

            case ServerPacketEnum.RawDataMessage:
                List <int> tt = new List <int>();
                for (int i = 0; i <= 255; i++)
                {
                    Random random = new Random();
                    int    test   = random.Next(-127, 127);
                }
                CheckIntegrityMessage rawData = new CheckIntegrityMessage(tt);
                _GameSocket.Send(rawData);
                break;

            case ServerPacketEnum.HelloConnectMessage:
                Log(LogMessageType.Info, "Connecté au serveur d'authentification.");
                HelloConnectMessage   helloConnectMessage = (HelloConnectMessage)e.Packet;
                sbyte[]               credentials         = RSA.RSAKey.Encrypt(helloConnectMessage.key, accountNameTextField.Text, accountPasswordTextField.Text, helloConnectMessage.salt);
                VersionExtended       version             = new VersionExtended(2, 41, 1, 120264, 1, (sbyte)BuildTypeEnum.RELEASE, 1, 1);
                IdentificationMessage idm = new IdentificationMessage(autoConnectCheckBox.Checked, false, false, version, "fr", credentials, 0, 0, new ushort[0]);
                Log(LogMessageType.Info, "Envois des informations d'identification...");
                _ServerSocket.Send(idm);
                break;

            case ServerPacketEnum.LoginQueueStatusMessage:
                LoginQueueStatusMessage loginQueueStatusMessage = (LoginQueueStatusMessage)e.Packet;
                if (loginQueueStatusMessage.Position != 0 && loginQueueStatusMessage.Total != 0)
                {
                    Log(LogMessageType.Info, "Vous êtes en position " + loginQueueStatusMessage.Position + " sur " + loginQueueStatusMessage.Total + " dans la file d'attente.");
                }
                break;

            case ServerPacketEnum.CurrentMapMessage:
                CurrentMapMessage currentMap = (CurrentMapMessage)e.Packet;
                _GameSocket.Send(new MapInformationsRequestMessage(currentMap.MapId));
                break;

            case ServerPacketEnum.QueueStatusMessage:
                QueueStatusMessage queueStatusMessage = (QueueStatusMessage)e.Packet;
                if (queueStatusMessage.Position != 0 && queueStatusMessage.Total != 0)
                {
                    Log(LogMessageType.Info, "Vous êtes en position " + queueStatusMessage.Position + " sur " + queueStatusMessage.Total + " dans la file d'attente.");
                }
                break;

            case ServerPacketEnum.IdentificationFailedMessage:
                IdentificationFailedMessage msg = (IdentificationFailedMessage)e.Packet;
                Log(LogMessageType.Public, "Identification échouée !");
                Log(LogMessageType.Public, ((IdentificationFailureReasonEnum)msg.Reason).ToString());
                DisconnectHandler();
                break;

            case ServerPacketEnum.IdentificationSuccessMessage: break;

            case ServerPacketEnum.ServerListMessage:
                ServersListMessage servers = (ServersListMessage)e.Packet;
                foreach (GameServerInformations i in servers.Servers)
                {
                    if (i.CharactersCount > 0 && i.IsSelectable && (ServerStatusEnum)i.Status == ServerStatusEnum.ONLINE)
                    {
                        _ServerSocket.Send(new ServerSelectionMessage(i.ObjectID));
                        break;
                    }
                }
                break;

            case ServerPacketEnum.SelectedServerDataMessage:
                SelectedServerDataMessage selected = (SelectedServerDataMessage)e.Packet;
                Log(LogMessageType.Info, "Connexion au serveur " + (ServerNameEnum)selected.ServerId + "...");
                _ticket     = AES.AES.TicketTrans(selected.Ticket);
                _GameSocket = new DofusBotSocket(_deserializer, new IPEndPoint(IPAddress.Parse(selected.Address), selected.Port));
                Log(LogMessageType.Info, "Connexion en cours <" + selected.Address + ":" + selected.Port + ">");
                _GameSocket.ConnectEndListen();
                _ServerSocket.CloseSocket();
                _ServerSocket = null;
                break;

            case ServerPacketEnum.SelectedServerDataExtendedMessage:
                SelectedServerDataExtendedMessage selectedExtended = (SelectedServerDataExtendedMessage)e.Packet;
                Log(LogMessageType.Info, "Connecté au serveur : " + (ServerNameEnum)selectedExtended.ServerId + "...");
                _ticket     = AES.AES.TicketTrans(selectedExtended.Ticket);
                _GameSocket = new DofusBotSocket(_deserializer, new IPEndPoint(IPAddress.Parse(selectedExtended.Address), selectedExtended.Port));
                Log(LogMessageType.Info, "Connexion en cours <" + selectedExtended.Address + ":" + selectedExtended.Port + ">");
                _GameSocket.ConnectEndListen();
                _ServerSocket.CloseSocket();
                _ServerSocket = null;
                break;

            case ServerPacketEnum.AuthenticationTicketAcceptedMessage:
                AuthenticationTicketAcceptedMessage accepted = (AuthenticationTicketAcceptedMessage)e.Packet;
                Thread.Sleep(500);
                _GameSocket.Send(new CharactersListRequestMessage());
                break;

            case ServerPacketEnum.AuthenticationTicketRefusedMessage: break;

            case ServerPacketEnum.GameContextCreateMessage: break;

            case ServerPacketEnum.SetCharacterRestrictionsMessage: break;

            case ServerPacketEnum.BasicNoOperationMessage: break;

            case ServerPacketEnum.NotificationListMessage: break;

            case ServerPacketEnum.CharacterSelectedSuccessMessage: break;

            case ServerPacketEnum.InventoryContentMessage:
                InventoryContentMessage inventory = (InventoryContentMessage)e.Packet;
                Invoke((MethodInvoker) delegate
                {
                    kamasLabel.Text = inventory.Kamas.ToString();
                });
                break;

            case ServerPacketEnum.SetUpdateMessage: break;

            case ServerPacketEnum.ShortcutBarContentMessage: break;

            case ServerPacketEnum.RoomAvailableUpdateMessage: break;

            case ServerPacketEnum.HavenBagPackListMessage: break;

            case ServerPacketEnum.EmoteListMessage: break;

            case ServerPacketEnum.JobDescriptionMessage:
                JobDescriptionMessage jobs = (JobDescriptionMessage)e.Packet;
                foreach (JobDescription j in jobs.JobsDescription)
                {
                    foreach (SkillActionDescription s in j.Skills)
                    {
                        //Log(LogMessageType.Noob, "Métier: " + j.JobId + " | Skill: " + s.SkillId);
                    }
                }
                break;

            case ServerPacketEnum.JobExperienceMultiUpdateMessage: break;

            case ServerPacketEnum.JobCrafterDirectorySettingsMessage: break;

            case ServerPacketEnum.AlignmentRankUpdateMessage: break;

            case ServerPacketEnum.ServerExperienceModificatorMessage: break;

            case ServerPacketEnum.DareCreatedListMessage: break;

            case ServerPacketEnum.AlmanachCalendarDateMessage: break;

            case ServerPacketEnum.CharacterCapabilitiesMessage: break;

            case ServerPacketEnum.GameRolePlayArenaUpdatePlayerInfosAllQueuesMessage: break;

            case ServerPacketEnum.AchievementListMessage: break;

            case ServerPacketEnum.BasicLatencyStatsRequestMessage: break;

            case ServerPacketEnum.GameContextRemoveElementMessage: break;

            case ServerPacketEnum.GameMapChangeOrientationMessage: break;

            case ServerPacketEnum.GameRolePlayShowActorMessage: break;

            case ServerPacketEnum.SpouseStatusMessage: break;

            case ServerPacketEnum.SequenceNumberRequestMessage: break;

            case ServerPacketEnum.GuildMemberWarnOnConnectionStateMessage: break;

            case ServerPacketEnum.WarnOnPermaDeathStateMessage: break;

            case ServerPacketEnum.FriendGuildWarnOnAchievementCompleteStateMessage: break;

            case ServerPacketEnum.FriendWarnOnLevelGainStateMessage: break;

            case ServerPacketEnum.FriendWarnOnConnectionStateMessage: break;

            case ServerPacketEnum.BasicTimeMessage: break;

            case ServerPacketEnum.ServerSettingsMessage: break;

            case ServerPacketEnum.ServerOptionalFeaturesMessage: break;

            case ServerPacketEnum.ServerSessionConstantsMessage: break;

            case ServerPacketEnum.StatedElementUpdatedMessage: break;

            case ServerPacketEnum.InteractiveElementUpdatedMessage: break;

            case ServerPacketEnum.InteractiveUsedMessage: break;

            case ServerPacketEnum.AccountCapabilitiesMessage: break;

            case ServerPacketEnum.TrustStatusMessage: break;

            case ServerPacketEnum.PrismsListMessage: break;

            case ServerPacketEnum.CharacterExperienceGainMessage: break;

            case ServerPacketEnum.IdolListMessage: break;

            case ServerPacketEnum.SpellListMessage: break; break;

            case ServerPacketEnum.EnabledChannelsMessage: break;

            case ServerPacketEnum.GameMapMovementMessage: break;

            case ServerPacketEnum.DareSubscribedListMessage: break;

            case ServerPacketEnum.UpdateMapPlayersAgressableStatusMessage: break;

            case ServerPacketEnum.CharacterStatsListMessage: break;

            case ServerPacketEnum.MapComplementaryInformationsDataMessage:
                MapComplementaryInformationsDataMessage mapInfos = (MapComplementaryInformationsDataMessage)e.Packet;
                Invoke((MethodInvoker) delegate
                {
                    currentMapIdLabel.Text = mapInfos.MapId.ToString();
                });
                break;

            case ServerPacketEnum.LifePointsRegenBeginMessage: break;

            case ServerPacketEnum.GameContextDestroyMessage: break;

            case ServerPacketEnum.IgnoredListMessage: break;

            case ServerPacketEnum.FriendsListMessage:
                FriendsListMessage friendsList = (FriendsListMessage)e.Packet;
                foreach (FriendInformations f in friendsList.FriendsList)
                {
                    Log(LogMessageType.Noob, "Amis: " + f.AccountName + " | Dernière Connexion: " + DateExtensions.UnixTimestampToDateTime(f.LastConnection).ToLongDateString() + " | Points de Succès: " + f.AchievementPoints);
                }
                break;

            case ServerPacketEnum.AccountHouseMessage: break;

            case ServerPacketEnum.StartupActionsListMessage:  break;

            case ServerPacketEnum.ChatCommunityChannelCommunityMessage: break;

            case ServerPacketEnum.DareRewardsListMessage: break;

            case ServerPacketEnum.DareWonListMessage: break;

            case ServerPacketEnum.MailStatusMessage: break;

            case ServerPacketEnum.ChannelEnablingChangeMessage: break;

            case ServerPacketEnum.InventoryWeightMessage:
                InventoryWeightMessage IWM = (InventoryWeightMessage)e.Packet;
                Invoke((MethodInvoker) delegate
                {
                    PodsProgressValue   = IWM.Weight;
                    PodsProgressMaximum = IWM.WeightMax;
                    PodsProgress.Refresh();
                });
                break;

            case ServerPacketEnum.CharacterLoadingCompleteMessage:
                _GameSocket.Send(new FriendsGetListMessage());
                _GameSocket.Send(new IgnoredGetListMessage());
                _GameSocket.Send(new SpouseGetInformationsMessage());
                _GameSocket.Send(new ClientKeyMessage(FlashKeyGenerator.GetRandomFlashKey(accountNameTextField.Text)));
                _GameSocket.Send(new GameContextCreateRequestMessage());
                _GameSocket.Send(new ChannelEnablingMessage(7, false));
                break;

            case ServerPacketEnum.CharactersListMessage:
                CharactersListMessage            charactersList = (CharactersListMessage)e.Packet;
                List <CharacterBaseInformations> characters     = charactersList.Characters;
                for (int i = 0; i < characters.Count; i++)
                {
                    CharacterBaseInformations c = characters[i];
                    Log(LogMessageType.Info, "Connexion sur le personnage " + c.Name);
                    _GameSocket.Send(new CharacterSelectionMessage((ulong)c.ObjectID));
                    break;
                }
                break;

            default:
                Log(LogMessageType.Admin, "Packet: [" + (ServerPacketEnum)e.Packet.MessageID + "] is not handled.");
                break;
            }
        }