Code: Select all
#turbo
Sub Main
/declare timeStart int outer
/declare timeEnd int outer
/declare timeElapsed int outer
/declare myDmg int outer
/declare nonDmg int outer
/declare fltExp float outer
/varset fltExp ${Me.PctExp}
/echo Attacking ${Target.Name}, a ${Target.Level} ${Target.Class}
/call MoveTo
/call DoDrunk
/varset timeStart ${Time.SecondsSinceMidnight}
/if (${Me.AbilityReady[kick]}) /doability kick
/doability "fists of wu"
/attack on
:Loop
/doevents
| /if (${Me.PctHPs}<30) /vtest 007
/face fast
/call DoBS
| /if (${Me.AbilityReady[Intimidation]}) /doability Intimidation
| /if (${Me.AbilityReady[Disarm]}) /doability Disarm
/if (${Me.PctHPs}<30) /call SaveMyself
/delay 2
/call StayClose
/if (${Target.ID}) /goto :Loop
| /call AcquireNewTarget
/attack off
/varset timeEnd ${Time.SecondsSinceMidnight}
/varset timeElapsed ${Math.Calc[${timeEnd} - ${timeStart}]}
| /call LootHide
/disc Fists of Wu
/declare TotalDamage int inner
/varset TotalDamage ${Math.Calc[${nonDmg} + ${myDmg}]}
/echo Duration: ${timeElapsed} seconds.
/echo Standard Damage: ${myDmg}
/echo Non-melee Damage: ${nonDmg}
/echo Total Damage: ${TotalDamage}
/echo Damage Per Second: ${Math.Calc[${TotalDamage} / ${timeElapsed}]}
/echo Exp: ${Me.PctExp}% of level. (+${Math.Calc[${Me.PctExp}-${fltExp}]}%)
/return
Sub AcquireNewTarget
:FindTarget
/squelch /target npc radius 30 next
/if (${Target.ID}) {
/if (${Target.DistanceZ}<15) {
/attack on
/goto :Loop
} else {
/goto :FindTarget
}
} else {
/goto :FindTarget
}
/return
Sub SaveMyself
/attack off
/doability mend
/target clear
/keypress down hold
/delay 1
/aa act Imitate Death
/delay 2
/keypress down
/endmac
/return
Sub Event_Success(string Param1)
/timed 10 /autoinv
/echo Stole ${Param1}
/return
Sub FindNextTarget
:FindTarget
/squelch /target npc radius 30 next
/if (${Target.ID}) {
/if (${Target.DistanceZ}<15) {
/attack on
/goto :Loop
} else {
/goto :FindTarget
}
} else {
/goto :FindTarget
}
/return
Sub DoBS
/if (${Me.AbilityReady[kick]}) {
|/call MoveTo
/doability kick
}
/return
Sub DoDrunk
/if (${Me.CombatAbilityReady[Drunk]}) {
/doability Drunk
/delay 5
}
/return
Sub Event_MyDamage(string Line, string Mob, int Damage)
|/echo Hit for ${myDamage}s
/varset myDmg ${Math.Calc[${myDmg}+${Damage}]}
/return
Sub Event_NonMelDamage(string Line, string Mob, int Damage)
|/echo Hit for ${myDamage}s
/varset nonDmg ${Math.Calc[${nonDmg}+${Damage}]}
/return
Sub StayClose
/declare intRange int inner
/varcalc intRange ${Math.Calc[${Target.MaxRangeTo}-(${Target.MaxRangeTo}/4)]}
:MoveToLoop
/if (${Target.Distance}>${intRange}) /keypress up hold
/face fast
/delay 1
/if (${Target.Distance}>${intRange}) /goto :MoveToLoop
/keypress up
/return
Sub MoveTo
:MoveToLoop
/if (${Target.Distance}>3) /keypress up hold
/face fast
/delay 1
/if (${Target.Distance}>3) /goto :MoveToLoop
/keypress up
/face nolook fast Heading ${Target.Heading.DegreesCCW}
/keypress down hold
:BackLoop
/delay 1
/if (${Target.Distance}<5) /goto :BackLoop
/keypress down
/delay 1
/return
