on *:TEXT:!P &:#: /msg $chan $read(hello.txt, w, $+(*,$2,*))
Just for the break down:
--
The * in the "!P *" means it is looking for a parameter. Each word in mirc events are sybolized with the identifiers $1, $2, $3, ... etc. For example, if you used:
on *:TEXT:!P*:#:
It could catch !Play, !poke, !and even just !P. The * means any character, including nothing. You may also use a & to mean a whole word. ex:
on *:TEXT:!P &:#:
That means its looking for just one value after the !p. So in this case, your first "Word" if you will (or value) is $1. Your secon is $2, which is the value you are looking for.
After that we use $+(*,$2,*) to surround the value of $2 with a set of asterisks. mIRC understands identifiers as indiviual values, and cannot be "mixed". I.e. $nick. would need to be either $nick $+ . or $+($nick,.)
Hopefully that gives you a better understanding of how it works, rather than just feeding you the information and you use it and learn nothing from it. On a final note, if you want that command to only work with one channel, change the # in the on *:TEXT:!P &:#: part to the name of your channel.