BasicAckMessage ?

BlueDream

Administrateur
Membre du personnel
Inscrit
8 Decembre 2012
Messages
2 010
Reactions
149
#1
Hello cadernis,

je travail sur un bot full socket et j'ai remarqué qu'on m'envoi un nouveau paquet:
[Listener] Packet | Name=BasicAckMessage Id=6362 Len=6
package com.ankamagames.dofus.network.messages.game.basic
{
import *.*;
import com.ankamagames.jerakine.network.*;
import flash.utils.*;

public class BasicAckMessage extends NetworkMessage implements INetworkMessage
{
private var _isInitialized:Boolean = false;
public var seq:uint = 0;
public var lastPacketId:uint = 0;
public static const protocolId:uint = 6362;

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

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

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

public function initBasicAckMessage(param1:uint = 0, param2:uint = 0) : BasicAckMessage
{
this.seq = param1;
this.lastPacketId = param2;
this._isInitialized = true;
return this;
}// end function

override public function reset() : void
{
this.seq = 0;
this.lastPacketId = 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

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

public function serializeAs_BasicAckMessage(param1:IDataOutput) : void
{
if (this.seq < 0)
{
throw new Error("Forbidden value (" + this.seq + ") on element seq.");
}
param1.writeInt(this.seq);
if (this.lastPacketId < 0)
{
throw new Error("Forbidden value (" + this.lastPacketId + ") on element lastPacketId.");
}
param1.writeShort(this.lastPacketId);
return;
}// end function

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

public function deserializeAs_BasicAckMessage(param1:IDataInput) : void
{
this.seq = param1.readInt();
if (this.seq < 0)
{
throw new Error("Forbidden value (" + this.seq + ") on element of BasicAckMessage.seq.");
}
this.lastPacketId = param1.readShort();
if (this.lastPacketId < 0)
{
throw new Error("Forbidden value (" + this.lastPacketId + ") on element of BasicAckMessage.lastPacketId.");
}
return;
}// end function

}
}

Donc d'après ce que j'ai pu constater a chaque fois que j'envoi un paquet, le serveur me renvoi BasicAckMessage contenant l'id du paquet que je vien d'envoyer ainsi qu'une variable seq, je ne sais pas du tout ce qu'elle signifie.

Quelqu'un pourrait m'éclaire sur ce paquet ? C'est un problème qui vient de mon bot ?
J'ai remarqué qu'au bout de quelque minutes mon bot est déconnecté.

[Debug] ShadowBot pour Dofus Version 2.11.4.72414.1
[Listener] Packet | Name=ProtocolRequired Id=1 Len=8
[Listener] Packet | Name=HelloConnectMessage Id=3 Len=341
[Writer] Packet | Name=IdentificationMessage Id=4
[Listener] Packet | Name=LoginQueueStatusMessage Id=10 Len=4
[Listener] Packet | Name=CredentialsAcknowledgementMessage Id=6314 Len=0
[Listener] Packet | Name=LoginQueueStatusMessage Id=10 Len=4
[Listener] Packet | Name=IdentificationSuccessMessage Id=22 Len=42
[Listener] Packet | Name=ServersListMessage Id=30 Len=730
[Writer] Packet | Name=ServerSelectionMessage Id=40
[Listener] Packet | Name=SelectedServerDataMessage Id=42 Len=55
[Listener] Packet | Name=ProtocolRequired Id=1 Len=8
[Listener] Packet | Name=HelloGameMessage Id=101 Len=0
[Writer] Packet | Name=AuthenticationTicketMessage Id=110
[Listener] Packet | Name=BasicAckMessage Id=6362 Len=6
[Listener] Packet | Name=AuthenticationTicketAcceptedMessage Id=111 Len=0
[Writer] Packet | Name=GameContextActorInformations Id=150
[Listener] Packet | Name=BasicTimeMessage Id=175 Len=6
[Listener] Packet | Name=ServerSettingsMessage Id=6340 Len=6
[Listener] Packet | Name=ServerOptionalFeaturesMessage Id=6305 Len=14
[Listener] Packet | Name=AccountCapabilitiesMessage Id=6216 Len=10
[Listener] Packet | Name=TrustStatusMessage Id=6267 Len=1
[Listener] Packet | Name=MapCoordinatesExtended Id=176 Len=0
[Listener] Packet | Name=BasicAckMessage Id=6362 Len=6
[Listener] Packet | Name=QueueStatusMessage Id=6100 Len=4
[Listener] Packet | Name=QueueStatusMessage Id=6100 Len=4
[Listener] Packet | Name=MapCoordinatesExtended Id=176 Len=0
[Listener] Packet | Name=QueueStatusMessage Id=6100 Len=4
[Listener] Packet | Name=CharactersListMessage Id=151 Len=61
[Writer] Packet | Name=CharacterSelectionMessage Id=152
[Listener] Packet | Name=BasicAckMessage Id=6362 Len=6
[Listener] Packet | Name=MapCoordinatesExtended Id=176 Len=0
[Listener] Packet | Name=QueueStatusMessage Id=6100 Len=4
[Listener] Packet | Name=NotificationListMessage Id=6087 Len=6
[Listener] Packet | Name=CharacterSelectedSuccessMessage Id=153 Len=56
[Listener] Packet | Name=InventoryContentMessage Id=3016 Len=166
[Listener] Packet | Name=ShortcutBarContentMessage Id=6231 Len=3
[Listener] Packet | Name=ShortcutBarContentMessage Id=6231 Len=43
[Listener] Packet | Name=EmoteListMessage Id=5689 Len=3
[Listener] Packet | Name=AlignmentRankUpdateMessage Id=6058 Len=2
[Listener] Packet | Name=AlignmentSubAreasListMessage Id=6059 Len=302
[Listener] Packet | Name=EnabledChannelsMessage Id=892 Len=14
[Listener] Packet | Name=SpellListMessage Id=1200 Len=33
[Listener] Packet | Name=ShortcutBarContentMessage Id=6231 Len=43
[Listener] Packet | Name=HouseInformationsForGuild Id=170 Len=3
[Listener] Packet | Name=InventoryWeightMessage Id=3009 Len=8
[Listener] Packet | Name=FriendWarnOnConnectionStateMessage Id=5630 Len=1
[Listener] Packet | Name=FriendWarnOnLevelGainStateMessage Id=6078 Len=1
[Listener] Packet | Name=FriendGuildWarnOnAchievementCompleteStateMessage Id=6383 Len=1
[Listener] Packet | Name=GuildMemberWarnOnConnectionStateMessage Id=6160 Len=1
[Listener] Packet | Name=SequenceNumberRequestMessage Id=6316 Len=0
[Listener] Packet | Name=TextInformationMessage Id=780 Len=5
[Listener] Packet | Name=TextInformationMessage Id=780 Len=27
[Writer] Packet | Name=FriendsGetListMessage Id=4001
[Writer] Packet | Name=IgnoredGetListMessage Id=5676
[Writer] Packet | Name=ClientKeyMessage Id=5607
[Writer] Packet | Name=GameContextCreateRequestMessage Id=250
[Writer] Packet | Name=ChannelEnablingMessage Id=890
[Listener] Packet | Name=SpouseStatusMessage Id=6265 Len=1
[Listener] Packet | Name=AchievementListMessage Id=6205 Len=6
[Listener] Packet | Name=GameRolePlayArenaUpdatePlayerInfosMessage Id=6301 Len=10
[Listener] Packet | Name=CharacterCapabilitiesMessage Id=6339 Len=4
[Listener] Packet | Name=AlmanachCalendarDateMessage Id=6341 Len=4
[Listener] Packet | Name=MailStatusMessage Id=6275 Len=4
[Listener] Packet | Name=BasicAckMessage Id=6362 Len=6
[Listener] Packet | Name=FriendsListMessage Id=4002 Len=54
[Listener] Packet | Name=MapCoordinatesExtended Id=176 Len=0
[Listener] Packet | Name=BasicAckMessage Id=6362 Len=6
[Listener] Packet | Name=IgnoredListMessage Id=5674 Len=2
[Listener] Packet | Name=MapCoordinatesExtended Id=176 Len=0
[Listener] Packet | Name=BasicAckMessage Id=6362 Len=6
[Listener] Packet | Name=MapCoordinatesExtended Id=176 Len=0
[Listener] Packet | Name=BasicAckMessage Id=6362 Len=6
[Listener] Packet | Name=TextInformationMessage Id=780 Len=8
[Listener] Packet | Name=ActorAlignmentInformations Id=201 Len=0
[Listener] Packet | Name=GameContextCreateMessage Id=200 Len=1
[Listener] Packet | Name=CharacterStatsListMessage Id=500 Len=528
[Listener] Packet | Name=LifePointsRegenBeginMessage Id=5684 Len=1
[Listener] Packet | Name=InteractiveElementNamedSkill Id=220 Len=38
[Listener] Packet | Name=BasicTimeMessage Id=175 Len=6
[Listener] Packet | Name=MapCoordinatesExtended Id=176 Len=0
[Listener] Packet | Name=BasicAckMessage Id=6362 Len=6
[Listener] Packet | Name=MapCoordinatesExtended Id=176 Len=0
[Writer] Packet | Name=ChatClientMultiMessage Id=861
[Listener] Packet | Name=BasicAckMessage Id=6362 Len=6
[Listener] Packet | Name=MapCoordinatesExtended Id=176 Len=0
[Listener] Packet | Name=ChatServerMessage Id=881 Len=42

Cordialement
 

FastFrench

Membre Actif
Inscrit
19 Octobre 2010
Messages
214
Reactions
0
#2
Si tu es déconnecté, c'est peut-être parce que tu ne réponds pas au message SequenceNumberRequestMessage.

Concernant BasicAckMessage, seq est incrémenté à chaque chaque fois que ce message (BasicAckMessage) est envoyé. Il permet au client d'avoir la confirmation du server que son message a bien été reçu.
 

BlueDream

Administrateur
Membre du personnel
Inscrit
8 Decembre 2012
Messages
2 010
Reactions
149
#3
Merci FastFrench je vais répondre à ce paquet voir ce que ca me donne.
 

BlueDream

Administrateur
Membre du personnel
Inscrit
8 Decembre 2012
Messages
2 010
Reactions
149
#4
Bonsoir,

je vien vous trouvé la solution a mon problème.

A la reception de SequenceNumberRequestMessage, je devais envoyer SequenceNumberMessage.
Répondre à BasicLatencyStatsRequestMessage via BasicLatencyStatsMessage.
Et finalement envoyer en même temps que tout les autre paquets SpouseGetInformationsMessage, à la reception de TextInformationsMessage.

C'est casi toute les nouveauté de la connexion, depuis dofus 2.1 sans compter le rsa.
 

FastFrench

Membre Actif
Inscrit
19 Octobre 2010
Messages
214
Reactions
0
#5
Et encore, tu n'as pas encore été confronté au message RawDataMessage. Quand tu en seras là, tu vas pleurer :twisted:
 

BlueDream

Administrateur
Membre du personnel
Inscrit
8 Decembre 2012
Messages
2 010
Reactions
149
#6
J'y etais confronté justement XD
 
Haut Bas