Go Back   EQEmulator Home > EQEmulator Forums > Archives > Archive::Support > Archive::Tutorials/Howto's > Tutorials--Outdated Use the Wiki > Tutorials::Discussion

Tutorials::Discussion Discuss Tutorials here. Do NOT POST tutorials here, they belong on the wiki.

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #3  
Old 11-30-2004, 12:39 AM
Zengez
Hill Giant
 
Join Date: Nov 2004
Posts: 160
Default

Ok, here's some Helpful Hints i've found/thought of/used or whatnot, use them as you will, don't if you don't want to, they're just suggustions.

Setting Item Costs:

When setting item costs and sellback values, keep in mind your not just setting the cost of items and sellback of items from vendors, but also the sellback value of found items. If you put this too high and then wonder why newbs are running around with 1k plat at lvl 10, it might be because your weapon formula suddenly turned that rusty battle axe into a 200p sell instead of a 2 gold sell... or likewise with other items, try to keep in mind the progression of money and what you're doing to the sellback value's effect on that progression of income.

About setting weapon costs, the best way (in my opinion) is to take a ratio of damage and delay. This allows for what the damage and delay of the weapon actually is, while at the same time, also accounting for each's relative strength... thus if you set a cost based entirely on teh damage, items like bloodpoint (10/21) would be considerably less money than weighted axe (45/150) even though the former is a considerably better weapon. To do this, simply put the ratio litterally into the code, thus

Quote:
UPDATE items SET cost = damage/delay Where damage > 0 AND delay>0;
Obviously you'll want to add in more than that, or most all weapons would be less than 1copper, but thats for you to decide for your own server.

That being said, i have an alternate system of code i wrote to devise a dynamic 'formula' for the items on my DB you may or may not find useful. What i wanted was a way to judge each aspect of an item and have it assigned a price value, not only based on what it's stat is (like in the above formula); but i also wanted the relative goodness of the stat to be taken into account... therefore an item with +30 to all stats, in my opinion, should have each stat worth more plat, than one with +5 to stamina. This created my desired effect of making newbie items affordable at only a few plat, while making the crazy ubr items become massively expensive (slowing the lvl and effort required to attain them) at 5k+plat or even higher.

Here's the outline i came up with, in which i set the item's cost to 0, then built it up according to it's stats and what tier they fell on...

Quote:
-- startup set basis value only for items which have relevant properties (i.e. ones with stats, resists, ac, damage, delay, hp/mana regen, hp/mana, or skill mods)
update items set cost = 0 Where (ac+aagi+acha+asta+astr+adex+awis+aint+cr+fr+pr+dr +mr+hp+mana+hastepercent+damage+delay+hpregen+mana regen+skillmodvalue) > 0 AND bagtype=0;

-- add a temp column to aid calcs
alter table items add column jn_stats integer;

-- add cost based on AC
update items set cost = cost + 1 * ac where ac > 0 and ac <= 20;
update items set cost = cost + 2 * ac where ac > 20 and ac <= 30;
update items set cost = cost + 3 * ac where ac > 30 and ac <= 40;
update items set cost = cost + 5 * ac where ac > 40;

-- add cost based on stats
update items set jn_stats = (aagi+acha+asta+astr+adex+awis+aint);
update items set cost = cost + 2 * jn_stats where jn_stats > 0 and jn_stats <= 30;
update items set cost = cost + 4 * jn_stats where jn_stats > 30 and jn_stats <= 50;
update items set cost = cost + 7 * jn_stats where jn_stats > 50 and jn_stats <= 70;
update items set cost = cost + 10 * jn_stats where jn_stats > 70;


-- add cost based on resists
update items set jn_stats = (cr+fr+pr+dr+mr);
update items set cost = cost + 1 * jn_stats where jn_stats > 0 and jn_stats <= 15;
update items set cost = cost + 2 * jn_stats where jn_stats > 15 and jn_stats <= 30;
update items set cost = cost + 4 * jn_stats where jn_stats > 30 and jn_stats <= 45;
update items set cost = cost + 5 * jn_stats where jn_stats > 45;

-- add cost based on hp and mana
update items set jn_stats = (hp+mana);
update items set cost = cost + 1 * jn_stats where jn_stats > 0 and jn_stats <= 70;
update items set cost = cost + 2 * jn_stats where jn_stats > 70 and jn_stats <= 100;
update items set cost = cost + 3 * jn_stats where jn_stats > 100 and jn_stats <= 130;
update items set cost = cost + 5 * jn_stats where jn_stats > 130;

--add cost based on haste
update items set jn_stats = (hastepercent);
update items set cost = cost + 50 * jn_stats where jn_stats > 0 and jn_stats <= 10;
update items set cost = cost + 100 * jn_stats where jn_stats > 10 and jn_stats <= 20;
update items set cost = cost + 200 * jn_stats where jn_stats > 20 and jn_stats <= 30;
update items set cost = cost + 300 * jn_stats where jn_stats > 30;

--add cost based on damage and delay
update items set jn_stats = (damage*100/delay);
update items set cost = cost + .1 * jn_stats where jn_stats > 0 and jn_stats <= 15;
update items set cost = cost + 1 * jn_stats where jn_stats > 15 and jn_stats <= 30;
update items set cost = cost + 5 * jn_stats where jn_stats > 30 and jn_stats <= 60;
update items set cost = cost + 15 * jn_stats where jn_stats > 60 and jn_stats <= 100;
update items set cost = cost + 30 * jn_stats where jn_stats > 100;

--add cost based on mana regen
update items set jn_stats = (manaregen);
update items set cost = cost + 100 * jn_stats where jn_stats > 0 and jn_stats <= 1;
update items set cost = cost + 300 * jn_stats where jn_stats > 1 and jn_stats <= 3;
update items set cost = cost + 500 * jn_stats where jn_stats > 3 and jn_stats <= 5;
update items set cost = cost + 700 * jn_stats where jn_stats > 5;

--add cost based on hp regen
update items set jn_stats = (hpregen);
update items set cost = cost + 100 * jn_stats where jn_stats > 0 and jn_stats <= 1;
update items set cost = cost + 300 * jn_stats where jn_stats > 1 and jn_stats <= 3;
update items set cost = cost + 500 * jn_stats where jn_stats > 3 and jn_stats <= 5;
update items set cost = cost + 700 * jn_stats where jn_stats > 5;

--add cost based on skill mod value
update items set jn_stats = (skillmodvalue);
update items set cost = cost + 30 * jn_stats where jn_stats > 0 and jn_stats <= 2;
update items set cost = cost + 45 * jn_stats where jn_stats > 2 and jn_stats <= 4;
update items set cost = cost + 60 * jn_stats where jn_stats > 4 and jn_stats <= 7;
update items set cost = cost + 75 * jn_stats where jn_stats > 7;

-- clean up
alter table items drop column jn_stats;
-- set price for any missed in calculations to 1
update items set cost = 1 where cost = 0;
--Apply modifier to change copper into plat values
update items set cost = cost * 1000 Where (ac+aagi+acha+asta+astr+adex+awis+aint+cr+fr+pr+dr +mr+hp+mana+hastepercent+damage+delay+hpregen+mana regen+skillmodvalue) > 0 AND bagtype=0;
-- Make All Items Sellable
update items set NODROP = 1;
-- Apply sellback modifier;
update items set merchantprice = .8*cost;
For this i came up with 4 tiers of items... newb, medium, high, and crazy ubr. Each tier had a range of it's relative stat, take for example ac.

Quote:
-- add cost based on AC
update items set cost = cost + 1 * ac where bagtype = 0 and ac <= 10;
update items set cost = cost + 2 * ac where bagtype = 0 and ac > 10 and ac <= 20;
update items set cost = cost + 3 * ac where bagtype = 0 and ac > 20 and ac <= 40;
update items set cost = cost + 5 * ac where bagtype = 0 and ac > 40;
This says "Where ac is less than 10, this costs 1 plat per ac" which means if the ac is less than 10, it's a 'newb item' on my gear list, and falls into the cheapest catagory. Likewise, if it's ac is between 10 and 20 (including 20 as the endpoint) it's 2*ac, because it's a medium level item... etc...

At the end i have set merchant price equal to my new cost, so that items will sell back roughly for what they are bought for, and future items, if found, will sell for what they would have bought for, allowing the player to work toward upgrading their gear even when they find items that aren't useful to them.

All of this is entirely my choice, and so far i haven't gotten to play-test it yet, still working on seeing how the money influx/outflux ratio is handling the weapon dmg/del cost fix (rusty weapons are selling for 15p on my server currently) but, the outline is right there if you wish to borrow/use it to easily add/remove/change the way the multipliers are handled, go for it.

More to come later.

EDIT:: Re-posted my own suggestion for item cost database for which i made it not wipe out all items cost, so things like gems and bars of metal will now retain their originol prices, while only items with relevant stats (like ability stats or hp/mana etc etc) get costs revamped, hope that helps
Reply With Quote
 


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 07:44 PM.


 

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 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3