Hunter mac and /advloot EQEMU RoF2

crickety

Lifetimer
Joined
Apr 24, 2007
Messages
106
Reaction score
0
Points
16
I am trying to figure out how to disable hunter mac from controlling looting as I do not like the way it handles looting.

I would like to incorporate /advloot into hunter.mac to handle the loot process if this is possible, as I love the way it handles looting.

I am hoping someone can show to me how to go about this...

I will explain the difference between the two looting procedures.... both examples are rough but pretty spot on in terms of what happens.. I will include macro and ini's...if they are needed

Hunter.mac
If you have hunter.mac set to loot, it will loot everything and destroy whatever is not set in your loot.ini for keeping...

Example Mob 1 dies... it has a paw, an eye, an ear, a tongue on it for loot. I have it defined in my hunterloot.ini for the hunter.mac to keep a tongue. When the loot call is made the macro will: loot the paw (then destroy it), loot the eye (then destroy it), loot the ear (then destroy it), loot the tongue and keep it.

compared to

MQ2advloot
If you setup a hot key for /advloot when you press the hotkey it will ONLY loot what you have set up in the mq2advloot.ini to be kept when looting.

Example Mob 2 dies... it has a paw, an eye, an ear, a tongue on it for loot. I have it defined in my mq2advloot.ini to keep a tongue. When the loot call is made with /advloot it will: ignore the paw, ignore the eye, ignore the ear, then loot the tongue and keep it.

The whole looting process is tons faster when using /advloot versus what happens during the loot call in hunter.mac

I hope I make sense with this long rambling post, thanks for taking a look...

Hunter.mac
Spoiler:
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
#include IgnoreList.inc
Sub Main 
   /hidecorpse looted
   /fastdrop on 
   /lootn never 
   
   /declare IniFile string outer Mob_Ignore_List.ini
   |------------------------------------------------------------ 
   |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  5000
   |------------------------------------------------------------ 
   |How far is the combat range? 
   |------------------------------------------------------------ 
   /declare RV_Range            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  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.ShortName}" Mob 
   /if (!${Defined[RV_MobArray]}) { 
      /echo Mob Array Creation Error, ending macro... 
      /endmacro 
   } 
   |------------------------------------------------------------ 
   |Mob Array Information. 
   |------------------------------------------------------------ 
   /call ReadINI HunterLoot.ini "${Zone.ShortName}" Loot 
   /if (!${Defined[RV_LootArray]}) { 
      /echo No Loot Array Created... 
   } 
   /call IgnoreLoad
   |------------------------------------------------------------ 
   |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} notid ${RV_InvalidTargetID} npc "${RV_MobArray[${RV_TargetSub}]}" 
         /squelch /target radius ${RV_CurrentRadius} 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}]}<100) { 
            |   /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 f 5
	     } 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 
 
   /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

HunterLoot.ini (for hunter.mac)
Spoiler:
Code:
| Hunter.mac Macro Trader Skiller Add In
| HunterLoot.ini
| Author      : original unknown / enhanced by xcheck
| Version     : v1.4 2006-05-01 2:30pm CST 
| Usage       : use with HunterNoWarp.mac or Hunter.mac
| Description: This is a list of Loots that drop - this is tradeskill  
|               loot - silks, pelts, etc for Antonica/Odus/Faydwer/Luclin.
|	        Use this with my HunterMob.ini and the HunterNoWarp.mac or 
|               Hunter.mac macro by robdawg.
|      
|------------------------------------------------------------ 


|[Area] Antonica


[Eastern Plains of Karana] 
Loot1=spider silk
Loot2=low quality cat pelt 
Loot3=medium quality cat pelt
Loot4=high quality cat pelt
Loot5=a venom sac
Loot6=low quality wolf skin
Loot7=medium quality wolf skin
Loot8=high quality wolf skin
Loot9=low quality cat pelt


[The Western Plains of Karana] 
Loot1=spider silk
Loot2=low quality cat pelt 
Loot3=medium quality cat pelt
Loot4=high quality cat pelt
Loot5=a venom sac
Loot6=low quality wolf skin
Loot7=medium quality wolf skin
Loot8=high quality wolf skin
Loot9=low quality cat pelt
Loot10=low quality bear skin
Loot11=medium quality bear skin
Loot12=high quality bear skin

[The Northern Plains of Karana] 
Loot1=spider silk
Loot2=low quality cat pelt 
Loot3=medium quality cat pelt
Loot4=high quality cat pelt
Loot5=a venom sac
Loot6=low quality wolf skin
Loot7=medium quality wolf skin
Loot8=high quality wolf skin
Loot9=low quality cat pelt
Loot10=low quality bear skin
Loot11=medium quality bear skin
Loot12=high quality bear skin

[southkarana] 
Loot1=spider silk
Loot2=low quality cat pelt 
Loot3=medium quality cat pelt
Loot4=high quality cat pelt
Loot5=a venom sac
Loot6=low quality wolf skin
Loot7=medium quality wolf skin
Loot8=high quality wolf skin
Loot9=low quality cat pelt
Loot10=low quality bear skin
Loot11=medium quality bear skin
Loot12=high quality bear skin
Loot13=Feathered Leggings
Loot14=Pegasus Feather Cloak
Loot15=lost circle

[East Commonlands]
Loot1=spider silk
Loot2=low quality cat pelt 
Loot3=medium quality cat pelt
Loot4=high quality cat pelt
Loot5=a venom sac
Loot6=low quality wolf skin
Loot7=medium quality wolf skin
Loot8=high quality wolf skin
Loot9=low quality cat pelt
Loot10=low quality bear skin
Loot11=medium quality bear skin
Loot12=high quality bear skin
Loot13=honeycomb
Loot14=bixie parts
Loot15=spiderling silk

[West Commonlands]
Loot1=spider silk
Loot2=low quality cat pelt 
Loot3=medium quality cat pelt
Loot4=high quality cat pelt
Loot5=a venom sac
Loot6=low quality wolf skin
Loot7=medium quality wolf skin
Loot8=high quality wolf skin
Loot9=low quality cat pelt
Loot10=low quality bear skin
Loot11=medium quality bear skin
Loot12=high quality bear skin

[Everfrost Peaks]
Loot1=spider silk
Loot2=low quality cat pelt 
Loot3=medium quality cat pelt
Loot4=high quality cat pelt
Loot5=a venom sac
Loot6=low quality wolf skin
Loot7=medium quality wolf skin
Loot8=high quality wolf skin
Loot9=low quality cat pelt
Loot10=low quality bear skin
Loot11=medium quality bear skin
Loot12=high quality bear skin
Loot13=spiderling silk
Loot14=velium

[feerrott2] 
loot1=Key
loot2=Abstruse
loot3=infused

|including this loot so you can farm hgs in rm
[Mountains of Rathe]
Loot1=Amber
Loot2=Black Pearl
Loot3=Bloodstone
Loot4=Fine Steel Dagger
Loot5=Fine Steel Great Staff
Loot6=Fine Steel Long Sword
Loot7=Fine Steel Morning Star
Loot8=Fine Steel Rapier
Loot9=Fine Steel Scimitar
Loot10=Fine Steel Spear
Loot11=Fine Steel Warhammer
Loot12=Golden Earring
Loot13=Hill Giant Toes
Loot14=Jasper
Loot15=Emerald
Loot16=Pearl
Loot17=Peridot
Loot18=Rune of Concussion
Loot19=Rune of Howling
Loot20=Rune of Rallos Zek
Loot21=Rune of Solusek Ro
Loot22=Rune of the Catalyst
Loot23=Star Rose Quartz
Loot24=Steel Torque
Loot25=Topaz
Loot26=Words of Dimension
Loot27=Words of Duration
Loot28=Words of Neglect
Loot29=Words of the Suffering

|[Area] Odus

[Stonebrunt Mountains]
Loot1=low quality cat pelt 
Loot2=medium quality cat pelt
Loot3=high quality cat pelt

[Area] Kunark

[sebilis]
loot1=essence


[dreadlands]
loot1=monocle


|[Area] Velious

[Crystal Caverns]
Loot1=Crystalline Silk
Loot2=Block Of Velium
Loot3=Large Brick Of Velium
Loot4=Small Brick Of Velium
Loot5=Small Piece Of Velium
Loot6=Crystalline Belt
Loot7=Velium Dagger
Loot8=Velium Great Staff
Loot9=Velium Hammer
Loot10=Velium Long Sword
Loot11=Velium Morning Star
Loot12=Velium Rapier
Loot13=Velium Scimitar
Loot14=Velium Short Blade
Loot15=Velium Short Sword
Loot16=Velium Spear


|[Area] Luclin

[Marus Seru]
Loot1=iron oxide
Loot2=low quality rockhopper hide
Loot3=medium quality rockhopper hide
Loot4=high quality rockhopper hide
Loot5=superb rockhopper hide
Loot6=flawless rockhopper hide

[Shar Vahl]
Loot1=shadeling silk

[The Greater Faydark]
loot1=Pixie Dust

[The Lesser Faydark]
loot1=Pixie Dust

[Dragonscale Hills]
loot1=Dragon Brood Crypt Key

[wallofslaughter]
loot1=jacinth

[Riftseekers' Sanctum]
loot1=Dragon Brood Crypt Key

[Rathe Council Chamber]
loot1=Dragon Brood Crypt Key

[Wall of Slaughter]
loot1=Dragon Brood Crypt Key
loot2=Platinum Pieces

[skyfire]
loot1=immortal

[The Grounds]
loot1=Dragon Brood Crypt Key
loot2=Recondite
loot3=Thulian
loot4=diamond

[oldbloodfield]
loot1=dragon
loot2=barisode
loot3=corundus
loot4=phylopin
loot5=hollowed
loot6=

[takb]
loot1=Bayle Mark
loot2=Gold Token
loot3=Silver Token
loot4=Dream Mote
loot5=Orchillium shard
loot6=Mckenzie's Special Brew
loot7=Faycetum
loot8=Ebon Crystal
loot9=Brellium Token
loot10=punishment
loot11=lichfang
loot12=stasis
loot13=root
loot14=command
loot15=fetish
loot16=key
loot17=frigid
loot18=benevo
loot19=charity
loot20=deep
loot21=spectral
loot22=frostguard
loot23=drakesblood
loot24=stonegirdle
loot25=faceplate
loot26=spaulders
loot27=stonehewn
loot28=astral
loot29=tower shield
loot30=shouldermail
loot31=amice
loot32=golem-construct
loot33=rebellion
loot34=suppression
loot35=draconic
loot36=drakelord
loot37=drakestone
loot38=dragonscales
loot39=zealotry


[thundercrest]
loot1=Grand
loot2=key

[thenest]
loot1=key

MQ2advloot.ini

Spoiler:
Code:
[Settings]
AllowWarp=True
AllowStealth=True
EchoDestroy=True
EchoKeep=True
EchoLootMSG=True
EchoLoreMSG=True
ItemsDelay=100
CorpseOpenDelay=100
MinValue=150000
DefaultAction=Ignore
MinValueDefaultAction=Ignore
NoDrop=True
MustStack=False
IgnoreDuplicateLoreCorpse=True
[Items]
Key=Keep
Key=Keep
Black Sapphire=Keep
 
Give these changes a shot. I made the edits already to the mac you posted, in case you want to just test it (it is attached to this post).

Here is the exmplanation for each.


Change the LootMob subroutine to use /advloot instead of /loot code:
Code:
Sub LootMob
   /face fast 
   /keypress forward 
   /keypress back 
   /delay 2s ${Target.Type.Equal[Corpse]}
   /advloot 
   /delay 5s !${MQAdvLoot.Active}
   /return
Untested of course, but see if that's not an ok start. If you don't want to HAVE to still have a loot ini array (since it won't use it, it'll use the ini for mq2advloot), you could comment out the parts that deal with that.

First, just comment out the stats option, since you won't be manually looting and keeping track of it in the array, so set it to 0:

Code:
/declare RV_DisplayStats     int outer  0
Then comment out these lines that read the loot entries, like so:

Code:
|   /call ReadINI HunterLoot.ini "${Zone.ShortName}" Loot 
|   /if (!${Defined[RV_LootArray]}) { 
|      /echo No Loot Array Created... 
|   }
That way it don't even bitch since you won't care.

Next, change how it calls the loot subroutine, like:

From:
Code:
   /if (${RV_HasTarget} && (${Defined[RV_LootArray]} || ${RV_LootAllItems})) {
     /call LootMob 
     /look center
   }
To:
Code:
   /if (${RV_HasTarget} && ${RV_LootAllItems}) {
     /call LootMob 
     /look center
   }
And set the option to LootAllItems (that way it gives you the option, it will use /advloot, or simply not loot, based on the setting).

Set it to 1 like:
Code:
   /declare RV_LootAllItems     int outer  1
Can try that, and tune to desired outcome if my memory sucks. :)

htw
 

Attachments

  • hunter.mac
    14.2 KB · Views: 39
Oh my sweet jesus this works awesome

Thank you soo much