Advertisement
Guest User

Untitled

a guest
Aug 29th, 2016
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.31 KB | None | 0 0
  1. class EntityLook
  2. {
  3. public const uint Id = 55;
  4.  
  5. public uint bonesId;
  6.  
  7. public uint[] skins;
  8.  
  9. public int[] indexedColors;
  10.  
  11. public int[] scales;
  12.  
  13. public SubEntity[] subentities;
  14.  
  15. public virtual uint TypeId
  16. {
  17. get
  18. {
  19. return 55;
  20. }
  21. }
  22.  
  23. public EntityLook()
  24. {
  25. }
  26.  
  27. public EntityLook(uint bonesId, uint[] skins, int[] indexedColors, int[] scales, SubEntity[] subentities)
  28. {
  29. this.bonesId = bonesId;
  30. this.skins = skins;
  31. this.indexedColors = indexedColors;
  32. this.scales = scales;
  33. this.subentities = subentities;
  34. }
  35.  
  36. public virtual void Serialize(IDataWriter writer)
  37. {
  38. writer.WriteVarShort((short)this.bonesId);
  39. writer.WriteShort((short)this.skins.Length);
  40. for (uint i = 0; i < this.skins.Length; i++)
  41. {
  42. writer.WriteVarShort((short)this.skins[i]);
  43. }
  44. writer.WriteShort((short)this.indexedColors.Length);
  45. for (uint j = 0; j < this.indexedColors.Length; j++)
  46. {
  47. writer.WriteInt(this.indexedColors[j]);
  48. }
  49. writer.WriteShort((short)this.scales.Length);
  50. for (uint k = 0; k < this.scales.Length; k++)
  51. {
  52. writer.WriteVarShort((short)this.scales[k]);
  53. }
  54. writer.WriteShort((short)this.subentities.Length);
  55. for (uint l = 0; l < this.subentities.Length; l++)
  56. {
  57. SubEntity subEntity = this.subentities[l];
  58. subEntity.Serialize(writer);
  59. }
  60. }
  61.  
  62. public virtual void Deserialize(IDataReader reader)
  63. {
  64. this.bonesId = reader.ReadVarUhShort();
  65. uint num = reader.ReadUShort();
  66. this.skins = new uint[num];
  67. for (uint i = 0; i < num; i++)
  68. {
  69. //C'est ici que je reçois l'erreur, sa lit plusieurs fois mais apres sa cause l'erreur et sa me sort soit Too much Data (dans ReadVarShort) ou Impossible de lire au-delà de la fin du flux (dans ReadByte) Regarde en bas j'ai les méthodes concerné
  70. this.skins[i] = reader.ReadVarUhShort();
  71. }
  72. num = reader.ReadUShort();
  73. this.indexedColors = new int[num];
  74. for (uint j = 0; j < num; j++)
  75. {
  76. this.indexedColors[j] = reader.ReadInt();
  77. }
  78. num = reader.ReadUShort();
  79. this.scales = new int[num];
  80. for (uint k = 0; k < num; k++)
  81. {
  82. this.scales[k] = reader.ReadVarShort();
  83. }
  84. num = reader.ReadUShort();
  85. this.subentities = new SubEntity[num];
  86. for (uint l = 0; l < num; l++)
  87. {
  88. this.subentities[l] = new SubEntity();
  89. this.subentities[l].Deserialize(reader);
  90. }
  91. }
  92. }
  93.  
  94.  
  95.  
  96.  
  97. LES METHODES AUQUEL JE RECOIT ERREUR ILS SONT DANS MON BIGENDIANREADER :
  98. public byte ReadByte()
  99. {//ERREUR: Impossible de lire au-delà de la fin du flux
  100. return this.m_reader.ReadByte();
  101. }
  102.  
  103. public short ReadVarShort()
  104. {//ERREUR: Too much Data
  105. int num = 0;
  106. int i = 0;
  107. while (i < 16)
  108. {
  109. int num2 = (int)this.ReadByte();
  110. bool flag = (num2 & 128) == 128;
  111. bool flag2 = i > 0;
  112. if (flag2)
  113. {
  114. num += (num2 & 127) << i;
  115. }
  116. else
  117. {
  118. num += (num2 & 127);
  119. }
  120. i += 7;
  121. bool flag3 = !flag;
  122. if (flag3)
  123. {
  124. bool flag4 = num > 32767;
  125. if (flag4)
  126. {
  127. num -= 65536;
  128. }
  129. return (short)num;
  130. }
  131. }
  132. throw new Exception("Too much data");
  133. }
  134.  
  135. //Laquelle j'appelle dans EntityLook
  136. public uint ReadVarUhShort()
  137. {
  138. return (uint)this.ReadVarShort();
  139. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement