public void GiveExperience(int ammount, Room Room, RoomUser PetUser)
    {
        Experience += ammount;

        ServerMessage Message = new ServerMessage();
        Room.Environment.InitPacket(609, Message);
        Room.Environment.Append(Id, Message);
        Room.Environment.Append(PetUser.VirtualId, Message);
        Room.Environment.Append(ammount, Message);
        Room.SendMessage(Message);

        int c_lev = Level;
        while (true)
        {
            if (Level >= MaxLevel)
            {
                break;
            }

            if (Experience > ExperienceLevels[Level])
            {
                Level++;
            }
            else
            {
                if (c_lev < Level)
                {
                    Player Client = Room.Environment.ClientManager.GetClient(OwnerId);

                    if(Client!=null && (Client.Flags & Server.plrOnline) != Server.plrOnline)
                    {
                        // up level
                        Room.Environment.InitPacket(602, Message);
                        Room.Environment.Append(PetUser.VirtualId, Message);
                        Room.Environment.Append(Name, Message);
                        Room.Environment.Append(Level, Message);
                        Room.Environment.Append(Type, Message);
                        Room.Environment.Append(Race, Message);
                        Room.Environment.Append(Color, Message);
                        Room.Environment.EndPacket(Client.Connection.Socket, Message);
                    }
                }
                break;
            }
        }
    }