Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Development

Development::Development Forum for development topics and for those interested in EQEMu development. (Not a support forum)

Reply
 
Thread Tools Display Modes
  #1  
Old 04-14-2010, 11:27 PM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Ok, that may very well be the case. I will see if I can test with 0 stats first lol. I don't know if the client will allow that, but would be cool for making sure we have base stats 100% accurate. I will can probably just use the same script I have for testing higher stats and instead of just equipping 1 item, I can equip 2 or 3 of them, and then have the script compare the gain rates between 1 2 or 3 of the stat items and see if they are any different. If so, then it is probably diminishing returns.

You are probably right as when I was testing before I had this script, I noticed some odd inconsistencies.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #2  
Old 04-14-2010, 04:55 PM
bad_captain
Developer
 
Join Date: Feb 2009
Location: Cincinnati, OH
Posts: 512
Default

Okay, I think I have them all ready to test values with. IE a 67 mage with 140 STA, 250 INT, +900 HP, +1100 Mana = 2700 HP and 4000 Mana and see if I get the same values. I still need to clean up the formulas a bit, but want to make sure they work for real data before finishing and posting, anyway.

I don't have SoD set up yet to test these values out myself or I would do that.
Reply With Quote
  #3  
Old 04-15-2010, 05:48 PM
bad_captain
Developer
 
Join Date: Feb 2009
Location: Cincinnati, OH
Posts: 512
Default

Here are the base End/Mana formulas that I came up with.

Base Endurance / Mana
Code:
if (level < 40) { BaseEnd = floor(15 * level / 4); }
else if (level < 80) { BaseEnd = floor(15 * level / 4 + (15 * (level-40) / 4) ); }
else { BaseEnd = floor(15 * level / 4 + (15 * (level-40) / 4) + 11 * (level - 80) ); }

I feel pretty confident the formulas for END/Mana, so I'll post those as soon as I can have 1 or 2 datapoints to plug into my formulas. The HP formulas just need some datapoints and to clean up a little more.

Base HPs


Warrior
Code:
if (level < 40) { BaseHP = level * 25; }
else if (level < 80) { BaseHP = ((40 * 25) + ((level - 40) * 50)); }
else { BaseHP = ((40 * 25) + (40 * 50) + ((level - 80) * 30)); }

Ranger
Code:
if (level < 40) { BaseHP = level * 23; }
else if (level < 80) { BaseHP = ((40 * 23) + ((level - 40) * 46)); }
else { BaseHP = floor((40 * 23) + (40 * 46) + (55 * (level - 80) / 2)); }
Paladin, Shadow Knight
Code:
if (level < 40) { BaseHP = level * 24; }
else if (level < 80) { BaseHP = ((40 * 24) + ((level - 40) * 48)); }
else { BaseHP = ((40 * 24) + (40 * 48) + ((level - 80) * 29)); }
Beastlord, Berserker, Monk, Rogue, Shaman
Code:
if (level < 40) { BaseHP = floor((level * 21) + (3 * level) / 13); }
else if (level < 80) { BaseHP = floor((40 * 21) + ((level - 40) * 42) + (level / 4) + (level - 40) / 5 ); }
else { BaseHP = ((40 * 21) + (40 * 42) + ((level - 80) * 26) + 30); }

or
if (level < 40) { BaseHP = ((level * 21) + (3 * level) / 13); }
else if (level < 80) { BaseHP = floor((40 * 21.25) + ((level - 40) * 42.5)); }
else { BaseHP = floor((40 * 37.75) + ( level - 40) * 26); }
Bard, Cleric
Code:
if (level < 40) { BaseHP = level * 22; }
else if (level < 80) { BaseHP = ((40 * 22) + ((level - 40) * 44)); }
else { BaseHP = floor((40 * 22) + (40 * 44) + ( 53 * (level - 80) / 2)); }
Wizard, Magician, Necromancer, Enchanter, Druid
Code:
if (level < 40) { BaseHP = level * 20; }
else if (level < 80) { BaseHP = ((40 * 20) + ((level - 40) * 40)); }
else { BaseHP = ((40 * 20) + (40 * 40) + ((level - 80) * 24)); }
Reply With Quote
  #4  
Old 04-16-2010, 05:57 AM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Looks like base Mana and Endurance was actually much more simple than I had thought lol. KLS suggested checking diminishing returns, so I did some testing on them for HP/Mana/Endurance. Here is what I came up with:

1. HPs increase at the same rate per STA point until you reach 255 STA. After 255, they increase at the same rate / 2 (so 50% as much increase as before).

2. Mana and Endurance increase at a separate rate up to 100 in their related stats. From 100 to 200, they increase at the rate as shown from my previous test results. Then, for 200+, they increase at that same rate / 2 (so 50% as much increase as 100 to 200 did).

3. Base Mana and Endurance increase rate per level is a flat increase with 3 tiers just like Base HPs are. Since all classes use the same base Mana/Endurance per level, here is the formula for Base Mana/Endurance for all classes:

Code:
if (level < 40) { BaseManaEnd = level * 15; }
else if (level < 80) { BaseManaEnd = ((40 * 15) + ((level - 40) * 30)); }
else { BaseManaEnd = ((40 * 15) + (40 * 30) + ((level - 80) * 18)); }
And here is the result Maudigan's script that I altered to find the actual base of Mana/Endurance:

Class: Wizard
Code:
LVL:1 E:22 M:22 EPer:0.07 MPer:0.07 EBase:15 ManaBase:15
LVL:2 E:44 M:44 EPer:0.14 MPer:0.14 EBase:30 ManaBase:30
LVL:3 E:67 M:67 EPer:0.22 MPer:0.22 EBase:45 ManaBase:45
LVL:4 E:89 M:89 EPer:0.29 MPer:0.29 EBase:60 ManaBase:60
LVL:5 E:112 M:112 EPer:0.37 MPer:0.37 EBase:75 ManaBase:75
LVL:6 E:135 M:135 EPer:0.45 MPer:0.45 EBase:90 ManaBase:90
LVL:7 E:157 M:157 EPer:0.53 MPer:0.53 EBase:104 ManaBase:104 105
LVL:8 E:179 M:179 EPer:0.60 MPer:0.60 EBase:119 ManaBase:119 120
LVL:9 E:202 M:202 EPer:0.68 MPer:0.68 EBase:134 ManaBase:134 135
LVL:10 E:225 M:225 EPer:0.76 MPer:0.76 EBase:149 ManaBase:149 150
LVL:11 E:247 M:247 EPer:0.83 MPer:0.83 EBase:164 ManaBase:164 165
LVL:12 E:270 M:270 EPer:0.91 MPer:0.91 EBase:179 ManaBase:179 180
LVL:13 E:292 M:292 EPer:0.98 MPer:0.98 EBase:194 ManaBase:194 195
LVL:14 E:315 M:315 EPer:1.05 MPer:1.05 EBase:210 ManaBase:210
LVL:15 E:337 M:337 EPer:1.12 MPer:1.12 EBase:225 ManaBase:225
LVL:16 E:359 M:359 EPer:1.19 MPer:1.19 EBase:240 ManaBase:240
LVL:17 E:382 M:382 EPer:1.27 MPer:1.27 EBase:255 ManaBase:255
LVL:18 E:405 M:405 EPer:1.35 MPer:1.35 EBase:270 ManaBase:270
LVL:19 E:427 M:427 EPer:1.42 MPer:1.42 EBase:285 ManaBase:285
LVL:20 E:450 M:450 EPer:1.51 MPer:1.51 EBase:299 ManaBase:299 300
LVL:21 E:472 M:472 EPer:1.58 MPer:1.58 EBase:314 ManaBase:314 315
LVL:22 E:494 M:494 EPer:1.65 MPer:1.65 EBase:329 ManaBase:329 330
LVL:23 E:517 M:517 EPer:1.73 MPer:1.73 EBase:344 ManaBase:344 345
LVL:24 E:540 M:540 EPer:1.81 MPer:1.81 EBase:359 ManaBase:359 360
LVL:25 E:562 M:562 EPer:1.88 MPer:1.88 EBase:374 ManaBase:374 375
LVL:26 E:584 M:584 EPer:1.95 MPer:1.95 EBase:389 ManaBase:389 390
LVL:27 E:607 M:607 EPer:2.02 MPer:2.02 EBase:405 ManaBase:405
LVL:28 E:630 M:630 EPer:2.10 MPer:2.10 EBase:420 ManaBase:420
LVL:29 E:652 M:652 EPer:2.17 MPer:2.17 EBase:435 ManaBase:435
LVL:30 E:675 M:675 EPer:2.25 MPer:2.25 EBase:450 ManaBase:450
LVL:31 E:697 M:697 EPer:2.32 MPer:2.32 EBase:465 ManaBase:465
LVL:32 E:719 M:719 EPer:2.39 MPer:2.39 EBase:480 ManaBase:480
LVL:33 E:742 M:742 EPer:2.47 MPer:2.47 EBase:495 ManaBase:495
LVL:34 E:764 M:764 EPer:2.55 MPer:2.55 EBase:509 ManaBase:509 510
LVL:35 E:787 M:787 EPer:2.63 MPer:2.63 EBase:524 ManaBase:524 525
LVL:36 E:810 M:810 EPer:2.71 MPer:2.71 EBase:539 ManaBase:539 540
LVL:37 E:832 M:832 EPer:2.78 MPer:2.78 EBase:554 ManaBase:554 555
LVL:38 E:855 M:855 EPer:2.86 MPer:2.86 EBase:569 ManaBase:569 570
LVL:39 E:877 M:877 EPer:2.93 MPer:2.93 EBase:584 ManaBase:584 585
LVL:40 E:900 M:900 EPer:3.00 MPer:3.00 EBase:600 ManaBase:600 - Changes
LVL:41 E:944 M:944 EPer:3.14 MPer:3.14 EBase:630 ManaBase:630
LVL:42 E:989 M:989 EPer:3.29 MPer:3.29 EBase:660 ManaBase:660
LVL:43 E:1035 M:1035 EPer:3.45 MPer:3.45 EBase:690 ManaBase:690
LVL:44 E:1080 M:1080 EPer:3.61 MPer:3.61 EBase:719 ManaBase:719 720
LVL:45 E:1125 M:1125 EPer:3.76 MPer:3.76 EBase:749 ManaBase:749 750
LVL:46 E:1169 M:1169 EPer:3.90 MPer:3.90 EBase:779 ManaBase:779 780
LVL:47 E:1214 M:1214 EPer:4.04 MPer:4.04 EBase:810 ManaBase:810
LVL:48 E:1260 M:1260 EPer:4.20 MPer:4.20 EBase:840 ManaBase:840
LVL:49 E:1304 M:1304 EPer:4.34 MPer:4.34 EBase:870 ManaBase:870
LVL:50 E:1350 M:1350 EPer:4.51 MPer:4.51 EBase:899 ManaBase:899 900
LVL:51 E:1395 M:1395 EPer:4.66 MPer:4.66 EBase:929 ManaBase:929 930
LVL:52 E:1439 M:1439 EPer:4.80 MPer:4.80 EBase:959 ManaBase:959 960
LVL:53 E:1485 M:1485 EPer:4.96 MPer:4.96 EBase:989 ManaBase:989 990
LVL:54 E:1529 M:1529 EPer:5.09 MPer:5.09 EBase:1020 ManaBase:1020
LVL:55 E:1575 M:1575 EPer:5.25 MPer:5.25 EBase:1050 ManaBase:1050
LVL:56 E:1620 M:1620 EPer:5.40 MPer:5.40 EBase:1080 ManaBase:1080
LVL:57 E:1664 M:1664 EPer:5.55 MPer:5.55 EBase:1109 ManaBase:1109 1110
LVL:58 E:1710 M:1710 EPer:5.71 MPer:5.71 EBase:1139 ManaBase:1139 1140
LVL:59 E:1754 M:1754 EPer:5.85 MPer:5.85 EBase:1169 ManaBase:1169 1170
LVL:60 E:1800 M:1800 EPer:6.00 MPer:6.00 EBase:1200 ManaBase:1200
LVL:61 E:1845 M:1845 EPer:6.15 MPer:6.15 EBase:1230 ManaBase:1230
LVL:62 E:1889 M:1889 EPer:6.29 MPer:6.29 EBase:1260 ManaBase:1260
LVL:63 E:1935 M:1935 EPer:6.45 MPer:6.45 EBase:1290 ManaBase:1290
LVL:64 E:1979 M:1979 EPer:6.60 MPer:6.60 EBase:1319 ManaBase:1319 1320
LVL:65 E:2025 M:2025 EPer:6.76 MPer:6.76 EBase:1349 ManaBase:1349 1350
LVL:66 E:2070 M:2070 EPer:6.91 MPer:6.91 EBase:1379 ManaBase:1379 1380
LVL:67 E:2114 M:2114 EPer:7.04 MPer:7.04 EBase:1410 ManaBase:1410
LVL:68 E:2160 M:2160 EPer:7.20 MPer:7.20 EBase:1440 ManaBase:1440
LVL:69 E:2204 M:2204 EPer:7.34 MPer:7.34 EBase:1470 ManaBase:1470
LVL:70 E:2250 M:2250 EPer:7.51 MPer:7.51 EBase:1499 ManaBase:1499 1500
LVL:71 E:2295 M:2295 EPer:7.66 MPer:7.66 EBase:1529 ManaBase:1529 1530
LVL:72 E:2339 M:2339 EPer:7.80 MPer:7.80 EBase:1559 ManaBase:1559 1560
LVL:73 E:2385 M:2385 EPer:7.96 MPer:7.96 EBase:1589 ManaBase:1589 1590
LVL:74 E:2429 M:2429 EPer:8.09 MPer:8.09 EBase:1620 ManaBase:1620
LVL:75 E:2475 M:2475 EPer:8.25 MPer:8.25 EBase:1650 ManaBase:1650
LVL:76 E:2520 M:2520 EPer:8.40 MPer:8.40 EBase:1680 ManaBase:1680
LVL:77 E:2565 M:2565 EPer:8.56 MPer:8.56 EBase:1709 ManaBase:1709 1710
LVL:78 E:2609 M:2609 EPer:8.70 MPer:8.70 EBase:1739 ManaBase:1739 1740
LVL:79 E:2654 M:2654 EPer:8.85 MPer:8.85 EBase:1769 ManaBase:1769 1770
LVL:80 E:2700 M:2700 EPer:9.00 MPer:9.00 EBase:1800 ManaBase:1800
LVL:81 E:2718 M:2718 EPer:9.00 MPer:9.00 EBase:1818 ManaBase:1818
LVL:82 E:2736 M:2736 EPer:9.00 MPer:9.00 EBase:1836 ManaBase:1836
LVL:83 E:2754 M:2754 EPer:9.00 MPer:9.00 EBase:1854 ManaBase:1854
LVL:84 E:2773 M:2773 EPer:9.00 MPer:9.00 EBase:1873 ManaBase:1873
LVL:85 E:2791 M:2791 EPer:9.00 MPer:9.00 EBase:1891 ManaBase:1891
For the levels shown that have an extra unnamed field at the end, that is just where I corrected the base value to be the in line with what it should actually be. I am sure the rounding of the float is what caused it to be slightly off for some.

Also, for these tests, I added a hack to set all new characters to start with 0 to all stats. The client actually forces them all to a minimum of 1 to each stat. So, to get the actual base, I just took the difference from what was originally seen as the base (with 1 stat added to it), and then what was seen after adding an item with 100 to all stats (which showed total as 100, not 101!), and then divided that by 99. I then multiplied that value by 100 to get the total amount that should have been added from the item and subtracted that amount from the current Mana/Endurance as shown with the item equipped. This should leave us with the actual base values, and it looks like it all matches up and makes sense to me

So, now that I think we have the base values for HP/Mana/Endurance for all classes, it is just a matter of figuring out the formula for the increase from each stat per level.

As mentioned before, it looks like Mana and Endurance use an unrelated formula for the first 100 in their related stats, so that is one formula to figure out. The next is just the formula from 100 to 200 as shown in my previous testing results. From there, we can figure out the diminishing returns, as they seem to just be the same formula divided by 2.

Then, the 3rd and final formula left is the one for HP gained per stat point per level.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #5  
Old 04-16-2010, 09:50 AM
cavedude's Avatar
cavedude
The PEQ Dude
 
Join Date: Apr 2003
Location: -
Posts: 1,988
Default

Quote:
Originally Posted by bad_captain View Post
Wizard, Magician, Necromancer, Enchanter, Druid
Wouldn't Druid be lumped with Bard and Cleric? On Live My Druid always had more base health than my Necro. Then again, I guess it's possible Sony has gimped Druids over time. Haha
Reply With Quote
  #6  
Old 04-16-2010, 03:18 PM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

To be fair cleric, shaman and druid were previously lumped together.
Reply With Quote
  #7  
Old 04-16-2010, 03:28 PM
cavedude's Avatar
cavedude
The PEQ Dude
 
Join Date: Apr 2003
Location: -
Posts: 1,988
Default

Quote:
Originally Posted by KLS View Post
To be fair cleric, shaman and druid were previously lumped together.
Aye, that's right on.
Reply With Quote
  #8  
Old 04-16-2010, 04:30 PM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Yeah, it would have made more sense to group them that way, but I have given up on questioning how SOE makes their decisions lol. I was surprised to see that druid got lumped in with the pure casters, but I checked it multiple times to make sure that was correct. At least it is only a fairly small difference.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #9  
Old 04-18-2010, 03:10 PM
ChaosSlayerZ's Avatar
ChaosSlayerZ
Demi-God
 
Join Date: Mar 2009
Location: Umm
Posts: 1,492
Default

Trev, I am curious, so what happens now with the formula- will all players playing on different clients use the same new formula, or dos each player will run on hp/mana based on what his client is?
thats gonna be a mess =)

another question... or more of a wish, would that be possible at SOME POINT to put these values into DB instead?
So each server admin could adjust how much each class gains from sta/int/wis without the need to go into the source?
Wouldn't that be awesome? =)
I mean you just replace the the formula in the source code with X, Y and Z, and add a tiny table to the DB with what like 50 rows for all the values per class? =)
Please consider this =)
Reply With Quote
  #10  
Old 04-24-2010, 10:10 PM
Lylyth
Fire Beetle
 
Join Date: Feb 2010
Posts: 1
Default

If you DL SoD from Steam do you have to run it through steam? Husband/wife team want to play but only one account on steam, so don't want to have to make another account and buy it again.
Reply With Quote
  #11  
Old 04-24-2010, 10:54 PM
Vampire1212
Sarnak
 
Join Date: May 2009
Location: MI
Posts: 58
Default No (:

Everquest SoD is in no way tied to Steam, simply move the Everquest folder from C:\Program Files\Steam\steamapps\common\everquest to something like C:\everquest

Steam only downloads and installs for you. The rest is as if you installed EQ off the disc.
__________________
[ Druzzil Ro ]
Reply With Quote
  #12  
Old 05-11-2010, 05:14 PM
Rykeau
Fire Beetle
 
Join Date: Jan 2010
Posts: 27
Default

I'm sorry if this is posted elsewhere or covered in multiple posts - I simply can't find it.

Is there a consolidated guide to getting SoD working from Titanium or SoF?

Here is my situation:

I have a working EQEMU server using newly compiled source and SoF clients. I utilize EQEmuLoginServer for my login server. All clients can login and play without issue at this time.

My challenge has been getting my SoD client to log into my server. I've copied the SoD client to my current EQ directory, validated the eqhost.txt file and triple checked the EQ launch shortcut for the "patchme" switch. I have even tried updating the opcodes.conf with SoD info on the server with no success.

When using the SoD client with my current server configuration, the client stalls in a "Logging in to the server. Please wait..." state almost indefinately. I'm guessing I am missing something in my complilation or in my config but I simply can't narrow it down. Any help anybody can provide would be appreciated.
Reply With Quote
  #13  
Old 05-11-2010, 05:32 PM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Your eqhost.txt needs to be set to port 5999 for SoD, not 5998 like Titanium/SoF are. Assuming you have everything else setup correctly, that should work fine. Being unable to log in like you mentioned is exactly the symptom caused by not having the port set to 5999 in your eqhost.txt file.

There isn't currently a full wiki on getting SoD setup, but other than changing the port to 5999, and only being able to use the non-official Login Servers that support SoD, the setup is almost exactly the same as previous clients. I have been waiting until the official EQEmu Login Server supports SoD before I go through and update the play guide wiki's to include SoD instructions in them.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #14  
Old 05-13-2010, 05:53 PM
Rykeau
Fire Beetle
 
Join Date: Jan 2010
Posts: 27
Default

Quote:
Originally Posted by trevius View Post
Your eqhost.txt needs to be set to port 5999 for SoD, not 5998 like Titanium/SoF are. Assuming you have everything else setup correctly, that should work fine. Being unable to log in like you mentioned is exactly the symptom caused by not having the port set to 5999 in your eqhost.txt file.

There isn't currently a full wiki on getting SoD setup, but other than changing the port to 5999, and only being able to use the non-official Login Servers that support SoD, the setup is almost exactly the same as previous clients. I have been waiting until the official EQEmu Login Server supports SoD before I go through and update the play guide wiki's to include SoD instructions in them.
Thank you! Changing the login port info in all appropriate files did the trick.
Reply With Quote
  #15  
Old 05-11-2010, 07:14 PM
pfyon's Avatar
pfyon
Discordant
 
Join Date: Mar 2009
Location: Ottawa
Posts: 495
Default

Btw, why have the SoD stream on a different port? Titanium and SoF already share one, requiring the login server to check what client is connecting, why not put SoD on the same port and just have it check between 3 clients instead of the original 2?
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 02:43 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