I used to smoke 30 or 40 cigarettes a day until 3 months ago.
今はもうしていない過去の習慣を表すには、used to Vの形を使います。
また、過去の習慣を表す表現には、would oftenがあります。used toとの違いですが、would oftenには、「今はもうしていない」というニュアンスが含まれないと言われています。質問者様の例だと、would oftenを使えば、「頻度は下がったけれども、今もたまには吸う」というニュアンスが残るというわけです。
I was smoking...の場合は、「~してばかりいた」という意味合いがあり、習慣とはニュアンスが違います。
過去完了は、以前の習慣や昔話には使わないと考えて差し支えありません。過去完了は、昔の話をしている時に、さらにそれ以前のできごとを表す時に使います。
I had been waiting for 3 hours when he showed up.
(彼が姿を見せた時点で、私は3時間待っていた)
のように使います。喫煙の話であれば、
I had smoked 30 cigarettes a day before I finally quit smoking.
((過去に)タバコをやめた以前には、30本吸っていた)
のように表します。しかしながら、特に過去にタバコをやめた時期の話をするのでなく、吸っていた時期があるという話をするのであれば、過去完了を使う必要はなく、used toで表せば十分ということになります。
参考になれば幸いです。
I used to smoke 30 to 40 cigarettes a day until three months ago.
I used to smoke 30 to 40 cigarettes a day until three months ago.
→三カ月前までタバコを30、40本吸っていました。
たぶん「smoked」でもオッケーです。
ただ、「used to」の方が会話的な気がします。
回答は一例ですので、参考程度でお願いします。
ありがとうございました