Having issues targeting

larir

New member
Joined
Feb 17, 2008
Messages
10
Reaction score
0
Points
0
Location
Milwaukee
I am having problems targeting mobs running hunter macro. I have zero skills writing macros and can't even understand what to change in them . I tried making the target range larger ...it was set at 5000...but this didnt work. any ideas please?sorry if this was asked and answered elsewhere. i looked and couldn't find anything.
 
Post your mac.
this from the hunter mac found in the complile
Code:
/declare UseWarp             int outer  1
   |------------------------------------------------------------ 
   |Should the macro use MQ2Navigate for movement, if 0, then use moveto? 
   |------------------------------------------------------------ 
   /declare UseNavi             int outer  0 
   |------------------------------------------------------------ 
   |How many times should aquire target fail before delaying? 
   |------------------------------------------------------------ 
   /declare RV_FailMax          int outer  3 
   |------------------------------------------------------------ 
   |How far would you like to target a mob? 
   |------------------------------------------------------------ 
   /declare RV_MaxRadius        int outer 350000
   |------------------------------------------------------------ 
   |How far is the combat range? 
   |------------------------------------------------------------ 
   /declare RV_Range            int outer 50
   |------------------------------------------------------------ 
   |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  1000 
   |------------------------------------------------------------ 
   |Should I loot all items? 
   |------------------------------------------------------------ 
   /declare RV_LootAllItems     int outer  0 
   |------------------------------------------------------------ 
   |Should I display stats? 
   |------------------------------------------------------------ 
   /declare RV_DisplayStats     int outer  1 
   |------------------------------------------------------------ 
   |Loot Array Information. 
   |------------------------------------------------------------ 
   /call ReadINI HunterMob.ini "${Zone.Name}" Mob 
   /if (!${Defined[RV_MobArray]}) { 
      /echo Mob Array Creation Error, ending macro... 
      /endmacro 
   } 
   |------------------------------------------------------------ 
   |Mob Array Information. 
   |------------------------------------------------------------ 
   /call ReadINI HunterLoot.ini "${Zone.Name}" Loot 
   /if (!${Defined[RV_LootArray]}) { 
      /echo No Loot Array Created... 
   } 
   |------------------------------------------------------------ 
   |Variables that you don't need to worry about. 
   |------------------------------------------------------------ 
   /declare RV_FailCounter      int outer  0 
   /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_FastRange        int outer 
   /declare RV_RangeMax         int outer 
   /declare RV_RangeMin         int outer 
   /varcalc RV_FastRange ${RV_Range}+3 
   /varcalc RV_RangeMax ${RV_Range}+1 
   /varcalc RV_RangeMin ${RV_Range}-1 
   :Start 
   /doevents 
   /call GMCheck 
   /call GetTarget 
   :KillAdds 
   /if (${RV_HasTarget}) /call MoveToMob 
   /if (${RV_HasTarget}) /call CombatSub 
   /if (${RV_HasTarget}) /call MoveToMob 
   /if (${RV_HasTarget} && (${Defined[RV_LootArray]} || ${RV_LootAllItems})) {
     /call LootMob 
     /look center
   }
   /if (${RV_DisplayStats}) /call DisplayStats 
   /call ResetSub 
 
   /if (${Target.ID}) { 
      /echo Looks like something is attacking us, killing it... 
      /delay 1s 
      /varset RV_HasTarget 1 
      /varset RV_Fighting 1 
      /goto :KillAdds 
   } 
 
   /goto :Start 
 
/return 
|-------------------------------------------------------------------------------- 
|SUB: Aquire Target 
|-------------------------------------------------------------------------------- 
Sub GetTarget 
   /declare RV_CurrentRadius   int local 
   /declare RV_TargetSub   int local 
   /declare BadMeTarget int local 0
   /declare BadPCTarget int local 0
   :Acquire 
   /if (${Target.Type.Equal[Corpse]}) /squelch /target clear
   /for RV_CurrentRadius 100 to ${RV_MaxRadius} step 100 
      /for RV_TargetSub 1 to ${RV_MobArray.Size} 
         :BadTarget
         /if (${Target.ID}==${Me.ID}) {
             /if (!${BadMeTarget}) /echo Hunter.mac: You have yourself on target, pausing macro until /tar clear
             /varset BadMeTarget 1
             /delay 1s
             /goto :BadTarget
         }
         /if (${Target.Type.Equal[PC]}) {
             /if (!${BadPCTarget}) /echo Hunter.mac: You have a PC on target, pausing macro until /tar clear
             /varset BadPCTarget 1
             /delay 1s
             /goto :BadTarget
         }
         /varset BadMeTarget 0
         /varset BadPCTarget 0
|         /echo Will use: /target radius ${RV_CurrentRadius} nopcnear notid ${RV_InvalidTargetID} npc "${RV_MobArray[${RV_TargetSub}]}" 
         /squelch /target radius ${RV_CurrentRadius} nopcnear notid ${RV_InvalidTargetID} npc "${RV_MobArray[${RV_TargetSub}]}" 
         /delay 3 ${Target.ID}
         /varset RV_MyTargetID ${Target.ID} 
         /varset RV_MyTargetDead 0 
         /if (${Target.ID}) { 
            /if (${Int[${Target.PctHPs}]}<33) {
 
Last edited by a moderator:
Put the code in between Code brackets,

And I don't think that is all of the mac.
 
Code:
| Hunter Macro 
| Hunter.mac 
| Author      : robdawg 
| Version     :  just Edited for a one thing. 
| Usage       : /macro Hunter 
| Description : Modified just a little..
| Updated by  : Lord_Vyper
 
#turbo 10 
Sub Main 
   |------------------------------------------------------------ 
   |Should the macro use warp for movement, if 0, then use moveto or navi (next setting)? 
   |------------------------------------------------------------ 
   /declare UseWarp             int outer  1
   |------------------------------------------------------------ 
   |Should the macro use MQ2Navigate for movement, if 0, then use moveto? 
   |------------------------------------------------------------ 
   /declare UseNavi             int outer  0 
   |------------------------------------------------------------ 
   |How many times should aquire target fail before delaying? 
   |------------------------------------------------------------ 
   /declare RV_FailMax          int outer  3 
   |------------------------------------------------------------ 
   |How far would you like to target a mob? 
   |------------------------------------------------------------ 
   /declare RV_MaxRadius        int outer 350000
   |------------------------------------------------------------ 
   |How far is the combat range? 
   |------------------------------------------------------------ 
   /declare RV_Range            int outer 50
   |------------------------------------------------------------ 
   |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  1000 
   |------------------------------------------------------------ 
   |Should I loot all items? 
   |------------------------------------------------------------ 
   /declare RV_LootAllItems     int outer  0 
   |------------------------------------------------------------ 
   |Should I display stats? 
   |------------------------------------------------------------ 
   /declare RV_DisplayStats     int outer  1 
   |------------------------------------------------------------ 
   |Loot Array Information. 
   |------------------------------------------------------------ 
   /call ReadINI HunterMob.ini "${Zone.Name}" Mob 
   /if (!${Defined[RV_MobArray]}) { 
      /echo Mob Array Creation Error, ending macro... 
      /endmacro 
   } 
   |------------------------------------------------------------ 
   |Mob Array Information. 
   |------------------------------------------------------------ 
   /call ReadINI HunterLoot.ini "${Zone.Name}" Loot 
   /if (!${Defined[RV_LootArray]}) { 
      /echo No Loot Array Created... 
   } 
   |------------------------------------------------------------ 
   |Variables that you don't need to worry about. 
   |------------------------------------------------------------ 
   /declare RV_FailCounter      int outer  0 
   /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_FastRange        int outer 
   /declare RV_RangeMax         int outer 
   /declare RV_RangeMin         int outer 
   /varcalc RV_FastRange ${RV_Range}+3 
   /varcalc RV_RangeMax ${RV_Range}+1 
   /varcalc RV_RangeMin ${RV_Range}-1 
   :Start 
   /doevents 
   /call GMCheck 
   /call GetTarget 
   :KillAdds 
   /if (${RV_HasTarget}) /call MoveToMob 
   /if (${RV_HasTarget}) /call CombatSub 
   /if (${RV_HasTarget}) /call MoveToMob 
   /if (${RV_HasTarget} && (${Defined[RV_LootArray]} || ${RV_LootAllItems})) {
     /call LootMob 
     /look center
   }
   /if (${RV_DisplayStats}) /call DisplayStats 
   /call ResetSub 
 
   /if (${Target.ID}) { 
      /echo Looks like something is attacking us, killing it... 
      /delay 1s 
      /varset RV_HasTarget 1 
      /varset RV_Fighting 1 
      /goto :KillAdds 
   } 
 
   /goto :Start 
 
/return 
|-------------------------------------------------------------------------------- 
|SUB: Aquire Target 
|-------------------------------------------------------------------------------- 
Sub GetTarget 
   /declare RV_CurrentRadius   int local 
   /declare RV_TargetSub   int local 
   /declare BadMeTarget int local 0
   /declare BadPCTarget int local 0
   :Acquire 
   /if (${Target.Type.Equal[Corpse]}) /squelch /target clear
   /for RV_CurrentRadius 100 to ${RV_MaxRadius} step 100 
      /for RV_TargetSub 1 to ${RV_MobArray.Size} 
         :BadTarget
         /if (${Target.ID}==${Me.ID}) {
             /if (!${BadMeTarget}) /echo Hunter.mac: You have yourself on target, pausing macro until /tar clear
             /varset BadMeTarget 1
             /delay 1s
             /goto :BadTarget
         }
         /if (${Target.Type.Equal[PC]}) {
             /if (!${BadPCTarget}) /echo Hunter.mac: You have a PC on target, pausing macro until /tar clear
             /varset BadPCTarget 1
             /delay 1s
             /goto :BadTarget
         }
         /varset BadMeTarget 0
         /varset BadPCTarget 0
|         /echo Will use: /target radius ${RV_CurrentRadius} nopcnear notid ${RV_InvalidTargetID} npc "${RV_MobArray[${RV_TargetSub}]}" 
         /squelch /target radius ${RV_CurrentRadius} nopcnear notid ${RV_InvalidTargetID} npc "${RV_MobArray[${RV_TargetSub}]}" 
         /delay 3 ${Target.ID}
         /varset RV_MyTargetID ${Target.ID} 
         /varset RV_MyTargetDead 0 
         /if (${Target.ID}) { 
            /if (${Int[${Target.PctHPs}]}<33) { 
               /echo Mob NOT a Full Health, picking another... 
               /varset RV_InvalidTargetID ${Target.ID} 
               /call ResetSub 
               /goto :Acquire 
            } 
            /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.CleanName} 
            /echo Acquired ${Target.CleanName} at range ${Int[${Target.Distance}]} 
            /return 
         } 
      /next RV_TargetSub 
      /delay 2 
   /next RV_CurrentRadius 

   /if (!${Target.ID}) { 
      /delay 2s 
      /varcalc RV_FailCounter ${RV_FailCounter}+1 
      /echo Failed to Acquire Target in Range ${RV_MaxRadius} ${RV_FailCounter} Time(s) 
      /if (${RV_FailCounter}>=${RV_FailMax}) { 
         /echo Waiting for Respawns, Resetting Failure Counter... 
         /delay 60s 
         /varset RV_FailCounter 0 
      } 
      /goto :Acquire 
   } 
/return 
|-------------------------------------------------------------------------------- 
|SUB: Moving 
|-------------------------------------------------------------------------------- 
Sub MoveToMob 
   /varset RV_MyXLOC ${Int[${Me.X}]} 
   /varset RV_MyYLOC ${Int[${Me.Y}]} 
   /declare RV_DistanceTimer timer 15 
   /declare MovementStarted int local 0
   /doevents 
   /varset MovementStarted 0
   :MovementLoop 
   /if (${MovementStarted}) /doevents
	 /if (${Int[${Target.Distance}]}>${RV_FastRange}) {
	   /if (${UseWarp}) {
	     /if (${Plugin[MQ2MMOWarp].Version}) {
	       /if (!${MovementStarted}) /echo Warping to ${Target.CleanName}
	       /varset MovementStarted 1
	       /if (!${Me.Moving}) /warp t
	     } else {
	       /echo Hunter.mac movement error - you need MQ2MMOWarp loaded before you can define UseWarp!
	       /endmac
	     }
	   } else {
	     /if (${Plugin[MQ2Navigation].Version} && ${UseNavi}) {
    	   /if (!${MovementStarted}) /echo Navigating to ${Target.CleanName}
	       /varset MovementStarted 1
	       /if (!${Me.Moving}) {
	         /navi stop
	         /navi target
	       }
	     } else {
	       /if (${Plugin[MQ2MoveUtils].Version}) {
    	     /if (!${MovementStarted}) /echo Moving to ${Target.CleanName}
	         /if (!${MoveTo.Moving}) {
	           /moveto id
	         }
  	         /varset MovementStarted 1
	       } else {
	         /if (!${MovementStarted}) {
	           /echo Hunter.mac movement error - you need MQ2Navigation or MQ2MoveUtils loaded, or MQ2MMOWarp plus define UseWarp!
	           /endmac
	         }
	       }
	     }
	   }
	 } 
   /if (${Int[${Target.Distance}]}>${RV_FastRange}) /goto :MovementLoop 
 /return
 
|-------------------------------------------------------------------------------- 
|SUB: Combat 
|-------------------------------------------------------------------------------- 
Sub CombatSub 
   /echo Attacking Mob NOW! 
   /varset RV_Fighting 1 
   /varset RV_TargetDead 0 
    
   :CombatLoop 
   /doevents 
   /attack on 
    
   /call MoveToMob 
   /call SpecialIT 

   /if (!${Target.ID}) {
 /if (${Target.Type.Equal[Corpse]}) /squelch /target clear 
      /attack off 
      /keypress forward 
      /keypress back 
      
      /varset RV_TargetDead 1 
      /varset RV_Fighting 0 
      /delay 1s 
      /target radius 30 corpse 
      /delay 1s 
      /if (!${Target.ID}) { 
         /call ResetSub 
         /return 
      } 
      /face fast 
   } 
   /if (!${RV_TargetDead}) { 
      /goto :CombatLoop 
   } 
/return 

|-------------------------------------------------------------------------------- 
|SUB: Special Combat 
|-------------------------------------------------------------------------------- 
Sub SpecialIt 

/return 
 
|-------------------------------------------------------------------------------- 
|SUB: Looting 
|-------------------------------------------------------------------------------- 
Sub LootMob 
   /declare LootSlot    int inner  0 
   /declare LootCheck   int inner  0 
   /declare LootTotal   int inner  0 
 
   /face fast 
 
   /keypress forward 
   /keypress back 
 
   /fastdrop on 
   /lootn never 
   /delay 2s 
   /loot 
   | Don't make this too low, or ${Corpse.Items} will be wrong, since win has not populated
   /delay 2s
   /if (!${Corpse.Items}) { 
      /echo NO LOOT! Cheap Bastard! 
      /return 
   } 
   /varset LootTotal ${Corpse.Items} 
   /for LootSlot 1 to ${LootTotal} 
      /timed 1 /shift /itemnotify ${Corpse.Item[${LootSlot}].InvSlot} leftmouseup

      /delay 3s ${Cursor.ID}
      /if (${RV_LootAllItems}) { 
         /echo Keeping a ${Cursor.Name}... WOOT! 
         /timed 1 /autoinv
         /delay 3s !${Cursor.ID}
      } 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 
               /timed 1 /autoinv
               /delay 3s !${Cursor.ID}
            } 
         /next LootCheck 
      } 
      /if (${Cursor.ID}) { 
         /echo Destroying a ${Cursor.Name}... 
         /timed 1 /destroy
         /delay 3s !${Cursor.ID}
      } 
   /next LootSlot 
 
   /notify LootWnd DoneButton leftmouseup 
   /delay 2s !${Window[LootWnd].Open}
 
/return 
|-------------------------------------------------------------------------------- 
|SUB: Reset 
|-------------------------------------------------------------------------------- 
Sub ResetSub 
   /keypress esc 
   /keypress esc 
   /keypress esc 
   /keypress esc 
 
   /varset RV_HasTarget 0 
   /varset RV_TargetDead 0 
   /varset RV_Fighting 0 
 
/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: Reading from an INI File 
|-------------------------------------------------------------------------------- 
Sub ReadINI(FileName,SectionName,ArrayType) 
   /echo Attempting to Read Section "${SectionName}" Zone Information from ${FileName}... 
   /delay 1s 
 
   /if (${Ini[${FileName},${SectionName},-1,NO].Equal[NO]}) { 
      /echo "${SectionName}" is not a Valid Section for FILE:${FileName}, ending macro... 
      /delay 1s 
      /return 
   } 
   /declare nValues     int local  1 
   /declare nArray      int local  0 
   /declare KeySet      string local  ${Ini[${FileName},${SectionName}]} 
   :CounterLoop 
   /if (!${KeySet.Arg[${nValues},|].Length}) { 
      /varcalc nValues ${nValues}-1 
      /goto :MakeArray 
   } 
   /varcalc nValues ${nValues}+1 
   /goto :CounterLoop 
   :MakeArray 
   /if (!${nValues}) /return 
   /if (${FileName.Equal["HunterMob.ini"]}&&${nValues}>0) { 
      /echo Declaring Mob Array... 
      /declare RV_MobArray[${nValues}]   string outer 
      /declare RV_MobStats[${nValues}]   string outer 
   } 
   /if (${FileName.Equal["HunterLoot.ini"]}&&${nValues}>0) { 
      /echo Declaring Loot Array... 
      /declare RV_LootArray[${nValues}]  string outer 
      /declare RV_LootStats[${nValues}]  string outer 
   } 
   /for nArray 1 to ${nValues} 
      /echo Checking '${FileName}' for zone '${SectionName}'
      /if (${FileName.Equal["HunterMob.ini"]}) { 
         /varset RV_MobArray[${nArray}] ${Ini[${FileName},${SectionName},${ArrayType}${nArray}]} 
         /varset RV_MobStats[${nArray}] 0 
         /echo Set RV_MobArray${nArray} to '${RV_MobArray[${nArray}]}'
      } 
      /if (${FileName.Equal["HunterLoot.ini"]}) { 
         /varset RV_LootArray[${nArray}] ${Ini[${FileName},${SectionName},${ArrayType}${nArray}]} 
         /varset RV_LootStats[${nArray}] 0 
         /echo Set RV_LootArray${nArray} to '${RV_LootArray[${nArray}]}'
      } 
   /next nArray 
 
   /echo "${SectionName}" Zone Information Read Successfully from ${FileName}... 
   /delay 1s 
 
/return 
|-------------------------------------------------------------------------------- 
|SUB: Display Stats 
|-------------------------------------------------------------------------------- 
Sub DisplayStats 
   /declare nArray  int local 
 
   /if (${Defined[RV_LootArray]}) { 
      /for nArray 1 to ${RV_LootArray.Size} 
         /echo ${Int[${RV_LootStats[${nArray}]}]} ${RV_LootArray[${nArray}]}'s 
      /next nArray 
   } 
 
/return
 
That is the whole mac. I was wondering how to get an auto target to work.This works fine if i manually target a mob, but i was hopeing to have it auto target so i can afk while running it.
 
Code:
 /squelch /target radius ${RV_CurrentRadius} nopcnear notid ${RV_InvalidTargetID} npc "${RV_MobArray[${RV_TargetSub}]}"

This is the target line, it looks like it's pulling it's list of mobs from an ini. Did you fill out an ini with the list of mob names you want it to kill?
 
No i haven't. I have no idea how to do that. I am almost completely computer illiterate. If someone can show me how i would appreciate it. I can fill in the mob names if someone can give some sort of template to follow.
 
My best guess is:

1.) Create a file called "HunterMob.ini" in the same directory as your macro.
2.) Open the file in a text editor

3.) Make it look something like this

[Enter Long Zone Name Here]
Mob1=mobnamehere
Mob2=mobnamehere

and so on.