Advertisement
Guest User

Untitled

a guest
Oct 21st, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.50 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3. using System.Text;
  4. using System.Collections.Generic;
  5.  
  6. using Quasar.Utilities;
  7. using Quasar.HabboHotel.Rooms;
  8. using Quasar.HabboHotel.Items;
  9. using Quasar.HabboHotel.Groups;
  10. using Quasar.HabboHotel.Users;
  11.  
  12. namespace Quasar.Communication.Packets.Outgoing.Rooms.Engine
  13. {
  14.     class ObjectsComposer : ServerPacket
  15.     {
  16.         public ObjectsComposer(Item[] Objects, Room Room)
  17.             : base(ServerPacketHeader.ObjectsMessageComposer)
  18.         {
  19.             base.WriteInteger(1);
  20.  
  21.             base.WriteInteger(Room.OwnerId);
  22.             base.WriteString(Room.OwnerName);
  23.  
  24.             base.WriteInteger(Objects.Length);
  25.             foreach (Item Item in Objects)
  26.             {
  27.                 WriteFloorItem(Item, Convert.ToInt32(Item.UserID));
  28.             }
  29.  
  30.             // ----------------------------------------------------------------------------
  31.             if (Room.HideWired) {
  32.                 for (int i = 0; i < Objects.Count(); i++) {
  33.                     Item it = Objects;
  34.                     if (it == null) continue;
  35.                     if (it.IsWired) continue;
  36.                     l.Add(it);
  37.                 }
  38.                 Objects = l.ToArray();
  39.                 base.WriteInteger(Objects.Length);
  40.                 for (int i = 0; i < Objects.Count(); i++) {
  41.                 Item Item = Objects;
  42.                 WriteFloorItem(Item, Convert.ToInt32(Item.UserID));
  43.                 }
  44.             }
  45.             // ----------------------------------------------------------------------------
  46.         }
  47.  
  48.         private void WriteFloorItem(Item Item, int UserID)
  49.         {
  50.  
  51.             base.WriteInteger(Item.Id);
  52.             base.WriteInteger(Item.GetBaseItem().SpriteId);
  53.             base.WriteInteger(Item.GetX);
  54.             base.WriteInteger(Item.GetY);
  55.             base.WriteInteger(Item.Rotation);
  56.            base.WriteString(String.Format("{0:0.00}", TextHandling.GetString(Item.GetZ)));
  57.            base.WriteString(String.Empty);
  58.  
  59.             if (Item.LimitedNo > 0)
  60.             {
  61.                 base.WriteInteger(1);
  62.                 base.WriteInteger(256);
  63.                 base.WriteString(Item.ExtraData);
  64.                 base.WriteInteger(Item.LimitedNo);
  65.                 base.WriteInteger(Item.LimitedTot);
  66.             }
  67.             else if (Item.Data.InteractionType == InteractionType.INFO_TERMINAL)
  68.             {
  69.                 base.WriteInteger(0);
  70.                 base.WriteInteger(1);
  71.                 base.WriteInteger(1);
  72.                 base.WriteString("internalLink");
  73.                 base.WriteString(Item.ExtraData);
  74.             }
  75.             else if (Item.Data.InteractionType == InteractionType.FX_PROVIDER)
  76.             {
  77.                 base.WriteInteger(0);
  78.                 base.WriteInteger(1);
  79.                 base.WriteInteger(1);
  80.                 base.WriteString("effectId");
  81.                 base.WriteString(Item.ExtraData);
  82.             }
  83.  
  84.             else if (Item.Data.InteractionType == InteractionType.PINATA)
  85.             {
  86.                 base.WriteInteger(0);
  87.                 base.WriteInteger(7);
  88.                 base.WriteString("6");
  89.                 if (Item.ExtraData.Length <= 0) base.WriteInteger(0);
  90.                 else base.WriteInteger(int.Parse(Item.ExtraData));
  91.                 base.WriteInteger(100);
  92.             }
  93.             else if (Item.Data.InteractionType == InteractionType.PINATATRIGGERED)
  94.             {
  95.                 base.WriteInteger(0);
  96.                 base.WriteInteger(7);  // miran2 grafic xq no c acuerda xdddddd kva men xDDDDDDDD esk me mandaron un guasap menju eeeer xqude popddddduddddddddddddddddxdd
  97.                 base.WriteString("0");
  98.                 if (Item.ExtraData.Length <= 0) base.WriteInteger(0);
  99.                 else base.WriteInteger(int.Parse(Item.ExtraData));
  100.                 base.WriteInteger(1);
  101.             }
  102.               else if (Item.Data.InteractionType == InteractionType.MAGICEGG)
  103.             {
  104.                 base.WriteInteger(0);
  105.                 base.WriteInteger(7);
  106.                 base.WriteString(Item.ExtraData);
  107.                 if (Item.ExtraData.Length <= 0)
  108.                 {
  109.                     base.WriteInteger(0);
  110.                 }
  111.                 else
  112.                 {
  113.                     base.WriteInteger(int.Parse(Item.ExtraData));
  114.                 }
  115.                 base.WriteInteger(50);
  116.             }
  117.             else
  118.             {
  119.                 ItemBehaviourUtility.GenerateExtradata(Item, this);
  120.             }
  121.  
  122.             base.WriteInteger(-1); // to-do: check
  123.             base.WriteInteger((Item.GetBaseItem().Modes > 1) ? 1 : 0);
  124.             base.WriteInteger(UserID);
  125.         }
  126.     }
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement