1) Function.Param(0) applies to "dialogue" function. If you call this function with the parameter "John", then the "name" key in the dictionary will be set to "John".
2) This variable is used to store XML XPath. "&ProjectVariables.Get("name")&"']/@ means add a value from the dictionary to the string. So the result will look like this:
/Dialogues/Dialogue[@id='John']/@
3) It uses Regex to search for something and extract some sub-strings. You can use any of the online regex parsers to try to decipher what's going on there.
I must say, this tutorial seems unnecessary complicated to me. You can study it, but maybe it would be better to build your own dialogue system.