Well i thought this was all working correctly, and i don't know why it isn't now, so any help would be great.

Code:
on *:text:*:#: {
  if ($1 = $setting(quotes,prefix) $+ quote) && ($setting(quotes,sendquotes) = 1)  {
    var %dir system/data/quotes.ini,%u = $iif($2,$2,$ini(%dir,$r(1,$ini(%dir,0)))), %t = $ini(%dir,%u,0)
    if (%t != 0) {
      var %n = $r(1,%t),%i = $ini(%dir,%u,%n) | msg $chan Quote by: %u on $asctime(%i,ddd doo mmm/yy @ h:nnt)) ( $+ $dur($calc($ctime - %i)) ago) | msg $chan %u $+ : $readini(%dir,%u,%i)
    }
  }
  elseif ($1 = $setting(quotes,prefix) $+ addquote) && ($setting(quotes,chatterquotes) = 1) { 
    if ($3) { writeini system/data/quotes.ini $2 $ctime $3- | notice $nick Added $3- on $asctime(ddd doo mmm/yy @ h:nnt) for  $+ $2 | _quote_refresh }
  }
}    


!quote <nick> works just fine
!quote <number> doesn't
it returns the correct date it was entered, just not the actual quote itself.