Jump to content

Special Item Drop System


CalciumKid

Special Item Drop System  

64 members have voted

You do not have permission to vote in this poll, or see the poll results. Please sign in or register to vote in this poll.

Recommended Posts


  • Group:  Members
  • Topic Count:  25
  • Topics Per Day:  0.01
  • Content Count:  257
  • Reputation:   253
  • Joined:  11/29/11
  • Last Seen:  

It came to my attention just recently that various server owners are in the same position as I.

Many mid and high rate servers have items that they wish to drop at a lower than minimum drop rate. For instance, On iHeart-RO our minimum drop is 30%. Some items I want to drop at 1 and 2 percent, however this is impossible due to rate scaling.

That is where this system comes in:

Whats this About

This system allows you to bypass the rate cap, extremely useful for mid-high rates, for example if your server rate is 1k then the minimum drop rate would be 10%, this allows you to set as many items as you want at any drop rate each. For example you could have some item be dropped at 0.5% on a 100k drop rate server. This system was made by me in 2010 Q2.

Whats Included

The system itself in a .patch file which you can apply using your svn client, incase you don't know how to you can follow this guide: http://ro-resources....a-diff-for-win/ and the file which should be added to the /db/ folder.

How to Use

On the ind_item_drop.txt (which you can rename to anything else in the mob.c) the syntax is:

ItemID,rate

For example, 2115,5 would make valkyrie shield drop at 0.5%, the rate is * 10 by default in my code, you can change it anytime by changing the following line.

db->dropitem[i].p = ind_drop[db->dropitem[i].nameid] * 10;

I personally believe this should be commited to the server source if it would have enough use in the community. I want the opinion of other devs and the community.

Thanks to Ind for making this useful system. Please reply with a vote and your reasoning.

  • Upvote 7
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  146
  • Topics Per Day:  0.03
  • Content Count:  1195
  • Reputation:   467
  • Joined:  11/15/11
  • Last Seen:  

+1 to adding it.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  11
  • Topics Per Day:  0.00
  • Content Count:  427
  • Reputation:   123
  • Joined:  11/17/11
  • Last Seen:  

I think it would be more flexible, if it would work this way:

2115,1 would make valkyrie shield is not effected by drop rate, so you can use the full scale (from 0,01% to 100%).

The original idea would force that, every mob has to drop that item with the SAME chance. However this way the same item can be dropped with different chances from different mobs.

Edited by xazax
  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  31
  • Topics Per Day:  0.01
  • Content Count:  967
  • Reputation:   53
  • Joined:  11/13/11
  • Last Seen:  

Sounds Cool.

LoL

Ind pick remain as Patch?

why? xD

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  25
  • Topics Per Day:  0.01
  • Content Count:  257
  • Reputation:   253
  • Joined:  11/29/11
  • Last Seen:  

Ind pick remain as Patch?

why? xD

Because he's silly.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  38
  • Reputation:   3
  • Joined:  11/14/11
  • Last Seen:  

I think it would be more flexible, if it would work this way:

2115,1 would make valkyrie shield is not effected by drop rate, so you can use the full scale (from 0,01% to 100%).

The original idea would force that, every mob has to drop that item with the SAME chance. However this way the same item can be dropped with different chances from different mobs.

I like the idea, but working how xazax said.

Edited by Erid
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  29
  • Reputation:   19
  • Joined:  11/22/11
  • Last Seen:  

This would also need a way to apply to drops added to items. For example, Orc Archer Bow adds a Steel Arrow drop, so it'd be useful to limit that drop rate separate of the drop rate from the mob Orc Archer. I've implemented a system like this for my own source but I haven't done enough testing so far, and it feels kind of hackish (essentially I just added 2 new entries to struct item_data and a separate db to add those).

Another thing that would be good (something I have been working on) is limiting mobs to specific rates; that is, instead of forcing every drop from shining plant to be lowered in the item_db, just add a new db to adjust its drop rates.

Additionally, it could work to adjust their EXP on top of their drop rates. ^_^

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  2
  • Topics Per Day:  0.00
  • Content Count:  28
  • Reputation:   8
  • Joined:  11/16/11
  • Last Seen:  

I think it would be more flexible, if it would work this way:

2115,1 would make valkyrie shield is not effected by drop rate, so you can use the full scale (from 0,01% to 100%).

The original idea would force that, every mob has to drop that item with the SAME chance. However this way the same item can be dropped with different chances from different mobs.

how about it -> click me to view this file

i write it down to solve your probrom.

Edited by dreamunreal
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  11
  • Topics Per Day:  0.00
  • Content Count:  427
  • Reputation:   123
  • Joined:  11/17/11
  • Last Seen:  

how about it -> click me to view this file

i write it down to solve your probrom.

It's nice idea, based on your one I would do something like this: if X is 0, then it affect all of the monsters, otherwise the given monster. This way it would avoid using a conf option, and you can combine the 2 behavior.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  25
  • Topics Per Day:  0.01
  • Content Count:  257
  • Reputation:   253
  • Joined:  11/29/11
  • Last Seen:  

^ if it's altered to do what xazax says and the code is cleaned a little, i'll commit it.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  2
  • Topics Per Day:  0.00
  • Content Count:  28
  • Reputation:   8
  • Joined:  11/16/11
  • Last Seen:  

how about it -> click me to view this file

i write it down to solve your probrom.

It's nice idea, based on your one I would do something like this: if X is 0, then it affect all of the monsters, otherwise the given monster. This way it would avoid using a conf option, and you can combine the 2 behavior.

:) ...if my db like this.

0,985,10000 // it will set all id 985's droprate to 100%

and i write

1219,985,500 // it will set knight of abyss's id985 item's droprate to 5%

i think it will cause a crash

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  25
  • Topics Per Day:  0.01
  • Content Count:  257
  • Reputation:   253
  • Joined:  11/29/11
  • Last Seen:  

Why? modify it with an if = 0 check?

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  2
  • Topics Per Day:  0.00
  • Content Count:  28
  • Reputation:   8
  • Joined:  11/16/11
  • Last Seen:  

if thier is two format in a database.

program read it one by one.

and save in diffrent array.

from begin to here is no probrom.

but when the drop rate seted.the data from two array must in conflict.

Link to comment
Share on other sites

  • 2 weeks later...

  • Group:  Members
  • Topic Count:  8
  • Topics Per Day:  0.00
  • Content Count:  65
  • Reputation:   13
  • Joined:  01/08/12
  • Last Seen:  

the drop rates are set in the mob_db itself or elsewhere ??

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  69
  • Topics Per Day:  0.02
  • Content Count:  1315
  • Reputation:   372
  • Joined:  12/10/11
  • Last Seen:  

Drop rates are set in the conf folder however it acts a multiplier of sorts to whatever is in the mob_db.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  31
  • Topics Per Day:  0.01
  • Content Count:  967
  • Reputation:   53
  • Joined:  11/13/11
  • Last Seen:  

Drop rates are set in the conf folder however it acts a multiplier of sorts to whatever is in the mob_db.

ya

his right

actually you can also edit it under mob_db

problem is editing mob_db is crappy

you have to use some software to do modifications

Link to comment
Share on other sites

  • 3 weeks later...

  • Group:  Members
  • Topic Count:  22
  • Topics Per Day:  0.00
  • Content Count:  392
  • Reputation:   285
  • Joined:  12/19/11
  • Last Seen:  

Modification added in r15520.

Some originally requested features are not included as they would unnecessarily increase complexity and duplicate other features.

Please note that the new db file does not define absolute drop rates (like 0.1% or 50%), but rather a drop rate multiplier (eg 1x) which is applied to base drop rates found in mob_db.

  • Upvote 2
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  38
  • Reputation:   3
  • Joined:  11/14/11
  • Last Seen:  

Modification added in r15520.

Some originally requested features are not included as they would unnecessarily increase complexity and duplicate other features.

Please note that the new db file does not define absolute drop rates (like 0.1% or 50%), but rather a drop rate multiplier (eg 1x) which is applied to base drop rates found in mob_db.

I'm guessing you mean r15521 =P

I like how the explanation is well detailed in mob_item_ratio.txt

Edited by Erid
Link to comment
Share on other sites

×
×
  • Create New...