I've been working on something to handle all my query's into a custom window. When someone pm's me it writes their nick to the list and when you double click the window you can private chat with them just like you would in a normal query window. When the window @Quer is closed and re-opened when you get another pm from them and you double click their nickname in the listbox you'll see recent history, my question is how could I improve it, what does it need.



Here is the code.

Code:
alias Quer {
  if (!$window(@Quer)) { 
    window -deSl11k0 @Quer 245 250 594 266 
  }
  else {
    return
  }
}

on ^*:Text:*:?: {
  closemsg $nick
  if (!$exists(QuerLogs)) {
    mkdir QuerLogs
    write QuerLogs\Quer. $+ $nick $+ .txt  $chr(91) $+ $time(HH:nn) $+ $chr(93) < $+ $nick $+ > $1-
    quer
    savebuf -a 1-$line(@Quer,0) @Quer QuerLogs\Quer. $+ $sline(@Quer,1) $+ .txt
    if ($fline(@Quer,$nick,0,1)) {
      return
    }
    elseif (!$fline(@Quer,$nick,0,1)) {
      aline -l @Quer $nick 
    }
  }
  else {
    write QuerLogs\Quer. $+ $nick $+ .txt $chr(91) $+ $time(HH:nn) $+ $chr(93) < $+ $nick $+ > $1-
    Quer
    savebuf -a 1-$line(@Quer,0) @Quer QuerLogs\Quer. $+ $sline(@Quer,1) $+ .txt
    if ($fline(@Quer,$nick,0,1)) {
      return 
    }
    elseif (!$fline(@Quer,$nick,0,1)) { 
      aline -l @Quer $nick 
    }
  }
}

menu @Quer {
  dclick: {
    dline @Quer 1- $+ $line(@Quer,0)
    if ($sline(@Quer,0) == 1) {
      renwin @Quer @Quer $chr(160) - $chr(160) Conversation with $sline(@Quer,1)
      loadbuf $lines(QuerLogs\Quer. $+ $sline(@Quer,1) $+ .txt) @Quer QuerLogs\Quer. $+ $sline(@Quer,1) $+ .txt
    }
  }
  Close $1 Conversation: {
    if ($sline(@Quer,0) < 2) {
      .timer 1 1 dline -l @Quer $sline(@Quer,1).ln
    }
  }
  Delete $1 History: {
    if ($sline(@Quer,0) < 2) {
      dline -l @Quer $sline(@Quer,1).ln
      .remove QuerLogs\Quer. $+ $1 $+ .txt
    }
  }
}

on 1:Input:@Quer: {
  .quer.msg $1-
}

alias quer.msg {
  if ($sline(@Quer,0) == 1) && ($window(@Quer)) {
    if ($input(Secure Send Message $+ $crlf $+ Send this message to $sline(@Quer,1) $+ ? $+ $crlf $+ $crlf $+ $1-,c,Send Message.) == $true) {
      .Raw PRIVMSG $sline(@Quer,1) : $1-
      aline -p @Quer $chr(91) $+ $time(HH:nn) $+ $chr(93) < $+ $me $+ > $1-
      savebuf -a 1-$line(@Quer,0) @Quer QuerLogs\Quer. $+ $sline(@Quer,1) $+ .txt
    }
    else { 
editbox @Quer $1-
 }
  }
  else { 
    return
  }
}

on 1:Keydown:@Quer:*: {
  splay sounds\typewriter.wav
  if ($keyval == 27) { window -c @Quer }
}

Last edited by SladeKraven; 26/02/05 08:09 AM.