Log in

View Full Version : D2 Loot Maker - feature update


GeorgeS
08-09-2007, 03:50 PM
I've updated this tool -

You can now import a list of items and assign them to various NPC's
The list is either a "itemid" list or a tab delimited list "item_name itemid" - see below
Bronze Helm 4201
Bronze Mask 4202
Bronze Collar 4203

or use

4201
4202
4203

Clear the list with the "remove item list" so you can use the tool in the normal mode where you select items by category.

My item editor auto exports the list of seached items in resources/ folder, a file called "eqitems.txt"
That file's contents are copied and pasted by the user into the D2 editor and you then you specifiy which NPC's (by level) and % chance the items will drop.

today I used the tool to assign specific banded and bronze stuff to mob levels 11-20. Then when you play, you will see the mobs drop the items.

Did you ever want to have all your cleric's spells drop? Then search for cleric spells in my item editor, import the list, execute the query, and viola, npc's now drop your spells

..infinite possibilities..

GeorgeS

Sakrateri
08-09-2007, 05:12 PM
great work George as always, One question though , on all of your tools they are to big for me to see the whole thing on my screen , resolution set at 1024x768 is there anyway I can resize the windows? I have tried to find a way myself but cant. Thanks, and thanks for all the great tools.

GeorgeS
08-10-2007, 12:22 PM
eqitems editor runs at a higher res - you need 1280x1024. I had to make it that way to fit the stuff displayed. I'll work on changing it but it's a huge pain to recode the stuff to fit via modal child windows. The other tools have to work - as they fit within 1024x768. npceditor should be a moveable window so it should be ok.

GeorgeS

Sakrateri
08-10-2007, 05:18 PM
you don't have to recode it , I just wanted to make sure there wasn't an easy way to resize them that I was missing. I can use them like they are thanks.

GeorgeS
08-12-2007, 05:03 AM
In case you did not see the post - the merchant editor also now supports the same import list functionality.


That adds much more usefulness to each tool, especially the D2 loot maker..


GeorgeS

drakelord
08-12-2007, 02:15 PM
Thanks much for this update George~ This tool will work wonders for my server, :]

Terethian
12-07-2007, 09:50 PM
I love the tool it really is a great tool and very nicely done. It is amazing what it can do. I realize people bug you and mention all types of things that they want but what I want as an option in the loot maker makes probably more sense than anything I have seen yet.....

If I check 100% of the mobs to get a 25% chance of dropping this is what happens:

(Of course you know this but I am saying it to compare what I really want it to do.)

Right now the loot maker will do this: Add a brand new loot drop ID to every single mob with a loot table. That means that each separate loot table will get a chance of dropping that ONE item. Now to be honest every time someone kills that same npc it is gonna drop from that one lootdrop which only contains one item......I want a real random loot system.... I want to be able to do this:

Pick 100% mobs to have a 25% chance of dropping from the SAME lootdrop ID AND have that lootdrop ID have a huge list of item ID's. That way the player will never know what is gonna drop. That to me is really what random loot is and is more like diablo IMO. I am not trying to be uncool I love the program you have made it is great!!!! Is it possible you can at some point make the program do what I asked? I took a look at the code myself and I am pretty pathetic. =D I sent you a message regarding this many months ago but never got a reply so I am posting this on the forum. Cheers!

GeorgeS
12-10-2007, 03:24 AM
I'll consider this as an option somewhere on the program. I think you are right, but what I wanted was more people to comment on it first.

I'll work out the details for doing this this week and see what sort of changes this is going to create.


Later,
GeorgeS

GeorgeS
12-10-2007, 03:30 AM
I did not edit within the 5 min limited, so i'm adding this here -

As a simple workaround (sortof) just rerun the program using the same parameters and for every time you run the query, the NPC's (based on %) will have a random item added each time.




Later,
GeorgeS

Terethian
12-10-2007, 05:48 PM
Let's make this happen!!! If you want this feature added please bug george S or post here!!!!

Also I know of this workaround, the issue is making it work right. In order to do it that way I have to click 100% mobs and make them drop it like 10% or less of the time. Even then let's say I do this 20 times. There is still the very rare chance of 3 items 5 items or all TEN ITEMS dropping at the same time! LOL!!! That's why I tried making the drop percentage even less but then you have to do it a LOT to get anything to drop! heh! (Also it takes a long time to click and add 20 loots on every mob. It took me like an hour or something of clicking haha)

If you do add this feature I would recommend this:

Either the program generates the lootdrop id and remembers the id it uses OR the user has a text box and can select the exact lootdrop ID to use and how many mobs get the lootdrop. Also the user should be able to pick how many items they would like to have on that lootdrop ID and should be able to have it use the filter options so they can have it only be certain hp items etc. So I could perhaps pick 100% of all mobs to have a 25% chance of dropping 1 (or have the user choose how many!) of 500 items in the lootdrop ID. Woot this is what I want I love you! LOL!!!

Terethian
12-10-2007, 06:50 PM
I wanted to mention that if you are looking at the code anyways sometimes the loot maker does add items that aren't really any good. It will add quest items that aren't even armor. Maybe a check can be add that the item contains certain stats every time? It honestly confuses me cause I can set it to add items that have at least 1 AC or something and it still can add quest items that aren't even equip able. I am not complaining in anyway... Like I said this program sure beats anything I could do and I give you kudos for making it. =D

rogue50
12-11-2007, 03:07 AM
yeah, i like the idea of a totally random loot generator like the one diablo 2 uses

Terethian
12-11-2007, 12:13 PM
Sorry GeorgeS! I feel kinda guilty but I was really wanting this and I was messing around.....

I actually managed to do it. I added the random loot feature I described which can be enabled by clicking the check box.
I also added a few warning messages so you don't do major things by accident.
Also tried to slim the window down a little for people that work in a smaller windows resolution.
I hope you don't get mad at me. =(
I am gonna try to work out some more things down the road.
This mod works perfectly with my DB and I can remove the changes successfully. Please let me know if you have a problem with it anyone.
I do not have decent hosting so here it is:

http://www.mediafire.com/?6fnb1tpbmvx
and click the download link in the yellow outlined box.

All credit for this program really belongs to GeorgeS. You rock man.

GeorgeS
12-12-2007, 03:42 AM
Looks good so far - you may have saved me quite some time . Anyway, there's the ocassional duplicate entry error when executing with the mods.

You're free to go to town and work on as much as you want, but please send me a pm for the source.

This is actually very good so far, and I am impressed man

GeorgeS

Angelox
12-12-2007, 04:47 AM
Here's one setback I saw, when I played a while back (may have been fixed?) - I noticed ubber items dropping for characters that were really intended for higher level characters.
Example; and Item has 30int, 30wis, 50manna on it and min level of 20 max level50- it will drop to a level 1 character, when it really should drop for a level 50 character.
Also, why not sort the items out to era? if an item drops in Gfay, it would be an item that belongs to that "Trilogy" era. It could even be narrowed down even more; assign them to their zone, so if you want a drop that belongs to Crushbone, you have to go to Crushbone to get it.
Just some ideas anyways

GeorgeS
12-12-2007, 02:07 PM
The issue with the uber items dropping when you want low level stuff was fixed by a special 'rules' button that allows hand built query's like 'reqlevel<=10 AND int<=5 AND wis<5'. Apparently it works, but is not fool proof.

Items by era is something I never thought of, and would have to think how to address that. Do-able if I had an old database or online reference that allowed era specification flags/searches or similar.

I'm actually very impressed Terethian came up with this plus he has pm me with a strong desire to have it added - which he did!

GeorgeS

velotek
03-28-2008, 01:39 PM
Sorry for continuing the thread but was just wondering if Terethian's ideas were ever rolled into the current source? I do not think his link works anymore, and the random loot feature seemed like a good addition.

GeorgeS
03-28-2008, 02:49 PM
I'm afraid this is the sort of thing that worries me when people dl the source and add stuff then never give me back the modded source. Here's an example - the program therefore has two dev. branches - one with a dead end.

Anyway, I will start to work on this tonight, and see where it goes.


GeorgeS

GeorgeS
03-28-2008, 06:28 PM
Ok, thought this out a bit more. I did not like the idea that you can have 100's of loots per npc. Seems unreal. So what the next version will do is compromise a bit and up to 10 random unique items per npc will drop (i.e 10 items per lootdrop) - 10% chance of ea.

If you re run the program, then the npc can (by chance, if rolled), get another 10 items. and so on.

I'll start to work out the workflow this weekend

GeorgeS

velotek
03-29-2008, 06:07 AM
i appreciate the fast response.

no that makes sense - 10 i think is fair compromise ...

although for scalability up or down maybe it's a property you can set as a default, but override if you like - kind of use at the server admin's risk. I don't know just throwing it out.

thanks again.

GeorgeS
03-30-2008, 06:59 AM
Ok, finished the program and recent compile is online now.
So the default #items/lootdrop is at 5 with an option (as requested) for up to 100 possible.

Remember, some queries are pretty slow, and can take 2-5 min.


GeorgeS

velotek
03-30-2008, 08:35 AM
Wow that was fast - didn't think I would see the mod that quick so I started just to write the db scripts (see below example) from scratch. I decided to base my loot drops off existing loot drop entries of other npc's in the same level range. The queries certainly work pretty fast, but the number of entries per npc certainly is huge. I am in the middle of rewriting the scripts into a stored proc, where I would execute a loop for each npc, within it would execute the below query to return only random 10 at a time. There is some flaws with this approach but certainly a start in the right direction.

Going to download your updates, as that is much easier :-) - Thanks for the hard work.

example:

/* Add Loot Drop*/
insert into lootdrop (name) values ('custom_lvl_10_20_weapons');

/* Clean Up Drop Entries */
delete from lootdrop_entries where lootdrop_id = (select id from lootdrop where name = 'custom_lvl_10_20_weapons');

/* Attach items to loot drops */
/*insert into lootdrop_entries (lootdrop_id, item_id, item_charges, equip_item, chance)*/
SELECT distinct (select id from lootdrop where name = 'custom_lvl_10_20_weapons'),
t.id, 1,1,15
from
(
SELECT i.id, i.name itemname, i.slots, i.itemtype, n.name npcname, n.level
FROM items i,
lootdrop_entries lde,
lootdrop ld,
loottable_entries lte,
loottable lt,
npc_types n
where i.id = lde.item_id and
lde.lootdrop_id = ld.id and
ld.id = lte.lootdrop_id and
lte.loottable_id = lt.id and
lt.id = n.loottable_id and
n.level >= 10 and n.level <=20 and
i.itemtype in (0,1,2,3,4,35,45) and /* weapons only */
slots in (8192,16384,24576,2097152,2048) and /* primary, secondary, pri/sec, ammo, range */
i.name not like 'Rusty%'
) t;

/* Clean Up Loot Table Entries */
delete from loottable_entries where lootdrop_id = (select id from lootdrop where name = 'custom_lvl_10_20_weapons');

/* create loottable_entries for npc's in lvl range*/
insert into loottable_entries
SELECT distinct t.loottable_id,
(select id from lootdrop where name = 'custom_lvl_10_20_weapons'),
1,75
from
(
SELECT i.id, i.name itemname, i.slots, i.itemtype, n.name npcname, n.level, n.loottable_id
FROM items i,
lootdrop_entries lde,
lootdrop ld,
loottable_entries lte,
loottable lt,
npc_types n
where i.id = lde.item_id and
lde.lootdrop_id = ld.id and
ld.id = lte.lootdrop_id and
lte.loottable_id = lt.id and
lt.id = n.loottable_id and
n.level >= 10 and n.level <=20
) t
order by t.id;

theeris23
04-08-2008, 03:30 PM
Hey, I'm having issues with the new version. Each time I hit the execute button, I get the following error:

Run-time error '9':

Subscript out of range

It exits the program after that.

Also, is there anyway to automate the program to run it on all level ranges instead of clicking each level? I get bored sitting and having to click each loot category on each level range. Thanks!

GeorgeS
04-09-2008, 06:01 AM
Depending on your database, many npc's have no loottable_id, and this will crash the program. What you need to do is hit the button "Repair NPCs without lootdrops" - this takes a long while - depending on the number of missing id's...

If that was done and you still get an error - then pls report more details - such as what database schema (cavedudes install or your own), make sure all tables have correct fields', and what sort of query you tried...

I'll place your request on my to-do list...


GeorgeS

theeris23
04-10-2008, 12:57 AM
Still getting the same error, even after repairing the NPC's without lootdrops. I'm using PEQ database, latest cvs revision.

Oh, I tried to do level 1-10, armour, with a default values in each field.

theeris23
04-10-2008, 03:44 PM
I re-did the repair option, and now it works! Strange!

Asphixiate
04-18-2008, 10:10 PM
George, I am having the same issue as theeris23. While it does work with loot/drop set to 5 (the default), setting it any higher results in the runtime error.

Any idea what could be wrong?

Thanks

Randymarsh9
02-14-2009, 11:37 AM
When I use the tool, sometimes it puts weapons in the armor drop loot tables which is definitely not what I want it to do.

Randymarsh9
02-14-2009, 03:42 PM
Also there is another problem. I want monsters to have 2 armor pieces drop at a time, so I am doing 100% of mobs get loot, 100% chance of droppping and 5 items per table. All I did is redo this again so monsters would have 2 armor tables, but for some reason some of them will have 4.

Randymarsh9
02-14-2009, 06:57 PM
And can you possibly adjust monster level ranges customly so that when you give monsters 61-99 loot it won't go to the 65 monsters also

Randymarsh9
02-14-2009, 11:23 PM
I just noticed something else. All monters with an odd ID have extra loot drops. For instance, if I do two loot drops for armor, even IDs will have just two drops, but odd ID monsters will have 4

GeorgeS
02-15-2009, 02:36 PM
Thanks for the feedback - the odd-even might be simple to fix, and I'll look into it today.

GeorgeS

Randymarsh9
02-15-2009, 09:12 PM
So did you find any reason for this?

GeorgeS
02-17-2009, 12:13 AM
Yes, I looked at it now and found the following.

Many lootdrops are shared among many npc's and the program checks for duplicates. Therefore that cannot be the answer. Also, I found 5 and only 5 drops per npc. Never saw a difference among odd/even npcs. The program does not care about npc id order.

What I did see, and this makes sense, the program creates a new lootdrop id for each unique loottable, and is always the highest number. If there are other lootdrops in the npc's then new ones are made. Therefore the real way to ensure a new lootdrop and a totally custom database is to wipe all loot from all npc's first.

Therefore, I do not observe and anomalies.

Another thing, if you rerun the program for the same level npc's, you will add more custom loot.


GeorgeS

Randymarsh9
02-18-2009, 12:58 AM
OK, so the only way I can make it so some monsters don't have double the loot is to wipe all loot? Is there any other way because I have a lot of custom loot drops.

Randymarsh9
02-19-2009, 06:04 PM
Does anyone else know how I could possibly avoid having to wipe all loot? I really don't want to have to do that, but it would make some monsters drop 4 items and some drop 8 if I leave it how it is.

Randymarsh9
02-20-2009, 07:00 PM
Ok, how can I wipe all lootables and stuff so that monsters won't drop more items than I want? My server has been done for almost 2 weeks and I don't want to bring it back until I get the loot fixed.

Randymarsh9
02-21-2009, 10:24 PM
i'm really sorry. I am not trying to complain, but I have had my server down for a while now because I don't want to bring it up when there is no random loot. I am just trying to fix the problems of some monsters having 2x loot and then the monsters 65+ also having the lootdrops from 61+ monsters. Does anyone have some suggestions for how I can fix this because I am making no progress just adding loot, removing it, and adding it again. I really want to fix these problems because it does make a big difference. I want monsters to drop 4 items per kill, but some monsters will drop 8. And then the 65+ monsters will normally drop 8, but since some monsters have double the loot they are dropping 16 items. That is 4x the amount of items I am trying to do.

Randymarsh9
08-01-2009, 12:51 AM
I think this tool needs to be updated. I keep getting an error saying invalid use of null when I try to run it. And is it possible to make the max items per lootdrop over 100 or is that just an emulator thing?

Randymarsh9
08-01-2009, 03:59 PM
actually I figured out the invalid use of null problem

Randymarsh9
08-01-2009, 04:08 PM
I noticed that I get the runtime error 9 subscript out of range if I put over 5 items per loot drop. I saw someone else had that problem awhile ago and am wondering if it was fixed

Wilbane
08-24-2009, 09:53 AM
GeorgeS, great tool and thank you. I played with it over the weekend and it works very well especially the ability to import custom lists. As usual the compliment is followed by a question ... LOL. Is there a way to limit the tool to specific zones? The reason I ask is this would be a quick way of adding new content to unused zones.

Thanks, Wil

GeorgeS
09-10-2009, 10:26 AM
I noticed that I get the runtime error 9 subscript out of range if I put over 5 items per loot drop. I saw someone else had that problem awhile ago and am wondering if it was fixed

DiabloII*
ver 1.7.2 (Sep-10th-09) - added support for >5 items per lootdrop - to a max of 32

Sorry for the delay in fixing this

GeorgeS

kimura
05-22-2012, 01:40 PM
after the latest update, now i get a runtime error saying that column doesnt match the fields in row 1 or something very similar...any suggestions GeorgeS?

GeorgeS
05-24-2012, 12:08 PM
Holy necro,

What version of DB are you using?

GeorgeS

kimura
05-24-2012, 07:42 PM
I'm using the latest db, i think 2133? I am not at home to check :-(

GeorgeS
05-25-2012, 11:57 AM
Ok, I'll take a look when I'm at the PC

GeorgeS

Burningsoul
09-11-2012, 07:49 PM
Also experiencing this with rev2197 - the problem is the tables have been slightly changed, and lootdrop_entries now has two added columns: minlevel and maxlevel.

Edit: Also, this was solved in the thread three below this post. Further reading fail. My bad.

Furinex
10-27-2012, 07:19 PM
Getting an error for this D2 loot maker tool, talking about your Connector to Mysql. Runtime error.

GeorgeS
10-27-2012, 09:36 PM
NPC editor is the only one that works with current DB ATM.

I'm working on these now

GeorgeS

Furinex
10-28-2012, 10:39 AM
Thanks George, I appreciate the work you do. been using your tools for a long time now. Had to rebuild my Database the other day and the only thing I have left to do is run this D2 tool. By the way. Is there an easier way make all mobs have a chance to drop every item? On my server, I've removed the level req. for the items and the no drop is also removed. I would like to make it so anything can drop off of any mob.

Furinex
10-29-2012, 07:37 PM
Also George, is there a way to run levels 1-60 (or max) with all the armor/weapons/items in one shot instead of going through each one and executing them?

GeorgeS
10-30-2012, 12:19 PM
No that is not possible, but a tool like this is easy to write.
What I may imagine you want is to import a custom item id list and have that added to all npc's say 10 items at a time per lootdrop and 10 lootdrops per npc?

I can whip this up pretty fast if you want

GeorgeS

Furinex
10-30-2012, 12:31 PM
Well I removed the level requirements on all items, and the no drop / lore flags. what im trying to do is fill ALL mob loot tables with completely randomized drops to make it feel like you could get something different from every kill. I would want the chance of drops to be high. Similar to what your D2 loot tool does, but instead of clicking 1-10, armor execute, 1-10 weapons exectute etc, i could do 1-60 all execute. If you could just add that into the Current D2 Loot (after it works again of course) i think that would be awesome. it would save a lot of time if you wanted to do it all in a batch like myself.

Furinex
10-31-2012, 03:39 PM
I really hope this D2Loot tool works again soon. Im finding it very tedious to do this all by hand :( Im terrible with SQL as well.. probably gonna jack something up.

Furinex
11-04-2012, 12:28 PM
Any update on this?

Burningsoul
11-04-2012, 05:27 PM
Give George some time dude. Instead of bumping the post every day why not learn some simple sql commands rather than just saying that it's too hard?

Furinex
11-04-2012, 07:12 PM
Give George some time dude. Instead of bumping the post every day why not learn some simple sql commands rather than just saying that it's too hard?

If it was so simple, why not post the solution instead of belittling someone? Im working on my own solution but its very tedious. Time isnt something I like to waste.

c0ncrete
11-04-2012, 08:13 PM
no offense, but i've already gone out of my way to attempt to assist you with an alternate solution in one of your posts on the subject.

http://www.eqemulator.org/forums/showthread.php?t=35923

you didn't indicate you had any interest in tailoring it to better suit your needs, that you had any questions, or even that you read it.

Furinex
11-04-2012, 08:31 PM
Hrm, my subscription didnt notify me about your response. I am going to try that now.

opyrus
11-12-2012, 07:49 PM
Is this tool working with DB Version 2214 yet?

GeorgeS
11-12-2012, 11:49 PM
No, tool will be finished by this friday. I'll commit time this week.

GeorgeS

Furinex
11-22-2012, 11:08 PM
I redownloaded the tool and tried it again with the same issue. Runtime error :(

GeorgeS
11-23-2012, 02:29 PM
When it's done the update will be posted here. RL is been busy

GeorgeS

ChaosSlayerZ
11-23-2012, 08:59 PM
as of today we are on 2260 ;)

GeorgeS
11-24-2012, 10:05 PM
Tool is now compatible with current schema. This takes into consideration the loot changes that broke the tool.

GeorgeS

Burningsoul
12-05-2012, 02:44 AM
Just a heads up.. downloaded the new version, server revision at 2243. My fields are set as follows.. 100% NPCs, 100% Chance to drop, 15 items.
In game, the drops are far rarer.. one in 10 mobs MIGHT have one of the new drops.

Browsing some droplists with the PHP Editor, I see that all the new loot has a very low chance to drop, and each table's droprate is only 15% or so.
Even with a 100 probability I'm still not getting results like I did before the lootdrop revision. Is it the cause of these problems?

Also, I notice this program is quite faster than it used to be, but I'm assuming that's because even if you set Chance for NPC to get loot to 100%, it's not really selecting them all - I've never see it working on more than ~5000 npcs each pass now.

Burningsoul
12-05-2012, 04:04 AM
Disregard the last line of my statement. It does modify more than 5k npcs at a time, but drops still are anything but consistent.

GeorgeS
12-06-2012, 12:18 AM
I see.
I looked at the source and added lootdrop_entries chance and loottable_entries probability to the code and main form so you can enter these now. Drops as a result should be vastly better.
These are in the newest binary

GeorgeS

Burningsoul
12-06-2012, 01:30 AM
George you are the MAN! Thank you very much for the quick response and updates, I'll give the new features a spin tonight!

Update: Works AWESOME George, thanks again!