Use the command PLRFREEZE. I'm assuming you want them to be frozen for a specified period of time, so do something like this:
:state=10:timerstart,plrfreeze=1
:state=10,timergreater=[insert value in milliseconds that the talking takes place]:plrfreeze=0,state=[whatever state you need to go to]
It should be noted that it is assumed that when the character starts talking you move to state 10 (or whatever state you need to be in). In this example, once the talking starts a timer is started and the player is frozen (cannot move). After a specified number of milliseconds, the player is unfrozen and can move about. I don't know your level of scripting knowledge, so I'll tell you this one minor tip: 1000 milliseconds = 1 second. You have to use milliseconds for the timer command. So if you wanted to freeze the player for 1 minute, or 60 seconds, the number of milliseconds would be 60000.
Hope this helps!
Priest of the Church of Joe Wood
In memory of Nanee. 9/1/1993 - 5/16/2009. Rest in Peace, little girl.