Puller Macro

Villageidiot

Captain Douchebag
Joined
Jan 4, 2005
Messages
3,198
Reaction score
7
Points
0
Ok i've decided to post the edited version of the puller mac that fry posted.

I'd like to post this as a work in progress and hope that others can help by using it and telling me what they would like changed/added or what bugs they get when using it.

I know a lot of this code is old and outdated but i have used this quite a bit and works pretty damn good for me. I'm somewhat new to macro's and don't really know how to rewrite the whole damn thing. But i'm trying my best to learn as I go. Please bear with me and help me help you.

Here is the original thread,
http://www.mmobugs.com/forums/everquest-macroquest2-macros-huds-and-uis/15-auto-puller-macro.html

Here is the version i use.
 

Attachments

  • pull.mac
    23.4 KB · Views: 488
  • PullItems.ini
    89 bytes · Views: 317
  • PullLoot.ini
    165 bytes · Views: 299
Nice Mac But

This is from a diff pulling mac but is the same error hopeing to fix both any ideas?
 

Attachments

  • EQ000021.bmp
    3 MB · Views: 263
I had that same thing come up with the #<J10 or wtf ever it was. I never could pinpoint the cause of it, but after working on it for hours, I D/L'd a new compile and it worked just fine.
 
Ok how can I get it to target a npc's pet? As it stands now it will not attack the pets of the npc's.

I cut out the loot sub and added a range 1 85 in the mac to be able to cut out the target/killing of certain lvl mobs when i need to. I had the 1 85 set to 79 85 and thought since the npc pet is lower than that that would be why it would not target the pet. but when I lowered it to 1 85 still nothing. And I took it out still will not attack the pets.


Any help would be greatly appreciated.
 
I had that same thing come up with the #<J10 or wtf ever it was. I never could pinpoint the cause of it, but after working on it for hours, I D/L'd a new compile and it worked just fine.

its a calculations check that errors out typically in zones that have flying mobs.
 
my version

the only problem i'm having with this mac, is if i pull multiple mobs when current target dies he moves to the "camp spot" and then turns and tries to pull the mob that is already attacking him, it's a minor problem-as long as the tank can take a few rounds of combat in the back, anyway to get past it? i added a /if (${Me.Combat} /call combatsub but to no avail... maybe i'm missing something else. anyhow here it is



Code:
#turbo 10 
#Event Slain "#*# slain#*#" 
#Event Zoned "LOADING, PLEASE WAIT..." 
#Event ItemSet "[MQ2] ItemSet#*#" 
#Event ItemBounce "[MQ2] ItemBounce#*#" 
#Event ItemCast "[MQ2] ItemCast#*#" 

Sub Main 

   |------------------------------------------------------------ 
   |How far would you like to target a mob? 
   |------------------------------------------------------------ 
   /declare RV_MaxRadius        int outer  600
   |------------------------------------------------------------ 
   |How far is the fast movement range? 
   |------------------------------------------------------------ 
   /declare RV_FastRange        int outer  10 
   |------------------------------------------------------------ 
   |How far is the maximum combat range? 
   |------------------------------------------------------------ 
   /declare RV_RangeMax         int outer  80 
   |------------------------------------------------------------ 
   |How far is the minimum combat range? 
   |------------------------------------------------------------ 
   /declare RV_RangeMin         int outer  20 
   |------------------------------------------------------------ 
   |What is the minimum Z Value of mobs I should target? 
   |------------------------------------------------------------ 
   /declare RV_MinZRange        int outer  -1000
   |------------------------------------------------------------ 
   |What is the maximum Z Value of mobs I should target? 
   |------------------------------------------------------------ 
   /declare RV_MaxZRange        int outer  -480
   |------------------------------------------------------------ 
   |Loot Array Information. 
   |------------------------------------------------------------
   /declare MedAt int outer 20
   /call ReadINI PullLoot.ini "${Zone.Name}" Loot 
   /if (!${Defined[RV_LootArray]}) { 
      /echo No Loot Array Created... 
   } 
   |------------------------------------------------------------ 
   |Variables that you don't need to worry about. 
   |------------------------------------------------------------ 
   /declare RV_MyTargetID       int outer  0 
   /declare RV_MyTargetName     string outer 
   /declare RV_MyTargetDead     int outer  0 
   /declare RV_InvalidTargetID  int outer  0 
   /declare RV_HasTarget        int outer  0 
   /declare RV_RandomWait       int outer  0 
   /declare RV_LootSlot         int outer  0 
   /declare RV_CheckLook        int outer  0 
   /declare RV_Fighting         int outer  0 
   /declare RV_TargetDead       int outer  0 
   /declare RV_MyXLOC           int outer  0 
   /declare RV_MyYLOC           int outer  0 
   /declare RV_ObstacleCount    int outer  0 
   /declare RV_hitcount         int outer  0 
   /declare RV_healcheck        int outer  1 
   /declare RT_MyXLOC           int outer  ${Me.X} 
   /declare RT_MyyLOC           int outer  ${Me.Y} 
   /declare SnareAt             int outer  83
   
   /declare lastevent string outer None 
   /declare CheckBuffs int outer 0 
   /declare i int outer 
   /declare ialias string outer None 
   /declare doIclick bool outer FALSE 
   /declare bouncenum int outer 1 
   /declare ibounce string outer None 
   /declare itemspellname string outer None 
   /declare clicktimer timer outer 0 
   /squelch /alias /iset /echo ItemSet 
   /squelch /alias /ibounce /echo ItemBounce 
   /squelch /alias /iclick /echo ItemCast 
    
   /varset CheckBuffs 1 

   :Start 
      /doevents 
      /call GMCheck 
      /call GetTarget 
      /if (${RV_HasTarget}) /call Pull 
      /if (${RV_HasTarget}) /call CombatSub 
      /call ResetSub 
      /call MoveToLoc ${RT_MyyLOC} ${RT_MyXLOC} 
      /goto :Start 
/return 

|-------------------------------------------------------------------------------- 
|SUB: Reading from an INI File 
|-------------------------------------------------------------------------------- 
Sub ReadINI(FileName,Loot,ArrayType) 
   /echo Attempting to Read Information from ${FileName}... 
   /declare nValues     int local  1 
   /declare nArray      int local  0 
   /declare KeySet      string local  ${Ini[${FileName}]} 
   /if (${Ini[${FileName},Loot,-1,NO].Equal[NO]}) { 
      /echo "${SectionName}" is not a Valid Section for FILE:${FileName}, ending macro... 
      /delay 1s 
      /return 
   } 
   :CounterLoop 
      /if (${String[${Ini[${FileName},Loot,${ArrayType}${nValues}]}].Equal[null]}) { 
         /varcalc nValues ${nValues}-1 
         /goto :MakeArray 
      } 
      /varcalc nValues ${nValues}+1 
      /goto :CounterLoop 
   :MakeArray 
      /if (!${nValues}) /return 
      /if (${FileName.Equal["PullLoot.ini"]}&&${nValues}>0) { 
         /echo Declaring Loot Array... 
         /declare RV_LootArray[${nValues}]  string outer 
         /declare RV_LootStats[${nValues}]  string outer 
      } 
      /for nArray 1 to ${nValues} 
      /if (${FileName.Equal["PullLoot.ini"]}) { 
         /varset RV_LootArray[${nArray}] ${Ini[${FileName},Loot,${ArrayType}${nArray}]} 
         /varset RV_LootStats[${nArray}] 0 
      } 
      /next nArray 
      /echo Information Read Successfully from ${FileName}... 
      /delay 1s 
/return 

|-------------------------------------------------------------------------------- 
|SUB: GM Check 
|-------------------------------------------------------------------------------- 
Sub GMCheck 
   /if (${Spawn[gm].ID}) { 
      /beep 
      /beep 
      /beep 
      /echo GM has entered the zone! 
      /echo FUCK HIM but ending the macro... 
      /keypress forward 
      /keypress back 
      /quit 
      /endmacro 
   } 
/return 

|-------------------------------------------------------------------------------- 
|SUB: Aquire Target 
|-------------------------------------------------------------------------------- 
Sub GetTarget
   /if (${Me.Combat}) /call Combatsub 
   /doevents 
   /declare SpawnTimer         int local 
   /declare RV_CurrentRadius   int local 
   /declare RV_TargetSub       int local 
   /echo Looking for Close Range Mobs
   :Acquire 
      /doevents 
      /hidecorpse all
      /if (!${Me.Mount.ID} && ${Me.State.Equal[STAND]} && ${Me.CombatState.NotEqual[COMBAT]}) /alt activate 571
      /melee on
      /target Victimized
      /delay 2s
      /if (${Me.PctMana}<${MedAt}) /delay 3s
      /if (${Me.Casting.ID}) /delay 3s
      /clea
      /if (${SpawnCount[pc radius 300]} > 7) { 
      /echo Waiting for people to leave area within 700 units
      /delay 1m
      /goto :GetTarget
} 
      /delay 3s
      /for RV_CurrentRadius 100 to ${RV_MaxRadius} step 5 
      /squelch /target radius ${RV_CurrentRadius} npc 
      /varset RV_MyTargetID ${Target.ID} 
      /varset RV_MyTargetDead 0 
      /if (${Target.ID}) { 
         /if (${Int[${Target.Z}]}<${RV_MinZRange}) { 
            /echo Mob is BELOW Min Z Range, picking another... 
            /varset RV_InvalidTargetID ${Target.ID} 
            /call ResetSub 
            /goto :Acquire 
         } 
         /if (${Int[${Target.Z}]}>${RV_MaxZRange}) { 
            /echo Mob is ABOVE Max Z Range, picking another... 
            /varset RV_InvalidTargetID ${Target.ID} 
            /call ResetSub 
            /goto :Acquire 
         } 
         /varset RV_HasTarget 1 
         /varset RV_MyTargetName ${Target.Name} 
         /echo Acquired ${Target.Name} at range ${Int[${Target.Distance}]} 
         /return 
      } 
      /if (${CheckBuffs}>0) { 
         /echo Checking Buffs 
         /call ItemCast 
         /varset CheckBuffs 0 
         /echo Aquiring Long Range Mobs 
      } 
      /next RV_CurrentRadius
      /goto :Acquire 
/return 

|-------------------------------------------------------------------------------- 
|SUB: Pull 
|-------------------------------------------------------------------------------- 
Sub Pull 
   /doevents 
   /echo Pulling Mob
   /if (${Me.Mount.ID}) /dismount
   /if (${Me.Casting.ID}) /delay 4s
   /casting 68239
   /if (!${Me.Combat}) /melee off
   /declare TargDist float local 
   :PullLoop 
      /doevents 
      /call MoveToMob 
      /if (!${Target.ID}) /return 
      /face fast 
      /if (${Target.PctHPs}==100 && !${Me.TargetOfTarget.Name.Equal[${Me}]}) /goto :PullLoop 
      /if (${Target.PctHPs}<95 && !${Me.TargetOfTarget.Name.Equal[${Me}]}) /return 
      /call MoveToLoc ${RT_MyyLOC} ${RT_MyXLOC} 
      /if (!${Target.ID}) /return 
      /face fast 
   :Engage 
      /varset TargDist ${Math.Distance[${Target.Y},${Target.X},0:${Me.Y},${Me.X},0]} 
      /if ( ${TargDist}<30 ) /return 
      /delay 1s 
      /goto :Engage 
/return 

|-------------------------------------------------------------------------------- 
|SUB: Move to Mob 
|-------------------------------------------------------------------------------- 
Sub MoveToMob 
   /doevents 
   /varset RV_MyXLOC ${Int[${Me.X}]} 
   /varset RV_MyYLOC ${Int[${Me.Y}]} 
   /varset RV_ObstacleCount 0    
   :MovementLoop 
      /doevents 
      /if (!${Target.ID}) /return 
      /face fast 
      /varcalc RV_ObstacleCount ${RV_ObstacleCount}+1 
      /if (${Int[${Target.Distance}]}>${RV_FastRange}) /keypress forward hold 
      /if (${Int[${Target.Distance}]}<${RV_FastRange}&&${Int[${Target.Distance}]}>${RV_RangeMax}) /keypress forward 
      /if (${Int[${Target.Distance}]}<${RV_RangeMin}) /keypress back 
      /if (${Int[${Target.Distance}]}>${RV_FastRange}) /goto :MovementLoop 
/return 

|-------------------------------------------------------------------------------- 
|SUB: Move To Location 
|-------------------------------------------------------------------------------- 
Sub MoveToLoc(MoveToY, MoveToX) 
   /doevents 
   /declare running int local 
   /declare distanceNow float local 
   /declare distanceBefore float local 
   /declare distanceModifier int local 
   /declare distanceTimer timer 15 
   /varset running 0 
   /varset distanceBefore ${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]} 
   /varset distanceModifier 1 
   /echo Moving to Location: ${MoveToY}, ${MoveToX}. 
   /echo Distance: ${distanceBefore} 
   :moveToLocation 
      /doevents 
      /face fast nolook loc ${MoveToY},${MoveToX} 
      /if (${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]}<10) { 
         /keypress forward 
         /return 
      } 
      /if (${distanceTimer}==0) { 
         /if (${Me.Sneaking}) { 
            /varset distanceModifier 2 
         } else { 
            /varset distanceModifier 1 
         } 
         /varset distanceNow ${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]} 
         
         /varset distanceBefore ${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]} 
         /varset distanceTimer 15 
      } 
      /if (${running}==0) { 
         /keypress forward 
            /if (${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]}>10) { 
               /varset running 1 
               /keypress forward hold 
            } 
      } else { 
         /if (${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]}<11) { 
            /varset running 0 
            /keypress forward 
         } 
      } 
      /goto :moveToLocation 
/return 



|-------------------------------------------------------------------------------- 
|SUB: Combat 
|-------------------------------------------------------------------------------- 
Sub CombatSub 
   /doevents 
   /varset RV_Fighting 1 
   /varset RV_TargetDead 0 
   /echo Attacking Mob NOW! 
   :CombatLoop 
      /if (!${Me.Combat}) /attack on 
      /if (!${Target.ID}) /return
      /pet attack 
      /melee on
      /call MoveToMob 
      /call SpecialIT 
      /if (!${RV_TargetDead}) /goto :CombatLoop 
      /doevents  
/return 

|-------------------------------------------------------------------------------- 
|SUB: Special Combat 
|-------------------------------------------------------------------------------- 
Sub SpecialIt 
   /doevents 
   /declare TempID    int inner  0 
   /if (${Target.Distance}<=75 && ${Me.TargetOfTarget.Name.Equal[${Me}]}) { 
      /melee on 
   }
   
   /if (${Me.Combat} && !${Me.TargetOfTarget.Name.Equal[${Me}]}) { /sc "Revile"
/return 

|-------------------------------------------------------------------------------- 
|SUB: Item Buffs 
|-------------------------------------------------------------------------------- 
Sub ItemCast 
   /doevents 
   /declare ItemDelay int inner 0 
   /varset ItemDelay 1 
   /varset i 1 
   :ItemCheckLoop 
      /doevents 
      /varset ialias ${Ini[PullItems.ini].Arg[${i},|]} 
      /if (${ialias.NotEqual[NULL]}) { 
         /if (${Ini[PullItems.ini,${ialias},KeepUp].Equal[FALSE]}) /goto :NextItem 
         /varset bouncenum 1 
         /varset doIclick TRUE 
         :BounceCheckLoop 
            /varset ibounce ${Ini[PullItems.ini,${ialias},BounceOff${bouncenum}]} 
               /if (${ibounce.NotEqual[NULL]}) { 
                  /if (${ibounce.Equal[${Me.Buff[${ibounce}]}]}) /varset doIclick FALSE 
               } else /goto :DoneBounceChecks 
            /varcalc bouncenum ${bouncenum}+1 
            /goto :BounceCheckLoop 
         :DoneBounceChecks 
            /varset itemspellname ${FindItem[${Ini[PullItems.ini,${ialias},FullName]}].Spell} 
            /if (${itemspellname.Equal[${Me.Buff[${itemspellname}]}]}) /varset doIclick FALSE 
            /squelch /target myself 
            /if (${doIclick}) { 
               /if (${ItemDelay}==1) { 
                  /delay 1s 
                  /varset ItemDelay 0 
               } 
            } 
            /if (${doIclick}) /docommand /iclick ${ialias} 
            /if (${clicktimer}) /goto :DoneItemChecks 
         :NextItem 
            /varcalc i ${i}+1 
      } else /goto :DoneItemChecks 
      /goto :ItemCheckLoop 
      :DoneItemChecks 
         /doevents 
         /squelch /target clear 
/return 

Sub Event_ItemSet(string Line) 
   /varset lastevent Event_ItemSet 
   /if (!${Line.Arg[5].Length} || ${Line.Arg[6].Length}) { 
      /if (${verbosity}>=0) /${channel} ** Improper use of /iset 
      /if (${verbosity}>=0) /${channel} -- /iset <itemalias> keepup|nokeepup <"Item Name"> 
      /if (${verbosity}>=0) /${channel} -- For example: 
      /if (${verbosity}>=0) /${channel} -- /iset gobby keepup "Shrunken Goblin Skull Earring" 
      /return 
   } 
   /ini "PullItems.ini" "${Line.Arg[3]}" "FullName" "${Line.Arg[5]}"  
   /ini "PullItems.ini" "${Line.Arg[3]}" "KeepUp" "${If[${Line.Arg[4].Equal[keepup]},TRUE,FALSE]}" 
   /if (${verbosity}>=0) /${channel} ** ${Line.Arg[5]} (KeepUp=${If[${Line.Arg[4].Equal[keepup]},TRUE,FALSE]}) updated in INI! 
/return 

Sub Event_ItemBounce(string Line) 
   /varset lastevent Event_ItemBounce 
   /if (!${Line.Arg[4].Length}) { 
      /if (${verbosity}>=0) /${channel} ** Improper use of /ibounce 
      /if (${verbosity}>=0) /${channel} -- /ibounce <itemalias> "Some Spell Name" 
      /if (${verbosity}>=0) /${channel} -- For example: 
      /if (${verbosity}>=0) /${channel} -- /ibounce gobby "Strength of Tunare" 
      /return 
   } 
   /if (!${Ini[PullItems.ini,${Line.Arg[3]}].Length}) { 
      /if (${verbosity}>=0) /${channel} ** [${Line.Arg[3]}] not in INI file! 
      /return 
   } 
   /declare bindex int local 1 
   :CheckNextKey 
      /if (${Ini[PullItems.ini,${Line.Arg[3]},BounceOff${bindex}].Length}) { 
         /varcalc bindex ${bindex}+1 
         /goto :CheckNextKey 
      } else { 
      /ini "PullItems.ini" "${Line.Arg[3]}" "BounceOff${bindex}" "${Line.Arg[4]}"  
      /if (${verbosity}>=0) /${channel} ** Added "${Line.Arg[4]}" to [${Line.Arg[3]}]'s bounce list 
      } 
/return 

Sub Event_ItemCast(string Line) 
   /varset lastevent Event_ItemCast 
   /if (!${Line.Arg[3].Length}) { 
      /if (${verbosity}>=0) /${channel} ** Improper use of /icast 
      /if (${verbosity}>=0) /${channel} -- /icast <itemalias> 
      /if (${verbosity}>=0) /${channel} -- For example: 
      /if (${verbosity}>=0) /${channel} -- /icast gobby 
      /return 
   } 
   /if (!${Ini[PullItems.ini,${Line.Arg[3]}].Length}) { 
      /if (${verbosity}>=0) /${channel} ** [${Line.Arg[3]}] not in INI file! 
      /return 
   } 
   /declare fullname string local ${Ini[PullItems.ini,${Line.Arg[3]},FullName]} 
   /if (${verbosity}>=1) /${channel} ** Attempting to use: ${fullname} 
   /if (${FindItem[${fullname}].InvSlot.Pack}) { 
      :OpenPack 
         /if (!${Window[${FindItem[${fullname}].InvSlot.Pack.Name}].Open}) { 
            /itemnotify ${FindItem[${fullname}].InvSlot.Pack.Name} rightmouseup 
            /delay 2 
            /goto :OpenPack 
         } 
         /declare camefrom ${FindItem[${fullname}].InvSlot} 
      :GrabItem 
         /if (!${Cursor.ID}) { 
            /itemnotify ${InvSlot[${camefrom}]} leftmouseup 
            /delay 2 
            /goto :GrabItem 
         } 
         /declare clickyID int local ${Cursor.ID} 
         /declare wornat int local ${Cursor.WornSlot[1]} 
      :SwapFirst 
         /if (${Cursor.ID}==${clickyID}) { 
            /itemnotify ${InvSlot[${wornat}]} leftmouseup 
            /delay 2 
            /goto :SwapFirst 
         } 
         /delay 2 
         /if (${verbosity}>=1) /${channel} ** Clicking: ${fullname} 
         /declare previousID ${Cursor.ID} 
         /itemnotify ${InvSlot[${wornat}]} rightmouseup 
      :SwapAgain 
         /if (${Cursor.ID}==${previousID}) { 
            /itemnotify ${InvSlot[${wornat}]} leftmouseup 
            /delay 2 
            /goto :SwapAgain 
         } 
      :PutItBack 
         /if (${Cursor.ID}==${clickyID}) { 
            /itemnotify ${InvSlot[${camefrom}]} leftmouseup 
            /delay 2 
            /goto :PutItBack 
         } 
      :SummonedCheck 
         /if (${Cursor.ID}) { 
            /autoinv 
            /delay 2 
            /goto :SummonedCheck 
         }    
      :ClosePack 
         /if (${Window[${InvSlot[${camefrom}].Pack.Name}].Open}) { 
            /itemnotify ${InvSlot[${camefrom}].Pack.Name} rightmouseup 
         /delay 2 
         /goto :ClosePack 
         } 
   } else { 
   /if (${FindItem[${fullname}].InvSlot}) { 
      /if (${verbosity}>=1) /${channel} ** Clicking: ${fullname} 
      /itemnotify ${FindItem[${fullname}].InvSlot} rightmouseup 
      /delay 2 
   } else { 
   /if (${verbosity}>=0) /${channel} ** "${fullname}" not found! 
      } 
   } 
   :CastLoop 
      /delay 1 
      /squelch /target radius 100 npc 
      /if (${Target.ID}) { 
         /if (${Target.CleanName.Equal[${Me.Name}]}) { 
            /squelch /target clear 
            /goto :CloseMobCheck 
         } 
         /keypress duck 
         /delay 1 
         /keypress duck 
         /delay 1 
         /return 
      } 
   :CloseMobCheck 
      /if (${Me.Casting.ID}) /goto :CastLoop 
/return 



|-------------------------------------------------------------------------------- 
|SUB: Zoned 
|-------------------------------------------------------------------------------- 
Sub Event_Zoned 
  /echo Zoned 
  /delay 60s 
  /quit 
  /endmacro 

|-------------------------------------------------------------------------------- 
|SUB: Looting 
|-------------------------------------------------------------------------------- 
Sub LootMob 
   /doevents 
   /declare LootSlot    int inner  0 
   /declare LootCheck   int inner  0 
   /declare LootTotal   int inner  0 
   /keypress forward 
   /keypress back 
   /fastdrop on 
   /lootn never 
   /Echo Looting 
   /loot 
   /varset CheckBuffs 1 
   /delay 1s 
   /if (!${Corpse.Items}) { 
      /echo NO LOOT! Cheap Bastard! 
      /notify LootWnd DoneButton leftmouseup 
      /return 
   } else { 
      /varset LootTotal ${Corpse.Items} 
      /for LootSlot 1 to ${LootTotal} 
      /itemnotify loot${LootSlot} leftmouseup 
      /delay 1s 
      /if (${RV_LootAllItems}) { 
         /echo Keeping a ${Cursor.Name}... WOOT! 
         /autoinventory 
         /delay 1s 
      } else { 
         /for LootCheck 1 to ${RV_LootArray.Size} 
            /if (${Cursor.Name.Find[${RV_LootArray[${LootCheck}]}]}) { 
               /echo Keeping a ${Cursor.Name}... WOOT! 
               /varcalc RV_LootStats[${LootCheck}] ${RV_LootStats[${LootCheck}]}+1 
               /autoinventory 
               /delay 1s 
            } 
         /next LootCheck 
      } 
      /if (${Cursor.ID}) { 
         /echo Destroying a ${Cursor.Name}... 
         /destroy 
         /delay 1s 
      } 
   /next LootSlot 
   /notify LootWnd DoneButton leftmouseup 
   } 
/return 

|-------------------------------------------------------------------------------- 
|SUB: Reset 
|-------------------------------------------------------------------------------- 
Sub ResetSub 
   /doevents 
   /varset RV_HasTarget 0 
   /varset RV_TargetDead 0 
   /varset RV_Fighting 0 
/return
 
i got it!

{me.combat} is referring to /attack on

i was thinking it was combat state so i looked thru the macro and others and found

${Me.CombatState.NotEqual[COMBAT]} and just took out the word "Not" and it's working fine!
 
I tried it but cant really use it atm

in pofire, mobs on different levels screw it, like in C2
in paw, targetable gnoll corpse are screwing it

can we use dd to pull instead of mele hits ?
 
There a way to make this macro pull along a recorded path instead? Path generated via MQ2AdvPath plugin.
 
There a way to make this macro pull along a recorded path instead? Path generated via MQ2AdvPath plugin.

Ive thought about that as well. What did you do to get it to pull along a certain path?
 
Ive thought about that as well. What did you do to get it to pull along a certain path?

Used the autokill.mac macro (in trash can section) with AdvPath.inc and AdvPath2.inc, along with a macro to actually record paths using those inc files from the MQ2 VIP section. Got a decent setup in Lost Notebook instance for some quick AA's for my 70 rogue... and I've got one for beza too, but it needs some polishing.
 
The Scouting Beza or whatever instance doesn't, which is the one I use.. I assumed none of the instances for beza do. But the mobs have some hitpoints & it's still worthwhile for me to macro it. A full outside clear takes about 35-ish minutes for me... so it's not a 24/7 AFK type thing, but more of a "get xp while still getting actual WORK done" thing.. hehe.

EDIT: To give credit where due, JimJohnson was the one who pointed out the resources I needed to get it up & running! All of what you need is in this site + MQ2 VIP section on MQ2 site.
 
cannot find that in the trashcan.. can you post the macro here? am looking for a similiar thing
 
$$$ mac, but i have a request that would make it leeter, i was wondering if you could add in where you can avoid certain npc's as long as you add their names to an ini.
 
hmm.. made a path file with macro from mq2vip forums.. loaded it into the autokill macro.. but whenever i run the macro says no pathfile detected. confused. am i missing a step?

from autokill.mac
Code:
/declare IniFile          string outer Autokill_${Me.Name}.ini
/declare PathFile         string outer pathfile_sssru.ini

pathfile piece (too long to post whole thing)
Code:
[sssru]
0=1068.32 -801.43 224.19
1=1068.06 -780.13 224.19
2=1067.78 -757.30 224.19
3=1068.20 -732.18 224.19
4=1068.75 -709.42 224.19
5=1069.25 -687.21 224.19