Project 2002 - Very Basic Necro Assist Macro

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!

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:
Removed some awkward subs, changed the order things are called, made a separate mana call, removed anything not PoP era related. Commented out the lich section, since I usually run an enchanter around with me. No sense losing HP if I dont have to just yet.
 
Project 2002 - Very Basic Necro Assist Macro

Users who are viewing this thread

Back
Top
Cart