I am not sure what's happening here. This is the if conditional that checks if a PM has to be send:
Code:
if (($vboptions['warn_send_pm_warning']==1 AND $vboptions['warn_pmcutoff']==0) OR ($vboptions['warn_send_pm_warning']==1 AND $vboptions['warn_pmcutoff']!=0 AND $level<$vboptions['warn_pmcutoff']))
According to this, a PM is send:
1) If the option to send PMs is set to Yes and the PM Cut-off limit is 0
2) If the option to send PMs is set to Yes and the PM Cut-off limit is not 0 and the member has less warning points than the PM Cut-off limit.
In your case, it is the second alternative, in which case it should send the Warning PM.
I would suggest that you start from scratch. Create a new test user, with no warning points. Issue a warning to him. Make sure the user is a plain user and the one who warns him is an administrator or smod or moderator. Check if the user received the warning PM.
Sorry, but I do not know what else to suggest, this is the first time that this problem is reported.