CalciumKid Posted December 19, 2011 Posted December 19, 2011 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. 7
xazax Posted December 22, 2011 Posted December 22, 2011 (edited) 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 December 22, 2011 by xazax 1
KeiKun Posted December 22, 2011 Posted December 22, 2011 Sounds Cool. LoL Ind pick remain as Patch? why? xD
CalciumKid Posted December 22, 2011 Author Posted December 22, 2011 Ind pick remain as Patch? why? xD Because he's silly.
Erid Posted December 22, 2011 Posted December 22, 2011 (edited) 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 December 22, 2011 by Erid
mrjnumber1 Posted December 22, 2011 Posted December 22, 2011 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.
dreamunreal Posted December 26, 2011 Posted December 26, 2011 (edited) 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 December 26, 2011 by dreamunreal
xazax Posted December 26, 2011 Posted December 26, 2011 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.
CalciumKid Posted December 26, 2011 Author Posted December 26, 2011 ^ if it's altered to do what xazax says and the code is cleaned a little, i'll commit it.
dreamunreal Posted December 26, 2011 Posted December 26, 2011 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
CalciumKid Posted December 27, 2011 Author Posted December 27, 2011 Why? modify it with an if = 0 check?
dreamunreal Posted December 27, 2011 Posted December 27, 2011 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.
Vengeance Posted January 9, 2012 Posted January 9, 2012 the drop rates are set in the mob_db itself or elsewhere ??
Arcenciel Posted January 9, 2012 Posted January 9, 2012 Drop rates are set in the conf folder however it acts a multiplier of sorts to whatever is in the mob_db.
KeiKun Posted January 10, 2012 Posted January 10, 2012 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
Gepard Posted January 26, 2012 Posted January 26, 2012 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. 2
Erid Posted January 27, 2012 Posted January 27, 2012 (edited) 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 January 27, 2012 by Erid
Recommended Posts