Hmmmmm!
Okay, for those having trouble with dialog, try using
IF
DialogStartRequested(_Player, _Char)
THEN
StartDefaultDialog(_Char, _Player);rather than
IF
DialogStartRequested(_Char, _Player)
THEN
StartDefaultDialog(_Char, _Player);
This fixed one of my NPC's dialogs, but the other NPC is still acting funny (just funny in a different way). So I can't claim this will fix all yet!
EDIT:
Okay, I figured out why one NPC worked and the other NPC was being ignored (like the earlier problem of trying to talk to Global characters).
The NPC which works as a Global has a direct call to a dialog rather than relying on the DefaultDialog.
The code which, for me, gives a successful dialog with a global NPC is
IF
DialogStartRequested(CHARACTER_specific_npc, _Player)
THEN
DialogStartTwoSpeakerDialog("name_of_dialog",_Player,CHARACTER_specific_npc);