Small Running Time Macro

A forum for you to dump all the macros you create, allowing users to use, modify, and comment on your work.

Moderator: MacroQuest Developers

Shali
a ghoul
a ghoul
Posts: 87
Joined: Sun Dec 07, 2003 12:39 pm

Small Running Time Macro

Post by Shali » Sun Apr 25, 2004 5:00 pm

This Macro was designed to be used within other macros by tagging the Time routine on the end of a macro. Useful for calculating xp/hour, casts/hour, and the sort, and just knowing running time of the macro at a glance.

Code: Select all

Sub Main

/declare day global
/declare hour global
/declare minute global
/declare dayscur global
/declare hourscur global
/declare minutescur global
/declare daysrun global
/declare hoursrun global
/declare minutesrun global

/varset day ${Time.Day}
/varset hour ${Time.Hour}
/varset minute ${Time.Minute}
/varset dayscur 0
/varset hourscur 0
/varset minutescur 0
/varset daysrun 0
/varset hoursrun 0
/varset minutesrun 0


/call Time
/echo Runtime: @daysrun Days, @hoursrun Hours, @minutesrun Minutes
...
...
Macro here
...
...

Sub Time

/varset dayscur ${Time.Day}
/varset hourscur ${Time.Hour}
/varset minutescur ${Time.Minute}

  :Days
   /if (@hourscur<@hour) {
		/varset daysrun ${Math.Calc[(@dayscur-@day)-1]}

	} else {
		/varset daysrun ${Math.Calc[@dayscur-@day]}
	}
  :Hours
	/if (@hourscur<@hour) {
		/if (@minutescur<@minute) {
			/varset hoursrun ${Math.Calc[((24-@hour)+@hourscur)-1]}
		} else {
			/varset hoursrun ${Math.Calc[((24-@hour)+@hourscur)]}
		}
	} else {
		/if (@minutescur<@minute) {
			/varset hoursrun ${Math.Calc[(@hourscur-@hour)-1]}
		} else {
			/varset hoursrun ${Math.Calc[(@hourscur-@hour)]}
	}

  :Minutes
	/if (@minutescur<@minute) {
		/varset minutesrun ${Math.Calc[(60-@minute)+@minutescur]}
		} else {
		/varset minutesrun ${Math.Calc[@minutescur-@minute]}
		}

/return
I realize there is a ${Macro.Runtime} command, but i wrote this beforehand, and dont feel like thinking the way to convert a purely minutes format into a d:hh:mm format.