سلام
به این دلیل خطا میگیرید که دستورهای مربوط به قلم رو قبل از بستهی زیپرشین قرار دادید. باید به صورت زیر بنویسید:
\documentclass[12pt,a4paper]{book}
%\usepackage{hyperref}
\usepackage{float}
%\settextfont{HM XYas}
\usepackage{amsmath}
\setcounter{secnumdepth}{4}
\usepackage{lscape}
\usepackage{ulem}
\usepackage{bidiftnxtra}
\usepackage{xepersian}
\settextfont[Script=arab,Language=FAR,Scale=0.98,ExternalLocation,%
BoldFont={HM_XNiloofarBd},%
ItalicFont={HM_XNiloofarIt},%
BoldItalicFont={HM_XNiloofarBdIt},%
SlantedFont={HM_XNiloofarOb},%
BoldSlantedFont={HM_XNiloofarObBd}%
]{HM_XNiloofar}
\setdigitfont[Script=arab,Language=FAR,Scale=0.98,ExternalLocation,%
BoldFont={HM_XNiloofarBd},%
ItalicFont={HM_XNiloofarIt},%
BoldItalicFont={HM_XNiloofarBdIt},%
SlantedFont={HM_XNiloofarOb},%
BoldSlantedFont={HM_XNiloofarObBd}%
]{HM_XNiloofar}
\begin{document}
\section{تیتر تیتر}
متن متن متن
\end{document}
یادآوری: در فراخوانی بستهها، بستهی زیپرشین باید آخرین بستهای باشد که فراخوانی میشود (البته بهاستثنای یکی دو بسته)
پیروز باشید.