- Joined
- Oct 5, 2012
- RedCents
- 2,324¢
Wife likes to play Necromancer. While she's at work/ busy I like to keep her character with me in groups for exp. So rather than manually manage her character like some sort of savage, I did my best to fix up a macro and add a few things that have been galling me.
Hope this helps anyone playing P2002!
Hope this helps anyone playing P2002!
Rich (BB code):
#include spell_routines.inc
#event petreset "#*#has been slain#*#"
Sub Main
|----Edit your spell names here----
/declare Dot1 string outer "Dooming Darkness"
/declare Dot2 string outer "Venom of the Snake"
/declare Dot3 string outer "Boil Blood"
/declare Dot4 string outer "Heart Flutter"
/declare Lifetap string outer "Siphon Life"
/declare Lichh string outer "NULL"
/declare PetSpell string outer "Invoke Shadow"
|--End Edit
/declare PetAttacking int outer 0
/varset PetAttacking 0
/declare DotTimer1 timer outer 0
/declare DotTimer2 timer outer 0
/declare DotTimer3 timer outer 0
/declare DotTimer4 timer outer 0
/declare LichTimer timer outer 0
/declare MainAssist string outer ${Target.CleanName}
/declare AssistAt int outer 96
/declare AssistAtDis int outer 100
|Name of the AA"
/declare AA1 outer "Wake the Dead"
/declare AA1Timer timer outer 0m
|This is to declare the reuse
/declare AA1T outer 9m
|this is the aa number, do /aa list all to get it
/declare AA1S outer "163"
/declare AA2 outer "Mend Companion"
/declare AA2Timer timer outer 0m
/declare AA2T outer 36m
/declare AA2S outer "58"
|----Set your main loop and call your subs here----
:MainLoop
/doevents
/if (!${Target.ID} || ${Target.Type.Equal[PC]} || ${Target.Type.Equal[CORPSE]} || ${Target.PctHPs} > ${AssistAt} || ${Target.Distance} > ${AssistAtDis}) /goto :RestLoop
/if (${Target.ID} && ${Target.Distance} < ${AssistAtDis} && ${Target.PctHPs} < ${AssistAt} && !${Me.Combat} && !${Target.Type.Equal[PC]} && !${Target.Type.Equal[CORPSE]}) /goto :CombatLoop
/goto :MainLoop
:CombatLoop
/doevents
/call PetAttack
/call DPS
/call Med
/goto :MainLoop
:RestLoop
/doevents
/call MakePet
|/call Lich
/call Med
|/call AA1
|/call AA2
/assist ${MainAssist}
/delay 7
/goto :MainLoop
|----Set your DPS commands and parameters----
Sub DPS
/if (${Me.Feigning}) /return
/if (${Me.Casting.ID}) /return
/if (${Me.Moving}) /return
/if (${DotTimer1}==0) /goto :Dot1
/if (${DotTimer2}==0) /goto :Dot2
/if (${DotTimer3}==0) /goto :Dot3
/if (${DotTimer4}==0) /goto :Dot4
/if (${DotTimer1}>0 && ${DotTimer2}>0 && ${DotTimer3}>0 && ${DotTimer4}>0) /call cast ${Lifetap}
/return
|----Dot1----
:Dot1
/call cast ${Dot1}
/if (${Macro.Return.Equal[CAST_SUCCESS]}) {
/varset DotTimer1 1154
}
/if (${Macro.Return.Equal[CAST_SUCCESS]}) {
/g [ %T ] is DoTed with ${Dot1}
}
/return
|----Dot2----
:Dot2
/call cast ${Dot2}
/if (${Macro.Return.Equal[CAST_SUCCESS]}) {
/varset DotTimer2 1154
}
/if (${Macro.Return.Equal[CAST_SUCCESS]}) {
/g [ %T ] is DoTed with ${Dot2}
}
/return
|----Dot3----
:Dot3
/call cast ${Dot3}
/if (${Macro.Return.Equal[CAST_SUCCESS]}) {
/varset DotTimer3 1154
}
/if (${Macro.Return.Equal[CAST_SUCCESS]}) {
/g [ %T ] is DoTed with ${Dot3}
}
/return
|----Dot4----
:Dot4
/call cast ${Dot4}
/if (${Macro.Return.Equal[CAST_SUCCESS]}) {
/varset DotTimer4 1154
}
/if (${Macro.Return.Equal[CAST_SUCCESS]}) {
/g [ %T ] is DoTed with ${Dot4}
}
/return
Sub MakePet
/if (${Me.Feigning}) /return
/if (${Me.Casting.ID}) /return
/if (${Me.Moving}) /return
/if (!${Me.Pet.ID}) /call SummonPet
/return
Sub SummonPet
/echo Making Pet
/call cast ${PetSpell} gem8 -maxtries|3
/delay 5s
/return
Sub PetAttack
/if (${PetAttacking}==0) {
/varset PetAttacking 1
/pet attack
}
/return
Sub Lich
/if (${Me.Feigning}) /return
/if (${Me.Casting.ID}) /return
/if (!${Me.Buff[Death's Entombment Rk. II].ID}) /goto :lich
/return
:lich
/if (${LichTimer} == 0) {
/call cast ${Lichh} gem1 3s
/delay 1
/varset LichTimer 60s
}
/return
Sub Med
/if (!${Me.Sitting}&&!${Me.Moving}&&!${Me.Casting.ID}&&${Me.PctMana}<100) {
/delay 5
/sit on
}
/return
Sub AA1
/if (${Me.Feigning}) /return
/if (${Me.Casting.ID}) /return
/if (${Me.Moving}) /return
/if (${Target.Level}>74 && ${Target.PctHPs}<98 && ${Target.Type.Equal[NPC]} && ${Target.Distance}<100) {
/call Cast ${AA1S} alt
/delay 1s
/varset AA1Timer ${AA2T}
}
/return
Sub AA2
/if (${Me.Feigning}) /return
/if (${Me.Casting.ID}) /return
/if (${Me.Moving}) /return
/if (${Me.Pet.ID} && ${Me.Pet.PctHPs}<=20) {
/call Cast ${AA2S} alt
/delay 1s
/varset AA2Timer ${AA2T}
}
/return
sub event_petreset
/if (${PetAttacking}==1) {
/varset PetAttacking 0
}
/return
Last edited:


