unfortunetly the optiosn timestamp value doesnt allow u to insert identifiers like $x in else i would have said rename the alias to x and insert $x, maybve this should be a feature suggestion for the future who knows.

i wacked this together for you

Code:
alias ms.timestampfmt {
  var %ctime = $calc($ctime + 1)
  while (%ctime >= $ctime) { }
  set -u1000000000 %ms.timestampfmt.fix $calc($ticks % 1000)
  .timer.ms.timestampfmt.fix -imo 0 15 ms.timestampfmt.fix
}
alias ms.timestampfmt.fix {
  var %timestampfmt = $timestampfmt
  if ($pos(%timestampfmt,s.,1)) {
    var %pos = $v1
    if ($mid(%timestampfmt,$calc(%pos + 2),3) isnum) {
      .timestamp -f $+($left(%timestampfmt,%pos),.,$right($calc($ticks - %ms.timestampfmt.fix),3),$mid(%timestampfmt,$calc(%pos + 5)))
    }
  }
}


First run /MS.TIMESTAMPFMT and it well start it off, it well have that 1 to 2 second delay anytime you run it
After that you well notice no change, unless you go into the timestamp format and insert ".000" (actually fullstop and any 3 numbers), ex [HH:nn:ss] to [HH:nn:ss.123]
Next time the timestamp is displayed the 3 digits are adjusting to the ms, im actually going in and reseting the timestamp 67 or so times a second ( /me is a resource hog! )

* now becuase this is done on a timer, if you are doing your own large looping (aka mirc freeze) then the timer doesnt get a chance to go off, thus the ms value well not update, so if your got a /echo -t in your loop the ms well jam, only way to fix that is to call MS.TEMPSTAMPFMT.FIX from inside your loop. This however is not major in my opion as from what i gather your after getting accurate time stamps on channels etc.

* again if u have mirc6.17 you can replace the -u1000000000 with a -e

--- edit ---
Calling out to REGEXERS!

Actually to any good regexer out there it would be nice if you could do a regsub on it, and thus reduce my code over head replacing all my ifs etc, and it would also allow replacing of more than one s.000 value
What i think is needed is to locate in $timestampfmt any occurance of s.### (# being a digit) and replace it with $+(s.,$right($calc($ticks - %ms.timestampfmt.fix),3)), Maybe also only set the timestamp if at least one was found, since im sure its resource hoggy to keep setting it if its not changed smile
Maybe along the lines of....
Code:
alias ms.timestampfmt.fix {
  var %timestampfmt = $timestampfmt 
  if ($regsub(%timestampfmt,[color:blue]<re>[/color],$+(s.,$right($calc($ticks - %ms.timestampfmt.fix),3)),%timestampfmt)) { timestamp -f %timestampfmt }
}


<re> to match s.###

Last edited by DaveC; 19/02/06 12:53 AM.