how to identify which cameras are in offline in milestone xprotect smart client

One option is to subscribe to events on cameras being “responding” or not. See the StatusViewer sample application. The sample is standalone but the code will work in a Smart Client plug-in also.

https://doc.developer.milestonesys.com/html/index.html?base=samples/statusviewer_sample.html&tree=tree_2.html