OK, I got confused with the vb4 stuff and forgot that you can't do math like that in a template. So you'd have to use a plugin and create a new variable. I think you can use hook location global_setup_complete and code like:
Code:
$notifications_not_pm = $notifications_total - $vbulletin->userinfo['pmunread'];
then use $notifications_not_pm (or whatever you want to call it) in the navbar template in place of $notifications_total (the first time it appears, not the one in the 'if' condition).
But that's for if you want the notifications to show up normally but the count to not include pms. If you want the notifications to disappear if there are only pm notifications (so that the count is 0), you should just change $notifications_total and reset $show['notifications'] if necessary, like:
Code:
$notifications_total -= $vbulletin->userinfo['pmunread'];
if ($notifications_total == 0)
$show['notifications'] = false;
and of course then you don't need to change the navbar template.