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. |
Yeah, the item did not add to HP/Mana/End directly it only had STR/STA/DEX/AGI/WIS/INT and no other stat. None of the fields in the data actually show the totals with the stat item equipped. The H E M fields are what stats were seen as a fully naked character with 100 to STR/STA/DEX/AGI/WIS/INT.
And yes, the numbers are rounded for base, so don't let that throw you. As long as it still matches up every other level, you should be on the right track :) |
You should test with a character with more stats. The formula on the lower clients has diminishing returns on some stats that you'd want to find they still exist.
|
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. |
Here are the base End/Mana formulas that I came up with.
Base Endurance / Mana Code:
if (level < 40) { BaseEnd = floor(15 * level / 4); } 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; } Ranger Code:
if (level < 40) { BaseHP = level * 23; } Code:
if (level < 40) { BaseHP = level * 24; } Code:
if (level < 40) { BaseHP = floor((level * 21) + (3 * level) / 13); } Code:
if (level < 40) { BaseHP = level * 22; } Code:
if (level < 40) { BaseHP = level * 20; } |
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; } Class: Wizard Code:
LVL:1 E:22 M:22 EPer:0.07 MPer:0.07 EBase:15 ManaBase:15 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. |
Quote:
|
To be fair cleric, shaman and druid were previously lumped together.
|
Quote:
|
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.
|
I adjusted the previous Mana/Endurance output to be what I think it is supposed to be and then added a column to the right that shows the increase for the MPer colum beween each level over the previous level.
Code:
LVL:1 M:22 MPer:0.07 ManaBase:15 .07 I think we are nearly there :) |
Ok, this isn't exactly a pretty function yet, but it should use the math properly at least, which is the important part for now:
Code:
int32 Client::ManaFromIntWis(int8 level, int16 totalintorwis) { That formula should also be able to be used to calculate Endurance with just a few adjustments to account for Endurance gaining stats from all 4 STR/STA/AGI/DEX stats. So, this should just leave the HP per STA formulas to figure out for the 6 types between all classes. I suspect that will be a flat rate gain just like the Mana/Endurance ones are, so it should be fairly simple to figure it out. |
Ok, this should be the final formula we needed, which is for calculating HP per Stamina point.
Code:
float Client::HPPerStamina(int8 level, int8 class) { |
Trev can you talk to Rogean about SOD support on the Login Server again now that he has his personal server up and running again?
It would be nice to be able to bring our new server up online and everyone else who has been waiting on this simple change also. |
I don't think me talking to him about it would be of much use right now. I am sure he has plenty on his plate atm. But, the good news is that we should have some alternatives to announce in the very near future for the time being until the EQEmu LS is ready for SoD. I will make sure to keep you guys informed when I have more solid info :)
|
This is what I was affraid of though. All the servers are now considering alternate login servers since Rogean is dragging his feet on this. The reason this project is really stable is that it was always centralized arond one login, a place where Devlopers and Users alike congregated. This showed the project was alive and growing at all times.
Once everyone moves to its own login servers, there will really be a big void opened up. Imo it would do alot more harm then good to not keep things centralized arond one common denominator. I just dont understand why this isnt done yet, it took the other servers a few moments to adjust their own logins to accept SOD. Rogean is risking alot more servers moving to offsite logins which would in the end be bad for the overall project. |
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 =) |
Quote:
|
Yeah, I think the private/secondary Login Servers are actually a great addition to EQEmu and something that has been needed for a very long time. I am definitely against dividing this project, as it does not need to be spread thinner than it is. But, I think the multiplle LS stuff will only strengthen EQEmu. Having to use other Login Servers to access servers from the SoD client is only temporary I am sure. At least until the official EQEmu LS is updated for it. And once it is, the extra Login Servers will make nice backups for when the official one is down, which is awesome. We are no longer 100% reliant on a single point of failure, which is good. Not that the official LS fails very often (because it is very stable), but just that it is good to have a backup when one is needed!
This thread isn't really meant for this particular discussion though. In news related to this thread, I have added the HP formulas for SoD to the SVN :) They aren't 100% perfect yet, but they are much closer than before and probably only need minor tweaking to be perfect. I still have to add the Mana and Endurance formulas, but plan to try to get those added tonight. |
Quote:
I had a look at rev 1395 with the SOD client and my Iksar monk's hitpoints now reach 100% (instead of hovering between 80 and 81). Looking forward to the endurance and mana. Work on SOD is coming along excellent. New PEQ database released! Today is a good day :D |
I have the Mana and Endurance formulas on my test server and they are almost finished. I think they just need a bit more tweaking to get them to align properly all of the time. They should most likely be on the SVN by tomorrow :)
|
Using SoD on PEQ server, hit points are now showing properly (go up to 100%). Mana/End still doing same as they did, which, of course, is to be expected. :) VERY well done everyone involved on the formulas!
Trev, in relation to the 9th spell slot issue I ran into at level 58, I have yet to have this problem re-appear. I have ding'd 62 recently, died a BUNCH of times in between (6 times today alone, lol), and not once did the extra slot show up again. So, I am going to have to conclude that it was a fluke and is un-reproducable, so feel free to take it off of your list of things to look at. :) I shall keep my eye on the spell casting bar jic it happens again, but I have a feeling it's not going to, LOL. Thanks to everyone for the great (and quick!!) work getting SoD client working. |
Ok, the HP/Mana/Endurance formulas are now all as good as I can get them and they are all on the SVN. The HP formula is accurate and at most it will only be off by 1 for certain levels/stats combos. It is always 1 over, so HPs should always show 100% on the client. The Mana and Endurance formulas were more complicated for certain Level/Stats combinations. I was able to get them accurate up to level 60 for any stat value, and up to level 80 for stats under 200. But, if you are 60+ and have over 200+ stats, some combos will have 7 to 15ish more mana on the server-side than what the client shows. I am sure it is just missing some minor detail or needing to round something that it isn't, but I tried and tried and couldn't get them 100% accurate for every combo. At least they are very close and by the time it starts being off at all, the number of mana/endurance added won't even be barely noticeable. When the Mana/End formulas are off, it is always higher on the server-side, so players will always still be able to have 100% showing on their UI, which was my main goal.
Maybe at some point, I will try to look into the Mana/End formulas again and get them fixed, but it probably wouldn't happen any time soon. Since they are on the SVN now, if anyone wants to test them out and play with the formulas to see if they can figure it out, please do! I will be happy to answer any questions I can if someone else wants to give a shot at making them closer to 100% accurate. Though, for now, I think they are definitely good enough, even if they never got messed with again. I also set the default size of NPCs to 6, so if they are set to 0 in the DB, they will now be set to 6. This is because SOE added in default sizes for many races, when in the past, their default size was 6. So, without this fix, you would see some NPCs that are not the size you may have seen them as in previous clients. Now, to figure out what I am going to work on next. I am probably going to look into a few more of the bug reports and see if I can get those resolved. There isn't really a ton of work left to do to complete SoD, and that rocks :D |
lol, I just compiled the source this morning and log on my ogre sk and I noticed he's smaller than previously which is fine with me. He ducked alot when trying to move around and about and small tight quarters. but when I got my bots out my gnome enchanter bot is about as big as my orge sk which looks funny. all the bots and my character is about the same height.
|
LMAO, I didn't think about that. I will have to set it so it doesn't do that for player races. Will do that later if someone else doesn't beat me to it. Thanks for reporting that.
|
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.
|
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. |
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. |
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. |
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?
|
Because it handles login stuff a bit differently and uses some different opcodes. Unfortunately, at the time that you submit the login, all clients appear to be the same, so the server has no way to know to reply to SoD in a special way as is needed. So, we just have it use a different port, so the Login Server knows right away how to treat it.
|
Ah, okay then.
|
Quote:
|
Hey all great work on the progress of SoD liking that we can use it now. :) I was curious though, is the new Mercenary system working or is that something that is going to be worked on later or not at all? I was curious to see if the healing mercs and tanks worked better than the current bots.
|
Later we plan to replace the bot system completely and make it part of core server functionality. With those we'll implement mercs. It is a rather large process and so it's only a todo atm.
|
No, none of the mercenary stuff works yet. There is probably quite a bit of packet handling, structures, and opcodes that are needed in order to make the system functional at all. And even then, we would still have to create AI stuff for them similar to the bots system, if we decide not to use bots for them.
I don't know what the plans are for mercs currently. We need to get some collects that include the info we need first of all. Once we have that, someone will have to take the time to actually figure it all out and get the systems coded. I am sure it is a decent chunk of work. They definitely aren't a high priority atm, but maybe they will be added at some point. EDIT: KLS beat me to it! |
My SoD worked fine first time, but when I went to change resolution my system locked up.
When I tried to reload SoD I get the below error http://img99.imageshack.us/img99/7092/crashp.jpg Is there a config file or something I can delete so it goes back to its original resolution? My screen flickers like crazy when I first run SoD before it crashes(before login) so guessing its the reso causing these issues. |
eqclient.ini
|
Quote:
|
Quote:
|
All times are GMT -4. The time now is 06:09 AM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.