I think you guys will like this.

It only works in channels not query windows and other things that don't have a nicklist.

I got tired of typing funky symbols on pretags so I made this script.

How to use it. let's say someone has a name like {#do_g\$)The_dude. You know how hard it is to use tab nick completion on that. Well with the following script, that problem is no more, you would just type @@dude, and it will autofillin for you.

ie:
/msg @@dude hey dingle, change your nick.<smack enter>
would become
/msg {#do_g\$)The_dude hey dingle, change your nick.

also you can use multiple @@'s in your says and what nots that you execute from the main channel they will all autofillin for you.

note: when using this system you want to make sure you choose an unique enough pattern so as not to get the wrong one.

for instance int he previous example if someone else was named dude241. then that nick would've been chosen for the autofill.

here is the code, and as always I know some of you will critique etc. ps. if its only a complaint about me using brackets and not smashing everything onto 1 line, then don't bother responding.

the code.
Code:
on *:INPUT:*: {
  if ( @@ isin $1- ) {
    var %data = $1-
    var %output = %data
    var %matches = $wildtok(%data,@@*,0,32)
    var %index = 1
    if ( %matches ) {
      while ( %index &lt;= %matches ) {
        var %match = $wildtok(%data,@@*,%index,32)
        var %names = $nick($chan,0)
        var %names_index = 1
        var %shortnick = $right(%match,$calc($length(%match)-2))
        while ( %names_index &lt;= %names ) {
          if ( %shortnick isin $nick($chan,%names_index) ) {
            %output = $reptok(%output,%match,$nick($chan,%names_index),1,32)
            %names_index = $calc(%names + 1)
          }
          else {
            inc %names_index
          }
        }
        inc %index
      }
    }
    process %output
    if ( !$result ) return %output | haltdef
  }
}

alias process {
  if ( $1 == /msg ) {
    msg $2 $3-
    haltdef
  }
  elseif ( $1 == /ctcp ) {
    ctcp $2 $3-
    haltdef
  }
  elseif ( $1 == /dcc ) {
    dcc $2 $3-
    haltdef
  }
  elseif ( $1 == /me ) {
    me $2 $3-
    haltdef
  }
  elseif ( $1 == /describe ) {
    describe $2 $3-
    haltdef
  }
  elseif ( $1 == //echo ) {
    echo $2-
    haltdef
  }
  elseif ( $1 == /notice ) {
    notice $2-
    haltdef
  }
  elseif ( $1 == /invite ) {
    invite $2-
    haltdef
  }
  else {
    must be a say
    msg # $1-
    haltdef
  }
  return 0
}

also found at www.geocities.com/trimaster_98/scripts.html