Mage Pet Equipping Macro
Posted: Mon Jul 11, 2005 6:37 am
After having loved the wait4rez.mac that was created here, i got to thinking what else would i do after a rez and created a second macro to be called (optionally from that) that would bring my magician pet up from the ground up.
(Shout outs to that auther and the author of the 'another mage auto macro', though i didnt go back and check their names at this moment and finally the author of swapcast which enabled me a more effective means to get the toys out of my inventory every time.)
This macro needs the spell_routines.inc.
As for the wait4rez.mac
I added 2 lines to it complete the process.
Changed:
And added JUST before the termination of the macro
This assumes that you already have elemental simulcram memmed. As it takes 45 seconds to recycle you would need it memmed quickly after a death. This is another modification to wait4rez i made before i got to creating this one. I tested the macro under full mana conditions and will be checking it (hopefully not too soon) under newly rez conditions.
this way either i run (/mac rez) or i run (/mac rez pet) depending on which i want to do. More automation to come as i add other mage specific features.
ToDo:
1) Automated Malo without other actions (one that keeps trying til its done, THEN announces it).
(Shout outs to that auther and the author of the 'another mage auto macro', though i didnt go back and check their names at this moment and finally the author of swapcast which enabled me a more effective means to get the toys out of my inventory every time.)
This macro needs the spell_routines.inc.
Code: Select all
| ------------- Startup new pet after rez --------------
| 1) Click rod (checks rod for existance, if not casts it and inventories it)
| 2) Summon Pet
| 3) Click Mana regen buffs
| 4) wait 30seconds
| 5) Cast Pet Toys
| 6) Give toys to pet
#include spell_routines.inc
Sub RezNewPet
/call ClickRodWithCheck
/call SumPet
/call cast "Elemental Simulcram"
/delay 55
/memspell 9 "Phantom Shield"
/delay 25
/call cast "Phantom Shield"
/delay 65
/call EquipPet
/call cast "Symbol of Ancient Summoning" item
/delay 35
/call cast "Symbol of Ancient Summoning" item
/delay 35
/call cast "Elemental Fury"
/delay 53
/call cast "Staff of Elemental Essence" item
/delay 10
/loadspells "Raid Pet - Fire"
/return
Sub SumPet
/echo Summoning a pet to kill with!!
/memspell 8 "Child of Water"
/delay 15
/call cast "Child of Water"
/return
Sub ClickRodWithCheck
:nolookingatself
/target myself
/delay 8
/if (${FindItem[${item}].InvSlot}==0) {
/call cast "Magi`kot's Pants of Convergence" item
/delay 2
/autoinv
}
/call cast "Rod of Mystical Transvergance" item
/return
Sub EquipPet
|
| Summon the toys and inventory
|
/loadspell "Pet Toys - Staves"
/delay 65
/call cast "Summon Crystal Belt"
/delay 62
/autoinv
/call cast "Summon Staff of the North Wind"
/delay 62
/autoinv
/call cast "Summon Staff of the North Wind"
/delay 62
/autoinv
/call cast "Muzzle of Mardu"
/delay 62
/autoinv
|
| Give toys to pet
|
/target ${Me.Pet}
/delay 4
/Call GetItem "Crystal Belt"
| Open Trade window with pet
:opentrade
/click left target
/delay 4
/if (!${Window[GiveWnd].Open}) /goto :opentrade
/Call GetItem "North Wind"
/notify GiveWnd GVW_MyItemSlot1 leftmouseup
/delay 8
/Call GetItem "North Wind"
/notify GiveWnd GVW_MyItemSlot2 leftmouseup
/delay 8
/Call GetItem "Muzzle"
/notify GiveWnd GVW_MyItemSlot3 leftmouseup
/delay 8
/notify GiveWnd GVW_Give_Button leftmouseup
/return
Sub WaitCursor(slot, pack)
/declare item local
/declare timeout timer 5
/varset item ${Cursor.ID}
/if (${Defined[pack]}) /goto :waitloop2
:waitloop1
/echo Waitloop1 ${slot} ${pack}
/nomod /itemnotify ${slot} leftmouseup
/if ((${item} == ${Cursor.ID}) && (${timeout} > 0)) /goto :waitloop1
/goto :donewaiting
:waitloop2
|/Echo Waitloop2 ${slot} ${pack}
/nomod /itemnotify in ${pack} ${slot} leftmouseup
/if ((${item} == ${Cursor.ID}) && (${timeout} > 0)) /goto :waitloop2
:donewaiting
/return
Sub GetItem(item, equipslot)
/declare inventoryslot int local
/declare pack local
/declare packslot int local
/declare leaveopen int local 0
/declare packnumber int local 0
/declare leavetwisting int local 0
/varset inventoryslot ${FindItem[${item}].InvSlot}
/if (!${inventoryslot}) /goto :notfound
:packcountloop
/if (${inventoryslot}>250 && ${inventoryslot}<331) {
/varset packnumber ${Math.Calc[${packnumber}+1]}
/varset inventoryslot ${Math.Calc[${inventoryslot}-10]}
/goto :packcountloop
}
/if (${packnumber} > 0) {
/varset pack pack${packnumber}
/varset packslot ${Math.Calc[${inventoryslot}-240]}
/goto :foundit
}
:notinpack
/goto :end
:foundit
/echo Found IT '${FindItem[${item}].Name}'
/if (!${Window[${pack}].Open}) {
/nomod /itemnotify ${pack} rightmouseup
/varset leaveopen 0
}
/call WaitCursor ${packslot} ${pack}
/goto :end
:notfound
/echo ${item} not found in inventory.
:end
/if (${leaveopen} == 0) /nomod /itemnotify ${pack} rightmouseup
/return
I added 2 lines to it complete the process.
Changed:
Code: Select all
#include magefunctions.inc
sub main(pet)
Code: Select all
/if (${pet.Equal[pet]}) /call RezNewPet
this way either i run (/mac rez) or i run (/mac rez pet) depending on which i want to do. More automation to come as i add other mage specific features.
ToDo:
1) Automated Malo without other actions (one that keeps trying til its done, THEN announces it).