Ninjaloot.inc

A forum for macro code snippets to be used in writing other macros. Post routines or .inc files here only, completed macros go to the Macro Depot. MQ2Data format only!

Moderator: MacroQuest Developers

mystikule
a snow griffon
a snow griffon
Posts: 353
Joined: Sat Jul 17, 2004 9:23 pm

Ninjaloot.inc

Post by mystikule » Fri Apr 01, 2005 11:59 pm

Will start by looting everything and building an ini file of everything looted in the zone. Loot is divided into either "Keep" or "Destroy", default being keep. Once list is built, ini file can be edited to determine Keep/Destroy.

Now builds NDItem for nodrop items encountered while looting. Change to NDKeep/NDDestroy for appriorate handling of nodrop items.

Borrowed the inventory full script from rh mac (killer job btw sir)

No collision coding present, best suited for a melee mac whereas the toon will be near the corpse upon death.

Too incorporate into a mac

#include ninjaloot.inc

/call NLPresetup Call this somewhere in your declares.

/call NLAutoloot At whatever point you want looting to take place.


Usage:
/autoloot <all|drop|nditem|off> <radius#>
/lootstatus <displays Autoloot status>

All=Will loot any item on a corpse (and add it to the ini) unless lore and character carries one already
Drop=Loots any droppable items and adds them to the ini
NDItem=Will only loot NoDrop items that are specified to be looted the ini
Off=figure it out

Code: Select all

|-NinjaLoot.inc v1.2 by Mystikule


#Event NotYourKill       "You may not loot this Corpse at this time."
#Event SetAutoLoot       "[MQ2] SetAutoLoot#*#"
#Event Autolootstatus    "[MQ2] Autoloot Status#*#"


Sub NLPresetup

  |- Make any undefined declares
  /if (!${Defined[LootINIFile]}) /declare NLLootINIFile string outer "loot.ini"
  /if (!${Defined[NLVersion]}) /declare NLVersion string outer 1.2
  /if (!${Defined[NLlootdist]}) /declare NLlootdist int outer 100
  /if (!${Defined[NLlootmode]}) /declare NLlootmode string outer

  |- Check version in ini and skip aliases if current
  /if (${Ini[${NLLootINIFile},Loot,Version].Equal[${NLVersion}]}) /call LoadAliases

  |- Declare corpseskip ID arrays
  /declare NLCorpseskip[20,2] int outer
  /declare NLTempCorpse[20] int outer

  |- If empty ini build it up
  /if (!${Ini[${NLLootINIFile},Loot,AutoLootMode].Length}) /call BuildINI

  |- Load variables from ini
  /if (${Ini[${NLLootINIFile},Loot,AutoLootMode].Length}) /varset NLlootmode ${Ini[${NLLootINIFile},Loot,AutoLootMode]} 
  /if (${Ini[${NLLootINIFile},Loot,AutoLootDistance].Length}) /varset NLlootdist ${Ini[${NLLootINIFile},Loot,AutoLootDistance]} 

  |- Echo NL status upon load
  /echo Ninjaloot.inc Loaded.
  /echo Ninjaloot Usage:
  /echo /autoloot <all|drop|nditem|off> <radius#>
  /echo /lootstatus <displays Autoloot status>
  /echo Autoloot Status 
  /if (${NLlootmode.Equal[ALL]}) /docommand /lootnodrop never
  /if (${NLlootmode.Equal[DROP]}) /docommand /lootnodrop always
  /if (${NLlootmode.Equal[NDITEM]}) /docommand /lootnodrop always
  /if (${NLlootmode.Equal[OFF]}) /docommand /lootnodrop always
/return

Sub NLAutoloot

  /doevents SetAutoLoot
  /doevents Autolootstatus

  /if (${NLlootmode.Equal[OFF]}) /return
  /if (!${Defined[lootslot]}) /declare lootslot int local
  /if (!${Defined[loottotal]}) /declare loottotal int local -1
  /if (!${Defined[w]}) /declare w int local
  /if (!${Defined[e]}) /declare e int local

  /call Updatecorpse

  |- Check for avialable corpses to loot
  /for e 1 to 20 
    /varset NLTempCorpse[${e}] ${NearestSpawn[${e},NPC Corpse radius ${NLlootdist}].ID}
  /next e
  /for e 1 to 20
    /if (${NLTempCorpse[${e}]}<=0) {
      /echo Autoloot:  No More Corpses Found
      /return
    }
  |- Check if corpse is listed in Skip array
    /for w 1 to 20
      /if (${NLTempCorpse[${e}]}==${NLCorpseskip[${w},1]}) {
        /echo Autoloot:  Skipping ${NLTempCorpse[${e}]}; Per Skip List
        /next e
      }
    /next w
  |- Test Z distance
    /if (${Spawn[${NLTempCorpse[${e}]}].DistanceZ}>50) { 
      /call Addcorpse
      /echo Autoloot:  Skipping ${NLTempCorpse[${e}]}; Z Plane out of limits
      /next e
    }
  |- Make sure Spawnid is a corpse
    /if (${Spawn[${NLTempCorpse[${e}]}].Type.NotEqual[Corpse]}) {
      /echo Autoloot:  Skipping ${NLTempCorpse[${e}]}; Not a corpse!
      /next e
    }
  |- Check if corpse is players corpse
    /if (${Spawn[${NLTempCorpse[${e}]}].Deity.ID}!=0) {
      /echo Autoloot:  Skipping ${NLTempCorpse[${e}]}; Is a PLAYERS corpse!
      /next e
    }
  |-Target corpse and begin looting
    /delay 1
    /squelch /target id ${NLTempCorpse[${e}]}
    /delay 1s ${Target.ID}==${NLTempCorpse[${e}]}
    /echo Autoloot:  Looting ${Target.CleanName}
    /delay 5s ${Target.ID}==${NLTempCorpse[${e}]}
    /if (${Target.ID}!=${NLTempCorpse[${e}]}) /next e
  |- Get 5 seconds (max) closer; warning, no detecting being stuck! 
    /face fast ${If[${Me.Underwater},,nolook]}
    /if (${Me.Buff[Summon Drogmor].ID} || ${Me.Buff[Summon Horse].ID}) /dismount  
    /keypress forward hold 
    /delay 5s ${Target.Distance}<5 
    /keypress forward 
  |- Check for full inventory 
    /if (!${Me.FreeInventory}) { 
      /beep 
      /echo Autoloot:  ** INVENTORY FULL ! 
      /varset NLlootmode OFF 
      /echo Autoloot:  ** AutoLooting is now OFF! 
      /return 
    } 
    /delay 1s 
    /loot 
    /delay 1s ${Window[LootWnd].Open}
  |- Check if unable to loot at this time
    /doevents NotYourKill
  |- Corpse with no items
    /if (!${Corpse.Items}) { 
      /echo Autoloot:  NO LOOT! Cheap Bastard! 
      /notify LootWnd DoneButton leftmouseup 
      /delay 1s !${Corpse.Open} 
      /next e
    }
  |- Get total count of items on corpse
    /varset loottotal ${Math.Calc[${Corpse.Items}]} 
  :autoxplootlag 
    /if (${loottotal}!=${Corpse.Items}) { 
      /varset loottotal ${Corpse.Items} 
      /goto :autoxplootlag 
    } 
  |- Check items on Corpse
    /for lootslot 1 to ${loottotal}
    /delay 1s ${InvSlot[loot${lootslot}].Item.ID}!=0
  |- Check if item is LORE
    /if (${InvSlot[loot${lootslot}].Item.Lore}) {
      /echo Autoloot:  Lore ITEM Found
      /if (${FindItem[${InvSlot[loot${lootslot}].Item.Name}].InvSlot}) {
        /echo Autoloot:  Skipping; Found Loreitem in Characters Inventory
        /if (${lootslot}>=${loottotal}) {
          /call Itemsleft
          /next e
        }
        /next lootslot
      }
      /if (${FindItem[${InvSlot[loot${lootslot}].Item.Name}].InvSlot.Pack}) {
        /echo Autoloot:  Skipping; Found Loreitem in Characters Bags
        /if (${lootslot}>=${loottotal}) {
          /call Itemsleft
          /next e
        } 
        /next lootslot
      }
    }
  |- Handling of NODROP items on corpse
    /if (${InvSlot[loot${lootslot}].Item.NoDrop}) {
      /echo Autoloot:  NO DROP ITEM Found
      /if (!${Ini[${NLLootINIFile},"${InvSlot[loot${lootslot}].Item.Name.Left[1]}","${InvSlot[loot${lootslot}].Item.Name}"].Length}) {
        /ini "${NLLootINIFile}" "${InvSlot[loot${lootslot}].Item.Name.Left[1]}" "${InvSlot[loot${lootslot}].Item.Name}" NDITEM
        /echo Autoloot:  Adding ${InvSlot[loot${lootslot}].Item.Name} to ${NLLootINIFile} defaulting as NDITEM
      }
      /if (${NLlootmode.Equal[DROP]}) {
        /if (${lootslot}>=${loottotal}) {
          /call Itemsleft
          /next e
        } 
        /next lootslot
      }
      /if (${NLlootmode.Equal[NDITEM]}) {
        /if (${Ini[${NLLootINIFile},"${InvSlot[loot${lootslot}].Item.Name.Left[1]}","${InvSlot[loot${lootslot}].Item.Name}"].Equal[NDKeep]}) {
          /call LootItem ${lootslot} KEEP
          /if (${lootslot}>=${loottotal}) {
            /call Itemsleft
            /next e
          }
          /next lootslot
        }
        /if (${Ini[${NLLootINIFile},"${InvSlot[loot${lootslot}].Item.Name.Left[1]}","${InvSlot[loot${lootslot}].Item.Name}"].Equal[NDDestroy]}) {
          /call LootItem ${lootslot} DESTROY
          /if (${lootslot}>=${loottotal}) {
            /call Itemsleft
            /next e
          }        
          /next lootslot
        }
        /if (${Ini[${NLLootINIFile},"${InvSlot[loot${lootslot}].Item.Name.Left[1]}","${InvSlot[loot${lootslot}].Item.Name}"].Equal[NDITEM]}) {
          /echo Autoloot:  Skipping ${InvSlot[loot${lootslot}].Item.Name} per NDITEM flag
          /if (${lootslot}>=${loottotal}) {
            /call Itemsleft
            /next e
          }
          /next lootslot
        }
      }
      /if (${NLlootmode.Equal[ALL]}) {
        /call LootItem ${lootslot} KEEP
        /if (${lootslot}>=${loottotal}) {
          /call Itemsleft
          /next e
        }
        /next lootslot
      }
    }
  |- Loot droppable items and Keep/Destroy by ini flags
    /if (!${Ini[${NLLootINIFile},"${InvSlot[loot${lootslot}].Item.Name.Left[1]}","${InvSlot[loot${lootslot}].Item.Name}"].Length}) {
      /ini "${NLLootINIFile}" "${InvSlot[loot${lootslot}].Item.Name.Left[1]}" "${InvSlot[loot${lootslot}].Item.Name}" Keep
      /echo Autoloot:  Adding ${InvSlot[loot${lootslot}].Item.Name} to ${NLLootINIFile} defaulting as Keep
    }
    /if (${Ini[${NLLootINIFile},"${InvSlot[loot${lootslot}].Item.Name.Left[1]}","${InvSlot[loot${lootslot}].Item.Name}"].Equal[Keep]}) {
      /call LootItem ${lootslot} KEEP
      /if (${lootslot}>=${loottotal}) {
        /call Itemsleft
        /next e
      }                  
      /next lootslot
    }
    /if (${Ini[${NLLootINIFile},"${InvSlot[loot${lootslot}].Item.Name.Left[1]}","${InvSlot[loot${lootslot}].Item.Name}"].Equal[Destroy]}) {
      /call LootItem ${lootslot} Destroy
      /if (${lootslot}>=${loottotal}) {
        /call Itemsleft
        /next e
      }         
      /next lootslot
    }
    /if (${lootslot}>=${loottotal}) {
      /call Itemsleft
      /next e
    }
    /next lootslot
  /next e
/return

Sub Itemsleft
  |-Link remaining items on corpse
  /if (${Corpse.Items}) {
    /notify LootWND LW_BroadcastButton leftmouseup
    /keypress enter chat
    /call Addcorpse
  }
  /notify LootWnd DoneButton leftmouseup 
  /delay 1s !${Corpse.Open}
/return

Sub Addcorpse
  /if (!${Defined[e]}) /declare e int local
  /for e 20 downto 2
    /varset NLCorpseskip[${e},1] ${NLCorpseskip[${Math.Calc[${e}-1]},1]}
    /varset NLCorpseskip[${e},2] ${NLCorpseskip[${Math.Calc[${e}-1]},2]}
  /next e
  /varset NLCorpseskip[1,1] ${Target.ID} 
  /varset NLCorpseskip[1,2] ${Math.Calc[${MacroQuest.Running}+1800000]}
/return

Sub addnotmykill
  /if (!${Defined[e]}) /declare e int local
  /for e 20 downto 2
    /if (${NLCorpseskip[${e},1]}!=0) /next e
  /varset NLCorpseskip[${e},1] ${Target.ID} 
  /varset NLCorpseskip[${e},2] ${Math.Calc[${MacroQuest.Running}+180000]}
/return

Sub Updatecorpse
  /if (!${Defined[e]}) /declare e int local
  /for e 1 to 20
    /if (!${Spawn[${NLCorpseskip[${e},1]}].ID}) /varset NLCorpseskip[${e},1] 0
    /if (${NLCorpseskip[${e},2]}<=${MacroQuest.Running} && ${NLCorpseskip[${e},1]}!=0) /varset NLCorpseskip[${e},1] 0
  /next e
/return

Sub LootItem(int lootslot, string handling)
  /if (${handling.Equal[KEEP]}) /echo Autoloot:  Keeping a ${InvSlot[loot${lootslot}].Item.Name}... WOOT!
  /if (${handling.Equal[DESTROY]}) /echo Autoloot:  Destroying a ${InvSlot[loot${lootslot}].Item.Name}... Bubbye!
  :retryloot
  /itemnotify loot${lootslot} leftmouseup 
  /if (!${Cursor.ID} && ${NLlootmode.Equal[DROP]}) {
    /if (${Window[ConfirmationDialogBox].Open}) /notify ConfirmationDialogBox No_Button leftmouseup
    /goto :retryloot
  }
  /if (!${Cursor.ID} && ${NLlootmode.NotEqual[DROP]}) {
    /if (${Window[ConfirmationDialogBox].Open}) /notify ConfirmationDialogBox Yes_Button leftmouseup
    /goto :retryloot
  }
  :NLLootItem
  /if (${handling.Equal[KEEP]}) /autoinventory
  /if (${handling.Equal[DESTROY]}) /destroy
  /if (${Cursor.ID}) /goto :NLLootItem
/return

Sub LoadAliases
  /ini "${NLLootINIFile}" Loot Version "${NLVersion}"
  /squelch /alias /autoloot /echo SetAutoLoot
  /squelch /alias /lootstatus /echo Autoloot Status
/return

Sub BuildINI
  |- Build a retarded ini, but it makes it alpha ordered
  /echo Building INI file
  /ini "${NLLootINIFile}" Loot AutoLootMode OFF
  /ini "${NLLootINIFile}" Loot AutoLootDistance 100 
  /ini "${NLLootINIFile}" A A NULL
  /ini "${NLLootINIFile}" B B NULL
  /ini "${NLLootINIFile}" C C NULL
  /ini "${NLLootINIFile}" D D NULL
  /ini "${NLLootINIFile}" E E NULL
  /ini "${NLLootINIFile}" F F NULL
  /ini "${NLLootINIFile}" G G NULL
  /ini "${NLLootINIFile}" H H NULL
  /ini "${NLLootINIFile}" I I NULL
  /ini "${NLLootINIFile}" J J NULL
  /ini "${NLLootINIFile}" K K NULL
  /ini "${NLLootINIFile}" L L NULL
  /ini "${NLLootINIFile}" M M NULL
  /ini "${NLLootINIFile}" N N NULL
  /ini "${NLLootINIFile}" O O NULL
  /ini "${NLLootINIFile}" P P NULL
  /ini "${NLLootINIFile}" Q Q NULL
  /ini "${NLLootINIFile}" R R NULL
  /ini "${NLLootINIFile}" S S NULL
  /ini "${NLLootINIFile}" T T NULL
  /ini "${NLLootINIFile}" U U NULL
  /ini "${NLLootINIFile}" V V NULL
  /ini "${NLLootINIFile}" W W NULL
  /ini "${NLLootINIFile}" X X NULL
  /ini "${NLLootINIFile}" Y Y NULL
  /ini "${NLLootINIFile}" Z Z NULL
/return

Sub Updateini
  /ini "${NLLootINIFile}" "Loot" "AutoLootMode" "${NLlootmode}" 
  /ini "${NLLootINIFile}" "Loot" "AutoLootDistance" "${NLlootdist}" 
/return

Sub Event_SetAutoLoot(string Line) 
  |- Set the new loot distance, if supplied 
  /if (${Line.Arg[4].Length}) /varset NLlootdist ${Line.Arg[4]} 
  |- Set the mode
  /if (${Line.Arg[3].Equal[ALL]}) { 
    /varset NLlootmode ALL 
    /echo ** AutoLoot ON - Will loot ALL items
    /echo ****CAUTION**** Turning off requestor for NODROP items!!!  ****CAUTION****
    /echo ** AutoLoot distance is ${NLlootdist} ft.
    /docommand /lootnodrop never
    /call Updateini
    /return
  }
  /if (${Line.Arg[3].Equal[DROP]}) { 
    /varset NLlootmode DROP 
    /echo ** AutoLoot ON - Will loot only DROPABLE items
    /echo ** AutoLoot distance is ${NLlootdist} ft. 
    /docommand /lootnodrop always 
    /call Updateini
    /return
  } 
  /if (${Line.Arg[3].Equal[NDITEM]}) { 
    /varset NLlootmode NDITEM 
    /echo ** AutoLoot ON - Will loot only SPECIFIED NO-DROP items
    /echo ** AutoLoot distance is ${NLlootdist} ft. 
    /docommand /lootnodrop always
    /call Updateini 
    /return
  } 
  /if (${Line.Arg[3].Equal[OFF]}) { 
    /varset NLlootmode OFF 
    /echo ** AutoLoot OFF - Will NOT loot any items
    /call Updateini
    /return
  }
  /echo Syntax:  
  /echo /autoloot <all|drop|nditem|off> <radius#>
  /echo Defaulting to OFF
  /varset NLlootmode OFF
  /call Updateini
/return 

Sub Event_Autolootstatus
  /if (${NLlootmode.Equal[ALL]}) {
    /echo ** AutoLoot ON - Will loot ALL items
    /echo ****CAUTION**** Turning off requestor for NODROP items!!!  ****CAUTION****
    /echo ** AutoLoot distance is ${NLlootdist} ft.
  }
  /if (${NLlootmode.Equal[DROP]}) {
    /echo ** AutoLoot ON - Will loot only DROPABLE items
    /echo ** AutoLoot distance is ${NLlootdist} ft. 
  }
  /if (${NLlootmode.Equal[NDITEM]}) {
    /echo ** AutoLoot ON - Will loot only SPECIFIED NO-DROP items
    /echo ** AutoLoot distance is ${NLlootdist} ft. 
  }
  /if (${NLlootmode.Equal[OFF]}) {
    /echo ** AutoLoot OFF - Will NOT loot any items 
  }
/return

Sub Event_NotYourKill
  /echo Autoloot:  Adding corpse to unable to loot list
  /call addnotmykill
/return
Last edited by mystikule on Wed Dec 14, 2005 6:23 pm, edited 10 times in total.

JimJohnson
a grimling bloodguard
a grimling bloodguard
Posts: 1299
Joined: Sat Oct 11, 2003 6:00 am

Post by JimJohnson » Sat Apr 02, 2005 4:00 am

dont see this declared anywere.

Code: Select all

${ninjadist}
also use the niffty code brackets.

123456ix
orc pawn
orc pawn
Posts: 20
Joined: Wed May 05, 2004 2:15 am

Post by 123456ix » Sun Apr 03, 2005 10:29 pm

Thanks for posting this, working great for me.

mystikule
a snow griffon
a snow griffon
Posts: 353
Joined: Sat Jul 17, 2004 9:23 pm

Post by mystikule » Thu Dec 08, 2005 1:36 am

Finally got enough time to get some coding done. Rewrote this to handle nodrop and lore items. Done a bit a testing and seems to working thus far. I'm not sure how a caster macro would react with this, works great for melee macs tho. Anyways, back to my long overdue bst mac that I hope to post soon. Ohhh btw, if somebody knows a better way to identify player's corpses please do share. Seemed to me that ${Target.type} would return "corpse" weather it was a npc or pc corpse.
Last edited by mystikule on Sun Dec 11, 2005 7:39 am, edited 3 times in total.

mystikule
a snow griffon
a snow griffon
Posts: 353
Joined: Sat Jul 17, 2004 9:23 pm

Post by mystikule » Thu Dec 08, 2005 1:40 am

Sample ini

Note:
NDItem = default entry of a ND item
Keep = default entry of a droppable item
Destroy = changed to have that item destroyed upon looting
NDKeep = changed to have looted and kept when specific nodrop looting is selected
NDDestroy = changed to have looted and destroyed when specific nodrop looting is selected

Code: Select all

[Loot]
Version=1.1
AutoLootMode=NDITEM
AutoLootDistance=100
[A]
[B]
[C]
Chipped Owlbear Beak=Destroy
[D]
Damaged Owlbear Pelt=Destroy
Damaged Sonic Wolf Pelt=Destroy
[E]
Elder Wolf Jawbone=Keep
[F]
Fishing Spear=Destroy
[G]
Giant Wolf Fang=Keep
[H]
[I]
[J]
[K]
[L]
[M]
[N]
[O]
Owlbear Meat=Destroy
[P]
[Q]
[R]
[S]
Sonic Wolf Ear=Destroy
Sonic Wolf Meat=Destroy
Sonic Wolf Paw=Destroy
Sonic Wolf Fang=Keep
shrieking substance=NDKeep
Sonic Wolf Pelt=Destroy
Sonic Wolf Guardian Fang=NDDestroy
[T]
[U]
[V]
[W]
Wolf Cub Paw=NDITEM
[X]
[Y]
[Z]
Last edited by mystikule on Sun Dec 11, 2005 7:55 am, edited 3 times in total.

A_Druid_00
Macro Maker Extraordinaire
Posts: 2378
Joined: Tue Jul 13, 2004 12:45 pm
Location: Rolling on the Lawn Farting

Post by A_Druid_00 » Thu Dec 08, 2005 7:44 am

You can identify player corpses by using ${Spawn[blah].Deity} I've heard. NPC corses have no deity, while player ones do (I believe even agnostic shows as a Deity)
[quote]<DigitalMocking> man, A_Druid_00 really does love those long ass if statements
<dont_know_at_all> i don't use his macro because i'm frightened of it[/quote]
[quote][12:45] <dont_know_at_all> never use a macro when you can really fuck up things with a plugin[/quote]

zanomo
a hill giant
a hill giant
Posts: 285
Joined: Thu Jun 24, 2004 11:21 pm

Post by zanomo » Thu Dec 08, 2005 8:46 am

Woot thanks. I've been using event to walk to the next corpse if the event: you cannot loot that corpse shows up but this deity will be neat that I'll wont be trying to loot these unlootable corpse over and over again. I'll give it a try when MQ is back on. Thanks AD0 :D

A_Druid_00
Macro Maker Extraordinaire
Posts: 2378
Joined: Tue Jul 13, 2004 12:45 pm
Location: Rolling on the Lawn Farting

Post by A_Druid_00 » Thu Dec 08, 2005 9:41 am

I'll be incorporating this inc into autobot soon I think. Once the .Deity check goes in at least.
[quote]<DigitalMocking> man, A_Druid_00 really does love those long ass if statements
<dont_know_at_all> i don't use his macro because i'm frightened of it[/quote]
[quote][12:45] <dont_know_at_all> never use a macro when you can really fuck up things with a plugin[/quote]

mystikule
a snow griffon
a snow griffon
Posts: 353
Joined: Sat Jul 17, 2004 9:23 pm

Post by mystikule » Thu Dec 08, 2005 10:57 am

Thanks A_Druid, I'll get on this once MQ is back up.
Currently the check for PC corpses is done through attempting to loot the corpse and when can't be done /con. It works but looks rather retarded running to every player's corpse that dies near you.

nytemyst
a grimling bloodguard
a grimling bloodguard
Posts: 578
Joined: Mon Oct 25, 2004 2:29 pm
Location: florida

Post by nytemyst » Thu Dec 08, 2005 11:38 am

A_druid would you say this one is better then the advloot one?

nytemyst
a grimling bloodguard
a grimling bloodguard
Posts: 578
Joined: Mon Oct 25, 2004 2:29 pm
Location: florida

Post by nytemyst » Thu Dec 08, 2005 11:38 am

A_druid would you say this one is better then the advloot one?

toomanynames
a grimling bloodguard
a grimling bloodguard
Posts: 1844
Joined: Mon Apr 11, 2005 11:10 am

Post by toomanynames » Thu Dec 08, 2005 11:47 am

LOL aye, I'd like to hear AD00 respond to that one /snicker.

My advloot in VIP takes into account lots of things, won't attempt to reloot a corpse after X threshold, etc, it also has movement avoidance, etc, no limit to number of corpses, no drop / drop, etc etc.

I like mine better but I'm biased :p

User avatar
fearless
Not a Psychic
Posts: 2684
Joined: Wed Mar 10, 2004 3:52 pm

Post by fearless » Thu Dec 08, 2005 12:02 pm

toomanynames wrote:LOL aye, I'd like to hear AD00 respond to that one /snicker.

My advloot in VIP takes into account lots of things, won't attempt to reloot a corpse after X threshold, etc, it also has movement avoidance, etc, no limit to number of corpses, no drop / drop, etc etc.

I like mine better but I'm biased :p
#macroquest.log:09:46 +A_Druid_00 I like mystikule's looting code a lot better than advloot
Reading . . . it's not just for me.

[url=http://www.catb.org/~esr/faqs/smart-questions.html]How To Ask Questions The Smart Way[/url]
[quote="Ccomp5950"]Fearless showed me the light, you too shall learn.[/quote]

toomanynames
a grimling bloodguard
a grimling bloodguard
Posts: 1844
Joined: Mon Apr 11, 2005 11:10 am

Post by toomanynames » Thu Dec 08, 2005 1:03 pm

It was more as to why, and I didn't see a post from AD00 stateing that so I wasn't aware of the preference.

mystikule
a snow griffon
a snow griffon
Posts: 353
Joined: Sat Jul 17, 2004 9:23 pm

Post by mystikule » Thu Dec 08, 2005 1:27 pm

Wasn't trying to compete with Advloot in anyway, hell I was going to use it, but lately I'm into learning this shit myself and setting things up the way I like them. It's just merely another option as well as another reference for others trying to figure out coding techniques.

Wrote this up to compliment my bst macro (which I hope to finally finish some freakin day) and as such, there's no collision coding as the bst is typically next to the dead corpse. This is why I suspect a caster mac may run into troubles with this inc.