Loot databuilder mac?

SekretAgent

Lifetimer
Joined
Dec 3, 2006
Messages
211
Reaction score
0
Points
16
This may sound stupid but i play on an EMU and the loot is scattered and I was curious if anyone has or knows of a macro that will/could help me make a database.

I dont want it to run afk I just need it to conform a list for items I loot specifically and if thats too hard then any item dropped by any mob I loot in the zone I looted.

Can export them to spread sheet or notepad doesnt matter, my notepad is getting full and then to have to re-enter them back into my pc is gonna suck lol.
 
it would be easy to add in a log function to a loot section. have it go [Zone][Mob][Item]
 
I don't quite understand what you are asking for based upon your explanation. but are you just asking for a loot list of things to loot/notloot/sell? if so check out ninjaadvloot.inc on main VIP site by Maskoi. you just #include it and it builds a loot.ini that you choose things to keep/sell/not keep.
 
After rereading what you said a few times. Exactly what JJ said is what you need to do. Zone, MobName, Item. You can determine all those with current TLOs/members and you can either use an /ini to create it. or you can use /mqlog.

Id opt for /ini if you dont find it. It will get really clustered though using that method.
 
... I dont want it to run afk I just need it to conform a list for items I loot specifically and if thats too hard then any item dropped by any mob I loot in the zone I looted.

Could you translate this for me?


Are you looking to produce a log file with all the items you looted?

Do you want to save name and location of the mob ?

Are you looking for something that will loot items for you once you've built up a list?

I think you should look at the "NinjaLoot" include files. They could probably be modified to suit your purpose.
 
Im gonna try and break it down...

The server I play on has scattered loot. All I want this macro to do is record the zone, item and the mob it dropped off from thats it. I dont want it to auto loot anything or do anything other than record. I will be playing my toon myself I just dont want to have to stop and break out the notebook and jot it all down. Although my notebook has it broken up even more into best HP and ac per item per class, i figured thats waay too much to ask.
 
Does the server have You have looted messages when you loot something? If so you can probably set something up with MQ2Events plugin to trigger off that event and then either /mqlog or /ini it to keep track of it. Assuming MQ2Events is available on EMU.

I'm not sure how MQ2Events handles variables in it's event though. I know based on the Wiki you can use #1#, #2# like a regular #event, but I don't know if it gives those variables a name that you can use in the commands part of the event, which you would need for this to work correctly (unless you always looted an item onto your cursor and then inventoried it).

If MQ2Events doesn't handle variables, a custom macro could do the same thing, but you'd have to make sure you are always running that macro when you loot stuff, and you would not be able to run other macros unless you included the loot logging macro into the other macro you are running.
 
Modify the event code to dump the data out to a file. Ini is easy but MQ2Log might be better if your reading into excel.

Code:
#event ItemLooted    "--You have looted a #1#.--"

Sub Main


  :Mainloop
  	/doevents
	/delay 1
	/goto :Mainloop

/return


Sub Event_ItemLooted(string line, string ItemName)

	/echo ItemName = ${ItemName}
	/echo ${Window[LootWnd].Child[LW_CorpseName].Text}
	/echo ${Zone.ShortName} ${Me.X} ${Me.Y}

	
/return
 
Last edited:
He wants the mob it was looted off as well

Way it sounds to me is he wants to do an INI that ends up looking like this

Code:
MobDrops.Ini
[Misty Thicket]
  [Large Rat]
    Rat Fur
    Opal
    Rat Whisker
  [Goblin]
    Scalp
    Flask of water


[Burning Woods]
  [Giant Wasp]
    Wasp Wing
  [Tattered Gorilla]
    Gorilla Fur
    Globe of water


You could actually use this in several ways later.

Could make a macro that accesses it and only kills things that has an item you are looking for.
 
yea JJ thats exactly what im after lol... now i just need to figure out how to get it to do that
 
You can't nest sections in an ini file. Also INI files get really slow when they get big so if you want to use them as a data base I'd suggest having lots of small ini files rather than one master ini with thousands of entries.

Create a folder to dump all the data in. "LootDB"

Since I'm likely to be looking for a given item use the item name as the ini file name so you'd have

LootDB\Wasp Wing.ini
LootDB\Gorilla Fur.ini

Inside each ini file I'd use the zone as the section header.

LootDB\Wasp Wing.ini
[Freeport]
01=Giant Wasp
02=Small Wasp
[Common Lands]
01=Giant Wasp
02=....


If your going to go to all the trouble to collect the information you might as well get the X,Y locations for each kill so you can build up and show where the drop is but that's probably overkill =)

LootDB.ini/Wasp Wing.ini
[Burning Woods]
01=Giant Wasp|LocX,Y
02=Giant Wasp|LocX,Y
03=Giant Wasp|LocX,Y
04=Giant Wasp|LocX,Y
[Free Port]
01=Small Wasp|LocX,Y


Shouldn't take much to convert the macro I posted above to dump out the ini files. The data is all there in the /echo's .
 
There's so many ways to do this. it could get really complicated and strings may become too large to store all the loots using the following method. It would look like this:

MobLootIniFile.ini

[Somnium.Loots]
A_Tower_Servant=|item1|item2|item3|item4|
A_Personal_Servant=|item1|item2|item3|
a_shadow_warden=|item1|item2|item3|item4|item5|item6|item7|item8
[Thuledream.Loots]
Mob_One=|item1|item2|


Code:
#event ItemLooted    "--You have looted a #1#.--"

Sub Main
/if (!${Defined[MobLootIniFile]}) /declare MobLootIniFile MobLoot.ini

  :Mainloop
      /doevents
    /delay 1
   /goto :Mainloop

/return


Sub Event_ItemLooted(string line, string ItemName)
/if (!${Defined[${Window[LootWnd].Child[LW_CorpseName].Text}) /declare ${Window[LootWnd].Child[LW_CorpseName].Text} string outer ${Ini[${MobLootIniFile},"${Zone.ShortName}.Loots","${Window[LootWnd].Child[LW_CorpseName].Text}"]}
/varset ${Window[LootWnd].Child[LW_CorpseName].Text} ${Ini[${MobLootIniFile},"${Zone.ShortName}.Loots","${Window[LootWnd].Child[LW_CorpseName].Text}"]}
/if (${${Window[LootWnd].Child[LW_CorpseName].Text}_${ItemName}.Equal[NULL]}) /ini "${MobLootIniFile}" "${Zone.ShortName}.Loots" "${Window[LootWnd].Child[LW_CorpseName].Text}" "|"
/if (!${${Window[LootWnd].Child[LW_CorpseName].Text}.Find[${ItemName}]}) /ini "${MobLootIniFile}" "${Zone.ShortName}.Loots" "${Window[LootWnd].Child[LW_CorpseName].Text}" "${Window[LootWnd].Child[LW_CorpseName].Text}${ItemName}|" 
/varset ${Window[LootWnd].Child[LW_CorpseName].Text} ${Ini[${MobLootIniFile},"${Zone.ShortName}.Loots","${Window[LootWnd].Child[LW_CorpseName].Text}"]}
/echo [${Zone.ShortName}.Loots] ${Window[LootWnd].Child[LW_CorpseName].Text}=${${Window[LootWnd].Child[LW_CorpseName].Text}}
/return

Problem is that method isnt entirely sortable. numbers help like dewey suggested. without a sequential method, it makes refreshing the list when you zone a pain in the ass. Anyway, there are a lot of ways to tackle this, just depends ultimately what and how you want to use the information.