Guest User

useritem.cs

a guest
Aug 24th, 2012
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.67 KB | None | 0 0
  1. using System;
  2. using Butterfly.Core;
  3. using Butterfly.HabboHotel.Catalogs;
  4. using Butterfly.Messages;
  5.  
  6. namespace Butterfly.HabboHotel.Items
  7. {
  8. class UserItem
  9. {
  10. internal UInt32 Id;
  11. internal UInt32 BaseItem;
  12. internal string ExtraData;
  13. private Item mBaseItem;
  14. internal bool isWallItem;
  15.  
  16. internal UserItem(UInt32 Id, UInt32 BaseItem, string ExtraData)
  17. {
  18. this.Id = Id;
  19. this.BaseItem = BaseItem;
  20. this.ExtraData = ExtraData;
  21. this.mBaseItem = GetBaseItem();
  22. if (mBaseItem == null)
  23. {
  24. Console.WriteLine("Unknown baseItem ID: " + BaseItem);
  25. Logging.LogException("Unknown baseItem ID: " + BaseItem);
  26. }
  27. this.isWallItem = (mBaseItem.Type == 'i');
  28. }
  29.  
  30. //internal void Serialize(ServerMessage Message)
  31. //{
  32.  
  33. // Message.AppendUInt(Id);
  34. // Message.AppendInt32(0);
  35. // if (mBaseItem == null)
  36. // Logging.LogException("Unknown base: " + BaseItem);
  37. // Message.AppendStringWithBreak(mBaseItem.Type.ToString().ToUpper());
  38. // Message.AppendUInt(Id);
  39. // Message.AppendInt32(mBaseItem.SpriteId);
  40.  
  41. // if (mBaseItem.Name.Contains("a2"))
  42. // Message.AppendInt32(3);
  43. // else if (mBaseItem.Name.Contains("wallpaper"))
  44. // Message.AppendInt32(2);
  45. // else if (mBaseItem.Name.Contains("landscape"))
  46. // Message.AppendInt32(4);
  47. // else
  48. // Message.AppendInt32(0);
  49.  
  50. // Message.AppendStringWithBreak(ExtraData);
  51. // Message.AppendBoolean(mBaseItem.AllowRecycle);
  52. // Message.AppendBoolean(mBaseItem.AllowTrade);
  53. // Message.AppendBoolean(mBaseItem.AllowInventoryStack);
  54. // Message.AppendBoolean(Marketplace.CanSellItem(this));
  55. // Message.AppendInt32(-1);
  56.  
  57. // if (mBaseItem.Type == 's')
  58. // {
  59. // Message.AppendStringWithBreak("");
  60. // Message.AppendInt32(-1);
  61. // }
  62. //}
  63.  
  64. internal void SerializeWall(ServerMessage Message, Boolean Inventory)
  65. {
  66. Message.AppendUInt(Id);
  67. Message.AppendStringWithBreak(mBaseItem.Type.ToString().ToUpper());
  68. Message.AppendUInt(Id);
  69. Message.AppendInt32(GetBaseItem().SpriteId);
  70.  
  71. if (GetBaseItem().Name.Contains("a2"))
  72. {
  73. Message.AppendInt32(3);
  74. }
  75. else if (GetBaseItem().Name.Contains("wallpaper"))
  76. {
  77. Message.AppendInt32(2);
  78. }
  79. else if (GetBaseItem().Name.Contains("landscape"))
  80. {
  81. Message.AppendInt32(4);
  82. }
  83. else
  84. {
  85. Message.AppendInt32(1);
  86. }
  87. int result = 0;
  88. if (this.GetBaseItem().InteractionType == InteractionType.gift && ExtraData.Contains(Convert.ToChar(5).ToString()))
  89. {
  90. int color = int.Parse(ExtraData.Split((char)5)[1]);
  91. int lazo = int.Parse(ExtraData.Split((char)5)[2]);
  92. result = color * 1000 + lazo;
  93. }
  94. Message.AppendInt32(result);
  95. Message.AppendStringWithBreak(ExtraData);
  96. Message.AppendBoolean(GetBaseItem().AllowRecycle);
  97. Message.AppendBoolean(GetBaseItem().AllowTrade);
  98. Message.AppendBoolean(GetBaseItem().AllowInventoryStack);
  99. Message.AppendBoolean(Marketplace.CanSellItem(this));
  100. Message.AppendInt32(-1);
  101. }
  102.  
  103. internal void SerializeFloor(ServerMessage Message, Boolean Inventory)
  104. {
  105. Message.AppendUInt(Id);
  106. Message.AppendStringWithBreak(mBaseItem.Type.ToString().ToUpper());
  107. Message.AppendUInt(Id);
  108. Message.AppendInt32(GetBaseItem().SpriteId);
  109. Message.AppendInt32(1);
  110. Message.AppendInt32(0); // ?
  111. Message.AppendStringWithBreak(ExtraData);
  112. Message.AppendBoolean(GetBaseItem().AllowRecycle);
  113. Message.AppendBoolean(GetBaseItem().AllowTrade);
  114. Message.AppendBoolean(GetBaseItem().AllowInventoryStack);
  115. Message.AppendBoolean(Marketplace.CanSellItem(this));
  116. Message.AppendInt32(-1);
  117. Message.AppendStringWithBreak("");
  118. Message.AppendInt32(0);
  119. }
  120.  
  121. internal Item GetBaseItem()
  122. {
  123. return ButterflyEnvironment.GetGame().GetItemManager().GetItem(BaseItem);
  124. }
  125. }
  126. }
Advertisement
Add Comment
Please, Sign In to add comment