Travis ... you know im open to offers .. do it and i will compare it to mine
On*:Join:*:{
if ($nick == $me)
msg # S eTahoma;0 blah blah blah
You've already been told about the space after the word "on".
In any event it states the location. on *:join:LOCATION:{
ex: on *:join:#:{ <<< # == $chan or channel name.
You chose a wildcard *, but in a join event why? What else are they going to join besides a channel (#) ?
As for what I had said earlier there are a few points I'd like to make. It is my understanding that mIRC evaluates code line by line one at a time. So looking at this code you have presented I would say mIRC evaluates "if ($nick == $me)" and lets say it is $true so it looks for the command but doesn't see anything so it goes on to the next line which is a command to msg the channel.
So looking at your code Im not sure if you left out the /halt or /return command, or if you wanted mIRC to msg the channel if YOU join the room. mIRC will evaluate the comparison and if it is true it will not see a command for it. Then it will move to the next line and since there is no comparison it will just perform the command. So this code you presented will msg the room whenever anyone joins.
mIRC likes brackets. People get lazy and say "oh but I don't need them, see? It still works!" While this may be true, mIRC performs more efficiently and actually faster if you use brackets. I've tested this. This is why if you look through my scripting you will see I always use brackets. Later it was explained to me on the mIRC.com forum that if there is no bracket mIRC looks ahead and attempts to figure out where your line ends. If you use brackets it doesn't need to spend the time and resources figuring this out. This is why I always suggest using brackets. Get in the habit of it, even if it is one small command or simply { return }. Not only will it make you more used to writing in brackets but every little bit helps. So yeah, one line of not using a bracket is no big deal, but 3000 lines of no brackets add up.
So lets assume you wanted to only message the room when YOU joined.
on *:join:#:{
if ($nick == $me) { msg $chan blah blah blah }
}
Since you use brackets you could put the command on the next line if you wanted, though it is fastest to have everything on one line. AS LONG AS YOU AREN'T OVERDOING IT!
If you used brackets your code would still work.
on *:join:#:{
if ($nick == $me) {
msg $chan blah blah blah
}
}
Since you didnt use brackets and put the command on the second line mIRC figured your comaprison was missing its command, called it an error on your part and moved on to evaluate the next line.
As an added note:
Not wanting to fry your brain or anything, but I personally would use a prefix for this. Prefixes are great as they can halt an event before mIRC runs through the first comparison.
on me:*:join:#:msg $chaN BLAH BLAH BLAH
Check out "prefixes" in the mirc help file.