I did some testing today, and came to this conclussion:

Code:
on *:text:!loc:#:{
  if ($readini(Locations.ini,$+(#,.,$nick),Location) >= !$null) { | halt }
  writeini -n Locations.ini $nick Location someplace
}


@westor I also tested out your suggestions, and both times, the command with on text worked. The on join tho dosn't work at all. Any idea why this could be?