Like i said, quit and nick are unique. They do not have the #: on the end of the line (on *:TEXT:*:#: for example). Those are much simpler, try this:

Code:
on ^*:PART:[color:Red]#:[/color] {
  /echo -ti2 $chan 12.:Leaving:. $nick has parted $address
  /haltdef
}

on ^*:JOIN:[color:Red]#:[/color] {
  /echo -ti2 $chan 12.:Joining:. $nick has joined $address
  /haltdef
}

on ^*:TOPIC:[color:Red]#:[/color] {
  /echo -ti2 $chan 3.:Topic:. $1-
  /echo -ti2 $chan Set by: $nick
  /haltdef
}


I made the portions where you made a mistake bold so you can learn from them. My suggestion is look at /help on <event> and check to make sure you have the syntax (proper setting) of the commands.

EDIT: err, well atleast i Tryed to make em bold--now they're red >:D