<?xml version="1.0" encoding="ISO-8859-1" ?>
<cmud>
  <class name="XpCounter">
    <class name="Init" enabled="false">
      <trigger priority="990">
        <pattern>^Hp: * Gp: * Xp: %1 Burden: %d%$</pattern>
        <value>#VAR XpStart {%1}
#VAR XpStart {@XpStart}
#IF (@TotXpStart=0) {#VAR TotXpStart {@XpStart}}
#IF (@TotXpTime=0) {#VAR TotXpTime {@XpStartTime}}
#T+ {XpCounter|Compute}
#T- {XpCounter|Init}</value>
      </trigger>
    </class>
    <class name="Compute">
      <alias name="computeXPRate" autoappend="true">
        <value>#VAR XpGained {%1}
#VAR XpGained {@XpGained}
#VAR TotXpGained {@XpGained}
#MATH XpGained @XpGained-@XpStart
#MATH TotXpGained @TotXpGained-@TotXpStart
settime TempXpTime
getsecdiff TempTime @XpStartTime @TempXpTime
settime TotXpTempTime
getsecdiff TotTempTime @TotXpTime @TotXpTempTime
#MATH XpPerSec %float( @XpGained)/%float( @TempTime)
#MATH XpPerMin @XpPerSec*60
#MATH TotXpPerSec %float( @TotXpGained)/%float( @TotTempTime)
#MATH TotXpPerHour @TotXpPerSec*3600</value>
      </alias>
      <trigger priority="1000">
        <pattern>^Your current experience is %1 and</pattern>
        <value>computeXPRate %1</value>
      </trigger>
      <trigger priority="1010">
        <pattern>^Hp: * Gp: * Xp: %1 Burden: %d%$</pattern>
        <value>computeXPRate %1</value>
      </trigger>
      <trigger priority="1020">
        <pattern>^Hp: * Gp: * Xp: &amp;%d{XpGained}$</pattern>
        <value>computeXPRate %1</value>
      </trigger>
    </class>
    <alias name="xpinit" autoappend="true">
      <value>#VAR XpGained 0
settime XpStartTime
#T- {XpCounter|Compute}
#T+ {XpCounter|Init}
score brief</value>
    </alias>
    <alias name="resetxp" autoappend="true">
      <value>#VAR TotXpTime 0
#VAR XpGained 0
#VAR XpStart 0
#VAR TotXpStart 0
#VAR TotXpGained 0
xpinit
#SHOW {%char(10)%ansi(bold,cyan)XP Counters Reset.}</value>
    </alias>
    <alias name="xphelp" autoappend="true">
      <value>#SHOW {%char( 10)%ansi( bold, yellow)xpinit: %ansi( bold, green)Start counting your Exp gain}
#SHOW {%ansi( bold, yellow)xprate: %ansi( bold, green)Display your Exp rate statistics}
#SHOW {%ansi( bold, yellow)resetxp: %ansi( bold, green)Reset all of the Xp variables.%char( 10) This will zero out the total Xp gained.%char( 10) Generally, just use xpinit again to start counting again for a new zone%char( 10)%ansi( bold, yellow)xpmin ~&lt;channel~&gt;: %ansi( bold, green)Send your current xp gain and xp/min to specified channel%char( 10)%ansi( bold, yellow)xptot ~&lt;channel~&gt;: %ansi( bold, green)Send your total xp gain and xp/hour to specified channel%char( 10)%ansi( bold, yellow)xpoff:%ansi( bold, green) Turn off xp tracking. Use xpinit to reenable xp tracking.%char( 10)~(c~)Kernighans Scripts 2005 Version 1.9%char( 10)~Modified to be used on Discworld by Ohm 2007%char( 10)}</value>
    </alias>
    <alias name="xpmin" autoappend="true">
      <value>settime TempXpTime
getsecdiff TempTime @XpStartTime @TempXpTime
#MATH XpPerMin @XpGained/@TempTime*60
xpmintext %-1</value>
    </alias>
    <alias name="xpmintext" autoappend="true">
      <value><![CDATA[#IF (%1) {%1 [XP Earned: %format("&.0n",@XpGained) at %format("&.0n",@XpPerMin) XP/minute in %eval(@TempTime/3600)hr:%mod(@TempTime/60,60)min:%mod(@TempTime,60)sec]}
#IF (%1 = "") {#SHOW {[XP Earned: %format("&.0n",@XpGained) at %format("&.0n",@XpPerMin) XP/minute in %eval(@TempTime/3600)hr:%mod(@TempTime/60,60)min:%mod(@TempTime,60)sec]}}]]></value>
    </alias>
    <alias name="xptot" autoappend="true">
      <value>settime TotXpTempTime
getsecdiff TotTempTime @TotXpTime @TotXpTempTime
#MATH TotXpPerHour @TotXpGained/@TotTempTime*3600
xphourtext %-1</value>
    </alias>
    <alias name="xphourtext" autoappend="true">
      <value><![CDATA[#IF (%1) {%1 [Cummalative XP Earned: %format("&.0n",@TotXpGained) at %format("&.0n",@TotXpPerHour) XP/hour in %eval(@TotTempTime/3600)hr:%mod(@TotTempTime/60,60)min:%mod(@TotTempTime,60)sec]}
#IF (%1 = "") {#SHOW {[Cummalative XP Earned: %format("&.0n",@TotXpGained) at %format("&.0n",@TotXpPerHour) XP/hour in %eval(@TotTempTime/3600)hr:%mod(@TotTempTime/60,60)min:%mod(@TotTempTime,60)sec]}}]]></value>
    </alias>
    <alias name="xpoff" autoappend="true">
      <value>#VAR TotXpTime 0
#VAR TotXpStart 0
#VAR TotXpGained 0
#T- {XpCounter|Init}
#T- {XpCounter|Compute}
#SHOW {%char(10)%ansi(bold,cyan)XP Counter disabled.}</value>
    </alias>
    <alias name="xprate" autoappend="true">
      <value>#SHOW {%ansi( bold, blue)Exp Gained: %ansi( white)%format( "&amp;.0n", @TotXpGained) %ansi( bold, blue)~[%ansi( white)%eval(@TotTempTime/3600)hr%ansi( bold, yellow):%ansi( white)%mod( @TotTempTime/60, 60)min%ansi( bold, yellow):%ansi( white)%mod( @TotTempTime, 60)sec%ansi( bold, blue)] [XP/Hour: %ansi( white)%format( "&amp;.0n", @TotXpPerHour)%ansi( bold, blue)] [XP/Min: %ansi( white)%format( "&amp;.0n", @XpPerMin)%ansi( bold, blue)]%cr%ansi( bold, cyan)}</value>
    </alias>
    <var name="XpGained">0</var>
    <var name="XpStart" type="String">984031</var>
    <var name="XpStartTime" type="String">5/3/2008 18:49:22</var>
    <var name="TotXpStart" type="String">984031</var>
    <var name="TotXpGained">0</var>
    <var name="TotXpTime" type="String">5/3/2008 18:49:22</var>
    <var name="TempTime" type="String" usedef="true">
      <value>0</value>
      <default>0</default>
    </var>
    <var name="TempXpTime" type="String" usedef="true">
      <value>5/3/2008 18:49:22</value>
      <default>0</default>
    </var>
    <var name="TotTempTime" type="String" usedef="true">
      <value>0</value>
      <default>0</default>
    </var>
    <var name="TotXpTempTime" type="String" usedef="true">
      <value>5/3/2008 18:49:22</value>
      <default>0</default>
    </var>
    <var name="XpPerMin">0</var>
    <var name="TotXpPerHour">0</var>
    <var name="TotXpPerSec">0</var>
    <var name="XpPerSec">0</var>
    <var name="PlusIn" usedef="true">
      <value>0</value>
      <default>0</default>
    </var>
    <var name="XpLeft" usedef="true">
      <value>0</value>
      <default>0</default>
    </var>
    <stat name="StatBar4" priority="1330">
      <value>Xp/Hr %format("&amp;.0n",@TotXpPerHour)</value>
    </stat>
  </class>
  <class name="Time">
    <alias name="settime" autoappend="true">
      <value>#var year {%time(y)}
#MATH year {20@year}
#variable %1 {%time(m)/%time(d)/@year %time(h):%time(n):%time(s)}</value>
    </alias>
    <alias name="getsecdiff" autoappend="true">
      <value>#noop VBScript
#mss {SecDiff = DateDiff(~"s~", ~"%2~", ~"%3~")}
#var %1 {%mss(SecDiff)}</value>
    </alias>
    <alias name="getminutediff" autoappend="true">
      <value>#noop VBScript
#mss {MinuteDiff = DateDiff(~"n~", ~"%2~", ~"%3~")}
#var %1 {%mss(MinuteDiff)}</value>
    </alias>
    <alias name="gethourdiff" autoappend="true">
      <value>#noop VBScript
#mss {HourDiff = DateDiff(~"h~", ~"%2~", ~"%3~")}
#var %1 {%mss(HourDiff)}</value>
    </alias>
    <var name="year" type="String" usedef="true">
      <value>2008</value>
      <default>0</default>
    </var>
  </class>
</cmud>
