Mudlet Scripts
From LSWiki
(Difference between revisions)
Revision as of 19:30, 20 January 2021
This is a place for mudlet scripts that may be of interest to others.
[edit]
Datetime conversion
This script converts datetimes (for example, from channel histories) into the corresponding date and time from the in-game calendar:
Trigger:
(\d+) (\w+) (\d+) (\d+):(\d+)
Script:
inyear = matches[2] inmonnm = matches[3] inday = matches[4] inhr = matches[5]-3 -- This includes a manual offset for the difference between the system time in EST and my local time in PST. inmin = matches[6] if inmonnm == "Jan" then inmon = 1 end if inmonnm == "Feb" then inmon = 2 end if inmonnm == "Mar" then inmon = 3 end if inmonnm == "Apr" then inmon = 4 end if inmonnm == "May" then inmon = 5 end if inmonnm == "Jun" then inmon = 6 end if inmonnm == "Jul" then inmon = 7 end if inmonnm == "Aug" then inmon = 8 end if inmonnm == "Sep" then inmon = 9 end if inmonnm == "Oct" then inmon = 10 end if inmonnm == "Nov" then inmon = 11 end if inmonnm == "Dec" then inmon = 12 end systime = os.time() offset = (os.time{day=1, year=1970, month=1}) basetime = os.time{day=inday, year=inyear, month=inmon, hour=inhr, min=inmin} utctime = basetime + offset timestamp = os.difftime(utctime, reference) year = math.floor(timestamp/16200000)+480 month = math.floor(timestamp/1620000)%10+1 day = math.floor(timestamp/54000)%30+1 hour = math.floor(timestamp/1800)%30 hour = string.format("%02i",hour) minute = math.floor(timestamp/30)%60 minute = string.format("%02i",minute) selectCaptureGroup(2) replace(year) selectCaptureGroup(3) replace(month) selectCaptureGroup(4) replace(day) selectCaptureGroup(5) replace(hour) selectCaptureGroup(6) replace(minute)