EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Development::GeorgeS's Tools (https://www.eqemulator.org/forums/forumdisplay.php?f=674)
-   -   D2 Loot Maker - feature update (https://www.eqemulator.org/forums/showthread.php?t=23441)

GeorgeS 08-09-2007 03:50 PM

D2 Loot Maker - feature update
 
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

Great Tool! Question though....
 
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

You heard him folks!!!
 
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

Apologies about the double post but...
 
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

Diablo Loot Modified
 
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:
Code:

/* 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


All times are GMT -4. The time now is 01:09 AM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.