- Joined
- Dec 12, 2007
- Messages
- 3,956
- Reaction score
- 49
- Points
- 38
Ok, I have good news and bad news. The updated Dot routine i made is pretty nice and works with everything in my other macros.
good news: it works well for me in other macros.
bad news: this hackjob should work for you.. but it might need a couple more tweaks.. this is entirely untested within this necro macro:
you should only need to
1. backup your current macro.
2. Copy and paste this overtop the current Sub Dot
good news: it works well for me in other macros.
bad news: this hackjob should work for you.. but it might need a couple more tweaks.. this is entirely untested within this necro macro:
you should only need to
1. backup your current macro.
2. Copy and paste this overtop the current Sub Dot
Code:
Sub Dot
/if (${Me.Casting.ID} || ${Me.Moving} || ${Me.Invis} || ${Me.Feigning}||${IgnoreList.Find[${Spawn[${Target.CleanName}]}]}) /return
/if (!${Defined[DotAmt]}) /declare DotAmt int outer
/if (!${Defined[EchoAnnounce]}) /declare EchoAnnounce bool outer TRUE
/varset DotAmt ${DotTotal}
/if ((${Target.Named}||${Target.Name.Find[#]}) && ${TarID}==${Target.ID}) /varset DotAmt ${DotTotalIfNamed}
/if (${Target.ID} && ${Target.Type.Equal[NPC]}) {
/if (${Me.Song[${GoM}].ID} && ${Me.CurrentMana}>=${Spell[${GoMSpell}].Mana} && ${Me.SpellReady[${GoMSpell}]} && ${Target.Distance}<=${Spell[${GoMSpell}].Range} && ${Target.LineOfSight}) {
/call Cast "${GoMSpell}" ${GoMSpellGem}
/varcalc FDC ${FDC}+1
}
/declare i int local
/for i 1 to ${DotAmt} {
/if (${Spell[${Dot{i}].ResistType}ImmuneList.Find[${Spawn[${Target.CleanName}]}]}) /return
/if (!${DotOn${i}} && ${Target.PctHPs}<=${DotStartAt} && ${Target.PctHPs}>=${DotStopAt}) {
/if (${DotMaxTries${i}}>${DotResisted${i}} && ${Me.CurrentMana}>=${Spell[${Dot${i}}].Mana} && (${Me.SpellReady[${Dot${i}}]}||${Me.AltAbilityReady[${Dot${i}}]}||!${FindItem[${Dot${i}}].Timer} && ${FindItem[${Dot${i}}].InvSlot}) && ${Target.Distance}<=${Spell[${Dot${i}}].Range} && ${Target.LineOfSight}) {
/call Cast "${Dot${i}}" ${DotGem${i}}
/if (${Plugin[MQ2CEcho].Name.Equal[MQ2CEcho]} && ${EchoAnnounce} && ${Spell[${Dot${i}}].ResistType.Equal[Fire]}) /cechob \arDot${i}: ${Dot${i}}
/if (${Plugin[MQ2CEcho].Name.Equal[MQ2CEcho]} && ${EchoAnnounce} && ${Spell[${Dot${i}}].ResistType.Equal[Poison]}) /cechob \agDot${i}: ${Dot${i}}
/if (${Plugin[MQ2CEcho].Name.Equal[MQ2CEcho]} && ${EchoAnnounce} && ${Spell[${Dot${i}}].ResistType.Equal[Magic]}) /cechob \awDot${i}: ${Dot${i}}
/if (${Plugin[MQ2CEcho].Name.Equal[MQ2CEcho]} && ${EchoAnnounce} && ${Spell[${Dot${i}}].ResistType.Equal[Disease]}) /cechob \ayDot${i}: ${Dot${i}}
/if (${Plugin[MQ2CEcho].Name.Equal[MQ2CEcho]} && ${EchoAnnounce} && ${Spell[${Dot${i}}].ResistType.NotEqual[Magic]} && ${Spell[${Dot${i}}].ResistType.NotEqual[Fire]} && ${Spell[${Dot${i}}].ResistType.NotEqual[Poison]} && ${Spell[${Dot${i}}].ResistType.NotEqual[Disease]}) /cechob \a-wDot${i}: ${Dot${i}}
/if (!${Plugin[MQ2CEcho].Name.Equal[MQ2CEcho]} && ${EchoAnnounce}) /echo Dot${i}: ${Dot${i}}
/if (${Macro.Return.Equal[CAST_SUCCESS]} || ${Macro.Return.Equal[CAST_IMMUNE]}) {
/varcalc FDC ${FDC}+1
/varset DotOn${i} TRUE
}
}
}
}
/next i
}
/return
Last edited: