$+(n1,...,nN)
Combines all of the specified parameters, the same as using $+ in between each item.
If you try to set a variable like this: set % $+ test $+ $nick it wont be set right. To set a dynamic variable right you use $+( . Which is the same as $+ but with a little difference. you seperate and "connect" an identifier from plain text with the use of a comma.
In this case you wanted to reply to private messages only once.
ill try to break down the code and explain.. im not the best tutor
Code:
on *:text:*:?: {
;;Here I need to check if the variable %private$nick exists. To get the value of a dynamic variable you use $+( and $( . So... you take $+(%,private,$nick) and use $( like this: $($+(%,private,$nick),2)
if ($($+(%,private,$nick),2)) {
;; ,2 belongs to $( and not to $+( . let's suppose OrFeAsGr is messsaging you for the 1st time. This: $($+(%,private,$nick),2) would return $null so the script would do the following
set $+(%,private,$nick) 1
;; to set a dynamic variable you dont need to use $($+(%,...,...),2) <- this is used only to get the value if there is one. To set/inc/dec you use only $+(
msg $nick Im busy now...
;;msges $nick
}
}

Now If OrFeAsGr would message you again there would be %privateOrFeAsGr 1 in the vars.ini
which would return 1 in the if statement so the msg wouldn't be sent.
I hope i helped you understand this. Good Luck! laugh Let me know if you need more help..!