Beispiel #1
0
        public double CalculateHeight(int X, int Y)
        {
            try
            {
                List <RoomItem> items = RoomItems.Values.Where(x => x.X == X && x.Y == Y).OrderByDescending(x => x.Z).ToList();
                if (items != null && items.Count > 0)
                {
                    RoomItem item   = items[0];
                    double   height = item.Z;

                    if (item.BaseItem.InteractionCount > 0)
                    {
                        height += item.BaseItem.MultiHeight[item.GetState()];
                    }
                    else
                    {
                        height += item.BaseItem.Height;
                    }

                    return(height);
                }
            }
            catch
            {
            }

            return(0);
        }
Beispiel #2
0
 public override void Write()
 {
     WriteInt(8);
     WriteInt(Item.Id);
     WriteInt(Item.Rot);
     WriteInt(Item.GetState());
     WriteInt(Item.X);
     WriteInt(Item.Y);
     WriteDouble(Item.Z);
 }
Beispiel #3
0
 public override void Write()
 {
     WriteInt(12);
     WriteInt(Item.Id);
     WriteString(Item.BaseItem.FurnidataName);
     WriteInt(Item.X);
     WriteInt(Item.Y);
     WriteDouble(Item.Z);
     WriteInt(Item.Rot);
     WriteInt(Item.GetState());
 }
Beispiel #4
0
        public void Trigger(GameClient Client, RoomItem Item)
        {
            int State    = Item.GetState();
            int NewState = State + 1;

            if (NewState > Item.BaseItem.InteractionCount)
            {
                NewState = 0;
            }

            Item.ExtraData = NewState.ToString();

            if (Client.Room != null)
            {
                Client.Room.RoomMapManager.UpdateItemInfo(Item);
            }
        }