7/13/03
Macro will now loot your corpse before it starts if you have one
Code: Select all
#define MyXLOC v40
#define MyYLOC v41
#define KSRadius v42
#define NotSee v43
#define TooFar v44
#define MyTarget v45
#define TargetDead v46
#define HasTarget v47
#define MobToHunt v48
#define ObstCount v49
#define LootSlot v50
#define CheckLoot v51
#define LootTotal v52
#define MobArraySize v53
#define MobDistance v54
Sub Main
/zapvars
/press esc
/press esc
/press esc
/press esc
/press alt
/press shift
/press ctrl
/varset LootSlot 0
/varset CheckLoot 0
/varset a(1,0) "chips"
/varset a(1,1) "pelt"
/varset LootTotal 2
/varset a(2,0) "skeleton"
/varset a(2,1) "rodent"
/varset KSRadius 60
/varset HasTarget 0
/varset ObstCount 0
/varset MobArraySize 2
/varset MobDistance 14
/delay 1s
/lootn never
:Start
/target mycorpse
/if n $target(id)!=0 /call lootself
/call GetTarget
/if $HasTarget=="1" /call MoveToMob
/if $HasTarget=="1" /call CheckKs
/if $HasTarget=="1" /call CombatSub
/if $HasTarget=="1" /call MoveToMob
/if $HasTarget=="1" /call LootMob
/call ResetSub
/goto :Start
/return
sub lootself
/call movetomob
/loot
/delay 2s
:lootloop
/click left corpse $LootSlot
/varadd LootSlot 1
/delay 2s
/if "$cursor()"!="TRUE" /goto :doneloot
:lootChecker
/delay 2s
/click left auto
/goto :lootloop
:doneloot
/varset LootSlot 0
/click left corpse done
/delay 1s
/target mycorpse
/if n $target(id)!=0 /call lootself
/return
sub GetTarget
:Aquire
/target nopcnear $KSRadius npc "$a(2,$rand($MobArraySize))"
/varset MyTarget $target(id)
/varset TargetDead 0
/if n $target(id)==0 /goto :Aquire
/if $target()=="False" /goto :Aquire
/varset HasTarget 1
/return
sub MoveToMob
/delay 2s
/varset MyXLOC $char(x)
/varset MyYLOC $char(y)
/if n $target(distance)<=$MobDistance {
/face fast nopredict
/return
}
/sendkey down up
:Movementloop
/varadd ObstCount 1
/if $target()=="FALSE" {
/varset HasTarget 0
/return
}
/face fast nopredict
/if n $target(distance)<=$MobDistance {
/face fast
/sendkey up up
/return
}
/if $ObstCount>=3 {
/call CheckObst
/goto :Movementloop
}
/if n $target(distance)>$MobDistance /goto :MovementLoop
/return
sub CheckKS
/if $target()=="FALSE" {
/varset HasTarget 0
/return
}
/target nopcnear $KSRadius npc "$MobToHunt"
/if $target(id)!=$MyTarget {
/echo Target $target(id) and MyTrgId $MyTarget does not match
/echo Starting fresh with new target.
/varset HasTarget 0
/return
}
/return
sub CombatSub
/if $target()=="FALSE" {
/varset HasTarget 0
/return
}
/attack on
:combatloop
/face fast nopredict
|-----------------------------------------------------------------------/call BackstabIt --------------------------------------------------------------------------------------------------------------
/if n $target(distance)>13 {
/sendkey down up
/goto :combatloop
}
/if n $target(distance)<=$MobDistance /sendkey up up
/face fast nopredict
/if n $target(id)==0 /varset TargetDead 1
/if n $TargetDead!=1 /goto :combatloop
/delay 1s
/target id $MyTarget
/return
sub LootMob
/loot
/delay 2s
:lootloop
/click left corpse $LootSlot
/if n $LootSlot==9 /goto :doneloot
/delay 1s
/if "$cursor()"!="TRUE" /goto :doneloot
:lootChecker
/if "$cursor(name)"~~"$a(1,$CheckLoot)" {
/delay 1s
/click left auto
/varadd LootSlot 1
/goto :lootloop
}
/varadd CheckLoot 1
/if "$cursor()"=="TRUE" {
/if n $CheckLoot<$LootTotal /goto :lootchecker
}
/if "$cursor()"=="TRUE" {
/delay 1s
/click left destroy
/delay 1s
}
/varadd LootSlot 1
/varset CheckLoot 0
/goto :lootloop
:doneloot
/varset LootSlot 0
/return
sub ResetSub
/sendkey up up
/press esc
/press esc
/press esc
/press esc
/press alt
/press shift
/press ctrl
/varset CheckLoot 0
/varset HasTarget 0
/varset ObstCount 0
/delay 1s
/return
sub CheckObst
/if n $MyXLOC==$char(x) /if n $MyYLOC==$char(y) /call HitObst 5
/varset MyXLOC $char(x)
/varset MyYLOC $char(y)
/varset ObstCount 0
/return
sub HitObst
/sendkey up up
/sendkey down down
/if n $rand(99)>50 {
/delay 3s
/sendkey up down
/sendkey down Right
/delay $p0
/sendkey up Right
/sendkey down up
/delay 3s
/sendkey up up
} else {
/delay 3s
/sendkey up down
/sendkey down left
/delay $p0
/sendkey up left
/sendkey down up
/delay 3s
/sendkey up up
}
/sendkey up down
/sendkey up Right
/sendkey up Left
/sendkey down up
/return
Sub BackstabIt
/if n $char(ability,"Backstab")!=-2 {
/if $target()=="TRUE" {
/face fast nopredict
/doability "Backstab"
}
}
/return

