22.07.2016, 09:03
Just block commands while a dialog is shown. It's not that hard. Use a global variable to store the currently shown dialogid for each player (i.e. whenever you use ShowPlayerDialog you store the same dialogid in the variable). In OnPlayerCommandText/OnPlayerCommandReceived block the command if that value is > 0. In OnDialogResponse check if dialogid == the stored value before proceeding to process it. If the value doesn't match the player is likely spoofing or cheating in some other way.