Bonjour, je viens vous voir car j'ai un soucis qui m'empêche de continuer sur mon émulateur de test.

J'utilise le client 2.40 modifié de Nightwolf93.

Lors de la réception du CharactersListRequestMessage, je voudrais envoyer un CharactersListMessage vide puisque le compte est vierge.


    Public Shared Sub HandleCharactersListRequestMessage(Remote As Client, Message As CharactersListRequestMessage)
        SendMessage(Remote.Socket, New CharactersListMessage(New CharacterBaseInformations() {}, False))
    End Sub

En revanche, en procédant ainsi, une erreur apparaît sur Dofus.

Erreur

Cliquez pour révéler Cliquez pour masquer

[Image Introuvable]

Voici les logs :


- [ServerConnection] [server_login] Connection opened.
- [13:55:26:764] [ServerConnection] [server_login] [RCV] ProtocolRequired @1
- [13:55:26:764] [ServerConnection] [server_login] [RCV] HelloConnectMessage @2
- [13:55:26:780] [Worker] Removing frame: [object HandshakeFrame]
- [13:55:26:783] [AuthentificationFrame] Current version : 2.40.0.118482.4
- [13:55:26:783] [ServerConnection] [server_login] [SND] > IdentificationMessage @3
- [13:55:26:794] [ServerConnection] [server_login] [RCV] IdentificationSuccessMessage @4
- [13:55:26:795] [ServerConnection] [server_login] [RCV] ServersListMessage @5
- [13:55:26:801] [AuthentificationFrame] Timestamp subscription end date : 42195168000000 ( 11/02/3307 01:00 )
- [13:55:26:826] [StoreUserDataManager] Data already saved.
- [13:55:26:826] [Worker] Removing frame: [object AuthentificationFrame]
- [13:55:26:826] [Worker] Adding frame: [object ChangeCharacterFrame]
- [13:55:26:826] [Worker] Adding frame: [object ServerSelectionFrame]
- [13:55:26:838] [Berilia] login correctly unloaded in 8ms
- [13:55:26:859] [UiRenderManager] Ankama_Connection::serverTypeSelection rendered in 18 ms (parsing: 0 ms, build: 18 ms, script:0 ms )
- [13:55:27:240] [TooltipManager] tooltip_standard xml generated in 18ms
- [13:55:27:246] [UiRenderManager] tooltip_standard rendered in 5 ms (parsing: 1 ms, build: 4 ms, script:0 ms )
- [13:55:27:862] [UiRenderManager] Ankama_Connection::serverListSelection rendered in 18 ms (parsing: 0 ms, build: 18 ms, script:0 ms )
- [13:55:27:865] [Berilia] serverTypeSelection correctly unloaded in 1ms
- [13:55:28:899] [StateContainer] btn_server_m_gd_listServer_0 : No data for state '5' (5 states)
- [13:55:28:999] [StateContainer] btn_server_m_gd_listServer_0 : No data for state '5' (5 states)
- [13:55:29:082] [ServerConnection] [server_login] [SND] > ServerSelectionMessage @6
- [13:55:29:090] [ServerConnection] [server_login] [RCV] SelectedServerDataMessage @7
- [13:55:29:090] [ServerConnection] [server_login] Connection closed.
- [13:55:29:101] [DisconnectionHandlerFrame] The connection was closed. Checking reasons.
- [13:55:29:101] [DisconnectionHandlerFrame] The connection closure was expected (reason: 1). Dispatching the message.
- [13:55:29:101] [Worker] Removing frame: [object ServerSelectionFrame]
- [13:55:29:101] [Worker] Adding frame: [object GameServerApproachFrame]
- [13:55:29:102] [MultiConnection] Adding connection server_game
- [13:55:29:102] [Worker] Adding frame: [object HandshakeFrame]
- [13:55:29:102] [ServerConnection] [server_game] Connecting to 127.0.0.1:5556...
- [13:55:29:103] [Worker] Adding frame: [object MiscFrame]
- [13:55:29:103] [ServerConnection] [server_game] Connection opened.
- [13:55:29:111] [ServerConnection] [server_game] [RCV] ProtocolRequired @8
- [13:55:29:111] [ServerConnection] [server_game] [RCV] HelloGameMessage @9
- [13:55:29:120] [Worker] Removing frame: [object HandshakeFrame]
- [13:55:29:127] [ServerConnection] [server_game] [SND] > AuthenticationTicketMessage @10
- [13:55:29:133] [ServerConnection] [server_game] [RCV] AuthenticationTicketAcceptedMessage @11
- [13:55:29:660] [ServerConnection] [server_game] [SND] > CharactersListRequestMessage @12
- [13:55:29:662] [ServerConnection] [server_game] [RCV] CharactersListMessage @13
- [13:55:34:129] [ServerConnection] [] Failure while opening socket, timeout.
- [13:55:34:137] [UiRenderManager] Ankama_Common::popup rendered in 6 ms (parsing: 0 ms, build: 3 ms, script:1 ms )

Si quelqu'un pourrait m'aider, je lui en serait très reconnaissant, merci.

Je précise que mes IO sont à jour, les fonctions d'écriture/lectures sont tirées du DofusInvoker.

    Pourquoi tu utilises 2 comptes différents tu ma mp avec un autre compte Eliway

      skeezr

      Pourquoi tu utilises 2 comptes différents tu ma mp avec un autre compte Eliway

      Le nom était pas bon. Celui-ci est le définitif, je contacterai un admin

      Bonsoir,

      Il est normal que le client t'affiche une erreur puisque dans la fonction Serialize() du paquet on écrit d'abord la taille de la liste puis son contenu.

      Si ta liste est null, la taille de la liste, même si elle est de 0 ne pourra pas être écrite, le foreach ne pourra pas non plus être parcouru.

      
      writer.WriteShort((short)characters.Length);
                  foreach (var entry in characters)
                  {
                       writer.WriteShort(entry.TypeId);
                       entry.Serialize(writer);
                  }

      Donc il te suffit juste de définir une nouvelle liste sans contenu.

        BlueDream

        Bonsoir,

        Il est normal que le client t'affiche une erreur puisque dans la fonction Serialize() du paquet on écrit d'abord la taille de la liste puis son contenu.

        Si ta liste est null, la taille de la liste, même si elle est de 0 ne pourra pas être écrite, le foreach ne pourra pas non plus être parcouru.

        
        writer.WriteShort((short)characters.Length);
                    foreach (var entry in characters)
                    {
                         writer.WriteShort(entry.TypeId);
                         entry.Serialize(writer);
                    }

        Donc il te suffit juste de définir une nouvelle liste sans contenu.

        Voici ce que j'obtient en procédant ainsi:

        
            Public Shared Sub HandleCharactersListRequestMessage(Remote As Client, Message As CharactersListRequestMessage)
                Dim L As New List(Of CharacterBaseInformations)
                L.Add(New CharacterBaseInformations)
                SendMessage(Remote.Socket, New CharactersListMessage(L, False))
            End Sub
        

        [Image Introuvable]

        Même soucis en mettant la valeur par défaut de level à 1

        Pourquoi ajoutes-tu un élément vide ?

        Ta liste doit juste être définie sans élément puisque il n'y a pas de joueur.

        Public Shared Sub HandleCharactersListRequestMessage(Remote As Client, Message As CharactersListRequestMessage)
                SendMessage(Remote.Socket, New CharactersListMessage(New List(Of CharacterBaseInformations), False))
            End Sub

          BlueDream

          Pourquoi ajoutes-tu un élément vide ?

          Ta liste doit juste être définie sans élément puisque il n'y a pas de joueur.

          Public Shared Sub HandleCharactersListRequestMessage(Remote As Client, Message As CharactersListRequestMessage)
                  SendMessage(Remote.Socket, New CharactersListMessage(New List(Of CharacterBaseInformations), False))
              End Sub

          J'obtient ceci une nouvelle fois :

          [Image Introuvable]

          avec

          - [20:19:27:502] [ServerConnection] [server_game] [RCV] CharactersListMessage @13

          - [20:19:28:422] [UpdaterConnexionHandler] Can't etablish connection with updater

          - [20:19:28:422] [ServerConnection] [] Failure while opening socket.

          - [20:20:11:498] [ServerConnection] [] Failure while opening socket, timeout.

          A quoi ressemble ta fonction pour serializer ton packet ?

          Et cette erreur a beaucoup de chance de venir du fait que ton socket a planter. :)

          Naywyn

          - [13:55:29:660] [ServerConnection] [server_game] [SND] > CharactersListRequestMessage @12

          - [13:55:29:662] [ServerConnection] [server_game] [RCV] CharactersListMessage @13

          - [13:55:34:129] [ServerConnection] [] Failure while opening socket, timeout.

          - [13:55:34:137] [UiRenderManager] Ankama_Common::popup rendered in 6 ms (parsing: 0 ms, build: 3 ms, script:1 ms )[/CODE]

            neross

            A quoi ressemble ta fonction pour serializer ton packet ?

            Et cette erreur a beaucoup de chance de venir du fait que ton socket a planter. :)

            Je pense pas que ce soit le socket qui plante, sinon l'émulateur aurait throw une exception, elles sont toutes non handled dans les paramètres d'exception donc ça me l'aurait dit.

            Voici mes classes, si vous avez besoin de plus d'informations, dites-le moi.

            https://pastebin.com/HVsN0djj

            Je n'arrive pas à trouver ou, mais ça ressemble plus à une erreur dans ton Serialize().

            Partages nous tes fonctions Read / Write.

              neross

              C'est pas ca que l'on veux voir mais : https://pastebin.com/vgj935Ft

              Oui, j'ai la même classe ici : https://pastebin.com/HVsN0djj

              Et pourtant j'ai toujours ce nullreference.

              EDIT: J'obtient ceci :

              Cliquez pour révéler Cliquez pour masquer

              - [12:39:00:330] [ServerConnection] [server_game] Error while reading socket. Error: Forbidden value (0) on element of CharacterMinimalInformations.level. at com.ankamagames.dofus.network.types.game.character::CharacterMinimalInformations/_levelFunc() at com.ankamagames.dofus.network.types.game.character::CharacterMinimalInformations/deserializeAs_CharacterMinimalInformations() at com.ankamagames.dofus.network.types.game.character::CharacterMinimalInformations/deserialize() at com.ankamagames.dofus.network.types.game.character::CharacterMinimalPlusLookInformations/deserializeAs_CharacterMinimalPlusLookInformations() at com.ankamagames.dofus.network.types.game.character::CharacterMinimalPlusLookInformations/deserialize() at com.ankamagames.dofus.network.types.game.character.choice::CharacterBaseInformations/deserializeAs_CharacterBaseInformations() at com.ankamagames.dofus.network.types.game.character.choice::CharacterBaseInformations/deserialize() at com.ankamagames.dofus.network.messages.game.character.choice::BasicCharactersListMessage/deserializeAs_BasicCharactersListMessage() at com.ankamagames.dofus.network.messages.game.character.choice::BasicCharactersListMessage/deserialize() at com.ankamagames.dofus.network.messages.game.character.choice::CharactersListMessage/deserializeAs_CharactersListMessage() at com.ankamagames.dofus.network.messages.game.character.choice::CharactersListMessage/deserialize() at com.ankamagames.dofus.network.messages.game.character.choice::CharactersListMessage/unpack() at com.ankamagames.dofus.network::MessageReceiver/parse() at com.ankamagames.jerakine.network::ServerConnection/lowReceive() at com.ankamagames.jerakine.network::ServerConnection/receive() at com.ankamagames.jerakine.network::ServerConnection/onSocketData()

              Même avec :

              [Image Introuvable]

              Vérifie CharacterBasicMinimalInformations car s'il lis pas correctement dedans il ne liras pas correctement le level. :)

              Bon, j'ai tout essayé et rien ne marche, toujours ce nullreferenceException.

              J'ai même cette fois ci converti les classes de Stump version 2.40, et même problème.

              EDIT: En procédant ainsi :

              
                Public Shared Sub HandleCharactersListRequestMessage(Remote As Client, Message As CharactersListRequestMessage)
              
                      Dim Characters As New List(Of CharacterBaseInformations)
                      Dim SE As New List(Of SubEntity)
              
                      Characters.Add(New CharacterBaseInformations(1, "df", 1, New EntityLook(0, New UShort() {0}, New Integer() {0}, New Short() {0}, SE), 1, False))
              
                      SendMessage(Remote.Socket, New CharactersListMessage(Characters, False))
                  End Sub

              J'obtient

              Cliquez pour révéler Cliquez pour masquer

              - [16:34:46:340] [ServerConnection] [server_game] Error while reading socket. Error: Error #2030: End of file was encountered. at flash.net::Socket/readByte() at com.ankamagames.jerakine.network::CustomDataWrapper/readVarShort() at com.ankamagames.jerakine.network::CustomDataWrapper/readVarUhShort() at com.ankamagames.dofus.network.types.game.look::EntityLook/deserializeAs_EntityLook() at com.ankamagames.dofus.network.types.game.look::EntityLook/deserialize() at com.ankamagames.dofus.network.types.game.character::CharacterMinimalPlusLookInformations/deserializeAs_CharacterMinimalPlusLookInformations() at com.ankamagames.dofus.network.types.game.character::CharacterMinimalPlusLookInformations/deserialize() at com.ankamagames.dofus.network.types.game.character.choice::CharacterBaseInformations/deserializeAs_CharacterBaseInformations() at com.ankamagames.dofus.network.types.game.character.choice::CharacterBaseInformations/deserialize() at com.ankamagames.dofus.network.messages.game.character.choice::BasicCharactersListMessage/deserializeAs_BasicCharactersListMessage() at com.ankamagames.dofus.network.messages.game.character.choice::BasicCharactersListMessage/deserialize() at com.ankamagames.dofus.network.messages.game.character.choice::CharactersListMessage/deserializeAs_CharactersListMessage() at com.ankamagames.dofus.network.messages.game.character.choice::CharactersListMessage/deserialize() at com.ankamagames.dofus.network.messages.game.character.choice::CharactersListMessage/unpack() at com.ankamagames.dofus.network::MessageReceiver/parse() at com.ankamagames.jerakine.network::ServerConnection/lowReceive() at com.ankamagames.jerakine.network::ServerConnection/receive() at com.ankamagames.jerakine.network::ServerConnection/onSocketData()

              Dans tous les cas rien ne marche.

              Error: Error #2030: End of file was encountered. at flash.net::Socket/readByte() atcom.ankamagames.jerakine.network::CustomDataWrapper/readVarShort()

              Ça c'est qu'il manque des valeurs car il lis trop loin par rapport a ce que tu envois.

              C'est vraiment bizarre, j'ai retraduit les classes et ça marche toujours pas.

              Au pire on peux TeamViewer pour que tu jettes un œil parce que je comprend vraiment pas.

              EDIT: Bytes envoyés

              Décimal : [Image Introuvable]

              Hexadécimal : [Image Introuvable]

              Officiel :

              [Image Introuvable]

              Problème toujours d'actualité, plusieurs personnes n'ont pas réussi, petite prime pour celui qui réussi :D

                Naywyn

                Problème toujours d'actualité, plusieurs personnes n'ont pas réussi, petite prime pour celui qui réussi :D

                Le concept d'aide ce n'est pas de travailler pour toi. On ta donner tout ce qui touche au packet si en retraduisant tout c'est pas bon regarde ton client s'il est bon. La prime elle est pour toi car on est pas ici pour faire ton travail a ta place.

                  neross

                  Le concept d'aide ce n'est pas de travailler pour toi. On ta donner tout ce qui touche au packet si en retraduisant tout c'est pas bon regarde ton client s'il est bon. La prime elle est pour toi car on est pas ici pour faire ton travail a ta place.

                  C'est vraiment marrant quand tu dises que le concept d'aide n'est pas de travailler pour moi, quand j'y ai passé des heures tous les jours et des semaines à essayer de trouver le problème, quand je n'ai pas réussi, quand même Apokah n'as pas réussi non plus. Tu fais le travail à ma place ? Ah oui, c'est bien nouveau ça. Tu n'as même pas la moindre idée du temps que j'y ai passé dessus. Si je fais ce sujet c'est parce que je suis à bout, et qu'aucune solution n'as été trouvée. Donc si c'est venir dire ça, tu peux retourner à la liste des sujets.

                  Le client est bon, @nightwolf93 a accès au jeu.

                  Le packet ainsi que ses dérivés sont bons et traduits.