Rich (BB code):
#event DropCharm "#*#charm spell#*#"
#event EXP2 "You gain party experience!!"
#event EXP "You gain experience!!"
Sub Main
/combat off
/combat save
/declare KiteMob int outer 0
/declare Charmed int outer 0
/declare MyTargetID int outer 0
/declare MyPetID int outer 0
/declare InvisPct int outer 55
/declare InvisSong int outer 13
/declare CharmSong int outer 7
/declare SwamCount int outer 8
/declare StopSwarm int outer 2
/declare ReCharm int outer 0
/declare EXP int outer 0
/declare HealSong int outer 6
/declare HealPct int outer 75
/declare DotOne int outer 2
/declare DotTwo int outer 3
/declare DotThree int outer 4
/declare DotFour int outer 5
:MainLoop
/doevents
/if (${Target.Level}>57) {
/twist off
/tar npc next
}
/if (${SpawnCount[radius 150]}<=${StopSwarm}) /call WaitForMobs
/nomodkey /keypress forward hold
/if (!${Me.Pet.ID}) /call Charming
/goto :MainLoop
/return
Sub Event_EXP
/varset MyTargetID 0
/varset MyPetID 0
/varset ReCharm 0
/varset EXP 1
/varset KiteMob 0
/varset Charmed 0
/return
Sub Event_EXP2
/varset MyTargetID 0
/varset MyPetID 0
/varset ReCharm 0
/varset EXP 1
/varset KiteMob 0
/varset Charmed 0
/return
Sub Event_DropCharm
/if (${Target.PctHPs}>${InvisPct}) /varset ReCharm 1
/return
Sub WaitingForCharmDrop
:CharmDrop
/if (!${Me.Pet.ID} && ${Target.PctHPs}>=${InvisPct}) /return
/if (${ReCharm}==1 && ${Target.PctHPs}>=${InvisPct}) /return
/doevents
/if (${Target.PctHPs}<=${InvisPct}) {
/squelch /twist ${InvisSong}
/nomodkey /keypress forward hold
/delay 5s
/twist ${DotOne} ${DotTwo} ${DotThree} ${DotFour}
/varset KiteMob 1
/return
}
/goto :CharmDrop
/return
Sub Charmed
/if (${Target.ID}==${Me.Pet.ID}) {
/target id ${MyTargetID} notid ${Me.ID}
/pet attack
/delay 2
/target id ${MyPetID} notid ${Me.ID}
}
/doevents
/return
Sub KiteMob
/target ID ${MyPetID}
/squelch /twist ${DotOne} ${DotTwo} ${DotThree} ${DotFour}
:Doevent
/doevents
/if (${KiteMob}==1)/goto :Doevent
/return
Sub WaitForMobs
:WaitForMobs
/nomodkey /keypress forward hold
/doevents
/if (${SpawnCount[radius 150]}>=${SwamCount}) /return
/goto :WaitForMobs
/return
Sub Charming
/target npc radius 150 notid ${Me.ID}
/if (${Target.Level}>57) {
/twist off
/tar npc next
}
/varset MyPetID ${Target.ID}
/target npc next radius 150 notid ${Me.ID}
/varset MyTargetID ${Target.ID}
/target id ${MyPetID} notid ${Me.ID}
/squelch /twist off
/echo Charming a ${Target.CleanName}
/squelch /twist ${CharmSong}
/delay 4s
/varset ReCharm 0
/call RunSong
/if (!${Me.Pet.ID}) /return
/call Charmed
/call WaitingForCharmDrop
/if (${KiteMob}==1) /call KitingMob
/return
Sub RunSong
/if (${Me.PctHPs}<=${HealPct}) {
/squelch /twist ${HealSong} ${RunSong}
} else {
/nomodkey /keypress forward hold
/delay 4s
}
/return
Sub KitingMob
:kiting
/doevents
/if (${KiteMob}==1) /goto :kiting
/return
This is what I got:
Using Composer's Greaves for Run Song
and Tiny Cloak of Darkest Night for Invis Song
This works great as long as you get invis clicked before the mob dies. I have 3 things that I need help with and been trying wierd combinations of stuff, but I've had like 0 sucess.
How would I make it so that if the mobs kill my pet because I didnt get invis off in time that it would clear the PetID and start over just as if I did get exp sucessfully. The other thing I'm trying to do is that if I run out of mana to charm kite that it will just chant kite mobs down till I get like 80% mana again then start charming again.
Was toying with
Rich (BB code):
#Event Mana "Insufficient Mana to cast this spell!"
Sub Event_Mana
/goto :kite
/return
:kite
/tar npc radius 150
/twist 2 3 4 5
/if (!${Target.ID}) /goto :kite
/if (${Me.PctMana}>80) /goto :MainLoop
Which seems to work once in awhile but most the time i get a bunch of lame errors, but I was wondering if there was a more efficent way of doing this, or the whole macro in general. The pet dying to mobs thing is really what is hosing me atm.
Also would like to add a charm check with target lvl > 57 target a new one before wasiting mana/precious proximity agro on uncharmable mobs.