Go Back   EQEmulator Home > EQEmulator Forums > General > General::General Discussion

General::General Discussion General discussion about EverQuest(tm), EQEMu, and related topics.
Do not post support topics here.

Reply
 
Thread Tools Display Modes
  #1  
Old 09-18-2012, 01:37 PM
cavedude's Avatar
cavedude
The PEQ Dude
 
Join Date: Apr 2003
Location: -
Posts: 1,988
Default New loot system

My next commit on the EQEmu SVN will include an overhauled loot system. It will contain a SQL that will convert your loot tables to the new system preserving both drop rates and drop behavior. I just wanted to post so that everybody understands the new system.

First, the table changes:

Two new columns have been added to loottable_entries called droplimit and mindrop. Probability has been removed from loottable_entries. Multiplier has been added to lootdrop_entries, and chance in lootdrop_entries has been changed to a float so it can handle decimals.

The biggest change is in the new system, each item is rolled individually instead of against every other item in the same lootdrop table. I have already confirmed on PEQ that there is no performance hit with this change. This means that you could potentially have every item on a single lootdrop table per loottable if you so wish. However, multiple lootdrop tables per loottable is still very much supported. The added columns preserve ALL of the functionality the old system, plus adds some new functionality.

The new columns are:

mindrop: This value forces the lootdrop table to always drop the number of items specified. If all of the items are rolled and mindrop is not met, everything is re-rolled until it is. 0 is no mindrop, so the table could potentially drop no items if none are 100%.

droplimit: The opposite of the above column. Once this value is met, no more items will drop from the lootdrop table, even if entries with a 100% chance are left to roll. There is also a chance that the droplimit is not met, and fewer items than the value specified will drop. 0 means there is no limit, and the lootdrop table could potentially drop every item.

multiplier: Same as before really. The simplest way to explain this is it multiplies the other 2 columns. So, if your mindrop is 2 and your multiplier is 4, the lootdrop will drop AT LEAST 8 items. If your droplimit is 2 and your multiplier is 4, the lootdrop will drop NO MORE than 8 items. multiplier is useful if you want a different number range of items to drop every time, instead of just the number of items in the lootdrop table.

It is important to note using either mindrop and multiplier can cause the same item to be dropped multiple times.

It is also important to note that all 3 columns will effect the true percentage every item has of dropping. droplimit may prevent items from even getting a roll at all, mindrop may potentially give items extra rolls, and multiplier will give every item an extra roll per each value (multiplier of 4 gives every item 3 extra rolls.) Setting mindrop to 0, droplimit to 0, and multiplier to 1 will give you 100% clean percentages, meaning the percentage specified in chance will be the exact chance the item has of dropping.

The order the items are rolled is randomly chosen every time, so no items will have an advantage over others due to location in the list.

Last, the new multiplier column in lootdrop_entries works exactly the same way as the one above, except it's per item. So, if you need rats eyes to potentially drop twice, but rat tail to only drop once you can do so and still have them in the same lootdrop table. Any items with multiplier set here receive an extra roll per value, while the ones with it set to 1 do not. Only the first successful roll counts towards mindrop above. So, if mindrop is set to 1 and ration's multiplier is set to 4, you can still drop 4 rations however no other items in that lootdrop will be able to drop.

Any questions, please ask away
Reply With Quote
  #2  
Old 09-18-2012, 01:54 PM
Akkadius's Avatar
Akkadius
Administrator
 
Join Date: Feb 2009
Location: MN
Posts: 2,071
Default

Will there be punch and pie in this new loot system?
Reply With Quote
  #3  
Old 09-18-2012, 02:20 PM
Burningsoul
Discordant
 
Join Date: Oct 2009
Posts: 312
Default

I second the punch and pie. This is huge, and I cannot wait to see what can be done with it. Congrats you guys!
Reply With Quote
  #4  
Old 09-18-2012, 02:31 PM
cavedude's Avatar
cavedude
The PEQ Dude
 
Join Date: Apr 2003
Location: -
Posts: 1,988
Default

I've committed this in Rev2213.

I also updated the PEQ PHP Editor when these changes were first put on PEQ (Rev342 for it), so that's all ready to go as well.

I was kinda hoping for pizza and beer, but oh well. Punch and pie it is.
Reply With Quote
  #5  
Old 09-18-2012, 02:45 PM
namini
Fire Beetle
 
Join Date: Jul 2012
Posts: 15
Default

Quote:
Originally Posted by cavedude View Post
I've committed this in Rev2213.

I also updated the PEQ PHP Editor when these changes were first put on PEQ (Rev342 for it), so that's all ready to go as well.

I was kinda hoping for pizza and beer, but oh well. Punch and pie it is.
Let em have their punch and pie -- let's have pizza and beer. I homebrew, so I got the beer.. someone in NY wanna supply the pizza?
Reply With Quote
  #6  
Old 09-18-2012, 03:01 PM
ghanja's Avatar
ghanja
Dragon
 
Join Date: Aug 2012
Location: Hershey, PA
Posts: 499
Default

Could someone please provide a, "Using the provided SQL to convert your tables for dummies" instruction please?

I've updated the SVN (http://projecteqemu.googlecode.com/svn/) and it grabbed a few files, I believe the very ones that were changed due to this new loot system being applied/committed.

However, my "DB" directory (http://projecteqdb.googlecode.com/svn/trunk) shows no change.

Just a short to do instruction would be greatly appreciated. Started on customizing, with quite a few Items being deleted, modified and/or added and really hate to lose it all (yes, I backup the DB with a dump every once in awhile, but, I only know how to use that backup in the case where I have to replace the entire DB). Thank you.
Reply With Quote
  #7  
Old 09-18-2012, 03:08 PM
ghanja's Avatar
ghanja
Dragon
 
Join Date: Aug 2012
Location: Hershey, PA
Posts: 499
Default

Oh, that was much easier than I thought it would be. Just "execute sql" just as is done upon initial install, though on the "2213_loot_changes.sql" found in the "../utils/sql/svn" directory.
Reply With Quote
  #8  
Old 09-18-2012, 03:08 PM
GeorgeS
Forum Guide
 
Join Date: Sep 2003
Location: California
Posts: 1,475
Default

Nice work all, and now to get back to figure this out and how to fix our tools.
I may have to make a large VB class to handle loot now, as updates will only require fixing it and not every tool. This will simplify things... much to do..

GeorgeS
__________________
Your source for EQ database tools
Toolshop is open for business


http://www.georgestools.chrsschb.com//
Reply With Quote
  #9  
Old 09-18-2012, 03:10 PM
cavedude's Avatar
cavedude
The PEQ Dude
 
Join Date: Apr 2003
Location: -
Posts: 1,988
Default

The PEQ DB will be updated soon. I have another change from KLS that needs to be committed first to EQEmu before I update it. Plus, with my connection it takes a while for me to upload the DB

However, in the meantime you can just source the 2213_loot_changes.sql file that came down in the newest EQEmu update to convert you.
Reply With Quote
  #10  
Old 09-19-2012, 11:44 AM
ChaosSlayerZ's Avatar
ChaosSlayerZ
Demi-God
 
Join Date: Mar 2009
Location: Umm
Posts: 1,492
Default

Speaking of tons and tons of recent changes and improvements (great work btw everyone!) but would any dev be willing to update the official binaries for the server? The last update was back in February.

Thanks

http://code.google.com/p/projecteqemu/downloads/list
Reply With Quote
  #11  
Old 09-19-2012, 01:13 PM
lerxst2112
Demi-God
 
Join Date: Aug 2010
Posts: 1,743
Default

It is so easy to build your own.
Reply With Quote
  #12  
Old 09-19-2012, 01:17 PM
Maze_EQ
Demi-God
 
Join Date: Mar 2012
Posts: 1,106
Default

Akkadius made it foolproof.
__________________
"No, thanks, man. I don't want you fucking up my life, too."

Skype:
Comerian1
Reply With Quote
  #13  
Old 09-19-2012, 04:17 PM
cavedude's Avatar
cavedude
The PEQ Dude
 
Join Date: Apr 2003
Location: -
Posts: 1,988
Default

I posted 32bit binaries for Rev2214. Somebody else can handle 64bit and Bots builds. PEQ DB for 2214 is up too.

Last edited by cavedude; 09-19-2012 at 04:26 PM..
Reply With Quote
  #14  
Old 09-19-2012, 04:50 PM
ghanja's Avatar
ghanja
Dragon
 
Join Date: Aug 2012
Location: Hershey, PA
Posts: 499
Default

So that I do not completely overwrite my database. And I've already updated the tables running the sql update a day ago. But.. I see it grabbed quite a few tables.

What is the proper procedure for updating an existing database with the changes found in this update Cavedude just released?

What I'm thinking is just running a "Execute SQL File..." within Navicat on the database, selecting "Rev2214.sql" from the /peqdatabase/updates directory?
Reply With Quote
  #15  
Old 09-19-2012, 10:04 PM
ChaosSlayerZ's Avatar
ChaosSlayerZ
Demi-God
 
Join Date: Mar 2009
Location: Umm
Posts: 1,492
Default

Quote:
Originally Posted by cavedude View Post
I posted 32bit binaries for Rev2214. Somebody else can handle 64bit and Bots builds. PEQ DB for 2214 is up too.
thank you for the binaries Cavedude! much appreciate it.

I do have a question on the new system thought:

Quote:
Probability has been removed from loottable_entries. Multiplier has been added to lootdrop_entries, and chance in lootdrop_entries has been changed to a float so it can handle decimals.
If i remember correctly old system worked like this:

Suppose we have An_Orc who had loottable_id 12345

loottable_id 12345 would have inside of it:

lootdrop_entries 26, mult 1, 33%
lootdrop_entries 85, mult 2, 77%

lootdrop_entries 26 would have inside:
rusty mace 20%
club 70%
short sword 10%

lootdrop_entries 85 would have inside:
bronze bracer 80%
chainmail 20%

So, the orc had 33% chance to trigger entry 26 - to drop anything at all, before we even get into what exactly he would drop

2 opportunities to trigger entry 85 at 77% each

In NEW system if you saying that probabilities are removed, how can you replicate the system above where I want a situation where npc may or may not drop anything at all even before we get to the items?


Also, when you say that items will now "roll individually" - I do know that all %% on items were screwed up and place in list was affecting proper percentages, but "roll individually" sounds somewhat vague - do items total still have to add up to 100%?

thanks!

PS Sorry if I missed something already explained.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 11:04 AM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3