*EDIT* Added a check on RunTime1 for divide by zero error.
Thanks to TheDroidsUrLookingFor for his help.
Code: Select all
#event Exp "You gain#*#Experience#*#"
Sub Main
/declare PrctExp float outer
/declare Exper float outer
/declare Exper1 float outer
/declare Exper2 float outer
/declare Expstart float outer
/varset PrctExp 0
/varset PrctAAExp 0
/varset Exper ${Me.PctExp}
/varset Exper1 0
/varset Exper2 0
/varset AAExp ${Me.PctAAExp}
/varset Expstart ${Me.Exp}
:Loop
/doevents
/goto :Loop
Sub Event_Exp
/declare RunTime int local
/declare RunTime1 float local
/varset RunTime1 0
/varcalc RunTime ${Macro.RunTime}/60
| Exper = XP from last Kill
/varcalc Exper ${Me.Exp}-${Exper}
| Exper2 is running total of XP gained since start
/varcalc Exper2 ${Exper2}+${Exper}
| PrctExp is the Percent left to level
/varcalc PrctExp 100-${Me.PctExp}
/varcalc RunTime1 ${RunTime}/60
/if (${RunTime1}<.01) /varset RunTime1 .01
|Exper1 is Approx XP per hour
/varcalc Exper1 ${Exper2}/${RunTime1}
/echo [Last Kill]: ${Exper} [Total EXP]: ${Exper2} in [${RunTime}] Minutes...
/echo [%EXP to level]: ${PrctExp}% [Exp per hr]: ${Exper1}
/return