public void ProcessTask(Room Room)
    {
        if(ActiveTask == 1)
        {
            ActiveTask = 0;
            
            AllowOverride = false;

            int TeleRoomId = Room.Environment.Teleports.GetRoom(Client.Data.TeleporterId);
            if (TeleRoomId != -1)
            {
                if(RoomId == TeleRoomId)
                {
                    RoomItem Item = Room.GetFloorItem(Client.Data.TeleporterId);

                    if (Item != null)
                    {
                        SetPos(Item.X, Item.Y, Item.Z);
                        SetRot(Item.Rot);

                        Item.ExtraData = "2";
                        Item.UpdateNeeded = true;
                        
                        Item.TaskSteps = 2;
                        Item.ActiveTask = 1;

                        TaskSteps = 3;
                        ActiveTask = 2;
                    }
                }
                else
                {
                    Client.Data.SetFlag(Server.plrTeleporting,true);
                    Client.LoadRoom(TeleRoomId, "");
                }
            }
        }
        else if(ActiveTask == 2)
        {
            ActiveTask = 0;

            RoomItem Item = Room.GetFloorItem(Client.Data.TeleporterId);
            Client.Data.TeleporterId = 0;
            if (Item != null)
            {
                int[] xy = Item.SquareInFront();
                MoveTo(xy[0], xy[1], true);
            }
        }
    }