Oui, il envoie une clef mauvais du au faite que tu traduis mal ton packet. Si je me souviens bien Rebirth à une certaine manière de les traduire par rapport à l'AS3 ex :
public function deserializeAs_MapComplementaryInformationsDataMessage(param1:ICustomDataInput) : void
{
var _loc14_:uint = 0;
var _loc15_:HouseInformations = null;
var _loc16_:uint = 0;
var _loc17_:GameRolePlayActorInformations = null;
var _loc18_:uint = 0;
var _loc19_:InteractiveElement = null;
var _loc20_:StatedElement = null;
var _loc21_:MapObstacle = null;
var _loc22_:FightCommonInformations = null;
this.subAreaId = param1.readVarUhShort();
if(this.subAreaId < 0)
{
throw new Error("Forbidden value (" + this.subAreaId + ") on element of MapComplementaryInformationsDataMessage.subAreaId.");
}
this.mapId = param1.readInt();
if(this.mapId < 0)
{
throw new Error("Forbidden value (" + this.mapId + ") on element of MapComplementaryInformationsDataMessage.mapId.");
}
var _loc2_:uint = param1.readUnsignedShort();
var _loc3_:uint = 0;
while(_loc3_ < _loc2_)
{
_loc14_ = param1.readUnsignedShort();
_loc15_ = ProtocolTypeManager.getInstance(HouseInformations,_loc14_);
_loc15_.deserialize(param1);
this.houses.push(_loc15_);
_loc3_++;
}
var _loc4_:uint = param1.readUnsignedShort();
var _loc5_:uint = 0;
while(_loc5_ < _loc4_)
{
_loc16_ = param1.readUnsignedShort();
_loc17_ = ProtocolTypeManager.getInstance(GameRolePlayActorInformations,_loc16_);
_loc17_.deserialize(param1);
this.actors.push(_loc17_);
_loc5_++;
}
var _loc6_:uint = param1.readUnsignedShort();
var _loc7_:uint = 0;
while(_loc7_ < _loc6_)
{
_loc18_ = param1.readUnsignedShort();
_loc19_ = ProtocolTypeManager.getInstance(InteractiveElement,_loc18_);
_loc19_.deserialize(param1);
this.interactiveElements.push(_loc19_);
_loc7_++;
}
var _loc8_:uint = param1.readUnsignedShort();
var _loc9_:uint = 0;
while(_loc9_ < _loc8_)
{
_loc20_ = new StatedElement();
_loc20_.deserialize(param1);
this.statedElements.push(_loc20_);
_loc9_++;
}
var _loc10_:uint = param1.readUnsignedShort();
var _loc11_:uint = 0;
while(_loc11_ < _loc10_)
{
_loc21_ = new MapObstacle();
_loc21_.deserialize(param1);
this.obstacles.push(_loc21_);
_loc11_++;
}
var _loc12_:uint = param1.readUnsignedShort();
var _loc13_:uint = 0;
while(_loc13_ < _loc12_)
{
_loc22_ = new FightCommonInformations();
_loc22_.deserialize(param1);
this.fights.push(_loc22_);
_loc13_++;
}
}
}
Observe bien le loc 15 même si la classe de Rebirth n'est pas à jour, le principe est le même
Code vb.net Source rebirth :
Public Overrides Sub Deserialize(ByVal Reader As DofusReader)
Dim _loc_14 = Nothing
Dim _loc_15 = Nothing
Dim _loc_16 = Nothing
Dim _loc_17 = Nothing
Dim _loc_18 = Nothing
Dim _loc_19 = Nothing
Dim _loc_20 = Nothing
Dim _loc_21 = Nothing
Dim _loc_22 = Nothing
Me._SubAreaId = Reader.ReadInt16
Me._MapId = Reader.ReadInt32
Dim _loc_2 = Reader.ReadUInt16
Dim _loc_3 = Nothing
For _loc_3 = 0 To _loc_2 - 1
_loc_14 = Reader.ReadUInt16
_loc_15 = ProtocolTypeManager.GetInstance(_loc_14)
_loc_15.Deserialize(Reader)
Me._Houses.Add(_loc_15)
Next
Dim _loc_4 = Reader.ReadUInt16
Dim _loc_5 = Nothing
For _loc_5 = 0 To _loc_4 - 1
_loc_16 = Reader.ReadUInt16
_loc_17 = ProtocolTypeManager.GetInstance(_loc_16)
_loc_17.Deserialize(Reader)
Me._Actors.Add(_loc_17)
Next
Dim _loc_6 = Reader.ReadUInt16
Dim _loc_7 = Nothing
For _loc_7 = 0 To _loc_6 - 1
_loc_18 = Reader.ReadUInt16
_loc_19 = ProtocolTypeManager.GetInstance(_loc_18)
_loc_19.Deserialize(Reader)
Me._InteractiveElements.Add(_loc_19)
Next
Dim _loc_8 = Reader.ReadUInt16
Dim _loc_9 = Nothing
For _loc_9 = 0 To _loc_8 - 1
_loc_20 = New StatedElement()
_loc_20.Deserialize(Reader)
Me._StatedElements.Add(_loc_20)
Next
Dim _loc_10 = Reader.ReadUInt16
Dim _loc_11 = Nothing
For _loc_11 = 0 To _loc_10 - 1
_loc_21 = New MapObstacle()
_loc_21.Deserialize(Reader)
Me._Obstacles.Add(_loc_21)
Next
Dim _loc_12 = Reader.ReadUInt16
Dim _loc_13 = Nothing
For _loc_13 = 0 To _loc_12 - 1
_loc_22 = New FightCommonInformations()
_loc_22.Deserialize(Reader)
Me._Fights.Add(_loc_22)
Next
End Sub
Je te conseil de regarder de ce coté. Si tu as tout traduis comme il faut.
Dim _loc_15 = Nothing
var _loc15_:HouseInformations = null;
J'espere avoir pu t'aider ;)