(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).



