Moderator: MacroQuest Developers
Code: Select all
| Stormfeather Camper by Scary Penguin
| 1.19.04
|
| Set Up to utilize Shadowknight Unholy Aura and Harmtouch.
| More class specifics to be added later.
|
| Main code based off of: Spawnchecker macro by wilso132
| USAGE: /macro stormfeather <beep/kill> will beep a number of times to alert you of spawn every
| 5 minutes untill dead, or target, kill, and loot the mob for you.
Sub Main
/echo Stormfeather Camper by Scary Penguin
/declare CorpseLoot int outer
/declare x int outer
/declare alerts int outer
/declare BeepKill string outer
/varset x 0
/varset alerts 1
/if (${Param0.Equal["beep"]}) {
/varset BeepKill "beep"
/echo Camping Stormfeather! You have chosen to [[ALERT]] when Stormfeather spawns!
} else /if (${Param0.Equal["kill"]}) {
/varset BeepKill "kill"
/echo Camping Stormfeather! You have chosen to [[KILL]] when Stormfeather spawns!
} else {
/echo USAGE: /macro stormfeather <beep/kill> will beep a number of times to alert you of spawn every
/echo 5 minutes untill dead, or target, kill, and loot the mob for you.
/end
}
/alert clear ${alerts}
/alert add ${alerts} npc radius 10000 "Stormfeather"
:SpawnCheckLoop
/if (${alerts} {
/echo Stormfeather is UP!
/echo Time of spawn is ${Time.Time24}
/target npc "Stormfeather"
/call ${BeepKill} |- this will either /call beep, or /call kill, as defined above
} else {
/goto :SpawnCheckLoop
}
/return
Sub Loot
/varset CorpseLoot 0
/lootn never
/target "Stormfeather's corpse"
/delay 1s
/call Move
/loot
:lootloop
/delay 1s
/if n @CorpseLoot>=8 /goto :lootend
/click left corpse @CorpseLoot
/delay 1s
/if "$cursor()"!="TRUE" /goto :lootend
/autoinventory
/varadd CorpseLoot 1
/goto :lootloop
:lootend
/lootn always
/varset CorpseLoot 0
/press esc
/press esc
/press esc
/press esc
/endmac
Sub Move
:moveloop
/if (${Target.Distance}>12) {
/keypress forward hold
}
/if (${Target.Distance}<=10) {
/keypress forward
/return
}
/goto :moveloop
/return
Sub Beep
/for x 0 to 35
/beep
/next x
/delay 5m
/return
Sub Kill
/echo Engaging ${Target.Name} !!
/if (${Me.State.Equal["SIT"]}) /stand
/if (${Me.State.Equal["FEIGN"]}) /stand
/delay 1s
/face fast
/call Move
/if (${Target.Distance}<=100) {
/keypress forward
/disc Unholy
/delay 2s
/doability Harmtouch
}
/call Move
/if (!${Target.ID} /Call Loot
/attack on
:combatloop
/face fast
/if (${Target.Distance}>12) {
/keypress forward
}
/if (${Target.Distance}<10) {
/keypress back
}
/face fast
/if (${Target.ID} /goto :combatloop
/if (!${Target.ID} /Call Loot
/return