VB/VB.Net [Résolu]Question traduction

Inscrit
7 Avril 2010
Messages
151
Reactions
2
#1
Bonjours tout le monde,
Je suis de retour,
Voila j'ai une question à vous posez qui est :
Est ce qu'il y à un moyen de raccourcir la traduction des packets exemple au lieux de convertir tout le packet, traduire justes des function ?
Merci de votre aide (commence à en avoir marre de tout se taper à la main)
 
Inscrit
29 Septembre 2011
Messages
393
Reactions
3
#2
Re: Question traduction

Oui sa peut être possible mais pas pour toute les class

Exemple :

As :

Code:
package com.ankamagames.dofus.network.messages.connection
{
    import __AS3__.vec.*;
    import com.ankamagames.jerakine.network.*;
    import flash.utils.*;

    public class HelloConnectMessage extends NetworkMessage implements INetworkMessage
    {
        private var _isInitialized:Boolean = false;
        public var salt:String = "";
        public var key:Vector.<int>;
        public static const protocolId:uint = 3;

        public function HelloConnectMessage()
        {
            this.key = new Vector.<int>;
            return;
        }// end function

        override public function get isInitialized() : Boolean
        {
            return this._isInitialized;
        }// end function

        override public function getMessageId() : uint
        {
            return 3;
        }// end function

        public function initHelloConnectMessage(param1:String = "", param2:Vector.<int> = null) : HelloConnectMessage
        {
            this.salt = param1;
            this.key = param2;
            this._isInitialized = true;
            return this;
        }// end function

        override public function reset() : void
        {
            this.salt = "";
            this.key = new Vector.<int>;
            this._isInitialized = false;
            return;
        }// end function

        override public function pack(param1:IDataOutput) : void
        {
            var _loc_2:* = new ByteArray();
            this.serialize(_loc_2);
            writePacket(param1, this.getMessageId(), _loc_2);
            return;
        }// end function

        override public function unpack(param1:IDataInput, param2:uint) : void
        {
            this.deserialize(param1);
            return;
        }// end function

        public function serialize(param1:IDataOutput) : void
        {
            this.serializeAs_HelloConnectMessage(param1);
            return;
        }// end function

        public function serializeAs_HelloConnectMessage(param1:IDataOutput) : void
        {
            param1.writeUTF(this.salt);
            param1.writeShort(this.key.length);
            var _loc_2:uint = 0;
            while (_loc_2 < this.key.length)
            {
                
                param1.writeByte(this.key[_loc_2]);
                _loc_2 = _loc_2 + 1;
            }
            return;
        }// end function

        public function deserialize(param1:IDataInput) : void
        {
            this.deserializeAs_HelloConnectMessage(param1);
            return;
        }// end function

        public function deserializeAs_HelloConnectMessage(param1:IDataInput) : void
        {
            var _loc_4:int = 0;
            this.salt = param1.readUTF();
            var _loc_2:* = param1.readUnsignedShort();
            var _loc_3:uint = 0;
            while (_loc_3 < _loc_2)
            {
                
                _loc_4 = param1.readByte();
                this.key.push(_loc_4);
                _loc_3 = _loc_3 + 1;
            }
            return;
        }// end function

    }
}
En temps normal si on traduit on devrait faire sa :
Code:
Namespace com.ankamagames.dofus.network.messages.connection
    Public Class HelloConnectMessage
        Private _isInitialized As Boolean = False
        Public salt As String = ""
        Public key As New List(Of Integer)
        Public protocolId As UInteger = 3

        Public Function HelloConnectMessage()

            Me.key = New List(Of Integer)
            Return Me
        End Function

        Public Function get_isInitialized() As Boolean

            Return Me._isInitialized
        End Function

        Public Function getMessageId() As UInteger

            Return 3
        End Function

        Public Function initHelloConnectMessage(ByVal param1 As String, ByVal param2 As List(Of Integer)) As HelloConnectMessage

            Me.salt = param1
            Me.key = param2
            Me._isInitialized = True
            Return Me
        End Function

        Public Function reset()

            Me.salt = ""
            Me.key = New List(Of Integer)
            Me._isInitialized = False
            Return Me
        End Function

        Public Function pack(ByVal Sock As System.Net.Sockets.Socket)
            Dim writer As New DofusWriter(Sock)
            Me.serialize(writer)
            DofusWriter.Send(protocolId)
            Return Me
        End Function

        Public Function unpack(ByVal param1 As DofusReader, ByVal param2 As UInteger)

            Me.deserialize(param1)
            Return Me
        End Function

        Public Function serialize(ByVal param1 As DofusWriter)

            Me.serializeAs_HelloConnectMessage(param1)
            Return Me
        End Function

        Public Function serializeAs_HelloConnectMessage(ByVal param1 As DofusWriter)

            param1.WriteUTF(Me.salt)
            param1.WriteUShort(Me.key.Count)
            Dim _loc_2 As UInteger = 0
            For i As UInteger = _loc_2 To Me.key.Count
                param1.WriteByte(Me.key(_loc_2))
            Next
            Return Me
        End Function

        Public Function deserialize(ByVal param1 As DofusReader)
            Me.deserializeAs_HelloConnectMessage(param1)
            Return Me
        End Function

        Public Function deserializeAs_HelloConnectMessage(ByVal param1 As DofusReader)
            Dim _loc_4 As Integer = 0
            Me.salt = param1.ReadUTF()
            Dim _loc_2 As UShort = param1.ReadUnSignedshort()
            Dim _loc_3 As UInteger = 0
            While (_loc_3 < _loc_2)
                _loc_4 = param1.ReadByte()
                Me.key.Add(_loc_4)
                _loc_3 = _loc_3 + 1
            End While
            Return Me
        End Function
    End Class
End Namespace
Mais moi comme j'ai besoin que du deserialize ma class devient comme ça :
Code:
Namespace com.ankamagames.dofus.network.messages.connection
    Public Class HelloConnectMessage
        Public salt As String
        Public key As List(Of Integer) = New List(Of Integer)

        Public Sub deserialize(ByVal data As DofusReader)
            salt = data.ReadUTF
            Dim keycount As Integer = data.ReadUnSignedshort
            For keyInt As Integer = 0 To keycount - 1
                key.Add(data.ReadByte)
            Next
        End Sub
    End Class
End Namespace
J'espère que c'est bien sa que tu rechercher.
 
A

Anonymous

Invité
#3
Re: Question traduction

Miniteck envoie moi ton Skype en MP stp :)
 
Inscrit
7 Avril 2010
Messages
151
Reactions
2
#4
Re: Question traduction

Ok merci tifoux,
Cela m'aide un peut,
Mais par exemple pour des packet ou il faut write par exemple pour up un sort alors on traduit que serialize ?
Ps : The-Falcon MP envoyer
 
Inscrit
29 Septembre 2011
Messages
393
Reactions
3
#5
Re: Question traduction

miniteck27140 a dit:
Ok merci tifoux,
Cela m'aide un peut,
Mais par exemple pour des packet ou il faut write par exemple pour up un sort alors on traduit que serialize ?
Ps : The-Falcon MP envoyer
J'ai pas encore essayer mais je pense c'est possible sans class vue qu'on envoi de la meme manière.

exemple :


pour envoyé un message dans n'autre class il nous fait 1 class + un Inherits

code qu'on prépare :

as :
Code:
package com.ankamagames.dofus.network.messages.game.chat
{
    import flash.utils.*;

    public class ChatClientMultiMessage extends ChatAbstractClientMessage implements INetworkMessage
    {
        private var _isInitialized:Boolean = false;
        public var channel:uint = 0;
        public static const protocolId:uint = 861;

        public function ChatClientMultiMessage()
        {
            return;
        }// end function

        override public function get isInitialized() : Boolean
        {
            return super.isInitialized && this._isInitialized;
        }// end function

        override public function getMessageId() : uint
        {
            return 861;
        }// end function

        public function initChatClientMultiMessage(param1:String = "", param2:uint = 0) : ChatClientMultiMessage
        {
            super.initChatAbstractClientMessage(param1);
            this.channel = param2;
            this._isInitialized = true;
            return this;
        }// end function

        override public function reset() : void
        {
            super.reset();
            this.channel = 0;
            this._isInitialized = false;
            return;
        }// end function

        override public function pack(param1:IDataOutput) : void
        {
            var _loc_2:* = new ByteArray();
            this.serialize(_loc_2);
            writePacket(param1, this.getMessageId(), _loc_2);
            return;
        }// end function

        override public function unpack(param1:IDataInput, param2:uint) : void
        {
            this.deserialize(param1);
            return;
        }// end function

        override public function serialize(param1:IDataOutput) : void
        {
            this.serializeAs_ChatClientMultiMessage(param1);
            return;
        }// end function

        public function serializeAs_ChatClientMultiMessage(param1:IDataOutput) : void
        {
            super.serializeAs_ChatAbstractClientMessage(param1);
            param1.writeByte(this.channel);
            return;
        }// end function

        override public function deserialize(param1:IDataInput) : void
        {
            this.deserializeAs_ChatClientMultiMessage(param1);
            return;
        }// end function

        public function deserializeAs_ChatClientMultiMessage(param1:IDataInput) : void
        {
            super.deserialize(param1);
            this.channel = param1.readByte();
            if (this.channel < 0)
            {
                throw new Error("Forbidden value (" + this.channel + ") on element of ChatClientMultiMessage.channel.");
            }
            return;
        }// end function

    }
}
extends ChatAbstractClientMessage ;

Code:
package com.ankamagames.dofus.network.messages.game.chat
{
    import com.ankamagames.jerakine.network.*;
    import flash.utils.*;

    public class ChatAbstractClientMessage extends NetworkMessage implements INetworkMessage
    {
        private var _isInitialized:Boolean = false;
        public var content:String = "";
        public static const protocolId:uint = 850;

        public function ChatAbstractClientMessage()
        {
            return;
        }// end function

        override public function get isInitialized() : Boolean
        {
            return this._isInitialized;
        }// end function

        override public function getMessageId() : uint
        {
            return 850;
        }// end function

        public function initChatAbstractClientMessage(param1:String = "") : ChatAbstractClientMessage
        {
            this.content = param1;
            this._isInitialized = true;
            return this;
        }// end function

        override public function reset() : void
        {
            this.content = "";
            this._isInitialized = false;
            return;
        }// end function

        override public function pack(param1:IDataOutput) : void
        {
            var _loc_2:* = new ByteArray();
            this.serialize(_loc_2);
            writePacket(param1, this.getMessageId(), _loc_2);
            return;
        }// end function

        override public function unpack(param1:IDataInput, param2:uint) : void
        {
            this.deserialize(param1);
            return;
        }// end function

        public function serialize(param1:IDataOutput) : void
        {
            this.serializeAs_ChatAbstractClientMessage(param1);
            return;
        }// end function

        public function serializeAs_ChatAbstractClientMessage(param1:IDataOutput) : void
        {
            param1.writeUTF(this.content);
            return;
        }// end function

        public function deserialize(param1:IDataInput) : void
        {
            this.deserializeAs_ChatAbstractClientMessage(param1);
            return;
        }// end function

        public function deserializeAs_ChatAbstractClientMessage(param1:IDataInput) : void
        {
            this.content = param1.readUTF();
            return;
        }// end function

    }
}

ma traduction :

Code:
Namespace Tempest.Dofus.Packet.Game.Tchat
    Public Class ChatClientMultiMessage
        Inherits ChatAbstractClientMessage
        Public Overrides Property channel As UInteger = 0
        Public Overrides Property protocolId As UInteger = 861


        Public Function Ini(ByVal message As String, ByVal chanel As Byte)
            MyBase.Ini(message)
            channel = chanel
            Return Me
        End Function

        Public Function pack(ByVal Sock As System.Net.Sockets.Socket)
            Dim writer As New DofusWriter(Sock)
            Me.serialize(writer)
            DofusWriter.Send(protocolId)
            Return Me
        End Function

        Public Overrides Function serialize(ByVal writer As DofusWriter)
            MyBase.serialize(writer)
            writer.WriteByte(channel)
            Return Me
        End Function
    
    End Class
End Namespace
Code:
Namespace Tempest.Dofus.Packet.Game.Tchat
    Public Class ChatAbstractClientMessage
        Public Overridable Property channel As UInteger = 0
        Public Overridable Property content As String = ""
        Public Overridable Property protocolId As UInteger = 880

        Public Function Ini(ByVal message As String)
            content = message
            Return Me
        End Function
        Public Overridable Function serialize(ByVal writer As DofusWriter)
            writer.WriteUTF(content)
            Return Me
        End Function
    End Class
End Namespace
si on analyse bien le packet a envoyé sa démarche sa sera sa :

en principe on devrait procéder comme ça :

Code:
 Dim tchat As New ChatClientMultiMessage()
 tchat.Ini("Message", 0) '  on prépare le packet  avec le message et le channel
 tchat.pack(_socket_Jeu) ' on envois tous  sa
on peut peut être tous simplement faire comme sa :

Code:
  Dim writer As New DofusWriter(_socket_Jeu)
writer.WriteUTF("Message")
writer.WriteByte(0)
DofusWriter.Send(861)
pour te répondre oui si tu veux up un sort tu peux traduit que le serialize ou essayer la methode ci-dessus.
la fonction ci-dessus n'a pas été tester.

j'espère t'avoir aider.
 
Inscrit
7 Avril 2010
Messages
151
Reactions
2
#6
Re: Question traduction

Je comprend mieux donc y à des truc qui servent à rien de tout traduire,
Merci beaucoup
 
Inscrit
29 Septembre 2011
Messages
393
Reactions
3
#7
Re: Question traduction

De rien bonne soiré a toi. => oublie pas de mettre [Résolue]. ou [Expliquer]
 
A

Anonymous

Invité
#8
Re: Question traduction

Faut pas tout retiré non plus ^^
Si c'est un packet que tu reçois tu retire tout sauf deserialize et les variables.
Si c'est un packet que tu envoie tu laisse serialize, les variables + init (optionnel mais pratique :) )
 
Haut Bas