on 1:CONNECT:/logevent
alias eventreset {
/set %train.events tree fruit herb tears
;/set %train.last $ctime $ctime $ctime $ctime
/set %train.delay 13200 52800 4200 72000
}
alias logevent {
/window @event.list
/clear @event.list
echo @event.list $asctime
var %log.t = 1
while (%log.t <= $gettok(%train.events,0,32)) {
if ($1 == $gettok(%train.events,%log.t,32)) { set %train.last $puttok(%train.last,$ctime,%log.t,32) }
;;echo @event.list $gettok(%train.events,%log.t,32) Last: $elapsed($gettok(%train.last,%log.t,32))
var %endtime $calc($gettok(%train.last,%log.t,32) + $gettok(%train.delay,%log.t,32))
if (%endtime <= $ctime) { echo @event.list $gettok(%train.events,%log.t,32) 4,1DUE: $elapsed(%endtime) }
if (%endtime >= $ctime) { echo @event.list $gettok(%train.events,%log.t,32) 3,1Count Down: $timetill(%endtime) }
inc %log.t
}
}
alias changedelay {
/window @event.list
/clear @event.list
echo @event.list $asctime
var %newdelay $$?="Delay in seconds"
var %log.t = 1
while (%log.t <= $gettok(%train.events,0,32)) {
if ($1 == $gettok(%train.events,%log.t,32)) { set %train.delay $puttok(%train.delay,%newdelay,%log.t,32) }
echo @event.list $gettok(%train.events,%log.t,32) Last: $elapsed($gettok(%train.last,%log.t,32))
echo @event.list $gettok(%train.events,%log.t,32) Next: $timetill($calc($gettok(%train.last,%log.t,32) + $gettok(%train.delay,%log.t,32)))
inc %log.t
}
}
alias logdelays {
/window @event.list
/clear @event.list
echo @event.list $asctime
var %log.t = 1
while (%log.t <= $gettok(%train.events,0,32)) {
echo @event.list $gettok(%train.events,%log.t,32) $gettok(%train.delay,%log.t,32)
inc %log.t
}
}
alias eventlist {
if ($1 == begin) return -
if ($1 >= 1) && ($1 <= $gettok(%train.events,0,32)) { return $gettok(%train.events,$1,32) $+ Start:/logevent $gettok(%train.events,$1,32) }
if ($1 == end) return -
}
alias eventdelay {
if ($1 == begin) return -
if ($1 >= 1) && ($1 <= $gettok(%train.events,0,32)) { return $gettok(%train.events,$1,32) $+ Change:/ChangeDelay $gettok(%train.events,$1,32) }
if ($1 == end) return -
}
;##################################################
menu @event.list,nicklist {
farmevents
.Refresh:/logevent
.View Events/Delay:/logdelays
.Reset Starting Time
..$submenu($eventlist($1))
..Set Event Delays
...$submenu($eventdelay($1))
.RESET-default-delays:/eventreset
}
;##################################################
alias elapsed {
if ($1 isnum) tokenize 32 $duration($calc($ctime - $1))
else tokenize 32 $duration($calc($ctime - $ctime($1-)))
if (wks isin $1) {
var %x $calc($remove($1,wks) *7)
if (day isin $2) var %x $calc(%x + $remove($2,day,s))
var %v $int($calc(%x /365))
var %x $calc(%x - %v *365)
var %w $int($calc(%x /7))
var %x $calc(%x - %w *7)
return $iif(%v,$v1 $+ yr $+ $iif($v1 > 1,s)) $iif(%w,$v1 $+ wk $+ $iif($v1 > 1,s)) $iif(%x,$v1 $+ day $+ $iif($v1 > 1,s)) $iif(day isin $2,$3-,$2-)
}
return $1-
}
alias timetill {
return $elapsed($calc($ctime - $remove($elapsed($1),-,sec,s)))
}