Code: Select all
|| This is a little macro I use for camping Crystaline Shardwurms in GD
|| Feel free to edit/modify this for your own use or camp
|| If you find any bugs or suggestions for improvement, please feel free to email me at flash_plumb@hotmail.com
|| Names modified for identity purposes
|| Written by Dravidian Kayne ~ Mighty Magician
|| Usage: /macro MageCamp.mac
|| NOTE::Before using this in Shardwurm caves, do the following:
|| 0: Have a Mage of level 54 or higher and have the new spell Elemental Draw (bought in EC tunnel for ~115pp I believe)
|| 1: Kill all Crystaline Shardwurms in the room, starting with the one on the right and working your way around the circle
|| 2: Have a Cleric bot with you to heal your pet. I did not design this to have the Mage himself heal, for unless you had FT14 or so you wouldn't be able to have enough mana (long term....of course C3 would help, but it'd wear off eventually)
|| 3: Spells I have in order are 1: Lava Bolt 2: Unused 3: Malosi 4: Everfount 5: Cornucopia 6: Shield of Lava 7: Burnout III 8: Elemental Draw
||---------------------------------------
||Events -- I can't figure out how to get these to work for the life of me....Maybe somebody could help me out here?
||---------------------------------------
#Event NoFood "You are out of food"
#Event NoDrink "You are out of drink"
#Event Fizzle "Your spell fizzles!"
||---------------------------------------
||Sub Main
||---------------------------------------
Sub Main
/declare LootSlot global
/declare LootTotal global
/declare LootArray array
/declare GemSlot global
/declare HasNuked global
/declare NeedFood global
/declare NeedDrink global
:MasterLoop
|| Check to see if a sharwurm has spawned
:IsSpawned
/if $target()=="TRUE" /press esc
}
/target "a crystaline shardwurm"
/if $target()=="FALSE" {
/delay 10s
/goto :IsSpawned
}
|| Move to the shardwurm
/stand
/if n $target(distance)>150 {
/sendkey down up
:MoveToTarget
/delay 0
/face
/if n $target(distance)>150 /goto :MoveToTarget
/sendkey up up
/delay 1s
}
|| Send pet in, then Malosi, then buff pet
/pet attack
/varset GemSlot 3
/cast 3
/delay 80
/target pet
/cast 6
/delay 75
/cast 7
/delay 75
/sit
/assist
/varset HasNuked 0
|| Loop while pet is killing
:IsDead
|| If your health drops below 80, run to cleric for heal. For some reason I can't get this to work....although I haven't really looked at it deeply
|**
/if n $char(hp,pct)<80 {
/target "CLERICNAME"
/stand
/face
/if n $target(distance)<5 /goto :Safe
/sendkey down up
:MoveToSafe
/face
/delay 0
/if n $target(distance)>6 /goto :MoveToSafe
:Safe
/sendkey up up
}
**|
|| Nuke the Shardwurm if 20% health or less
/if @HasNuked==0 /if n $target(hp,pct)<21 {
/stand
/cast 1
/face
/delay 7s
/varset HasNuked 1
/sit
/delay 3s
}
|| Loots the corpse
/if $target()=="FALSE" /goto :LootUp
/goto :IsDead
:LootUp
/target "a crystaline shardwurm's corpse"
/stand
/face
/if n $target(distance)<15 /goto :InRange
/sendkey down up
:GetCloser
/face
/delay 0
/if n $target(distance)>14 /goto :GetCloser
:InRange
/sendkey up up
/varset LootSlot 0
/if @Param0=="" {
/press esc
/press esc
/press esc
/goto :ReturnHome
}
/if @Param0!="" {
/varset LootArray(0) @Param0
/varset LootTotal 1
}
/if @Param1!="" {
/varset LootArray(1) @Param1
/varset LootTotal 2
}
/if @Param2!="" {
/varset LootArray(2) @Param2
/varset LootTotal 3
}
/if @Param3!="" {
/varset LootArray(3) @Param3
/varset LootTotal 4
}
/if @Param4!="" {
/varset LootArray(4) @Param4
/varset LootTotal 5
}
/if @Param5!="" {
/varset LootArray(5) @Param5
/varset LootTotal 6
}
/if @Param6!="" {
/varset LootArray(6) @Param6
/varset LootTotal 7
}
/if @Param7!="" {
/varset LootArray(7) @Param7
/varset LootTotal 8
}
/if $target()=="TRUE" /loot
/delay 7
:lootloop
/click left corpse @LootSlot
/delay 7
|| Destroys NO DROP and LORE items ... although I'm not sure if this works or not. Feedback plz!
/if "$cursor()"!="TRUE" /goto :doneloot
/if "$cursor(lore)"=="TRUE" /destroy
/if "$cursor(nodrop)"=="TRUE" /destoy
/delay 7
/autoinventory
/varadd LootSlot 1
/goto :lootloop
:doneloot
/varset LootSlot 0
/press esc
/press esc
/press esc
|| Finishing touches
:ReturnHome
/delay 7
/sit
|| Summon Food or Drink if needed......as stated before I can't get this to work. Plz help....
/if n @NeedFood==1 {
/stand
/cast 5
/delay 5s
/autoinventory
/varset NeedFood 0
/sit
}
/if n @NeedDrink==1 {
/stand
/cast 4
/delay 5s
/autoinventory
/varset NeedDrink 0
/sit
}
|| Recast Elemental Draw
/stand
/cast 8
/delay 5s
/sit
/pet sit down
|| Rest for 3 minutes to regain mana and allow for constant killing with no extended downtime
/delay 3m
/pet stand up
/goto :MasterLoop
/return
||---------------------------------------
||Sub Events
||---------------------------------------
Sub Event_NoFood
/varset NeedFood 1
/return
Sub Event_NoDrink
/varset NeedDrink 1
/return
Sub Event_Fizzle
/cast SpellCasting
/delay 10s
/sit
/return

